Revision: 201031
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:49:03 +0300
changeset 41 3a6b55c6390c
parent 33 11b6825f0862
child 48 e14766a36cdc
Revision: 201031 Kit: 201033
common/radio_global.h
radioapp/buildflags.pri
radioapp/bwins/fmradiouiengineu.def
radioapp/bwins/fmradiowidgetsu.def
radioapp/eabi/fmradiouiengineu.def
radioapp/eabi/fmradiowidgetsu.def
radioapp/radioapplication/inc/radioapplication.h
radioapp/radioapplication/radioapplication.pro
radioapp/radioapplication/src/radioapplication.cpp
radioapp/radioapplication/win32_stubs/qsysteminfo.h
radioapp/radioapplication/win32_stubs/win32_stubs.cpp
radioapp/radioapplication/win32_stubs/xqserviceprovider.h
radioapp/radioapplication/win32_stubs/xqserviceutil.h
radioapp/radioapplication/win32_stubs/xqsettingskey.h
radioapp/radioapplication/win32_stubs/xqsettingsmanager.h
radioapp/radioenginewrapper/src/radioenginehandler.cpp
radioapp/radioenginewrapper/src/radioenginewrapper.cpp
radioapp/radiopresetstorage/inc/radiostationif.h
radioapp/radiouiengine/inc/radiostation.h
radioapp/radiouiengine/inc/radiostation_p.h
radioapp/radiouiengine/inc/radiouiengine.h
radioapp/radiouiengine/src/radiocontrolservice.cpp
radioapp/radiouiengine/src/radiostation.cpp
radioapp/radiouiengine/src/radiostation_p.cpp
radioapp/radiouiengine/src/radiostationmodel.cpp
radioapp/radiouiengine/src/radiouiengine.cpp
radioapp/radiowidgets/inc/radiocarouselitem.h
radioapp/radiowidgets/inc/radiofrequencyitem.h
radioapp/radiowidgets/inc/radiofrequencystrip.h
radioapp/radiowidgets/inc/radiofrequencystripbase.h
radioapp/radiowidgets/inc/radiofrequencystripdef.h
radioapp/radiowidgets/inc/radiostationcarousel.h
radioapp/radiowidgets/inc/radioutil.h
radioapp/radiowidgets/inc/radiowindow.h
radioapp/radiowidgets/radiowidgets.pro
radioapp/radiowidgets/res/layout/historyview.docml
radioapp/radiowidgets/res/layout/mainview.docml
radioapp/radiowidgets/res/layout/radiocarouselitem.css
radioapp/radiowidgets/src/radiocarouselitem.cpp
radioapp/radiowidgets/src/radiofrequencyitem.cpp
radioapp/radiowidgets/src/radiofrequencyscanner.cpp
radioapp/radiowidgets/src/radiofrequencystrip.cpp
radioapp/radiowidgets/src/radiofrequencystripbase.cpp
radioapp/radiowidgets/src/radiohistoryview.cpp
radioapp/radiowidgets/src/radiomainview.cpp
radioapp/radiowidgets/src/radiostationcarousel.cpp
radioapp/radiowidgets/src/radiostationsview.cpp
radioapp/radiowidgets/src/radiostripbase.cpp
radioapp/radiowidgets/src/radioviewbase.cpp
radioapp/radiowidgets/src/radiowindow.cpp
radioengine/engine/inc/cradioengineimp.h
radioengine/engine/src/cradioengineimp.cpp
radioengine/engine/src/cradionetworkinfolistener.cpp
radioengine/engine/src/cradiordsreceiverbase.cpp
radioengine/settings/src/cradioenginesettings.cpp
radioengine/settings/src/cradioregion.cpp
radioengine/settings/src/cradiosettingsimp.cpp
radioengine/settings/stub/group/radioenginesettings_stub.mmp
radioengine/settings/tsrc/group/SettingsTestModule.mmp
radioengine/settings/tsrc/group/SettingsTestModule_nrm.mmp
radioengine/settings/tsrc/src/SettingsTestModuleBlocks.cpp
radioengine/utils/api/cradioaudiorouter.h
radioengine/utils/api/cradiorepositoryentity.h
radioengine/utils/api/cradiorepositoryentity.inl
radioengine/utils/api/cradiorepositoryentitybase.h
radioengine/utils/api/cradiorepositorymanager.h
radioengine/utils/api/mradiorepositoryentityobserver.h
radioengine/utils/api/radioengineutils.h
radioengine/utils/bwins/fmradioengineutilsu.def
radioengine/utils/eabi/fmradioengineutilsu.def
radioengine/utils/group/radioengineutils.mmp
radioengine/utils/inc/cradiopropertyobserver.h
radioengine/utils/inc/cradiosystemeventdetector.h
radioengine/utils/src/cradioaccessoryobserver.cpp
radioengine/utils/src/cradioaudiorouter.cpp
radioengine/utils/src/cradioremcontargetimp.cpp
radioengine/utils/src/cradiorepositoryentitybase.cpp
radioengine/utils/src/cradiosystemeventcollectorimp.cpp
radioengine/utils/src/cradiosystemeventdetector.cpp
radioengine/utils/src/radioengineutils.cpp
radioengine/utils/stub/bwins/fmradioengineutils_stubu.def
radioengine/utils/stub/eabi/fmradioengineutils_stubu.def
radioengine/utils/stub/group/radioengineutils_stub.mmp
radiohswidget/inc/radiohswidgetprofilereader.h
radiohswidget/src/radiohswidget.cpp
radiohswidget/src/radiohswidgetprofilereader.cpp
rom/bld.inf
rom/fmradio_stub.pkg
rom/qtfmradio_stub.pkg
--- 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
     };
 }
 
