201031
authorhgs
Fri, 06 Aug 2010 09:29:48 +0300
changeset 39 ac7857bd5fdb
parent 38 f8c3d4e6102c
child 44 0a3ad94fc71c
201031
common/radio_global.h
radioapp/bwins/fmradiowidgetsu.def
radioapp/eabi/fmradiowidgetsu.def
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/radiowidgets.pro
radioapp/radiowidgets/src/radiofrequencyitem.cpp
radioapp/radiowidgets/src/radiofrequencyscanner.cpp
radioapp/radiowidgets/src/radiofrequencystrip.cpp
radioapp/radiowidgets/src/radiofrequencystripbase.cpp
radioapp/radiowidgets/src/radiomainview.cpp
radioapp/radiowidgets/src/radiostripbase.cpp
radioengine/settings/stub/group/radioenginesettings_stub.mmp
radioengine/settings/tsrc/group/SettingsTestModule.mmp
radioengine/settings/tsrc/group/SettingsTestModule_nrm.mmp
radioengine/utils/group/radioengineutils.mmp
radioengine/utils/src/cradioaccessoryobserver.cpp
radioengine/utils/src/cradiosystemeventdetector.cpp
radioengine/utils/stub/bwins/fmradioengineutils_stubu.def
radioengine/utils/stub/eabi/fmradioengineutils_stubu.def
radioengine/utils/stub/group/radioengineutils_stub.mmp
--- a/common/radio_global.h	Fri Jul 23 10:16:59 2010 +0300
+++ b/common/radio_global.h	Fri Aug 06 09:29:48 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
  */
@@ -113,16 +111,6 @@
     };
 }
 
