# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282114143 -10800 # Node ID 3a6b55c6390cbb0d7bd3cf3db76bc7c86c60ff15 # Parent 11b6825f0862b5ce2ef015c3e72ab6e33845062a Revision: 201031 Kit: 201033 diff -r 11b6825f0862 -r 3a6b55c6390c common/radio_global.h --- a/common/radio_global.h Tue Jul 06 14:16:27 2010 +0300 +++ b/common/radio_global.h Wed Aug 18 09:49:03 2010 +0300 @@ -29,8 +29,6 @@ */ const int FREQUENCY_MULTIPLIER = 1000000; -const int ONE_HERTZ = FREQUENCY_MULTIPLIER; - /** * Desired amount of steps in the volume control in the UI */ @@ -42,6 +40,14 @@ const int DEFAULT_VOLUME_LEVEL = 4; /** + * UIDs for checking the offline mode + * Values copied from CoreApplicationUIsSDKCRKeys.h + */ +const long int CENREP_CORE_APPLICATION_UIS = 0x101F876C; +const unsigned long int ID_NETWORK_CONNECTION_ALLOWED = 0x00000001; +enum NetworkConnectionAllowed { NetworkNotAllowed = 0, NetworkAllowed }; + +/** * Roles used when interacting with the radio station model */ namespace RadioRole @@ -105,16 +111,6 @@ }; } -namespace Scroll -{ - enum Direction - { - Shortest, - Left, - Right - }; -} - namespace StationSkip { enum Mode @@ -142,7 +138,8 @@ StationScan, StationScanFinalize, StationScanNoStationsFound, - SkipFromEngine + SkipFromEngine, + SkipFromWidget }; } diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/buildflags.pri --- a/radioapp/buildflags.pri Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/buildflags.pri Wed Aug 18 09:49:03 2010 +0300 @@ -26,6 +26,9 @@ # Flag to use dummy radio data read from XML file # RADIOFLAGS += USE_DUMMY_RADIO_DATA +# Flag to initialize radio stations with dummy rt +# RADIOFLAGS += INIT_STATIONS_WITH_DUMMY_RT + # Functional testing # RADIOFLAGS += SHOW_CALLSIGN_IN_ANY_REGION @@ -114,11 +117,9 @@ DESTDIR = ../bin LIBS += -L../bin INCLUDEPATH += ../radioenginewrapper/inc - INCLUDEPATH += ../../internal/win32_stubs - HEADERS += ../../internal/win32_stubs/qsysteminfo.h - HEADERS += ../../internal/win32_stubs/xqserviceutil.h - HEADERS += ../../internal/win32_stubs/xqserviceprovider.h - SOURCES += ../../internal/win32_stubs/win32_stubs.cpp + INCLUDEPATH += ../radioapplication/win32_stubs + HEADERS += ../radioapplication/win32_stubs/*.h + SOURCES += ../radioapplication/win32_stubs/*.cpp } USE_UNFROZEN_EXPORTS { diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/bwins/fmradiouiengineu.def --- a/radioapp/bwins/fmradiouiengineu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/bwins/fmradiouiengineu.def Wed Aug 18 09:49:03 2010 +0300 @@ -7,47 +7,47 @@ ?qt_metacast@RadioUiEngine@@UAEPAXPBD@Z @ 6 NONAME ; void * RadioUiEngine::qt_metacast(char const *) ?parseFrequency@RadioStation@@SA?AVQString@@I@Z @ 7 NONAME ; class QString RadioStation::parseFrequency(unsigned int) ??0RadioStation@@QAE@ABV0@@Z @ 8 NONAME ; RadioStation::RadioStation(class RadioStation const &) - ?skipStation@RadioUiEngine@@QAEIW4Mode@StationSkip@@I@Z @ 9 NONAME ; unsigned int RadioUiEngine::skipStation(enum StationSkip::Mode, unsigned int) - ?region@RadioUiEngine@@QBE?AW4Region@RadioRegion@@XZ @ 10 NONAME ; enum RadioRegion::Region RadioUiEngine::region(void) const - ?frequency@RadioStation@@QBEIXZ @ 11 NONAME ; unsigned int RadioStation::frequency(void) const - ?setFavoriteByFrequency@RadioStationModel@@QAEXI_N@Z @ 12 NONAME ; void RadioStationModel::setFavoriteByFrequency(unsigned int, bool) - ?isInitialized@RadioUiEngine@@QBE_NXZ @ 13 NONAME ; bool RadioUiEngine::isInitialized(void) const - ?staticMetaObject@RadioUiEngine@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const RadioUiEngine::staticMetaObject - ?indexFromFrequency@RadioStationModel@@QAEHI@Z @ 15 NONAME ; int RadioStationModel::indexFromFrequency(unsigned int) - ?stationsInRange@RadioStationModel@@QAE?AV?$QList@VRadioStation@@@@II@Z @ 16 NONAME ; class QList RadioStationModel::stationsInRange(unsigned int, unsigned int) - ?settings@RadioUiEngine@@QAEAAVRadioSettingsIf@@XZ @ 17 NONAME ; class RadioSettingsIf & RadioUiEngine::settings(void) - ?emitAntennaStatusChanged@RadioUiEngine@@AAEX_N@Z @ 18 NONAME ; void RadioUiEngine::emitAntennaStatusChanged(bool) - ?hasPiCode@RadioStation@@QBE_NXZ @ 19 NONAME ; bool RadioStation::hasPiCode(void) const - ??_ERadioScannerEngine@@UAE@I@Z @ 20 NONAME ; RadioScannerEngine::~RadioScannerEngine(unsigned int) - ?setFavoriteByPreset@RadioStationModel@@QAEXH_N@Z @ 21 NONAME ; void RadioStationModel::setFavoriteByPreset(int, bool) - ?rdsAvailabilityChanged@RadioUiEngine@@IAEX_N@Z @ 22 NONAME ; void RadioUiEngine::rdsAvailabilityChanged(bool) - ?findPresetIndex@RadioStationModel@@QAEHHAAVRadioStation@@@Z @ 23 NONAME ; int RadioStationModel::findPresetIndex(int, class RadioStation &) - ?stationHandlerIf@RadioStationModel@@QAEAAVRadioStationHandlerIf@@XZ @ 24 NONAME ; class RadioStationHandlerIf & RadioStationModel::stationHandlerIf(void) - ?qt_metacall@RadioHistoryModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int RadioHistoryModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?frequencyString@RadioStation@@QBE?AVQString@@XZ @ 26 NONAME ; class QString RadioStation::frequencyString(void) const - ?emitVolumeChanged@RadioUiEngine@@AAEXH@Z @ 27 NONAME ; void RadioUiEngine::emitVolumeChanged(int) - ?qt_metacall@RadioUiEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int RadioUiEngine::qt_metacall(enum QMetaObject::Call, int, void * *) - ?reset@RadioStation@@AAEXXZ @ 29 NONAME ; void RadioStation::reset(void) - ?createScannerEngine@RadioUiEngine@@QAE?AV?$QSharedPointer@VRadioScannerEngine@@@@XZ @ 30 NONAME ; class QSharedPointer RadioUiEngine::createScannerEngine(void) - ?emitAudioRouteChanged@RadioUiEngine@@AAEX_N@Z @ 31 NONAME ; void RadioUiEngine::emitAudioRouteChanged(bool) - ?addItem@RadioHistoryModel@@AAEXABVQString@@0ABVRadioStation@@@Z @ 32 NONAME ; void RadioHistoryModel::addItem(class QString const &, class QString const &, class RadioStation const &) - ?d_func@RadioScannerEngine@@ABEPBVRadioScannerEnginePrivate@@XZ @ 33 NONAME ; class RadioScannerEnginePrivate const * RadioScannerEngine::d_func(void) const - ??4RadioStation@@QAEAAV0@ABV0@@Z @ 34 NONAME ; class RadioStation & RadioStation::operator=(class RadioStation const &) - ?toggleAudioRoute@RadioUiEngine@@QAEXXZ @ 35 NONAME ; void RadioUiEngine::toggleAudioRoute(void) - ?stationModel@RadioUiEngine@@QAEAAVRadioStationModel@@XZ @ 36 NONAME ; class RadioStationModel & RadioUiEngine::stationModel(void) - ?unsetType@RadioStation@@QAEXV?$QFlags@W4TypeFlag@RadioStation@@@@@Z @ 37 NONAME ; void RadioStation::unsetType(class QFlags) - ?toggleTagging@RadioHistoryModel@@QAEXABVRadioHistoryItem@@H@Z @ 38 NONAME ; void RadioHistoryModel::toggleTagging(class RadioHistoryItem const &, int) - ?muteChanged@RadioUiEngine@@IAEX_N@Z @ 39 NONAME ; void RadioUiEngine::muteChanged(bool) - ?maxFrequency@RadioUiEngine@@QBEIXZ @ 40 NONAME ; unsigned int RadioUiEngine::maxFrequency(void) const - ?setIcons@RadioStationModel@@QAEXABVQIcon@@0@Z @ 41 NONAME ; void RadioStationModel::setIcons(class QIcon const &, class QIcon const &) - ?saveStation@RadioStationModel@@QAEXAAVRadioStation@@@Z @ 42 NONAME ; void RadioStationModel::saveStation(class RadioStation &) - ?getStaticMetaObject@RadioHistoryModel@@SAABUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const & RadioHistoryModel::getStaticMetaObject(void) - ?findUnusedPresetIndex@RadioStationModel@@AAEHXZ @ 44 NONAME ; int RadioStationModel::findUnusedPresetIndex(void) - ?hasChanged@RadioStation@@QBE_NXZ @ 45 NONAME ; bool RadioStation::hasChanged(void) const - ?trUtf8@RadioScannerEngine@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString RadioScannerEngine::trUtf8(char const *, char const *, int) - ?isScanning@RadioUiEngine@@QBE_NXZ @ 47 NONAME ; bool RadioUiEngine::isScanning(void) const - ?dynamicPsCheckEnded@RadioStationModel@@AAEXXZ @ 48 NONAME ; void RadioStationModel::dynamicPsCheckEnded(void) - ?d_func@RadioHistoryModel@@AAEPAVRadioHistoryModelPrivate@@XZ @ 49 NONAME ; class RadioHistoryModelPrivate * RadioHistoryModel::d_func(void) + ?region@RadioUiEngine@@QBE?AW4Region@RadioRegion@@XZ @ 9 NONAME ; enum RadioRegion::Region RadioUiEngine::region(void) const + ?frequency@RadioStation@@QBEIXZ @ 10 NONAME ; unsigned int RadioStation::frequency(void) const + ?setFavoriteByFrequency@RadioStationModel@@QAEXI_N@Z @ 11 NONAME ; void RadioStationModel::setFavoriteByFrequency(unsigned int, bool) + ?isInitialized@RadioUiEngine@@QBE_NXZ @ 12 NONAME ; bool RadioUiEngine::isInitialized(void) const + ?staticMetaObject@RadioUiEngine@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const RadioUiEngine::staticMetaObject + ?indexFromFrequency@RadioStationModel@@QAEHI@Z @ 14 NONAME ; int RadioStationModel::indexFromFrequency(unsigned int) + ?stationsInRange@RadioStationModel@@QAE?AV?$QList@VRadioStation@@@@II@Z @ 15 NONAME ; class QList RadioStationModel::stationsInRange(unsigned int, unsigned int) + ?settings@RadioUiEngine@@QAEAAVRadioSettingsIf@@XZ @ 16 NONAME ; class RadioSettingsIf & RadioUiEngine::settings(void) + ?emitAntennaStatusChanged@RadioUiEngine@@AAEX_N@Z @ 17 NONAME ; void RadioUiEngine::emitAntennaStatusChanged(bool) + ?hasPiCode@RadioStation@@QBE_NXZ @ 18 NONAME ; bool RadioStation::hasPiCode(void) const + ??_ERadioScannerEngine@@UAE@I@Z @ 19 NONAME ; RadioScannerEngine::~RadioScannerEngine(unsigned int) + ?setFavoriteByPreset@RadioStationModel@@QAEXH_N@Z @ 20 NONAME ; void RadioStationModel::setFavoriteByPreset(int, bool) + ?rdsAvailabilityChanged@RadioUiEngine@@IAEX_N@Z @ 21 NONAME ; void RadioUiEngine::rdsAvailabilityChanged(bool) + ?findPresetIndex@RadioStationModel@@QAEHHAAVRadioStation@@@Z @ 22 NONAME ; int RadioStationModel::findPresetIndex(int, class RadioStation &) + ?stationHandlerIf@RadioStationModel@@QAEAAVRadioStationHandlerIf@@XZ @ 23 NONAME ; class RadioStationHandlerIf & RadioStationModel::stationHandlerIf(void) + ?qt_metacall@RadioHistoryModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 24 NONAME ; int RadioHistoryModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?frequencyString@RadioStation@@QBE?AVQString@@XZ @ 25 NONAME ; class QString RadioStation::frequencyString(void) const + ?emitVolumeChanged@RadioUiEngine@@AAEXH@Z @ 26 NONAME ; void RadioUiEngine::emitVolumeChanged(int) + ?qt_metacall@RadioUiEngine@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int RadioUiEngine::qt_metacall(enum QMetaObject::Call, int, void * *) + ?reset@RadioStation@@AAEXXZ @ 28 NONAME ; void RadioStation::reset(void) + ?createScannerEngine@RadioUiEngine@@QAE?AV?$QSharedPointer@VRadioScannerEngine@@@@XZ @ 29 NONAME ; class QSharedPointer RadioUiEngine::createScannerEngine(void) + ?emitAudioRouteChanged@RadioUiEngine@@AAEX_N@Z @ 30 NONAME ; void RadioUiEngine::emitAudioRouteChanged(bool) + ?addItem@RadioHistoryModel@@AAEXABVQString@@0ABVRadioStation@@@Z @ 31 NONAME ; void RadioHistoryModel::addItem(class QString const &, class QString const &, class RadioStation const &) + ?d_func@RadioScannerEngine@@ABEPBVRadioScannerEnginePrivate@@XZ @ 32 NONAME ; class RadioScannerEnginePrivate const * RadioScannerEngine::d_func(void) const + ??4RadioStation@@QAEAAV0@ABV0@@Z @ 33 NONAME ; class RadioStation & RadioStation::operator=(class RadioStation const &) + ?toggleAudioRoute@RadioUiEngine@@QAEXXZ @ 34 NONAME ; void RadioUiEngine::toggleAudioRoute(void) + ?stationModel@RadioUiEngine@@QAEAAVRadioStationModel@@XZ @ 35 NONAME ; class RadioStationModel & RadioUiEngine::stationModel(void) + ?unsetType@RadioStation@@QAEXV?$QFlags@W4TypeFlag@RadioStation@@@@@Z @ 36 NONAME ; void RadioStation::unsetType(class QFlags) + ?toggleTagging@RadioHistoryModel@@QAEXABVRadioHistoryItem@@H@Z @ 37 NONAME ; void RadioHistoryModel::toggleTagging(class RadioHistoryItem const &, int) + ?muteChanged@RadioUiEngine@@IAEX_N@Z @ 38 NONAME ; void RadioUiEngine::muteChanged(bool) + ?maxFrequency@RadioUiEngine@@QBEIXZ @ 39 NONAME ; unsigned int RadioUiEngine::maxFrequency(void) const + ?setIcons@RadioStationModel@@QAEXABVQIcon@@0@Z @ 40 NONAME ; void RadioStationModel::setIcons(class QIcon const &, class QIcon const &) + ?saveStation@RadioStationModel@@QAEXAAVRadioStation@@@Z @ 41 NONAME ; void RadioStationModel::saveStation(class RadioStation &) + ?getStaticMetaObject@RadioHistoryModel@@SAABUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const & RadioHistoryModel::getStaticMetaObject(void) + ?findUnusedPresetIndex@RadioStationModel@@AAEHXZ @ 43 NONAME ; int RadioStationModel::findUnusedPresetIndex(void) + ?hasChanged@RadioStation@@QBE_NXZ @ 44 NONAME ; bool RadioStation::hasChanged(void) const + ?trUtf8@RadioScannerEngine@@SA?AVQString@@PBD0H@Z @ 45 NONAME ; class QString RadioScannerEngine::trUtf8(char const *, char const *, int) + ?isScanning@RadioUiEngine@@QBE_NXZ @ 46 NONAME ; bool RadioUiEngine::isScanning(void) const + ?dynamicPsCheckEnded@RadioStationModel@@AAEXXZ @ 47 NONAME ; void RadioStationModel::dynamicPsCheckEnded(void) + ?d_func@RadioHistoryModel@@AAEPAVRadioHistoryModelPrivate@@XZ @ 48 NONAME ; class RadioHistoryModelPrivate * RadioHistoryModel::d_func(void) + ?skipStation@RadioUiEngine@@QAEIW4Mode@StationSkip@@IH@Z @ 49 NONAME ; unsigned int RadioUiEngine::skipStation(enum StationSkip::Mode, unsigned int, int) ?setFrequency@RadioStation@@AAEXI@Z @ 50 NONAME ; void RadioStation::setFrequency(unsigned int) ?piCodeToCallSign@RadioStation@@AAE?AVQString@@I@Z @ 51 NONAME ; class QString RadioStation::piCodeToCallSign(unsigned int) ?seekStation@RadioUiEngine@@QAEXH@Z @ 52 NONAME ; void RadioUiEngine::seekStation(int) @@ -73,19 +73,19 @@ ?trUtf8@RadioHistoryModel@@SA?AVQString@@PBD0H@Z @ 72 NONAME ; class QString RadioHistoryModel::trUtf8(char const *, char const *, int) ?list@RadioStationModel@@QBEABV?$QMap@IVRadioStation@@@@XZ @ 73 NONAME ; class QMap const & RadioStationModel::list(void) const ?tr@RadioStationModel@@SA?AVQString@@PBD0@Z @ 74 NONAME ; class QString RadioStationModel::tr(char const *, char const *) - ?hasRds@RadioStation@@QBE_NXZ @ 75 NONAME ; bool RadioStation::hasRds(void) const - ?findClosest@RadioStationModel@@QAE?AVRadioStation@@IW4Mode@StationSkip@@@Z @ 76 NONAME ; class RadioStation RadioStationModel::findClosest(unsigned int, enum StationSkip::Mode) - ?flags@RadioStationModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 77 NONAME ; class QFlags RadioStationModel::flags(class QModelIndex const &) const - ?launchRadioServer@RadioUiEngine@@SAXXZ @ 78 NONAME ; void RadioUiEngine::launchRadioServer(void) - ?staticMetaObject@RadioScannerEngine@@2UQMetaObject@@B @ 79 NONAME ; struct QMetaObject const RadioScannerEngine::staticMetaObject - ?id@RadioHistoryItem@@QBEHXZ @ 80 NONAME ; int RadioHistoryItem::id(void) const - ?stationsInRange@RadioUiEngine@@QAE?AV?$QList@VRadioStation@@@@II@Z @ 81 NONAME ; class QList RadioUiEngine::stationsInRange(unsigned int, unsigned int) - ?trUtf8@RadioUiEngine@@SA?AVQString@@PBD0@Z @ 82 NONAME ; class QString RadioUiEngine::trUtf8(char const *, char const *) - ?tr@RadioScannerEngine@@SA?AVQString@@PBD0H@Z @ 83 NONAME ; class QString RadioScannerEngine::tr(char const *, char const *, int) - ?setPiCode@RadioStation@@AAE_NHW4Region@RadioRegion@@@Z @ 84 NONAME ; bool RadioStation::setPiCode(int, enum RadioRegion::Region) - ?data_ptr@RadioHistoryItem@@QAEAAV?$QSharedDataPointer@VRadioHistoryItemPrivate@@@@XZ @ 85 NONAME ; class QSharedDataPointer & RadioHistoryItem::data_ptr(void) - ?radioText@RadioStation@@QBE?AVQString@@XZ @ 86 NONAME ; class QString RadioStation::radioText(void) const - ?setData@RadioStationModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 87 NONAME ; bool RadioStationModel::setData(class QModelIndex const &, class QVariant const &, int) + ?findClosest@RadioStationModel@@QAE?AVRadioStation@@IW4Mode@StationSkip@@@Z @ 75 NONAME ; class RadioStation RadioStationModel::findClosest(unsigned int, enum StationSkip::Mode) + ?flags@RadioStationModel@@UBE?AV?$QFlags@W4ItemFlag@Qt@@@@ABVQModelIndex@@@Z @ 76 NONAME ; class QFlags RadioStationModel::flags(class QModelIndex const &) const + ?launchRadioServer@RadioUiEngine@@SAXXZ @ 77 NONAME ; void RadioUiEngine::launchRadioServer(void) + ?staticMetaObject@RadioScannerEngine@@2UQMetaObject@@B @ 78 NONAME ; struct QMetaObject const RadioScannerEngine::staticMetaObject + ?id@RadioHistoryItem@@QBEHXZ @ 79 NONAME ; int RadioHistoryItem::id(void) const + ?stationsInRange@RadioUiEngine@@QAE?AV?$QList@VRadioStation@@@@II@Z @ 80 NONAME ; class QList RadioUiEngine::stationsInRange(unsigned int, unsigned int) + ?trUtf8@RadioUiEngine@@SA?AVQString@@PBD0@Z @ 81 NONAME ; class QString RadioUiEngine::trUtf8(char const *, char const *) + ?tr@RadioScannerEngine@@SA?AVQString@@PBD0H@Z @ 82 NONAME ; class QString RadioScannerEngine::tr(char const *, char const *, int) + ?setPiCode@RadioStation@@AAE_NHW4Region@RadioRegion@@@Z @ 83 NONAME ; bool RadioStation::setPiCode(int, enum RadioRegion::Region) + ?data_ptr@RadioHistoryItem@@QAEAAV?$QSharedDataPointer@VRadioHistoryItemPrivate@@@@XZ @ 84 NONAME ; class QSharedDataPointer & RadioHistoryItem::data_ptr(void) + ?radioText@RadioStation@@QBE?AVQString@@XZ @ 85 NONAME ; class QString RadioStation::radioText(void) const + ?setData@RadioStationModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 86 NONAME ; bool RadioStationModel::setData(class QModelIndex const &, class QVariant const &, int) + ?lastVolume@RadioUiEngine@@SAHXZ @ 87 NONAME ; int RadioUiEngine::lastVolume(void) ?isInManualSeekMode@RadioUiEngine@@QBE_NXZ @ 88 NONAME ; bool RadioUiEngine::isInManualSeekMode(void) const ?itemAtIndex@RadioHistoryModel@@QBE?AVRadioHistoryItem@@ABVQModelIndex@@@Z @ 89 NONAME ; class RadioHistoryItem RadioHistoryModel::itemAtIndex(class QModelIndex const &) const ?setVolume@RadioUiEngine@@QAEXH@Z @ 90 NONAME ; void RadioUiEngine::setVolume(int) @@ -141,115 +141,115 @@ ?isAntennaAttached@RadioUiEngine@@QBE_NXZ @ 140 NONAME ; bool RadioUiEngine::isAntennaAttached(void) const ?setStation@RadioHistoryItem@@QAEXABVQString@@@Z @ 141 NONAME ; void RadioHistoryItem::setStation(class QString const &) ?qt_metacast@RadioStationModel@@UAEPAXPBD@Z @ 142 NONAME ; void * RadioStationModel::qt_metacast(char const *) - ?presetIndex@RadioStation@@QBEHXZ @ 143 NONAME ; int RadioStation::presetIndex(void) const - ?cancel@RadioScannerEngine@@QAEXXZ @ 144 NONAME ; void RadioScannerEngine::cancel(void) - ?staticMetaObject@RadioStationModel@@2UQMetaObject@@B @ 145 NONAME ; struct QMetaObject const RadioStationModel::staticMetaObject - ?addRecognizedSong@RadioUiEngine@@QAEXABVQString@@0ABVRadioStation@@@Z @ 146 NONAME ; void RadioUiEngine::addRecognizedSong(class QString const &, class QString const &, class RadioStation const &) - ?emitMuteChanged@RadioUiEngine@@AAEX_N@Z @ 147 NONAME ; void RadioUiEngine::emitMuteChanged(bool) - ?setDynamicPsText@RadioStation@@AAEXABVQString@@@Z @ 148 NONAME ; void RadioStation::setDynamicPsText(class QString const &) - ?currentSongReset@RadioHistoryModel@@IAEXXZ @ 149 NONAME ; void RadioHistoryModel::currentSongReset(void) - ?removeByPresetIndex@RadioStationModel@@QAEXH@Z @ 150 NONAME ; void RadioStationModel::removeByPresetIndex(int) - ?d_func@RadioScannerEngine@@AAEPAVRadioScannerEnginePrivate@@XZ @ 151 NONAME ; class RadioScannerEnginePrivate * RadioScannerEngine::d_func(void) - ?isRenamed@RadioStation@@QBE_NXZ @ 152 NONAME ; bool RadioStation::isRenamed(void) const - ?stationAt@RadioStationModel@@QBE?AVRadioStation@@H@Z @ 153 NONAME ; class RadioStation RadioStationModel::stationAt(int) const - ?removeStation@RadioStationModel@@QAEXABVRadioStation@@@Z @ 154 NONAME ; void RadioStationModel::removeStation(class RadioStation const &) - ?openMusicStore@RadioUiEngine@@QAEXABVRadioHistoryItem@@W4MusicStore@1@@Z @ 155 NONAME ; void RadioUiEngine::openMusicStore(class RadioHistoryItem const &, enum RadioUiEngine::MusicStore) - ?metaObject@RadioUiEngine@@UBEPBUQMetaObject@@XZ @ 156 NONAME ; struct QMetaObject const * RadioUiEngine::metaObject(void) const - ?dynamicPsChanged@RadioStationModel@@IAEXABVRadioStation@@@Z @ 157 NONAME ; void RadioStationModel::dynamicPsChanged(class RadioStation const &) - ?setType@RadioStation@@QAEXV?$QFlags@W4TypeFlag@RadioStation@@@@@Z @ 158 NONAME ; void RadioStation::setType(class QFlags) - ??0RadioHistoryItem@@QAE@XZ @ 159 NONAME ; RadioHistoryItem::RadioHistoryItem(void) - ?removeByFrequency@RadioStationModel@@QAEXI@Z @ 160 NONAME ; void RadioStationModel::removeByFrequency(unsigned int) - ?isUsingLoudspeaker@RadioUiEngine@@QBE_NXZ @ 161 NONAME ; bool RadioUiEngine::isUsingLoudspeaker(void) const - ?findPresetIndex@RadioStationModel@@QAEHH@Z @ 162 NONAME ; int RadioStationModel::findPresetIndex(int) - ??0RadioHistoryItem@@QAE@ABV0@@Z @ 163 NONAME ; RadioHistoryItem::RadioHistoryItem(class RadioHistoryItem const &) - ?metaObject@RadioStationModel@@UBEPBUQMetaObject@@XZ @ 164 NONAME ; struct QMetaObject const * RadioStationModel::metaObject(void) const - ?getStaticMetaObject@RadioStationModel@@SAABUQMetaObject@@XZ @ 165 NONAME ; struct QMetaObject const & RadioStationModel::getStaticMetaObject(void) - ?isPoweringOff@RadioUiEngine@@QBE_NXZ @ 166 NONAME ; bool RadioUiEngine::isPoweringOff(void) const - ?lastTunedFrequency@RadioUiEngine@@SAII@Z @ 167 NONAME ; unsigned int RadioUiEngine::lastTunedFrequency(unsigned int) - ?tr@RadioScannerEngine@@SA?AVQString@@PBD0@Z @ 168 NONAME ; class QString RadioScannerEngine::tr(char const *, char const *) - ?removeAll@RadioHistoryModel@@QAEX_N@Z @ 169 NONAME ; void RadioHistoryModel::removeAll(bool) - ?hasGenre@RadioStation@@QBE_NXZ @ 170 NONAME ; bool RadioStation::hasGenre(void) const - ?audioRouteChanged@RadioUiEngine@@IAEX_N@Z @ 171 NONAME ; void RadioUiEngine::audioRouteChanged(bool) - ?setPowerOn@RadioUiEngine@@QAEXXZ @ 172 NONAME ; void RadioUiEngine::setPowerOn(void) - ?tr@RadioHistoryModel@@SA?AVQString@@PBD0H@Z @ 173 NONAME ; class QString RadioHistoryModel::tr(char const *, char const *, int) - ?dynamicPsText@RadioStation@@QBE?AVQString@@XZ @ 174 NONAME ; class QString RadioStation::dynamicPsText(void) const - ?isFirstTimeStart@RadioUiEngine@@QAE_NXZ @ 175 NONAME ; bool RadioUiEngine::isFirstTimeStart(void) - ?setMute@RadioUiEngine@@QAEX_N@Z @ 176 NONAME ; void RadioUiEngine::setMute(bool) - ?setGenre@RadioStation@@AAEXH@Z @ 177 NONAME ; void RadioStation::setGenre(int) - ??0RadioScannerEngine@@QAE@AAVRadioUiEnginePrivate@@@Z @ 178 NONAME ; RadioScannerEngine::RadioScannerEngine(class RadioUiEnginePrivate &) - ?emitRadioStatusChanged@RadioUiEngine@@AAEX_N@Z @ 179 NONAME ; void RadioUiEngine::emitRadioStatusChanged(bool) - ??_ERadioUiEngine@@UAE@I@Z @ 180 NONAME ; RadioUiEngine::~RadioUiEngine(unsigned int) - ?init@RadioUiEngine@@QAE_NXZ @ 181 NONAME ; bool RadioUiEngine::init(void) - ?setRadioText@RadioStation@@AAEXABVQString@@@Z @ 182 NONAME ; void RadioStation::setRadioText(class QString const &) - ?changeFlags@RadioStation@@QBE?AV?$QFlags@W4ChangeFlag@RadioStation@@@@XZ @ 183 NONAME ; class QFlags RadioStation::changeFlags(void) const - ?findFrequency@RadioStationModel@@QBE_NIAAVRadioStation@@W4Criteria@FindCriteria@@@Z @ 184 NONAME ; bool RadioStationModel::findFrequency(unsigned int, class RadioStation &, enum FindCriteria::Criteria) const - ?d_func@RadioStationModel@@AAEPAVRadioStationModelPrivate@@XZ @ 185 NONAME ; class RadioStationModelPrivate * RadioStationModel::d_func(void) - ?addRadioTextPlus@RadioHistoryModel@@AAEXHABVQString@@ABVRadioStation@@@Z @ 186 NONAME ; void RadioHistoryModel::addRadioTextPlus(int, class QString const &, class RadioStation const &) - ?qt_metacast@RadioHistoryModel@@UAEPAXPBD@Z @ 187 NONAME ; void * RadioHistoryModel::qt_metacast(char const *) - ?setDetail@RadioStationModel@@QAEXV?$QFlags@W4DetailFlag@RadioStationModel@@@@@Z @ 188 NONAME ; void RadioStationModel::setDetail(class QFlags) - ??1RadioUiEngine@@UAE@XZ @ 189 NONAME ; RadioUiEngine::~RadioUiEngine(void) - ?tr@RadioHistoryModel@@SA?AVQString@@PBD0@Z @ 190 NONAME ; class QString RadioHistoryModel::tr(char const *, char const *) - ?time@RadioHistoryItem@@QBE?AVQString@@XZ @ 191 NONAME ; class QString RadioHistoryItem::time(void) const - ?reportChangedData@RadioHistoryModel@@AAEXHH@Z @ 192 NONAME ; void RadioHistoryModel::reportChangedData(int, int) - ?artist@RadioHistoryItem@@QBE?AVQString@@XZ @ 193 NONAME ; class QString RadioHistoryItem::artist(void) const - ?initialize@RadioStationModel@@QAEXPAVRadioPresetStorage@@PAVRadioEngineWrapper@@@Z @ 194 NONAME ; void RadioStationModel::initialize(class RadioPresetStorage *, class RadioEngineWrapper *) - ?isType@RadioStation@@QBE_NV?$QFlags@W4TypeFlag@RadioStation@@@@@Z @ 195 NONAME ; bool RadioStation::isType(class QFlags) const - ?resetCurrentSong@RadioHistoryModel@@QAEXXZ @ 196 NONAME ; void RadioHistoryModel::resetCurrentSong(void) - ?d_func@RadioHistoryModel@@ABEPBVRadioHistoryModelPrivate@@XZ @ 197 NONAME ; class RadioHistoryModelPrivate const * RadioHistoryModel::d_func(void) const - ?volumeChanged@RadioUiEngine@@IAEXH@Z @ 198 NONAME ; void RadioUiEngine::volumeChanged(int) - ?title@RadioHistoryItem@@QBE?AVQString@@XZ @ 199 NONAME ; class QString RadioHistoryItem::title(void) const - ?stationFound@RadioScannerEngine@@IAEXABVRadioStation@@@Z @ 200 NONAME ; void RadioScannerEngine::stationFound(class RadioStation const &) - ?resetChangeFlags@RadioStation@@QAEXXZ @ 201 NONAME ; void RadioStation::resetChangeFlags(void) - ?powerOffRequested@RadioUiEngine@@IAEXXZ @ 202 NONAME ; void RadioUiEngine::powerOffRequested(void) - ?metaObject@RadioScannerEngine@@UBEPBUQMetaObject@@XZ @ 203 NONAME ; struct QMetaObject const * RadioScannerEngine::metaObject(void) const - ?qt_metacast@RadioScannerEngine@@UAEPAXPBD@Z @ 204 NONAME ; void * RadioScannerEngine::qt_metacast(char const *) - ?callSignChar@RadioStation@@AAEDI@Z @ 205 NONAME ; char RadioStation::callSignChar(unsigned int) - ??_ERadioStation@@UAE@I@Z @ 206 NONAME ; RadioStation::~RadioStation(unsigned int) - ?antennaStatusChanged@RadioUiEngine@@IAEX_N@Z @ 207 NONAME ; void RadioUiEngine::antennaStatusChanged(bool) - ?staticMetaObject@RadioHistoryModel@@2UQMetaObject@@B @ 208 NONAME ; struct QMetaObject const RadioHistoryModel::staticMetaObject - ?setFirstTimeStartPerformed@RadioUiEngine@@QAEX_N@Z @ 209 NONAME ; void RadioUiEngine::setFirstTimeStartPerformed(bool) - ??0RadioStation@@AAE@HI@Z @ 210 NONAME ; RadioStation::RadioStation(int, unsigned int) - ?qt_metacall@RadioStationModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 211 NONAME ; int RadioStationModel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?isDetached@RadioStation@@QBE_NXZ @ 212 NONAME ; bool RadioStation::isDetached(void) const - ??0RadioHistoryItem@@QAE@ABVQString@@0@Z @ 213 NONAME ; RadioHistoryItem::RadioHistoryItem(class QString const &, class QString const &) - ?name@RadioStation@@QBE?AVQString@@XZ @ 214 NONAME ; class QString RadioStation::name(void) const - ?hasDataChanged@RadioStation@@QBE_NV?$QFlags@W4ChangeFlag@RadioStation@@@@@Z @ 215 NONAME ; bool RadioStation::hasDataChanged(class QFlags) const - ?removeAll@RadioStationModel@@QAEXW4RemoveMode@1@@Z @ 216 NONAME ; void RadioStationModel::removeAll(enum RadioStationModel::RemoveMode) - ?data@RadioStationModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 217 NONAME ; class QVariant RadioStationModel::data(class QModelIndex const &, int) const - ?itemAdded@RadioHistoryModel@@IAEXXZ @ 218 NONAME ; void RadioHistoryModel::itemAdded(void) - ?getStaticMetaObject@RadioUiEngine@@SAABUQMetaObject@@XZ @ 219 NONAME ; struct QMetaObject const & RadioUiEngine::getStaticMetaObject(void) - ?setShowDetails@RadioHistoryModel@@QAEX_N@Z @ 220 NONAME ; void RadioHistoryModel::setShowDetails(bool) - ?launchSongRecognition@RadioUiEngine@@QAEXXZ @ 221 NONAME ; void RadioUiEngine::launchSongRecognition(void) - ?rowCount@RadioStationModel@@UBEHABVQModelIndex@@@Z @ 222 NONAME ; int RadioStationModel::rowCount(class QModelIndex const &) const - ?iterateCallSign@RadioStation@@AAE?AVQString@@HH@Z @ 223 NONAME ; class QString RadioStation::iterateCallSign(int, int) - ?toggleMute@RadioUiEngine@@QAEXXZ @ 224 NONAME ; void RadioUiEngine::toggleMute(void) - ?piCode@RadioStation@@QBEHXZ @ 225 NONAME ; int RadioStation::piCode(void) const - ?genreToString@RadioUiEngine@@QAE?AVQString@@HW4Target@GenreTarget@@@Z @ 226 NONAME ; class QString RadioUiEngine::genreToString(int, enum GenreTarget::Target) - ??0RadioUiEngine@@QAE@PAVQObject@@@Z @ 227 NONAME ; RadioUiEngine::RadioUiEngine(class QObject *) - ?hasRadiotext@RadioStation@@QBE_NXZ @ 228 NONAME ; bool RadioStation::hasRadiotext(void) const - ?setCurrentTime@RadioHistoryItem@@QAEXXZ @ 229 NONAME ; void RadioHistoryItem::setCurrentTime(void) - ?d_func@RadioUiEngine@@AAEPAVRadioUiEnginePrivate@@XZ @ 230 NONAME ; class RadioUiEnginePrivate * RadioUiEngine::d_func(void) - ?station@RadioHistoryItem@@QBE?AVQString@@XZ @ 231 NONAME ; class QString RadioHistoryItem::station(void) const - ??_ERadioHistoryModel@@UAE@I@Z @ 232 NONAME ; RadioHistoryModel::~RadioHistoryModel(unsigned int) - ?minFrequency@RadioUiEngine@@QBEIXZ @ 233 NONAME ; unsigned int RadioUiEngine::minFrequency(void) const - ?isTagged@RadioHistoryItem@@QBE_NXZ @ 234 NONAME ; bool RadioHistoryItem::isTagged(void) const - ?addScannedFrequency@RadioScannerEngine@@QAEXI@Z @ 235 NONAME ; void RadioScannerEngine::addScannedFrequency(unsigned int) - ?setShowTagged@RadioHistoryModel@@QAEX_N@Z @ 236 NONAME ; void RadioHistoryModel::setShowTagged(bool) - ?setPresetIndex@RadioStation@@AAEXH@Z @ 237 NONAME ; void RadioStation::setPresetIndex(int) - ?setName@RadioStation@@AAEXABVQString@@@Z @ 238 NONAME ; void RadioStation::setName(class QString const &) - ?trUtf8@RadioHistoryModel@@SA?AVQString@@PBD0@Z @ 239 NONAME ; class QString RadioHistoryModel::trUtf8(char const *, char const *) - ?frequencyStepSize@RadioUiEngine@@QBEIXZ @ 240 NONAME ; unsigned int RadioUiEngine::frequencyStepSize(void) const - ??0RadioHistoryModel@@AAE@AAVRadioUiEngine@@@Z @ 241 NONAME ; RadioHistoryModel::RadioHistoryModel(class RadioUiEngine &) - ?trUtf8@RadioStationModel@@SA?AVQString@@PBD0H@Z @ 242 NONAME ; class QString RadioStationModel::trUtf8(char const *, char const *, int) - ?radioTextReceived@RadioStationModel@@IAEXABVRadioStation@@@Z @ 243 NONAME ; void RadioStationModel::radioTextReceived(class RadioStation const &) - ?isFavorite@RadioStation@@QBE_NXZ @ 244 NONAME ; bool RadioStation::isFavorite(void) const - ?metaObject@RadioHistoryModel@@UBEPBUQMetaObject@@XZ @ 245 NONAME ; struct QMetaObject const * RadioHistoryModel::metaObject(void) const - ?seekingStarted@RadioUiEngine@@IAEXH@Z @ 246 NONAME ; void RadioUiEngine::seekingStarted(int) - ?emitSeekingStarted@RadioUiEngine@@AAEXW4Direction@Seek@@@Z @ 247 NONAME ; void RadioUiEngine::emitSeekingStarted(enum Seek::Direction) - ?isRecognizedByRds@RadioHistoryItem@@QBE_NXZ @ 248 NONAME ; bool RadioHistoryItem::isRecognizedByRds(void) const - ?setFavorites@RadioStationModel@@QAEXABV?$QList@VQModelIndex@@@@@Z @ 249 NONAME ; void RadioStationModel::setFavorites(class QList const &) - ?setArtist@RadioHistoryItem@@QAEXABVQString@@@Z @ 250 NONAME ; void RadioHistoryItem::setArtist(class QString const &) - ??_ERadioStationModel@@UAE@I@Z @ 251 NONAME ; RadioStationModel::~RadioStationModel(unsigned int) - ?setTitle@RadioHistoryItem@@QAEXABVQString@@@Z @ 252 NONAME ; void RadioHistoryItem::setTitle(class QString const &) - ?lastVolume@RadioUiEngine@@SAHXZ @ 253 NONAME ; int RadioUiEngine::lastVolume(void) + ?hasSentRds@RadioStation@@QBE_NXZ @ 143 NONAME ; bool RadioStation::hasSentRds(void) const + ?presetIndex@RadioStation@@QBEHXZ @ 144 NONAME ; int RadioStation::presetIndex(void) const + ?cancel@RadioScannerEngine@@QAEXXZ @ 145 NONAME ; void RadioScannerEngine::cancel(void) + ?staticMetaObject@RadioStationModel@@2UQMetaObject@@B @ 146 NONAME ; struct QMetaObject const RadioStationModel::staticMetaObject + ?addRecognizedSong@RadioUiEngine@@QAEXABVQString@@0ABVRadioStation@@@Z @ 147 NONAME ; void RadioUiEngine::addRecognizedSong(class QString const &, class QString const &, class RadioStation const &) + ?emitMuteChanged@RadioUiEngine@@AAEX_N@Z @ 148 NONAME ; void RadioUiEngine::emitMuteChanged(bool) + ?setDynamicPsText@RadioStation@@AAEXABVQString@@@Z @ 149 NONAME ; void RadioStation::setDynamicPsText(class QString const &) + ?currentSongReset@RadioHistoryModel@@IAEXXZ @ 150 NONAME ; void RadioHistoryModel::currentSongReset(void) + ?removeByPresetIndex@RadioStationModel@@QAEXH@Z @ 151 NONAME ; void RadioStationModel::removeByPresetIndex(int) + ?d_func@RadioScannerEngine@@AAEPAVRadioScannerEnginePrivate@@XZ @ 152 NONAME ; class RadioScannerEnginePrivate * RadioScannerEngine::d_func(void) + ?isRenamed@RadioStation@@QBE_NXZ @ 153 NONAME ; bool RadioStation::isRenamed(void) const + ?stationAt@RadioStationModel@@QBE?AVRadioStation@@H@Z @ 154 NONAME ; class RadioStation RadioStationModel::stationAt(int) const + ?removeStation@RadioStationModel@@QAEXABVRadioStation@@@Z @ 155 NONAME ; void RadioStationModel::removeStation(class RadioStation const &) + ?openMusicStore@RadioUiEngine@@QAEXABVRadioHistoryItem@@W4MusicStore@1@@Z @ 156 NONAME ; void RadioUiEngine::openMusicStore(class RadioHistoryItem const &, enum RadioUiEngine::MusicStore) + ?metaObject@RadioUiEngine@@UBEPBUQMetaObject@@XZ @ 157 NONAME ; struct QMetaObject const * RadioUiEngine::metaObject(void) const + ?dynamicPsChanged@RadioStationModel@@IAEXABVRadioStation@@@Z @ 158 NONAME ; void RadioStationModel::dynamicPsChanged(class RadioStation const &) + ?setType@RadioStation@@QAEXV?$QFlags@W4TypeFlag@RadioStation@@@@@Z @ 159 NONAME ; void RadioStation::setType(class QFlags) + ??0RadioHistoryItem@@QAE@XZ @ 160 NONAME ; RadioHistoryItem::RadioHistoryItem(void) + ?removeByFrequency@RadioStationModel@@QAEXI@Z @ 161 NONAME ; void RadioStationModel::removeByFrequency(unsigned int) + ?isUsingLoudspeaker@RadioUiEngine@@QBE_NXZ @ 162 NONAME ; bool RadioUiEngine::isUsingLoudspeaker(void) const + ?findPresetIndex@RadioStationModel@@QAEHH@Z @ 163 NONAME ; int RadioStationModel::findPresetIndex(int) + ??0RadioHistoryItem@@QAE@ABV0@@Z @ 164 NONAME ; RadioHistoryItem::RadioHistoryItem(class RadioHistoryItem const &) + ?metaObject@RadioStationModel@@UBEPBUQMetaObject@@XZ @ 165 NONAME ; struct QMetaObject const * RadioStationModel::metaObject(void) const + ?getStaticMetaObject@RadioStationModel@@SAABUQMetaObject@@XZ @ 166 NONAME ; struct QMetaObject const & RadioStationModel::getStaticMetaObject(void) + ?isPoweringOff@RadioUiEngine@@QBE_NXZ @ 167 NONAME ; bool RadioUiEngine::isPoweringOff(void) const + ?lastTunedFrequency@RadioUiEngine@@SAII@Z @ 168 NONAME ; unsigned int RadioUiEngine::lastTunedFrequency(unsigned int) + ?tr@RadioScannerEngine@@SA?AVQString@@PBD0@Z @ 169 NONAME ; class QString RadioScannerEngine::tr(char const *, char const *) + ?removeAll@RadioHistoryModel@@QAEX_N@Z @ 170 NONAME ; void RadioHistoryModel::removeAll(bool) + ?hasGenre@RadioStation@@QBE_NXZ @ 171 NONAME ; bool RadioStation::hasGenre(void) const + ?audioRouteChanged@RadioUiEngine@@IAEX_N@Z @ 172 NONAME ; void RadioUiEngine::audioRouteChanged(bool) + ?setPowerOn@RadioUiEngine@@QAEXXZ @ 173 NONAME ; void RadioUiEngine::setPowerOn(void) + ?tr@RadioHistoryModel@@SA?AVQString@@PBD0H@Z @ 174 NONAME ; class QString RadioHistoryModel::tr(char const *, char const *, int) + ?dynamicPsText@RadioStation@@QBE?AVQString@@XZ @ 175 NONAME ; class QString RadioStation::dynamicPsText(void) const + ?isFirstTimeStart@RadioUiEngine@@QAE_NXZ @ 176 NONAME ; bool RadioUiEngine::isFirstTimeStart(void) + ?setMute@RadioUiEngine@@QAEX_N@Z @ 177 NONAME ; void RadioUiEngine::setMute(bool) + ?setGenre@RadioStation@@AAEXH@Z @ 178 NONAME ; void RadioStation::setGenre(int) + ??0RadioScannerEngine@@QAE@AAVRadioUiEnginePrivate@@@Z @ 179 NONAME ; RadioScannerEngine::RadioScannerEngine(class RadioUiEnginePrivate &) + ?emitRadioStatusChanged@RadioUiEngine@@AAEX_N@Z @ 180 NONAME ; void RadioUiEngine::emitRadioStatusChanged(bool) + ??_ERadioUiEngine@@UAE@I@Z @ 181 NONAME ; RadioUiEngine::~RadioUiEngine(unsigned int) + ?init@RadioUiEngine@@QAE_NXZ @ 182 NONAME ; bool RadioUiEngine::init(void) + ?setRadioText@RadioStation@@AAEXABVQString@@@Z @ 183 NONAME ; void RadioStation::setRadioText(class QString const &) + ?changeFlags@RadioStation@@QBE?AV?$QFlags@W4ChangeFlag@RadioStation@@@@XZ @ 184 NONAME ; class QFlags RadioStation::changeFlags(void) const + ?findFrequency@RadioStationModel@@QBE_NIAAVRadioStation@@W4Criteria@FindCriteria@@@Z @ 185 NONAME ; bool RadioStationModel::findFrequency(unsigned int, class RadioStation &, enum FindCriteria::Criteria) const + ?d_func@RadioStationModel@@AAEPAVRadioStationModelPrivate@@XZ @ 186 NONAME ; class RadioStationModelPrivate * RadioStationModel::d_func(void) + ?addRadioTextPlus@RadioHistoryModel@@AAEXHABVQString@@ABVRadioStation@@@Z @ 187 NONAME ; void RadioHistoryModel::addRadioTextPlus(int, class QString const &, class RadioStation const &) + ?qt_metacast@RadioHistoryModel@@UAEPAXPBD@Z @ 188 NONAME ; void * RadioHistoryModel::qt_metacast(char const *) + ?setDetail@RadioStationModel@@QAEXV?$QFlags@W4DetailFlag@RadioStationModel@@@@@Z @ 189 NONAME ; void RadioStationModel::setDetail(class QFlags) + ??1RadioUiEngine@@UAE@XZ @ 190 NONAME ; RadioUiEngine::~RadioUiEngine(void) + ?tr@RadioHistoryModel@@SA?AVQString@@PBD0@Z @ 191 NONAME ; class QString RadioHistoryModel::tr(char const *, char const *) + ?time@RadioHistoryItem@@QBE?AVQString@@XZ @ 192 NONAME ; class QString RadioHistoryItem::time(void) const + ?reportChangedData@RadioHistoryModel@@AAEXHH@Z @ 193 NONAME ; void RadioHistoryModel::reportChangedData(int, int) + ?artist@RadioHistoryItem@@QBE?AVQString@@XZ @ 194 NONAME ; class QString RadioHistoryItem::artist(void) const + ?initialize@RadioStationModel@@QAEXPAVRadioPresetStorage@@PAVRadioEngineWrapper@@@Z @ 195 NONAME ; void RadioStationModel::initialize(class RadioPresetStorage *, class RadioEngineWrapper *) + ?isType@RadioStation@@QBE_NV?$QFlags@W4TypeFlag@RadioStation@@@@@Z @ 196 NONAME ; bool RadioStation::isType(class QFlags) const + ?resetCurrentSong@RadioHistoryModel@@QAEXXZ @ 197 NONAME ; void RadioHistoryModel::resetCurrentSong(void) + ?d_func@RadioHistoryModel@@ABEPBVRadioHistoryModelPrivate@@XZ @ 198 NONAME ; class RadioHistoryModelPrivate const * RadioHistoryModel::d_func(void) const + ?volumeChanged@RadioUiEngine@@IAEXH@Z @ 199 NONAME ; void RadioUiEngine::volumeChanged(int) + ?title@RadioHistoryItem@@QBE?AVQString@@XZ @ 200 NONAME ; class QString RadioHistoryItem::title(void) const + ?stationFound@RadioScannerEngine@@IAEXABVRadioStation@@@Z @ 201 NONAME ; void RadioScannerEngine::stationFound(class RadioStation const &) + ?resetChangeFlags@RadioStation@@QAEXXZ @ 202 NONAME ; void RadioStation::resetChangeFlags(void) + ?powerOffRequested@RadioUiEngine@@IAEXXZ @ 203 NONAME ; void RadioUiEngine::powerOffRequested(void) + ?metaObject@RadioScannerEngine@@UBEPBUQMetaObject@@XZ @ 204 NONAME ; struct QMetaObject const * RadioScannerEngine::metaObject(void) const + ?qt_metacast@RadioScannerEngine@@UAEPAXPBD@Z @ 205 NONAME ; void * RadioScannerEngine::qt_metacast(char const *) + ?callSignChar@RadioStation@@AAEDI@Z @ 206 NONAME ; char RadioStation::callSignChar(unsigned int) + ??_ERadioStation@@UAE@I@Z @ 207 NONAME ; RadioStation::~RadioStation(unsigned int) + ?antennaStatusChanged@RadioUiEngine@@IAEX_N@Z @ 208 NONAME ; void RadioUiEngine::antennaStatusChanged(bool) + ?staticMetaObject@RadioHistoryModel@@2UQMetaObject@@B @ 209 NONAME ; struct QMetaObject const RadioHistoryModel::staticMetaObject + ?setFirstTimeStartPerformed@RadioUiEngine@@QAEX_N@Z @ 210 NONAME ; void RadioUiEngine::setFirstTimeStartPerformed(bool) + ??0RadioStation@@AAE@HI@Z @ 211 NONAME ; RadioStation::RadioStation(int, unsigned int) + ?qt_metacall@RadioStationModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 212 NONAME ; int RadioStationModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isDetached@RadioStation@@QBE_NXZ @ 213 NONAME ; bool RadioStation::isDetached(void) const + ??0RadioHistoryItem@@QAE@ABVQString@@0@Z @ 214 NONAME ; RadioHistoryItem::RadioHistoryItem(class QString const &, class QString const &) + ?name@RadioStation@@QBE?AVQString@@XZ @ 215 NONAME ; class QString RadioStation::name(void) const + ?hasDataChanged@RadioStation@@QBE_NV?$QFlags@W4ChangeFlag@RadioStation@@@@@Z @ 216 NONAME ; bool RadioStation::hasDataChanged(class QFlags) const + ?removeAll@RadioStationModel@@QAEXW4RemoveMode@1@@Z @ 217 NONAME ; void RadioStationModel::removeAll(enum RadioStationModel::RemoveMode) + ?data@RadioStationModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 218 NONAME ; class QVariant RadioStationModel::data(class QModelIndex const &, int) const + ?itemAdded@RadioHistoryModel@@IAEXXZ @ 219 NONAME ; void RadioHistoryModel::itemAdded(void) + ?getStaticMetaObject@RadioUiEngine@@SAABUQMetaObject@@XZ @ 220 NONAME ; struct QMetaObject const & RadioUiEngine::getStaticMetaObject(void) + ?setShowDetails@RadioHistoryModel@@QAEX_N@Z @ 221 NONAME ; void RadioHistoryModel::setShowDetails(bool) + ?launchSongRecognition@RadioUiEngine@@QAEXXZ @ 222 NONAME ; void RadioUiEngine::launchSongRecognition(void) + ?rowCount@RadioStationModel@@UBEHABVQModelIndex@@@Z @ 223 NONAME ; int RadioStationModel::rowCount(class QModelIndex const &) const + ?iterateCallSign@RadioStation@@AAE?AVQString@@HH@Z @ 224 NONAME ; class QString RadioStation::iterateCallSign(int, int) + ?toggleMute@RadioUiEngine@@QAEXXZ @ 225 NONAME ; void RadioUiEngine::toggleMute(void) + ?piCode@RadioStation@@QBEHXZ @ 226 NONAME ; int RadioStation::piCode(void) const + ?genreToString@RadioUiEngine@@QAE?AVQString@@HW4Target@GenreTarget@@@Z @ 227 NONAME ; class QString RadioUiEngine::genreToString(int, enum GenreTarget::Target) + ??0RadioUiEngine@@QAE@PAVQObject@@@Z @ 228 NONAME ; RadioUiEngine::RadioUiEngine(class QObject *) + ?hasRadiotext@RadioStation@@QBE_NXZ @ 229 NONAME ; bool RadioStation::hasRadiotext(void) const + ?setCurrentTime@RadioHistoryItem@@QAEXXZ @ 230 NONAME ; void RadioHistoryItem::setCurrentTime(void) + ?d_func@RadioUiEngine@@AAEPAVRadioUiEnginePrivate@@XZ @ 231 NONAME ; class RadioUiEnginePrivate * RadioUiEngine::d_func(void) + ?station@RadioHistoryItem@@QBE?AVQString@@XZ @ 232 NONAME ; class QString RadioHistoryItem::station(void) const + ??_ERadioHistoryModel@@UAE@I@Z @ 233 NONAME ; RadioHistoryModel::~RadioHistoryModel(unsigned int) + ?minFrequency@RadioUiEngine@@QBEIXZ @ 234 NONAME ; unsigned int RadioUiEngine::minFrequency(void) const + ?isTagged@RadioHistoryItem@@QBE_NXZ @ 235 NONAME ; bool RadioHistoryItem::isTagged(void) const + ?addScannedFrequency@RadioScannerEngine@@QAEXI@Z @ 236 NONAME ; void RadioScannerEngine::addScannedFrequency(unsigned int) + ?setShowTagged@RadioHistoryModel@@QAEX_N@Z @ 237 NONAME ; void RadioHistoryModel::setShowTagged(bool) + ?setPresetIndex@RadioStation@@AAEXH@Z @ 238 NONAME ; void RadioStation::setPresetIndex(int) + ?setName@RadioStation@@AAEXABVQString@@@Z @ 239 NONAME ; void RadioStation::setName(class QString const &) + ?trUtf8@RadioHistoryModel@@SA?AVQString@@PBD0@Z @ 240 NONAME ; class QString RadioHistoryModel::trUtf8(char const *, char const *) + ?frequencyStepSize@RadioUiEngine@@QBEIXZ @ 241 NONAME ; unsigned int RadioUiEngine::frequencyStepSize(void) const + ??0RadioHistoryModel@@AAE@AAVRadioUiEngine@@@Z @ 242 NONAME ; RadioHistoryModel::RadioHistoryModel(class RadioUiEngine &) + ?trUtf8@RadioStationModel@@SA?AVQString@@PBD0H@Z @ 243 NONAME ; class QString RadioStationModel::trUtf8(char const *, char const *, int) + ?radioTextReceived@RadioStationModel@@IAEXABVRadioStation@@@Z @ 244 NONAME ; void RadioStationModel::radioTextReceived(class RadioStation const &) + ?isFavorite@RadioStation@@QBE_NXZ @ 245 NONAME ; bool RadioStation::isFavorite(void) const + ?metaObject@RadioHistoryModel@@UBEPBUQMetaObject@@XZ @ 246 NONAME ; struct QMetaObject const * RadioHistoryModel::metaObject(void) const + ?seekingStarted@RadioUiEngine@@IAEXH@Z @ 247 NONAME ; void RadioUiEngine::seekingStarted(int) + ?emitSeekingStarted@RadioUiEngine@@AAEXW4Direction@Seek@@@Z @ 248 NONAME ; void RadioUiEngine::emitSeekingStarted(enum Seek::Direction) + ?isRecognizedByRds@RadioHistoryItem@@QBE_NXZ @ 249 NONAME ; bool RadioHistoryItem::isRecognizedByRds(void) const + ?setFavorites@RadioStationModel@@QAEXABV?$QList@VQModelIndex@@@@@Z @ 250 NONAME ; void RadioStationModel::setFavorites(class QList const &) + ?setArtist@RadioHistoryItem@@QAEXABVQString@@@Z @ 251 NONAME ; void RadioHistoryItem::setArtist(class QString const &) + ??_ERadioStationModel@@UAE@I@Z @ 252 NONAME ; RadioStationModel::~RadioStationModel(unsigned int) + ?setTitle@RadioHistoryItem@@QAEXABVQString@@@Z @ 253 NONAME ; void RadioHistoryItem::setTitle(class QString const &) diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/bwins/fmradiowidgetsu.def --- a/radioapp/bwins/fmradiowidgetsu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/bwins/fmradiowidgetsu.def Wed Aug 18 09:49:03 2010 +0300 @@ -1,9 +1,9 @@ EXPORTS ?trUtf8@RadioWindow@@SA?AVQString@@PBD0H@Z @ 1 NONAME ; class QString RadioWindow::trUtf8(char const *, char const *, int) ?nextIndex@RadioStationCarousel@@AAEHH@Z @ 2 NONAME ; int RadioStationCarousel::nextIndex(int) - ?scrollToIndex@RadioStationCarousel@@AAEXHW4Direction@Scroll@@V?$QFlags@W4ScrollFlag@RadioStationCarousel@@@@@Z @ 3 NONAME ; void RadioStationCarousel::scrollToIndex(int, enum Scroll::Direction, class QFlags) - ?drawOffScreen@RadioStationCarousel@@QAEXAAVQPainter@@@Z @ 4 NONAME ; void RadioStationCarousel::drawOffScreen(class QPainter &) - ?updateItem@RadioFrequencyStrip@@AAEXPAVRadioFrequencyItem@@II@Z @ 5 NONAME ; void RadioFrequencyStrip::updateItem(class RadioFrequencyItem *, unsigned int, unsigned int) + ?stationsInRange@RadioFrequencyStrip@@EBE?AV?$QList@UStationMarker@FrequencyStrip@@@@II@Z @ 3 NONAME ; class QList RadioFrequencyStrip::stationsInRange(unsigned int, unsigned int) const + ?scrollToIndex@RadioStationCarousel@@AAEXHW4Direction@Scroll@@V?$QFlags@W4ScrollFlag@RadioStationCarousel@@@@@Z @ 4 NONAME ; void RadioStationCarousel::scrollToIndex(int, enum Scroll::Direction, class QFlags) + ?drawOffScreen@RadioStationCarousel@@QAEXAAVQPainter@@@Z @ 5 NONAME ; void RadioStationCarousel::drawOffScreen(class QPainter &) ?qt_metacast@RadioFadingLabel@@UAEPAXPBD@Z @ 6 NONAME ; void * RadioFadingLabel::qt_metacast(char const *) ?findStation@RadioStationCarousel@@EAE?AVRadioStation@@I@Z @ 7 NONAME ; class RadioStation RadioStationCarousel::findStation(unsigned int) ?animateNewStation@RadioStationCarousel@@QAEXABVRadioStation@@@Z @ 8 NONAME ; void RadioStationCarousel::animateNewStation(class RadioStation const &) @@ -11,155 +11,124 @@ ?gestureEvent@RadioStationCarousel@@EAEXPAVQGestureEvent@@@Z @ 10 NONAME ; void RadioStationCarousel::gestureEvent(class QGestureEvent *) ?setFavoriteIcon@RadioStationCarousel@@QAEXABVHbIcon@@@Z @ 11 NONAME ; void RadioStationCarousel::setFavoriteIcon(class HbIcon const &) ?update@RadioStationCarousel@@AAEXABVRadioStation@@@Z @ 12 NONAME ; void RadioStationCarousel::update(class RadioStation const &) - ?addFrequencyPos@RadioFrequencyStrip@@AAEXHIPAVRadioFrequencyItem@@@Z @ 13 NONAME ; void RadioFrequencyStrip::addFrequencyPos(int, unsigned int, class RadioFrequencyItem *) - ?trUtf8@RadioFadingLabel@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString RadioFadingLabel::trUtf8(char const *, char const *) - ?setScanningMode@RadioFrequencyStrip@@QAEX_N@Z @ 15 NONAME ; void RadioFrequencyStrip::setScanningMode(bool) - ?handleUrlClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 16 NONAME ; void RadioStationCarousel::handleUrlClicked(class RadioStation const &) - ?createItemPrimitive@RadioFrequencyStrip@@EAEPAVQGraphicsItem@@PAV2@@Z @ 17 NONAME ; class QGraphicsItem * RadioFrequencyStrip::createItemPrimitive(class QGraphicsItem *) - ?skipRequested@RadioStationCarousel@@IAEXH@Z @ 18 NONAME ; void RadioStationCarousel::skipRequested(int) - ?setTextWithoutFading@RadioFadingLabel@@QAEXABVQString@@@Z @ 19 NONAME ; void RadioFadingLabel::setTextWithoutFading(class QString const &) - ?updateAntennaStatus@RadioWindow@@AAEX_N@Z @ 20 NONAME ; void RadioWindow::updateAntennaStatus(bool) - ?handleIconClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 21 NONAME ; void RadioStationCarousel::handleIconClicked(class RadioStation const &) - ?resizeEvent@RadioFrequencyStrip@@EAEXPAVQGraphicsSceneResizeEvent@@@Z @ 22 NONAME ; void RadioFrequencyStrip::resizeEvent(class QGraphicsSceneResizeEvent *) - ?init@RadioFrequencyStrip@@QAEXPAVRadioUiEngine@@AAVRadioUiLoader@@@Z @ 23 NONAME ; void RadioFrequencyStrip::init(class RadioUiEngine *, class RadioUiLoader &) - ?initButtons@RadioFrequencyStrip@@AAEXXZ @ 24 NONAME ; void RadioFrequencyStrip::initButtons(void) - ?qt_metacall@RadioStationCarousel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int RadioStationCarousel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?isInitialized@RadioStationCarousel@@ABE_NXZ @ 26 NONAME ; bool RadioStationCarousel::isInitialized(void) const - ?init@RadioStationCarousel@@QAEXAAVRadioUiLoader@@PAVRadioUiEngine@@@Z @ 27 NONAME ; void RadioStationCarousel::init(class RadioUiLoader &, class RadioUiEngine *) - ?manualSeekChanged@RadioFrequencyStrip@@IAEX_N@Z @ 28 NONAME ; void RadioFrequencyStrip::manualSeekChanged(bool) - ?scrollPosChanged@RadioStationCarousel@@AAEXABVQPointF@@@Z @ 29 NONAME ; void RadioStationCarousel::scrollPosChanged(class QPointF const &) - ?frequencyChanged@RadioFrequencyStrip@@IAEXIHH@Z @ 30 NONAME ; void RadioFrequencyStrip::frequencyChanged(unsigned int, int, int) - ?setAutoScrollTime@RadioStationCarousel@@QAEXH@Z @ 31 NONAME ; void RadioStationCarousel::setAutoScrollTime(int) - ?prevIndex@RadioStationCarousel@@AAEHH@Z @ 32 NONAME ; int RadioStationCarousel::prevIndex(int) - ?trUtf8@RadioStationCarousel@@SA?AVQString@@PBD0@Z @ 33 NONAME ; class QString RadioStationCarousel::trUtf8(char const *, char const *) - ?tr@RadioStationCarousel@@SA?AVQString@@PBD0@Z @ 34 NONAME ; class QString RadioStationCarousel::tr(char const *, char const *) - ?skip@RadioStationCarousel@@AAEXW4Mode@StationSkip@@@Z @ 35 NONAME ; void RadioStationCarousel::skip(enum StationSkip::Mode) - ?selectorPos@RadioFrequencyStrip@@ABEHXZ @ 36 NONAME ; int RadioFrequencyStrip::selectorPos(void) const - ??1RadioWindow@@UAE@XZ @ 37 NONAME ; RadioWindow::~RadioWindow(void) - ?skipRequested@RadioFrequencyStrip@@IAEXH@Z @ 38 NONAME ; void RadioFrequencyStrip::skipRequested(int) - ?setText@RadioFadingLabel@@QAEXABVQString@@@Z @ 39 NONAME ; void RadioFadingLabel::setText(class QString const &) - ?showEvent@RadioStationCarousel@@EAEXPAVQShowEvent@@@Z @ 40 NONAME ; void RadioStationCarousel::showEvent(class QShowEvent *) - ?mousePressEvent@RadioStationCarousel@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 41 NONAME ; void RadioStationCarousel::mousePressEvent(class QGraphicsSceneMouseEvent *) - ?trUtf8@RadioFrequencyStrip@@SA?AVQString@@PBD0@Z @ 42 NONAME ; class QString RadioFrequencyStrip::trUtf8(char const *, char const *) - ?handleScrollingEnd@RadioFrequencyStrip@@AAEXXZ @ 43 NONAME ; void RadioFrequencyStrip::handleScrollingEnd(void) - ?activateView@RadioWindow@@AAEXPAVRadioViewBase@@ABVQString@@V?$QFlags@W4ViewSwitchFlag@Hb@@@@@Z @ 44 NONAME ; void RadioWindow::activateView(class RadioViewBase *, class QString const &, class QFlags) - ?calculateDifference@RadioStationCarousel@@AAEHHAAW4Direction@Scroll@@@Z @ 45 NONAME ; int RadioStationCarousel::calculateDifference(int, enum Scroll::Direction &) - ?orientationSection@RadioWindow@@QAE?AVQString@@XZ @ 46 NONAME ; class QString RadioWindow::orientationSection(void) - ?updateStation@RadioFrequencyStrip@@AAEXABVQModelIndex@@HH@Z @ 47 NONAME ; void RadioFrequencyStrip::updateStation(class QModelIndex const &, int, int) - ??1RadioFrequencyStrip@@UAE@XZ @ 48 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(void) - ?setItemHeight@RadioFrequencyStrip@@QAEXH@Z @ 49 NONAME ; void RadioFrequencyStrip::setItemHeight(int) - ?queryOfflineUsage@RadioWindow@@AAEXW4Profile@QSystemDeviceInfo@QtMobility@@@Z @ 50 NONAME ; void RadioWindow::queryOfflineUsage(enum QtMobility::QSystemDeviceInfo::Profile) - ?cancelAnimation@RadioStationCarousel@@QAEXXZ @ 51 NONAME ; void RadioStationCarousel::cancelAnimation(void) - ?changeEvent@RadioFrequencyStrip@@EAEXPAVQEvent@@@Z @ 52 NONAME ; void RadioFrequencyStrip::changeEvent(class QEvent *) - ?staticMetaObject@RadioStationCarousel@@2UQMetaObject@@B @ 53 NONAME ; struct QMetaObject const RadioStationCarousel::staticMetaObject - ?qt_metacall@RadioFadingLabel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 54 NONAME ; int RadioFadingLabel::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0RadioFrequencyStrip@@QAE@XZ @ 55 NONAME ; RadioFrequencyStrip::RadioFrequencyStrip(void) - ?timerEvent@RadioFrequencyStrip@@EAEXPAVQTimerEvent@@@Z @ 56 NONAME ; void RadioFrequencyStrip::timerEvent(class QTimerEvent *) - ?setCenterIndex@RadioStationCarousel@@AAEXHV?$QFlags@W4ScrollFlag@RadioStationCarousel@@@@@Z @ 57 NONAME ; void RadioStationCarousel::setCenterIndex(int, class QFlags) - ?resizeEvent@RadioStationCarousel@@EAEXPAVQGraphicsSceneResizeEvent@@@Z @ 58 NONAME ; void RadioStationCarousel::resizeEvent(class QGraphicsSceneResizeEvent *) - ?scrollPosChanged@RadioFrequencyStrip@@EAEXXZ @ 59 NONAME ; void RadioFrequencyStrip::scrollPosChanged(void) - ?updateStations@RadioStationCarousel@@AAEXXZ @ 60 NONAME ; void RadioStationCarousel::updateStations(void) - ??_ERadioWindow@@UAE@I@Z @ 61 NONAME ; RadioWindow::~RadioWindow(unsigned int) - ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0@Z @ 62 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *) - ?initSelector@RadioFrequencyStrip@@AAEXXZ @ 63 NONAME ; void RadioFrequencyStrip::initSelector(void) - ?qt_metacall@RadioWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 64 NONAME ; int RadioWindow::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacall@RadioFrequencyStrip@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 65 NONAME ; int RadioFrequencyStrip::qt_metacall(enum QMetaObject::Call, int, void * *) - ?metaObject@RadioFrequencyStrip@@UBEPBUQMetaObject@@XZ @ 66 NONAME ; struct QMetaObject const * RadioFrequencyStrip::metaObject(void) const - ?startEffect@RadioFadingLabel@@AAEXABVQString@@PBD@Z @ 67 NONAME ; void RadioFadingLabel::startEffect(class QString const &, char const *) - ?setFrequency@RadioFrequencyStrip@@QAEXIHW4Direction@Scroll@@@Z @ 68 NONAME ; void RadioFrequencyStrip::setFrequency(unsigned int, int, enum Scroll::Direction) - ?activateHistoryView@RadioWindow@@QAEXXZ @ 69 NONAME ; void RadioWindow::activateHistoryView(void) - ??_ERadioStationCarousel@@UAE@I@Z @ 70 NONAME ; RadioStationCarousel::~RadioStationCarousel(unsigned int) - ?initPositions@RadioFrequencyStrip@@AAEXXZ @ 71 NONAME ; void RadioFrequencyStrip::initPositions(void) - ?tr@RadioFadingLabel@@SA?AVQString@@PBD0@Z @ 72 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *) - ?getStaticMetaObject@RadioFadingLabel@@SAABUQMetaObject@@XZ @ 73 NONAME ; struct QMetaObject const & RadioFadingLabel::getStaticMetaObject(void) - ?itemHeight@RadioFrequencyStrip@@QBEHXZ @ 74 NONAME ; int RadioFrequencyStrip::itemHeight(void) const - ?setManualSeekMode@RadioStationCarousel@@QAEX_N@Z @ 75 NONAME ; void RadioStationCarousel::setManualSeekMode(bool) - ?qt_metacast@RadioWindow@@UAEPAXPBD@Z @ 76 NONAME ; void * RadioWindow::qt_metacast(char const *) - ?trimHtml@RadioFadingLabel@@AAE?AVQString@@ABV2@@Z @ 77 NONAME ; class QString RadioFadingLabel::trimHtml(class QString const &) - ?tr@RadioWindow@@SA?AVQString@@PBD0@Z @ 78 NONAME ; class QString RadioWindow::tr(char const *, char const *) - ?favoriteIcon@RadioStationCarousel@@UBE?AVHbIcon@@XZ @ 79 NONAME ; class HbIcon RadioStationCarousel::favoriteIcon(void) const - ?mouseReleaseEvent@RadioFrequencyStrip@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 80 NONAME ; void RadioFrequencyStrip::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) - ?updateItemPrimitive@RadioFrequencyStrip@@EAEXPAVQGraphicsItem@@H@Z @ 81 NONAME ; void RadioFrequencyStrip::updateItemPrimitive(class QGraphicsItem *, int) - ?getStaticMetaObject@RadioFrequencyStrip@@SAABUQMetaObject@@XZ @ 82 NONAME ; struct QMetaObject const & RadioFrequencyStrip::getStaticMetaObject(void) - ?showErrorMessage@RadioWindow@@QAEXABVQString@@@Z @ 83 NONAME ; void RadioWindow::showErrorMessage(class QString const &) - ??0RadioFadingLabel@@QAE@PAVQGraphicsItem@@@Z @ 84 NONAME ; RadioFadingLabel::RadioFadingLabel(class QGraphicsItem *) - ?updateStationsInRange@RadioFrequencyStrip@@AAEXHH_N@Z @ 85 NONAME ; void RadioFrequencyStrip::updateStationsInRange(int, int, bool) - ?initModel@RadioFrequencyStrip@@AAEXXZ @ 86 NONAME ; void RadioFrequencyStrip::initModel(void) - ?frequency@RadioFrequencyStrip@@QBEIXZ @ 87 NONAME ; unsigned int RadioFrequencyStrip::frequency(void) const - ?isInManualSeek@RadioStationCarousel@@EBE_NXZ @ 88 NONAME ; bool RadioStationCarousel::isInManualSeek(void) const - ??1RadioStationCarousel@@UAE@XZ @ 89 NONAME ; RadioStationCarousel::~RadioStationCarousel(void) - ??_ERadioFrequencyStrip@@UAE@I@Z @ 90 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(unsigned int) - ?setFadingEnabled@RadioFadingLabel@@QAEX_N@Z @ 91 NONAME ; void RadioFadingLabel::setFadingEnabled(bool) - ?localizeGenre@RadioStationCarousel@@EAE?AVQString@@H@Z @ 92 NONAME ; class QString RadioStationCarousel::localizeGenre(int) - ?mousePressEvent@RadioFrequencyStrip@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 93 NONAME ; void RadioFrequencyStrip::mousePressEvent(class QGraphicsSceneMouseEvent *) - ?showVolumeLevel@RadioWindow@@AAEXH@Z @ 94 NONAME ; void RadioWindow::showVolumeLevel(int) - ?getStaticMetaObject@RadioWindow@@SAABUQMetaObject@@XZ @ 95 NONAME ; struct QMetaObject const & RadioWindow::getStaticMetaObject(void) - ?trUtf8@RadioWindow@@SA?AVQString@@PBD0@Z @ 96 NONAME ; class QString RadioWindow::trUtf8(char const *, char const *) - ?toggleManualSeek@RadioFrequencyStrip@@AAEXXZ @ 97 NONAME ; void RadioFrequencyStrip::toggleManualSeek(void) - ?timerFired@RadioStationCarousel@@AAEXXZ @ 98 NONAME ; void RadioStationCarousel::timerFired(void) - ?handleRadiotextClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 99 NONAME ; void RadioStationCarousel::handleRadiotextClicked(class RadioStation const &) - ?drawPixmap@RadioFrequencyStrip@@AAE?AVQPixmap@@IV?$QList@VRadioStation@@@@PAVRadioFrequencyItem@@@Z @ 100 NONAME ; class QPixmap RadioFrequencyStrip::drawPixmap(unsigned int, class QList, class RadioFrequencyItem *) - ?initEmptyItems@RadioFrequencyStrip@@AAEXXZ @ 101 NONAME ; void RadioFrequencyStrip::initEmptyItems(void) - ?tr@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 102 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *, int) - ??0RadioWindow@@QAE@PAVQWidget@@@Z @ 103 NONAME ; RadioWindow::RadioWindow(class QWidget *) - ?updateRadioText@RadioStationCarousel@@AAEXABVRadioStation@@@Z @ 104 NONAME ; void RadioStationCarousel::updateRadioText(class RadioStation const &) - ?updateAntennaStatus@RadioStationCarousel@@QAEX_N@Z @ 105 NONAME ; void RadioStationCarousel::updateAntennaStatus(bool) - ?updateFavorite@RadioFrequencyStrip@@QAEXABVRadioStation@@@Z @ 106 NONAME ; void RadioFrequencyStrip::updateFavorite(class RadioStation const &) - ?setFrequency@RadioStationCarousel@@QAEXIHW4Direction@Scroll@@@Z @ 107 NONAME ; void RadioStationCarousel::setFrequency(unsigned int, int, enum Scroll::Direction) - ?setInfoText@RadioStationCarousel@@QAEXW4Type@CarouselInfoText@@@Z @ 108 NONAME ; void RadioStationCarousel::setInfoText(enum CarouselInfoText::Type) - ?staticMetaObject@RadioFadingLabel@@2UQMetaObject@@B @ 109 NONAME ; struct QMetaObject const RadioFadingLabel::staticMetaObject - ?trUtf8@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 110 NONAME ; class QString RadioFrequencyStrip::trUtf8(char const *, char const *, int) - ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 111 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *, int) - ?getStaticMetaObject@RadioStationCarousel@@SAABUQMetaObject@@XZ @ 112 NONAME ; struct QMetaObject const & RadioStationCarousel::getStaticMetaObject(void) - ?metaObject@RadioFadingLabel@@UBEPBUQMetaObject@@XZ @ 113 NONAME ; struct QMetaObject const * RadioFadingLabel::metaObject(void) const - ?metaObject@RadioWindow@@UBEPBUQMetaObject@@XZ @ 114 NONAME ; struct QMetaObject const * RadioWindow::metaObject(void) const - ?staticMetaObject@RadioFrequencyStrip@@2UQMetaObject@@B @ 115 NONAME ; struct QMetaObject const RadioFrequencyStrip::staticMetaObject - ?autoScrollTime@RadioStationCarousel@@QBEHXZ @ 116 NONAME ; int RadioStationCarousel::autoScrollTime(void) const - ?handleRightButton@RadioFrequencyStrip@@AAEXXZ @ 117 NONAME ; void RadioFrequencyStrip::handleRightButton(void) - ?qt_metacast@RadioStationCarousel@@UAEPAXPBD@Z @ 118 NONAME ; void * RadioStationCarousel::qt_metacast(char const *) - ?tr@RadioWindow@@SA?AVQString@@PBD0H@Z @ 119 NONAME ; class QString RadioWindow::tr(char const *, char const *, int) - ?addScannedStation@RadioFrequencyStrip@@QAEXABVRadioStation@@@Z @ 120 NONAME ; void RadioFrequencyStrip::addScannedStation(class RadioStation const &) - ?handleLongRightButton@RadioFrequencyStrip@@AAEXXZ @ 121 NONAME ; void RadioFrequencyStrip::handleLongRightButton(void) - ?seekRequested@RadioFrequencyStrip@@IAEXH@Z @ 122 NONAME ; void RadioFrequencyStrip::seekRequested(int) - ?isInManualSeekMode@RadioFrequencyStrip@@QBE_NXZ @ 123 NONAME ; bool RadioFrequencyStrip::isInManualSeekMode(void) const - ?scrollToFrequency@RadioFrequencyStrip@@AAEXIW4Direction@Scroll@@HW4Reason@TuneReason@@@Z @ 124 NONAME ; void RadioFrequencyStrip::scrollToFrequency(unsigned int, enum Scroll::Direction, int, enum TuneReason::Reason) - ??0RadioStationCarousel@@QAE@PAVQGraphicsItem@@@Z @ 125 NONAME ; RadioStationCarousel::RadioStationCarousel(class QGraphicsItem *) - ?adjustAfterScroll@RadioStationCarousel@@AAEXXZ @ 126 NONAME ; void RadioStationCarousel::adjustAfterScroll(void) - ?metaObject@RadioStationCarousel@@UBEPBUQMetaObject@@XZ @ 127 NONAME ; struct QMetaObject const * RadioStationCarousel::metaObject(void) const - ?effectFinished@RadioFadingLabel@@AAEXUEffectStatus@HbEffect@@@Z @ 128 NONAME ; void RadioFadingLabel::effectFinished(struct HbEffect::EffectStatus) - ?updateOrientation@RadioWindow@@AAEXW4Orientation@Qt@@@Z @ 129 NONAME ; void RadioWindow::updateOrientation(enum Qt::Orientation) - ?init@RadioWindow@@QAEXPAVQSystemDeviceInfo@QtMobility@@@Z @ 130 NONAME ; void RadioWindow::init(class QtMobility::QSystemDeviceInfo *) - ?showButtons@RadioFrequencyStrip@@AAEXXZ @ 131 NONAME ; void RadioFrequencyStrip::showButtons(void) - ?uiEngine@RadioStationCarousel@@QAEPAVRadioUiEngine@@XZ @ 132 NONAME ; class RadioUiEngine * RadioStationCarousel::uiEngine(void) - ?trUtf8@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 133 NONAME ; class QString RadioFadingLabel::trUtf8(char const *, char const *, int) - ?activateMainView@RadioWindow@@QAEXXZ @ 134 NONAME ; void RadioWindow::activateMainView(void) - ?setScanningMode@RadioStationCarousel@@QAEX_N@Z @ 135 NONAME ; void RadioStationCarousel::setScanningMode(bool) - ??1RadioFadingLabel@@UAE@XZ @ 136 NONAME ; RadioFadingLabel::~RadioFadingLabel(void) - ?setNonFavoriteIcon@RadioStationCarousel@@QAEXABVHbIcon@@@Z @ 137 NONAME ; void RadioStationCarousel::setNonFavoriteIcon(class HbIcon const &) - ?isInScanningMode@RadioStationCarousel@@QBE_NXZ @ 138 NONAME ; bool RadioStationCarousel::isInScanningMode(void) const - ?isAntennaAttached@RadioStationCarousel@@QBE_NXZ @ 139 NONAME ; bool RadioStationCarousel::isAntennaAttached(void) const - ?activateStationsView@RadioWindow@@QAEXXZ @ 140 NONAME ; void RadioWindow::activateStationsView(void) - ?removeStation@RadioFrequencyStrip@@AAEXABVQModelIndex@@HH@Z @ 141 NONAME ; void RadioFrequencyStrip::removeStation(class QModelIndex const &, int, int) - ?tr@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 142 NONAME ; class QString RadioStationCarousel::tr(char const *, char const *, int) - ?trimIndex@RadioStationCarousel@@AAEHH@Z @ 143 NONAME ; int RadioStationCarousel::trimIndex(int) - ?frequencyChanged@RadioStationCarousel@@IAEXIHH@Z @ 144 NONAME ; void RadioStationCarousel::frequencyChanged(unsigned int, int, int) - ?setAlternateSkippingMode@RadioStationCarousel@@QAEX_N@Z @ 145 NONAME ; void RadioStationCarousel::setAlternateSkippingMode(bool) - ?initView@RadioWindow@@AAEXXZ @ 146 NONAME ; void RadioWindow::initView(void) - ?gestureEvent@RadioFrequencyStrip@@EAEXPAVQGestureEvent@@@Z @ 147 NONAME ; void RadioFrequencyStrip::gestureEvent(class QGestureEvent *) - ?trUtf8@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 148 NONAME ; class QString RadioStationCarousel::trUtf8(char const *, char const *, int) - ?handleLongLeftButton@RadioFrequencyStrip@@AAEXXZ @ 149 NONAME ; void RadioFrequencyStrip::handleLongLeftButton(void) - ?hideButtons@RadioFrequencyStrip@@AAEXXZ @ 150 NONAME ; void RadioFrequencyStrip::hideButtons(void) - ?emitFrequencyChanged@RadioFrequencyStrip@@AAEXI@Z @ 151 NONAME ; void RadioFrequencyStrip::emitFrequencyChanged(unsigned int) - ?handleLeftButton@RadioFrequencyStrip@@AAEXXZ @ 152 NONAME ; void RadioFrequencyStrip::handleLeftButton(void) - ??_ERadioFadingLabel@@UAE@I@Z @ 153 NONAME ; RadioFadingLabel::~RadioFadingLabel(unsigned int) - ?cancelManualSeek@RadioFrequencyStrip@@QAEXXZ @ 154 NONAME ; void RadioFrequencyStrip::cancelManualSeek(void) - ?isScrollingAllowed@RadioStationCarousel@@ABE_NXZ @ 155 NONAME ; bool RadioStationCarousel::isScrollingAllowed(void) const - ?qt_metacast@RadioFrequencyStrip@@UAEPAXPBD@Z @ 156 NONAME ; void * RadioFrequencyStrip::qt_metacast(char const *) - ?staticMetaObject@RadioWindow@@2UQMetaObject@@B @ 157 NONAME ; struct QMetaObject const RadioWindow::staticMetaObject - ?cleanRdsData@RadioStationCarousel@@QAEXXZ @ 158 NONAME ; void RadioStationCarousel::cleanRdsData(void) - ?clearInfoText@RadioStationCarousel@@QAEXXZ @ 159 NONAME ; void RadioStationCarousel::clearInfoText(void) - ?updateAllItems@RadioFrequencyStrip@@AAEXXZ @ 160 NONAME ; void RadioFrequencyStrip::updateAllItems(void) - ?adjustPos@RadioStationCarousel@@AAEXH@Z @ 161 NONAME ; void RadioStationCarousel::adjustPos(int) - ?scanAnimationFinished@RadioStationCarousel@@IAEXXZ @ 162 NONAME ; void RadioStationCarousel::scanAnimationFinished(void) - ?makeTab@RadioFrequencyStrip@@AAE?AVQLineF@@MH@Z @ 163 NONAME ; class QLineF RadioFrequencyStrip::makeTab(float, int) + ?trUtf8@RadioFadingLabel@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString RadioFadingLabel::trUtf8(char const *, char const *) + ?handleUrlClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 14 NONAME ; void RadioStationCarousel::handleUrlClicked(class RadioStation const &) + ?skipRequested@RadioStationCarousel@@IAEXH@Z @ 15 NONAME ; void RadioStationCarousel::skipRequested(int) + ?setTextWithoutFading@RadioFadingLabel@@QAEXABVQString@@@Z @ 16 NONAME ; void RadioFadingLabel::setTextWithoutFading(class QString const &) + ?updateAntennaStatus@RadioWindow@@AAEX_N@Z @ 17 NONAME ; void RadioWindow::updateAntennaStatus(bool) + ?handleIconClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 18 NONAME ; void RadioStationCarousel::handleIconClicked(class RadioStation const &) + ?init@RadioFrequencyStrip@@QAEXPAVRadioUiEngine@@AAVRadioUiLoader@@@Z @ 19 NONAME ; void RadioFrequencyStrip::init(class RadioUiEngine *, class RadioUiLoader &) + ?qt_metacall@RadioStationCarousel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 20 NONAME ; int RadioStationCarousel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?isInitialized@RadioStationCarousel@@ABE_NXZ @ 21 NONAME ; bool RadioStationCarousel::isInitialized(void) const + ?init@RadioStationCarousel@@QAEXAAVRadioUiLoader@@PAVRadioUiEngine@@@Z @ 22 NONAME ; void RadioStationCarousel::init(class RadioUiLoader &, class RadioUiEngine *) + ?scrollPosChanged@RadioStationCarousel@@AAEXABVQPointF@@@Z @ 23 NONAME ; void RadioStationCarousel::scrollPosChanged(class QPointF const &) + ?frequencyChanged@RadioFrequencyStrip@@IAEXIHH@Z @ 24 NONAME ; void RadioFrequencyStrip::frequencyChanged(unsigned int, int, int) + ?setAutoScrollTime@RadioStationCarousel@@QAEXH@Z @ 25 NONAME ; void RadioStationCarousel::setAutoScrollTime(int) + ?prevIndex@RadioStationCarousel@@AAEHH@Z @ 26 NONAME ; int RadioStationCarousel::prevIndex(int) + ?skipToPreviousFavorite@RadioFrequencyStrip@@EAEXXZ @ 27 NONAME ; void RadioFrequencyStrip::skipToPreviousFavorite(void) + ?trUtf8@RadioStationCarousel@@SA?AVQString@@PBD0@Z @ 28 NONAME ; class QString RadioStationCarousel::trUtf8(char const *, char const *) + ?tr@RadioStationCarousel@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString RadioStationCarousel::tr(char const *, char const *) + ?skip@RadioStationCarousel@@AAEXW4Mode@StationSkip@@@Z @ 30 NONAME ; void RadioStationCarousel::skip(enum StationSkip::Mode) + ?emitFrequencyChanged@RadioFrequencyStrip@@EAEXIHH@Z @ 31 NONAME ; void RadioFrequencyStrip::emitFrequencyChanged(unsigned int, int, int) + ?isScanning@RadioFrequencyStrip@@EBE_NXZ @ 32 NONAME ; bool RadioFrequencyStrip::isScanning(void) const + ??1RadioWindow@@UAE@XZ @ 33 NONAME ; RadioWindow::~RadioWindow(void) + ?skipRequested@RadioFrequencyStrip@@IAEXH@Z @ 34 NONAME ; void RadioFrequencyStrip::skipRequested(int) + ?setText@RadioFadingLabel@@QAEXABVQString@@@Z @ 35 NONAME ; void RadioFadingLabel::setText(class QString const &) + ?showEvent@RadioStationCarousel@@EAEXPAVQShowEvent@@@Z @ 36 NONAME ; void RadioStationCarousel::showEvent(class QShowEvent *) + ?mousePressEvent@RadioStationCarousel@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 37 NONAME ; void RadioStationCarousel::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?trUtf8@RadioFrequencyStrip@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString RadioFrequencyStrip::trUtf8(char const *, char const *) + ?activateView@RadioWindow@@AAEXPAVRadioViewBase@@ABVQString@@V?$QFlags@W4ViewSwitchFlag@Hb@@@@@Z @ 39 NONAME ; void RadioWindow::activateView(class RadioViewBase *, class QString const &, class QFlags) + ?calculateDifference@RadioStationCarousel@@AAEHHAAW4Direction@Scroll@@@Z @ 40 NONAME ; int RadioStationCarousel::calculateDifference(int, enum Scroll::Direction &) + ?orientationSection@RadioWindow@@QAE?AVQString@@XZ @ 41 NONAME ; class QString RadioWindow::orientationSection(void) + ??1RadioFrequencyStrip@@UAE@XZ @ 42 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(void) + ?cancelAnimation@RadioStationCarousel@@QAEXXZ @ 43 NONAME ; void RadioStationCarousel::cancelAnimation(void) + ?staticMetaObject@RadioStationCarousel@@2UQMetaObject@@B @ 44 NONAME ; struct QMetaObject const RadioStationCarousel::staticMetaObject + ?skipToPrevious@RadioFrequencyStrip@@EAEXXZ @ 45 NONAME ; void RadioFrequencyStrip::skipToPrevious(void) + ?qt_metacall@RadioFadingLabel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 46 NONAME ; int RadioFadingLabel::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0RadioFrequencyStrip@@QAE@XZ @ 47 NONAME ; RadioFrequencyStrip::RadioFrequencyStrip(void) + ?setCenterIndex@RadioStationCarousel@@AAEXHV?$QFlags@W4ScrollFlag@RadioStationCarousel@@@@@Z @ 48 NONAME ; void RadioStationCarousel::setCenterIndex(int, class QFlags) + ?resizeEvent@RadioStationCarousel@@EAEXPAVQGraphicsSceneResizeEvent@@@Z @ 49 NONAME ; void RadioStationCarousel::resizeEvent(class QGraphicsSceneResizeEvent *) + ?updateStations@RadioStationCarousel@@AAEXXZ @ 50 NONAME ; void RadioStationCarousel::updateStations(void) + ??_ERadioWindow@@UAE@I@Z @ 51 NONAME ; RadioWindow::~RadioWindow(unsigned int) + ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0@Z @ 52 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *) + ?metaObject@RadioFrequencyStrip@@UBEPBUQMetaObject@@XZ @ 53 NONAME ; struct QMetaObject const * RadioFrequencyStrip::metaObject(void) const + ?qt_metacall@RadioFrequencyStrip@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 54 NONAME ; int RadioFrequencyStrip::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@RadioWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 55 NONAME ; int RadioWindow::qt_metacall(enum QMetaObject::Call, int, void * *) + ?startEffect@RadioFadingLabel@@AAEXABVQString@@PBD@Z @ 56 NONAME ; void RadioFadingLabel::startEffect(class QString const &, char const *) + ?seekDown@RadioFrequencyStrip@@EAEXXZ @ 57 NONAME ; void RadioFrequencyStrip::seekDown(void) + ?activateHistoryView@RadioWindow@@QAEXXZ @ 58 NONAME ; void RadioWindow::activateHistoryView(void) + ??_ERadioStationCarousel@@UAE@I@Z @ 59 NONAME ; RadioStationCarousel::~RadioStationCarousel(unsigned int) + ?tr@RadioFadingLabel@@SA?AVQString@@PBD0@Z @ 60 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *) + ?getStaticMetaObject@RadioFadingLabel@@SAABUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const & RadioFadingLabel::getStaticMetaObject(void) + ?setManualSeekMode@RadioStationCarousel@@QAEX_N@Z @ 62 NONAME ; void RadioStationCarousel::setManualSeekMode(bool) + ?qt_metacast@RadioWindow@@UAEPAXPBD@Z @ 63 NONAME ; void * RadioWindow::qt_metacast(char const *) + ?trimHtml@RadioFadingLabel@@AAE?AVQString@@ABV2@@Z @ 64 NONAME ; class QString RadioFadingLabel::trimHtml(class QString const &) + ?tr@RadioWindow@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString RadioWindow::tr(char const *, char const *) + ?favoriteIcon@RadioStationCarousel@@UBE?AVHbIcon@@XZ @ 66 NONAME ; class HbIcon RadioStationCarousel::favoriteIcon(void) const + ?getStaticMetaObject@RadioFrequencyStrip@@SAABUQMetaObject@@XZ @ 67 NONAME ; struct QMetaObject const & RadioFrequencyStrip::getStaticMetaObject(void) + ?showErrorMessage@RadioWindow@@QAEXABVQString@@@Z @ 68 NONAME ; void RadioWindow::showErrorMessage(class QString const &) + ??0RadioFadingLabel@@QAE@PAVQGraphicsItem@@@Z @ 69 NONAME ; RadioFadingLabel::RadioFadingLabel(class QGraphicsItem *) + ?isInManualSeek@RadioStationCarousel@@EBE_NXZ @ 70 NONAME ; bool RadioStationCarousel::isInManualSeek(void) const + ??1RadioStationCarousel@@UAE@XZ @ 71 NONAME ; RadioStationCarousel::~RadioStationCarousel(void) + ?isInitialized@RadioFrequencyStrip@@EBE_NXZ @ 72 NONAME ; bool RadioFrequencyStrip::isInitialized(void) const + ??_ERadioFrequencyStrip@@UAE@I@Z @ 73 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(unsigned int) + ?setFadingEnabled@RadioFadingLabel@@QAEX_N@Z @ 74 NONAME ; void RadioFadingLabel::setFadingEnabled(bool) + ?localizeGenre@RadioStationCarousel@@EAE?AVQString@@H@Z @ 75 NONAME ; class QString RadioStationCarousel::localizeGenre(int) + ?showVolumeLevel@RadioWindow@@AAEXH@Z @ 76 NONAME ; void RadioWindow::showVolumeLevel(int) + ?getStaticMetaObject@RadioWindow@@SAABUQMetaObject@@XZ @ 77 NONAME ; struct QMetaObject const & RadioWindow::getStaticMetaObject(void) + ?handleRadiotextClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 78 NONAME ; void RadioStationCarousel::handleRadiotextClicked(class RadioStation const &) + ?timerFired@RadioStationCarousel@@AAEXXZ @ 79 NONAME ; void RadioStationCarousel::timerFired(void) + ?trUtf8@RadioWindow@@SA?AVQString@@PBD0@Z @ 80 NONAME ; class QString RadioWindow::trUtf8(char const *, char const *) + ?seekUp@RadioFrequencyStrip@@EAEXXZ @ 81 NONAME ; void RadioFrequencyStrip::seekUp(void) + ??0RadioWindow@@QAE@PAVQWidget@@@Z @ 82 NONAME ; RadioWindow::RadioWindow(class QWidget *) + ?tr@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 83 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *, int) + ?updateRadioText@RadioStationCarousel@@AAEXABVRadioStation@@@Z @ 84 NONAME ; void RadioStationCarousel::updateRadioText(class RadioStation const &) + ?updateAntennaStatus@RadioStationCarousel@@QAEX_N@Z @ 85 NONAME ; void RadioStationCarousel::updateAntennaStatus(bool) + ?setFrequency@RadioStationCarousel@@QAEXIHW4Direction@Scroll@@@Z @ 86 NONAME ; void RadioStationCarousel::setFrequency(unsigned int, int, enum Scroll::Direction) + ?setInfoText@RadioStationCarousel@@QAEXW4Type@CarouselInfoText@@@Z @ 87 NONAME ; void RadioStationCarousel::setInfoText(enum CarouselInfoText::Type) + ?staticMetaObject@RadioFadingLabel@@2UQMetaObject@@B @ 88 NONAME ; struct QMetaObject const RadioFadingLabel::staticMetaObject + ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 89 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *, int) + ?trUtf8@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 90 NONAME ; class QString RadioFrequencyStrip::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@RadioStationCarousel@@SAABUQMetaObject@@XZ @ 91 NONAME ; struct QMetaObject const & RadioStationCarousel::getStaticMetaObject(void) + ?metaObject@RadioFadingLabel@@UBEPBUQMetaObject@@XZ @ 92 NONAME ; struct QMetaObject const * RadioFadingLabel::metaObject(void) const + ?metaObject@RadioWindow@@UBEPBUQMetaObject@@XZ @ 93 NONAME ; struct QMetaObject const * RadioWindow::metaObject(void) const + ?staticMetaObject@RadioFrequencyStrip@@2UQMetaObject@@B @ 94 NONAME ; struct QMetaObject const RadioFrequencyStrip::staticMetaObject + ?autoScrollTime@RadioStationCarousel@@QBEHXZ @ 95 NONAME ; int RadioStationCarousel::autoScrollTime(void) const + ?qt_metacast@RadioStationCarousel@@UAEPAXPBD@Z @ 96 NONAME ; void * RadioStationCarousel::qt_metacast(char const *) + ?skipToNextFavorite@RadioFrequencyStrip@@EAEXXZ @ 97 NONAME ; void RadioFrequencyStrip::skipToNextFavorite(void) + ?tr@RadioWindow@@SA?AVQString@@PBD0H@Z @ 98 NONAME ; class QString RadioWindow::tr(char const *, char const *, int) + ?seekRequested@RadioFrequencyStrip@@IAEXH@Z @ 99 NONAME ; void RadioFrequencyStrip::seekRequested(int) + ??0RadioStationCarousel@@QAE@PAVQGraphicsItem@@@Z @ 100 NONAME ; RadioStationCarousel::RadioStationCarousel(class QGraphicsItem *) + ?adjustAfterScroll@RadioStationCarousel@@AAEXXZ @ 101 NONAME ; void RadioStationCarousel::adjustAfterScroll(void) + ?metaObject@RadioStationCarousel@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * RadioStationCarousel::metaObject(void) const + ?effectFinished@RadioFadingLabel@@AAEXUEffectStatus@HbEffect@@@Z @ 103 NONAME ; void RadioFadingLabel::effectFinished(struct HbEffect::EffectStatus) + ?skipToNext@RadioFrequencyStrip@@EAEXXZ @ 104 NONAME ; void RadioFrequencyStrip::skipToNext(void) + ?updateOrientation@RadioWindow@@AAEXW4Orientation@Qt@@@Z @ 105 NONAME ; void RadioWindow::updateOrientation(enum Qt::Orientation) + ?activateMainView@RadioWindow@@QAEXXZ @ 106 NONAME ; void RadioWindow::activateMainView(void) + ?trUtf8@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 107 NONAME ; class QString RadioFadingLabel::trUtf8(char const *, char const *, int) + ?uiEngine@RadioStationCarousel@@QAEPAVRadioUiEngine@@XZ @ 108 NONAME ; class RadioUiEngine * RadioStationCarousel::uiEngine(void) + ?setLandscape@RadioStationCarousel@@QAEX_N@Z @ 109 NONAME ; void RadioStationCarousel::setLandscape(bool) + ?setScanningMode@RadioStationCarousel@@QAEX_N@Z @ 110 NONAME ; void RadioStationCarousel::setScanningMode(bool) + ??1RadioFadingLabel@@UAE@XZ @ 111 NONAME ; RadioFadingLabel::~RadioFadingLabel(void) + ?setNonFavoriteIcon@RadioStationCarousel@@QAEXABVHbIcon@@@Z @ 112 NONAME ; void RadioStationCarousel::setNonFavoriteIcon(class HbIcon const &) + ?isInScanningMode@RadioStationCarousel@@QBE_NXZ @ 113 NONAME ; bool RadioStationCarousel::isInScanningMode(void) const + ?isAntennaAttached@RadioStationCarousel@@QBE_NXZ @ 114 NONAME ; bool RadioStationCarousel::isAntennaAttached(void) const + ?activateStationsView@RadioWindow@@QAEXXZ @ 115 NONAME ; void RadioWindow::activateStationsView(void) + ?tr@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 116 NONAME ; class QString RadioStationCarousel::tr(char const *, char const *, int) + ?setFrequency@RadioFrequencyStrip@@UAEXIHW4Direction@Scroll@@@Z @ 117 NONAME ; void RadioFrequencyStrip::setFrequency(unsigned int, int, enum Scroll::Direction) + ?frequencyChanged@RadioStationCarousel@@IAEXIHH@Z @ 118 NONAME ; void RadioStationCarousel::frequencyChanged(unsigned int, int, int) + ?trimIndex@RadioStationCarousel@@AAEHH@Z @ 119 NONAME ; int RadioStationCarousel::trimIndex(int) + ?setAlternateSkippingMode@RadioStationCarousel@@QAEX_N@Z @ 120 NONAME ; void RadioStationCarousel::setAlternateSkippingMode(bool) + ?initView@RadioWindow@@AAEXXZ @ 121 NONAME ; void RadioWindow::initView(void) + ?trUtf8@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString RadioStationCarousel::trUtf8(char const *, char const *, int) + ??_ERadioFadingLabel@@UAE@I@Z @ 123 NONAME ; RadioFadingLabel::~RadioFadingLabel(unsigned int) + ?init@RadioWindow@@QAEXXZ @ 124 NONAME ; void RadioWindow::init(void) + ?isScrollingAllowed@RadioStationCarousel@@ABE_NXZ @ 125 NONAME ; bool RadioStationCarousel::isScrollingAllowed(void) const + ?qt_metacast@RadioFrequencyStrip@@UAEPAXPBD@Z @ 126 NONAME ; void * RadioFrequencyStrip::qt_metacast(char const *) + ?staticMetaObject@RadioWindow@@2UQMetaObject@@B @ 127 NONAME ; struct QMetaObject const RadioWindow::staticMetaObject + ?cleanRdsData@RadioStationCarousel@@QAEXXZ @ 128 NONAME ; void RadioStationCarousel::cleanRdsData(void) + ?clearInfoText@RadioStationCarousel@@QAEXXZ @ 129 NONAME ; void RadioStationCarousel::clearInfoText(void) + ?adjustPos@RadioStationCarousel@@AAEXH@Z @ 130 NONAME ; void RadioStationCarousel::adjustPos(int) + ?frequencyAtIndex@RadioFrequencyStrip@@EBEIH@Z @ 131 NONAME ; unsigned int RadioFrequencyStrip::frequencyAtIndex(int) const + ?scanAnimationFinished@RadioStationCarousel@@IAEXXZ @ 132 NONAME ; void RadioStationCarousel::scanAnimationFinished(void) diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/eabi/fmradiouiengineu.def --- a/radioapp/eabi/fmradiouiengineu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/eabi/fmradiouiengineu.def Wed Aug 18 09:49:03 2010 +0300 @@ -31,218 +31,219 @@ _ZN12RadioStationD1Ev @ 30 NONAME _ZN12RadioStationD2Ev @ 31 NONAME _ZN12RadioStationaSERKS_ @ 32 NONAME - _ZN13RadioUiEngine10setPowerOnEv @ 33 NONAME - _ZN13RadioUiEngine10toggleMuteEv @ 34 NONAME - _ZN13RadioUiEngine11muteChangedEb @ 35 NONAME - _ZN13RadioUiEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 36 NONAME - _ZN13RadioUiEngine11qt_metacastEPKc @ 37 NONAME - _ZN13RadioUiEngine11seekStationEi @ 38 NONAME - _ZN13RadioUiEngine11setPowerOffEi @ 39 NONAME - _ZN13RadioUiEngine11skipStationEN11StationSkip4ModeEj @ 40 NONAME - _ZN13RadioUiEngine12historyModelEv @ 41 NONAME - _ZN13RadioUiEngine12setFrequencyEji @ 42 NONAME - _ZN13RadioUiEngine12stationModelEv @ 43 NONAME - _ZN13RadioUiEngine13genreToStringEiN11GenreTarget6TargetE @ 44 NONAME - _ZN13RadioUiEngine13launchBrowserERK7QString @ 45 NONAME - _ZN13RadioUiEngine13scannerEngineEv @ 46 NONAME - _ZN13RadioUiEngine13volumeChangedEi @ 47 NONAME - _ZN13RadioUiEngine14openMusicStoreERK16RadioHistoryItemNS_10MusicStoreE @ 48 NONAME - _ZN13RadioUiEngine14seekingStartedEi @ 49 NONAME - _ZN13RadioUiEngine15emitMuteChangedEb @ 50 NONAME - _ZN13RadioUiEngine15stationsInRangeEjj @ 51 NONAME - _ZN13RadioUiEngine16isFirstTimeStartEv @ 52 NONAME - _ZN13RadioUiEngine16staticMetaObjectE @ 53 NONAME DATA 16 - _ZN13RadioUiEngine16toggleAudioRouteEv @ 54 NONAME - _ZN13RadioUiEngine16tunedToFrequencyEji @ 55 NONAME - _ZN13RadioUiEngine17addRecognizedSongERK7QStringS2_RK12RadioStation @ 56 NONAME - _ZN13RadioUiEngine17audioRouteChangedEb @ 57 NONAME - _ZN13RadioUiEngine17emitVolumeChangedEi @ 58 NONAME - _ZN13RadioUiEngine17launchRadioServerEv @ 59 NONAME - _ZN13RadioUiEngine17powerOffRequestedEv @ 60 NONAME - _ZN13RadioUiEngine17setManualSeekModeEb @ 61 NONAME - _ZN13RadioUiEngine18emitSeekingStartedEN4Seek9DirectionE @ 62 NONAME - _ZN13RadioUiEngine18lastTunedFrequencyEj @ 63 NONAME - _ZN13RadioUiEngine18radioStatusChangedEb @ 64 NONAME - _ZN13RadioUiEngine19createScannerEngineEv @ 65 NONAME - _ZN13RadioUiEngine19getStaticMetaObjectEv @ 66 NONAME - _ZN13RadioUiEngine20antennaStatusChangedEb @ 67 NONAME - _ZN13RadioUiEngine20emitTunedToFrequencyEji @ 68 NONAME - _ZN13RadioUiEngine21emitAudioRouteChangedEb @ 69 NONAME - _ZN13RadioUiEngine21launchSongRecognitionEv @ 70 NONAME - _ZN13RadioUiEngine22emitRadioStatusChangedEb @ 71 NONAME - _ZN13RadioUiEngine22rdsAvailabilityChangedEb @ 72 NONAME - _ZN13RadioUiEngine24emitAntennaStatusChangedEb @ 73 NONAME - _ZN13RadioUiEngine26emitRdsAvailabilityChangedEb @ 74 NONAME - _ZN13RadioUiEngine26setFirstTimeStartPerformedEb @ 75 NONAME - _ZN13RadioUiEngine29isSongRecognitionAppAvailableEv @ 76 NONAME - _ZN13RadioUiEngine4initEv @ 77 NONAME - _ZN13RadioUiEngine7setMuteEb @ 78 NONAME - _ZN13RadioUiEngine8settingsEv @ 79 NONAME - _ZN13RadioUiEngine9setVolumeEi @ 80 NONAME - _ZN13RadioUiEngineC1EP7QObject @ 81 NONAME - _ZN13RadioUiEngineC2EP7QObject @ 82 NONAME - _ZN13RadioUiEngineD0Ev @ 83 NONAME - _ZN13RadioUiEngineD1Ev @ 84 NONAME - _ZN13RadioUiEngineD2Ev @ 85 NONAME - _ZN16RadioHistoryItem10setStationERK7QString @ 86 NONAME - _ZN16RadioHistoryItem12setFrequencyEj @ 87 NONAME - _ZN16RadioHistoryItem14setCurrentTimeEv @ 88 NONAME - _ZN16RadioHistoryItem5resetEv @ 89 NONAME - _ZN16RadioHistoryItem8setTitleERK7QString @ 90 NONAME - _ZN16RadioHistoryItem9setArtistERK7QString @ 91 NONAME - _ZN16RadioHistoryItemC1ERK7QStringS2_ @ 92 NONAME - _ZN16RadioHistoryItemC1ERKS_ @ 93 NONAME - _ZN16RadioHistoryItemC1Ev @ 94 NONAME - _ZN16RadioHistoryItemC2ERK7QStringS2_ @ 95 NONAME - _ZN16RadioHistoryItemC2ERKS_ @ 96 NONAME - _ZN16RadioHistoryItemC2Ev @ 97 NONAME - _ZN16RadioHistoryItemD1Ev @ 98 NONAME - _ZN16RadioHistoryItemD2Ev @ 99 NONAME - _ZN16RadioHistoryItemaSERKS_ @ 100 NONAME - _ZN17RadioHistoryModel11qt_metacallEN11QMetaObject4CallEiPPv @ 101 NONAME - _ZN17RadioHistoryModel11qt_metacastEPKc @ 102 NONAME - _ZN17RadioHistoryModel13emitItemAddedEv @ 103 NONAME - _ZN17RadioHistoryModel13setShowTaggedEb @ 104 NONAME - _ZN17RadioHistoryModel13toggleTaggingERK16RadioHistoryItemi @ 105 NONAME - _ZN17RadioHistoryModel14setShowDetailsEb @ 106 NONAME - _ZN17RadioHistoryModel16addRadioTextPlusEiRK7QStringRK12RadioStation @ 107 NONAME - _ZN17RadioHistoryModel16currentSongResetEv @ 108 NONAME - _ZN17RadioHistoryModel16resetCurrentSongEv @ 109 NONAME - _ZN17RadioHistoryModel16staticMetaObjectE @ 110 NONAME DATA 16 - _ZN17RadioHistoryModel17reportChangedDataEii @ 111 NONAME - _ZN17RadioHistoryModel18clearRadioTextPlusEv @ 112 NONAME - _ZN17RadioHistoryModel19getStaticMetaObjectEv @ 113 NONAME - _ZN17RadioHistoryModel7addItemERK7QStringS2_RK12RadioStation @ 114 NONAME - _ZN17RadioHistoryModel8setIconsERK5QIconS2_ @ 115 NONAME - _ZN17RadioHistoryModel9itemAddedEv @ 116 NONAME - _ZN17RadioHistoryModel9removeAllEb @ 117 NONAME - _ZN17RadioHistoryModelC1ER13RadioUiEngine @ 118 NONAME - _ZN17RadioHistoryModelC2ER13RadioUiEngine @ 119 NONAME - _ZN17RadioHistoryModelD0Ev @ 120 NONAME - _ZN17RadioHistoryModelD1Ev @ 121 NONAME - _ZN17RadioHistoryModelD2Ev @ 122 NONAME - _ZN17RadioStationModel10addStationERK12RadioStation @ 123 NONAME - _ZN17RadioStationModel10initializeEP18RadioPresetStorageP18RadioEngineWrapper @ 124 NONAME - _ZN17RadioStationModel11findClosestEjN11StationSkip4ModeE @ 125 NONAME - _ZN17RadioStationModel11qt_metacallEN11QMetaObject4CallEiPPv @ 126 NONAME - _ZN17RadioStationModel11qt_metacastEPKc @ 127 NONAME - _ZN17RadioStationModel11saveStationER12RadioStation @ 128 NONAME - _ZN17RadioStationModel12setFavoritesERK5QListI11QModelIndexE @ 129 NONAME - _ZN17RadioStationModel13favoriteCountEv @ 130 NONAME - _ZN17RadioStationModel13removeStationERK12RadioStation @ 131 NONAME - _ZN17RadioStationModel13renameStationEiRK7QString @ 132 NONAME - _ZN17RadioStationModel14currentStationEv @ 133 NONAME - _ZN17RadioStationModel15emitDataChangedERK12RadioStation @ 134 NONAME - _ZN17RadioStationModel15favoriteChangedERK12RadioStation @ 135 NONAME - _ZN17RadioStationModel15findPresetIndexEi @ 136 NONAME - _ZN17RadioStationModel15findPresetIndexEiR12RadioStation @ 137 NONAME - _ZN17RadioStationModel15stationsInRangeEjj @ 138 NONAME - _ZN17RadioStationModel16dynamicPsChangedERK12RadioStation @ 139 NONAME - _ZN17RadioStationModel16staticMetaObjectE @ 140 NONAME DATA 16 - _ZN17RadioStationModel16stationHandlerIfEv @ 141 NONAME - _ZN17RadioStationModel17emitChangeSignalsERK12RadioStation6QFlagsINS0_10ChangeFlagEE @ 142 NONAME - _ZN17RadioStationModel17radioTextReceivedERK12RadioStation @ 143 NONAME - _ZN17RadioStationModel17removeByFrequencyEj @ 144 NONAME - _ZN17RadioStationModel18indexFromFrequencyEj @ 145 NONAME - _ZN17RadioStationModel18stationDataChangedERK12RadioStation @ 146 NONAME - _ZN17RadioStationModel19dynamicPsCheckEndedEv @ 147 NONAME - _ZN17RadioStationModel19getStaticMetaObjectEv @ 148 NONAME - _ZN17RadioStationModel19removeByPresetIndexEi @ 149 NONAME - _ZN17RadioStationModel19setFavoriteByPresetEib @ 150 NONAME - _ZN17RadioStationModel21findUnusedPresetIndexEv @ 151 NONAME - _ZN17RadioStationModel22setFavoriteByFrequencyEjb @ 152 NONAME - _ZN17RadioStationModel7setDataERK11QModelIndexRK8QVarianti @ 153 NONAME - _ZN17RadioStationModel8setIconsERK5QIconS2_ @ 154 NONAME - _ZN17RadioStationModel9removeAllENS_10RemoveModeE @ 155 NONAME - _ZN17RadioStationModel9setDetailE6QFlagsINS_10DetailFlagEE @ 156 NONAME - _ZN17RadioStationModelC1ER20RadioUiEnginePrivate @ 157 NONAME - _ZN17RadioStationModelC2ER20RadioUiEnginePrivate @ 158 NONAME - _ZN17RadioStationModelD0Ev @ 159 NONAME - _ZN17RadioStationModelD1Ev @ 160 NONAME - _ZN17RadioStationModelD2Ev @ 161 NONAME - _ZN18RadioScannerEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 162 NONAME - _ZN18RadioScannerEngine11qt_metacastEPKc @ 163 NONAME - _ZN18RadioScannerEngine12stationFoundERK12RadioStation @ 164 NONAME - _ZN18RadioScannerEngine13startScanningEv @ 165 NONAME - _ZN18RadioScannerEngine16continueScanningEv @ 166 NONAME - _ZN18RadioScannerEngine16emitStationFoundERK12RadioStation @ 167 NONAME - _ZN18RadioScannerEngine16staticMetaObjectE @ 168 NONAME DATA 16 - _ZN18RadioScannerEngine19addScannedFrequencyEj @ 169 NONAME - _ZN18RadioScannerEngine19getStaticMetaObjectEv @ 170 NONAME - _ZN18RadioScannerEngine6cancelEv @ 171 NONAME - _ZN18RadioScannerEngineC1ER20RadioUiEnginePrivate @ 172 NONAME - _ZN18RadioScannerEngineC2ER20RadioUiEnginePrivate @ 173 NONAME - _ZN18RadioScannerEngineD0Ev @ 174 NONAME - _ZN18RadioScannerEngineD1Ev @ 175 NONAME - _ZN18RadioScannerEngineD2Ev @ 176 NONAME - _ZNK12RadioStation10hasChangedEv @ 177 NONAME - _ZNK12RadioStation10isDetachedEv @ 178 NONAME - _ZNK12RadioStation10isFavoriteEv @ 179 NONAME - _ZNK12RadioStation11changeFlagsEv @ 180 NONAME - _ZNK12RadioStation11presetIndexEv @ 181 NONAME - _ZNK12RadioStation13dynamicPsTextEv @ 182 NONAME - _ZNK12RadioStation14hasDataChangedE6QFlagsINS_10ChangeFlagEE @ 183 NONAME - _ZNK12RadioStation15frequencyStringEv @ 184 NONAME - _ZNK12RadioStation3urlEv @ 185 NONAME - _ZNK12RadioStation4nameEv @ 186 NONAME - _ZNK12RadioStation5genreEv @ 187 NONAME - _ZNK12RadioStation6isTypeE6QFlagsINS_8TypeFlagEE @ 188 NONAME - _ZNK12RadioStation6piCodeEv @ 189 NONAME - _ZNK12RadioStation6psTypeEv @ 190 NONAME - _ZNK12RadioStation7isValidEv @ 191 NONAME - _ZNK12RadioStation9frequencyEv @ 192 NONAME - _ZNK12RadioStation9isRenamedEv @ 193 NONAME - _ZNK12RadioStation9radioTextEv @ 194 NONAME - _ZNK13RadioUiEngine10isScanningEv @ 195 NONAME - _ZNK13RadioUiEngine10metaObjectEv @ 196 NONAME - _ZNK13RadioUiEngine12maxFrequencyEv @ 197 NONAME - _ZNK13RadioUiEngine12minFrequencyEv @ 198 NONAME - _ZNK13RadioUiEngine13isInitializedEv @ 199 NONAME - _ZNK13RadioUiEngine13isPoweringOffEv @ 200 NONAME - _ZNK13RadioUiEngine16currentFrequencyEv @ 201 NONAME - _ZNK13RadioUiEngine17frequencyStepSizeEv @ 202 NONAME - _ZNK13RadioUiEngine17isAntennaAttachedEv @ 203 NONAME - _ZNK13RadioUiEngine18isInManualSeekModeEv @ 204 NONAME - _ZNK13RadioUiEngine18isUsingLoudspeakerEv @ 205 NONAME - _ZNK13RadioUiEngine6regionEv @ 206 NONAME - _ZNK13RadioUiEngine7isMutedEv @ 207 NONAME - _ZNK13RadioUiEngine9isRadioOnEv @ 208 NONAME - _ZNK16RadioHistoryItem10isDetachedEv @ 209 NONAME - _ZNK16RadioHistoryItem17isRecognizedByRdsEv @ 210 NONAME - _ZNK16RadioHistoryItem2idEv @ 211 NONAME - _ZNK16RadioHistoryItem4timeEv @ 212 NONAME - _ZNK16RadioHistoryItem5titleEv @ 213 NONAME - _ZNK16RadioHistoryItem6artistEv @ 214 NONAME - _ZNK16RadioHistoryItem7isValidEv @ 215 NONAME - _ZNK16RadioHistoryItem7stationEv @ 216 NONAME - _ZNK16RadioHistoryItem8isTaggedEv @ 217 NONAME - _ZNK16RadioHistoryItem9frequencyEv @ 218 NONAME - _ZNK17RadioHistoryModel10metaObjectEv @ 219 NONAME - _ZNK17RadioHistoryModel11itemAtIndexERK11QModelIndex @ 220 NONAME - _ZNK17RadioHistoryModel23isCurrentSongRecognizedEv @ 221 NONAME - _ZNK17RadioHistoryModel4dataERK11QModelIndexi @ 222 NONAME - _ZNK17RadioHistoryModel8rowCountERK11QModelIndex @ 223 NONAME - _ZNK17RadioStationModel10metaObjectEv @ 224 NONAME - _ZNK17RadioStationModel11findStationEjN12FindCriteria8CriteriaE @ 225 NONAME - _ZNK17RadioStationModel13findFrequencyEjR12RadioStationN12FindCriteria8CriteriaE @ 226 NONAME - _ZNK17RadioStationModel14currentStationEv @ 227 NONAME - _ZNK17RadioStationModel4dataERK11QModelIndexi @ 228 NONAME - _ZNK17RadioStationModel4listEv @ 229 NONAME - _ZNK17RadioStationModel5flagsERK11QModelIndex @ 230 NONAME - _ZNK17RadioStationModel8containsEj @ 231 NONAME - _ZNK17RadioStationModel8rowCountERK11QModelIndex @ 232 NONAME - _ZNK17RadioStationModel9stationAtEi @ 233 NONAME - _ZNK18RadioScannerEngine10isScanningEv @ 234 NONAME - _ZNK18RadioScannerEngine10metaObjectEv @ 235 NONAME - _ZTI12RadioStation @ 236 NONAME - _ZTI13RadioUiEngine @ 237 NONAME - _ZTI17RadioHistoryModel @ 238 NONAME - _ZTI17RadioStationModel @ 239 NONAME - _ZTI18RadioScannerEngine @ 240 NONAME - _ZTV12RadioStation @ 241 NONAME - _ZTV13RadioUiEngine @ 242 NONAME - _ZTV17RadioHistoryModel @ 243 NONAME - _ZTV17RadioStationModel @ 244 NONAME - _ZTV18RadioScannerEngine @ 245 NONAME - _ZN13RadioUiEngine10lastVolumeEv @ 246 NONAME + _ZN13RadioUiEngine10lastVolumeEv @ 33 NONAME + _ZN13RadioUiEngine10setPowerOnEv @ 34 NONAME + _ZN13RadioUiEngine10toggleMuteEv @ 35 NONAME + _ZN13RadioUiEngine11muteChangedEb @ 36 NONAME + _ZN13RadioUiEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 37 NONAME + _ZN13RadioUiEngine11qt_metacastEPKc @ 38 NONAME + _ZN13RadioUiEngine11seekStationEi @ 39 NONAME + _ZN13RadioUiEngine11setPowerOffEi @ 40 NONAME + _ZN13RadioUiEngine11skipStationEN11StationSkip4ModeEji @ 41 NONAME + _ZN13RadioUiEngine12historyModelEv @ 42 NONAME + _ZN13RadioUiEngine12setFrequencyEji @ 43 NONAME + _ZN13RadioUiEngine12stationModelEv @ 44 NONAME + _ZN13RadioUiEngine13genreToStringEiN11GenreTarget6TargetE @ 45 NONAME + _ZN13RadioUiEngine13launchBrowserERK7QString @ 46 NONAME + _ZN13RadioUiEngine13scannerEngineEv @ 47 NONAME + _ZN13RadioUiEngine13volumeChangedEi @ 48 NONAME + _ZN13RadioUiEngine14openMusicStoreERK16RadioHistoryItemNS_10MusicStoreE @ 49 NONAME + _ZN13RadioUiEngine14seekingStartedEi @ 50 NONAME + _ZN13RadioUiEngine15emitMuteChangedEb @ 51 NONAME + _ZN13RadioUiEngine15stationsInRangeEjj @ 52 NONAME + _ZN13RadioUiEngine16isFirstTimeStartEv @ 53 NONAME + _ZN13RadioUiEngine16staticMetaObjectE @ 54 NONAME DATA 16 + _ZN13RadioUiEngine16toggleAudioRouteEv @ 55 NONAME + _ZN13RadioUiEngine16tunedToFrequencyEji @ 56 NONAME + _ZN13RadioUiEngine17addRecognizedSongERK7QStringS2_RK12RadioStation @ 57 NONAME + _ZN13RadioUiEngine17audioRouteChangedEb @ 58 NONAME + _ZN13RadioUiEngine17emitVolumeChangedEi @ 59 NONAME + _ZN13RadioUiEngine17launchRadioServerEv @ 60 NONAME + _ZN13RadioUiEngine17powerOffRequestedEv @ 61 NONAME + _ZN13RadioUiEngine17setManualSeekModeEb @ 62 NONAME + _ZN13RadioUiEngine18emitSeekingStartedEN4Seek9DirectionE @ 63 NONAME + _ZN13RadioUiEngine18lastTunedFrequencyEj @ 64 NONAME + _ZN13RadioUiEngine18radioStatusChangedEb @ 65 NONAME + _ZN13RadioUiEngine19createScannerEngineEv @ 66 NONAME + _ZN13RadioUiEngine19getStaticMetaObjectEv @ 67 NONAME + _ZN13RadioUiEngine20antennaStatusChangedEb @ 68 NONAME + _ZN13RadioUiEngine20emitTunedToFrequencyEji @ 69 NONAME + _ZN13RadioUiEngine21emitAudioRouteChangedEb @ 70 NONAME + _ZN13RadioUiEngine21launchSongRecognitionEv @ 71 NONAME + _ZN13RadioUiEngine22emitRadioStatusChangedEb @ 72 NONAME + _ZN13RadioUiEngine22rdsAvailabilityChangedEb @ 73 NONAME + _ZN13RadioUiEngine24emitAntennaStatusChangedEb @ 74 NONAME + _ZN13RadioUiEngine26emitRdsAvailabilityChangedEb @ 75 NONAME + _ZN13RadioUiEngine26setFirstTimeStartPerformedEb @ 76 NONAME + _ZN13RadioUiEngine29isSongRecognitionAppAvailableEv @ 77 NONAME + _ZN13RadioUiEngine4initEv @ 78 NONAME + _ZN13RadioUiEngine7setMuteEb @ 79 NONAME + _ZN13RadioUiEngine8settingsEv @ 80 NONAME + _ZN13RadioUiEngine9setVolumeEi @ 81 NONAME + _ZN13RadioUiEngineC1EP7QObject @ 82 NONAME + _ZN13RadioUiEngineC2EP7QObject @ 83 NONAME + _ZN13RadioUiEngineD0Ev @ 84 NONAME + _ZN13RadioUiEngineD1Ev @ 85 NONAME + _ZN13RadioUiEngineD2Ev @ 86 NONAME + _ZN16RadioHistoryItem10setStationERK7QString @ 87 NONAME + _ZN16RadioHistoryItem12setFrequencyEj @ 88 NONAME + _ZN16RadioHistoryItem14setCurrentTimeEv @ 89 NONAME + _ZN16RadioHistoryItem5resetEv @ 90 NONAME + _ZN16RadioHistoryItem8setTitleERK7QString @ 91 NONAME + _ZN16RadioHistoryItem9setArtistERK7QString @ 92 NONAME + _ZN16RadioHistoryItemC1ERK7QStringS2_ @ 93 NONAME + _ZN16RadioHistoryItemC1ERKS_ @ 94 NONAME + _ZN16RadioHistoryItemC1Ev @ 95 NONAME + _ZN16RadioHistoryItemC2ERK7QStringS2_ @ 96 NONAME + _ZN16RadioHistoryItemC2ERKS_ @ 97 NONAME + _ZN16RadioHistoryItemC2Ev @ 98 NONAME + _ZN16RadioHistoryItemD1Ev @ 99 NONAME + _ZN16RadioHistoryItemD2Ev @ 100 NONAME + _ZN16RadioHistoryItemaSERKS_ @ 101 NONAME + _ZN17RadioHistoryModel11qt_metacallEN11QMetaObject4CallEiPPv @ 102 NONAME + _ZN17RadioHistoryModel11qt_metacastEPKc @ 103 NONAME + _ZN17RadioHistoryModel13emitItemAddedEv @ 104 NONAME + _ZN17RadioHistoryModel13setShowTaggedEb @ 105 NONAME + _ZN17RadioHistoryModel13toggleTaggingERK16RadioHistoryItemi @ 106 NONAME + _ZN17RadioHistoryModel14setShowDetailsEb @ 107 NONAME + _ZN17RadioHistoryModel16addRadioTextPlusEiRK7QStringRK12RadioStation @ 108 NONAME + _ZN17RadioHistoryModel16currentSongResetEv @ 109 NONAME + _ZN17RadioHistoryModel16resetCurrentSongEv @ 110 NONAME + _ZN17RadioHistoryModel16staticMetaObjectE @ 111 NONAME DATA 16 + _ZN17RadioHistoryModel17reportChangedDataEii @ 112 NONAME + _ZN17RadioHistoryModel18clearRadioTextPlusEv @ 113 NONAME + _ZN17RadioHistoryModel19getStaticMetaObjectEv @ 114 NONAME + _ZN17RadioHistoryModel7addItemERK7QStringS2_RK12RadioStation @ 115 NONAME + _ZN17RadioHistoryModel8setIconsERK5QIconS2_ @ 116 NONAME + _ZN17RadioHistoryModel9itemAddedEv @ 117 NONAME + _ZN17RadioHistoryModel9removeAllEb @ 118 NONAME + _ZN17RadioHistoryModelC1ER13RadioUiEngine @ 119 NONAME + _ZN17RadioHistoryModelC2ER13RadioUiEngine @ 120 NONAME + _ZN17RadioHistoryModelD0Ev @ 121 NONAME + _ZN17RadioHistoryModelD1Ev @ 122 NONAME + _ZN17RadioHistoryModelD2Ev @ 123 NONAME + _ZN17RadioStationModel10addStationERK12RadioStation @ 124 NONAME + _ZN17RadioStationModel10initializeEP18RadioPresetStorageP18RadioEngineWrapper @ 125 NONAME + _ZN17RadioStationModel11findClosestEjN11StationSkip4ModeE @ 126 NONAME + _ZN17RadioStationModel11qt_metacallEN11QMetaObject4CallEiPPv @ 127 NONAME + _ZN17RadioStationModel11qt_metacastEPKc @ 128 NONAME + _ZN17RadioStationModel11saveStationER12RadioStation @ 129 NONAME + _ZN17RadioStationModel12setFavoritesERK5QListI11QModelIndexE @ 130 NONAME + _ZN17RadioStationModel13favoriteCountEv @ 131 NONAME + _ZN17RadioStationModel13removeStationERK12RadioStation @ 132 NONAME + _ZN17RadioStationModel13renameStationEiRK7QString @ 133 NONAME + _ZN17RadioStationModel14currentStationEv @ 134 NONAME + _ZN17RadioStationModel15emitDataChangedERK12RadioStation @ 135 NONAME + _ZN17RadioStationModel15favoriteChangedERK12RadioStation @ 136 NONAME + _ZN17RadioStationModel15findPresetIndexEi @ 137 NONAME + _ZN17RadioStationModel15findPresetIndexEiR12RadioStation @ 138 NONAME + _ZN17RadioStationModel15stationsInRangeEjj @ 139 NONAME + _ZN17RadioStationModel16dynamicPsChangedERK12RadioStation @ 140 NONAME + _ZN17RadioStationModel16staticMetaObjectE @ 141 NONAME DATA 16 + _ZN17RadioStationModel16stationHandlerIfEv @ 142 NONAME + _ZN17RadioStationModel17emitChangeSignalsERK12RadioStation6QFlagsINS0_10ChangeFlagEE @ 143 NONAME + _ZN17RadioStationModel17radioTextReceivedERK12RadioStation @ 144 NONAME + _ZN17RadioStationModel17removeByFrequencyEj @ 145 NONAME + _ZN17RadioStationModel18indexFromFrequencyEj @ 146 NONAME + _ZN17RadioStationModel18stationDataChangedERK12RadioStation @ 147 NONAME + _ZN17RadioStationModel19dynamicPsCheckEndedEv @ 148 NONAME + _ZN17RadioStationModel19getStaticMetaObjectEv @ 149 NONAME + _ZN17RadioStationModel19removeByPresetIndexEi @ 150 NONAME + _ZN17RadioStationModel19setFavoriteByPresetEib @ 151 NONAME + _ZN17RadioStationModel21findUnusedPresetIndexEv @ 152 NONAME + _ZN17RadioStationModel22setFavoriteByFrequencyEjb @ 153 NONAME + _ZN17RadioStationModel7setDataERK11QModelIndexRK8QVarianti @ 154 NONAME + _ZN17RadioStationModel8setIconsERK5QIconS2_ @ 155 NONAME + _ZN17RadioStationModel9removeAllENS_10RemoveModeE @ 156 NONAME + _ZN17RadioStationModel9setDetailE6QFlagsINS_10DetailFlagEE @ 157 NONAME + _ZN17RadioStationModelC1ER20RadioUiEnginePrivate @ 158 NONAME + _ZN17RadioStationModelC2ER20RadioUiEnginePrivate @ 159 NONAME + _ZN17RadioStationModelD0Ev @ 160 NONAME + _ZN17RadioStationModelD1Ev @ 161 NONAME + _ZN17RadioStationModelD2Ev @ 162 NONAME + _ZN18RadioScannerEngine11qt_metacallEN11QMetaObject4CallEiPPv @ 163 NONAME + _ZN18RadioScannerEngine11qt_metacastEPKc @ 164 NONAME + _ZN18RadioScannerEngine12stationFoundERK12RadioStation @ 165 NONAME + _ZN18RadioScannerEngine13startScanningEv @ 166 NONAME + _ZN18RadioScannerEngine16continueScanningEv @ 167 NONAME + _ZN18RadioScannerEngine16emitStationFoundERK12RadioStation @ 168 NONAME + _ZN18RadioScannerEngine16staticMetaObjectE @ 169 NONAME DATA 16 + _ZN18RadioScannerEngine19addScannedFrequencyEj @ 170 NONAME + _ZN18RadioScannerEngine19getStaticMetaObjectEv @ 171 NONAME + _ZN18RadioScannerEngine6cancelEv @ 172 NONAME + _ZN18RadioScannerEngineC1ER20RadioUiEnginePrivate @ 173 NONAME + _ZN18RadioScannerEngineC2ER20RadioUiEnginePrivate @ 174 NONAME + _ZN18RadioScannerEngineD0Ev @ 175 NONAME + _ZN18RadioScannerEngineD1Ev @ 176 NONAME + _ZN18RadioScannerEngineD2Ev @ 177 NONAME + _ZNK12RadioStation10hasChangedEv @ 178 NONAME + _ZNK12RadioStation10hasSentRdsEv @ 179 NONAME + _ZNK12RadioStation10isDetachedEv @ 180 NONAME + _ZNK12RadioStation10isFavoriteEv @ 181 NONAME + _ZNK12RadioStation11changeFlagsEv @ 182 NONAME + _ZNK12RadioStation11presetIndexEv @ 183 NONAME + _ZNK12RadioStation13dynamicPsTextEv @ 184 NONAME + _ZNK12RadioStation14hasDataChangedE6QFlagsINS_10ChangeFlagEE @ 185 NONAME + _ZNK12RadioStation15frequencyStringEv @ 186 NONAME + _ZNK12RadioStation3urlEv @ 187 NONAME + _ZNK12RadioStation4nameEv @ 188 NONAME + _ZNK12RadioStation5genreEv @ 189 NONAME + _ZNK12RadioStation6isTypeE6QFlagsINS_8TypeFlagEE @ 190 NONAME + _ZNK12RadioStation6piCodeEv @ 191 NONAME + _ZNK12RadioStation6psTypeEv @ 192 NONAME + _ZNK12RadioStation7isValidEv @ 193 NONAME + _ZNK12RadioStation9frequencyEv @ 194 NONAME + _ZNK12RadioStation9isRenamedEv @ 195 NONAME + _ZNK12RadioStation9radioTextEv @ 196 NONAME + _ZNK13RadioUiEngine10isScanningEv @ 197 NONAME + _ZNK13RadioUiEngine10metaObjectEv @ 198 NONAME + _ZNK13RadioUiEngine12maxFrequencyEv @ 199 NONAME + _ZNK13RadioUiEngine12minFrequencyEv @ 200 NONAME + _ZNK13RadioUiEngine13isInitializedEv @ 201 NONAME + _ZNK13RadioUiEngine13isPoweringOffEv @ 202 NONAME + _ZNK13RadioUiEngine16currentFrequencyEv @ 203 NONAME + _ZNK13RadioUiEngine17frequencyStepSizeEv @ 204 NONAME + _ZNK13RadioUiEngine17isAntennaAttachedEv @ 205 NONAME + _ZNK13RadioUiEngine18isInManualSeekModeEv @ 206 NONAME + _ZNK13RadioUiEngine18isUsingLoudspeakerEv @ 207 NONAME + _ZNK13RadioUiEngine6regionEv @ 208 NONAME + _ZNK13RadioUiEngine7isMutedEv @ 209 NONAME + _ZNK13RadioUiEngine9isRadioOnEv @ 210 NONAME + _ZNK16RadioHistoryItem10isDetachedEv @ 211 NONAME + _ZNK16RadioHistoryItem17isRecognizedByRdsEv @ 212 NONAME + _ZNK16RadioHistoryItem2idEv @ 213 NONAME + _ZNK16RadioHistoryItem4timeEv @ 214 NONAME + _ZNK16RadioHistoryItem5titleEv @ 215 NONAME + _ZNK16RadioHistoryItem6artistEv @ 216 NONAME + _ZNK16RadioHistoryItem7isValidEv @ 217 NONAME + _ZNK16RadioHistoryItem7stationEv @ 218 NONAME + _ZNK16RadioHistoryItem8isTaggedEv @ 219 NONAME + _ZNK16RadioHistoryItem9frequencyEv @ 220 NONAME + _ZNK17RadioHistoryModel10metaObjectEv @ 221 NONAME + _ZNK17RadioHistoryModel11itemAtIndexERK11QModelIndex @ 222 NONAME + _ZNK17RadioHistoryModel23isCurrentSongRecognizedEv @ 223 NONAME + _ZNK17RadioHistoryModel4dataERK11QModelIndexi @ 224 NONAME + _ZNK17RadioHistoryModel8rowCountERK11QModelIndex @ 225 NONAME + _ZNK17RadioStationModel10metaObjectEv @ 226 NONAME + _ZNK17RadioStationModel11findStationEjN12FindCriteria8CriteriaE @ 227 NONAME + _ZNK17RadioStationModel13findFrequencyEjR12RadioStationN12FindCriteria8CriteriaE @ 228 NONAME + _ZNK17RadioStationModel14currentStationEv @ 229 NONAME + _ZNK17RadioStationModel4dataERK11QModelIndexi @ 230 NONAME + _ZNK17RadioStationModel4listEv @ 231 NONAME + _ZNK17RadioStationModel5flagsERK11QModelIndex @ 232 NONAME + _ZNK17RadioStationModel8containsEj @ 233 NONAME + _ZNK17RadioStationModel8rowCountERK11QModelIndex @ 234 NONAME + _ZNK17RadioStationModel9stationAtEi @ 235 NONAME + _ZNK18RadioScannerEngine10isScanningEv @ 236 NONAME + _ZNK18RadioScannerEngine10metaObjectEv @ 237 NONAME + _ZTI12RadioStation @ 238 NONAME + _ZTI13RadioUiEngine @ 239 NONAME + _ZTI17RadioHistoryModel @ 240 NONAME + _ZTI17RadioStationModel @ 241 NONAME + _ZTI18RadioScannerEngine @ 242 NONAME + _ZTV12RadioStation @ 243 NONAME + _ZTV13RadioUiEngine @ 244 NONAME + _ZTV17RadioHistoryModel @ 245 NONAME + _ZTV17RadioStationModel @ 246 NONAME + _ZTV18RadioScannerEngine @ 247 NONAME diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/eabi/fmradiowidgetsu.def --- a/radioapp/eabi/fmradiowidgetsu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/eabi/fmradiowidgetsu.def Wed Aug 18 09:49:03 2010 +0300 @@ -6,164 +6,131 @@ _ZN11RadioWindow16activateMainViewEv @ 5 NONAME _ZN11RadioWindow16showErrorMessageERK7QString @ 6 NONAME _ZN11RadioWindow16staticMetaObjectE @ 7 NONAME DATA 16 - _ZN11RadioWindow17queryOfflineUsageEN10QtMobility17QSystemDeviceInfo7ProfileE @ 8 NONAME - _ZN11RadioWindow17updateOrientationEN2Qt11OrientationE @ 9 NONAME - _ZN11RadioWindow18orientationSectionEv @ 10 NONAME - _ZN11RadioWindow19activateHistoryViewEv @ 11 NONAME - _ZN11RadioWindow19getStaticMetaObjectEv @ 12 NONAME - _ZN11RadioWindow19updateAntennaStatusEb @ 13 NONAME - _ZN11RadioWindow20activateStationsViewEv @ 14 NONAME - _ZN11RadioWindow4initEPN10QtMobility17QSystemDeviceInfoE @ 15 NONAME - _ZN11RadioWindow8initViewEv @ 16 NONAME - _ZN11RadioWindowC1EP7QWidget @ 17 NONAME - _ZN11RadioWindowC2EP7QWidget @ 18 NONAME - _ZN11RadioWindowD0Ev @ 19 NONAME - _ZN11RadioWindowD1Ev @ 20 NONAME - _ZN11RadioWindowD2Ev @ 21 NONAME - _ZN16RadioFadingLabel11qt_metacallEN11QMetaObject4CallEiPPv @ 22 NONAME - _ZN16RadioFadingLabel11qt_metacastEPKc @ 23 NONAME - _ZN16RadioFadingLabel11startEffectERK7QStringPKc @ 24 NONAME - _ZN16RadioFadingLabel14effectFinishedEN8HbEffect12EffectStatusE @ 25 NONAME - _ZN16RadioFadingLabel16setFadingEnabledEb @ 26 NONAME - _ZN16RadioFadingLabel16staticMetaObjectE @ 27 NONAME DATA 16 - _ZN16RadioFadingLabel19getStaticMetaObjectEv @ 28 NONAME - _ZN16RadioFadingLabel20setTextWithoutFadingERK7QString @ 29 NONAME - _ZN16RadioFadingLabel7setTextERK7QString @ 30 NONAME - _ZN16RadioFadingLabel8trimHtmlERK7QString @ 31 NONAME - _ZN16RadioFadingLabelC1EP13QGraphicsItem @ 32 NONAME - _ZN16RadioFadingLabelC2EP13QGraphicsItem @ 33 NONAME - _ZN19RadioFrequencyStrip10drawPixmapEj5QListI12RadioStationEP18RadioFrequencyItem @ 34 NONAME - _ZN19RadioFrequencyStrip10timerEventEP11QTimerEvent @ 35 NONAME - _ZN19RadioFrequencyStrip10updateItemEP18RadioFrequencyItemjj @ 36 NONAME - _ZN19RadioFrequencyStrip11changeEventEP6QEvent @ 37 NONAME - _ZN19RadioFrequencyStrip11hideButtonsEv @ 38 NONAME - _ZN19RadioFrequencyStrip11initButtonsEv @ 39 NONAME - _ZN19RadioFrequencyStrip11qt_metacallEN11QMetaObject4CallEiPPv @ 40 NONAME - _ZN19RadioFrequencyStrip11qt_metacastEPKc @ 41 NONAME - _ZN19RadioFrequencyStrip11resizeEventEP25QGraphicsSceneResizeEvent @ 42 NONAME - _ZN19RadioFrequencyStrip11showButtonsEv @ 43 NONAME - _ZN19RadioFrequencyStrip12gestureEventEP13QGestureEvent @ 44 NONAME - _ZN19RadioFrequencyStrip12initSelectorEv @ 45 NONAME - _ZN19RadioFrequencyStrip12setFrequencyEjiN6Scroll9DirectionE @ 46 NONAME - _ZN19RadioFrequencyStrip13initPositionsEv @ 47 NONAME - _ZN19RadioFrequencyStrip13removeStationERK11QModelIndexii @ 48 NONAME - _ZN19RadioFrequencyStrip13seekRequestedEi @ 49 NONAME - _ZN19RadioFrequencyStrip13setItemHeightEi @ 50 NONAME - _ZN19RadioFrequencyStrip13skipRequestedEi @ 51 NONAME - _ZN19RadioFrequencyStrip13updateStationERK11QModelIndexii @ 52 NONAME - _ZN19RadioFrequencyStrip14initEmptyItemsEv @ 53 NONAME - _ZN19RadioFrequencyStrip14updateAllItemsEv @ 54 NONAME - _ZN19RadioFrequencyStrip14updateFavoriteERK12RadioStation @ 55 NONAME - _ZN19RadioFrequencyStrip15addFrequencyPosEijP18RadioFrequencyItem @ 56 NONAME - _ZN19RadioFrequencyStrip15mousePressEventEP24QGraphicsSceneMouseEvent @ 57 NONAME - _ZN19RadioFrequencyStrip15setScanningModeEb @ 58 NONAME - _ZN19RadioFrequencyStrip16cancelManualSeekEv @ 59 NONAME - _ZN19RadioFrequencyStrip16frequencyChangedEjii @ 60 NONAME - _ZN19RadioFrequencyStrip16handleLeftButtonEv @ 61 NONAME - _ZN19RadioFrequencyStrip16scrollPosChangedEv @ 62 NONAME - _ZN19RadioFrequencyStrip16staticMetaObjectE @ 63 NONAME DATA 16 - _ZN19RadioFrequencyStrip16toggleManualSeekEv @ 64 NONAME - _ZN19RadioFrequencyStrip17addScannedStationERK12RadioStation @ 65 NONAME - _ZN19RadioFrequencyStrip17handleRightButtonEv @ 66 NONAME - _ZN19RadioFrequencyStrip17manualSeekChangedEb @ 67 NONAME - _ZN19RadioFrequencyStrip17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 68 NONAME - _ZN19RadioFrequencyStrip17scrollToFrequencyEjN6Scroll9DirectionEiN10TuneReason6ReasonE @ 69 NONAME - _ZN19RadioFrequencyStrip18handleScrollingEndEv @ 70 NONAME - _ZN19RadioFrequencyStrip19createItemPrimitiveEP13QGraphicsItem @ 71 NONAME - _ZN19RadioFrequencyStrip19getStaticMetaObjectEv @ 72 NONAME - _ZN19RadioFrequencyStrip19updateItemPrimitiveEP13QGraphicsItemi @ 73 NONAME - _ZN19RadioFrequencyStrip20emitFrequencyChangedEj @ 74 NONAME - _ZN19RadioFrequencyStrip20handleLongLeftButtonEv @ 75 NONAME - _ZN19RadioFrequencyStrip21handleLongRightButtonEv @ 76 NONAME - _ZN19RadioFrequencyStrip21updateStationsInRangeEiib @ 77 NONAME - _ZN19RadioFrequencyStrip4initEP13RadioUiEngineR13RadioUiLoader @ 78 NONAME - _ZN19RadioFrequencyStrip9initModelEv @ 79 NONAME - _ZN19RadioFrequencyStripC1Ev @ 80 NONAME - _ZN19RadioFrequencyStripC2Ev @ 81 NONAME - _ZN20RadioStationCarousel10timerFiredEv @ 82 NONAME - _ZN20RadioStationCarousel11findStationEj @ 83 NONAME - _ZN20RadioStationCarousel11qt_metacallEN11QMetaObject4CallEiPPv @ 84 NONAME - _ZN20RadioStationCarousel11qt_metacastEPKc @ 85 NONAME - _ZN20RadioStationCarousel11resizeEventEP25QGraphicsSceneResizeEvent @ 86 NONAME - _ZN20RadioStationCarousel11setInfoTextEN16CarouselInfoText4TypeE @ 87 NONAME - _ZN20RadioStationCarousel12cleanRdsDataEv @ 88 NONAME - _ZN20RadioStationCarousel12gestureEventEP13QGestureEvent @ 89 NONAME - _ZN20RadioStationCarousel12setFrequencyEjiN6Scroll9DirectionE @ 90 NONAME - _ZN20RadioStationCarousel13clearInfoTextEv @ 91 NONAME - _ZN20RadioStationCarousel13drawOffScreenER8QPainter @ 92 NONAME - _ZN20RadioStationCarousel13localizeGenreEi @ 93 NONAME - _ZN20RadioStationCarousel13scrollToIndexEiN6Scroll9DirectionE6QFlagsINS_10ScrollFlagEE @ 94 NONAME - _ZN20RadioStationCarousel13skipRequestedEi @ 95 NONAME - _ZN20RadioStationCarousel14setCenterIndexEi6QFlagsINS_10ScrollFlagEE @ 96 NONAME - _ZN20RadioStationCarousel14updateStationsEv @ 97 NONAME - _ZN20RadioStationCarousel15cancelAnimationEv @ 98 NONAME - _ZN20RadioStationCarousel15mousePressEventEP24QGraphicsSceneMouseEvent @ 99 NONAME - _ZN20RadioStationCarousel15setFavoriteIconERK6HbIcon @ 100 NONAME - _ZN20RadioStationCarousel15setScanningModeEb @ 101 NONAME - _ZN20RadioStationCarousel15updateRadioTextERK12RadioStation @ 102 NONAME - _ZN20RadioStationCarousel16frequencyChangedEjii @ 103 NONAME - _ZN20RadioStationCarousel16handleUrlClickedERK12RadioStation @ 104 NONAME - _ZN20RadioStationCarousel16scrollPosChangedERK7QPointF @ 105 NONAME - _ZN20RadioStationCarousel16staticMetaObjectE @ 106 NONAME DATA 16 - _ZN20RadioStationCarousel17adjustAfterScrollEv @ 107 NONAME - _ZN20RadioStationCarousel17animateNewStationERK12RadioStation @ 108 NONAME - _ZN20RadioStationCarousel17handleIconClickedERK12RadioStation @ 109 NONAME - _ZN20RadioStationCarousel17setAutoScrollTimeEi @ 110 NONAME - _ZN20RadioStationCarousel17setManualSeekModeEb @ 111 NONAME - _ZN20RadioStationCarousel18setNonFavoriteIconERK6HbIcon @ 112 NONAME - _ZN20RadioStationCarousel19calculateDifferenceEiRN6Scroll9DirectionE @ 113 NONAME - _ZN20RadioStationCarousel19getStaticMetaObjectEv @ 114 NONAME - _ZN20RadioStationCarousel19updateAntennaStatusEb @ 115 NONAME - _ZN20RadioStationCarousel21scanAnimationFinishedEv @ 116 NONAME - _ZN20RadioStationCarousel22handleRadiotextClickedERK12RadioStation @ 117 NONAME - _ZN20RadioStationCarousel24setAlternateSkippingModeEb @ 118 NONAME - _ZN20RadioStationCarousel4initER13RadioUiLoaderP13RadioUiEngine @ 119 NONAME - _ZN20RadioStationCarousel4skipEN11StationSkip4ModeE @ 120 NONAME - _ZN20RadioStationCarousel6updateERK12RadioStation @ 121 NONAME - _ZN20RadioStationCarousel8uiEngineEv @ 122 NONAME - _ZN20RadioStationCarousel9adjustPosEi @ 123 NONAME - _ZN20RadioStationCarousel9nextIndexEi @ 124 NONAME - _ZN20RadioStationCarousel9prevIndexEi @ 125 NONAME - _ZN20RadioStationCarousel9showEventEP10QShowEvent @ 126 NONAME - _ZN20RadioStationCarousel9trimIndexEi @ 127 NONAME - _ZN20RadioStationCarouselC1EP13QGraphicsItem @ 128 NONAME - _ZN20RadioStationCarouselC2EP13QGraphicsItem @ 129 NONAME - _ZNK11RadioWindow10metaObjectEv @ 130 NONAME - _ZNK16RadioFadingLabel10metaObjectEv @ 131 NONAME - _ZNK19RadioFrequencyStrip10itemHeightEv @ 132 NONAME - _ZNK19RadioFrequencyStrip10metaObjectEv @ 133 NONAME - _ZNK19RadioFrequencyStrip11selectorPosEv @ 134 NONAME - _ZNK19RadioFrequencyStrip18isInManualSeekModeEv @ 135 NONAME - _ZNK19RadioFrequencyStrip9frequencyEv @ 136 NONAME - _ZNK20RadioStationCarousel10metaObjectEv @ 137 NONAME - _ZNK20RadioStationCarousel12favoriteIconEv @ 138 NONAME - _ZNK20RadioStationCarousel13isInitializedEv @ 139 NONAME - _ZNK20RadioStationCarousel14autoScrollTimeEv @ 140 NONAME - _ZNK20RadioStationCarousel14isInManualSeekEv @ 141 NONAME - _ZNK20RadioStationCarousel15nonFavoriteIconEv @ 142 NONAME - _ZNK20RadioStationCarousel16isInScanningModeEv @ 143 NONAME - _ZNK20RadioStationCarousel17isAntennaAttachedEv @ 144 NONAME - _ZNK20RadioStationCarousel18isScrollingAllowedEv @ 145 NONAME - _ZTI11RadioWindow @ 146 NONAME - _ZTI16RadioFadingLabel @ 147 NONAME - _ZTI19RadioFrequencyStrip @ 148 NONAME - _ZTI20RadioStationCarousel @ 149 NONAME - _ZTV11RadioWindow @ 150 NONAME - _ZTV16RadioFadingLabel @ 151 NONAME - _ZTV19RadioFrequencyStrip @ 152 NONAME - _ZTV20RadioStationCarousel @ 153 NONAME - _ZThn28_N20RadioStationCarousel11findStationEj @ 154 NONAME - _ZThn28_N20RadioStationCarousel13localizeGenreEi @ 155 NONAME - _ZThn28_N20RadioStationCarousel16handleUrlClickedERK12RadioStation @ 156 NONAME - _ZThn28_N20RadioStationCarousel17handleIconClickedERK12RadioStation @ 157 NONAME - _ZThn28_N20RadioStationCarousel22handleRadiotextClickedERK12RadioStation @ 158 NONAME - _ZThn28_NK20RadioStationCarousel12favoriteIconEv @ 159 NONAME - _ZThn28_NK20RadioStationCarousel14isInManualSeekEv @ 160 NONAME - _ZThn28_NK20RadioStationCarousel15nonFavoriteIconEv @ 161 NONAME - _ZThn8_N11RadioWindowD0Ev @ 162 NONAME - _ZThn8_N11RadioWindowD1Ev @ 163 NONAME - _ZThn8_N19RadioFrequencyStrip15mousePressEventEP24QGraphicsSceneMouseEvent @ 164 NONAME - _ZThn8_N19RadioFrequencyStrip17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 165 NONAME - _ZThn8_N20RadioStationCarousel15mousePressEventEP24QGraphicsSceneMouseEvent @ 166 NONAME - _ZN19RadioFrequencyStrip7makeTabEfi @ 167 NONAME + _ZN11RadioWindow17updateOrientationEN2Qt11OrientationE @ 8 NONAME + _ZN11RadioWindow18orientationSectionEv @ 9 NONAME + _ZN11RadioWindow19activateHistoryViewEv @ 10 NONAME + _ZN11RadioWindow19getStaticMetaObjectEv @ 11 NONAME + _ZN11RadioWindow19updateAntennaStatusEb @ 12 NONAME + _ZN11RadioWindow20activateStationsViewEv @ 13 NONAME + _ZN11RadioWindow4initEv @ 14 NONAME + _ZN11RadioWindow8initViewEv @ 15 NONAME + _ZN11RadioWindowC1EP7QWidget @ 16 NONAME + _ZN11RadioWindowC2EP7QWidget @ 17 NONAME + _ZN11RadioWindowD0Ev @ 18 NONAME + _ZN11RadioWindowD1Ev @ 19 NONAME + _ZN11RadioWindowD2Ev @ 20 NONAME + _ZN16RadioFadingLabel11qt_metacallEN11QMetaObject4CallEiPPv @ 21 NONAME + _ZN16RadioFadingLabel11qt_metacastEPKc @ 22 NONAME + _ZN16RadioFadingLabel11startEffectERK7QStringPKc @ 23 NONAME + _ZN16RadioFadingLabel14effectFinishedEN8HbEffect12EffectStatusE @ 24 NONAME + _ZN16RadioFadingLabel16setFadingEnabledEb @ 25 NONAME + _ZN16RadioFadingLabel16staticMetaObjectE @ 26 NONAME DATA 16 + _ZN16RadioFadingLabel19getStaticMetaObjectEv @ 27 NONAME + _ZN16RadioFadingLabel20setTextWithoutFadingERK7QString @ 28 NONAME + _ZN16RadioFadingLabel7setTextERK7QString @ 29 NONAME + _ZN16RadioFadingLabel8trimHtmlERK7QString @ 30 NONAME + _ZN16RadioFadingLabelC1EP13QGraphicsItem @ 31 NONAME + _ZN16RadioFadingLabelC2EP13QGraphicsItem @ 32 NONAME + _ZN19RadioFrequencyStrip10skipToNextEv @ 33 NONAME + _ZN19RadioFrequencyStrip11qt_metacallEN11QMetaObject4CallEiPPv @ 34 NONAME + _ZN19RadioFrequencyStrip11qt_metacastEPKc @ 35 NONAME + _ZN19RadioFrequencyStrip12setFrequencyEjiN6Scroll9DirectionE @ 36 NONAME + _ZN19RadioFrequencyStrip13seekRequestedEi @ 37 NONAME + _ZN19RadioFrequencyStrip13skipRequestedEi @ 38 NONAME + _ZN19RadioFrequencyStrip14skipToPreviousEv @ 39 NONAME + _ZN19RadioFrequencyStrip16frequencyChangedEjii @ 40 NONAME + _ZN19RadioFrequencyStrip16staticMetaObjectE @ 41 NONAME DATA 16 + _ZN19RadioFrequencyStrip18skipToNextFavoriteEv @ 42 NONAME + _ZN19RadioFrequencyStrip19getStaticMetaObjectEv @ 43 NONAME + _ZN19RadioFrequencyStrip20emitFrequencyChangedEjii @ 44 NONAME + _ZN19RadioFrequencyStrip22skipToPreviousFavoriteEv @ 45 NONAME + _ZN19RadioFrequencyStrip4initEP13RadioUiEngineR13RadioUiLoader @ 46 NONAME + _ZN19RadioFrequencyStrip6seekUpEv @ 47 NONAME + _ZN19RadioFrequencyStrip8seekDownEv @ 48 NONAME + _ZN19RadioFrequencyStripC1Ev @ 49 NONAME + _ZN19RadioFrequencyStripC2Ev @ 50 NONAME + _ZN20RadioStationCarousel10timerFiredEv @ 51 NONAME + _ZN20RadioStationCarousel11findStationEj @ 52 NONAME + _ZN20RadioStationCarousel11qt_metacallEN11QMetaObject4CallEiPPv @ 53 NONAME + _ZN20RadioStationCarousel11qt_metacastEPKc @ 54 NONAME + _ZN20RadioStationCarousel11resizeEventEP25QGraphicsSceneResizeEvent @ 55 NONAME + _ZN20RadioStationCarousel11setInfoTextEN16CarouselInfoText4TypeE @ 56 NONAME + _ZN20RadioStationCarousel12cleanRdsDataEv @ 57 NONAME + _ZN20RadioStationCarousel12gestureEventEP13QGestureEvent @ 58 NONAME + _ZN20RadioStationCarousel12setFrequencyEjiN6Scroll9DirectionE @ 59 NONAME + _ZN20RadioStationCarousel12setLandscapeEb @ 60 NONAME + _ZN20RadioStationCarousel13clearInfoTextEv @ 61 NONAME + _ZN20RadioStationCarousel13drawOffScreenER8QPainter @ 62 NONAME + _ZN20RadioStationCarousel13localizeGenreEi @ 63 NONAME + _ZN20RadioStationCarousel13scrollToIndexEiN6Scroll9DirectionE6QFlagsINS_10ScrollFlagEE @ 64 NONAME + _ZN20RadioStationCarousel13skipRequestedEi @ 65 NONAME + _ZN20RadioStationCarousel14setCenterIndexEi6QFlagsINS_10ScrollFlagEE @ 66 NONAME + _ZN20RadioStationCarousel14updateStationsEv @ 67 NONAME + _ZN20RadioStationCarousel15cancelAnimationEv @ 68 NONAME + _ZN20RadioStationCarousel15mousePressEventEP24QGraphicsSceneMouseEvent @ 69 NONAME + _ZN20RadioStationCarousel15setFavoriteIconERK6HbIcon @ 70 NONAME + _ZN20RadioStationCarousel15setScanningModeEb @ 71 NONAME + _ZN20RadioStationCarousel15updateRadioTextERK12RadioStation @ 72 NONAME + _ZN20RadioStationCarousel16frequencyChangedEjii @ 73 NONAME + _ZN20RadioStationCarousel16handleUrlClickedERK12RadioStation @ 74 NONAME + _ZN20RadioStationCarousel16scrollPosChangedERK7QPointF @ 75 NONAME + _ZN20RadioStationCarousel16staticMetaObjectE @ 76 NONAME DATA 16 + _ZN20RadioStationCarousel17adjustAfterScrollEv @ 77 NONAME + _ZN20RadioStationCarousel17animateNewStationERK12RadioStation @ 78 NONAME + _ZN20RadioStationCarousel17handleIconClickedERK12RadioStation @ 79 NONAME + _ZN20RadioStationCarousel17setAutoScrollTimeEi @ 80 NONAME + _ZN20RadioStationCarousel17setManualSeekModeEb @ 81 NONAME + _ZN20RadioStationCarousel18setNonFavoriteIconERK6HbIcon @ 82 NONAME + _ZN20RadioStationCarousel19calculateDifferenceEiRN6Scroll9DirectionE @ 83 NONAME + _ZN20RadioStationCarousel19getStaticMetaObjectEv @ 84 NONAME + _ZN20RadioStationCarousel19updateAntennaStatusEb @ 85 NONAME + _ZN20RadioStationCarousel21scanAnimationFinishedEv @ 86 NONAME + _ZN20RadioStationCarousel22handleRadiotextClickedERK12RadioStation @ 87 NONAME + _ZN20RadioStationCarousel24setAlternateSkippingModeEb @ 88 NONAME + _ZN20RadioStationCarousel4initER13RadioUiLoaderP13RadioUiEngine @ 89 NONAME + _ZN20RadioStationCarousel4skipEN11StationSkip4ModeE @ 90 NONAME + _ZN20RadioStationCarousel6updateERK12RadioStation @ 91 NONAME + _ZN20RadioStationCarousel8uiEngineEv @ 92 NONAME + _ZN20RadioStationCarousel9adjustPosEi @ 93 NONAME + _ZN20RadioStationCarousel9nextIndexEi @ 94 NONAME + _ZN20RadioStationCarousel9prevIndexEi @ 95 NONAME + _ZN20RadioStationCarousel9showEventEP10QShowEvent @ 96 NONAME + _ZN20RadioStationCarousel9trimIndexEi @ 97 NONAME + _ZN20RadioStationCarouselC1EP13QGraphicsItem @ 98 NONAME + _ZN20RadioStationCarouselC2EP13QGraphicsItem @ 99 NONAME + _ZNK11RadioWindow10metaObjectEv @ 100 NONAME + _ZNK16RadioFadingLabel10metaObjectEv @ 101 NONAME + _ZNK19RadioFrequencyStrip10isScanningEv @ 102 NONAME + _ZNK19RadioFrequencyStrip10metaObjectEv @ 103 NONAME + _ZNK19RadioFrequencyStrip13isInitializedEv @ 104 NONAME + _ZNK19RadioFrequencyStrip15stationsInRangeEjj @ 105 NONAME + _ZNK19RadioFrequencyStrip16frequencyAtIndexEi @ 106 NONAME + _ZNK20RadioStationCarousel10metaObjectEv @ 107 NONAME + _ZNK20RadioStationCarousel12favoriteIconEv @ 108 NONAME + _ZNK20RadioStationCarousel13isInitializedEv @ 109 NONAME + _ZNK20RadioStationCarousel14autoScrollTimeEv @ 110 NONAME + _ZNK20RadioStationCarousel14isInManualSeekEv @ 111 NONAME + _ZNK20RadioStationCarousel15nonFavoriteIconEv @ 112 NONAME + _ZNK20RadioStationCarousel16isInScanningModeEv @ 113 NONAME + _ZNK20RadioStationCarousel17isAntennaAttachedEv @ 114 NONAME + _ZNK20RadioStationCarousel18isScrollingAllowedEv @ 115 NONAME + _ZTI11RadioWindow @ 116 NONAME + _ZTI16RadioFadingLabel @ 117 NONAME + _ZTI19RadioFrequencyStrip @ 118 NONAME + _ZTI20RadioStationCarousel @ 119 NONAME + _ZTV11RadioWindow @ 120 NONAME + _ZTV16RadioFadingLabel @ 121 NONAME + _ZTV19RadioFrequencyStrip @ 122 NONAME + _ZTV20RadioStationCarousel @ 123 NONAME + _ZThn28_N20RadioStationCarousel11findStationEj @ 124 NONAME + _ZThn28_N20RadioStationCarousel13localizeGenreEi @ 125 NONAME + _ZThn28_N20RadioStationCarousel16handleUrlClickedERK12RadioStation @ 126 NONAME + _ZThn28_N20RadioStationCarousel17handleIconClickedERK12RadioStation @ 127 NONAME + _ZThn28_N20RadioStationCarousel22handleRadiotextClickedERK12RadioStation @ 128 NONAME + _ZThn28_NK20RadioStationCarousel12favoriteIconEv @ 129 NONAME + _ZThn28_NK20RadioStationCarousel14isInManualSeekEv @ 130 NONAME + _ZThn28_NK20RadioStationCarousel15nonFavoriteIconEv @ 131 NONAME + _ZThn8_N11RadioWindowD0Ev @ 132 NONAME + _ZThn8_N11RadioWindowD1Ev @ 133 NONAME + _ZThn8_N20RadioStationCarousel15mousePressEventEP24QGraphicsSceneMouseEvent @ 134 NONAME diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/inc/radioapplication.h --- a/radioapp/radioapplication/inc/radioapplication.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radioapplication/inc/radioapplication.h Wed Aug 18 09:49:03 2010 +0300 @@ -27,6 +27,7 @@ // Forward declarations class RadioWindow; class RadioStationModel; +class XQSettingsManager; #ifdef BUILD_WIN32 class Win32Window; @@ -46,19 +47,32 @@ private slots: + void checkOfflineMode(); + void handleOfflineQueryAnswer(); + +private: + void init(); + bool isInOfflineMode() const; + void askOfflineModePermission( const QString& question ); private: // data #ifdef BUILD_WIN32 - QScopedPointer mWin32Window; + QScopedPointer mWin32Window; #endif // BUILD_WIN32 /** * Application main window * Own */ - QScopedPointer mMainWindow; + QScopedPointer mMainWindow; + + /** + * Pointer to settings manager + * Own. + */ + XQSettingsManager* mSettingsManager; }; diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/radioapplication.pro --- a/radioapp/radioapplication/radioapplication.pro Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radioapplication/radioapplication.pro Wed Aug 18 09:49:03 2010 +0300 @@ -30,6 +30,7 @@ ICON = resources/qtg_large_radio.svg # Fallback icon in case theme doesn't have one LIBS += -lxqserviceutil + LIBS += -lxqsettingsmanager BLD_INF_RULES.prj_exports += "resources/fmradio.docml /epoc32/release/winscw/udeb/z/resource/hb/splashml/fmradio.docml" \ "resources/fmradio.splashml /epoc32/release/winscw/udeb/z/resource/hb/splashml/fmradio.splashml" \ @@ -38,8 +39,6 @@ } CONFIG += hb service -CONFIG += mobility -MOBILITY = systeminfo # Service provider specific configuration. SERVICE.FILE = resources/service_conf.xml diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/src/radioapplication.cpp --- a/radioapp/radioapplication/src/radioapplication.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radioapplication/src/radioapplication.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -17,8 +17,9 @@ // System includes #include -#include #include +#include +#include #include #include @@ -43,11 +44,15 @@ # define INIT_WIN32_TEST_WINDOW #endif // BUILD_WIN32 + +static XQSettingsKey gConnectionKey( XQSettingsKey::TargetCentralRepository, CENREP_CORE_APPLICATION_UIS, ID_NETWORK_CONNECTION_ALLOWED ); + /*! * Constructor */ RadioApplication::RadioApplication( int &argc, char *argv[] ) : - HbApplication( argc, argv, Hb::NoSplash ) + HbApplication( argc, argv, Hb::NoSplash ), + mSettingsManager( new XQSettingsManager( this ) ) { // Initializes the radio engine utils if UI logs are entered into the engine log INIT_COMBINED_LOGGER @@ -55,11 +60,21 @@ LOG_TIMESTAMP( "Start radio" ); setApplicationName( hbTrId( "txt_rad_title_fm_radio" ) ); - if ( !XQServiceUtil::isService() ) { - HbSplashScreen::start(); + if ( XQServiceUtil::isService() ) { + + // Radio was started as a highway service from homescreen widget. + // Widget has already done the offline mode check so we can start without checking + init(); + + } else { + + if ( isInOfflineMode() ) { + askOfflineModePermission( hbTrId( "txt_rad_info_activate_radio_in_offline_mode" ) ); + } else { + init(); + } + } - - QTimer::singleShot( 0, this, SLOT(init()) ); } /*! @@ -76,41 +91,93 @@ * Private slot * */ -void RadioApplication::init() +void RadioApplication::checkOfflineMode() { - // If started as a service, there is no need for offline-check - bool okToStart = XQServiceUtil::isService(); - QScopedPointer deviceInfo( new QtMobility::QSystemDeviceInfo() ); - - if ( !okToStart ) { - if ( deviceInfo->currentProfile() != QtMobility::QSystemDeviceInfo::OfflineProfile ) { - okToStart = true; - } else { - // Device is in offline profile, ask the user for permission to start - HbDeviceMessageBox box( hbTrId( "txt_rad_info_activate_radio_in_offline_mode" ), HbMessageBox::MessageTypeQuestion ); - box.setTimeout( HbPopup::NoTimeout ); - box.exec(); - okToStart = box.isAcceptAction( box.triggeredAction() ); - } + if ( isInOfflineMode() ) { + askOfflineModePermission( hbTrId( "txt_rad_info_continue_using_the_radio_in_offline" ) ); } - - if ( okToStart ) { - - // Try to optimize startup time by launching the radio server process as soon as possible. - // This way the server and UI are being initialized at the same time and the startup is faster. -// RadioUiEngine::launchRadioServer(); - - mMainWindow.reset( new RadioWindow() ); +} - CREATE_WIN32_TEST_WINDOW - - INIT_WIN32_TEST_WINDOW +/*! + * Private slot + * + */ +void RadioApplication::handleOfflineQueryAnswer() +{ + HbDeviceMessageBox* box = static_cast( sender() ); + box->deleteLater(); + if ( box->isAcceptAction( box->triggeredAction() ) ) { - // Construct the real views - mMainWindow->init( deviceInfo.take() ); + // If main window has not been created yet it means the offline question was asked during startup + // so we must continue with the startup sequence. If the main window was already created it means + // the question was asked when the radio was already running and the offline mode was activated. + // In that case there is no need to do anything since the user wants to continue listening to radio. + if ( !mMainWindow ) { + init(); + } - mMainWindow->show(); } else { quit(); } } + +/*! + * + */ +void RadioApplication::init() +{ + // Try to optimize startup time by launching the radio server process as soon as possible. + // This way the server and UI are being initialized at the same time and the startup is faster. +// RadioUiEngine::launchRadioServer(); + + // Splash screen needs to be shown when not started by homescreen widget + if ( !XQServiceUtil::isService() ) { + HbSplashScreen::setAppId( "fmradio" ); + HbSplashScreen::start(); + } + + Radio::connect( mSettingsManager, SIGNAL(valueChanged(XQSettingsKey,QVariant)), + this, SLOT(checkOfflineMode()) ); + + bool monitoringStarted = mSettingsManager->startMonitoring( gConnectionKey ); + LOG_ASSERT( monitoringStarted, LOG( "Failed to start monitoring Offline mode!" ) ); + Q_UNUSED( monitoringStarted ); + + mMainWindow.reset( new RadioWindow() ); + + CREATE_WIN32_TEST_WINDOW + + INIT_WIN32_TEST_WINDOW + + // Construct the real views + mMainWindow->init(); + + mMainWindow->show(); +} + +/*! + * + */ +bool RadioApplication::isInOfflineMode() const +{ + const QVariant connectionAllowed = mSettingsManager->readItemValue( gConnectionKey ); + if ( connectionAllowed.canConvert( QVariant::Int ) && connectionAllowed.toInt() == NetworkNotAllowed ) { + return true; + } + + return false; +} + +/*! + * + */ +void RadioApplication::askOfflineModePermission( const QString& question ) +{ + HbDeviceMessageBox* box = new HbDeviceMessageBox( question, HbMessageBox::MessageTypeQuestion, this ); + box->setStandardButtons( HbMessageBox::Yes | HbMessageBox::No ); + box->setTimeout( HbPopup::NoTimeout ); + box->setDismissPolicy( HbPopup::NoDismiss ); + Radio::connect( box, SIGNAL(aboutToClose()), + this, SLOT(handleOfflineQueryAnswer()) ); + box->show(); +} diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/win32_stubs/qsysteminfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radioapplication/win32_stubs/qsysteminfo.h Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// THIS IS A STUB CLASS FOR WIN32 ENVIRONMENT! +// It is only meant to compile, not to actually do anything + +#ifndef Q_SYSTEMINFO_H +#define Q_SYSTEMINFO_H + +#include + +namespace QtMobility { + +class QSystemDeviceInfo : public QObject +{ + Q_OBJECT +public: + + QSystemDeviceInfo( QObject* parent = 0 ); + virtual ~QSystemDeviceInfo(); + + enum Profile { GeneralProfile, OfflineProfile }; + Profile currentProfile() { return GeneralProfile; } + +signals: + + void currentProfileChanged(QSystemDeviceInfo::Profile); + +}; + + +} + +#endif // Q_SYSTEMINFO_H diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/win32_stubs/win32_stubs.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radioapplication/win32_stubs/win32_stubs.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,151 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "qsysteminfo.h" +#include "xqserviceprovider.h" +#include "xqsettingskey.h" +#include "xqsettingsmanager.h" +#include "radio_global.h" + +/*! + * + */ +QtMobility::QSystemDeviceInfo::QSystemDeviceInfo( QObject* parent ) : + QObject( parent ) +{ +} + +/*! + * + */ +QtMobility::QSystemDeviceInfo::~QSystemDeviceInfo() +{ +} + +/*! + * + */ +XQServiceProvider::XQServiceProvider( const QString&, QObject* parent ) : + QObject( parent ) +{ +} + +/*! + * + */ +XQServiceProvider::~XQServiceProvider() +{ +} + + +/*! + * + */ +XQSettingsKey::XQSettingsKey( XQSettingsKey::Target, long int uid, unsigned long int key ) : + mUid( uid ), + mKey( key ) +{ +} + +/*! + * + */ +XQSettingsKey::~XQSettingsKey() +{ +} + +/*! + * + */ +XQSettingsKey::Target XQSettingsKey::target() const +{ + return TargetCentralRepository; +} + +/*! + * + */ +long int XQSettingsKey::uid() const +{ + return mUid; +} + +/*! + * + */ +unsigned long int XQSettingsKey::key() const +{ + return mKey; +} + +/*! + * + */ +XQSettingsManager::XQSettingsManager( QObject* parent ) : + QObject( parent ) +{ +} + +/*! + * + */ +XQSettingsManager::~XQSettingsManager() +{ +} + +/*! + * + */ +QVariant XQSettingsManager::readItemValue( const XQSettingsKey& key, XQSettingsManager::Type ) +{ + if ( key.uid() == CENREP_CORE_APPLICATION_UIS && key.key() == ID_NETWORK_CONNECTION_ALLOWED ) { + return NetworkAllowed; + } + return QVariant(); +} + +/*! + * + */ +bool XQSettingsManager::writeItemValue( const XQSettingsKey&, const QVariant& ) +{ + return true; +} + +/*! + * + */ +bool XQSettingsManager::startMonitoring( const XQSettingsKey&, XQSettingsManager::Type ) +{ + return true; +} + +/*! + * + */ +bool XQSettingsManager::stopMonitoring( const XQSettingsKey& ) +{ + return true; +} + +/*! + * + */ +XQSettingsManager::Error XQSettingsManager::error() const +{ + return NoError; +} diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/win32_stubs/xqserviceprovider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radioapplication/win32_stubs/xqserviceprovider.h Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,88 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License as published by +* the Free Software Foundation, version 2.1 of the License. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, +* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". +* +* Description: +* +*/ + +#ifndef XQSERVICEABSTRACTSERVICE_H +#define XQSERVICEABSTRACTSERVICE_H + +// THIS IS A STUB CLASS FOR WIN32 ENVIRONMENT! +// It is only meant to compile, not to actually do anything + +#include +#include +#include +#include +#include + +class XQRequestInfo +{ +public: + + bool isValid() const { return true; } + + void setEmbedded(bool) {} + bool isEmbedded() const { return false; } + void setBackground(bool) {} + bool isBackground() const { return false; } + bool isSynchronous() const { return false; } + void setForeground(bool) {} + bool isForeground() const { return true; } + + quint32 clientSecureId() const { return VID_DEFAULT; } + quint32 clientVendorId() const { return VID_DEFAULT; } + QSet clientCapabilities() const { return QSet(); } + int id() const { return -1; } + + void setInfo(const QString&, const QVariant&) {} + QVariant info(const QString&) const { return QVariant(); } + QStringList infoKeys() const { return QStringList(); } + +}; + +class XQServiceProvider : public QObject +{ + Q_OBJECT +public: + explicit XQServiceProvider( const QString& service, QObject* parent = 0 ); + ~XQServiceProvider(); + + void SetPlugin(QObject*) {} + +Q_SIGNALS: + void returnValueDelivered(); + void clientDisconnected(); + +protected: + void publishAll() {} + int setCurrentRequestAsync() { return -1; } + bool completeRequest(int, const QVariant&) { return true; } + XQRequestInfo requestInfo() const { return XQRequestInfo(); } + + template + inline bool completeRequest(int index, const T& retValue) + { + QVariant retValueVariant; + retValueVariant.setValue(retValue); + return completeRequest(index, retValueVariant); + } + +}; + +#endif diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/win32_stubs/xqserviceutil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radioapplication/win32_stubs/xqserviceutil.h Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,35 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef XQSERVICEUTIL_H +#define XQSERVICEUTIL_H + +#include + +// THIS IS A STUB CLASS FOR WIN32 ENVIRONMENT! +// It is only meant to compile, not to actually do anything + +namespace XQServiceUtil +{ + void toBackground(bool) {} + bool isEmbedded() { return false; } + bool isService() { return false; } + QString interfaceName() { return ""; } + QString operationName() { return ""; } +} + +#endif diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/win32_stubs/xqsettingskey.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radioapplication/win32_stubs/xqsettingskey.h Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef XQSETTINGSITEM_STUB_H +#define XQSETTINGSITEM_STUB_H + +class XQSettingsKey +{ +public: + enum Target + { + TargetCentralRepository = 0, + TargetPublishAndSubscribe + }; + + XQSettingsKey(XQSettingsKey::Target target, long int uid, unsigned long int key); + ~XQSettingsKey(); + + XQSettingsKey::Target target() const; + long int uid() const; + unsigned long int key() const; + +private: // data + + long int mUid; + unsigned long int mKey; + +}; + +#endif //XQSETTINGSITEM_STUB_H diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioapplication/win32_stubs/xqsettingsmanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radioapplication/win32_stubs/xqsettingsmanager.h Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,73 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef XQSETTINGSMANAGER_STUB_H +#define XQSETTINGSMANAGER_STUB_H + +#include +#include + +//#include "xqsettingskey.h" +class XQSettingsKey; + +class XQSettingsManager : public QObject +{ + Q_OBJECT +// Q_ENUMS(Error) +// Q_ENUMS(Type) + +public: + + enum Type + { + TypeVariant = 0, + TypeInt, + TypeDouble, + TypeString, + TypeByteArray + }; + + enum Error + { + NoError = 0, + OutOfMemoryError, + NotFoundError, + AlreadyExistsError, + PermissionDeniedError, + BadTypeError, + NotSupportedError, + UnknownError = -1 + }; + + XQSettingsManager(QObject* parent = 0); + virtual ~XQSettingsManager(); + + QVariant readItemValue(const XQSettingsKey& key, XQSettingsManager::Type type = XQSettingsManager::TypeVariant); + bool writeItemValue(const XQSettingsKey& key, const QVariant& value); + bool startMonitoring(const XQSettingsKey& key, XQSettingsManager::Type type = XQSettingsManager::TypeVariant); + bool stopMonitoring(const XQSettingsKey& key); + + XQSettingsManager::Error error() const; + +Q_SIGNALS: + void valueChanged(const XQSettingsKey& key, const QVariant& value); + void itemDeleted(const XQSettingsKey& key); + +private: +}; + +#endif // XQSETTINGSMANAGER_STUB_H diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioenginewrapper/src/radioenginehandler.cpp --- a/radioapp/radioenginewrapper/src/radioenginehandler.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radioenginewrapper/src/radioenginehandler.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -21,7 +21,6 @@ #include "cradiosystemeventcollector.h" #include "cradiosettings.h" #include "mradioenginesettings.h" -#include "cradiorepositorymanager.h" #include "mradiordsreceiver.h" #include "radioenginehandler.h" #include "mradioenginehandlerobserver.h" diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radioenginewrapper/src/radioenginewrapper.cpp --- a/radioapp/radioenginewrapper/src/radioenginewrapper.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radioenginewrapper/src/radioenginewrapper.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -51,7 +51,7 @@ void RadioEngineWrapper::addObserver( RadioEngineWrapperObserver* observer ) { Q_D( RadioEngineWrapper ); - d->mObservers.append( observer ); + d->mObservers.prepend( observer ); } /*! diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiopresetstorage/inc/radiostationif.h --- a/radioapp/radiopresetstorage/inc/radiostationif.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiopresetstorage/inc/radiostationif.h Wed Aug 18 09:49:03 2010 +0300 @@ -52,6 +52,9 @@ virtual bool isLocalStation() const = 0; virtual void setLocalStation( bool localStation ) = 0; + virtual bool hasStationSentRds() const = 0; + virtual void setStationHasSentRds( bool hasSentRds ) = 0; + }; diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/inc/radiostation.h --- a/radioapp/radiouiengine/inc/radiostation.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/inc/radiostation.h Wed Aug 18 09:49:03 2010 +0300 @@ -174,8 +174,6 @@ inline bool hasRadiotext() const { return !radioText().isEmpty(); } inline bool hasDynamicPs() const { return !dynamicPsText().isEmpty(); } inline bool hasGenre() const { return genre() != -1; } - inline bool hasRds() const { return hasPiCode() || hasGenre() || hasDynamicPs() || - hasRadiotext() || hasUrl() || ( !hasName() && !isRenamed() ); } // Getters for non-persistent data @@ -186,6 +184,7 @@ bool hasDataChanged( Change flags ) const; bool hasChanged() const; void resetChangeFlags(); + bool hasSentRds() const; private: diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/inc/radiostation_p.h --- a/radioapp/radiouiengine/inc/radiostation_p.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/inc/radiostation_p.h Wed Aug 18 09:49:03 2010 +0300 @@ -32,6 +32,17 @@ { public: + /** + * Flags to indicate various on/off type information of the radio station + */ + enum StationInfoFlag + { + RenamedByUser = 1 << 0, + StationSendsRds = 1 << 1, + CallSignCheckDone = 1 << 2 + }; + Q_DECLARE_FLAGS( StationInfo, StationInfoFlag ) + explicit RadioStationPrivate( int presetIndex = RadioStation::Invalid, uint frequency = 0 ); explicit RadioStationPrivate( const RadioStationPrivate& other ); @@ -39,8 +50,6 @@ void init( int presetIndex, uint frequency = 0 ); -private: - // from base class RadioStationIf int presetIndex() const; @@ -61,6 +70,13 @@ void setFavorite( bool favorite ); bool isLocalStation() const; void setLocalStation( bool localStation ); + bool hasStationSentRds() const; + void setStationHasSentRds( bool hasSentRds ); + +// New functions + + bool isCallSignCheckDone() const; + void setCallSignCheckDone( bool checkDone ); public: // data @@ -92,11 +108,6 @@ QString mName; /** - * Flag to indicate whether or not the user has renamed the station - */ - bool mRenamedByUser; - - /** * Station genre received through RDS */ int mGenre; @@ -161,17 +172,19 @@ RadioStation::Change mChangeFlags; /** - * Keeps track of station call sign calculation state - */ - bool mCallSignCheckDone; - - /** * Time of the last PS name change. Used to check if the station changes its PS name too often. * In bad RDS coverage a station using dynamic PS might be incorrectly determined to use static PS. * This is a corrective effort to change that decision if the name changes too often. */ QTime mLastPsNameChangeTime; + /** + * Flags to indicate various on/off type information of the radio station + */ + StationInfo mStationInfo; + }; +Q_DECLARE_OPERATORS_FOR_FLAGS( RadioStationPrivate::StationInfo ) + #endif // RADIOSTATIONINFO_P_H_ diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/inc/radiouiengine.h --- a/radioapp/radiouiengine/inc/radiouiengine.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/inc/radiouiengine.h Wed Aug 18 09:49:03 2010 +0300 @@ -116,7 +116,7 @@ void addRecognizedSong( const QString& artist, const QString& title, const RadioStation& station ); - uint skipStation( StationSkip::Mode mode, uint startFrequency = 0 ); + uint skipStation( StationSkip::Mode mode, uint startFrequency = 0, const int reason = TuneReason::Skip ); enum MusicStore{ OviStore, OtherStore }; void openMusicStore( const RadioHistoryItem& item, MusicStore store = OviStore ); diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/src/radiocontrolservice.cpp --- a/radioapp/radiouiengine/src/radiocontrolservice.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/src/radiocontrolservice.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -64,11 +64,11 @@ break; case RadioServiceCommand::Previous: - mUiEngine.skipStation( StationSkip::PreviousFavorite ); + mUiEngine.skipStation( StationSkip::PreviousFavorite, 0, TuneReason::SkipFromWidget ); break; case RadioServiceCommand::Next: - mUiEngine.skipStation( StationSkip::NextFavorite ); + mUiEngine.skipStation( StationSkip::NextFavorite, 0, TuneReason::SkipFromWidget ); break; case RadioServiceCommand::SeekUp: diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/src/radiostation.cpp --- a/radioapp/radiouiengine/src/radiostation.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/src/radiostation.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -182,9 +182,10 @@ { // Name emptiness is checked because this name setter is used by incoming RDS PS name // and empty names should be ignored - if ( !name.isEmpty() && !mData->mRenamedByUser && mData->mName.compare( name ) != 0 ) { + if ( !name.isEmpty() && !mData->isRenamedByUser() && mData->mName.compare( name ) != 0 ) { mData->mName = name.trimmed(); mData->mChangeFlags |= RadioStation::PersistentDataChanged | RadioStation::NameChanged; + mData->setStationHasSentRds( true ); // Save the time when PS name changed and if the last change was too close to the current time // change the PS type to dynamic if it has already been incorrectly determined to be static. @@ -197,13 +198,13 @@ mData->mDynamicPsText = mData->mName; mData->mName = ""; mData->mChangeFlags |= RadioStation::PsTypeChanged | RadioStation::DynamicPsChanged; - mData->mCallSignCheckDone = false; + mData->setCallSignCheckDone( false ); } //TODO: This is a temporary thing to see some URL. Remove this if ( !mData->mName.isEmpty() ) { QString url = mData->mName.toLower().remove( " " ); - mData->mUrl = "www." + url + ".fi"; + mData->mUrl = "http://www." + url + ".fi"; } else { mData->mUrl = ""; } @@ -220,6 +221,9 @@ if ( mData->mGenre != genre ) { mData->mGenre = genre; mData->mChangeFlags |= RadioStation::PersistentDataChanged | RadioStation::GenreChanged; + + // Note that setStationHasSentRds() is not set when genre or pi code arrives. + ASSERT_SHARED_NULL_IS_INTACT } } @@ -232,6 +236,7 @@ if ( mData->mUrl.compare( url ) != 0 ) { mData->mUrl = url; mData->mChangeFlags |= RadioStation::PersistentDataChanged | RadioStation::UrlChanged; + mData->setStationHasSentRds( true ); ASSERT_SHARED_NULL_IS_INTACT } } @@ -249,16 +254,18 @@ } LOG_FORMAT( "stored PI: %d", mData->mPiCode ); - LOG_FORMAT( "call sign check done: %d", mData->mCallSignCheckDone ); + LOG_FORMAT( "call sign check done: %d", mData->isCallSignCheckDone() ); //prevent executing the below code when unnessesary - if ( mData->mPiCode != piCode || !mData->mCallSignCheckDone ) { + if ( mData->mPiCode != piCode || !mData->isCallSignCheckDone() ) { mData->mPiCode = piCode; mData->mChangeFlags |= RadioStation::PersistentDataChanged | RadioStation::PiCodeChanged; + // Note that setStationHasSentRds() is not set when genre or pi code arrives. + // call sign not calculated for clear channel stations //TODO: Remove magic numbers if ( ( (mData->mPiCode & 0xF000 ) >> 12 ) == 0x1 ) { LOG( "Clear channel station" ); - mData->mCallSignCheckDone = true; + mData->setCallSignCheckDone( true ); } else if ( region == RadioRegion::America && mData->mName.isEmpty() && !isRenamed() ) { LOG( "Calculate call sign" ); mData->mName = piCodeToCallSign( mData->mPiCode ); @@ -267,7 +274,7 @@ if ( mData->mChangeFlags.testFlag( RadioStation::PsTypeChanged ) ) { LOG( "Call sign check done" ); - mData->mCallSignCheckDone = true; + mData->setCallSignCheckDone( true ); } ASSERT_SHARED_NULL_IS_INTACT @@ -296,6 +303,7 @@ if ( mData->mRadioText.compare( radioText ) != 0 ) { mData->mRadioText = radioText.isEmpty() ? "" : radioText.trimmed(); mData->mChangeFlags |= RadioStation::RadioTextChanged; + mData->setStationHasSentRds( true ); ASSERT_SHARED_NULL_IS_INTACT } } @@ -359,7 +367,7 @@ // of a station by setting an empty name if ( mData->mName.compare( name ) != 0 ) { mData->mName = name; - mData->mRenamedByUser = !name.isEmpty(); + mData->setRenamedByUser( !name.isEmpty() ); mData->mChangeFlags |= RadioStation::PersistentDataChanged | RadioStation::NameChanged; } } @@ -369,7 +377,7 @@ */ bool RadioStation::isRenamed() const { - return mData->mRenamedByUser; + return mData->isRenamedByUser(); } /*! @@ -545,6 +553,14 @@ /*! * */ +bool RadioStation::hasSentRds() const +{ + return mData->hasStationSentRds(); +} + +/*! + * + */ QString RadioStation::piCodeToCallSign( uint programmeIdentification ) { QString callSign; diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/src/radiostation_p.cpp --- a/radioapp/radiouiengine/src/radiostation_p.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/src/radiostation_p.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -20,6 +20,16 @@ // User includes #include "radiostation_p.h" +/** + * Convenience macro to set and unset flag values + */ +#define SET_FLAG_VALUE(member,flag,value) \ + if ( value ) { \ + member |= flag; \ + } else { \ + member &= ~flag; \ + } + /*! * */ @@ -40,7 +50,6 @@ mPresetIndex( other.mPresetIndex ), mFrequency( other.mFrequency ), mName( other.mName ), - mRenamedByUser( other.mRenamedByUser ), mGenre( other.mGenre ), mUrl( other.mUrl ), mPiCode( other.mPiCode ), @@ -49,9 +58,12 @@ mRadioText( other.mRadioText ), mDynamicPsText( other.mDynamicPsText ), mChangeFlags( other.mChangeFlags ), - mCallSignCheckDone( other.mCallSignCheckDone ), mLastPsNameChangeTime( other.mLastPsNameChangeTime ) { + setRenamedByUser( other.isRenamedByUser() ); + setCallSignCheckDone( other.isCallSignCheckDone() ); + setStationHasSentRds( other.hasStationSentRds() ); + // Protect the shared null preset index to make debugging easier if ( mPresetIndex == RadioStation::SharedNull ) { mPresetIndex = RadioStation::Invalid; @@ -70,15 +82,14 @@ */ void RadioStationPrivate::init( int presetIndex, uint frequency ) { - mPresetIndex = presetIndex; - mFrequency = frequency; - mRenamedByUser = false; - mGenre = -1; - mPiCode = -1; - mType = 0; - mPsType = RadioStation::Unknown; - mChangeFlags = RadioStation::NoChange; - mCallSignCheckDone = false; + mPresetIndex = presetIndex; + mFrequency = frequency; + mGenre = -1; + mPiCode = -1; + mType = 0; + mPsType = RadioStation::Unknown; + mChangeFlags = RadioStation::NoChange; + mStationInfo = 0; } /*! @@ -134,7 +145,7 @@ */ bool RadioStationPrivate::isRenamedByUser() const { - return mRenamedByUser; + return mStationInfo.testFlag( RenamedByUser ); } /*! @@ -142,7 +153,7 @@ */ void RadioStationPrivate::setRenamedByUser( bool renamed ) { - mRenamedByUser = renamed; + SET_FLAG_VALUE( mStationInfo, RenamedByUser, renamed ); } /*! @@ -206,11 +217,7 @@ */ void RadioStationPrivate::setFavorite( bool favorite ) { - if ( favorite ) { - mType |= RadioStation::Favorite; - } else { - mType &= ~RadioStation::Favorite; - } + SET_FLAG_VALUE( mType, RadioStation::Favorite, favorite ); } /*! @@ -226,9 +233,37 @@ */ void RadioStationPrivate::setLocalStation( bool localStation ) { - if ( localStation ) { - mType |= RadioStation::LocalStation; - } else { - mType &= ~RadioStation::LocalStation; - } + SET_FLAG_VALUE( mType, RadioStation::LocalStation, localStation ); +} + +/*! + * \reimp + */ +bool RadioStationPrivate::hasStationSentRds() const +{ + return mStationInfo.testFlag( StationSendsRds ); } + +/*! + * \reimp + */ +void RadioStationPrivate::setStationHasSentRds( bool hasSentRds ) +{ + SET_FLAG_VALUE( mStationInfo, StationSendsRds, hasSentRds ); +} + +/*! + * + */ +bool RadioStationPrivate::isCallSignCheckDone() const +{ + return mStationInfo.testFlag( CallSignCheckDone ); +} + +/*! + * + */ +void RadioStationPrivate::setCallSignCheckDone( bool checkDone ) +{ + SET_FLAG_VALUE( mStationInfo, CallSignCheckDone, checkDone ); +} diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/src/radiostationmodel.cpp --- a/radioapp/radiouiengine/src/radiostationmodel.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/src/radiostationmodel.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -179,6 +179,26 @@ RadioStationIf* stationInterface = static_cast( station.data_ptr() ); if ( d->mPresetStorage->readPreset( index, *stationInterface ) ) { if ( station.isValid() && d->mWrapper->isFrequencyValid( station.frequency() ) ) { + +#ifdef INIT_STATIONS_WITH_DUMMY_RT + station.setGenre( GenreEurope::RdsChildrensProgrammes ); + if ( index % 3 == 0 ) { + station.setName( "Radio Rock" ); + station.setRadioText( "Now playing: The Presidents of the United States of America - Dune Buggy and diipa daapa jhkjhui erjlkej rewjtl" ); + } else if ( index % 2 == 0 ) { + station.setName( "Radio Rock" ); + } else { + station.setDynamicPsText( "DYN PS" ); + } +#endif // INIT_STATIONS_WITH_DUMMY_RT + + // Check if the station seems to send RDS or not. + // Note that radiotext is not checked because it is not saved to cenrep + // TODO: Consider saving this state flag to cenrep + if ( ( station.hasName() && !station.isRenamed() ) || station.hasUrl() ) { + static_cast( station.data_ptr() )->setStationHasSentRds( true ); + } + d->mStations.insert( station.frequency(), station ); } else { LOG( "RadioStationModel::initialize: Invalid station!" ); diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiouiengine/src/radiouiengine.cpp --- a/radioapp/radiouiengine/src/radiouiengine.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiouiengine/src/radiouiengine.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -413,10 +413,10 @@ /*! * */ -uint RadioUiEngine::skipStation( StationSkip::Mode mode, uint startFrequency ) +uint RadioUiEngine::skipStation( StationSkip::Mode mode, uint startFrequency, const int reason ) { Q_D( RadioUiEngine ); - return d->skip( mode, startFrequency ); + return d->skip( mode, startFrequency, reason ); } /*! diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radiocarouselitem.h --- a/radioapp/radiowidgets/inc/radiocarouselitem.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/inc/radiocarouselitem.h Wed Aug 18 09:49:03 2010 +0300 @@ -37,6 +37,7 @@ { Q_OBJECT Q_PROPERTY(Appearance appearance READ appearance WRITE setAppearance) + Q_PROPERTY(bool landscape READ landscape WRITE setLandscape) Q_ENUMS(Appearance) friend class RadioStationCarousel; @@ -71,6 +72,9 @@ void setAppearance( Appearance appearance ); Appearance appearance() const; + void setLandscape( bool landscape ); + bool landscape() const; + void setSeekLayout( bool seekLayout ); void setStation( const RadioStation& station ); @@ -122,6 +126,7 @@ Appearance mAppearance; bool mOwnsCss; + bool mLandscapeMode; CarouselItemFlags mFlags; }; diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radiofrequencyitem.h --- a/radioapp/radiowidgets/inc/radiofrequencyitem.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/inc/radiofrequencyitem.h Wed Aug 18 09:49:03 2010 +0300 @@ -22,7 +22,6 @@ #include // Forward declarations -class RadioFrequencyStrip; class QGraphicsPixmapItem; // Class declaration diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radiofrequencystrip.h --- a/radioapp/radiowidgets/inc/radiofrequencystrip.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/inc/radiofrequencystrip.h Wed Aug 18 09:49:03 2010 +0300 @@ -15,209 +15,60 @@ * */ -#ifndef FREQUENCYSTRIP_H -#define FREQUENCYSTRIP_H - -// System includes -#include -#include -#include -#include +#ifndef RADIOFREQUENCYSTRIP_H +#define RADIOFREQUENCYSTRIP_H // User includes -#include "radiostripbase.h" +#include "radiofrequencystripbase.h" #include "radio_global.h" #include "radiowidgetsexport.h" // Forward declarations class RadioUiEngine; -class RadioFrequencyItem; class RadioStation; -class HbPushButton; -class QTimer; -class QModelIndex; class RadioUiLoader; typedef QList StationList; // Class declaration -class WIDGETS_DLL_EXPORT RadioFrequencyStrip : public RadioStripBase +class WIDGETS_DLL_EXPORT RadioFrequencyStrip : public RadioFrequencyStripBase { Q_OBJECT - Q_PROPERTY(int itemHeight READ itemHeight WRITE setItemHeight) - Q_PROPERTY(uint frequency READ frequency) - - friend class RadioFrequencyItem; public: RadioFrequencyStrip(); - void setItemHeight( int itemHeight ); - int itemHeight() const; - void init( RadioUiEngine* engine, RadioUiLoader& uiLoader ); - void setFrequency( const uint frequency, int reason, Scroll::Direction direction = Scroll::Shortest ); - uint frequency() const; - - bool isInManualSeekMode() const; - void cancelManualSeek(); - - void addScannedStation( const RadioStation& station ); - - void updateFavorite( const RadioStation& station ); - -public slots: - - void setScanningMode( bool isScanning ); + void setFrequency( const uint newFrequency, int reason, Scroll::Direction direction = Scroll::Shortest ); signals: void frequencyChanged( uint frequency, int reason, int direction ); void skipRequested( int skipMode ); void seekRequested( int seekDirection ); - void manualSeekChanged( bool manualSeek ); - -private slots: - - void removeStation( const QModelIndex& parent, int first, int last ); - void updateStation( const QModelIndex& parent, int first, int last ); - void initEmptyItems(); - void handleLeftButton(); - void handleLongLeftButton(); - void handleRightButton(); - void handleLongRightButton(); - void toggleManualSeek(); - void handleScrollingEnd(); private: -// from base class RadioStripBase - - void updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ); - QGraphicsItem* createItemPrimitive( QGraphicsItem *parent ); - void scrollPosChanged(); - -// from base class QGraphicsWidget - - void resizeEvent ( QGraphicsSceneResizeEvent* event ); -// void showEvent( QShowEvent* event ); - void changeEvent( QEvent* event ); - -// from base class HbScrollArea - - void mousePressEvent( QGraphicsSceneMouseEvent* event ); - void mouseReleaseEvent( QGraphicsSceneMouseEvent* event ); - void gestureEvent( QGestureEvent* event ); - -// from base class QObject - - void timerEvent( QTimerEvent* event ); - -// New functions - - void initModel(); - - void initSelector(); +// from base class RadioFrequencyStripBase - void initPositions(); - - void initButtons(); - - void addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ); - - void updateStationsInRange( int first, int last, bool stationRemoved = false ); - - void updateItem( RadioFrequencyItem* item, uint upperRange = 0, uint ignoredFrequency = 0 ); - - void updateAllItems(); - - QPixmap drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ); - - QLineF makeTab( qreal pos, int height ); - - void emitFrequencyChanged( uint frequency ); - - int selectorPos() const; - - void scrollToFrequency( uint frequency, - Scroll::Direction direction = Scroll::Shortest, - int time = 0, - TuneReason::Reason reason = TuneReason::Unspecified ); - - void hideButtons(); - void showButtons(); + bool isInitialized() const; + QList stationsInRange( uint minFrequency, uint maxFrequency ) const; + void emitFrequencyChanged( uint frequency, int reason, int direction ); + void skipToPrevious(); + void skipToPreviousFavorite(); + void skipToNext(); + void skipToNextFavorite(); + void seekDown(); + void seekUp(); + bool isScanning() const; + uint frequencyAtIndex( int index ) const; private: // data - class FrequencyPos - { - public: - explicit FrequencyPos( int pos, RadioFrequencyItem* item ) : - mPosition( pos ), - mItem( item ) {} - - FrequencyPos() : - mPosition( 0 ), - mItem( 0 ) {} - - int mPosition; - RadioFrequencyItem* mItem; - - }; - RadioUiEngine* mUiEngine; - int mItemHeight; - - uint mMinFrequency; - - uint mMaxFrequency; - - uint mFrequencyStepSize; - - uint mFrequency; - - QGraphicsPixmapItem* mSelectorImage; - - qreal mSeparatorPos; - - short mMaxWidth; - - qreal mSelectorPos; - - QList mFrequencyItems; - - /** - * Container to help map a frequency to strip position and additional information about the frequency. - * In the default region contains an item for every valid frequency from 87.50 Mhz to 108.00 Mhz with - * stepsize 50 Khz which amounts to 410 items. - */ - QMap mFrequencies; - - /** - * Container to help map strip position to frequency. - * It is queried every time the strip moves so the lookup time needs to be fast. QHash is used because - * it offers the fastest lookup time of any other QT container. QHash stores the items in arbitrary - * order so we must never try to loop through them and assume they are in any particular order. - */ - QHash mPositions; - - HbPushButton* mLeftButton; - - HbPushButton* mRightButton; - - QTimer* mManualSeekTimer; - - bool mManualSeekMode; - - uint mLastReportedFrequency; - - int mManualSeekTimerId; - - QColor mForegroundColor; - }; -#endif // FREQUENCYSTRIP_H +#endif // RADIOFREQUENCYSTRIP_H diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radiofrequencystripbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radiowidgets/inc/radiofrequencystripbase.h Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,224 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef RADIOFREQUENCYSTRIPBASE_H +#define RADIOFREQUENCYSTRIPBASE_H + +// System includes +#include +#include +#include +#include + +// User includes +#include "radiostripbase.h" +#include "radiofrequencystripdef.h" + +// Forward declarations +class RadioFrequencyItem; +class HbPushButton; +class QTimer; +class QModelIndex; +class HbDocumentLoader; + +// Class declaration +class RadioFrequencyStripBase : public RadioStripBase +{ + Q_OBJECT + Q_PROPERTY(int itemHeight READ itemHeight WRITE setItemHeight) + Q_PROPERTY(uint frequency READ frequency) + + friend class RadioFrequencyItem; + +public: + + RadioFrequencyStripBase( QGraphicsItem* parent = 0 ); + + void setItemHeight( int itemHeight ); + int itemHeight() const; + + void initbase( uint minFrequency, uint maxFrequency, uint stepSize, uint frequency ); + void createButtonsFromDocml( HbDocumentLoader& uiLoader, const QString& leftButtonName, const QString& rightButtonName ); + void createButtons(); + + virtual void setFrequency( const uint frequency, int reason, Scroll::Direction direction = Scroll::Shortest ); + uint frequency() const; + + bool isInManualSeekMode() const; + void cancelManualSeek(); + + void addScannedStation( uint frequency ); + + void updateFavorite( uint frequency ); + +public slots: + + void setScanningMode( bool isScanning ); + +signals: + + void manualSeekChanged( bool manualSeek ); + +private slots: + + void initEmptyItems(); + void removeStation( const QModelIndex& parent, int first, int last ); + void updateStation( const QModelIndex& parent, int first, int last ); + void handleLeftButton(); + void handleRightButton(); + void handleLongLeftButton(); + void handleLongRightButton(); + void toggleManualSeek(); + void handleScrollingEnd(); + +private: + +// from base class RadioStripBase + + void updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ); + QGraphicsItem* createItemPrimitive( QGraphicsItem *parent ); + void scrollPosChanged(); + +// from base class QGraphicsWidget + + void resizeEvent ( QGraphicsSceneResizeEvent* event ); +// void showEvent( QShowEvent* event ); + void changeEvent( QEvent* event ); + +// from base class HbScrollArea + + void mousePressEvent( QGraphicsSceneMouseEvent* event ); + void mouseReleaseEvent( QGraphicsSceneMouseEvent* event ); + void gestureEvent( QGestureEvent* event ); + +// from base class QObject + + void timerEvent( QTimerEvent* event ); + +// New functions + + virtual bool isInitialized() const = 0; + virtual QList stationsInRange( uint minFrequency, uint maxFrequency ) const = 0; + virtual void emitFrequencyChanged( uint frequency, int reason, int direction ) = 0; + virtual void skipToPrevious() = 0; + virtual void skipToPreviousFavorite() = 0; + virtual void skipToNext() = 0; + virtual void skipToNextFavorite() = 0; + virtual void seekDown() = 0; + virtual void seekUp() = 0; + virtual bool isScanning() const = 0; + virtual uint frequencyAtIndex( int index ) const = 0; + + void initModel(); + + void initSelector(); + + void initPositions(); + + void initButtons(); + + void addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ); + + void updateStationsInRange( int first, int last, bool stationRemoved = false ); + + void updateItem( RadioFrequencyItem* item, uint upperRange = 0, uint ignoredFrequency = 0 ); + + void updateAllItems(); + + QPixmap drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ); + + QLineF makeTab( qreal pos, int height ); + + int selectorPos() const; + + void scrollToFrequency( uint frequency, + Scroll::Direction direction = Scroll::Shortest, + int time = 0 ); + + void hideButtons(); + void showButtons(); + +private: // data + + class FrequencyPos + { + public: + explicit FrequencyPos( int pos, RadioFrequencyItem* item ) : + mPosition( pos ), + mItem( item ) {} + + FrequencyPos() : + mPosition( 0 ), + mItem( 0 ) {} + + int mPosition; + RadioFrequencyItem* mItem; + + }; + + int mItemHeight; + + uint mMinFrequency; + + uint mMaxFrequency; + + uint mFrequencyStepSize; + + uint mFrequency; + + QGraphicsPixmapItem* mSelectorImage; + + qreal mSeparatorPos; + + short mMaxWidth; + + qreal mSelectorPos; + + QList mFrequencyItems; + + /** + * Container to help map a frequency to strip position and additional information about the frequency. + * In the default region contains an item for every valid frequency from 87.50 Mhz to 108.00 Mhz with + * stepsize 50 Khz which amounts to 410 items. + */ + QMap mFrequencies; + + /** + * Container to help map strip position to frequency. + * It is queried every time the strip moves so the lookup time needs to be fast. QHash is used because + * it offers the fastest lookup time of any other QT container. QHash stores the items in arbitrary + * order so we must never try to loop through them and assume they are in any particular order. + */ + QHash mPositions; + + HbPushButton* mLeftButton; + + HbPushButton* mRightButton; + + QTimer* mManualSeekTimer; + + bool mManualSeekMode; + + uint mLastReportedFrequency; + + int mManualSeekTimerId; + + QColor mForegroundColor; + +}; + +#endif // RADIOFREQUENCYSTRIPBASE_H diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radiofrequencystripdef.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radiowidgets/inc/radiofrequencystripdef.h Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,102 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef RADIOFREQUENCYSTRIPDEF_H +#define RADIOFREQUENCYSTRIPDEF_H + +#include +#include + +namespace Scroll +{ + enum Direction + { + Shortest, + Left, + Right + }; +} + +namespace FrequencyStrip +{ + + struct StationMarker + { + StationMarker() : mFrequency( 0 ), mIsFavorite( false ) {} + StationMarker( uint frequency, bool isFavorite ) : mFrequency( frequency ), mIsFavorite( isFavorite ) {} + uint mFrequency; + bool mIsFavorite; + }; + + enum FrequencyChangeReason + { + Unspecified = 0, + ManualSeekUpdate, + ManualSeekTune + }; + + // Frequency lines + const int TAB_HEIGHT_SMALL = 12; + const int TAB_HEIGHT_BIG = 18; + const int PEN_WIDTH_FAVORITE = 4; + const qreal INDICATOR_WIDTH = 2.0; + + const qreal ROUNDER = 0.5; + const int SELECTOR_WIDTH = 2; + const int SELECTOR_Z_POS = 100; + + const int ONE_HERTZ = 1000000; + const int HALF_HERTZ = ONE_HERTZ / 2; + const int ONE_TAB_DISTANCE = 20; + const uint ONE_TAB_IN_HZ = uint( 0.2 * ONE_HERTZ ); + const qreal PIXEL_IN_HZ = ONE_TAB_IN_HZ / ONE_TAB_DISTANCE; + const qreal PIXMAP_OVERLAP = qreal( ONE_TAB_DISTANCE ) / 2; + const int ITEM_WIDTH = ONE_TAB_DISTANCE * 5; + const int PIXMAP_WIDTH = ITEM_WIDTH + (int)PIXMAP_OVERLAP; + + const uint ONE_HUNDRED_KHZ = 100000; + + static const QLatin1String DECIMAL_TEXT( ".0" ); + + #ifdef BUILD_WIN32 + const int FREQUENCY_FONT_SIZE = 12; + const int DECIMAL_FONT_SIZE = 8; + #else + const int FREQUENCY_FONT_SIZE = 6; + const int DECIMAL_FONT_SIZE = 4; + #endif // BUILD_WIN32 + + const QFont FREQUENCY_FONT( "", FREQUENCY_FONT_SIZE ); + const QFont DECIMAL_FONT( "", DECIMAL_FONT_SIZE ); + const int FREQUENCY_TEXT_Y_POS = 35; + const int STATION_MARKER_Y_POS = 10; + + static const QLatin1String SLIDE_TO_LEFT ( "SlideToLeft" ); + static const QLatin1String SLIDE_FROM_LEFT ( "SlideFromLeft" ); + static const QLatin1String SLIDE_TO_RIGHT ( "SlideToRight" ); + static const QLatin1String SLIDE_FROM_RIGHT ( "SlideFromRight" ); + static const QLatin1String LEFT_BUTTON ( "tv:left_button" ); + static const QLatin1String RIGHT_BUTTON ( "tv:right_button" ); + + static const QLatin1String TEXT_COLOR_ATTRIBUTE( "text" ); + const int MANUALSEEK_START_TIMEOUT = 400; + const int MANUALSEEK_END_TIMEOUT = 2000; + const int MANUALSEEK_SIGNAL_DELAY = 300; + +} + +#endif // RADIOFREQUENCYSTRIPDEF_H diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radiostationcarousel.h --- a/radioapp/radiowidgets/inc/radiostationcarousel.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/inc/radiostationcarousel.h Wed Aug 18 09:49:03 2010 +0300 @@ -26,6 +26,7 @@ // User includes #include "radiocarouselitemobserver.h" #include "radiowidgetsexport.h" +#include "radiofrequencystripdef.h" #include "radio_global.h" // Forward declarations @@ -113,6 +114,8 @@ void drawOffScreen( QPainter& painter ); + void setLandscape( bool landscape ); + void setAlternateSkippingMode( bool alternateSkipping ); //TODO: Remove this! This is test code signals: diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radioutil.h --- a/radioapp/radiowidgets/inc/radioutil.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/inc/radioutil.h Wed Aug 18 09:49:03 2010 +0300 @@ -23,6 +23,7 @@ // User includes #include "radio_global.h" +#include "radiofrequencystripdef.h" // Forward declarations class RadioFrequencyStrip; diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/inc/radiowindow.h --- a/radioapp/radiowidgets/inc/radiowindow.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/inc/radiowindow.h Wed Aug 18 09:49:03 2010 +0300 @@ -24,8 +24,6 @@ #include #include #include -#include -using namespace QtMobility; // has to be here to be able to connect SLOT queryOfflineUsage // User includes #include "radiowidgetsexport.h" @@ -59,7 +57,7 @@ void showErrorMessage( const QString& text ); - void init( QSystemDeviceInfo* deviceInfo ); + void init(); QString orientationSection(); @@ -77,7 +75,6 @@ void updateOrientation( Qt::Orientation orientation ); void showVolumeLevel( int volume ); void updateAntennaStatus( bool connected ); - void queryOfflineUsage( QSystemDeviceInfo::Profile profile ); private: @@ -123,12 +120,6 @@ */ QScopedPointer mMessageBox; - /** - * Pointer to qsystemdeviceinfo - * Own. - */ - QScopedPointer mDeviceInfo; - }; diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/radiowidgets.pro --- a/radioapp/radiowidgets/radiowidgets.pro Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/radiowidgets.pro Wed Aug 18 09:49:03 2010 +0300 @@ -20,8 +20,6 @@ TEMPLATE = lib TARGET = fmradiowidgets CONFIG += dll hb -CONFIG += mobility -MOBILITY = systeminfo DEFINES += BUILD_WIDGETS_DLL symbian:TARGET.UID3 = 0x2002FF4C @@ -45,6 +43,8 @@ HEADERS += radiomainview.h HEADERS += radiostripbase.h HEADERS += radiofrequencystrip.h +HEADERS += radiofrequencystripbase.h +HEADERS += radiofrequencystripdef.h HEADERS += radiofrequencyitem.h HEADERS += radiostationsview.h HEADERS += radiofrequencyscanner.h @@ -62,6 +62,7 @@ SOURCES += radiomainview.cpp SOURCES += radiostripbase.cpp SOURCES += radiofrequencystrip.cpp +SOURCES += radiofrequencystripbase.cpp SOURCES += radiofrequencyitem.cpp SOURCES += radiostationsview.cpp SOURCES += radiofrequencyscanner.cpp diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/res/layout/historyview.docml --- a/radioapp/radiowidgets/res/layout/historyview.docml Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/res/layout/historyview.docml Wed Aug 18 09:49:03 2010 +0300 @@ -92,7 +92,7 @@ - + @@ -142,7 +142,7 @@ - + diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/res/layout/mainview.docml --- a/radioapp/radiowidgets/res/layout/mainview.docml Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/res/layout/mainview.docml Wed Aug 18 09:49:03 2010 +0300 @@ -93,6 +93,7 @@ + @@ -130,9 +131,6 @@
- - - @@ -154,9 +152,6 @@
- - - diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/res/layout/radiocarouselitem.css --- a/radioapp/radiowidgets/res/layout/radiocarouselitem.css Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/res/layout/radiocarouselitem.css Wed Aug 18 09:49:03 2010 +0300 @@ -13,6 +13,18 @@ size-policy-vertical: fixed; } +RadioCarouselItem[landscape]::star_button +{ + pref-width: expr(var(hb-param-graphic-size-primary-medium)*0.9); + pref-height: expr(var(hb-param-graphic-size-primary-medium)*0.9); +} + +RadioCarouselItem[!landscape]::star_button +{ + pref-width: var(hb-param-graphic-size-primary-medium); + pref-height: var(hb-param-graphic-size-primary-medium); +} + RadioCarouselItem::genre_label { top: -var(hb-param-margin-gene-top); @@ -26,9 +38,18 @@ RadioCarouselItem::genre_label::text { color: lightgray; /*var(qtc_lcd_title_normal);*/ + font-variant: secondary; + text-align: center center; +} + +RadioCarouselItem[landscape]::genre_label::text +{ + text-height: expr(var(hb-param-text-height-secondary)*0.95); +} + +RadioCarouselItem[!landscape]::genre_label::text +{ text-height: var(hb-param-text-height-secondary); - font-variant: secondary; - text-align: center bottom; } RadioCarouselItem::name_label @@ -59,7 +80,12 @@ text-align: center top; } -RadioCarouselItem[appearance=Full]::name_label::text +RadioCarouselItem[appearance=Full][landscape]::name_label::text +{ + text-height: 7.6un; +} + +RadioCarouselItem[appearance=Full][!landscape]::name_label::text { text-height: 8un; } @@ -89,8 +115,17 @@ { text-line-count-max: 4; text-wrap-mode: word-wrap; /*wrap-anywhere; */ + text-align: center center; +} + +RadioCarouselItem[appearance=Full][landscape]::rt_label::text +{ + text-height: expr(var(hb-param-text-height-secondary)*0.95); +} + +RadioCarouselItem[appearance=Full][!landscape]::rt_label::text +{ text-height: var(hb-param-text-height-secondary); - text-align: center center; } RadioCarouselItem[appearance!=Full]::rt_label::text @@ -110,12 +145,21 @@ RadioCarouselItem::url_label::text { - text-height: var(hb-param-text-height-secondary); font-variant: secondary; text-align: center center; color:var(qtc_lcd_link_normal); } +RadioCarouselItem[landscape]::url_label::text +{ + text-height: expr(var(hb-param-text-height-secondary)*0.95); +} + +RadioCarouselItem[!landscape]::url_label::text +{ + text-height: var(hb-param-text-height-secondary); +} + RadioCarouselItem::favorite_touch_area { top: 0un; diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiocarouselitem.cpp --- a/radioapp/radiowidgets/src/radiocarouselitem.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiocarouselitem.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -64,6 +64,7 @@ mUrlItem( NULL ), mAppearance( Default ), mOwnsCss( registerCss ), + mLandscapeMode( false ), mFlags( DefaultFlags ) { mStation.reset( new RadioStation() ); @@ -247,6 +248,22 @@ /*! * */ +void RadioCarouselItem::setLandscape( bool landscape ) +{ + mLandscapeMode = landscape; +} + +/*! + * + */ +bool RadioCarouselItem::landscape() const +{ + return mLandscapeMode; +} + +/*! + * + */ void RadioCarouselItem::setSeekLayout( bool seekLayout ) { if ( seekLayout ) { @@ -398,6 +415,5 @@ */ void RadioCarouselItem::updateLayout() { - setAppearance( mStation->hasName() || mStation->hasRadiotext() || mStation->hasUrl() ? Full : Default ); + setAppearance( mStation->hasSentRds() ? Full : Default ); } - diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiofrequencyitem.cpp --- a/radioapp/radiowidgets/src/radiofrequencyitem.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiofrequencyitem.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -19,15 +19,14 @@ // User includes #include "radiofrequencyitem.h" -#include "radiofrequencystrip.h" -#include "radio_global.h" -#include "radiologger.h" +#include "radiofrequencystripbase.h" +#include "radiofrequencystripdef.h" /*! * */ RadioFrequencyItem::RadioFrequencyItem( QString frequency ) : - mFrequency( frequency.isEmpty() ? 0 : frequency.toInt() * ONE_HERTZ ), + mFrequency( frequency.isEmpty() ? 0 : frequency.toInt() * FrequencyStrip::ONE_HERTZ ), mGraphicsItem( 0 ) { } diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiofrequencyscanner.cpp --- a/radioapp/radiowidgets/src/radiofrequencyscanner.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiofrequencyscanner.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -184,7 +184,7 @@ void RadioFrequencyScanner::continueScanning() { if ( !mUserCanceled ) { - RadioUtil::frequencyStrip()->addScannedStation( mUiEngine.stationModel().currentStation() ); + RadioUtil::frequencyStrip()->addScannedStation( mUiEngine.stationModel().currentStation().frequency() ); mScannerEngine->continueScanning(); } } diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiofrequencystrip.cpp --- a/radioapp/radiowidgets/src/radiofrequencystrip.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiofrequencystrip.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -16,19 +16,9 @@ */ // System includes -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +// User includes #include "radiofrequencystrip.h" -#include "radiofrequencyitem.h" #include "radiouiengine.h" #include "radiostation.h" #include "radiostationmodel.h" @@ -36,95 +26,11 @@ #include "radiouiloader.h" #include "radiologger.h" -// Frequency lines -const int TAB_HEIGHT_SMALL = 12; -const int TAB_HEIGHT_BIG = 18; -const int PEN_WIDTH_FAVORITE = 4; -const qreal INDICATOR_WIDTH = 2.0; - -const qreal ROUNDER = 0.5; -const int SELECTOR_WIDTH = 2; -const int SELECTOR_Z_POS = 100; - -const int HALF_HERTZ = ONE_HERTZ / 2; -const int ONE_TAB_DISTANCE = 20; -const uint ONE_TAB_IN_HZ = uint( 0.2 * ONE_HERTZ ); -const qreal PIXEL_IN_HZ = ONE_TAB_IN_HZ / ONE_TAB_DISTANCE; -const qreal PIXMAP_OVERLAP = qreal( ONE_TAB_DISTANCE ) / 2; -const int ITEM_WIDTH = ONE_TAB_DISTANCE * 5; -const int PIXMAP_WIDTH = ITEM_WIDTH + (int)PIXMAP_OVERLAP; - -const uint ONE_HUNDRED_KHZ = 100000; - -const char* DECIMAL_TEXT = ".0"; - -#ifdef BUILD_WIN32 - const int FREQUENCY_FONT_SIZE = 12; - const int DECIMAL_FONT_SIZE = 8; -#else - const int FREQUENCY_FONT_SIZE = 6; - const int DECIMAL_FONT_SIZE = 4; -#endif // BUILD_WIN32 - -const QFont FREQUENCY_FONT( "", FREQUENCY_FONT_SIZE ); -const QFont DECIMAL_FONT( "", DECIMAL_FONT_SIZE ); - -const char* SLIDE_TO_LEFT = "SlideToLeft"; -const char* SLIDE_FROM_LEFT = "SlideFromLeft"; -const char* SLIDE_TO_RIGHT = "SlideToRight"; -const char* SLIDE_FROM_RIGHT = "SlideFromRight"; -const char* LEFT_BUTTON = "tv:left_button"; -const char* RIGHT_BUTTON = "tv:right_button"; - -const char* TEXT_COLOR_ATTRIBUTE = "text"; -const int MANUALSEEK_START_TIMEOUT = 400; -const int MANUALSEEK_END_TIMEOUT = 2000; -const int MANUALSEEK_SIGNAL_DELAY = 300; - -/*! - * - */ RadioFrequencyStrip::RadioFrequencyStrip() : - RadioStripBase(), - mUiEngine( NULL ), - mItemHeight( 8 ), - mMinFrequency( 87500000 ), - mMaxFrequency( 108000000 ), - mFrequencyStepSize( 100000 ), - mFrequency( 87500000 ), - mSelectorImage( new QGraphicsPixmapItem( this ) ), - mSeparatorPos( 0.0 ), - mMaxWidth( 0 ), - mSelectorPos( 0.0 ), - mLeftButton( 0 ), - mRightButton( 0 ), - mManualSeekTimer( NULL ), - mManualSeekMode( false ), - mLastReportedFrequency( 0 ), - mManualSeekTimerId( 0 ), - mForegroundColor( Qt::white )//HbColorScheme::color( TEXT_COLOR_ATTRIBUTE ) ) + RadioFrequencyStripBase(), + mUiEngine( NULL ) { RadioUtil::setFrequencyStrip( this ); - - setScrollingStyle( HbScrollArea::PanWithFollowOn ); - setItemSize( QSizeF( ITEM_WIDTH + PIXMAP_OVERLAP / 2, mItemHeight ) ); - setOverlap( PIXMAP_OVERLAP / 2 ); -} - -/*! - * Property - */ -void RadioFrequencyStrip::setItemHeight( int itemHeight ) -{ - mItemHeight = itemHeight; -} - -/*! - * Property - */ -int RadioFrequencyStrip::itemHeight() const -{ - return mItemHeight; } /*! @@ -133,46 +39,10 @@ void RadioFrequencyStrip::init( RadioUiEngine* engine, RadioUiLoader& uiLoader ) { mUiEngine = engine; - mMinFrequency = mUiEngine->minFrequency(); - mMaxFrequency = mUiEngine->maxFrequency(); - mFrequencyStepSize = mUiEngine->frequencyStepSize(); - mFrequency = RadioUiEngine::lastTunedFrequency(); - - initModel(); - initEmptyItems(); - initPositions(); - - HbDeviceProfile deviceProfile; - mItemHeight = static_cast( mItemHeight * deviceProfile.unitValue() ); - - mLeftButton = uiLoader.findWidget( DOCML::MV_NAME_PREV_BUTTON ); - mRightButton = uiLoader.findWidget( DOCML::MV_NAME_NEXT_BUTTON ); - initButtons(); + initbase( mUiEngine->minFrequency(), mUiEngine->maxFrequency(), + mUiEngine->frequencyStepSize(), RadioUiEngine::lastTunedFrequency() ); - mManualSeekTimer = new QTimer( this ); - mManualSeekTimer->setInterval( MANUALSEEK_START_TIMEOUT ); - mManualSeekTimer->setSingleShot( true ); - Radio::connect( mManualSeekTimer, SIGNAL(timeout()), - this, SLOT(toggleManualSeek()) ); - - Radio::connect( mLeftButton, SIGNAL(clicked()), - this, SLOT(handleLeftButton()) ); - Radio::connect( mRightButton, SIGNAL(clicked()), - this, SLOT(handleRightButton()) ); - Radio::connect( mLeftButton, SIGNAL(longPress(QPointF)), - this, SLOT(handleLongLeftButton()) ); - Radio::connect( mRightButton, SIGNAL(longPress(QPointF)), - this, SLOT(handleLongRightButton()) ); - - Radio::connect( this, SIGNAL(scrollingEnded()), - this, SLOT(handleScrollingEnd()) ); - - grabGesture( Qt::SwipeGesture ); - - //TODO: Remove. Stepsize hardcoded to 100 Khz in europe region during demo - if ( mFrequencyStepSize < ONE_HUNDRED_KHZ ) { - mFrequencyStepSize = ONE_HUNDRED_KHZ; - } + createButtonsFromDocml( uiLoader, DOCML::MV_NAME_PREV_BUTTON, DOCML::MV_NAME_NEXT_BUTTON ); RadioStationModel* stationModel = &mUiEngine->stationModel(); Radio::connect( stationModel, SIGNAL(rowsInserted(QModelIndex,int,int)), @@ -181,683 +51,118 @@ this, SLOT(removeStation(QModelIndex,int,int)) ); Radio::connect( stationModel, SIGNAL(modelReset()), this, SLOT(initEmptyItems()) ); - - updateAllItems(); - - showButtons(); -} - -/*! - * - */ -void RadioFrequencyStrip::setFrequency( const uint frequency, int reason, Scroll::Direction direction ) -{ - Q_UNUSED( reason ); - LOG_FORMAT( "RadioFrequencyStrip::setFrequency, frequency: %d, reason: %d", frequency, reason ); - if ( mFrequencies.contains( frequency ) ) { - if ( frequency != mFrequency || reason == TuneReason::Skip ) { - scrollToFrequency( frequency, direction, mAutoScrollTime, RadioUtil::tuneReason( reason ) ); - } - } -} - -/*! - * - */ -uint RadioFrequencyStrip::frequency() const -{ - return mFrequency; -} - -/*! - * - */ -bool RadioFrequencyStrip::isInManualSeekMode() const -{ - return mManualSeekMode; -} - -/*! - * - */ -void RadioFrequencyStrip::cancelManualSeek() -{ - mManualSeekTimer->stop(); - if ( mManualSeekMode ) { - toggleManualSeek(); - } -} - -/*! - * - */ -void RadioFrequencyStrip::addScannedStation( const RadioStation& station ) -{ - FrequencyPos pos = mFrequencies.value( station.frequency() ); - updateItem( pos.mItem, station.frequency() ); } /*! * */ -void RadioFrequencyStrip::updateFavorite( const RadioStation& station ) -{ - LOG_SLOT_CALLER; - FrequencyPos pos = mFrequencies.value( station.frequency() ); - updateItem( pos.mItem ); -} - -/*! - * Public slot - * - */ -void RadioFrequencyStrip::setScanningMode( bool isScanning ) -{ - mManualSeekTimer->stop(); - if ( isScanning ) { - initEmptyItems(); - hideButtons(); - scrollToFrequency( mMinFrequency, Scroll::Shortest, mAutoScrollTime ); - } else { - showButtons(); - } - setEnabled( !isScanning ); -} - -/*! - * Private slot - * - */ -void RadioFrequencyStrip::removeStation( const QModelIndex& parent, int first, int last ) -{ - Q_UNUSED( parent ); - updateStationsInRange( first, last, true ); -} - -/*! - * Private slot - * - */ -void RadioFrequencyStrip::updateStation( const QModelIndex& parent, int first, int last ) -{ - Q_UNUSED( parent ); - updateStationsInRange( first, last ); -} - -/*! - * Private slot - * - */ -void RadioFrequencyStrip::initEmptyItems() -{ - LOG_METHOD; - //TODO: Remove the weird hack of checking the sender - if ( !sender() || RadioUtil::scanStatus() != Scan::ScanningInMainView ) { - QList emptyList; - foreach ( RadioFrequencyItem* item, mFrequencyItems ) { - QPixmap pixmap = drawPixmap( item->frequency(), emptyList, item ); - item->setPixmap( pixmap ); - } - } -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleLeftButton() -{ - emit skipRequested( StationSkip::PreviousFavorite ); -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleLongLeftButton() -{ - emit seekRequested( Seek::Down ); -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleRightButton() -{ - emit skipRequested( StationSkip::NextFavorite ); -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleLongRightButton() -{ - emit seekRequested( Seek::Up ); -} - -/*! - * Private slot - * - */ -void RadioFrequencyStrip::toggleManualSeek() -{ - mManualSeekMode = !mManualSeekMode; - emit manualSeekChanged( mManualSeekMode ); - - if ( mManualSeekMode ) { - grabMouse(); - hideButtons(); - mManualSeekTimerId = startTimer( MANUALSEEK_SIGNAL_DELAY ); - } else { - ungrabMouse(); - showButtons(); - killTimer( mManualSeekTimerId ); - mManualSeekTimerId = 0; - } -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleScrollingEnd() +void RadioFrequencyStrip::setFrequency( const uint newFrequency, int reason, Scroll::Direction direction ) { - // Check if the selector is in the invalid area where the strip loops around - const int selectorPosition = selectorPos(); - if ( mManualSeekMode ) { - if ( !mPositions.contains( selectorPosition ) ) { - if ( selectorPosition < mMaxWidth - ITEM_WIDTH + mSeparatorPos ) { - scrollToFrequency( mMaxFrequency, Scroll::Shortest, 500 ); - emit frequencyChanged( mMaxFrequency, TuneReason::ManualSeekUpdate, Scroll::Shortest ); - } else { - scrollToFrequency( mMinFrequency, Scroll::Shortest, 500 ); - emit frequencyChanged( mMinFrequency, TuneReason::ManualSeekUpdate, Scroll::Shortest ); - } - } - - mManualSeekTimer->start( MANUALSEEK_END_TIMEOUT ); - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ) -{ - QGraphicsPixmapItem* item = static_cast( itemToUpdate ); - if ( itemIndex < mFrequencyItems.count() ) { - item->setPixmap( mFrequencyItems.at( itemIndex )->updatePrimitive( item ) ); - } -} - -/*! - * \reimp - */ -QGraphicsItem* RadioFrequencyStrip::createItemPrimitive( QGraphicsItem* parent ) -{ - return new QGraphicsPixmapItem( parent ); -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::scrollPosChanged() -{ - if ( mManualSeekMode ) { - const int pos = selectorPos(); - const uint frequency = mPositions.value( pos ); - if ( frequency > 0 ) { - mFrequency = mPositions.value( pos ); - emit frequencyChanged( mFrequency, TuneReason::ManualSeekUpdate, Scroll::Shortest ); - } - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::resizeEvent ( QGraphicsSceneResizeEvent* event ) -{ - LOG_METHOD; - RadioStripBase::resizeEvent( event ); - - initSelector(); - - const qreal height = event->newSize().height(); - const qreal width = event->newSize().width(); - - mSelectorPos = width / 2; - mSelectorImage->setOffset( mSelectorPos - (INDICATOR_WIDTH / 2), 0.0 ); - - if ( mLeftButton && mRightButton ) { - mLeftButton->resize( height, height ); - mRightButton->resize( height, height ); - mRightButton->setPos( QPointF( width - height, 0 ) ); - } - - scrollToFrequency( mFrequency ); -} - -/*! - * \reimp - */ -//void RadioFrequencyStrip::showEvent( QShowEvent* event ) -//{ -// RadioStripBase::showEvent( event ); -// scrollToFrequency( mFrequency ); -//} - -/*! - * \reimp - */ -void RadioFrequencyStrip::changeEvent( QEvent* event ) -{ - if ( event->type() == HbEvent::ThemeChanged ) { - // Update the foreground color and redraw each item - mForegroundColor = Qt::white;// HbColorScheme::color( TEXT_COLOR_ATTRIBUTE ); - updateAllItems(); - } - - return RadioStripBase::changeEvent(event); -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::mousePressEvent( QGraphicsSceneMouseEvent* event ) -{ - RadioStripBase::mousePressEvent( event ); - - mManualSeekTimer->stop(); - if ( mManualSeekMode ) { - const bool insideStrip = rect().contains( event->pos() ); - if ( !insideStrip ) { - toggleManualSeek(); - } - } else { - mManualSeekTimer->start( MANUALSEEK_START_TIMEOUT ); - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::mouseReleaseEvent( QGraphicsSceneMouseEvent* event ) -{ - RadioStripBase::mouseReleaseEvent( event ); - - mManualSeekTimer->stop(); - if ( mManualSeekMode && !isScrolling() ) { - mManualSeekTimer->start( MANUALSEEK_END_TIMEOUT ); - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::gestureEvent( QGestureEvent* event ) -{ - HbSwipeGesture* swipeGesture = static_cast( event->gesture( Qt::SwipeGesture ) ); - if ( swipeGesture && !mManualSeekMode ) { - if ( swipeGesture->state() == Qt::GestureFinished ) { - if ( swipeGesture->horizontalDirection() == QSwipeGesture::Left ) { - emit skipRequested( StationSkip::Next ); - } else if ( swipeGesture->horizontalDirection() == QSwipeGesture::Right ) { - emit skipRequested( StationSkip::Previous ); - } - } - } else if ( mManualSeekMode ) { - RadioStripBase::gestureEvent( event ); + Q_UNUSED( reason ); + if ( newFrequency != frequency() || reason == TuneReason::Skip ) { + RadioFrequencyStripBase::setFrequency( newFrequency, reason, direction ); } } /*! * \reimp */ -void RadioFrequencyStrip::timerEvent( QTimerEvent* event ) +bool RadioFrequencyStrip::isInitialized() const { - Q_UNUSED( event ); - if ( mLastReportedFrequency != mFrequency ) { - mLastReportedFrequency = mFrequency; - emit frequencyChanged( mFrequency, TuneReason::ManualSeekTune, Scroll::Shortest ); - } + return mUiEngine != NULL; } /*! - * + * \reimp */ -void RadioFrequencyStrip::initModel() +QList RadioFrequencyStrip::stationsInRange( uint minFrequency, uint maxFrequency ) const { - const uint minFreq = uint( qreal(mMinFrequency) / ONE_HERTZ + ROUNDER ); - const uint maxFreq = uint( qreal(mMaxFrequency) / ONE_HERTZ + 0.9 ); // always round up - - QStringList list; - QString freqText; - for ( uint i = minFreq; i <= maxFreq; ++i ) { - freqText = QString::number( i ); - list.append( freqText ); - mFrequencyItems.append( new RadioFrequencyItem( freqText ) ); + QList stations = mUiEngine->stationsInRange( minFrequency, maxFrequency ); + QList markers; + foreach ( const RadioStation& station, stations ) { + markers.append( FrequencyStrip::StationMarker( station.frequency(), station.isFavorite() ) ); } - mFrequencyItems.append( new RadioFrequencyItem( "" ) ); - list.append( "" ); - - mMaxWidth = list.count() * ITEM_WIDTH; - - mSeparatorPos = qreal(ITEM_WIDTH) / 2; - const uint minDrawableFreq = minFreq * ONE_HERTZ - HALF_HERTZ;; - const uint maxDrawableFreq = maxFreq * ONE_HERTZ + HALF_HERTZ; - mSeparatorPos += qreal( ( mMinFrequency - minDrawableFreq ) / 2 ) / PIXEL_IN_HZ; - mSeparatorPos -= qreal( ( maxDrawableFreq - mMaxFrequency ) / 2 ) / PIXEL_IN_HZ; - - setModel( new QStringListModel( list, this ) ); + return markers; } /*! - * + * \reimp */ -void RadioFrequencyStrip::initSelector() -{ - QPixmap selectorPixmap = QPixmap( QSize( SELECTOR_WIDTH, (int)size().height() ) ); - selectorPixmap.fill( Qt::red ); - mSelectorImage->setPixmap( selectorPixmap ); - mSelectorImage->setZValue( SELECTOR_Z_POS ); -} - -/*! - * - */ -void RadioFrequencyStrip::initPositions() +void RadioFrequencyStrip::emitFrequencyChanged( uint frequency, int reason, int direction ) { - int prevPos = 0; - int nextPos = 0; - const int lastPos = mFrequencies.value( mMaxFrequency ).mPosition; - for ( int i = mFrequencies.value( mMinFrequency ).mPosition; i < lastPos; ++i ) { - if ( mPositions.contains( i ) ) { - prevPos = i; - const uint freq = mPositions.value( prevPos ) + mFrequencyStepSize; - if ( mFrequencies.contains( freq ) ) { - nextPos = mFrequencies.value( freq ).mPosition; - } else { - nextPos = prevPos; - } - } else { - const int nearestHit = ( i - prevPos ) < ( nextPos - i ) ? prevPos : nextPos; - mPositions.insert( i, mPositions.value( nearestHit ) ); - } + int tuneReason = TuneReason::Unspecified; + if ( reason == FrequencyStrip::ManualSeekUpdate ) { + tuneReason = TuneReason::ManualSeekUpdate; + } else if ( reason == FrequencyStrip::ManualSeekTune ) { + tuneReason = TuneReason::ManualSeekTune; } + + emit frequencyChanged( frequency, tuneReason, direction ); } /*! * */ -void RadioFrequencyStrip::initButtons() -{ - mLeftButton->setZValue( SELECTOR_Z_POS ); - mLeftButton->setObjectName( LEFT_BUTTON ); - mRightButton->setZValue( SELECTOR_Z_POS ); - mRightButton->setObjectName( RIGHT_BUTTON ); - - const qreal height = size().height(); - const qreal width = size().width(); - mLeftButton->resize( height, height ); - mRightButton->resize( height, height ); - mRightButton->setPos( QPointF( width - height, 0 ) ); - - QEffectList effectList; - effectList.append( EffectInfo( mLeftButton, ":/effects/slide_to_left.fxml", SLIDE_TO_LEFT ) ); - effectList.append( EffectInfo( mLeftButton, ":/effects/slide_from_left.fxml", SLIDE_FROM_LEFT ) ); - effectList.append( EffectInfo( mRightButton, ":/effects/slide_to_right.fxml", SLIDE_TO_RIGHT ) ); - effectList.append( EffectInfo( mRightButton, ":/effects/slide_from_right.fxml", SLIDE_FROM_RIGHT ) ); - RadioUtil::addEffects( effectList ); -} - -/*! - * - */ -void RadioFrequencyStrip::addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ) -{ - mFrequencies.insert( frequency, FrequencyPos( pos, item ) ); - mPositions.insert( pos, frequency ); -} - -/*! - * - */ -void RadioFrequencyStrip::updateStationsInRange( int first, int last, bool stationRemoved ) +void RadioFrequencyStrip::skipToPrevious() { - if ( RadioUtil::scanStatus() != Scan::ScanningInMainView ) { - RadioStationModel& model = mUiEngine->stationModel(); - uint frequency = 0; - for ( int i = first; i <= last; ++i ) { - frequency = model.data( model.index( i, 0, QModelIndex() ), - RadioRole::RadioStationRole ).value().frequency(); - if ( mFrequencies.contains( frequency ) ) { - FrequencyPos pos = mFrequencies.value( frequency ); - updateItem( pos.mItem, 0, stationRemoved ? frequency : 0 ); - } - } - } -} - -/*! - * - */ -void RadioFrequencyStrip::updateItem( RadioFrequencyItem* item, uint upperRange, uint ignoredFrequency ) -{ - if ( item ) { - uint frequency = item->frequency(); - QList stations; - - if ( upperRange == 0 ) { - upperRange = frequency + HALF_HERTZ; - } - - if ( mUiEngine ) { - stations = mUiEngine->stationsInRange( frequency - HALF_HERTZ, upperRange ); - for ( int i = stations.count() - 1; ignoredFrequency > 0 && i >= 0; --i ) { - if ( stations[i].frequency() == ignoredFrequency ) { - stations.removeAt( i ); - break; - } - } - } - - QPixmap pixmap = drawPixmap( frequency, stations, item ); - item->setPixmap( pixmap ); - - foreach ( const RadioStation& station, stations ) { - frequency = station.frequency(); - FrequencyPos pos = mFrequencies.value( frequency ); - mFrequencies.insert( frequency, pos ); - } - } -} - -/*! - * - */ -void RadioFrequencyStrip::updateAllItems() -{ - foreach ( RadioFrequencyItem* item, mFrequencyItems ) { - updateItem( item ); - } + emit skipRequested( StationSkip::Previous ); } /*! * */ -QPixmap RadioFrequencyStrip::drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ) +void RadioFrequencyStrip::skipToPreviousFavorite() { - QPixmap pixmap( PIXMAP_WIDTH, mItemHeight ); - pixmap.fill( Qt::transparent ); - QPainter painter( &pixmap ); - QPen normalPen = painter.pen(); - QPen favoritePen = normalPen; - normalPen.setColor( mForegroundColor ); - painter.setPen( normalPen ); - - if ( frequency == 0 ) { - painter.drawLine( makeTab( mSeparatorPos - 1 + ROUNDER, mItemHeight ) ); - painter.drawLine( makeTab( mSeparatorPos + ROUNDER, mItemHeight ) ); - return pixmap; - } - - const QString itemText = QString::number( frequency / ONE_HERTZ ); - const uint startFrequency = frequency - HALF_HERTZ; - const uint endFrequency = startFrequency + ONE_HERTZ; - const uint roundedMin = int( qreal(mMinFrequency) / ONE_HERTZ + ROUNDER ); - const uint freq = frequency / ONE_HERTZ; - const int diff = freq - roundedMin; - const qreal startPixel = diff * ITEM_WIDTH; - qreal pixels = 0.0; - const qreal leftOverlap = PIXMAP_OVERLAP / 2; - - for ( uint frequency = startFrequency; frequency <= endFrequency; frequency += mFrequencyStepSize ) { - - if ( frequency < mMinFrequency || frequency > mMaxFrequency ) { - continue; - } - - pixels = qreal( frequency - startFrequency ) / PIXEL_IN_HZ; - if ( frequency % ONE_HERTZ == 0 ) { - - // Draw the high frequency tab and the frequency text for the even number - normalPen.setWidth( 3 ); - painter.setPen( normalPen ); - painter.drawLine( makeTab( pixels + leftOverlap - 1, TAB_HEIGHT_BIG ) ); - normalPen.setWidth( 1 ); - painter.setPen( normalPen ); + emit skipRequested( StationSkip::PreviousFavorite ); +} - // Draw the frequency text and its 00 decimals - painter.setFont( DECIMAL_FONT ); - const int decimalWidth = painter.fontMetrics().width( DECIMAL_TEXT ); - const int decimalSpace = painter.fontMetrics().leftBearing( '.' ); - painter.setFont( FREQUENCY_FONT ); - const int frequencyWidth = painter.fontMetrics().width( itemText ); - const int textPosX = int( pixels + leftOverlap - ( frequencyWidth + decimalSpace + decimalWidth ) / 2 ); - painter.drawText( QPoint( textPosX, 20 ), itemText ); - painter.setFont( DECIMAL_FONT ); - painter.drawText( QPoint( textPosX + frequencyWidth + decimalSpace, 20 ), DECIMAL_TEXT ); - - } else if ( frequency % ONE_TAB_IN_HZ == 0 ) { - - // Draw the low frequency tab for the uneven number - painter.drawLine( makeTab( pixels + leftOverlap, TAB_HEIGHT_SMALL ) ); - - } - - addFrequencyPos( int( startPixel + pixels + ROUNDER ), frequency, item ); - } +/*! + * + */ +void RadioFrequencyStrip::skipToNext() +{ + emit skipRequested( StationSkip::Next ); +} - // Draw favorites and local stations - favoritePen.setColor( Qt::yellow ); - - const int markerYPos = mItemHeight - 28; - foreach ( const RadioStation& station, stations ) { - const uint frequency = station.frequency(); - pixels = qreal( frequency - startFrequency ) / PIXEL_IN_HZ; - - if ( station.isFavorite() ) { - favoritePen.setWidth( PEN_WIDTH_FAVORITE ); - painter.setPen( favoritePen ); - painter.drawEllipse( int( pixels + leftOverlap - 3 ), markerYPos - 3, 6, 6 ); - } else if ( station.isType( RadioStation::LocalStation ) ) { - - favoritePen.setWidth( 1 ); - painter.setPen( favoritePen ); - painter.drawEllipse( int( pixels + leftOverlap - 4 ), markerYPos - 4, 8, 8 ); - } - } - - return pixmap; +/*! + * + */ +void RadioFrequencyStrip::skipToNextFavorite() +{ + emit skipRequested( StationSkip::NextFavorite ); } /*! * */ -QLineF RadioFrequencyStrip::makeTab( qreal pos, int height ) +void RadioFrequencyStrip::seekDown() { - return QLineF( pos, mItemHeight - height, pos, mItemHeight ); + emit seekRequested( Seek::Down ); } -/*! - * - */ -void RadioFrequencyStrip::emitFrequencyChanged( uint frequency ) -{ - if ( frequency > 0 && frequency != mFrequency ) { - mFrequency = frequency; - //TOD: Get direction - emit frequencyChanged( frequency, TuneReason::FrequencyStrip, Scroll::Shortest ); - } -} - -/*! - * - */ -int RadioFrequencyStrip::selectorPos() const -{ - const int pos = int( -contentWidget()->x() + mSelectorPos + ROUNDER ); - return pos % mMaxWidth; -} /*! * */ -void RadioFrequencyStrip::scrollToFrequency( uint frequency, Scroll::Direction direction, int time, TuneReason::Reason reason ) +void RadioFrequencyStrip::seekUp() { - int targetFreqPos = mFrequencies.value( frequency ).mPosition; - const int currentFreqPos = mFrequencies.value( mFrequency ).mPosition; - const int currentPos = int( -contentWidget()->x() + mSelectorPos + ROUNDER ); - const bool isInSecondHalf = currentPos >= mMaxWidth - ITEM_WIDTH + mSeparatorPos; - - // Special case: When there is only one favorite and the user presses skip - // the strip must scroll around to the same frequency. - if ( mFrequency == frequency && reason == TuneReason::Skip ) { - if ( direction == Scroll::Left ) { - targetFreqPos += mMaxWidth; - } else { - targetFreqPos -= mMaxWidth; - } - } - - mFrequency = frequency; - - qreal newPos = targetFreqPos; - if ( direction == Scroll::Left ) { - - if ( currentFreqPos > targetFreqPos ) { - newPos += mMaxWidth; - } - - } else if ( direction == Scroll::Right ) { - - if ( currentFreqPos < targetFreqPos ) { - newPos -= mMaxWidth; - } - - } - - if ( isInSecondHalf ) { - newPos += mMaxWidth; - } - - newPos -= mSelectorPos - ROUNDER; - - scrollContentsTo( QPointF( newPos, 0 ), time ); + emit seekRequested( Seek::Up ); } /*! - * + * \reimp */ -void RadioFrequencyStrip::hideButtons() +bool RadioFrequencyStrip::isScanning() const { - HbEffect::start( mLeftButton, SLIDE_TO_LEFT ); - HbEffect::start( mRightButton, SLIDE_TO_RIGHT ); + return RadioUtil::scanStatus() == Scan::ScanningInMainView; } /*! - * + * \reimp */ -void RadioFrequencyStrip::showButtons() +uint RadioFrequencyStrip::frequencyAtIndex( int index ) const { - HbEffect::start( mLeftButton, SLIDE_FROM_LEFT ); - HbEffect::start( mRightButton, SLIDE_FROM_RIGHT ); + RadioStationModel& model = mUiEngine->stationModel(); + return model.data( model.index( index, 0, QModelIndex() ), + RadioRole::RadioStationRole ).value().frequency(); } diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiofrequencystripbase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/radioapp/radiowidgets/src/radiofrequencystripbase.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,836 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// System includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// User includes +#include "radiofrequencystripbase.h" +#include "radiofrequencystripdef.h" +#include "radiofrequencyitem.h" + +/*! + * Convenience function to check signal-slot connections + */ +//#define CHECK_SIGNAL_CONNECTIONS +static bool connectAndCheck( const QObject* sender, const char* signal, + const QObject* receiver, const char* member, + Qt::ConnectionType type = Qt::AutoConnection ) +{ + bool connected = QObject::connect( sender, signal, receiver, member, type ); + + #ifdef CHECK_SIGNAL_CONNECTIONS + + if ( !connected ) { + qDebug() << "Failed to make a signal-slot connection!"; + qDebug() << "sender: " << sender->metaObject()->className(); + qDebug() << "signal: " << signal; + qDebug() << "receiver: " << receiver->metaObject()->className(); + qDebug() << "slot/signal: " << signal; + + Q_ASSERT( false ); + + // ---------------------------------------------------------------- + // SIGNAL-SLOT CONNECT FAILED! + // ---------------------------------------------------------------- + } + + #endif // CHECK_SIGNAL_CONNECTIONS + + return connected; +} + +/*! + * + */ +RadioFrequencyStripBase::RadioFrequencyStripBase( QGraphicsItem* parent ) : + RadioStripBase( parent ), + mItemHeight( 8 ), + mMinFrequency( 87500000 ), + mMaxFrequency( 108000000 ), + mFrequencyStepSize( 100000 ), + mFrequency( 87500000 ), + mSelectorImage( new QGraphicsPixmapItem( this ) ), + mSeparatorPos( 0.0 ), + mMaxWidth( 0 ), + mSelectorPos( 0.0 ), + mLeftButton( 0 ), + mRightButton( 0 ), + mManualSeekTimer( NULL ), + mManualSeekMode( false ), + mLastReportedFrequency( 0 ), + mManualSeekTimerId( 0 ), + mForegroundColor( Qt::white )//HbColorScheme::color( FrequencyStrip::TEXT_COLOR_ATTRIBUTE ) ) +{ + setScrollingStyle( HbScrollArea::PanWithFollowOn ); + setItemSize( QSizeF( FrequencyStrip::ITEM_WIDTH + FrequencyStrip::PIXMAP_OVERLAP / 2, mItemHeight ) ); + setOverlap( FrequencyStrip::PIXMAP_OVERLAP / 2 ); +} + +/*! + * Property + */ +void RadioFrequencyStripBase::setItemHeight( int itemHeight ) +{ + mItemHeight = itemHeight; +} + +/*! + * Property + */ +int RadioFrequencyStripBase::itemHeight() const +{ + return mItemHeight; +} + +/*! + * + */ +void RadioFrequencyStripBase::initbase( uint minFrequency, uint maxFrequency, uint stepSize, uint frequency ) +{ + mMinFrequency = minFrequency; + mMaxFrequency = maxFrequency; + mFrequencyStepSize = stepSize; + mFrequency = frequency; + + initModel(); + initEmptyItems(); + initPositions(); + + HbDeviceProfile deviceProfile; + mItemHeight = static_cast( mItemHeight * deviceProfile.unitValue() ); + + mManualSeekTimer = new QTimer( this ); + mManualSeekTimer->setInterval( FrequencyStrip::MANUALSEEK_START_TIMEOUT ); + mManualSeekTimer->setSingleShot( true ); + connectAndCheck( mManualSeekTimer, SIGNAL(timeout()), + this, SLOT(toggleManualSeek()) ); + + connectAndCheck( this, SIGNAL(scrollingEnded()), + this, SLOT(handleScrollingEnd()) ); + + grabGesture( Qt::SwipeGesture ); + + //TODO: Remove. Stepsize temporarily hardcoded to 100 Khz in europe region + if ( mFrequencyStepSize < FrequencyStrip::ONE_HUNDRED_KHZ ) { + mFrequencyStepSize = FrequencyStrip::ONE_HUNDRED_KHZ; + } + + updateAllItems(); + + showButtons(); +} + +/*! + * + */ +void RadioFrequencyStripBase::createButtonsFromDocml( HbDocumentLoader& uiLoader, const QString& leftButtonName, const QString& rightButtonName ) +{ + Q_ASSERT( !mLeftButton && !mRightButton ); + mLeftButton = qobject_cast( uiLoader.findWidget( leftButtonName ) ); + mRightButton = qobject_cast( uiLoader.findWidget( rightButtonName ) ); + + initButtons(); +} + +/*! + * + */ +void RadioFrequencyStripBase::createButtons() +{ + Q_ASSERT( !mLeftButton && !mRightButton ); + mLeftButton = new HbPushButton( this ); + mRightButton = new HbPushButton( this ); + + mLeftButton->setIcon( HbIcon( "qtg_mono_previous" ) ); + mRightButton->setIcon( HbIcon( "qtg_mono_next" ) ); + + initButtons(); +} + +/*! + * + */ +void RadioFrequencyStripBase::setFrequency( const uint frequency, int reason, Scroll::Direction direction ) +{ + if ( mFrequencies.contains( frequency ) ) { + scrollToFrequency( frequency, direction, mAutoScrollTime ); + } +} + +/*! + * + */ +uint RadioFrequencyStripBase::frequency() const +{ + return mFrequency; +} + +/*! + * + */ +bool RadioFrequencyStripBase::isInManualSeekMode() const +{ + return mManualSeekMode; +} + +/*! + * + */ +void RadioFrequencyStripBase::cancelManualSeek() +{ + mManualSeekTimer->stop(); + if ( mManualSeekMode ) { + toggleManualSeek(); + } +} + +/*! + * + */ +void RadioFrequencyStripBase::addScannedStation( uint frequency ) +{ + FrequencyPos pos = mFrequencies.value( frequency ); + updateItem( pos.mItem, frequency ); +} + +/*! + * + */ +void RadioFrequencyStripBase::updateFavorite( uint frequency ) +{ + FrequencyPos pos = mFrequencies.value( frequency ); + updateItem( pos.mItem ); +} + +/*! + * Public slot + * + */ +void RadioFrequencyStripBase::setScanningMode( bool isScanning ) +{ + mManualSeekTimer->stop(); + if ( isScanning ) { + initEmptyItems(); + hideButtons(); + scrollToFrequency( mMinFrequency, Scroll::Shortest, mAutoScrollTime ); + } else { + showButtons(); + } + setEnabled( !isScanning ); +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::initEmptyItems() +{ + //TODO: Remove the weird hack of checking the sender + if ( !sender() || !isScanning() ) { + QList emptyList; + foreach ( RadioFrequencyItem* item, mFrequencyItems ) { + QPixmap pixmap = drawPixmap( item->frequency(), emptyList, item ); + item->setPixmap( pixmap ); + } + } +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::removeStation( const QModelIndex& parent, int first, int last ) +{ + Q_UNUSED( parent ); + updateStationsInRange( first, last, true ); +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::updateStation( const QModelIndex& parent, int first, int last ) +{ + Q_UNUSED( parent ); + updateStationsInRange( first, last ); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleLeftButton() +{ + skipToPreviousFavorite(); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleRightButton() +{ + skipToNextFavorite(); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleLongLeftButton() +{ + seekDown(); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleLongRightButton() +{ + seekUp(); +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::toggleManualSeek() +{ + mManualSeekMode = !mManualSeekMode; + emit manualSeekChanged( mManualSeekMode ); + + if ( mManualSeekMode ) { + grabMouse(); + hideButtons(); + mManualSeekTimerId = startTimer( FrequencyStrip::MANUALSEEK_SIGNAL_DELAY ); + } else { + ungrabMouse(); + showButtons(); + killTimer( mManualSeekTimerId ); + mManualSeekTimerId = 0; + } +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleScrollingEnd() +{ + // Check if the selector is in the invalid area where the strip loops around + const int selectorPosition = selectorPos(); + if ( mManualSeekMode ) { + if ( !mPositions.contains( selectorPosition ) ) { + if ( selectorPosition < mMaxWidth - FrequencyStrip::ITEM_WIDTH + mSeparatorPos ) { + scrollToFrequency( mMaxFrequency, Scroll::Shortest, 500 ); + emitFrequencyChanged( mMaxFrequency, FrequencyStrip::ManualSeekUpdate, Scroll::Shortest ); + } else { + scrollToFrequency( mMinFrequency, Scroll::Shortest, 500 ); + emitFrequencyChanged( mMinFrequency, FrequencyStrip::ManualSeekUpdate, Scroll::Shortest ); + } + } + + mManualSeekTimer->start( FrequencyStrip::MANUALSEEK_END_TIMEOUT ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ) +{ + QGraphicsPixmapItem* item = static_cast( itemToUpdate ); + if ( itemIndex < mFrequencyItems.count() ) { + item->setPixmap( mFrequencyItems.at( itemIndex )->updatePrimitive( item ) ); + } +} + +/*! + * \reimp + */ +QGraphicsItem* RadioFrequencyStripBase::createItemPrimitive( QGraphicsItem* parent ) +{ + return new QGraphicsPixmapItem( parent ); +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::scrollPosChanged() +{ + if ( mManualSeekMode ) { + const int pos = selectorPos(); + const uint frequency = mPositions.value( pos ); + if ( frequency > 0 ) { + mFrequency = mPositions.value( pos ); + emitFrequencyChanged( mFrequency, FrequencyStrip::ManualSeekUpdate, Scroll::Shortest ); + } + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::resizeEvent ( QGraphicsSceneResizeEvent* event ) +{ + RadioStripBase::resizeEvent( event ); + + initSelector(); + + const qreal height = event->newSize().height(); + const qreal width = event->newSize().width(); + + mSelectorPos = width / 2; + mSelectorImage->setOffset( mSelectorPos - ( FrequencyStrip::INDICATOR_WIDTH / 2 ), 0.0 ); + + if ( mLeftButton && mRightButton ) { + mLeftButton->resize( height, height ); + mRightButton->resize( height, height ); + mRightButton->setPos( QPointF( width - height, 0 ) ); + } + + scrollToFrequency( mFrequency ); +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::changeEvent( QEvent* event ) +{ + if ( event->type() == HbEvent::ThemeChanged ) { + // Update the foreground color and redraw each item + mForegroundColor = Qt::white;// HbColorScheme::color( FrequencyStrip::TEXT_COLOR_ATTRIBUTE ); + updateAllItems(); + } + + return RadioStripBase::changeEvent(event); +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::mousePressEvent( QGraphicsSceneMouseEvent* event ) +{ + RadioStripBase::mousePressEvent( event ); + + mManualSeekTimer->stop(); + if ( mManualSeekMode ) { + const bool insideStrip = rect().contains( event->pos() ); + if ( !insideStrip ) { + toggleManualSeek(); + } + } else { + mManualSeekTimer->start( FrequencyStrip::MANUALSEEK_START_TIMEOUT ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::mouseReleaseEvent( QGraphicsSceneMouseEvent* event ) +{ + RadioStripBase::mouseReleaseEvent( event ); + + mManualSeekTimer->stop(); + if ( mManualSeekMode && !isScrolling() ) { + mManualSeekTimer->start( FrequencyStrip::MANUALSEEK_END_TIMEOUT ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::gestureEvent( QGestureEvent* event ) +{ + HbSwipeGesture* swipeGesture = static_cast( event->gesture( Qt::SwipeGesture ) ); + if ( swipeGesture && !mManualSeekMode ) { + if ( swipeGesture->state() == Qt::GestureFinished ) { + if ( swipeGesture->horizontalDirection() == QSwipeGesture::Left ) { + skipToNext(); + } else if ( swipeGesture->horizontalDirection() == QSwipeGesture::Right ) { + skipToPrevious(); + } + } + } else if ( mManualSeekMode ) { + RadioStripBase::gestureEvent( event ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::timerEvent( QTimerEvent* event ) +{ + Q_UNUSED( event ); + if ( mLastReportedFrequency != mFrequency ) { + mLastReportedFrequency = mFrequency; + emitFrequencyChanged( mFrequency, FrequencyStrip::ManualSeekTune, Scroll::Shortest ); + } +} + +/*! + * + */ +void RadioFrequencyStripBase::initModel() +{ + const uint minFreq = uint( qreal(mMinFrequency) / FrequencyStrip::ONE_HERTZ + FrequencyStrip::ROUNDER ); + const uint maxFreq = uint( qreal(mMaxFrequency) / FrequencyStrip::ONE_HERTZ + 0.9 ); // always round up + + QStringList list; + QString freqText; + for ( uint i = minFreq; i <= maxFreq; ++i ) { + freqText = QString::number( i ); + list.append( freqText ); + mFrequencyItems.append( new RadioFrequencyItem( freqText ) ); + } + mFrequencyItems.append( new RadioFrequencyItem( "" ) ); + list.append( "" ); + + mMaxWidth = list.count() * FrequencyStrip::ITEM_WIDTH; + + mSeparatorPos = qreal(FrequencyStrip::ITEM_WIDTH) / 2; + const uint minDrawableFreq = minFreq * FrequencyStrip::ONE_HERTZ - FrequencyStrip::HALF_HERTZ;; + const uint maxDrawableFreq = maxFreq * FrequencyStrip::ONE_HERTZ + FrequencyStrip::HALF_HERTZ; + mSeparatorPos += qreal( ( mMinFrequency - minDrawableFreq ) / 2 ) / FrequencyStrip::PIXEL_IN_HZ; + mSeparatorPos -= qreal( ( maxDrawableFreq - mMaxFrequency ) / 2 ) / FrequencyStrip::PIXEL_IN_HZ; + + setModel( new QStringListModel( list, this ) ); +} + +/*! + * + */ +void RadioFrequencyStripBase::initSelector() +{ + QPixmap selectorPixmap = QPixmap( QSize( FrequencyStrip::SELECTOR_WIDTH, (int)size().height() ) ); + selectorPixmap.fill( Qt::red ); + mSelectorImage->setPixmap( selectorPixmap ); + mSelectorImage->setZValue( FrequencyStrip::SELECTOR_Z_POS ); +} + +/*! + * + */ +void RadioFrequencyStripBase::initPositions() +{ + int prevPos = 0; + int nextPos = 0; + const int lastPos = mFrequencies.value( mMaxFrequency ).mPosition; + for ( int i = mFrequencies.value( mMinFrequency ).mPosition; i < lastPos; ++i ) { + if ( mPositions.contains( i ) ) { + prevPos = i; + const uint freq = mPositions.value( prevPos ) + mFrequencyStepSize; + if ( mFrequencies.contains( freq ) ) { + nextPos = mFrequencies.value( freq ).mPosition; + } else { + nextPos = prevPos; + } + } else { + const int nearestHit = ( i - prevPos ) < ( nextPos - i ) ? prevPos : nextPos; + mPositions.insert( i, mPositions.value( nearestHit ) ); + } + } +} + +/*! + * + */ +void RadioFrequencyStripBase::initButtons() +{ + Q_ASSERT( mLeftButton && mRightButton ); + connectAndCheck( mLeftButton, SIGNAL(clicked()), + this, SLOT(handleLeftButton()) ); + connectAndCheck( mRightButton, SIGNAL(clicked()), + this, SLOT(handleRightButton()) ); + connectAndCheck( mLeftButton, SIGNAL(longPress(QPointF)), + this, SLOT(handleLongLeftButton()) ); + connectAndCheck( mRightButton, SIGNAL(longPress(QPointF)), + this, SLOT(handleLongRightButton()) ); + + mLeftButton->setZValue( FrequencyStrip::SELECTOR_Z_POS ); + mLeftButton->setObjectName( FrequencyStrip::LEFT_BUTTON ); + mRightButton->setZValue( FrequencyStrip::SELECTOR_Z_POS ); + mRightButton->setObjectName( FrequencyStrip::RIGHT_BUTTON ); + + const qreal height = size().height(); + const qreal width = size().width(); + mLeftButton->resize( height, height ); + mRightButton->resize( height, height ); + mRightButton->setPos( QPointF( width - height, 0 ) ); + + // Add left button effects + QStringList pathList; + pathList << ":/effects/slide_to_left.fxml" << ":/effects/slide_from_left.fxml"; + QStringList eventList; + eventList << FrequencyStrip::SLIDE_TO_LEFT << FrequencyStrip::SLIDE_FROM_LEFT; + HbEffect::add( mLeftButton, pathList, eventList ); + + // Add right button effects + pathList.clear(); + pathList << ":/effects/slide_to_right.fxml" << ":/effects/slide_from_right.fxml"; + eventList.clear(); + eventList << FrequencyStrip::SLIDE_TO_RIGHT << FrequencyStrip::SLIDE_FROM_RIGHT; + HbEffect::add( mRightButton, pathList, eventList ); +} + +/*! + * + */ +void RadioFrequencyStripBase::addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ) +{ + mFrequencies.insert( frequency, FrequencyPos( pos, item ) ); + mPositions.insert( pos, frequency ); +} + +/*! + * + */ +void RadioFrequencyStripBase::updateStationsInRange( int first, int last, bool stationRemoved ) +{ + if ( !isScanning() ) { + uint frequency = 0; + for ( int i = first; i <= last; ++i ) { + frequency = frequencyAtIndex( i ); + if ( mFrequencies.contains( frequency ) ) { + FrequencyPos pos = mFrequencies.value( frequency ); + updateItem( pos.mItem, 0, stationRemoved ? frequency : 0 ); + } + } + } +} + +/*! + * + */ +void RadioFrequencyStripBase::updateItem( RadioFrequencyItem* item, uint upperRange, uint ignoredFrequency ) +{ + if ( item ) { + uint frequency = item->frequency(); + QList markers; + + if ( upperRange == 0 ) { + upperRange = frequency + FrequencyStrip::HALF_HERTZ; + } + + if ( isInitialized() ) { + markers = stationsInRange( frequency - FrequencyStrip::HALF_HERTZ, upperRange ); + for ( int i = markers.count() - 1; ignoredFrequency > 0 && i >= 0; --i ) { + if ( markers[i].mFrequency == ignoredFrequency ) { + markers.removeAt( i ); + break; + } + } + } + + QPixmap pixmap = drawPixmap( frequency, markers, item ); + item->setPixmap( pixmap ); + + foreach ( const FrequencyStrip::StationMarker& marker, markers ) { + FrequencyPos pos = mFrequencies.value( marker.mFrequency ); + mFrequencies.insert( marker.mFrequency, pos ); + } + } +} + +/*! + * + */ +void RadioFrequencyStripBase::updateAllItems() +{ + foreach ( RadioFrequencyItem* item, mFrequencyItems ) { + updateItem( item ); + } +} + +/*! + * + */ +QPixmap RadioFrequencyStripBase::drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ) +{ + QPixmap pixmap( FrequencyStrip::PIXMAP_WIDTH, mItemHeight ); + pixmap.fill( Qt::transparent ); + QPainter painter( &pixmap ); + QPen normalPen = painter.pen(); + QPen favoritePen = normalPen; + normalPen.setColor( mForegroundColor ); + painter.setPen( normalPen ); + + if ( frequency == 0 ) { + painter.drawLine( makeTab( mSeparatorPos - 1 + FrequencyStrip::ROUNDER, mItemHeight ) ); + painter.drawLine( makeTab( mSeparatorPos + FrequencyStrip::ROUNDER, mItemHeight ) ); + return pixmap; + } + + const QString itemText = QString::number( frequency / FrequencyStrip::ONE_HERTZ ); + const uint startFrequency = frequency - FrequencyStrip::HALF_HERTZ; + const uint endFrequency = startFrequency + FrequencyStrip::ONE_HERTZ; + const uint roundedMin = int( qreal(mMinFrequency) / FrequencyStrip::ONE_HERTZ + FrequencyStrip::ROUNDER ); + const uint freq = frequency / FrequencyStrip::ONE_HERTZ; + const int diff = freq - roundedMin; + const qreal startPixel = diff * FrequencyStrip::ITEM_WIDTH; + qreal pixels = 0.0; + const qreal leftOverlap = FrequencyStrip::PIXMAP_OVERLAP / 2; + + for ( uint frequency = startFrequency; frequency <= endFrequency; frequency += mFrequencyStepSize ) { + + if ( frequency < mMinFrequency || frequency > mMaxFrequency ) { + continue; + } + + pixels = qreal( frequency - startFrequency ) / FrequencyStrip::PIXEL_IN_HZ; + if ( frequency % FrequencyStrip::ONE_HERTZ == 0 ) { + + // Draw the high frequency tab and the frequency text for the even number + normalPen.setWidth( 3 ); + painter.setPen( normalPen ); + painter.drawLine( makeTab( pixels + leftOverlap - 1, FrequencyStrip::TAB_HEIGHT_BIG ) ); + normalPen.setWidth( 1 ); + painter.setPen( normalPen ); + + // Draw the frequency text and its 00 decimals + painter.setFont( FrequencyStrip::DECIMAL_FONT ); + const int decimalWidth = painter.fontMetrics().width( FrequencyStrip::DECIMAL_TEXT ); + const int decimalSpace = painter.fontMetrics().leftBearing( '.' ); + painter.setFont( FrequencyStrip::FREQUENCY_FONT ); + const int frequencyWidth = painter.fontMetrics().width( itemText ); + const int textPosX = int( pixels + leftOverlap - ( frequencyWidth + decimalSpace + decimalWidth ) / 2 ); + painter.drawText( QPoint( textPosX, FrequencyStrip::FREQUENCY_TEXT_Y_POS ), itemText ); + painter.setFont( FrequencyStrip::DECIMAL_FONT ); + painter.drawText( QPoint( textPosX + frequencyWidth + decimalSpace, FrequencyStrip::FREQUENCY_TEXT_Y_POS ), FrequencyStrip::DECIMAL_TEXT ); + + } else if ( frequency % FrequencyStrip::ONE_TAB_IN_HZ == 0 ) { + + // Draw the low frequency tab for the uneven number + painter.drawLine( makeTab( pixels + leftOverlap, FrequencyStrip::TAB_HEIGHT_SMALL ) ); + + } + + addFrequencyPos( int( startPixel + pixels + FrequencyStrip::ROUNDER ), frequency, item ); + } + + // Draw favorites and local stations + favoritePen.setColor( Qt::yellow ); + + foreach ( const FrequencyStrip::StationMarker& station, stations ) { + const uint frequency = station.mFrequency; + pixels = qreal( frequency - startFrequency ) / FrequencyStrip::PIXEL_IN_HZ; + + if ( station.mIsFavorite ) { + favoritePen.setWidth( FrequencyStrip::PEN_WIDTH_FAVORITE ); + painter.setPen( favoritePen ); + painter.drawEllipse( int( pixels + leftOverlap - 3 ), FrequencyStrip::STATION_MARKER_Y_POS - 3, 6, 6 ); + } else { + favoritePen.setWidth( 1 ); + painter.setPen( favoritePen ); + painter.drawEllipse( int( pixels + leftOverlap - 4 ), FrequencyStrip::STATION_MARKER_Y_POS - 4, 8, 8 ); + } + } + + return pixmap; +} + +/*! + * + */ +QLineF RadioFrequencyStripBase::makeTab( qreal pos, int height ) +{ + return QLineF( pos, mItemHeight - height, pos, mItemHeight ); +} + +/*! + * + */ +int RadioFrequencyStripBase::selectorPos() const +{ + const int pos = int( -contentWidget()->x() + mSelectorPos + FrequencyStrip::ROUNDER ); + return pos % mMaxWidth; +} + +/*! + * + */ +void RadioFrequencyStripBase::scrollToFrequency( uint frequency, Scroll::Direction direction, int time ) +{ + int targetFreqPos = mFrequencies.value( frequency ).mPosition; + const int currentFreqPos = mFrequencies.value( mFrequency ).mPosition; + const int currentPos = int( -contentWidget()->x() + mSelectorPos + FrequencyStrip::ROUNDER ); + const bool isInSecondHalf = currentPos >= mMaxWidth - FrequencyStrip::ITEM_WIDTH + mSeparatorPos; + + // Special case: When there is only one favorite and the user presses skip + // the strip must scroll around to the same frequency. + if ( mFrequency == frequency && direction != Scroll::Shortest ) { + if ( direction == Scroll::Left ) { + targetFreqPos += mMaxWidth; + } else { + targetFreqPos -= mMaxWidth; + } + } + + mFrequency = frequency; + + qreal newPos = targetFreqPos; + if ( direction == Scroll::Left ) { + + if ( currentFreqPos > targetFreqPos ) { + newPos += mMaxWidth; + } + + } else if ( direction == Scroll::Right ) { + + if ( currentFreqPos < targetFreqPos ) { + newPos -= mMaxWidth; + } + + } + + if ( isInSecondHalf ) { + newPos += mMaxWidth; + } + + newPos -= mSelectorPos - FrequencyStrip::ROUNDER; + +// scrollContentsTo( QPointF( newPos, 0 ), time ); +// TODO: Remove this and uncomment the above line. This is a temporary workaround to get the strip to move + scrollContentsTo( QPointF( newPos, 0 ), 0 ); +} + +/*! + * + */ +void RadioFrequencyStripBase::hideButtons() +{ + HbEffect::start( mLeftButton, FrequencyStrip::SLIDE_TO_LEFT ); + HbEffect::start( mRightButton, FrequencyStrip::SLIDE_TO_RIGHT ); +} + +/*! + * + */ +void RadioFrequencyStripBase::showButtons() +{ + HbEffect::start( mLeftButton, FrequencyStrip::SLIDE_FROM_LEFT ); + HbEffect::start( mRightButton, FrequencyStrip::SLIDE_FROM_RIGHT ); +} diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiohistoryview.cpp --- a/radioapp/radiowidgets/src/radiohistoryview.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiohistoryview.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -265,6 +265,8 @@ mHistoryList->setModel( historyModel ); mHistoryList->setSelectionMode( HbListView::NoSelection ); mHistoryList->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); + //TODO: Uncomment after MCL wk28 release to improve scrolling FPS rate + //mHistoryList->setItemPixmapCacheEnabled( true ); mAllSongsButton = mUiLoader->findObject( DOCML::HV_NAME_ALL_SONGS_BUTTON ); mTaggedSongsButton = mUiLoader->findObject( DOCML::HV_NAME_TAGGED_SONGS_BUTTON ); diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiomainview.cpp --- a/radioapp/radiowidgets/src/radiomainview.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiomainview.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -88,8 +88,7 @@ updateFavoriteButton(); mFrequencyScanner.take(); -// const bool firsTimeStart = mUiEngine->isFirstTimeStart(); - const bool firsTimeStart = false; // TODO! RadioServer terminates. Fix available in NCP 25 or 27. + const bool firsTimeStart = mUiEngine->isFirstTimeStart(); const int rowCount = mUiEngine->stationModel().rowCount(); if ( firsTimeStart && rowCount != 0 ) { mUiEngine->setFirstTimeStartPerformed( true ); @@ -120,6 +119,7 @@ mCarousel = mUiLoader->findObject( DOCML::MV_NAME_STATION_CAROUSEL ); mCarousel->init( *mUiLoader, mUiEngine.data() ); + mCarousel->setLandscape( mMainWindow->orientation() == Qt::Horizontal ); mFrequencyStrip = mUiLoader->findObject( DOCML::MV_NAME_FREQUENCY_STRIP ); mFrequencyStrip->init( mUiEngine.data(), *mUiLoader ); @@ -189,8 +189,7 @@ #endif // BUILD_WIN32 setNavigationAction( backAction ); -// const bool firsTimeStart = mUiEngine->isFirstTimeStart(); - const bool firsTimeStart = false; // TODO! RadioServer terminates. Fix available in NCP 25 or 27. + const bool firsTimeStart = mUiEngine->isFirstTimeStart(); const int rowCount = mUiEngine->stationModel().rowCount(); if ( firsTimeStart && rowCount == 0 ){ QTimer::singleShot( 100, this, SLOT(toggleScanning()) ); @@ -211,6 +210,7 @@ loadSection( DOCML::FILE_MAINVIEW, mMainWindow->orientationSection() ); if ( mCarousel && mFrequencyStrip ) { mCarousel->setFrequency( mFrequencyStrip->frequency(), TuneReason::Unspecified ); + mCarousel->setLandscape( mMainWindow->orientation() == Qt::Horizontal ); } } @@ -420,7 +420,7 @@ */ void RadioMainView::handleFavoriteChange( const RadioStation& station ) { - mFrequencyStrip->updateFavorite( station ); + mFrequencyStrip->updateFavorite( station.frequency() ); updateFavoriteButton(); } diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiostationcarousel.cpp --- a/radioapp/radiowidgets/src/radiostationcarousel.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiostationcarousel.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -441,6 +441,14 @@ } /*! + * + */ +void RadioStationCarousel::setLandscape( bool landscape ) +{ + CALL_TO_ALL_ITEMS( setLandscape( landscape ) ); +} + +/*! * TODO: Remove this! This is test code */ void RadioStationCarousel::setAlternateSkippingMode( bool alternateSkipping ) @@ -552,8 +560,8 @@ { QColor color = Qt::green; if ( !available && mUiEngine ) { - LOG_FORMAT( "No RDS signal: Station has sent RDS earlier: %d", mUiEngine.model().currentStation().hasRds() ); - color = mUiEngine.model().currentStation().hasRds() ? Qt::yellow : Qt::gray; + LOG_FORMAT( "No RDS signal: Station has sent RDS earlier: %d", mUiEngine.model().currentStation().hasSentRds() ); + color = mUiEngine.model().currentStation().hasSentRds() ? Qt::yellow : Qt::gray; mRdsLabel->setText( "RDS" ); } else { mRdsLabel->setText( "-RDS-" ); diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiostationsview.cpp --- a/radioapp/radiowidgets/src/radiostationsview.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiostationsview.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -394,4 +394,6 @@ mStationsList->setModel( mFilterModel ); mStationsList->setSelectionMode( HbListView::NoSelection ); mStationsList->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); + //TODO: Uncomment after MCL wk28 release to improve scrolling FPS rate + //mStationsList->setItemPixmapCacheEnabled( true ); } diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiostripbase.cpp --- a/radioapp/radiowidgets/src/radiostripbase.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiostripbase.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -20,7 +20,6 @@ // User includes #include "radiostripbase.h" -#include "radiologger.h" // Constants @@ -181,7 +180,7 @@ */ void RadioStripBase::resizeEvent( QGraphicsSceneResizeEvent* event ) { - Q_UNUSED( event ); + HbScrollArea::resizeEvent( event ); populateAndLayout(); } diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radioviewbase.cpp --- a/radioapp/radiowidgets/src/radioviewbase.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radioviewbase.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -227,7 +227,7 @@ */ void RadioViewBase::askQuestion( const QString& question ) { - HbMessageBox::question( question, this, SLOT(handleUserAnswer(HbAction*)) ); + HbMessageBox::question( question, this, SLOT(handleUserAnswer(HbAction*)), HbMessageBox::Yes | HbMessageBox::No ); } /*! diff -r 11b6825f0862 -r 3a6b55c6390c radioapp/radiowidgets/src/radiowindow.cpp --- a/radioapp/radiowidgets/src/radiowindow.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioapp/radiowidgets/src/radiowindow.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -68,14 +68,10 @@ /*! * */ -void RadioWindow::init( QSystemDeviceInfo* deviceInfo ) +void RadioWindow::init() { - mDeviceInfo.reset( deviceInfo ); - Radio::connect( this, SIGNAL(viewReady()), this, SLOT(initView()) ); - Radio::connect( mDeviceInfo.data(), SIGNAL(currentProfileChanged(QSystemDeviceInfo::Profile)), - this, SLOT(queryOfflineUsage(QSystemDeviceInfo::Profile)) ); activateMainView(); } @@ -211,28 +207,6 @@ } /*! - * Private slot - * - */ -void RadioWindow::queryOfflineUsage( QSystemDeviceInfo::Profile profile ) -{ - if ( profile == QSystemDeviceInfo::OfflineProfile ) { - bool okToContinue = false; - HbDeviceMessageBox box( hbTrId( "txt_rad_info_continue_using_the_radio_in_offline" ), HbMessageBox::MessageTypeQuestion ); - box.setTimeout( HbPopup::NoTimeout ); - box.exec(); - - okToContinue = box.isAcceptAction( box.triggeredAction() ); - - if ( okToContinue ) { - // Radio stays on - } else { - qApp->quit(); // Close radio - } - } // other profiles are not interesting -} - -/*! * */ void RadioWindow::activateView( RadioViewBase* aMember, const QString& docmlFile, Hb::ViewSwitchFlags flags ) diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/engine/inc/cradioengineimp.h --- a/radioengine/engine/inc/cradioengineimp.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/engine/inc/cradioengineimp.h Wed Aug 18 09:49:03 2010 +0300 @@ -30,7 +30,6 @@ #include "radioenginedef.h" // Forward declarations -class CRadioPubSub; class CRadioRdsReceiverBase; class CRadioNetworkInfoListener; class MRadioEngineSettings; @@ -111,27 +110,11 @@ ERadioEventFmTransmitter }; - /** - * Possible radio scan events. - */ - enum TRadioScanEvent - { - /** - * Scanning found a valid frequency. - */ - ERadioEventFrequencyScanned, - - /** - * Scanning is completed. - */ - ERadioEventScanCompleted - - }; - enum TRadioInitialisationState { ERadioNotInitialized, ERadioUtilitiesConstructed, + ERadioTunerControlRequested, ERadioTunerControlGranted }; @@ -172,6 +155,11 @@ void PowerOff(); /** + * Requests tuner control from tuner utility + */ + void RequestTunerControl(); + + /** * Converts region code used internally by Visual Radio * in to a frequency range by tuner ( TFmRadioFrequencyRange ) * diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/engine/src/cradioengineimp.cpp --- a/radioengine/engine/src/cradioengineimp.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/engine/src/cradioengineimp.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -51,7 +51,7 @@ const TInt KRadioVolumeStepsDivider = 500; /** amount of volume steps used previously */ #if defined __WINS__ -const TInt KRadioVolumeStepsOld = 10; +const TInt KRadioVolumeStepsWins = 20; #endif // defined __WINS__ /** KRadioRadioSwitchDelay value must not be too small, otherwise problems with @@ -232,6 +232,7 @@ LEVEL3( LOG_METHOD_AUTO ); TRadioRegion region = ERadioRegionNone; + //TODO: Reimplement in QT side and remove the mobile network functionality MRadioEngineSettings& engineSettings = iSettings->EngineSettings(); if ( iSystemEventCollector->IsMobileNetworkCoverage() ) { @@ -300,9 +301,7 @@ // Utilities have been created now iRadioInitializationState = ERadioUtilitiesConstructed; - // Before first RequestTunerControl() call it is ok to enable offline mode without checking capabilities - iTunerUtility->EnableTunerInOfflineMode( ETrue ); - iTunerUtility->RequestTunerControl(); + RequestTunerControl(); } // --------------------------------------------------------------------------- @@ -335,7 +334,7 @@ iRadioEnabled && OkToPlay( iSettings->EngineSettings().TunedFrequency() ) ) { - iTunerUtility->RequestTunerControl(); + RequestTunerControl(); } else { @@ -486,7 +485,7 @@ iRadioEnabled && OkToPlay( iSettings->EngineSettings().TunedFrequency() ) ) { - iTunerUtility->RequestTunerControl(); + RequestTunerControl(); } else { @@ -593,6 +592,29 @@ } // --------------------------------------------------------------------------- +// Requests tuner control from tuner utility +// --------------------------------------------------------------------------- +// +void CRadioEngineImp::RequestTunerControl() + { + LOG_METHOD_AUTO; + + if ( iRadioInitializationState < ERadioTunerControlRequested ) + { + LOG( "Requesting tuner control" ); + // Before first RequestTunerControl() say that it is ok to enable offline mode without checking capabilities + iTunerUtility->EnableTunerInOfflineMode( ETrue ); + iTunerUtility->RequestTunerControl(); + + iRadioInitializationState = ERadioTunerControlRequested; + } + else + { + LOG( "Tuner control already requested" ); + } + } + +// --------------------------------------------------------------------------- // // --------------------------------------------------------------------------- // @@ -923,10 +945,8 @@ } // --------------------------------------------------------------------------- -// If CRadioPlayerUtility has 10 steps, CAknVolumeControl has also 10 steps and also -// the maximum volume level of Visual radio is 10. Otherwise CRadioPlayerUtility has -// 200 steps, and CAknVolumeControl has 20 steps, so maximum volume level of Visual radio -// is 20. +// Determine the meximum volume level by dividing the maximum volume setting +// received from player utility to get the desired 20 volume steps // --------------------------------------------------------------------------- // TInt CRadioEngineImp::MaxVolumeLevel() const @@ -935,7 +955,7 @@ TInt maxLevel = 0; #if defined __WINS__ - maxLevel = KRadioVolumeStepsOld; + maxLevel = KRadioVolumeStepsWins; #else if ( RadioInitialized() ) { @@ -1003,9 +1023,9 @@ LOG_METHOD_AUTO; TInt count = iObservers.Count(); - for ( TInt i = 0; iEngineSettings().IsVolMuted(); - if ( !aMute != !muted ) - { - iSettings->RadioSetter().SetVolMuted( aMute ); - NotifyRadioEvent( ERadioEventMute ); - } + LOG_FORMAT( "CRadioEngineImp::MrpoMuteChange muted: %d", aMute ); + +// TBool muted = iSettings->EngineSettings().IsVolMuted(); +// if ( !aMute != !muted ) +// { +// iSettings->RadioSetter().SetVolMuted( aMute ); +// NotifyRadioEvent( ERadioEventMute ); +// } } // --------------------------------------------------------------------------- @@ -1638,13 +1647,13 @@ } } - if ( !iSettings->EngineSettings().IsPowerOn() ) + if ( !aPowerOn ) { CancelSeek(); } // If we are seeking, power event starts seeking - if ( iSeekingState != RadioEngine::ERadioNotSeeking && iSettings->EngineSettings().IsPowerOn() ) + if ( iSeekingState != RadioEngine::ERadioNotSeeking && aPowerOn ) { // Reset seeking state to enable seeking start LOG( "PowerOn event in seekingstate. Restart seeking" ); diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/engine/src/cradionetworkinfolistener.cpp --- a/radioengine/engine/src/cradionetworkinfolistener.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/engine/src/cradionetworkinfolistener.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -119,7 +119,7 @@ // Get phone info of first legal phone. TInt legalPhoneIndex = KErrNotFound; RTelServer::TPhoneInfo phoneInfo; - for ( TInt i=0; iRdsAfSearchStateChange( iAfEnabled ); } diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/settings/src/cradioenginesettings.cpp --- a/radioengine/settings/src/cradioenginesettings.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/settings/src/cradioenginesettings.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -675,6 +675,7 @@ //User::LeaveIfError( iRadioSettingsImp.FsSession().Connect() ); + //TODO: Remove the ResolveDriveL iRadioSettingsImp.ResolveDriveL( resourceFileName, KDC_RESOURCE_FILES_DIR ); BaflUtils::NearestLanguageFile( iRadioSettingsImp.FsSession(), resourceFileName); @@ -685,7 +686,7 @@ reader.SetBuffer(readBuffer); TInt regionCount = reader.ReadInt16(); - for ( TInt i = 0 ; i < regionCount; i++ ) + for ( TInt i = 0; i < regionCount; ++i ) { TInt resId = reader.ReadInt32(); // The next resource ID to read. HBufC8* regionBuffer = iResFile.AllocReadLC(resId); diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/settings/src/cradioregion.cpp --- a/radioengine/settings/src/cradioregion.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/settings/src/cradioregion.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -50,7 +50,7 @@ iDecimalCount = aRr.ReadInt16(); TInt countryCodeCount = aRr.ReadInt16(); - for ( TInt i = 0 ; i < countryCodeCount ; i++) + for ( TInt i = 0; i < countryCodeCount; ++i ) { TPtrC code; code.Set( aRr.ReadTPtrC()); diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/settings/src/cradiosettingsimp.cpp --- a/radioengine/settings/src/cradiosettingsimp.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/settings/src/cradiosettingsimp.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -81,12 +81,9 @@ delete iApplicationSettings; if ( iFsSession ) { - if ( iFsSession->Handle() ) - { - iFsSession->Close(); - } - delete iFsSession; + iFsSession->Close(); } + delete iFsSession; } // --------------------------------------------------------------------------- @@ -137,7 +134,7 @@ { LEVEL3( LOG_METHOD_AUTO ); LEVEL3( LOG_FORMAT( "aFileName = %S, aPath = %S", &aFileName, &aPath ) ); - + TFileName fileName; TFileName baseResource; TFindFile finder( *iFsSession ); @@ -235,4 +232,3 @@ LEVEL3( LOG_METHOD_AUTO ); return *iFsSession; } - diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/settings/stub/group/radioenginesettings_stub.mmp --- a/radioengine/settings/stub/group/radioenginesettings_stub.mmp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/settings/stub/group/radioenginesettings_stub.mmp Wed Aug 18 09:49:03 2010 +0300 @@ -56,7 +56,6 @@ USERINCLUDE /sf/mw/mmmw/inc APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/internal SOURCEPATH ../../src SOURCE cradioregion.cpp diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/settings/tsrc/group/SettingsTestModule.mmp --- a/radioengine/settings/tsrc/group/SettingsTestModule.mmp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/settings/tsrc/group/SettingsTestModule.mmp Wed Aug 18 09:49:03 2010 +0300 @@ -39,7 +39,6 @@ USERINCLUDE ../../../utils/inc APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/internal SOURCEPATH ../src diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/settings/tsrc/group/SettingsTestModule_nrm.mmp --- a/radioengine/settings/tsrc/group/SettingsTestModule_nrm.mmp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/settings/tsrc/group/SettingsTestModule_nrm.mmp Wed Aug 18 09:49:03 2010 +0300 @@ -39,7 +39,6 @@ USERINCLUDE ../../../utils/inc APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/internal SOURCEPATH ../src diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/settings/tsrc/src/SettingsTestModuleBlocks.cpp --- a/radioengine/settings/tsrc/src/SettingsTestModuleBlocks.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/settings/tsrc/src/SettingsTestModuleBlocks.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -194,7 +194,7 @@ { TestModuleIf().Printf( i, KSettingsTestModule, KParam, i, &string ); - i++; + ++i; } return KErrNone; diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/api/cradioaudiorouter.h --- a/radioengine/utils/api/cradioaudiorouter.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/api/cradioaudiorouter.h Wed Aug 18 09:49:03 2010 +0300 @@ -29,8 +29,6 @@ /** * CRadioAudioRouter * - * Contains functionality for playing and routing startup sound - * */ NONSHARABLE_CLASS( CRadioAudioRouter ) : public CBase { diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/api/cradiorepositoryentity.h --- a/radioengine/utils/api/cradiorepositoryentity.h Tue Jul 06 14:16:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef C_RADIOREPOSITORYENTITY_H -#define C_RADIOREPOSITORYENTITY_H - -// User includes -#include "cradiorepositoryentitybase.h" -#include "mradiorepositoryentityobserver.h" -#include "cradioenginelogger.h" - -// Forward declarations -class CRepository; - -/** - * Templated class to listen to a single key within the central repository. - * - * Notifies the observer of changes in the key, and provides caching for the key's value. - */ -template -NONSHARABLE_CLASS( CRadioRepositoryEntity ) : public CRadioRepositoryEntityBase - { - -public: - - IMPORT_C static CRadioRepositoryEntity* NewL( const TUid& aUid, - TUint32 aKey, - MRadioRepositoryEntityObserver& aObserver, - CActive::TPriority aPriority = CActive::EPriorityStandard ); - - IMPORT_C ~CRadioRepositoryEntity(); - - /** - * Sets the value of the entity. - * The value is written into the central repository immediately. - * - * @param aValue The value to set. - * @param aSavingEnabled If ETrue, saving to central repository file is enabled - */ - TInt SetValue( const T& aValue, TBool aSavingEnabled ); - - /** - * Returns a cached reference to the value of the entity. - * - * @return The cached value of the entity. - */ - const T& Value() const; - - /** - * Forcibly updates the key's value from the central repository and caches it. - */ - void UpdateL(); - -// from base class CActive - - void RunL(); - void DoCancel(); - -private: - - CRadioRepositoryEntity( const TUid& aUid, - TUint32 aKey, - MRadioRepositoryEntityObserver& aObserver, - CActive::TPriority aPriority ); - - void ConstructL(); - -protected: - - /** The central repository client. */ - CRepository* iRepository; - - /** The cached value of the key. */ - T iValue; - - }; - -#include "cradiorepositoryentity.inl" - -#endif // C_RADIOREPOSITORYENTITY_H diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/api/cradiorepositoryentity.inl --- a/radioengine/utils/api/cradiorepositoryentity.inl Tue Jul 06 14:16:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// System includes -#include - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -template -EXPORT_C CRadioRepositoryEntity* CRadioRepositoryEntity::NewL( const TUid& aUid, - TUint32 aKey, - MRadioRepositoryEntityObserver& aObserver, - CActive::TPriority aPriority ) - { - LEVEL3( LOG_METHOD_AUTO ); - CRadioRepositoryEntity* self = new ( ELeave ) CRadioRepositoryEntity( aUid, aKey, aObserver, aPriority ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -template -CRadioRepositoryEntity::CRadioRepositoryEntity( const TUid& aUid, - TUint32 aKey, - MRadioRepositoryEntityObserver& aObserver, - CActive::TPriority aPriority ) - : CRadioRepositoryEntityBase( aUid, aKey, aObserver, aPriority ) - { - LEVEL3( LOG_METHOD_AUTO ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -template -void CRadioRepositoryEntity::ConstructL() - { - LEVEL3( LOG_METHOD_AUTO ); - iRepository = CRepository::NewL( iUid ); - - CActiveScheduler::Add( this ); - iRepository->Get( iKey, iValue ); - User::LeaveIfError( iRepository->NotifyRequest( iKey, iStatus ) ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -template -EXPORT_C CRadioRepositoryEntity::~CRadioRepositoryEntity() - { - LEVEL3( LOG_METHOD_AUTO ); - Cancel(); - delete iRepository; - } - -// ----------------------------------------------------------------------------- -// Sets the value of the key. -// ----------------------------------------------------------------------------- -// -template -TInt CRadioRepositoryEntity::SetValue( const T& aValue, TBool aSavingEnabled ) - { - LEVEL3( LOG_METHOD_AUTO ); - iValue = aValue; - if ( aSavingEnabled ) - { - return iRepository->Set( iKey, aValue ); - } - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// Returns the cached copy of the key's value. -// ----------------------------------------------------------------------------- -// -template -const T& CRadioRepositoryEntity::Value() const - { - LEVEL3( LOG_METHOD_AUTO ); - return iValue; - } - -// ----------------------------------------------------------------------------- -// Forcibly updates the cached value from the repository. -// ----------------------------------------------------------------------------- -// -template -void CRadioRepositoryEntity::UpdateL() - { - LEVEL3( LOG_METHOD_AUTO ); - User::LeaveIfError( iRepository->Get( iKey, iValue ) ); - } - -// ----------------------------------------------------------------------------- -// Executed when the key's value is changed. -// ----------------------------------------------------------------------------- -// -template -void CRadioRepositoryEntity::RunL() - { - LEVEL3( LOG_METHOD_AUTO ); - User::LeaveIfError( iRepository->NotifyRequest( iKey, iStatus ) ); - SetActive(); - - TInt err = iRepository->Get( iKey, iValue ); - iObserver.HandleRepositoryValueChangeL( iUid, iKey, iValue, err ); - } - -// ----------------------------------------------------------------------------- -// Cancels all pending notifications. -// ----------------------------------------------------------------------------- -// -template -void CRadioRepositoryEntity::DoCancel() - { - LEVEL3( LOG_METHOD_AUTO ); - iRepository->NotifyCancel( iKey ); - } diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/api/cradiorepositoryentitybase.h --- a/radioengine/utils/api/cradiorepositoryentitybase.h Tue Jul 06 14:16:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef C_RADIOREPOSITORYENTITYBASE_H -#define C_RADIOREPOSITORYENTITYBASE_H - -#include - -class MRadioRepositoryEntityObserver; - -/** - * Base class for a central repository entity. - * - * All instantiable central repository entities must be derived from this class. - * The class is provided so that a heterogenous array of templated objects can be created, and to - * provide common data fields for the said purpose. - */ -class CRadioRepositoryEntityBase : public CActive - { - -public: - - IMPORT_C ~CRadioRepositoryEntityBase(); - - /** - * Returns the UID of the repository the entity is bound to. - * - * @return The UID of the repository the entity is bound to. - */ - const TUid& Uid() const; - - /** - * Returns the key the entity is bound to. - * - * @return The key the entity is bound to. - */ - TUint32 Key() const; - -protected: - - /** - * Constructor. - * - * @param aUid The UID of the repository that this entity will be bound to. - * @param aKey The key within the repository that this entity will be bound to. - * @param aObserver The observer that is notified whenever the value of the key within the repository changes. - * @param aPriority The priority of the active object. - */ - IMPORT_C CRadioRepositoryEntityBase( const TUid& aUid, TUint32 aKey, MRadioRepositoryEntityObserver& aObserver, CActive::TPriority aPriority ); - -protected: - - /** The observer that is notified of changes in the key. */ - MRadioRepositoryEntityObserver& iObserver; - - /** The UID of the repository the entity is bound to. */ - TUid iUid; - - /** The key the entity is bound to.. */ - TUint32 iKey; - - }; - -#endif // C_RADIOREPOSITORYENTITYBASE_H diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/api/cradiorepositorymanager.h --- a/radioengine/utils/api/cradiorepositorymanager.h Tue Jul 06 14:16:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,255 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef C_RADIOREPOSITORYMANAGER_H -#define C_RADIOREPOSITORYMANAGER_H - -// System includes -#include - -// Forward declarations -class MRadioRepositoryEntityObserver; - -/** The maximum length of a string buffer. */ -const TInt KRadioEntityBuf16Length = 256; // Maximum: NCentralRepositoryConstants::KMaxUnicodeStringLength; -/** The maximum length of a binary buffer. */ -const TInt KRadioEntityBuf8Length = KRadioEntityBuf16Length * 2; // Maximum: NCentralRepositoryConstants::KMaxBinaryLength; - -/** Maximum length binary buffer. */ -typedef TBuf8 TRadioEntityBuf8; -/** Maximum length string buffer. */ -typedef TBuf16 TRadioEntityBuf16; - -/** - * Central repository entity manager. - * - * Manages central repository entities that listen to specific repository and a key within it, notifying the observer - * whenever the key's value changes. - * - * Also a set of static methods are provided that wrap the common use case of central repository where the user - * is only interested to read or write the value of a key and then discard the repository object. - */ -NONSHARABLE_CLASS( CRadioRepositoryManager ) : public CBase - { - -public: - - /** - * Possible entity types. - */ - enum TRadioEntityType - { - ERadioEntityInt, /**< The entity is an integer. */ - ERadioEntityReal, /**< The entity is a floating point number. */ - ERadioEntityDes8, /**< The entity is a binary value. */ - ERadioEntityDes16 /**< The entity is a string. */ - }; - - IMPORT_C static CRadioRepositoryManager* NewL( TInt aGranularity ); - - IMPORT_C ~CRadioRepositoryManager(); - - /** - * Adds observer - * - * @param aObserver The observer that is notified of all the changes in the observed keys' values. - */ - virtual void AddObserverL( MRadioRepositoryEntityObserver* aObserver ) = 0; - - /** - * Removes observer - * - * @param aObserver The observer that is to be removed - */ - virtual void RemoveObserver( MRadioRepositoryEntityObserver* aObserver ) = 0; - - /** - * Enables or disables the writing of entities' values to the repository. - * - * Disabling the save functionality is important when the free disk space reaches critical level. - * - * @param aEnable ETrue if the entities are allowed to write their value to the repository, EFalse otherwise. - */ - virtual void EnableSave( TBool aEnable ) = 0; - - /** - * Adds an entity to the manager. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aType The type of the key within the repository. - */ - virtual void AddEntityL( const TUid& aUid, TUint32 aKey, TRadioEntityType aType ) = 0; - - /** - * Removes an entity from the manager. - * - * Entities should only be removed when they are no longer needed. The destructor of the repository manager - * deletes all the remaining entities. - * - * @param aUid The UID of the entity to be removed. - * @param aKey The key of the entity to be removed. - */ - virtual void RemoveEntity( const TUid& aUid, TUint32 aKey ) = 0; - - /** - * Sets the value of an integer entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The value to set. - */ - virtual TInt SetEntityValue( const TUid& aUid, TUint32 aKey, TInt aValue ) = 0; - - /** - * Sets the value of a floating point entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The value to set. - */ - virtual TInt SetEntityValue( const TUid& aUid, TUint32 aKey, const TReal& aValue ) = 0; - - /** - * Sets the value of a binary entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The value to set. - */ - virtual TInt SetEntityValue( const TUid& aUid, TUint32 aKey, const TDesC8& aValue ) = 0; - - /** - * Sets the value of a string entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The value to set. - */ - virtual TInt SetEntityValue( const TUid& aUid, TUint32 aKey, const TDesC16& aValue ) = 0; - - /** - * Returns the cached value of an integer entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @return The cached value of the entity. - */ - virtual TInt EntityValueInt( const TUid& aUid, TUint32 aKey ) const = 0; - - /** - * Returns the cached value of a floating point entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @return The cached value of the entity. - */ - virtual const TReal& EntityValueReal( const TUid& aUid, TUint32 aKey ) const = 0; - - /** - * Returns the cached value of a binary entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @return The cached value of the entity. - */ - virtual const TDesC8& EntityValueDes8( const TUid& aUid, TUint32 aKey ) const = 0; - - /** - * Returns the cached value of a string entity. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @return The cached value of the entity. - */ - virtual const TDesC16& EntityValueDes16( const TUid& aUid, TUint32 aKey ) const = 0; - - /** - * Sets the value of an integer key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue The value to set. - */ - IMPORT_C static void SetRepositoryValueL( const TUid& aUid, TUint32 aKey, TInt aValue ); - - /** - * Sets the value of a floating point key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue The value to set. - */ - IMPORT_C static void SetRepositoryValueL( const TUid& aUid, TUint32 aKey, const TReal& aValue ); - - /** - * Sets the value of a binary key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue The value to set. - */ - IMPORT_C static void SetRepositoryValueL( const TUid& aUid, TUint32 aKey, const TDesC8& aValue ); - - /** - * Sets the value of a string key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue The value to set. - */ - IMPORT_C static void SetRepositoryValueL( const TUid& aUid, TUint32 aKey, const TDesC16& aValue ); - - /** - * Gets the value of an integer key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue On return, the value of the key within the repository. - */ - IMPORT_C static void GetRepositoryValueL( const TUid& aUid, TUint32 aKey, TInt& aValue ); - - /** - * Gets the value of a floating point key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue On return, the value of the key within the repository. - */ - IMPORT_C static void GetRepositoryValueL( const TUid& aUid, TUint32 aKey, TReal& aValue ); - - /** - * Gets the value of a binary key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue On return, the value of the key within the repository. - */ - IMPORT_C static void GetRepositoryValueL( const TUid& aUid, TUint32 aKey, TDes8& aValue ); - - /** - * Gets the value of a string key in the repository. - * - * @param aUid The UID of the repository. - * @param aKey The key within the repository. - * @param aValue On return, the value of the key within the repository. - */ - IMPORT_C static void GetRepositoryValueL( const TUid& aUid, TUint32 aKey, TDes16& aValue ); - - }; - -#endif // C_RADIOREPOSITORYMANAGER_H diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/api/mradiorepositoryentityobserver.h --- a/radioengine/utils/api/mradiorepositoryentityobserver.h Tue Jul 06 14:16:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef M_RADIOREPOSITORYENTITYOBSERVER_H -#define M_RADIOREPOSITORYENTITYOBSERVER_H - -/** - * Entity observer interface. - */ -NONSHARABLE_CLASS( MRadioRepositoryEntityObserver ) - { - -public: - - /** - * Invoked when the observed entity's value is changed. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The new value of the entity. - * @param aError One of the standard system error codes. - */ - virtual void HandleRepositoryValueChangeL( const TUid& aUid, TUint32 aKey, TInt aValue, TInt aError ) = 0; - - /** - * Invoked when the observed entity's value is changed. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The new value of the entity. - * @param aError One of the standard system error codes. - */ - virtual void HandleRepositoryValueChangeL( const TUid& aUid, TUint32 aKey, const TReal& aValue, TInt aError ) = 0; - - /** - * Invoked when the observed entity's value is changed. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The new value of the entity. - * @param aError One of the standard system error codes. - */ - virtual void HandleRepositoryValueChangeL( const TUid& aUid, TUint32 aKey, const TDesC8& aValue, TInt aError ) = 0; - - /** - * Invoked when the observed entity's value is changed. - * - * @param aUid The UID of the entity. - * @param aKey The key of the entity. - * @param aValue The new value of the entity. - * @param aError One of the standard system error codes. - */ - virtual void HandleRepositoryValueChangeL( const TUid& aUid, TUint32 aKey, const TDesC16& aValue, TInt aError ) = 0; - - }; - -#endif // M_RADIOREPOSITORYENTITYOBSERVER_H - diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/api/radioengineutils.h --- a/radioengine/utils/api/radioengineutils.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/api/radioengineutils.h Wed Aug 18 09:49:03 2010 +0300 @@ -49,27 +49,6 @@ */ IMPORT_C static RFs& FsSession(); - /** - * Converts a frequency to a descriptor format. - * Returned descriptor is left in CleanupStack. - * - * @param aFreq Frequency, in kilohertz, to convert. - * @param aDecimalCount Decimal count to use. - * @param aResourceId Resource ID of the format string, or KErrNotFound if no such resource is to be used. - * @return The formatted descriptor. Ownership is transferred. - */ - IMPORT_C static HBufC* ReadFrequencyStringLC( TUint32 aFreq, TInt aDecimalCount, TInt aResourceId = KErrNotFound ); - - /** - * Writes formatted frequency to a give descriptor. - * - * @param aDest Destination descriptor. - * @param aFreq Frequency, in kilohertz, to convert. - * @param aDecimalCount Decimal count to use. - * @param aFormat Format read from resource. - */ - IMPORT_C static void FormatFrequencyString( TDes& aDest, TUint32 aFreq, TInt aDecimalCount, TDesC& aFormat ); - }; #endif // RADIOENGINEUTILS_H diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/bwins/fmradioengineutilsu.def --- a/radioengine/utils/bwins/fmradioengineutilsu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/bwins/fmradioengineutilsu.def Wed Aug 18 09:49:03 2010 +0300 @@ -4,29 +4,25 @@ ??0CRadioRoutableAudio@@QAE@PAVCRadioAudioRouter@@@Z @ 3 NONAME ; CRadioRoutableAudio::CRadioRoutableAudio(class CRadioAudioRouter *) ?InitializeL@RadioEngineUtils@@SAXXZ @ 4 NONAME ; void RadioEngineUtils::InitializeL(void) ?NewL@CRadioRemConTarget@@SAPAV1@XZ @ 5 NONAME ; class CRadioRemConTarget * CRadioRemConTarget::NewL(void) - ??1CRadioRepositoryEntityBase@@UAE@XZ @ 6 NONAME ; CRadioRepositoryEntityBase::~CRadioRepositoryEntityBase(void) - ??1TRadioMethodLogger@@QAE@XZ @ 7 NONAME ; TRadioMethodLogger::~TRadioMethodLogger(void) - ??1CRadioRoutableAudio@@UAE@XZ @ 8 NONAME ; CRadioRoutableAudio::~CRadioRoutableAudio(void) - ?SetAudioOutput@CRadioRoutableAudio@@IAEXPAVCAudioOutput@@@Z @ 9 NONAME ; void CRadioRoutableAudio::SetAudioOutput(class CAudioOutput *) - ?RegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 10 NONAME ; void CRadioAudioRouter::RegisterRoutableAudio(class CRadioRoutableAudio *) - ?ReadFrequencyStringLC@RadioEngineUtils@@SAPAVHBufC16@@KHH@Z @ 11 NONAME ; class HBufC16 * RadioEngineUtils::ReadFrequencyStringLC(unsigned long, int, int) - ?ValueDes@CRadioPropertyObserver@@QBEABVTDesC16@@XZ @ 12 NONAME ; class TDesC16 const & CRadioPropertyObserver::ValueDes(void) const - ??0CRadioRepositoryEntityBase@@IAE@ABVTUid@@KAAVMRadioRepositoryEntityObserver@@W4TPriority@CActive@@@Z @ 13 NONAME ; CRadioRepositoryEntityBase::CRadioRepositoryEntityBase(class TUid const &, unsigned long, class MRadioRepositoryEntityObserver &, enum CActive::TPriority) - ??1CRadioSystemEventCollector@@UAE@XZ @ 14 NONAME ; CRadioSystemEventCollector::~CRadioSystemEventCollector(void) - ??1CRadioAudioRouter@@UAE@XZ @ 15 NONAME ; CRadioAudioRouter::~CRadioAudioRouter(void) - ?ActivateL@CRadioPropertyObserver@@QAEXXZ @ 16 NONAME ; void CRadioPropertyObserver::ActivateL(void) - ?Logger@RadioEngineUtils@@SAPAVMRadioEngineLogger@@XZ @ 17 NONAME ; class MRadioEngineLogger * RadioEngineUtils::Logger(void) - ?NewL@CRadioSystemEventCollector@@SAPAV1@XZ @ 18 NONAME ; class CRadioSystemEventCollector * CRadioSystemEventCollector::NewL(void) - ?Logger@MRadioEngineLogger@@SAPAV1@XZ @ 19 NONAME ; class MRadioEngineLogger * MRadioEngineLogger::Logger(void) - ?Release@RadioEngineUtils@@SAXXZ @ 20 NONAME ; void RadioEngineUtils::Release(void) - ?DeleteAudioOutput@CRadioRoutableAudio@@IAEXXZ @ 21 NONAME ; void CRadioRoutableAudio::DeleteAudioOutput(void) - ?FormatFrequencyString@RadioEngineUtils@@SAXAAVTDes16@@KHAAVTDesC16@@@Z @ 22 NONAME ; void RadioEngineUtils::FormatFrequencyString(class TDes16 &, unsigned long, int, class TDesC16 &) - ?ValueInt@CRadioPropertyObserver@@QBEHXZ @ 23 NONAME ; int CRadioPropertyObserver::ValueInt(void) const - ?SetAudioRouteL@CRadioAudioRouter@@QAEXW4TRadioAudioRoute@RadioEngine@@@Z @ 24 NONAME ; void CRadioAudioRouter::SetAudioRouteL(enum RadioEngine::TRadioAudioRoute) - ?NewL@CRadioAudioRouter@@SAPAV1@AAVMRadioAudioRoutingObserver@@@Z @ 25 NONAME ; class CRadioAudioRouter * CRadioAudioRouter::NewL(class MRadioAudioRoutingObserver &) - ?FsSession@RadioEngineUtils@@SAAAVRFs@@XZ @ 26 NONAME ; class RFs & RadioEngineUtils::FsSession(void) - ?UnRegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 27 NONAME ; void CRadioAudioRouter::UnRegisterRoutableAudio(class CRadioRoutableAudio *) - ?AudioRoutingSupported@CRadioRoutableAudio@@QBEHXZ @ 28 NONAME ; int CRadioRoutableAudio::AudioRoutingSupported(void) const - ?NewL@CRadioPropertyObserver@@SAPAV1@AAVMRadioPropertyChangeObserver@@ABVTUid@@IW4TRadioPropertyType@1@@Z @ 29 NONAME ; class CRadioPropertyObserver * CRadioPropertyObserver::NewL(class MRadioPropertyChangeObserver &, class TUid const &, unsigned int, enum CRadioPropertyObserver::TRadioPropertyType) - ??0TRadioMethodLogger@@QAE@PBG0@Z @ 30 NONAME ; TRadioMethodLogger::TRadioMethodLogger(unsigned short const *, unsigned short const *) + ??1TRadioMethodLogger@@QAE@XZ @ 6 NONAME ; TRadioMethodLogger::~TRadioMethodLogger(void) + ??1CRadioRoutableAudio@@UAE@XZ @ 7 NONAME ; CRadioRoutableAudio::~CRadioRoutableAudio(void) + ?SetAudioOutput@CRadioRoutableAudio@@IAEXPAVCAudioOutput@@@Z @ 8 NONAME ; void CRadioRoutableAudio::SetAudioOutput(class CAudioOutput *) + ?RegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 9 NONAME ; void CRadioAudioRouter::RegisterRoutableAudio(class CRadioRoutableAudio *) + ?ValueDes@CRadioPropertyObserver@@QBEABVTDesC16@@XZ @ 10 NONAME ; class TDesC16 const & CRadioPropertyObserver::ValueDes(void) const + ??1CRadioSystemEventCollector@@UAE@XZ @ 11 NONAME ; CRadioSystemEventCollector::~CRadioSystemEventCollector(void) + ??1CRadioAudioRouter@@UAE@XZ @ 12 NONAME ; CRadioAudioRouter::~CRadioAudioRouter(void) + ?ActivateL@CRadioPropertyObserver@@QAEXXZ @ 13 NONAME ; void CRadioPropertyObserver::ActivateL(void) + ?Logger@RadioEngineUtils@@SAPAVMRadioEngineLogger@@XZ @ 14 NONAME ; class MRadioEngineLogger * RadioEngineUtils::Logger(void) + ?NewL@CRadioSystemEventCollector@@SAPAV1@XZ @ 15 NONAME ; class CRadioSystemEventCollector * CRadioSystemEventCollector::NewL(void) + ?Logger@MRadioEngineLogger@@SAPAV1@XZ @ 16 NONAME ; class MRadioEngineLogger * MRadioEngineLogger::Logger(void) + ?Release@RadioEngineUtils@@SAXXZ @ 17 NONAME ; void RadioEngineUtils::Release(void) + ?DeleteAudioOutput@CRadioRoutableAudio@@IAEXXZ @ 18 NONAME ; void CRadioRoutableAudio::DeleteAudioOutput(void) + ?ValueInt@CRadioPropertyObserver@@QBEHXZ @ 19 NONAME ; int CRadioPropertyObserver::ValueInt(void) const + ?SetAudioRouteL@CRadioAudioRouter@@QAEXW4TRadioAudioRoute@RadioEngine@@@Z @ 20 NONAME ; void CRadioAudioRouter::SetAudioRouteL(enum RadioEngine::TRadioAudioRoute) + ?FsSession@RadioEngineUtils@@SAAAVRFs@@XZ @ 21 NONAME ; class RFs & RadioEngineUtils::FsSession(void) + ?NewL@CRadioAudioRouter@@SAPAV1@AAVMRadioAudioRoutingObserver@@@Z @ 22 NONAME ; class CRadioAudioRouter * CRadioAudioRouter::NewL(class MRadioAudioRoutingObserver &) + ?UnRegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 23 NONAME ; void CRadioAudioRouter::UnRegisterRoutableAudio(class CRadioRoutableAudio *) + ?AudioRoutingSupported@CRadioRoutableAudio@@QBEHXZ @ 24 NONAME ; int CRadioRoutableAudio::AudioRoutingSupported(void) const + ??0TRadioMethodLogger@@QAE@PBG0@Z @ 25 NONAME ; TRadioMethodLogger::TRadioMethodLogger(unsigned short const *, unsigned short const *) + ?NewL@CRadioPropertyObserver@@SAPAV1@AAVMRadioPropertyChangeObserver@@ABVTUid@@IW4TRadioPropertyType@1@@Z @ 26 NONAME ; class CRadioPropertyObserver * CRadioPropertyObserver::NewL(class MRadioPropertyChangeObserver &, class TUid const &, unsigned int, enum CRadioPropertyObserver::TRadioPropertyType) diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/eabi/fmradioengineutilsu.def --- a/radioengine/utils/eabi/fmradioengineutilsu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/eabi/fmradioengineutilsu.def Wed Aug 18 09:49:03 2010 +0300 @@ -1,49 +1,41 @@ EXPORTS _ZN16RadioEngineUtils11InitializeLEv @ 1 NONAME - _ZN16RadioEngineUtils21FormatFrequencyStringER6TDes16miR7TDesC16 @ 2 NONAME - _ZN16RadioEngineUtils21ReadFrequencyStringLCEmii @ 3 NONAME - _ZN16RadioEngineUtils6LoggerEv @ 4 NONAME - _ZN16RadioEngineUtils7ReleaseEv @ 5 NONAME - _ZN16RadioEngineUtils9FsSessionEv @ 6 NONAME - _ZN17CRadioAudioRouter14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 7 NONAME - _ZN17CRadioAudioRouter21RegisterRoutableAudioEP19CRadioRoutableAudio @ 8 NONAME - _ZN17CRadioAudioRouter23UnRegisterRoutableAudioEP19CRadioRoutableAudio @ 9 NONAME - _ZN17CRadioAudioRouter4NewLER26MRadioAudioRoutingObserver @ 10 NONAME - _ZN17CRadioAudioRouterD0Ev @ 11 NONAME - _ZN17CRadioAudioRouterD1Ev @ 12 NONAME - _ZN17CRadioAudioRouterD2Ev @ 13 NONAME - _ZN18CRadioRemConTarget4NewLEv @ 14 NONAME - _ZN18MRadioEngineLogger6LoggerEv @ 15 NONAME - _ZN18TRadioMethodLoggerC1EPKtS1_ @ 16 NONAME - _ZN18TRadioMethodLoggerC2EPKtS1_ @ 17 NONAME - _ZN18TRadioMethodLoggerD1Ev @ 18 NONAME - _ZN18TRadioMethodLoggerD2Ev @ 19 NONAME - _ZN19CRadioRoutableAudio14SetAudioOutputEP12CAudioOutput @ 20 NONAME - _ZN19CRadioRoutableAudio14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 21 NONAME - _ZN19CRadioRoutableAudio17DeleteAudioOutputEv @ 22 NONAME - _ZN19CRadioRoutableAudioC1EP17CRadioAudioRouter @ 23 NONAME - _ZN19CRadioRoutableAudioC2EP17CRadioAudioRouter @ 24 NONAME - _ZN19CRadioRoutableAudioD0Ev @ 25 NONAME - _ZN19CRadioRoutableAudioD1Ev @ 26 NONAME - _ZN19CRadioRoutableAudioD2Ev @ 27 NONAME - _ZN22CRadioPropertyObserver4NewLER28MRadioPropertyChangeObserverRK4TUidjNS_18TRadioPropertyTypeE @ 28 NONAME - _ZN22CRadioPropertyObserver9ActivateLEv @ 29 NONAME - _ZN26CRadioRepositoryEntityBaseC2ERK4TUidmR30MRadioRepositoryEntityObserverN7CActive9TPriorityE @ 30 NONAME - _ZN26CRadioRepositoryEntityBaseD0Ev @ 31 NONAME - _ZN26CRadioRepositoryEntityBaseD1Ev @ 32 NONAME - _ZN26CRadioRepositoryEntityBaseD2Ev @ 33 NONAME - _ZN26CRadioSystemEventCollector4NewLEv @ 34 NONAME - _ZN26CRadioSystemEventCollectorD0Ev @ 35 NONAME - _ZN26CRadioSystemEventCollectorD1Ev @ 36 NONAME - _ZN26CRadioSystemEventCollectorD2Ev @ 37 NONAME - _ZNK19CRadioRoutableAudio21AudioRoutingSupportedEv @ 38 NONAME - _ZNK22CRadioPropertyObserver8ValueDesEv @ 39 NONAME - _ZNK22CRadioPropertyObserver8ValueIntEv @ 40 NONAME - _ZNK22CRadioPropertyObserver9ValueDes8Ev @ 41 NONAME - _ZTI15CRadioEngineTls @ 42 NONAME - _ZTI19CRadioRoutableAudio @ 43 NONAME - _ZTI26CRadioRepositoryEntityBase @ 44 NONAME - _ZTV15CRadioEngineTls @ 45 NONAME - _ZTV19CRadioRoutableAudio @ 46 NONAME - _ZTV26CRadioRepositoryEntityBase @ 47 NONAME + _ZN16RadioEngineUtils6LoggerEv @ 2 NONAME + _ZN16RadioEngineUtils7ReleaseEv @ 3 NONAME + _ZN16RadioEngineUtils9FsSessionEv @ 4 NONAME + _ZN17CRadioAudioRouter14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 5 NONAME + _ZN17CRadioAudioRouter21RegisterRoutableAudioEP19CRadioRoutableAudio @ 6 NONAME + _ZN17CRadioAudioRouter23UnRegisterRoutableAudioEP19CRadioRoutableAudio @ 7 NONAME + _ZN17CRadioAudioRouter4NewLER26MRadioAudioRoutingObserver @ 8 NONAME + _ZN17CRadioAudioRouterD0Ev @ 9 NONAME + _ZN17CRadioAudioRouterD1Ev @ 10 NONAME + _ZN17CRadioAudioRouterD2Ev @ 11 NONAME + _ZN18CRadioRemConTarget4NewLEv @ 12 NONAME + _ZN18MRadioEngineLogger6LoggerEv @ 13 NONAME + _ZN18TRadioMethodLoggerC1EPKtS1_ @ 14 NONAME + _ZN18TRadioMethodLoggerC2EPKtS1_ @ 15 NONAME + _ZN18TRadioMethodLoggerD1Ev @ 16 NONAME + _ZN18TRadioMethodLoggerD2Ev @ 17 NONAME + _ZN19CRadioRoutableAudio14SetAudioOutputEP12CAudioOutput @ 18 NONAME + _ZN19CRadioRoutableAudio14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 19 NONAME + _ZN19CRadioRoutableAudio17DeleteAudioOutputEv @ 20 NONAME + _ZN19CRadioRoutableAudioC1EP17CRadioAudioRouter @ 21 NONAME + _ZN19CRadioRoutableAudioC2EP17CRadioAudioRouter @ 22 NONAME + _ZN19CRadioRoutableAudioD0Ev @ 23 NONAME + _ZN19CRadioRoutableAudioD1Ev @ 24 NONAME + _ZN19CRadioRoutableAudioD2Ev @ 25 NONAME + _ZN22CRadioPropertyObserver4NewLER28MRadioPropertyChangeObserverRK4TUidjNS_18TRadioPropertyTypeE @ 26 NONAME + _ZN22CRadioPropertyObserver9ActivateLEv @ 27 NONAME + _ZN26CRadioSystemEventCollector4NewLEv @ 28 NONAME + _ZN26CRadioSystemEventCollectorD0Ev @ 29 NONAME + _ZN26CRadioSystemEventCollectorD1Ev @ 30 NONAME + _ZN26CRadioSystemEventCollectorD2Ev @ 31 NONAME + _ZNK19CRadioRoutableAudio21AudioRoutingSupportedEv @ 32 NONAME + _ZNK22CRadioPropertyObserver8ValueDesEv @ 33 NONAME + _ZNK22CRadioPropertyObserver8ValueIntEv @ 34 NONAME + _ZNK22CRadioPropertyObserver9ValueDes8Ev @ 35 NONAME + _ZTI15CRadioEngineTls @ 36 NONAME + _ZTI19CRadioRoutableAudio @ 37 NONAME + _ZTV15CRadioEngineTls @ 38 NONAME + _ZTV19CRadioRoutableAudio @ 39 NONAME diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/group/radioengineutils.mmp --- a/radioengine/utils/group/radioengineutils.mmp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/group/radioengineutils.mmp Wed Aug 18 09:49:03 2010 +0300 @@ -36,7 +36,6 @@ APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE /epoc32/include/remcon -SYSTEMINCLUDE /epoc32/include/internal SYSTEMINCLUDE /epoc32/include/mmf/common SYSTEMINCLUDE /epoc32/include/platform/mw @@ -49,7 +48,6 @@ SOURCE cradiopropertyobserver.cpp SOURCE cradioremcontarget.cpp SOURCE cradioremcontargetimp.cpp -SOURCE cradiorepositoryentitybase.cpp SOURCE cradiosystemeventdetector.cpp SOURCE cradiosystemeventcollector.cpp SOURCE cradiosystemeventcollectorimp.cpp @@ -66,4 +64,3 @@ LIBRARY remconcoreapi.lib LIBRARY remconextensionapi.lib LIBRARY remconinterfacebase.lib -LIBRARY featmgr.lib diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/inc/cradiopropertyobserver.h --- a/radioengine/utils/inc/cradiopropertyobserver.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/inc/cradiopropertyobserver.h Wed Aug 18 09:49:03 2010 +0300 @@ -201,42 +201,42 @@ /** * Value of a subscribed category property of type int. */ - TInt iValueInt; + TInt iValueInt; /** * Value of a subscribed category property of type byte array. */ - HBufC8* iValueByteArray; + HBufC8* iValueByteArray; /** * Value of a subscribed category property of type text. */ - HBufC* iValueText; + HBufC* iValueText; /** * Handle to Publish And Subscribe component */ - RProperty iProperty; + RProperty iProperty; /** * Observer to be notified when particular Property value has changed */ - MRadioPropertyChangeObserver& iObserver; + MRadioPropertyChangeObserver& iObserver; /** * UID of Publish And Subscribe category */ - TUid iCategory; + TUid iCategory; /** * Subkey to be used with Publish And Subscribe */ - TUint iKey; + TUint iKey; /** * Type of the observed property. */ - TRadioPropertyType iPropertyType; + TRadioPropertyType iPropertyType; }; diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/inc/cradiosystemeventdetector.h --- a/radioengine/utils/inc/cradiosystemeventdetector.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/inc/cradiosystemeventdetector.h Wed Aug 18 09:49:03 2010 +0300 @@ -100,7 +100,7 @@ /**Indicator for the call status*/ TBool iIsCallActive; - /** Array of audio policy categories that VR must not resume after. */ + /** Array of audio policy categories that radio must not resume after. */ RArray iNoAutoResumeAudioCategories; /** Indicator for audio resource status. */ diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/src/cradioaccessoryobserver.cpp --- a/radioengine/utils/src/cradioaccessoryobserver.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/src/cradioaccessoryobserver.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -24,15 +24,18 @@ #include "cradioenginelogger.h" #ifdef ASW_CORE_AUDIO_PLATFORM_VERSION // Nokia specific adaptation -#include +//#include +#include #ifndef __WINS__ - -const TUint KPhysicalConnectionBitmask = KPCNokiaAV | KPCWired; +// See accpolpropgenericid.h definitions KPCNokiaAV == 0x20000, +// Forced to use hard coded value here to avoid including from epoc32/include/internal +const TUint KPhysicalConnectionBitmask = 0x20000 | KPCWired; #else - -const TUint KPhysicalConnectionBitmask = 0x20000 | 0x1; +// See accpolpropgenericid.h definitions KPCNokiaAV == 0x20000, +// Forced to use hard coded value here to avoid including from epoc32/include/internal +const TUint KPhysicalConnectionBitmask = 0x20000 | KPCWired; #endif // __WINS__ @@ -116,7 +119,7 @@ TBool accessoryFound = EFalse; LOG_FORMAT( "Connected accessories count = %d", iAccPolGenIdArr.Count()); - for ( TInt i = 0; i < iAccPolGenIdArr.Count() && !accessoryFound; i++ ) + for ( TInt i = 0; i < iAccPolGenIdArr.Count() && !accessoryFound; ++i ) { TAccPolGenericID accPolGenId = iAccPolGenIdArr.GetGenericIDL( i ); @@ -237,7 +240,7 @@ iSavedAccessories.Reset(); - for ( TInt i = 0; i < iAccPolGenIdArr.Count(); i++ ) + for ( TInt i = 0; i < iAccPolGenIdArr.Count(); ++i ) { iSavedAccessories.AppendL( iAccPolGenIdArr.GetGenericIDL( i ) ); LOG_FORMAT( "- accessory in slot %d: %d", @@ -255,7 +258,7 @@ LEVEL2( LOG_METHOD_AUTO ); TInt removedAccessories( 0 ); - for ( TInt i = 0; i < iSavedAccessories.Count(); i++ ) + for ( TInt i = 0; i < iSavedAccessories.Count(); ++i ) { TAccPolGenericID savedAcc = iSavedAccessories[i]; @@ -293,7 +296,7 @@ LEVEL2( LOG_METHOD_AUTO ); TInt addedAccessories( 0 ); - for ( TInt i = 0; i < iAccPolGenIdArr.Count(); i++ ) + for ( TInt i = 0; i < iAccPolGenIdArr.Count(); ++i ) { TAccPolGenericID freshAcc = iAccPolGenIdArr.GetGenericIDL( i ); diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/src/cradioaudiorouter.cpp --- a/radioengine/utils/src/cradioaudiorouter.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/src/cradioaudiorouter.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -79,7 +79,7 @@ { LEVEL3( LOG_METHOD_AUTO ); - for ( TInt i = 0 ; i < iRoutableAudios.Count(); i++ ) + for ( TInt i = 0; i < iRoutableAudios.Count(); ++i ) { iRoutableAudios[i]->SetAudioRouteL( aAudioRoute ); } diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/src/cradioremcontargetimp.cpp --- a/radioengine/utils/src/cradioremcontargetimp.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/src/cradioremcontargetimp.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -81,10 +81,6 @@ CRadioRemConTargetImp::~CRadioRemConTargetImp() { LEVEL3( LOG_METHOD_AUTO ); - if ( iRepeatTimer ) - { - iRepeatTimer->Cancel(); - } delete iRepeatTimer; delete iInterfaceSelector; //deletes also iCallTarget and iCoreTarget iCoreTarget = NULL; diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/src/cradiorepositoryentitybase.cpp --- a/radioengine/utils/src/cradiorepositoryentitybase.cpp Tue Jul 06 14:16:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#include "cradiorepositoryentitybase.h" -#include "cradioenginelogger.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CRadioRepositoryEntityBase::CRadioRepositoryEntityBase( const TUid& aUid, - TUint32 aKey, - MRadioRepositoryEntityObserver& aObserver, - CActive::TPriority aPriority ) - : CActive( aPriority ), iObserver( aObserver ), iUid( aUid ), iKey( aKey ) - { - LEVEL3( LOG_METHOD_AUTO ); - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CRadioRepositoryEntityBase::~CRadioRepositoryEntityBase() - { - LEVEL3( LOG_METHOD_AUTO ); - } - -// --------------------------------------------------------------------------- -// Returns the UID of this entity. -// --------------------------------------------------------------------------- -// -const TUid& CRadioRepositoryEntityBase::Uid() const - { - return iUid; - } - -// --------------------------------------------------------------------------- -// Returns the key of this entity. -// --------------------------------------------------------------------------- -// -TUint32 CRadioRepositoryEntityBase::Key() const - { - LEVEL3( LOG_METHOD_AUTO ); - return iKey; - } diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/src/cradiosystemeventcollectorimp.cpp --- a/radioengine/utils/src/cradiosystemeventcollectorimp.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/src/cradiosystemeventcollectorimp.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -20,7 +20,6 @@ // User includes #include "cradioaccessoryobserver.h" -#include "cradiorepositorymanager.h" #include "cradiosystemeventcollectorimp.h" #include "cradiosystemeventdetector.h" #include "radioengineutils.h" diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/src/cradiosystemeventdetector.cpp --- a/radioengine/utils/src/cradiosystemeventdetector.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/src/cradiosystemeventdetector.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -21,8 +21,9 @@ #ifndef __WINS__ -#include -#include +//#include +//#include +#include #endif //__WINS__ @@ -36,7 +37,7 @@ #include "mradiosystemeventdetectorobserver.h" /** Granularity for audio category arrays. */ -const TInt KVRAudioCategoryArrayGranularity = 3; +//const TInt KVRAudioCategoryArrayGranularity = 3; // This has to be the last include. #ifdef STUB_CONSTELLATION @@ -84,9 +85,10 @@ CRadioPropertyObserver::ERadioPropertyInt ); iCallStatusObserver->ActivateL(); iIsCallActive = iCallStatusObserver->ValueInt() != EPSCTsyCallStateNone; - +/* #ifndef __WINS__ // Define audio types for not resuming. + //TODO: Check these audio resume categories! iNoAutoResumeAudioCategories = RArray( KVRAudioCategoryArrayGranularity ); iNoAutoResumeAudioCategories.AppendL( ECatMediaPlayer ); iNoAutoResumeAudioCategories.AppendL( ECatMobileTv ); @@ -96,6 +98,7 @@ iAudioPolicyObserver = CRadioPropertyObserver::NewL( *this, KPSUidMMFAudioServer, KAudioPolicyAudioClients, CRadioPropertyObserver::ERadioPropertyByteArray ); iAudioPolicyObserver->ActivateL(); #endif +*/ } // --------------------------------------------------------------------------- @@ -176,7 +179,7 @@ TAudioClientList audioClients; audioClients.Copy( aValue ); // Check all playing audios! - for ( TInt i = 0; i < audioClients().iNumOfProcesses ; i++ ) + for ( TInt i = 0; i < audioClients().iNumOfProcesses ; ++i ) { TInt cat = audioClients().iClientCategoryList[i]; LOG_FORMAT( "Check audio cat %x", cat ); diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/src/radioengineutils.cpp --- a/radioengine/utils/src/radioengineutils.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/src/radioengineutils.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -17,7 +17,6 @@ // System includes #include -#include // User includes #include "radioengineutils.h" @@ -59,56 +58,3 @@ { return CRadioEngineTls::Instance().FsSession(); } - -// --------------------------------------------------------------------------- -// Utility method for frequency formatting. -// Frequency is assumed to be in kilohertz format. -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC* RadioEngineUtils::ReadFrequencyStringLC( TUint32 aFreq, - TInt aDecimalCount, - TInt aResourceId ) - { - TBuf freqText; - freqText.AppendNum( static_cast( aFreq ) / 1000.0f, TRealFormat( KDefaultRealWidth, aDecimalCount ) ); // Converts kilohertz to megahertz. - - // Converts the numbers to the proper display mode. - - HBufC* channelFreq = NULL; - - if ( aResourceId == KErrNotFound ) // No resource string. - { - channelFreq = freqText.AllocLC(); - } - else - { - channelFreq = StringLoader::LoadLC( aResourceId, freqText ); - } - - return channelFreq; - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C void RadioEngineUtils::FormatFrequencyString( TDes& aDest, - TUint32 aFreq, - TInt aDecimalCount, - TDesC& aFormat ) - { - TBuf freqText; - freqText.AppendNum( static_cast( aFreq ) / 1000.0f, TRealFormat( KDefaultRealWidth, aDecimalCount ) ); // Converts kilohertz to megahertz. - - // Converts the numbers to the proper display mode. - - if ( aFormat.Length() <= 0 || freqText.Length() > aDest.MaxLength() ) // No format. - { - aDest.Copy( freqText.Left( aDest.Length() ) ); - } - else - { - StringLoader::Format( aDest, aFormat, KErrNotFound, freqText ); - } - } - diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/stub/bwins/fmradioengineutils_stubu.def --- a/radioengine/utils/stub/bwins/fmradioengineutils_stubu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/stub/bwins/fmradioengineutils_stubu.def Wed Aug 18 09:49:03 2010 +0300 @@ -4,29 +4,25 @@ ??0CRadioRoutableAudio@@QAE@PAVCRadioAudioRouter@@@Z @ 3 NONAME ; CRadioRoutableAudio::CRadioRoutableAudio(class CRadioAudioRouter *) ?InitializeL@RadioEngineUtils@@SAXXZ @ 4 NONAME ; void RadioEngineUtils::InitializeL(void) ?NewL@CRadioRemConTarget@@SAPAV1@XZ @ 5 NONAME ; class CRadioRemConTarget * CRadioRemConTarget::NewL(void) - ??1CRadioRepositoryEntityBase@@UAE@XZ @ 6 NONAME ; CRadioRepositoryEntityBase::~CRadioRepositoryEntityBase(void) - ??1TRadioMethodLogger@@QAE@XZ @ 7 NONAME ; TRadioMethodLogger::~TRadioMethodLogger(void) - ??1CRadioRoutableAudio@@UAE@XZ @ 8 NONAME ; CRadioRoutableAudio::~CRadioRoutableAudio(void) - ?SetAudioOutput@CRadioRoutableAudio@@IAEXPAVCAudioOutput@@@Z @ 9 NONAME ; void CRadioRoutableAudio::SetAudioOutput(class CAudioOutput *) - ?RegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 10 NONAME ; void CRadioAudioRouter::RegisterRoutableAudio(class CRadioRoutableAudio *) - ?ReadFrequencyStringLC@RadioEngineUtils@@SAPAVHBufC16@@KHH@Z @ 11 NONAME ; class HBufC16 * RadioEngineUtils::ReadFrequencyStringLC(unsigned long, int, int) - ?ValueDes@CRadioPropertyObserver@@QBEABVTDesC16@@XZ @ 12 NONAME ; class TDesC16 const & CRadioPropertyObserver::ValueDes(void) const - ??0CRadioRepositoryEntityBase@@IAE@ABVTUid@@KAAVMRadioRepositoryEntityObserver@@W4TPriority@CActive@@@Z @ 13 NONAME ; CRadioRepositoryEntityBase::CRadioRepositoryEntityBase(class TUid const &, unsigned long, class MRadioRepositoryEntityObserver &, enum CActive::TPriority) - ??1CRadioSystemEventCollector@@UAE@XZ @ 14 NONAME ; CRadioSystemEventCollector::~CRadioSystemEventCollector(void) - ??1CRadioAudioRouter@@UAE@XZ @ 15 NONAME ; CRadioAudioRouter::~CRadioAudioRouter(void) - ?ActivateL@CRadioPropertyObserver@@QAEXXZ @ 16 NONAME ; void CRadioPropertyObserver::ActivateL(void) - ?Logger@RadioEngineUtils@@SAPAVMRadioEngineLogger@@XZ @ 17 NONAME ; class MRadioEngineLogger * RadioEngineUtils::Logger(void) - ?NewL@CRadioSystemEventCollector@@SAPAV1@XZ @ 18 NONAME ; class CRadioSystemEventCollector * CRadioSystemEventCollector::NewL(void) - ?Logger@MRadioEngineLogger@@SAPAV1@XZ @ 19 NONAME ; class MRadioEngineLogger * MRadioEngineLogger::Logger(void) - ?Release@RadioEngineUtils@@SAXXZ @ 20 NONAME ; void RadioEngineUtils::Release(void) - ?DeleteAudioOutput@CRadioRoutableAudio@@IAEXXZ @ 21 NONAME ; void CRadioRoutableAudio::DeleteAudioOutput(void) - ?FormatFrequencyString@RadioEngineUtils@@SAXAAVTDes16@@KHAAVTDesC16@@@Z @ 22 NONAME ; void RadioEngineUtils::FormatFrequencyString(class TDes16 &, unsigned long, int, class TDesC16 &) - ?ValueInt@CRadioPropertyObserver@@QBEHXZ @ 23 NONAME ; int CRadioPropertyObserver::ValueInt(void) const - ?SetAudioRouteL@CRadioAudioRouter@@QAEXW4TRadioAudioRoute@RadioEngine@@@Z @ 24 NONAME ; void CRadioAudioRouter::SetAudioRouteL(enum RadioEngine::TRadioAudioRoute) - ?NewL@CRadioAudioRouter@@SAPAV1@AAVMRadioAudioRoutingObserver@@@Z @ 25 NONAME ; class CRadioAudioRouter * CRadioAudioRouter::NewL(class MRadioAudioRoutingObserver &) - ?FsSession@RadioEngineUtils@@SAAAVRFs@@XZ @ 26 NONAME ; class RFs & RadioEngineUtils::FsSession(void) - ?UnRegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 27 NONAME ; void CRadioAudioRouter::UnRegisterRoutableAudio(class CRadioRoutableAudio *) - ?AudioRoutingSupported@CRadioRoutableAudio@@QBEHXZ @ 28 NONAME ; int CRadioRoutableAudio::AudioRoutingSupported(void) const - ?NewL@CRadioPropertyObserver@@SAPAV1@AAVMRadioPropertyChangeObserver@@ABVTUid@@IW4TRadioPropertyType@1@@Z @ 29 NONAME ; class CRadioPropertyObserver * CRadioPropertyObserver::NewL(class MRadioPropertyChangeObserver &, class TUid const &, unsigned int, enum CRadioPropertyObserver::TRadioPropertyType) - ??0TRadioMethodLogger@@QAE@PBG0@Z @ 30 NONAME ; TRadioMethodLogger::TRadioMethodLogger(unsigned short const *, unsigned short const *) + ??1TRadioMethodLogger@@QAE@XZ @ 6 NONAME ; TRadioMethodLogger::~TRadioMethodLogger(void) + ??1CRadioRoutableAudio@@UAE@XZ @ 7 NONAME ; CRadioRoutableAudio::~CRadioRoutableAudio(void) + ?SetAudioOutput@CRadioRoutableAudio@@IAEXPAVCAudioOutput@@@Z @ 8 NONAME ; void CRadioRoutableAudio::SetAudioOutput(class CAudioOutput *) + ?RegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 9 NONAME ; void CRadioAudioRouter::RegisterRoutableAudio(class CRadioRoutableAudio *) + ?ValueDes@CRadioPropertyObserver@@QBEABVTDesC16@@XZ @ 10 NONAME ; class TDesC16 const & CRadioPropertyObserver::ValueDes(void) const + ??1CRadioSystemEventCollector@@UAE@XZ @ 11 NONAME ; CRadioSystemEventCollector::~CRadioSystemEventCollector(void) + ??1CRadioAudioRouter@@UAE@XZ @ 12 NONAME ; CRadioAudioRouter::~CRadioAudioRouter(void) + ?ActivateL@CRadioPropertyObserver@@QAEXXZ @ 13 NONAME ; void CRadioPropertyObserver::ActivateL(void) + ?Logger@RadioEngineUtils@@SAPAVMRadioEngineLogger@@XZ @ 14 NONAME ; class MRadioEngineLogger * RadioEngineUtils::Logger(void) + ?NewL@CRadioSystemEventCollector@@SAPAV1@XZ @ 15 NONAME ; class CRadioSystemEventCollector * CRadioSystemEventCollector::NewL(void) + ?Logger@MRadioEngineLogger@@SAPAV1@XZ @ 16 NONAME ; class MRadioEngineLogger * MRadioEngineLogger::Logger(void) + ?Release@RadioEngineUtils@@SAXXZ @ 17 NONAME ; void RadioEngineUtils::Release(void) + ?DeleteAudioOutput@CRadioRoutableAudio@@IAEXXZ @ 18 NONAME ; void CRadioRoutableAudio::DeleteAudioOutput(void) + ?ValueInt@CRadioPropertyObserver@@QBEHXZ @ 19 NONAME ; int CRadioPropertyObserver::ValueInt(void) const + ?SetAudioRouteL@CRadioAudioRouter@@QAEXW4TRadioAudioRoute@RadioEngine@@@Z @ 20 NONAME ; void CRadioAudioRouter::SetAudioRouteL(enum RadioEngine::TRadioAudioRoute) + ?FsSession@RadioEngineUtils@@SAAAVRFs@@XZ @ 21 NONAME ; class RFs & RadioEngineUtils::FsSession(void) + ?NewL@CRadioAudioRouter@@SAPAV1@AAVMRadioAudioRoutingObserver@@@Z @ 22 NONAME ; class CRadioAudioRouter * CRadioAudioRouter::NewL(class MRadioAudioRoutingObserver &) + ?UnRegisterRoutableAudio@CRadioAudioRouter@@QAEXPAVCRadioRoutableAudio@@@Z @ 23 NONAME ; void CRadioAudioRouter::UnRegisterRoutableAudio(class CRadioRoutableAudio *) + ?AudioRoutingSupported@CRadioRoutableAudio@@QBEHXZ @ 24 NONAME ; int CRadioRoutableAudio::AudioRoutingSupported(void) const + ??0TRadioMethodLogger@@QAE@PBG0@Z @ 25 NONAME ; TRadioMethodLogger::TRadioMethodLogger(unsigned short const *, unsigned short const *) + ?NewL@CRadioPropertyObserver@@SAPAV1@AAVMRadioPropertyChangeObserver@@ABVTUid@@IW4TRadioPropertyType@1@@Z @ 26 NONAME ; class CRadioPropertyObserver * CRadioPropertyObserver::NewL(class MRadioPropertyChangeObserver &, class TUid const &, unsigned int, enum CRadioPropertyObserver::TRadioPropertyType) diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/stub/eabi/fmradioengineutils_stubu.def --- a/radioengine/utils/stub/eabi/fmradioengineutils_stubu.def Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/stub/eabi/fmradioengineutils_stubu.def Wed Aug 18 09:49:03 2010 +0300 @@ -1,49 +1,41 @@ EXPORTS _ZN16RadioEngineUtils11InitializeLEv @ 1 NONAME - _ZN16RadioEngineUtils21FormatFrequencyStringER6TDes16miR7TDesC16 @ 2 NONAME - _ZN16RadioEngineUtils21ReadFrequencyStringLCEmii @ 3 NONAME - _ZN16RadioEngineUtils6LoggerEv @ 4 NONAME - _ZN16RadioEngineUtils7ReleaseEv @ 5 NONAME - _ZN16RadioEngineUtils9FsSessionEv @ 6 NONAME - _ZN17CRadioAudioRouter14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 7 NONAME - _ZN17CRadioAudioRouter21RegisterRoutableAudioEP19CRadioRoutableAudio @ 8 NONAME - _ZN17CRadioAudioRouter23UnRegisterRoutableAudioEP19CRadioRoutableAudio @ 9 NONAME - _ZN17CRadioAudioRouter4NewLER26MRadioAudioRoutingObserver @ 10 NONAME - _ZN17CRadioAudioRouterD0Ev @ 11 NONAME - _ZN17CRadioAudioRouterD1Ev @ 12 NONAME - _ZN17CRadioAudioRouterD2Ev @ 13 NONAME - _ZN18CRadioRemConTarget4NewLEv @ 14 NONAME - _ZN18MRadioEngineLogger6LoggerEv @ 15 NONAME - _ZN18TRadioMethodLoggerC1EPKtS1_ @ 16 NONAME - _ZN18TRadioMethodLoggerC2EPKtS1_ @ 17 NONAME - _ZN18TRadioMethodLoggerD1Ev @ 18 NONAME - _ZN18TRadioMethodLoggerD2Ev @ 19 NONAME - _ZN19CRadioRoutableAudio14SetAudioOutputEP12CAudioOutput @ 20 NONAME - _ZN19CRadioRoutableAudio14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 21 NONAME - _ZN19CRadioRoutableAudio17DeleteAudioOutputEv @ 22 NONAME - _ZN19CRadioRoutableAudioC1EP17CRadioAudioRouter @ 23 NONAME - _ZN19CRadioRoutableAudioC2EP17CRadioAudioRouter @ 24 NONAME - _ZN19CRadioRoutableAudioD0Ev @ 25 NONAME - _ZN19CRadioRoutableAudioD1Ev @ 26 NONAME - _ZN19CRadioRoutableAudioD2Ev @ 27 NONAME - _ZN22CRadioPropertyObserver4NewLER28MRadioPropertyChangeObserverRK4TUidjNS_18TRadioPropertyTypeE @ 28 NONAME - _ZN22CRadioPropertyObserver9ActivateLEv @ 29 NONAME - _ZN26CRadioRepositoryEntityBaseC2ERK4TUidmR30MRadioRepositoryEntityObserverN7CActive9TPriorityE @ 30 NONAME - _ZN26CRadioRepositoryEntityBaseD0Ev @ 31 NONAME - _ZN26CRadioRepositoryEntityBaseD1Ev @ 32 NONAME - _ZN26CRadioRepositoryEntityBaseD2Ev @ 33 NONAME - _ZN26CRadioSystemEventCollector4NewLEv @ 34 NONAME - _ZN26CRadioSystemEventCollectorD0Ev @ 35 NONAME - _ZN26CRadioSystemEventCollectorD1Ev @ 36 NONAME - _ZN26CRadioSystemEventCollectorD2Ev @ 37 NONAME - _ZNK19CRadioRoutableAudio21AudioRoutingSupportedEv @ 38 NONAME - _ZNK22CRadioPropertyObserver8ValueDesEv @ 39 NONAME - _ZNK22CRadioPropertyObserver8ValueIntEv @ 40 NONAME - _ZNK22CRadioPropertyObserver9ValueDes8Ev @ 41 NONAME - _ZTI15CRadioEngineTls @ 42 NONAME - _ZTI19CRadioRoutableAudio @ 43 NONAME - _ZTI26CRadioRepositoryEntityBase @ 44 NONAME - _ZTV15CRadioEngineTls @ 45 NONAME - _ZTV19CRadioRoutableAudio @ 46 NONAME - _ZTV26CRadioRepositoryEntityBase @ 47 NONAME + _ZN16RadioEngineUtils6LoggerEv @ 2 NONAME + _ZN16RadioEngineUtils7ReleaseEv @ 3 NONAME + _ZN16RadioEngineUtils9FsSessionEv @ 4 NONAME + _ZN17CRadioAudioRouter14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 5 NONAME + _ZN17CRadioAudioRouter21RegisterRoutableAudioEP19CRadioRoutableAudio @ 6 NONAME + _ZN17CRadioAudioRouter23UnRegisterRoutableAudioEP19CRadioRoutableAudio @ 7 NONAME + _ZN17CRadioAudioRouter4NewLER26MRadioAudioRoutingObserver @ 8 NONAME + _ZN17CRadioAudioRouterD0Ev @ 9 NONAME + _ZN17CRadioAudioRouterD1Ev @ 10 NONAME + _ZN17CRadioAudioRouterD2Ev @ 11 NONAME + _ZN18CRadioRemConTarget4NewLEv @ 12 NONAME + _ZN18MRadioEngineLogger6LoggerEv @ 13 NONAME + _ZN18TRadioMethodLoggerC1EPKtS1_ @ 14 NONAME + _ZN18TRadioMethodLoggerC2EPKtS1_ @ 15 NONAME + _ZN18TRadioMethodLoggerD1Ev @ 16 NONAME + _ZN18TRadioMethodLoggerD2Ev @ 17 NONAME + _ZN19CRadioRoutableAudio14SetAudioOutputEP12CAudioOutput @ 18 NONAME + _ZN19CRadioRoutableAudio14SetAudioRouteLEN11RadioEngine16TRadioAudioRouteE @ 19 NONAME + _ZN19CRadioRoutableAudio17DeleteAudioOutputEv @ 20 NONAME + _ZN19CRadioRoutableAudioC1EP17CRadioAudioRouter @ 21 NONAME + _ZN19CRadioRoutableAudioC2EP17CRadioAudioRouter @ 22 NONAME + _ZN19CRadioRoutableAudioD0Ev @ 23 NONAME + _ZN19CRadioRoutableAudioD1Ev @ 24 NONAME + _ZN19CRadioRoutableAudioD2Ev @ 25 NONAME + _ZN22CRadioPropertyObserver4NewLER28MRadioPropertyChangeObserverRK4TUidjNS_18TRadioPropertyTypeE @ 26 NONAME + _ZN22CRadioPropertyObserver9ActivateLEv @ 27 NONAME + _ZN26CRadioSystemEventCollector4NewLEv @ 28 NONAME + _ZN26CRadioSystemEventCollectorD0Ev @ 29 NONAME + _ZN26CRadioSystemEventCollectorD1Ev @ 30 NONAME + _ZN26CRadioSystemEventCollectorD2Ev @ 31 NONAME + _ZNK19CRadioRoutableAudio21AudioRoutingSupportedEv @ 32 NONAME + _ZNK22CRadioPropertyObserver8ValueDesEv @ 33 NONAME + _ZNK22CRadioPropertyObserver8ValueIntEv @ 34 NONAME + _ZNK22CRadioPropertyObserver9ValueDes8Ev @ 35 NONAME + _ZTI15CRadioEngineTls @ 36 NONAME + _ZTI19CRadioRoutableAudio @ 37 NONAME + _ZTV15CRadioEngineTls @ 38 NONAME + _ZTV19CRadioRoutableAudio @ 39 NONAME diff -r 11b6825f0862 -r 3a6b55c6390c radioengine/utils/stub/group/radioengineutils_stub.mmp --- a/radioengine/utils/stub/group/radioengineutils_stub.mmp Tue Jul 06 14:16:27 2010 +0300 +++ b/radioengine/utils/stub/group/radioengineutils_stub.mmp Wed Aug 18 09:49:03 2010 +0300 @@ -40,7 +40,6 @@ APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE /epoc32/include/remcon -SYSTEMINCLUDE /epoc32/include/internal SYSTEMINCLUDE /epoc32/include/mmf/common SYSTEMINCLUDE /epoc32/include/platform/mw @@ -51,7 +50,6 @@ SOURCE cradioaudiorouter.cpp SOURCE cradiopropertyobserver.cpp SOURCE cradioremcontarget.cpp -SOURCE cradiorepositoryentitybase.cpp SOURCE cradiosystemeventcollector.cpp SOURCE cradiosystemeventcollectorimp.cpp SOURCE cradiosystemeventdetector.cpp diff -r 11b6825f0862 -r 3a6b55c6390c radiohswidget/inc/radiohswidgetprofilereader.h --- a/radiohswidget/inc/radiohswidgetprofilereader.h Tue Jul 06 14:16:27 2010 +0300 +++ b/radiohswidget/inc/radiohswidgetprofilereader.h Wed Aug 18 09:49:03 2010 +0300 @@ -37,7 +37,7 @@ void startMonitoringRadioRunningStatus(); - bool isCurrentProfileOffline(); + bool isInOfflineMode(); public slots: void handleDeletedItem(const XQSettingsKey &key); diff -r 11b6825f0862 -r 3a6b55c6390c radiohswidget/src/radiohswidget.cpp --- a/radiohswidget/src/radiohswidget.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radiohswidget/src/radiohswidget.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -209,6 +209,7 @@ switch (status) { case RadioStatus::Playing: LOG("Playing"); + handleRadioStateChange(FmRadio::StateRunning); break; case RadioStatus::Muted: LOG("Muted"); @@ -240,11 +241,9 @@ // TODO: Remove comment when localisation is working on device. //frequencyString = hbTrId("txt_fmradiohswidget_rad_list_l1_mhz").arg(freqString); bool frequencyCleared = false; - // If widget has some frequency information and new frequency - // differs from that - if (mRadioInformation.contains(Frequency) - && mRadioInformation[Frequency].compare(information.toString()) != 0) { - // Clear all infromation from widget because station has changed. + + if (mRadioInformation.contains(Frequency)) { + // Clear all infromation. clearRadioInformation(); frequencyCleared = true; } @@ -254,6 +253,7 @@ if (frequencyCleared || frequencyUpdated) { // Information changed, update the UI. changeInRadioInformation(); + mFmRadioState = FmRadio::StateRunning; } } break; @@ -339,6 +339,7 @@ // Stop timer if it is running because radio is now running. mRadioServiceClient->startMonitoring( FmRadio::VisibiltyDoNotChange); + changeInRadioInformation(); changePowerButtonOn(true); enableStationButtons(); changeInformationAreaLayout(OneRow); @@ -346,7 +347,6 @@ case FmRadio::StateSeeking: LOG("FmRadio::StateSeeking"); mFmRadioState = FmRadio::StateSeeking; - mFavoriteStationCount = FAVORITE_STATION_COUNT_UNDEFINED; mCurrentStationIsFavorite = false; enableStationButtons(); changeInformationAreaLayout(Animation); @@ -354,7 +354,6 @@ case FmRadio::StateAntennaNotConnected: LOG("FmRadio::StateAntennaNotConnected"); mFmRadioState = FmRadio::StateAntennaNotConnected; - mFavoriteStationCount = FAVORITE_STATION_COUNT_UNDEFINED; mCurrentStationIsFavorite = false; enableStationButtons(); mInformationFirstRowLabel->setPlainText(""); @@ -909,7 +908,12 @@ void RadioHsWidget::enableStationButtons() { LEVEL2(LOG_METHOD_ENTER); - if ((mFavoriteStationCount > 1) || (mFavoriteStationCount == 1 + LOG_FORMAT("RadioHsWidget::enableStationButtons count: %d", mFavoriteStationCount); + if (mFmRadioState == FmRadio::StateAntennaNotConnected){ + changeButtonToDisabled(Next); + changeButtonToDisabled(Previous); + } + else if ((mFavoriteStationCount > 1) || (mFavoriteStationCount == 1 && !mCurrentStationIsFavorite)) { changeButtonToEnabled(Next); changeButtonToEnabled(Previous); @@ -1081,7 +1085,7 @@ // starting the radio is allowed in other profiles without asking a // permission. bool radioStartPermssion = true; - if (mProfileMonitor->isCurrentProfileOffline()) { + if (mProfileMonitor->isInOfflineMode()) { // Device is in offline profile, ask the user for permission to start HbDeviceMessageBox box(hbTrId( "txt_fmradiohswidget_rad_info_activate_radio_in_offline_mode_hs"), diff -r 11b6825f0862 -r 3a6b55c6390c radiohswidget/src/radiohswidgetprofilereader.cpp --- a/radiohswidget/src/radiohswidgetprofilereader.cpp Tue Jul 06 14:16:27 2010 +0300 +++ b/radiohswidget/src/radiohswidgetprofilereader.cpp Wed Aug 18 09:49:03 2010 +0300 @@ -17,9 +17,6 @@ // System includes #include -// TODO: Profile information should be accessed from QtMobility when it is -// ready. -#include #include "xqsettingsmanager.h" #include "xqsettingskey.h" #include "xqpublishandsubscribeutils.h" @@ -28,13 +25,12 @@ #include "radiohswidgetprofilereader.h" #include "radiohswidget.h" #include "radioservicedef.h" +#include "radio_global.h" #include "radiologger.h" // Constants /** Constant for radio running undefined status. */ const int RADIO_RUNNING_STATUS_UNDEFINED(-1); -/** Constant for Off-line profile. */ -const int OFFLINE_PROFILE(5); /*! \class RadioHsWidgetProfileReader @@ -92,19 +88,21 @@ } /*! - Reads the current profile of the device and \returns \c true if the - current profile is offline, \c false otherwise. + Checks if device is in offline mode and \returns \c true if it is + and \c false if not. */ -bool RadioHsWidgetProfileReader::isCurrentProfileOffline() +bool RadioHsWidgetProfileReader::isInOfflineMode() { LOG_METHOD_RET("%d"); - XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository, - KCRUidProfileEngine.iUid, KProEngActiveProfile); + XQSettingsKey connectionKey( XQSettingsKey::TargetCentralRepository, + CENREP_CORE_APPLICATION_UIS, ID_NETWORK_CONNECTION_ALLOWED ); + // Read current value. - QVariant profile(mSettingsManager->readItemValue(profileKey)); - if (profile.canConvert(QVariant::Int) && profile.toInt() == OFFLINE_PROFILE) { + const QVariant connectionAllowed = mSettingsManager->readItemValue( connectionKey ); + if ( connectionAllowed.canConvert( QVariant::Int ) && connectionAllowed.toInt() == NetworkNotAllowed ) { return true; } + return false; } diff -r 11b6825f0862 -r 3a6b55c6390c rom/bld.inf --- a/rom/bld.inf Tue Jul 06 14:16:27 2010 +0300 +++ b/rom/bld.inf Wed Aug 18 09:49:03 2010 +0300 @@ -25,6 +25,6 @@ #ifdef MARM START EXTENSION app-services/buildstubsis OPTION SRCDIR . - OPTION SISNAME qtfmradio_stub + OPTION SISNAME fmradio_stub END #endif diff -r 11b6825f0862 -r 3a6b55c6390c rom/fmradio_stub.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rom/fmradio_stub.pkg Wed Aug 18 09:49:03 2010 +0300 @@ -0,0 +1,27 @@ +; +; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http://www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: Stub package file for FMRadio +; + +; Languages +&EN + +; Header +#{"fmradio"}, (0x2002FF53), 1, 0, 0, TYPE=SA + +; Localised Vendor name +%{"Nokia"} + +; Unique Vendor name +:"Nokia" \ No newline at end of file diff -r 11b6825f0862 -r 3a6b55c6390c rom/qtfmradio_stub.pkg --- a/rom/qtfmradio_stub.pkg Tue Jul 06 14:16:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -; -; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -; All rights reserved. -; This component and the accompanying materials are made available -; under the terms of "Eclipse Public License v1.0" -; which accompanies this distribution, and is available -; at the URL "http://www.eclipse.org/legal/epl-v10.html". -; -; Initial Contributors: -; Nokia Corporation - initial contribution. -; -; Contributors: -; -; Description: Stub package file for FMRadio -; - -; Languages -&EN - -; Header -#{"fmradio"}, (0x2002FF53), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" \ No newline at end of file