--- 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 {
--- 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<class RadioStation> 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<class RadioScannerEngine> 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<enum RadioStation::TypeFlag>)
-	?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<class RadioStation> 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<class RadioScannerEngine> 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<enum RadioStation::TypeFlag>)
+	?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<unsigned int, class RadioStation> 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<enum Qt::ItemFlag> 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<class RadioStation> 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<class RadioHistoryItemPrivate> & 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<enum Qt::ItemFlag> 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<class RadioStation> 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<class RadioHistoryItemPrivate> & 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<enum RadioStation::TypeFlag>)
-	??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<enum RadioStation::ChangeFlag> 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<enum RadioStationModel::DetailFlag>)
-	??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<enum RadioStation::TypeFlag>) 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<enum RadioStation::ChangeFlag>) 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<class QModelIndex> 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<enum RadioStation::TypeFlag>)
+	??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<enum RadioStation::ChangeFlag> 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<enum RadioStationModel::DetailFlag>)
+	??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<enum RadioStation::TypeFlag>) 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<enum RadioStation::ChangeFlag>) 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<class QModelIndex> 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 &)
 
--- 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<enum RadioStationCarousel::ScrollFlag>)
-	?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<struct FrequencyStrip::StationMarker> 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<enum RadioStationCarousel::ScrollFlag>)
+	?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<enum Hb::ViewSwitchFlag>)
-	?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<enum RadioStationCarousel::ScrollFlag>)
-	?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 RadioStation>, 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<enum Hb::ViewSwitchFlag>)
+	?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<enum RadioStationCarousel::ScrollFlag>)
+	?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)
 
--- 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
 
--- 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
 
--- 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<Win32Window>     mWin32Window;
+    QScopedPointer<Win32Window>         mWin32Window;
 #endif // BUILD_WIN32
 
     /**
      * Application main window
      * Own
      */
-    QScopedPointer<RadioWindow> mMainWindow;
+    QScopedPointer<RadioWindow>         mMainWindow;
+
+    /**
+     * Pointer to settings manager
+     * Own.
+     */
+    XQSettingsManager*                  mSettingsManager;
 
 };
 
--- 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
--- 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 <QTimer>
-#include <qsysteminfo.h>
 #include <HbDeviceMessageBox>
+#include <xqsettingsmanager.h>
+#include <xqsettingskey.h>
 #include <xqserviceutil.h>
 #include <HbSplashScreen>
 