-namespace Scroll
-{
-    enum Direction
-    {
-        Shortest,
-        Left,
-        Right
-    };
-}
-
 namespace StationSkip
 {
     enum Mode
--- a/radioapp/bwins/fmradiowidgetsu.def	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/bwins/fmradiowidgetsu.def	Fri Aug 06 09:29:48 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 &)
-	?makeTab@RadioFrequencyStrip@@AAE?AVQLineF@@MH@Z @ 30 NONAME ; class QLineF RadioFrequencyStrip::makeTab(float, int)
-	?frequencyChanged@RadioFrequencyStrip@@IAEXIHH@Z @ 31 NONAME ; void RadioFrequencyStrip::frequencyChanged(unsigned int, int, int)
-	?setAutoScrollTime@RadioStationCarousel@@QAEXH@Z @ 32 NONAME ; void RadioStationCarousel::setAutoScrollTime(int)
-	?prevIndex@RadioStationCarousel@@AAEHH@Z @ 33 NONAME ; int RadioStationCarousel::prevIndex(int)
-	?trUtf8@RadioStationCarousel@@SA?AVQString@@PBD0@Z @ 34 NONAME ; class QString RadioStationCarousel::trUtf8(char const *, char const *)
-	?tr@RadioStationCarousel@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString RadioStationCarousel::tr(char const *, char const *)
-	?skip@RadioStationCarousel@@AAEXW4Mode@StationSkip@@@Z @ 36 NONAME ; void RadioStationCarousel::skip(enum StationSkip::Mode)
-	?selectorPos@RadioFrequencyStrip@@ABEHXZ @ 37 NONAME ; int RadioFrequencyStrip::selectorPos(void) const
-	??1RadioWindow@@UAE@XZ @ 38 NONAME ; RadioWindow::~RadioWindow(void)
-	?skipRequested@RadioFrequencyStrip@@IAEXH@Z @ 39 NONAME ; void RadioFrequencyStrip::skipRequested(int)
-	?setText@RadioFadingLabel@@QAEXABVQString@@@Z @ 40 NONAME ; void RadioFadingLabel::setText(class QString const &)
-	?showEvent@RadioStationCarousel@@EAEXPAVQShowEvent@@@Z @ 41 NONAME ; void RadioStationCarousel::showEvent(class QShowEvent *)
-	?mousePressEvent@RadioStationCarousel@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 42 NONAME ; void RadioStationCarousel::mousePressEvent(class QGraphicsSceneMouseEvent *)
-	?trUtf8@RadioFrequencyStrip@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString RadioFrequencyStrip::trUtf8(char const *, char const *)
-	?handleScrollingEnd@RadioFrequencyStrip@@AAEXXZ @ 44 NONAME ; void RadioFrequencyStrip::handleScrollingEnd(void)
-	?activateView@RadioWindow@@AAEXPAVRadioViewBase@@ABVQString@@V?$QFlags@W4ViewSwitchFlag@Hb@@@@@Z @ 45 NONAME ; void RadioWindow::activateView(class RadioViewBase *, class QString const &, class QFlags<enum Hb::ViewSwitchFlag>)
-	?calculateDifference@RadioStationCarousel@@AAEHHAAW4Direction@Scroll@@@Z @ 46 NONAME ; int RadioStationCarousel::calculateDifference(int, enum Scroll::Direction &)
-	?orientationSection@RadioWindow@@QAE?AVQString@@XZ @ 47 NONAME ; class QString RadioWindow::orientationSection(void)
-	?updateStation@RadioFrequencyStrip@@AAEXABVQModelIndex@@HH@Z @ 48 NONAME ; void RadioFrequencyStrip::updateStation(class QModelIndex const &, int, int)
-	??1RadioFrequencyStrip@@UAE@XZ @ 49 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(void)
-	?setItemHeight@RadioFrequencyStrip@@QAEXH@Z @ 50 NONAME ; void RadioFrequencyStrip::setItemHeight(int)
-	?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)
-	?showButtons@RadioFrequencyStrip@@AAEXXZ @ 130 NONAME ; void RadioFrequencyStrip::showButtons(void)
-	?uiEngine@RadioStationCarousel@@QAEPAVRadioUiEngine@@XZ @ 131 NONAME ; class RadioUiEngine * RadioStationCarousel::uiEngine(void)
-	?trUtf8@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 132 NONAME ; class QString RadioFadingLabel::trUtf8(char const *, char const *, int)
-	?activateMainView@RadioWindow@@QAEXXZ @ 133 NONAME ; void RadioWindow::activateMainView(void)
-	?setScanningMode@RadioStationCarousel@@QAEX_N@Z @ 134 NONAME ; void RadioStationCarousel::setScanningMode(bool)
-	??1RadioFadingLabel@@UAE@XZ @ 135 NONAME ; RadioFadingLabel::~RadioFadingLabel(void)
-	?setNonFavoriteIcon@RadioStationCarousel@@QAEXABVHbIcon@@@Z @ 136 NONAME ; void RadioStationCarousel::setNonFavoriteIcon(class HbIcon const &)
-	?isInScanningMode@RadioStationCarousel@@QBE_NXZ @ 137 NONAME ; bool RadioStationCarousel::isInScanningMode(void) const
-	?isAntennaAttached@RadioStationCarousel@@QBE_NXZ @ 138 NONAME ; bool RadioStationCarousel::isAntennaAttached(void) const
-	?activateStationsView@RadioWindow@@QAEXXZ @ 139 NONAME ; void RadioWindow::activateStationsView(void)
-	?removeStation@RadioFrequencyStrip@@AAEXABVQModelIndex@@HH@Z @ 140 NONAME ; void RadioFrequencyStrip::removeStation(class QModelIndex const &, int, int)
-	?tr@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 141 NONAME ; class QString RadioStationCarousel::tr(char const *, char const *, int)
-	?trimIndex@RadioStationCarousel@@AAEHH@Z @ 142 NONAME ; int RadioStationCarousel::trimIndex(int)
-	?frequencyChanged@RadioStationCarousel@@IAEXIHH@Z @ 143 NONAME ; void RadioStationCarousel::frequencyChanged(unsigned int, int, int)
-	?setAlternateSkippingMode@RadioStationCarousel@@QAEX_N@Z @ 144 NONAME ; void RadioStationCarousel::setAlternateSkippingMode(bool)
-	?initView@RadioWindow@@AAEXXZ @ 145 NONAME ; void RadioWindow::initView(void)
-	?gestureEvent@RadioFrequencyStrip@@EAEXPAVQGestureEvent@@@Z @ 146 NONAME ; void RadioFrequencyStrip::gestureEvent(class QGestureEvent *)
-	?trUtf8@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 147 NONAME ; class QString RadioStationCarousel::trUtf8(char const *, char const *, int)
-	?handleLongLeftButton@RadioFrequencyStrip@@AAEXXZ @ 148 NONAME ; void RadioFrequencyStrip::handleLongLeftButton(void)
-	?hideButtons@RadioFrequencyStrip@@AAEXXZ @ 149 NONAME ; void RadioFrequencyStrip::hideButtons(void)
-	?emitFrequencyChanged@RadioFrequencyStrip@@AAEXI@Z @ 150 NONAME ; void RadioFrequencyStrip::emitFrequencyChanged(unsigned int)
-	?handleLeftButton@RadioFrequencyStrip@@AAEXXZ @ 151 NONAME ; void RadioFrequencyStrip::handleLeftButton(void)
-	??_ERadioFadingLabel@@UAE@I@Z @ 152 NONAME ; RadioFadingLabel::~RadioFadingLabel(unsigned int)
-	?cancelManualSeek@RadioFrequencyStrip@@QAEXXZ @ 153 NONAME ; void RadioFrequencyStrip::cancelManualSeek(void)
-	?init@RadioWindow@@QAEXXZ @ 154 NONAME ; void RadioWindow::init(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)
-	?setLandscape@RadioStationCarousel@@QAEX_N@Z @ 163 NONAME ; void RadioStationCarousel::setLandscape(bool)
+	?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/fmradiowidgetsu.def	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/eabi/fmradiowidgetsu.def	Fri Aug 06 09:29:48 2010 +0300
@@ -31,139 +31,106 @@
 	_ZN16RadioFadingLabel8trimHtmlERK7QString @ 30 NONAME
 	_ZN16RadioFadingLabelC1EP13QGraphicsItem @ 31 NONAME
 	_ZN16RadioFadingLabelC2EP13QGraphicsItem @ 32 NONAME
