void PlayerController::CheckPlayerState() { RWsSession* iSession=new RWsSession(); iSession->Connect(); TApaTaskList lst(*iSession); TApaTask tsk=lst.FindApp(KMusicPlayerAppUid); TApaTask tsk2=lst.FindApp(KRadioUid); if (tsk.Exists()){emit playerStarted(true);qDebug()<<"player started";} if (tsk2.Exists()) { radioLaunched=true; emit playerStarted(false); qDebug()<<"radio started"; int aValue; RProperty::Get(KFMRadioPSUid, KFMRadioPSDataFrequency,aValue); float freq=aValue/1e6; iStation.freq=freq; TBuf<255> name,rds,type; RProperty::Get(KFMRadioPSUid, KFMRadioPSDataChannelName,name); RProperty::Get(KFMRadioPSUid, KFMRadioPSDataRDSRadioText,rds); iStation.name=QString::fromRawData(reinterpret_cast<const QChar*>(name.Ptr()),name.Length()); iStation.rds=QString::fromRawData(reinterpret_cast<const QChar*>(rds.Ptr()),rds.Length()); QString line; if (iStation.name.length()>0) line=QString::fromUtf8(iStation.name.toUtf8().data()); else if (iStation.rds.length()>0) line=QString::fromUtf8(iStation.rds.toUtf8().data()); else line=QString::fromUtf8("FM Radio"); changeTrackInfo(line,QString::number(iStation.freq,'f',2)+" MHz"); } iSession->Close(); }
void PlayerController::TrackInfoChanged(const TDesC &aTitle, const TDesC &aArtist) { QString name=QString::fromRawData(reinterpret_cast<const QChar*>(aTitle.Ptr()),aTitle.Length()); QString artist=QString::fromRawData(reinterpret_cast<const QChar*>(aArtist.Ptr()),aArtist.Length()); qDebug()<<"TrackInfoChanged"<<name<<artist; if (name.length()>15){name=name.left(12)+"...";} if (artist.length()>40){artist=artist.left(37)+"...";} //if (artist.length()==0){artist=QString::fromUtf8("Unknown aritst");} emit changeTrackInfo(artist,name); }
void PlayerController::ValTxtChanged(TUid aUid, TUint32 aKey,TDesC aValue) { TBuf<255> name,rds,type; RProperty::Get(KFMRadioPSUid, KFMRadioPSDataChannelName,name); RProperty::Get(KFMRadioPSUid, KFMRadioPSDataRDSRadioText,rds); iStation.name=QString::fromRawData(reinterpret_cast<const QChar*>(name.Ptr()),name.Length()); iStation.rds=QString::fromRawData(reinterpret_cast<const QChar*>(rds.Ptr()),rds.Length()); qDebug()<<"aValueTxtChanged"<<aKey<<iStation.name<<iStation.rds; QString line; if (iStation.name.length()>0) line=QString::fromUtf8(iStation.name.toUtf8().data()); else if (iStation.rds.length()>0) line=QString::fromUtf8(iStation.rds.toUtf8().data()); else line=QString::fromUtf8("FM Radio"); changeTrackInfo(line,QString::number(iStation.freq,'f',2)+" MHz"); }
void PlayerController::ValChanged(TUid aUid, TUint32 aKey, TInt aValue) { if (aKey==KFMRadioPSDataRadioPowerState) { if (aValue==EFMRadioPSRadioPowerOn&&(!radioLaunched)) { radioLaunched=true; Close(KMusicPlayerAppUid); qDebug()<<"radio launched"; emit playerStarted(false); } else if (aValue==EFMRadioPSRadioPowerOff&&radioLaunched) { radioLaunched=false; qDebug()<<"radio closed"; emit playerClosed(); } } else if (aKey==KFMRadioPSDataFrequency) { float freq=aValue/1e6; iStation.freq=freq; qDebug()<<aValue<<radioLaunched; if (freq>50&&freq<200) { radioLaunched=true; Close(KMusicPlayerAppUid); qDebug()<<"radio launched"; emit playerStarted(false); } if ((freq>200||freq<50)&&radioLaunched) { radioLaunched=false; qDebug()<<"radio closed"; emit playerClosed(); } QString line; if (iStation.name.length()>0) line=QString::fromUtf8(iStation.name.toUtf8().data()); else if (iStation.rds.length()>0) line=QString::fromUtf8(iStation.rds.toUtf8().data()); else line=QString::fromUtf8("FM Radio"); if (radioLaunched)changeTrackInfo(line,QString::number(iStation.freq,'f',2)+" MHz"); } }
int PlayerController::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: playing(); break; case 1: stopped(); break; case 2: paused(); break; case 3: playerStarted((*reinterpret_cast< bool(*)>(_a[1]))); break; case 4: playerClosed(); break; case 5: changeTrackInfo((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break; case 6: changePos((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 7: passAlbumArt((*reinterpret_cast< CFbsBitmap*(*)>(_a[1]))); break; case 8: updateAlbumArt((*reinterpret_cast< int(*)>(_a[1]))); break; case 9: CheckPlayerState(); break; case 10: Tick(); break; case 11: Play(); break; case 12: Pause(); break; case 13: Next(); break; case 14: Previous(); break; case 15: SeekForward(); break; case 16: SeekBack(); break; case 17: StopSeeking(); break; case 18: AlbumArtSaved((*reinterpret_cast< CFbsBitmap*(*)>(_a[1]))); break; case 19: GoToNowPlaying(); break; case 20: ClosePlayer(); break; case 21: SeekToPos((*reinterpret_cast< int(*)>(_a[1]))); break; case 22: GetState(); break; default: ; } _id -= 23; } return _id; }