@@ -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<QtMobility::QSystemDeviceInfo> 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<HbDeviceMessageBox*>( 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();
+}
--- /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 <QObject>
+
+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 
--- /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;
+}
--- /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 <QObject>
+#include <QString>
+#include <QVariant>
+#include <QSet>
+#include <QStringList>
+
+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<int> clientCapabilities() const { return QSet<int>(); }
+    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 <typename T> 
+    inline bool completeRequest(int index, const T& retValue)
+    {
+        QVariant retValueVariant;        
+        retValueVariant.setValue(retValue);
+        return completeRequest(index, retValueVariant);
+    }
+    
+};
+
+#endif
--- /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 <QString>
+
+// 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
--- /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
--- /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 <QObject>
+#include <QVariant>
+
+//#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
--- 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"
--- 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 );
 }
 
 /*!
--- 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;
+
 };
 
 
--- 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:
 
--- 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_
--- 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 );
--- 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:
--- 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;
--- 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 );
+}
--- 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<RadioStationIf*>( 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: <font color='cyan'>The Presidents of the United States of America</font> - <font color='cyan'>Dune Buggy and diipa daapa jhkjhui erjlkej rewjtl</font>" );
+                } 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<RadioStationIf*>( station.data_ptr() )->setStationHasSentRds( true );
+                }
+
                 d->mStations.insert( station.frequency(), station );
             } else {
                 LOG( "RadioStationModel::initialize: Invalid station!" );
--- 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 );
 }
 
 /*!
--- 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;
 
 };
--- 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 <QPixmap>
 
 // Forward declarations
-class RadioFrequencyStrip;
 class QGraphicsPixmapItem;
 
 // Class declaration
--- 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 <QMap>
-#include <QHash>
-#include <HbEffect>
-#include <QColor>
+#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<RadioStation> 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<RadioStation> 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<FrequencyStrip::StationMarker> 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<RadioFrequencyItem*>  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<uint,FrequencyPos>     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<int,uint>             mPositions;
-
-    HbPushButton*               mLeftButton;
-
-    HbPushButton*               mRightButton;
-
-    QTimer*                     mManualSeekTimer;
-
-    bool                        mManualSeekMode;
-
-    uint                        mLastReportedFrequency;
-
-    int                         mManualSeekTimerId;
-
-    QColor                      mForegroundColor;
-
 };
 
-#endif // FREQUENCYSTRIP_H
+#endif // RADIOFREQUENCYSTRIP_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 <QMap>
+#include <QHash>
+#include <HbEffect>
+#include <QColor>
+
+// 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<FrequencyStrip::StationMarker> 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<FrequencyStrip::StationMarker> 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<RadioFrequencyItem*>  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<uint,FrequencyPos>     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<int,uint>             mPositions;
+
+    HbPushButton*               mLeftButton;
+
+    HbPushButton*               mRightButton;
+
+    QTimer*                     mManualSeekTimer;
+
+    bool                        mManualSeekMode;
+
+    uint                        mLastReportedFrequency;
+
+    int                         mManualSeekTimerId;
+
+    QColor                      mForegroundColor;
+
+};
+
+#endif // RADIOFREQUENCYSTRIPBASE_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 <QLatin1String>
+#include <QFont>
+
+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
--- 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:
--- 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;
--- 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 <QWeakPointer>
 #include <QScopedPointer>
 #include <QSharedPointer>
-#include <qsysteminfo.h>
-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<HbMessageBox>        mMessageBox;
 
-    /**
-     * Pointer to qsystemdeviceinfo
-     * Own.
-     */
-    QScopedPointer<QSystemDeviceInfo>   mDeviceInfo;
-
 };
 
 
--- 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
--- 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 @@
                     <enums name="textWrapping" value="TextWordWrap"/>
                     <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
                     <sizehint height="320" type="PREFERRED" width="240"/>