-	_ZN19RadioFrequencyStrip10drawPixmapEj5QListI12RadioStationEP18RadioFrequencyItem @ 33 NONAME
-	_ZN19RadioFrequencyStrip10timerEventEP11QTimerEvent @ 34 NONAME
-	_ZN19RadioFrequencyStrip10updateItemEP18RadioFrequencyItemjj @ 35 NONAME
-	_ZN19RadioFrequencyStrip11changeEventEP6QEvent @ 36 NONAME
-	_ZN19RadioFrequencyStrip11hideButtonsEv @ 37 NONAME
-	_ZN19RadioFrequencyStrip11initButtonsEv @ 38 NONAME
-	_ZN19RadioFrequencyStrip11qt_metacallEN11QMetaObject4CallEiPPv @ 39 NONAME
-	_ZN19RadioFrequencyStrip11qt_metacastEPKc @ 40 NONAME
-	_ZN19RadioFrequencyStrip11resizeEventEP25QGraphicsSceneResizeEvent @ 41 NONAME
-	_ZN19RadioFrequencyStrip11showButtonsEv @ 42 NONAME
-	_ZN19RadioFrequencyStrip12gestureEventEP13QGestureEvent @ 43 NONAME
-	_ZN19RadioFrequencyStrip12initSelectorEv @ 44 NONAME
-	_ZN19RadioFrequencyStrip12setFrequencyEjiN6Scroll9DirectionE @ 45 NONAME
-	_ZN19RadioFrequencyStrip13initPositionsEv @ 46 NONAME
-	_ZN19RadioFrequencyStrip13removeStationERK11QModelIndexii @ 47 NONAME
-	_ZN19RadioFrequencyStrip13seekRequestedEi @ 48 NONAME
-	_ZN19RadioFrequencyStrip13setItemHeightEi @ 49 NONAME
-	_ZN19RadioFrequencyStrip13skipRequestedEi @ 50 NONAME
-	_ZN19RadioFrequencyStrip13updateStationERK11QModelIndexii @ 51 NONAME
-	_ZN19RadioFrequencyStrip14initEmptyItemsEv @ 52 NONAME
-	_ZN19RadioFrequencyStrip14updateAllItemsEv @ 53 NONAME
-	_ZN19RadioFrequencyStrip14updateFavoriteERK12RadioStation @ 54 NONAME
-	_ZN19RadioFrequencyStrip15addFrequencyPosEijP18RadioFrequencyItem @ 55 NONAME
-	_ZN19RadioFrequencyStrip15mousePressEventEP24QGraphicsSceneMouseEvent @ 56 NONAME
-	_ZN19RadioFrequencyStrip15setScanningModeEb @ 57 NONAME
-	_ZN19RadioFrequencyStrip16cancelManualSeekEv @ 58 NONAME
-	_ZN19RadioFrequencyStrip16frequencyChangedEjii @ 59 NONAME
-	_ZN19RadioFrequencyStrip16handleLeftButtonEv @ 60 NONAME
-	_ZN19RadioFrequencyStrip16scrollPosChangedEv @ 61 NONAME
-	_ZN19RadioFrequencyStrip16staticMetaObjectE @ 62 NONAME DATA 16
-	_ZN19RadioFrequencyStrip16toggleManualSeekEv @ 63 NONAME
-	_ZN19RadioFrequencyStrip17addScannedStationERK12RadioStation @ 64 NONAME
-	_ZN19RadioFrequencyStrip17handleRightButtonEv @ 65 NONAME
-	_ZN19RadioFrequencyStrip17manualSeekChangedEb @ 66 NONAME
-	_ZN19RadioFrequencyStrip17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 67 NONAME
-	_ZN19RadioFrequencyStrip17scrollToFrequencyEjN6Scroll9DirectionEiN10TuneReason6ReasonE @ 68 NONAME
-	_ZN19RadioFrequencyStrip18handleScrollingEndEv @ 69 NONAME
-	_ZN19RadioFrequencyStrip19createItemPrimitiveEP13QGraphicsItem @ 70 NONAME
-	_ZN19RadioFrequencyStrip19getStaticMetaObjectEv @ 71 NONAME
-	_ZN19RadioFrequencyStrip19updateItemPrimitiveEP13QGraphicsItemi @ 72 NONAME
-	_ZN19RadioFrequencyStrip20emitFrequencyChangedEj @ 73 NONAME
-	_ZN19RadioFrequencyStrip20handleLongLeftButtonEv @ 74 NONAME
-	_ZN19RadioFrequencyStrip21handleLongRightButtonEv @ 75 NONAME
-	_ZN19RadioFrequencyStrip21updateStationsInRangeEiib @ 76 NONAME
-	_ZN19RadioFrequencyStrip4initEP13RadioUiEngineR13RadioUiLoader @ 77 NONAME
-	_ZN19RadioFrequencyStrip7makeTabEfi @ 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
-	_ZN20RadioStationCarousel12setLandscapeEb @ 167 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/radiowidgets/inc/radiofrequencyitem.h	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/inc/radiofrequencyitem.h	Fri Aug 06 09:29:48 2010 +0300
@@ -22,7 +22,6 @@
 #include <QPixmap>
 
 // Forward declarations
-class RadioFrequencyStrip;
 class QGraphicsPixmapItem;
 
 // Class declaration
--- a/radioapp/radiowidgets/inc/radiofrequencystrip.h	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/inc/radiofrequencystrip.h	Fri Aug 06 09:29:48 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	Fri Aug 06 09:29:48 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	Fri Aug 06 09:29:48 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	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/inc/radiostationcarousel.h	Fri Aug 06 09:29:48 2010 +0300
@@ -26,6 +26,7 @@
 // User includes
 #include "radiocarouselitemobserver.h"
 #include "radiowidgetsexport.h"
+#include "radiofrequencystripdef.h"
 #include "radio_global.h"
 
 // Forward declarations
--- a/radioapp/radiowidgets/inc/radioutil.h	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/inc/radioutil.h	Fri Aug 06 09:29:48 2010 +0300
@@ -23,6 +23,7 @@
 
 // User includes
 #include "radio_global.h"
+#include "radiofrequencystripdef.h"
 
 // Forward declarations
 class RadioFrequencyStrip;
--- a/radioapp/radiowidgets/radiowidgets.pro	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/radiowidgets.pro	Fri Aug 06 09:29:48 2010 +0300
@@ -43,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
@@ -60,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/src/radiofrequencyitem.cpp	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/src/radiofrequencyitem.cpp	Fri Aug 06 09:29:48 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	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/src/radiofrequencyscanner.cpp	Fri Aug 06 09:29:48 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	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/src/radiofrequencystrip.cpp	Fri Aug 06 09:29:48 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,685 +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 );
-// TODO: Remove this and uncomment the above line. This is a temporary workaround to get the strip to move
-    scrollContentsTo( QPointF( newPos, 0 ), 0 );
+    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	Fri Aug 06 09:29:48 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/radiomainview.cpp	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/src/radiomainview.cpp	Fri Aug 06 09:29:48 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 );
@@ -190,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()) );
@@ -422,7 +420,7 @@
  */
 void RadioMainView::handleFavoriteChange( const RadioStation& station )
 {
-    mFrequencyStrip->updateFavorite( station );
+    mFrequencyStrip->updateFavorite( station.frequency() );
     updateFavoriteButton();
 }
 