-                    <string locid="txt_rad_info_recently_played_songs_collects_song2" name="plainText"/>
+                    <string locid="txt_rad_info_song_information_is_collected_automat" name="plainText"/>
                     <fontspec name="fontSpec" role="Title" textheight="33.5"/>
                 </widget>
                 <layout orientation="Vertical" spacing="var(hb-param-margin-gene-middle-vertical)" type="linear">
@@ -142,7 +142,7 @@
             <bool name="checked" value="FALSE"/>
         </object>
         <widget name="hv:empty_text">
-            <string locid="txt_rad_info_recently_played_songs_collects_song2" name="plainText"/>
+            <string locid="txt_rad_info_song_information_is_collected_automat" name="plainText"/>
         </widget>
         <widget name="hv:heading_banner">
             <string name="heading" locid="txt_rad_subhead_play_history" />
--- 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 @@
             </layout>
         </widget>
         <widget name="mv:frequency_area">
+            <sizehint height="10un" type="FIXED"/>
             <widget name="mv:frequency_strip" plugin="fmradiowidgetsplugin" type="RadioFrequencyStrip">
                 <contentsmargins left="var(hb-param-margin-gene-middle-horizontal)" right="var(hb-param-margin-gene-middle-horizontal)" />
                 <widget name="mv:prev_button" type="HbPushButton">
@@ -130,9 +131,6 @@
 
     <!-- Section to orient the view in portrait mode -->
     <section name="portrait">
-        <widget name="mv:frequency_area">
-            <sizehint height="10un" type="FIXED"/>
-        </widget>
         <widget name="mv:container">
             <layout type="anchor">
                 <anchoritem src="mv:info_area" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-var(hb-param-margin-gene-middle-vertical)" />
@@ -154,9 +152,6 @@
 
     <!-- Section to orient the view in landscape mode -->
     <section name="landscape">
-        <widget name="mv:frequency_area">
-            <sizehint height="8un" type="FIXED"/>
-        </widget>
         <widget name="mv:container">
             <layout type="anchor">
                 <anchoritem src="mv:info_area" srcEdge="TOP" dst="" dstEdge="TOP" spacing="-var(hb-param-margin-gene-middle-vertical)" />
--- 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;
--- 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 );
 }
-
--- 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 )
 {
 }
--- 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();
     }
 }
--- 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 <QPainter>
-#include <QStringListModel>
-#include <QGraphicsSceneResizeEvent>
-#include <QPen>
-#include <HbPushButton>
-#include <QTimer>
-#include <HbColorScheme>
-#include <HbEvent>
-#include <HbSwipeGesture>
-#include <HbDeviceProfile>
 
+// 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<int>( mItemHeight * deviceProfile.unitValue() );
-
-    mLeftButton = uiLoader.findWidget<HbPushButton>( DOCML::MV_NAME_PREV_BUTTON );
-    mRightButton = uiLoader.findWidget<HbPushButton>( 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<RadioStation> 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<QGraphicsPixmapItem*>( 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<HbSwipeGesture*>( 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<FrequencyStrip::StationMarker> 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<RadioStation> stations = mUiEngine->stationsInRange( minFrequency, maxFrequency );
+    QList<FrequencyStrip::StationMarker> 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<RadioStation>().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<RadioStation> 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<RadioStation> 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<RadioStation>().frequency();
 }
--- /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 <HbDocumentLoader>
+#include <HbEffect>
+#include <QPainter>
+#include <QStringListModel>
+#include <QGraphicsSceneResizeEvent>
+#include <QPen>
+#include <HbPushButton>
+#include <QTimer>
+#include <HbColorScheme>
+#include <HbEvent>
+#include <HbSwipeGesture>
+#include <HbDeviceProfile>
+#include <QDebug>
+
+// 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<int>( 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<HbPushButton*>( uiLoader.findWidget( leftButtonName ) );
+    mRightButton = qobject_cast<HbPushButton*>( 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<FrequencyStrip::StationMarker> 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<QGraphicsPixmapItem*>( 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<HbSwipeGesture*>( 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<FrequencyStrip::StationMarker> 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<FrequencyStrip::StationMarker> 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 );
+}
--- 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<HbAction>( DOCML::HV_NAME_ALL_SONGS_BUTTON );
     mTaggedSongsButton = mUiLoader->findObject<HbAction>( DOCML::HV_NAME_TAGGED_SONGS_BUTTON );
--- 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<RadioStationCarousel>( DOCML::MV_NAME_STATION_CAROUSEL );
     mCarousel->init( *mUiLoader, mUiEngine.data() );
+    mCarousel->setLandscape( mMainWindow->orientation() == Qt::Horizontal );
 
     mFrequencyStrip = mUiLoader->findObject<RadioFrequencyStrip>( 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();
 }
 
--- 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-" );
--- 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 );
 }
--- 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();
 }
 
--- 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 );
 }
 
 /*!
--- 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 )
--- 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 )
      *
--- 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; i<count; i++)
+    for ( TInt i = 0; i < count; ++i )
         {
-        MRadioEngineObserver * observer = iObservers[i];
+        MRadioEngineObserver* observer = iObservers[i];
 
         switch ( aRadioEvent )
             {
@@ -1251,23 +1271,10 @@
 
     iSeekingState = RadioEngine::ERadioNotSeeking;
 
-    if ( aFrequency == 0 ) {
+    if ( aFrequency == 0 )
+        {
         NotifyRadioEvent( ERadioEventFrequency, aError );
-    }
-
-//    if ( aError != KErrNone )
-//        {
-//        iFreqEventReason = RadioEngine::ERadioFrequencyEventReasonImplicit;
-//        NotifyRadioEvent( ERadioEventFrequency, KErrNone ); // Frequency change is not otherwise notified when seeking fails.
-//        }
-//    else
-//        {
-//        // sometimes frequency change is not reported even if seeking succeeds
-//        if ( !iFrequencySetByRdsAf )
-//            {
-//            NotifyRadioEvent( ERadioEventFrequency, KErrNone );
-//            }
-//        }
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -1412,12 +1419,14 @@
 void CRadioEngineImp::MrpoMuteChange( TBool aMute )
     {
     LEVEL3( LOG_METHOD_AUTO );
-    TBool muted = iSettings->EngineSettings().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" );
--- 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; i<phones && legalPhoneIndex == KErrNotFound; i++)
+    for ( TInt i=0; i<phones && legalPhoneIndex == KErrNotFound; ++i )
         {
         if ( telServer.GetPhoneInfo( i, phoneInfo ) == KErrNone )
             {
--- a/radioengine/engine/src/cradiordsreceiverbase.cpp	Tue Jul 06 14:16:27 2010 +0300
+++ b/radioengine/engine/src/cradiordsreceiverbase.cpp	Wed Aug 18 09:49:03 2010 +0300
@@ -130,7 +130,7 @@
     {
     LEVEL3( LOG_METHOD_AUTO );
     iAfEnabled = aEnable;
-    for ( TInt i = 0 ; i < iObservers.Count(); i++ )
+    for ( TInt i = 0; i < iObservers.Count(); ++i )
         {
         iObservers[i]->RdsAfSearchStateChange( iAfEnabled );
         }
--- 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);
--- 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());
--- 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;
     }
-
--- 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
--- 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
 
--- 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
 
--- 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;
--- 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
     {
--- 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 <typename T>
-NONSHARABLE_CLASS( CRadioRepositoryEntity ) : public CRadioRepositoryEntityBase
-    {
-
-public:
-
-    IMPORT_C static CRadioRepositoryEntity<T>* 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
--- 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 <centralrepository.h>
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-template <typename T>
-EXPORT_C CRadioRepositoryEntity<T>* CRadioRepositoryEntity<T>::NewL( const TUid& aUid,
-                                                            TUint32 aKey,
-                                                            MRadioRepositoryEntityObserver& aObserver,
-                                                            CActive::TPriority aPriority )
-    {
-    LEVEL3( LOG_METHOD_AUTO );
-    CRadioRepositoryEntity<T>* self = new ( ELeave ) CRadioRepositoryEntity<T>( aUid, aKey, aObserver, aPriority );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-template <typename T>
-CRadioRepositoryEntity<T>::CRadioRepositoryEntity( const TUid& aUid,
-                                                   TUint32 aKey,
-                                                   MRadioRepositoryEntityObserver& aObserver,
-                                                   CActive::TPriority aPriority )
-    : CRadioRepositoryEntityBase( aUid, aKey, aObserver, aPriority )
-    {
-    LEVEL3( LOG_METHOD_AUTO );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-template <typename T>
-void CRadioRepositoryEntity<T>::ConstructL()
-    {
-    LEVEL3( LOG_METHOD_AUTO );
-    iRepository = CRepository::NewL( iUid );
-
-    CActiveScheduler::Add( this );
-    iRepository->Get( iKey, iValue );
-    User::LeaveIfError( iRepository->NotifyRequest( iKey, iStatus ) );
-    SetActive();
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-template <typename T>
-EXPORT_C CRadioRepositoryEntity<T>::~CRadioRepositoryEntity()
-    {
-    LEVEL3( LOG_METHOD_AUTO );
-    Cancel();
-    delete iRepository;
-    }
-
-// -----------------------------------------------------------------------------
-// Sets the value of the key.
-// -----------------------------------------------------------------------------
-//
-template <typename T>
-TInt CRadioRepositoryEntity<T>::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 <typename T>
-const T& CRadioRepositoryEntity<T>::Value() const
-    {
-    LEVEL3( LOG_METHOD_AUTO );
-    return iValue;
-    }
-
-// -----------------------------------------------------------------------------
-// Forcibly updates the cached value from the repository.
-// -----------------------------------------------------------------------------
-//
-template <typename T>
-void CRadioRepositoryEntity<T>::UpdateL()
-    {
-    LEVEL3( LOG_METHOD_AUTO );
-    User::LeaveIfError( iRepository->Get( iKey, iValue ) );
-    }
-
-// -----------------------------------------------------------------------------
-// Executed when the key's value is changed.
-// -----------------------------------------------------------------------------
-//
-template <typename T>
-void CRadioRepositoryEntity<T>::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 <typename T>
-void CRadioRepositoryEntity<T>::DoCancel()
-    {
-    LEVEL3( LOG_METHOD_AUTO );
-    iRepository->NotifyCancel( iKey );
-    }
--- 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 <e32base.h>
-
-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
--- 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 <e32base.h>
-
-// 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<KRadioEntityBuf8Length> TRadioEntityBuf8;
-/** Maximum length string buffer. */
-typedef TBuf16<KRadioEntityBuf16Length> 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     <code>ETrue</code> if the entities are allowed to write their value to the repository, <code>EFalse</code> 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
--- 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
-
--- 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 <code>KErrNotFound</code> 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
--- 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)
 