--- a/radioapp/radiowidgets/src/radiostripbase.cpp	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioapp/radiowidgets/src/radiostripbase.cpp	Fri Aug 06 09:29:48 2010 +0300
@@ -20,7 +20,6 @@
 
 // User includes
 #include "radiostripbase.h"
-#include "radiologger.h"
 
 // Constants
 
--- a/radioengine/settings/stub/group/radioenginesettings_stub.mmp	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/settings/stub/group/radioenginesettings_stub.mmp	Fri Aug 06 09:29:48 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	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/settings/tsrc/group/SettingsTestModule.mmp	Fri Aug 06 09:29:48 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	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/settings/tsrc/group/SettingsTestModule_nrm.mmp	Fri Aug 06 09:29:48 2010 +0300
@@ -39,7 +39,6 @@
 USERINCLUDE     ../../../utils/inc
 
 APP_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE           /epoc32/include/internal
 
 SOURCEPATH      ../src
 
--- a/radioengine/utils/group/radioengineutils.mmp	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/utils/group/radioengineutils.mmp	Fri Aug 06 09:29:48 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
 
--- a/radioengine/utils/src/cradioaccessoryobserver.cpp	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/utils/src/cradioaccessoryobserver.cpp	Fri Aug 06 09:29:48 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__
 
--- a/radioengine/utils/src/cradiosystemeventdetector.cpp	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/utils/src/cradiosystemeventdetector.cpp	Fri Aug 06 09:29:48 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,7 +85,7 @@
                                                         CRadioPropertyObserver::ERadioPropertyInt );
     iCallStatusObserver->ActivateL();
     iIsCallActive = iCallStatusObserver->ValueInt() != EPSCTsyCallStateNone;
-
+/*
 #ifndef __WINS__
     // Define audio types for not resuming.
     //TODO: Check these audio resume categories!
@@ -97,6 +98,7 @@
     iAudioPolicyObserver = CRadioPropertyObserver::NewL( *this, KPSUidMMFAudioServer, KAudioPolicyAudioClients, CRadioPropertyObserver::ERadioPropertyByteArray );
     iAudioPolicyObserver->ActivateL();
 #endif
+*/
     }
 
 // ---------------------------------------------------------------------------
--- a/radioengine/utils/stub/bwins/fmradioengineutils_stubu.def	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/utils/stub/bwins/fmradioengineutils_stubu.def	Fri Aug 06 09:29:48 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	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/utils/stub/eabi/fmradioengineutils_stubu.def	Fri Aug 06 09:29:48 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	Fri Jul 23 10:16:59 2010 +0300
+++ b/radioengine/utils/stub/group/radioengineutils_stub.mmp	Fri Aug 06 09:29:48 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