--- 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
 
--- 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
--- 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;
 
     };
 
--- 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<TInt>                iNoAutoResumeAudioCategories;
 
     /** Indicator for audio resource status. */
--- 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 <accpolpropgenericid.h>
+//#include <accpolpropgenericid.h>
+#include <AccPolGenericIdDefinitions.h>
 
 #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 );
 
--- 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 );
         }
--- 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;
--- 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;
-    }
--- 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"
--- 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 <audiopolicypubsubdata.h>
-#include <audiosw_pubsubkeys.h>
+//#include <audiopolicypubsubdata.h>
+//#include <audiosw_pubsubkeys.h>
+#include <AudioClientsListPSKeys.h>
 
 #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<TInt>( 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 );
--- 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 <StringLoader.h>
-#include <utf.h>
 
 // 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<KDefaultRealWidth> freqText;
-    freqText.AppendNum( static_cast<TReal>( 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<KDefaultRealWidth> freqText;
-    freqText.AppendNum( static_cast<TReal>( 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 );
-        }
-    }
-
--- 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)
 
--- 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
 
--- 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
--- 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);
--- 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"),
--- 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 <QDateTime>
-// TODO: Profile information should be accessed from QtMobility when it is
-// ready.
-#include <ProfileEngineSDKCRKeys.h>
 #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;
 }
 
--- 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
--- /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
--- 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