# HG changeset patch # User hgs # Date 1281076188 -10800 # Node ID ac7857bd5fdb0ce4cec5319277f294ad6605cfec # Parent f8c3d4e6102c732f0c9deca1738804678b93cc1f 201031 diff -r f8c3d4e6102c -r ac7857bd5fdb common/radio_global.h --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/bwins/fmradiowidgetsu.def --- 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) - ?drawOffScreen@RadioStationCarousel@@QAEXAAVQPainter@@@Z @ 4 NONAME ; void RadioStationCarousel::drawOffScreen(class QPainter &) - ?updateItem@RadioFrequencyStrip@@AAEXPAVRadioFrequencyItem@@II@Z @ 5 NONAME ; void RadioFrequencyStrip::updateItem(class RadioFrequencyItem *, unsigned int, unsigned int) + ?stationsInRange@RadioFrequencyStrip@@EBE?AV?$QList@UStationMarker@FrequencyStrip@@@@II@Z @ 3 NONAME ; class QList RadioFrequencyStrip::stationsInRange(unsigned int, unsigned int) const + ?scrollToIndex@RadioStationCarousel@@AAEXHW4Direction@Scroll@@V?$QFlags@W4ScrollFlag@RadioStationCarousel@@@@@Z @ 4 NONAME ; void RadioStationCarousel::scrollToIndex(int, enum Scroll::Direction, class QFlags) + ?drawOffScreen@RadioStationCarousel@@QAEXAAVQPainter@@@Z @ 5 NONAME ; void RadioStationCarousel::drawOffScreen(class QPainter &) ?qt_metacast@RadioFadingLabel@@UAEPAXPBD@Z @ 6 NONAME ; void * RadioFadingLabel::qt_metacast(char const *) ?findStation@RadioStationCarousel@@EAE?AVRadioStation@@I@Z @ 7 NONAME ; class RadioStation RadioStationCarousel::findStation(unsigned int) ?animateNewStation@RadioStationCarousel@@QAEXABVRadioStation@@@Z @ 8 NONAME ; void RadioStationCarousel::animateNewStation(class RadioStation const &) @@ -11,155 +11,124 @@ ?gestureEvent@RadioStationCarousel@@EAEXPAVQGestureEvent@@@Z @ 10 NONAME ; void RadioStationCarousel::gestureEvent(class QGestureEvent *) ?setFavoriteIcon@RadioStationCarousel@@QAEXABVHbIcon@@@Z @ 11 NONAME ; void RadioStationCarousel::setFavoriteIcon(class HbIcon const &) ?update@RadioStationCarousel@@AAEXABVRadioStation@@@Z @ 12 NONAME ; void RadioStationCarousel::update(class RadioStation const &) - ?addFrequencyPos@RadioFrequencyStrip@@AAEXHIPAVRadioFrequencyItem@@@Z @ 13 NONAME ; void RadioFrequencyStrip::addFrequencyPos(int, unsigned int, class RadioFrequencyItem *) - ?trUtf8@RadioFadingLabel@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString RadioFadingLabel::trUtf8(char const *, char const *) - ?setScanningMode@RadioFrequencyStrip@@QAEX_N@Z @ 15 NONAME ; void RadioFrequencyStrip::setScanningMode(bool) - ?handleUrlClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 16 NONAME ; void RadioStationCarousel::handleUrlClicked(class RadioStation const &) - ?createItemPrimitive@RadioFrequencyStrip@@EAEPAVQGraphicsItem@@PAV2@@Z @ 17 NONAME ; class QGraphicsItem * RadioFrequencyStrip::createItemPrimitive(class QGraphicsItem *) - ?skipRequested@RadioStationCarousel@@IAEXH@Z @ 18 NONAME ; void RadioStationCarousel::skipRequested(int) - ?setTextWithoutFading@RadioFadingLabel@@QAEXABVQString@@@Z @ 19 NONAME ; void RadioFadingLabel::setTextWithoutFading(class QString const &) - ?updateAntennaStatus@RadioWindow@@AAEX_N@Z @ 20 NONAME ; void RadioWindow::updateAntennaStatus(bool) - ?handleIconClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 21 NONAME ; void RadioStationCarousel::handleIconClicked(class RadioStation const &) - ?resizeEvent@RadioFrequencyStrip@@EAEXPAVQGraphicsSceneResizeEvent@@@Z @ 22 NONAME ; void RadioFrequencyStrip::resizeEvent(class QGraphicsSceneResizeEvent *) - ?init@RadioFrequencyStrip@@QAEXPAVRadioUiEngine@@AAVRadioUiLoader@@@Z @ 23 NONAME ; void RadioFrequencyStrip::init(class RadioUiEngine *, class RadioUiLoader &) - ?initButtons@RadioFrequencyStrip@@AAEXXZ @ 24 NONAME ; void RadioFrequencyStrip::initButtons(void) - ?qt_metacall@RadioStationCarousel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int RadioStationCarousel::qt_metacall(enum QMetaObject::Call, int, void * *) - ?isInitialized@RadioStationCarousel@@ABE_NXZ @ 26 NONAME ; bool RadioStationCarousel::isInitialized(void) const - ?init@RadioStationCarousel@@QAEXAAVRadioUiLoader@@PAVRadioUiEngine@@@Z @ 27 NONAME ; void RadioStationCarousel::init(class RadioUiLoader &, class RadioUiEngine *) - ?manualSeekChanged@RadioFrequencyStrip@@IAEX_N@Z @ 28 NONAME ; void RadioFrequencyStrip::manualSeekChanged(bool) - ?scrollPosChanged@RadioStationCarousel@@AAEXABVQPointF@@@Z @ 29 NONAME ; void RadioStationCarousel::scrollPosChanged(class QPointF const &) - ?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) - ?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) - ?resizeEvent@RadioStationCarousel@@EAEXPAVQGraphicsSceneResizeEvent@@@Z @ 58 NONAME ; void RadioStationCarousel::resizeEvent(class QGraphicsSceneResizeEvent *) - ?scrollPosChanged@RadioFrequencyStrip@@EAEXXZ @ 59 NONAME ; void RadioFrequencyStrip::scrollPosChanged(void) - ?updateStations@RadioStationCarousel@@AAEXXZ @ 60 NONAME ; void RadioStationCarousel::updateStations(void) - ??_ERadioWindow@@UAE@I@Z @ 61 NONAME ; RadioWindow::~RadioWindow(unsigned int) - ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0@Z @ 62 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *) - ?initSelector@RadioFrequencyStrip@@AAEXXZ @ 63 NONAME ; void RadioFrequencyStrip::initSelector(void) - ?qt_metacall@RadioWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 64 NONAME ; int RadioWindow::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacall@RadioFrequencyStrip@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 65 NONAME ; int RadioFrequencyStrip::qt_metacall(enum QMetaObject::Call, int, void * *) - ?metaObject@RadioFrequencyStrip@@UBEPBUQMetaObject@@XZ @ 66 NONAME ; struct QMetaObject const * RadioFrequencyStrip::metaObject(void) const - ?startEffect@RadioFadingLabel@@AAEXABVQString@@PBD@Z @ 67 NONAME ; void RadioFadingLabel::startEffect(class QString const &, char const *) - ?setFrequency@RadioFrequencyStrip@@QAEXIHW4Direction@Scroll@@@Z @ 68 NONAME ; void RadioFrequencyStrip::setFrequency(unsigned int, int, enum Scroll::Direction) - ?activateHistoryView@RadioWindow@@QAEXXZ @ 69 NONAME ; void RadioWindow::activateHistoryView(void) - ??_ERadioStationCarousel@@UAE@I@Z @ 70 NONAME ; RadioStationCarousel::~RadioStationCarousel(unsigned int) - ?initPositions@RadioFrequencyStrip@@AAEXXZ @ 71 NONAME ; void RadioFrequencyStrip::initPositions(void) - ?tr@RadioFadingLabel@@SA?AVQString@@PBD0@Z @ 72 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *) - ?getStaticMetaObject@RadioFadingLabel@@SAABUQMetaObject@@XZ @ 73 NONAME ; struct QMetaObject const & RadioFadingLabel::getStaticMetaObject(void) - ?itemHeight@RadioFrequencyStrip@@QBEHXZ @ 74 NONAME ; int RadioFrequencyStrip::itemHeight(void) const - ?setManualSeekMode@RadioStationCarousel@@QAEX_N@Z @ 75 NONAME ; void RadioStationCarousel::setManualSeekMode(bool) - ?qt_metacast@RadioWindow@@UAEPAXPBD@Z @ 76 NONAME ; void * RadioWindow::qt_metacast(char const *) - ?trimHtml@RadioFadingLabel@@AAE?AVQString@@ABV2@@Z @ 77 NONAME ; class QString RadioFadingLabel::trimHtml(class QString const &) - ?tr@RadioWindow@@SA?AVQString@@PBD0@Z @ 78 NONAME ; class QString RadioWindow::tr(char const *, char const *) - ?favoriteIcon@RadioStationCarousel@@UBE?AVHbIcon@@XZ @ 79 NONAME ; class HbIcon RadioStationCarousel::favoriteIcon(void) const - ?mouseReleaseEvent@RadioFrequencyStrip@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 80 NONAME ; void RadioFrequencyStrip::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) - ?updateItemPrimitive@RadioFrequencyStrip@@EAEXPAVQGraphicsItem@@H@Z @ 81 NONAME ; void RadioFrequencyStrip::updateItemPrimitive(class QGraphicsItem *, int) - ?getStaticMetaObject@RadioFrequencyStrip@@SAABUQMetaObject@@XZ @ 82 NONAME ; struct QMetaObject const & RadioFrequencyStrip::getStaticMetaObject(void) - ?showErrorMessage@RadioWindow@@QAEXABVQString@@@Z @ 83 NONAME ; void RadioWindow::showErrorMessage(class QString const &) - ??0RadioFadingLabel@@QAE@PAVQGraphicsItem@@@Z @ 84 NONAME ; RadioFadingLabel::RadioFadingLabel(class QGraphicsItem *) - ?updateStationsInRange@RadioFrequencyStrip@@AAEXHH_N@Z @ 85 NONAME ; void RadioFrequencyStrip::updateStationsInRange(int, int, bool) - ?initModel@RadioFrequencyStrip@@AAEXXZ @ 86 NONAME ; void RadioFrequencyStrip::initModel(void) - ?frequency@RadioFrequencyStrip@@QBEIXZ @ 87 NONAME ; unsigned int RadioFrequencyStrip::frequency(void) const - ?isInManualSeek@RadioStationCarousel@@EBE_NXZ @ 88 NONAME ; bool RadioStationCarousel::isInManualSeek(void) const - ??1RadioStationCarousel@@UAE@XZ @ 89 NONAME ; RadioStationCarousel::~RadioStationCarousel(void) - ??_ERadioFrequencyStrip@@UAE@I@Z @ 90 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(unsigned int) - ?setFadingEnabled@RadioFadingLabel@@QAEX_N@Z @ 91 NONAME ; void RadioFadingLabel::setFadingEnabled(bool) - ?localizeGenre@RadioStationCarousel@@EAE?AVQString@@H@Z @ 92 NONAME ; class QString RadioStationCarousel::localizeGenre(int) - ?mousePressEvent@RadioFrequencyStrip@@EAEXPAVQGraphicsSceneMouseEvent@@@Z @ 93 NONAME ; void RadioFrequencyStrip::mousePressEvent(class QGraphicsSceneMouseEvent *) - ?showVolumeLevel@RadioWindow@@AAEXH@Z @ 94 NONAME ; void RadioWindow::showVolumeLevel(int) - ?getStaticMetaObject@RadioWindow@@SAABUQMetaObject@@XZ @ 95 NONAME ; struct QMetaObject const & RadioWindow::getStaticMetaObject(void) - ?trUtf8@RadioWindow@@SA?AVQString@@PBD0@Z @ 96 NONAME ; class QString RadioWindow::trUtf8(char const *, char const *) - ?toggleManualSeek@RadioFrequencyStrip@@AAEXXZ @ 97 NONAME ; void RadioFrequencyStrip::toggleManualSeek(void) - ?timerFired@RadioStationCarousel@@AAEXXZ @ 98 NONAME ; void RadioStationCarousel::timerFired(void) - ?handleRadiotextClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 99 NONAME ; void RadioStationCarousel::handleRadiotextClicked(class RadioStation const &) - ?drawPixmap@RadioFrequencyStrip@@AAE?AVQPixmap@@IV?$QList@VRadioStation@@@@PAVRadioFrequencyItem@@@Z @ 100 NONAME ; class QPixmap RadioFrequencyStrip::drawPixmap(unsigned int, class QList, class RadioFrequencyItem *) - ?initEmptyItems@RadioFrequencyStrip@@AAEXXZ @ 101 NONAME ; void RadioFrequencyStrip::initEmptyItems(void) - ?tr@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 102 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *, int) - ??0RadioWindow@@QAE@PAVQWidget@@@Z @ 103 NONAME ; RadioWindow::RadioWindow(class QWidget *) - ?updateRadioText@RadioStationCarousel@@AAEXABVRadioStation@@@Z @ 104 NONAME ; void RadioStationCarousel::updateRadioText(class RadioStation const &) - ?updateAntennaStatus@RadioStationCarousel@@QAEX_N@Z @ 105 NONAME ; void RadioStationCarousel::updateAntennaStatus(bool) - ?updateFavorite@RadioFrequencyStrip@@QAEXABVRadioStation@@@Z @ 106 NONAME ; void RadioFrequencyStrip::updateFavorite(class RadioStation const &) - ?setFrequency@RadioStationCarousel@@QAEXIHW4Direction@Scroll@@@Z @ 107 NONAME ; void RadioStationCarousel::setFrequency(unsigned int, int, enum Scroll::Direction) - ?setInfoText@RadioStationCarousel@@QAEXW4Type@CarouselInfoText@@@Z @ 108 NONAME ; void RadioStationCarousel::setInfoText(enum CarouselInfoText::Type) - ?staticMetaObject@RadioFadingLabel@@2UQMetaObject@@B @ 109 NONAME ; struct QMetaObject const RadioFadingLabel::staticMetaObject - ?trUtf8@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 110 NONAME ; class QString RadioFrequencyStrip::trUtf8(char const *, char const *, int) - ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 111 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *, int) - ?getStaticMetaObject@RadioStationCarousel@@SAABUQMetaObject@@XZ @ 112 NONAME ; struct QMetaObject const & RadioStationCarousel::getStaticMetaObject(void) - ?metaObject@RadioFadingLabel@@UBEPBUQMetaObject@@XZ @ 113 NONAME ; struct QMetaObject const * RadioFadingLabel::metaObject(void) const - ?metaObject@RadioWindow@@UBEPBUQMetaObject@@XZ @ 114 NONAME ; struct QMetaObject const * RadioWindow::metaObject(void) const - ?staticMetaObject@RadioFrequencyStrip@@2UQMetaObject@@B @ 115 NONAME ; struct QMetaObject const RadioFrequencyStrip::staticMetaObject - ?autoScrollTime@RadioStationCarousel@@QBEHXZ @ 116 NONAME ; int RadioStationCarousel::autoScrollTime(void) const - ?handleRightButton@RadioFrequencyStrip@@AAEXXZ @ 117 NONAME ; void RadioFrequencyStrip::handleRightButton(void) - ?qt_metacast@RadioStationCarousel@@UAEPAXPBD@Z @ 118 NONAME ; void * RadioStationCarousel::qt_metacast(char const *) - ?tr@RadioWindow@@SA?AVQString@@PBD0H@Z @ 119 NONAME ; class QString RadioWindow::tr(char const *, char const *, int) - ?addScannedStation@RadioFrequencyStrip@@QAEXABVRadioStation@@@Z @ 120 NONAME ; void RadioFrequencyStrip::addScannedStation(class RadioStation const &) - ?handleLongRightButton@RadioFrequencyStrip@@AAEXXZ @ 121 NONAME ; void RadioFrequencyStrip::handleLongRightButton(void) - ?seekRequested@RadioFrequencyStrip@@IAEXH@Z @ 122 NONAME ; void RadioFrequencyStrip::seekRequested(int) - ?isInManualSeekMode@RadioFrequencyStrip@@QBE_NXZ @ 123 NONAME ; bool RadioFrequencyStrip::isInManualSeekMode(void) const - ?scrollToFrequency@RadioFrequencyStrip@@AAEXIW4Direction@Scroll@@HW4Reason@TuneReason@@@Z @ 124 NONAME ; void RadioFrequencyStrip::scrollToFrequency(unsigned int, enum Scroll::Direction, int, enum TuneReason::Reason) - ??0RadioStationCarousel@@QAE@PAVQGraphicsItem@@@Z @ 125 NONAME ; RadioStationCarousel::RadioStationCarousel(class QGraphicsItem *) - ?adjustAfterScroll@RadioStationCarousel@@AAEXXZ @ 126 NONAME ; void RadioStationCarousel::adjustAfterScroll(void) - ?metaObject@RadioStationCarousel@@UBEPBUQMetaObject@@XZ @ 127 NONAME ; struct QMetaObject const * RadioStationCarousel::metaObject(void) const - ?effectFinished@RadioFadingLabel@@AAEXUEffectStatus@HbEffect@@@Z @ 128 NONAME ; void RadioFadingLabel::effectFinished(struct HbEffect::EffectStatus) - ?updateOrientation@RadioWindow@@AAEXW4Orientation@Qt@@@Z @ 129 NONAME ; void RadioWindow::updateOrientation(enum Qt::Orientation) - ?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) + ?calculateDifference@RadioStationCarousel@@AAEHHAAW4Direction@Scroll@@@Z @ 40 NONAME ; int RadioStationCarousel::calculateDifference(int, enum Scroll::Direction &) + ?orientationSection@RadioWindow@@QAE?AVQString@@XZ @ 41 NONAME ; class QString RadioWindow::orientationSection(void) + ??1RadioFrequencyStrip@@UAE@XZ @ 42 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(void) + ?cancelAnimation@RadioStationCarousel@@QAEXXZ @ 43 NONAME ; void RadioStationCarousel::cancelAnimation(void) + ?staticMetaObject@RadioStationCarousel@@2UQMetaObject@@B @ 44 NONAME ; struct QMetaObject const RadioStationCarousel::staticMetaObject + ?skipToPrevious@RadioFrequencyStrip@@EAEXXZ @ 45 NONAME ; void RadioFrequencyStrip::skipToPrevious(void) + ?qt_metacall@RadioFadingLabel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 46 NONAME ; int RadioFadingLabel::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0RadioFrequencyStrip@@QAE@XZ @ 47 NONAME ; RadioFrequencyStrip::RadioFrequencyStrip(void) + ?setCenterIndex@RadioStationCarousel@@AAEXHV?$QFlags@W4ScrollFlag@RadioStationCarousel@@@@@Z @ 48 NONAME ; void RadioStationCarousel::setCenterIndex(int, class QFlags) + ?resizeEvent@RadioStationCarousel@@EAEXPAVQGraphicsSceneResizeEvent@@@Z @ 49 NONAME ; void RadioStationCarousel::resizeEvent(class QGraphicsSceneResizeEvent *) + ?updateStations@RadioStationCarousel@@AAEXXZ @ 50 NONAME ; void RadioStationCarousel::updateStations(void) + ??_ERadioWindow@@UAE@I@Z @ 51 NONAME ; RadioWindow::~RadioWindow(unsigned int) + ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0@Z @ 52 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *) + ?metaObject@RadioFrequencyStrip@@UBEPBUQMetaObject@@XZ @ 53 NONAME ; struct QMetaObject const * RadioFrequencyStrip::metaObject(void) const + ?qt_metacall@RadioFrequencyStrip@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 54 NONAME ; int RadioFrequencyStrip::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@RadioWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 55 NONAME ; int RadioWindow::qt_metacall(enum QMetaObject::Call, int, void * *) + ?startEffect@RadioFadingLabel@@AAEXABVQString@@PBD@Z @ 56 NONAME ; void RadioFadingLabel::startEffect(class QString const &, char const *) + ?seekDown@RadioFrequencyStrip@@EAEXXZ @ 57 NONAME ; void RadioFrequencyStrip::seekDown(void) + ?activateHistoryView@RadioWindow@@QAEXXZ @ 58 NONAME ; void RadioWindow::activateHistoryView(void) + ??_ERadioStationCarousel@@UAE@I@Z @ 59 NONAME ; RadioStationCarousel::~RadioStationCarousel(unsigned int) + ?tr@RadioFadingLabel@@SA?AVQString@@PBD0@Z @ 60 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *) + ?getStaticMetaObject@RadioFadingLabel@@SAABUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const & RadioFadingLabel::getStaticMetaObject(void) + ?setManualSeekMode@RadioStationCarousel@@QAEX_N@Z @ 62 NONAME ; void RadioStationCarousel::setManualSeekMode(bool) + ?qt_metacast@RadioWindow@@UAEPAXPBD@Z @ 63 NONAME ; void * RadioWindow::qt_metacast(char const *) + ?trimHtml@RadioFadingLabel@@AAE?AVQString@@ABV2@@Z @ 64 NONAME ; class QString RadioFadingLabel::trimHtml(class QString const &) + ?tr@RadioWindow@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString RadioWindow::tr(char const *, char const *) + ?favoriteIcon@RadioStationCarousel@@UBE?AVHbIcon@@XZ @ 66 NONAME ; class HbIcon RadioStationCarousel::favoriteIcon(void) const + ?getStaticMetaObject@RadioFrequencyStrip@@SAABUQMetaObject@@XZ @ 67 NONAME ; struct QMetaObject const & RadioFrequencyStrip::getStaticMetaObject(void) + ?showErrorMessage@RadioWindow@@QAEXABVQString@@@Z @ 68 NONAME ; void RadioWindow::showErrorMessage(class QString const &) + ??0RadioFadingLabel@@QAE@PAVQGraphicsItem@@@Z @ 69 NONAME ; RadioFadingLabel::RadioFadingLabel(class QGraphicsItem *) + ?isInManualSeek@RadioStationCarousel@@EBE_NXZ @ 70 NONAME ; bool RadioStationCarousel::isInManualSeek(void) const + ??1RadioStationCarousel@@UAE@XZ @ 71 NONAME ; RadioStationCarousel::~RadioStationCarousel(void) + ?isInitialized@RadioFrequencyStrip@@EBE_NXZ @ 72 NONAME ; bool RadioFrequencyStrip::isInitialized(void) const + ??_ERadioFrequencyStrip@@UAE@I@Z @ 73 NONAME ; RadioFrequencyStrip::~RadioFrequencyStrip(unsigned int) + ?setFadingEnabled@RadioFadingLabel@@QAEX_N@Z @ 74 NONAME ; void RadioFadingLabel::setFadingEnabled(bool) + ?localizeGenre@RadioStationCarousel@@EAE?AVQString@@H@Z @ 75 NONAME ; class QString RadioStationCarousel::localizeGenre(int) + ?showVolumeLevel@RadioWindow@@AAEXH@Z @ 76 NONAME ; void RadioWindow::showVolumeLevel(int) + ?getStaticMetaObject@RadioWindow@@SAABUQMetaObject@@XZ @ 77 NONAME ; struct QMetaObject const & RadioWindow::getStaticMetaObject(void) + ?handleRadiotextClicked@RadioStationCarousel@@EAEXABVRadioStation@@@Z @ 78 NONAME ; void RadioStationCarousel::handleRadiotextClicked(class RadioStation const &) + ?timerFired@RadioStationCarousel@@AAEXXZ @ 79 NONAME ; void RadioStationCarousel::timerFired(void) + ?trUtf8@RadioWindow@@SA?AVQString@@PBD0@Z @ 80 NONAME ; class QString RadioWindow::trUtf8(char const *, char const *) + ?seekUp@RadioFrequencyStrip@@EAEXXZ @ 81 NONAME ; void RadioFrequencyStrip::seekUp(void) + ??0RadioWindow@@QAE@PAVQWidget@@@Z @ 82 NONAME ; RadioWindow::RadioWindow(class QWidget *) + ?tr@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 83 NONAME ; class QString RadioFadingLabel::tr(char const *, char const *, int) + ?updateRadioText@RadioStationCarousel@@AAEXABVRadioStation@@@Z @ 84 NONAME ; void RadioStationCarousel::updateRadioText(class RadioStation const &) + ?updateAntennaStatus@RadioStationCarousel@@QAEX_N@Z @ 85 NONAME ; void RadioStationCarousel::updateAntennaStatus(bool) + ?setFrequency@RadioStationCarousel@@QAEXIHW4Direction@Scroll@@@Z @ 86 NONAME ; void RadioStationCarousel::setFrequency(unsigned int, int, enum Scroll::Direction) + ?setInfoText@RadioStationCarousel@@QAEXW4Type@CarouselInfoText@@@Z @ 87 NONAME ; void RadioStationCarousel::setInfoText(enum CarouselInfoText::Type) + ?staticMetaObject@RadioFadingLabel@@2UQMetaObject@@B @ 88 NONAME ; struct QMetaObject const RadioFadingLabel::staticMetaObject + ?tr@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 89 NONAME ; class QString RadioFrequencyStrip::tr(char const *, char const *, int) + ?trUtf8@RadioFrequencyStrip@@SA?AVQString@@PBD0H@Z @ 90 NONAME ; class QString RadioFrequencyStrip::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@RadioStationCarousel@@SAABUQMetaObject@@XZ @ 91 NONAME ; struct QMetaObject const & RadioStationCarousel::getStaticMetaObject(void) + ?metaObject@RadioFadingLabel@@UBEPBUQMetaObject@@XZ @ 92 NONAME ; struct QMetaObject const * RadioFadingLabel::metaObject(void) const + ?metaObject@RadioWindow@@UBEPBUQMetaObject@@XZ @ 93 NONAME ; struct QMetaObject const * RadioWindow::metaObject(void) const + ?staticMetaObject@RadioFrequencyStrip@@2UQMetaObject@@B @ 94 NONAME ; struct QMetaObject const RadioFrequencyStrip::staticMetaObject + ?autoScrollTime@RadioStationCarousel@@QBEHXZ @ 95 NONAME ; int RadioStationCarousel::autoScrollTime(void) const + ?qt_metacast@RadioStationCarousel@@UAEPAXPBD@Z @ 96 NONAME ; void * RadioStationCarousel::qt_metacast(char const *) + ?skipToNextFavorite@RadioFrequencyStrip@@EAEXXZ @ 97 NONAME ; void RadioFrequencyStrip::skipToNextFavorite(void) + ?tr@RadioWindow@@SA?AVQString@@PBD0H@Z @ 98 NONAME ; class QString RadioWindow::tr(char const *, char const *, int) + ?seekRequested@RadioFrequencyStrip@@IAEXH@Z @ 99 NONAME ; void RadioFrequencyStrip::seekRequested(int) + ??0RadioStationCarousel@@QAE@PAVQGraphicsItem@@@Z @ 100 NONAME ; RadioStationCarousel::RadioStationCarousel(class QGraphicsItem *) + ?adjustAfterScroll@RadioStationCarousel@@AAEXXZ @ 101 NONAME ; void RadioStationCarousel::adjustAfterScroll(void) + ?metaObject@RadioStationCarousel@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * RadioStationCarousel::metaObject(void) const + ?effectFinished@RadioFadingLabel@@AAEXUEffectStatus@HbEffect@@@Z @ 103 NONAME ; void RadioFadingLabel::effectFinished(struct HbEffect::EffectStatus) + ?skipToNext@RadioFrequencyStrip@@EAEXXZ @ 104 NONAME ; void RadioFrequencyStrip::skipToNext(void) + ?updateOrientation@RadioWindow@@AAEXW4Orientation@Qt@@@Z @ 105 NONAME ; void RadioWindow::updateOrientation(enum Qt::Orientation) + ?activateMainView@RadioWindow@@QAEXXZ @ 106 NONAME ; void RadioWindow::activateMainView(void) + ?trUtf8@RadioFadingLabel@@SA?AVQString@@PBD0H@Z @ 107 NONAME ; class QString RadioFadingLabel::trUtf8(char const *, char const *, int) + ?uiEngine@RadioStationCarousel@@QAEPAVRadioUiEngine@@XZ @ 108 NONAME ; class RadioUiEngine * RadioStationCarousel::uiEngine(void) + ?setLandscape@RadioStationCarousel@@QAEX_N@Z @ 109 NONAME ; void RadioStationCarousel::setLandscape(bool) + ?setScanningMode@RadioStationCarousel@@QAEX_N@Z @ 110 NONAME ; void RadioStationCarousel::setScanningMode(bool) + ??1RadioFadingLabel@@UAE@XZ @ 111 NONAME ; RadioFadingLabel::~RadioFadingLabel(void) + ?setNonFavoriteIcon@RadioStationCarousel@@QAEXABVHbIcon@@@Z @ 112 NONAME ; void RadioStationCarousel::setNonFavoriteIcon(class HbIcon const &) + ?isInScanningMode@RadioStationCarousel@@QBE_NXZ @ 113 NONAME ; bool RadioStationCarousel::isInScanningMode(void) const + ?isAntennaAttached@RadioStationCarousel@@QBE_NXZ @ 114 NONAME ; bool RadioStationCarousel::isAntennaAttached(void) const + ?activateStationsView@RadioWindow@@QAEXXZ @ 115 NONAME ; void RadioWindow::activateStationsView(void) + ?tr@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 116 NONAME ; class QString RadioStationCarousel::tr(char const *, char const *, int) + ?setFrequency@RadioFrequencyStrip@@UAEXIHW4Direction@Scroll@@@Z @ 117 NONAME ; void RadioFrequencyStrip::setFrequency(unsigned int, int, enum Scroll::Direction) + ?frequencyChanged@RadioStationCarousel@@IAEXIHH@Z @ 118 NONAME ; void RadioStationCarousel::frequencyChanged(unsigned int, int, int) + ?trimIndex@RadioStationCarousel@@AAEHH@Z @ 119 NONAME ; int RadioStationCarousel::trimIndex(int) + ?setAlternateSkippingMode@RadioStationCarousel@@QAEX_N@Z @ 120 NONAME ; void RadioStationCarousel::setAlternateSkippingMode(bool) + ?initView@RadioWindow@@AAEXXZ @ 121 NONAME ; void RadioWindow::initView(void) + ?trUtf8@RadioStationCarousel@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString RadioStationCarousel::trUtf8(char const *, char const *, int) + ??_ERadioFadingLabel@@UAE@I@Z @ 123 NONAME ; RadioFadingLabel::~RadioFadingLabel(unsigned int) + ?init@RadioWindow@@QAEXXZ @ 124 NONAME ; void RadioWindow::init(void) + ?isScrollingAllowed@RadioStationCarousel@@ABE_NXZ @ 125 NONAME ; bool RadioStationCarousel::isScrollingAllowed(void) const + ?qt_metacast@RadioFrequencyStrip@@UAEPAXPBD@Z @ 126 NONAME ; void * RadioFrequencyStrip::qt_metacast(char const *) + ?staticMetaObject@RadioWindow@@2UQMetaObject@@B @ 127 NONAME ; struct QMetaObject const RadioWindow::staticMetaObject + ?cleanRdsData@RadioStationCarousel@@QAEXXZ @ 128 NONAME ; void RadioStationCarousel::cleanRdsData(void) + ?clearInfoText@RadioStationCarousel@@QAEXXZ @ 129 NONAME ; void RadioStationCarousel::clearInfoText(void) + ?adjustPos@RadioStationCarousel@@AAEXH@Z @ 130 NONAME ; void RadioStationCarousel::adjustPos(int) + ?frequencyAtIndex@RadioFrequencyStrip@@EBEIH@Z @ 131 NONAME ; unsigned int RadioFrequencyStrip::frequencyAtIndex(int) const + ?scanAnimationFinished@RadioStationCarousel@@IAEXXZ @ 132 NONAME ; void RadioStationCarousel::scanAnimationFinished(void) diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/eabi/fmradiowidgetsu.def --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/inc/radiofrequencyitem.h --- 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 // Forward declarations -class RadioFrequencyStrip; class QGraphicsPixmapItem; // Class declaration diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/inc/radiofrequencystrip.h --- 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 -#include -#include -#include +#ifndef RADIOFREQUENCYSTRIP_H +#define RADIOFREQUENCYSTRIP_H // User includes -#include "radiostripbase.h" +#include "radiofrequencystripbase.h" #include "radio_global.h" #include "radiowidgetsexport.h" // Forward declarations class RadioUiEngine; -class RadioFrequencyItem; class RadioStation; -class HbPushButton; -class QTimer; -class QModelIndex; class RadioUiLoader; typedef QList StationList; // Class declaration -class WIDGETS_DLL_EXPORT RadioFrequencyStrip : public RadioStripBase +class WIDGETS_DLL_EXPORT RadioFrequencyStrip : public RadioFrequencyStripBase { Q_OBJECT - Q_PROPERTY(int itemHeight READ itemHeight WRITE setItemHeight) - Q_PROPERTY(uint frequency READ frequency) - - friend class RadioFrequencyItem; public: RadioFrequencyStrip(); - void setItemHeight( int itemHeight ); - int itemHeight() const; - void init( RadioUiEngine* engine, RadioUiLoader& uiLoader ); - void setFrequency( const uint frequency, int reason, Scroll::Direction direction = Scroll::Shortest ); - uint frequency() const; - - bool isInManualSeekMode() const; - void cancelManualSeek(); - - void addScannedStation( const RadioStation& station ); - - void updateFavorite( const RadioStation& station ); - -public slots: - - void setScanningMode( bool isScanning ); + void setFrequency( const uint newFrequency, int reason, Scroll::Direction direction = Scroll::Shortest ); signals: void frequencyChanged( uint frequency, int reason, int direction ); void skipRequested( int skipMode ); void seekRequested( int seekDirection ); - void manualSeekChanged( bool manualSeek ); - -private slots: - - void removeStation( const QModelIndex& parent, int first, int last ); - void updateStation( const QModelIndex& parent, int first, int last ); - void initEmptyItems(); - void handleLeftButton(); - void handleLongLeftButton(); - void handleRightButton(); - void handleLongRightButton(); - void toggleManualSeek(); - void handleScrollingEnd(); private: -// from base class RadioStripBase - - void updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ); - QGraphicsItem* createItemPrimitive( QGraphicsItem *parent ); - void scrollPosChanged(); - -// from base class QGraphicsWidget - - void resizeEvent ( QGraphicsSceneResizeEvent* event ); -// void showEvent( QShowEvent* event ); - void changeEvent( QEvent* event ); - -// from base class HbScrollArea - - void mousePressEvent( QGraphicsSceneMouseEvent* event ); - void mouseReleaseEvent( QGraphicsSceneMouseEvent* event ); - void gestureEvent( QGestureEvent* event ); - -// from base class QObject - - void timerEvent( QTimerEvent* event ); - -// New functions - - void initModel(); - - void initSelector(); +// from base class RadioFrequencyStripBase - void initPositions(); - - void initButtons(); - - void addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ); - - void updateStationsInRange( int first, int last, bool stationRemoved = false ); - - void updateItem( RadioFrequencyItem* item, uint upperRange = 0, uint ignoredFrequency = 0 ); - - void updateAllItems(); - - QPixmap drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ); - - QLineF makeTab( qreal pos, int height ); - - void emitFrequencyChanged( uint frequency ); - - int selectorPos() const; - - void scrollToFrequency( uint frequency, - Scroll::Direction direction = Scroll::Shortest, - int time = 0, - TuneReason::Reason reason = TuneReason::Unspecified ); - - void hideButtons(); - void showButtons(); + bool isInitialized() const; + QList stationsInRange( uint minFrequency, uint maxFrequency ) const; + void emitFrequencyChanged( uint frequency, int reason, int direction ); + void skipToPrevious(); + void skipToPreviousFavorite(); + void skipToNext(); + void skipToNextFavorite(); + void seekDown(); + void seekUp(); + bool isScanning() const; + uint frequencyAtIndex( int index ) const; private: // data - class FrequencyPos - { - public: - explicit FrequencyPos( int pos, RadioFrequencyItem* item ) : - mPosition( pos ), - mItem( item ) {} - - FrequencyPos() : - mPosition( 0 ), - mItem( 0 ) {} - - int mPosition; - RadioFrequencyItem* mItem; - - }; - RadioUiEngine* mUiEngine; - int mItemHeight; - - uint mMinFrequency; - - uint mMaxFrequency; - - uint mFrequencyStepSize; - - uint mFrequency; - - QGraphicsPixmapItem* mSelectorImage; - - qreal mSeparatorPos; - - short mMaxWidth; - - qreal mSelectorPos; - - QList mFrequencyItems; - - /** - * Container to help map a frequency to strip position and additional information about the frequency. - * In the default region contains an item for every valid frequency from 87.50 Mhz to 108.00 Mhz with - * stepsize 50 Khz which amounts to 410 items. - */ - QMap mFrequencies; - - /** - * Container to help map strip position to frequency. - * It is queried every time the strip moves so the lookup time needs to be fast. QHash is used because - * it offers the fastest lookup time of any other QT container. QHash stores the items in arbitrary - * order so we must never try to loop through them and assume they are in any particular order. - */ - QHash mPositions; - - HbPushButton* mLeftButton; - - HbPushButton* mRightButton; - - QTimer* mManualSeekTimer; - - bool mManualSeekMode; - - uint mLastReportedFrequency; - - int mManualSeekTimerId; - - QColor mForegroundColor; - }; -#endif // FREQUENCYSTRIP_H +#endif // RADIOFREQUENCYSTRIP_H diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/inc/radiofrequencystripbase.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 +#include +#include +#include + +// User includes +#include "radiostripbase.h" +#include "radiofrequencystripdef.h" + +// Forward declarations +class RadioFrequencyItem; +class HbPushButton; +class QTimer; +class QModelIndex; +class HbDocumentLoader; + +// Class declaration +class RadioFrequencyStripBase : public RadioStripBase +{ + Q_OBJECT + Q_PROPERTY(int itemHeight READ itemHeight WRITE setItemHeight) + Q_PROPERTY(uint frequency READ frequency) + + friend class RadioFrequencyItem; + +public: + + RadioFrequencyStripBase( QGraphicsItem* parent = 0 ); + + void setItemHeight( int itemHeight ); + int itemHeight() const; + + void initbase( uint minFrequency, uint maxFrequency, uint stepSize, uint frequency ); + void createButtonsFromDocml( HbDocumentLoader& uiLoader, const QString& leftButtonName, const QString& rightButtonName ); + void createButtons(); + + virtual void setFrequency( const uint frequency, int reason, Scroll::Direction direction = Scroll::Shortest ); + uint frequency() const; + + bool isInManualSeekMode() const; + void cancelManualSeek(); + + void addScannedStation( uint frequency ); + + void updateFavorite( uint frequency ); + +public slots: + + void setScanningMode( bool isScanning ); + +signals: + + void manualSeekChanged( bool manualSeek ); + +private slots: + + void initEmptyItems(); + void removeStation( const QModelIndex& parent, int first, int last ); + void updateStation( const QModelIndex& parent, int first, int last ); + void handleLeftButton(); + void handleRightButton(); + void handleLongLeftButton(); + void handleLongRightButton(); + void toggleManualSeek(); + void handleScrollingEnd(); + +private: + +// from base class RadioStripBase + + void updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ); + QGraphicsItem* createItemPrimitive( QGraphicsItem *parent ); + void scrollPosChanged(); + +// from base class QGraphicsWidget + + void resizeEvent ( QGraphicsSceneResizeEvent* event ); +// void showEvent( QShowEvent* event ); + void changeEvent( QEvent* event ); + +// from base class HbScrollArea + + void mousePressEvent( QGraphicsSceneMouseEvent* event ); + void mouseReleaseEvent( QGraphicsSceneMouseEvent* event ); + void gestureEvent( QGestureEvent* event ); + +// from base class QObject + + void timerEvent( QTimerEvent* event ); + +// New functions + + virtual bool isInitialized() const = 0; + virtual QList stationsInRange( uint minFrequency, uint maxFrequency ) const = 0; + virtual void emitFrequencyChanged( uint frequency, int reason, int direction ) = 0; + virtual void skipToPrevious() = 0; + virtual void skipToPreviousFavorite() = 0; + virtual void skipToNext() = 0; + virtual void skipToNextFavorite() = 0; + virtual void seekDown() = 0; + virtual void seekUp() = 0; + virtual bool isScanning() const = 0; + virtual uint frequencyAtIndex( int index ) const = 0; + + void initModel(); + + void initSelector(); + + void initPositions(); + + void initButtons(); + + void addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ); + + void updateStationsInRange( int first, int last, bool stationRemoved = false ); + + void updateItem( RadioFrequencyItem* item, uint upperRange = 0, uint ignoredFrequency = 0 ); + + void updateAllItems(); + + QPixmap drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ); + + QLineF makeTab( qreal pos, int height ); + + int selectorPos() const; + + void scrollToFrequency( uint frequency, + Scroll::Direction direction = Scroll::Shortest, + int time = 0 ); + + void hideButtons(); + void showButtons(); + +private: // data + + class FrequencyPos + { + public: + explicit FrequencyPos( int pos, RadioFrequencyItem* item ) : + mPosition( pos ), + mItem( item ) {} + + FrequencyPos() : + mPosition( 0 ), + mItem( 0 ) {} + + int mPosition; + RadioFrequencyItem* mItem; + + }; + + int mItemHeight; + + uint mMinFrequency; + + uint mMaxFrequency; + + uint mFrequencyStepSize; + + uint mFrequency; + + QGraphicsPixmapItem* mSelectorImage; + + qreal mSeparatorPos; + + short mMaxWidth; + + qreal mSelectorPos; + + QList mFrequencyItems; + + /** + * Container to help map a frequency to strip position and additional information about the frequency. + * In the default region contains an item for every valid frequency from 87.50 Mhz to 108.00 Mhz with + * stepsize 50 Khz which amounts to 410 items. + */ + QMap mFrequencies; + + /** + * Container to help map strip position to frequency. + * It is queried every time the strip moves so the lookup time needs to be fast. QHash is used because + * it offers the fastest lookup time of any other QT container. QHash stores the items in arbitrary + * order so we must never try to loop through them and assume they are in any particular order. + */ + QHash mPositions; + + HbPushButton* mLeftButton; + + HbPushButton* mRightButton; + + QTimer* mManualSeekTimer; + + bool mManualSeekMode; + + uint mLastReportedFrequency; + + int mManualSeekTimerId; + + QColor mForegroundColor; + +}; + +#endif // RADIOFREQUENCYSTRIPBASE_H diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/inc/radiofrequencystripdef.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 +#include + +namespace Scroll +{ + enum Direction + { + Shortest, + Left, + Right + }; +} + +namespace FrequencyStrip +{ + + struct StationMarker + { + StationMarker() : mFrequency( 0 ), mIsFavorite( false ) {} + StationMarker( uint frequency, bool isFavorite ) : mFrequency( frequency ), mIsFavorite( isFavorite ) {} + uint mFrequency; + bool mIsFavorite; + }; + + enum FrequencyChangeReason + { + Unspecified = 0, + ManualSeekUpdate, + ManualSeekTune + }; + + // Frequency lines + const int TAB_HEIGHT_SMALL = 12; + const int TAB_HEIGHT_BIG = 18; + const int PEN_WIDTH_FAVORITE = 4; + const qreal INDICATOR_WIDTH = 2.0; + + const qreal ROUNDER = 0.5; + const int SELECTOR_WIDTH = 2; + const int SELECTOR_Z_POS = 100; + + const int ONE_HERTZ = 1000000; + const int HALF_HERTZ = ONE_HERTZ / 2; + const int ONE_TAB_DISTANCE = 20; + const uint ONE_TAB_IN_HZ = uint( 0.2 * ONE_HERTZ ); + const qreal PIXEL_IN_HZ = ONE_TAB_IN_HZ / ONE_TAB_DISTANCE; + const qreal PIXMAP_OVERLAP = qreal( ONE_TAB_DISTANCE ) / 2; + const int ITEM_WIDTH = ONE_TAB_DISTANCE * 5; + const int PIXMAP_WIDTH = ITEM_WIDTH + (int)PIXMAP_OVERLAP; + + const uint ONE_HUNDRED_KHZ = 100000; + + static const QLatin1String DECIMAL_TEXT( ".0" ); + + #ifdef BUILD_WIN32 + const int FREQUENCY_FONT_SIZE = 12; + const int DECIMAL_FONT_SIZE = 8; + #else + const int FREQUENCY_FONT_SIZE = 6; + const int DECIMAL_FONT_SIZE = 4; + #endif // BUILD_WIN32 + + const QFont FREQUENCY_FONT( "", FREQUENCY_FONT_SIZE ); + const QFont DECIMAL_FONT( "", DECIMAL_FONT_SIZE ); + const int FREQUENCY_TEXT_Y_POS = 35; + const int STATION_MARKER_Y_POS = 10; + + static const QLatin1String SLIDE_TO_LEFT ( "SlideToLeft" ); + static const QLatin1String SLIDE_FROM_LEFT ( "SlideFromLeft" ); + static const QLatin1String SLIDE_TO_RIGHT ( "SlideToRight" ); + static const QLatin1String SLIDE_FROM_RIGHT ( "SlideFromRight" ); + static const QLatin1String LEFT_BUTTON ( "tv:left_button" ); + static const QLatin1String RIGHT_BUTTON ( "tv:right_button" ); + + static const QLatin1String TEXT_COLOR_ATTRIBUTE( "text" ); + const int MANUALSEEK_START_TIMEOUT = 400; + const int MANUALSEEK_END_TIMEOUT = 2000; + const int MANUALSEEK_SIGNAL_DELAY = 300; + +} + +#endif // RADIOFREQUENCYSTRIPDEF_H diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/inc/radiostationcarousel.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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/inc/radioutil.h --- 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; diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/radiowidgets.pro --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/src/radiofrequencyitem.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 ) { } diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/src/radiofrequencyscanner.cpp --- 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(); } } diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/src/radiofrequencystrip.cpp --- 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include +// User includes #include "radiofrequencystrip.h" -#include "radiofrequencyitem.h" #include "radiouiengine.h" #include "radiostation.h" #include "radiostationmodel.h" @@ -36,95 +26,11 @@ #include "radiouiloader.h" #include "radiologger.h" -// Frequency lines -const int TAB_HEIGHT_SMALL = 12; -const int TAB_HEIGHT_BIG = 18; -const int PEN_WIDTH_FAVORITE = 4; -const qreal INDICATOR_WIDTH = 2.0; - -const qreal ROUNDER = 0.5; -const int SELECTOR_WIDTH = 2; -const int SELECTOR_Z_POS = 100; - -const int HALF_HERTZ = ONE_HERTZ / 2; -const int ONE_TAB_DISTANCE = 20; -const uint ONE_TAB_IN_HZ = uint( 0.2 * ONE_HERTZ ); -const qreal PIXEL_IN_HZ = ONE_TAB_IN_HZ / ONE_TAB_DISTANCE; -const qreal PIXMAP_OVERLAP = qreal( ONE_TAB_DISTANCE ) / 2; -const int ITEM_WIDTH = ONE_TAB_DISTANCE * 5; -const int PIXMAP_WIDTH = ITEM_WIDTH + (int)PIXMAP_OVERLAP; - -const uint ONE_HUNDRED_KHZ = 100000; - -const char* DECIMAL_TEXT = ".0"; - -#ifdef BUILD_WIN32 - const int FREQUENCY_FONT_SIZE = 12; - const int DECIMAL_FONT_SIZE = 8; -#else - const int FREQUENCY_FONT_SIZE = 6; - const int DECIMAL_FONT_SIZE = 4; -#endif // BUILD_WIN32 - -const QFont FREQUENCY_FONT( "", FREQUENCY_FONT_SIZE ); -const QFont DECIMAL_FONT( "", DECIMAL_FONT_SIZE ); - -const char* SLIDE_TO_LEFT = "SlideToLeft"; -const char* SLIDE_FROM_LEFT = "SlideFromLeft"; -const char* SLIDE_TO_RIGHT = "SlideToRight"; -const char* SLIDE_FROM_RIGHT = "SlideFromRight"; -const char* LEFT_BUTTON = "tv:left_button"; -const char* RIGHT_BUTTON = "tv:right_button"; - -const char* TEXT_COLOR_ATTRIBUTE = "text"; -const int MANUALSEEK_START_TIMEOUT = 400; -const int MANUALSEEK_END_TIMEOUT = 2000; -const int MANUALSEEK_SIGNAL_DELAY = 300; - -/*! - * - */ RadioFrequencyStrip::RadioFrequencyStrip() : - RadioStripBase(), - mUiEngine( NULL ), - mItemHeight( 8 ), - mMinFrequency( 87500000 ), - mMaxFrequency( 108000000 ), - mFrequencyStepSize( 100000 ), - mFrequency( 87500000 ), - mSelectorImage( new QGraphicsPixmapItem( this ) ), - mSeparatorPos( 0.0 ), - mMaxWidth( 0 ), - mSelectorPos( 0.0 ), - mLeftButton( 0 ), - mRightButton( 0 ), - mManualSeekTimer( NULL ), - mManualSeekMode( false ), - mLastReportedFrequency( 0 ), - mManualSeekTimerId( 0 ), - mForegroundColor( Qt::white )//HbColorScheme::color( TEXT_COLOR_ATTRIBUTE ) ) + RadioFrequencyStripBase(), + mUiEngine( NULL ) { RadioUtil::setFrequencyStrip( this ); - - setScrollingStyle( HbScrollArea::PanWithFollowOn ); - setItemSize( QSizeF( ITEM_WIDTH + PIXMAP_OVERLAP / 2, mItemHeight ) ); - setOverlap( PIXMAP_OVERLAP / 2 ); -} - -/*! - * Property - */ -void RadioFrequencyStrip::setItemHeight( int itemHeight ) -{ - mItemHeight = itemHeight; -} - -/*! - * Property - */ -int RadioFrequencyStrip::itemHeight() const -{ - return mItemHeight; } /*! @@ -133,46 +39,10 @@ void RadioFrequencyStrip::init( RadioUiEngine* engine, RadioUiLoader& uiLoader ) { mUiEngine = engine; - mMinFrequency = mUiEngine->minFrequency(); - mMaxFrequency = mUiEngine->maxFrequency(); - mFrequencyStepSize = mUiEngine->frequencyStepSize(); - mFrequency = RadioUiEngine::lastTunedFrequency(); - - initModel(); - initEmptyItems(); - initPositions(); - - HbDeviceProfile deviceProfile; - mItemHeight = static_cast( mItemHeight * deviceProfile.unitValue() ); - - mLeftButton = uiLoader.findWidget( DOCML::MV_NAME_PREV_BUTTON ); - mRightButton = uiLoader.findWidget( DOCML::MV_NAME_NEXT_BUTTON ); - initButtons(); + initbase( mUiEngine->minFrequency(), mUiEngine->maxFrequency(), + mUiEngine->frequencyStepSize(), RadioUiEngine::lastTunedFrequency() ); - mManualSeekTimer = new QTimer( this ); - mManualSeekTimer->setInterval( MANUALSEEK_START_TIMEOUT ); - mManualSeekTimer->setSingleShot( true ); - Radio::connect( mManualSeekTimer, SIGNAL(timeout()), - this, SLOT(toggleManualSeek()) ); - - Radio::connect( mLeftButton, SIGNAL(clicked()), - this, SLOT(handleLeftButton()) ); - Radio::connect( mRightButton, SIGNAL(clicked()), - this, SLOT(handleRightButton()) ); - Radio::connect( mLeftButton, SIGNAL(longPress(QPointF)), - this, SLOT(handleLongLeftButton()) ); - Radio::connect( mRightButton, SIGNAL(longPress(QPointF)), - this, SLOT(handleLongRightButton()) ); - - Radio::connect( this, SIGNAL(scrollingEnded()), - this, SLOT(handleScrollingEnd()) ); - - grabGesture( Qt::SwipeGesture ); - - //TODO: Remove. Stepsize hardcoded to 100 Khz in europe region during demo - if ( mFrequencyStepSize < ONE_HUNDRED_KHZ ) { - mFrequencyStepSize = ONE_HUNDRED_KHZ; - } + createButtonsFromDocml( uiLoader, DOCML::MV_NAME_PREV_BUTTON, DOCML::MV_NAME_NEXT_BUTTON ); RadioStationModel* stationModel = &mUiEngine->stationModel(); Radio::connect( stationModel, SIGNAL(rowsInserted(QModelIndex,int,int)), @@ -181,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 emptyList; - foreach ( RadioFrequencyItem* item, mFrequencyItems ) { - QPixmap pixmap = drawPixmap( item->frequency(), emptyList, item ); - item->setPixmap( pixmap ); - } - } -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleLeftButton() -{ - emit skipRequested( StationSkip::PreviousFavorite ); -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleLongLeftButton() -{ - emit seekRequested( Seek::Down ); -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleRightButton() -{ - emit skipRequested( StationSkip::NextFavorite ); -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleLongRightButton() -{ - emit seekRequested( Seek::Up ); -} - -/*! - * Private slot - * - */ -void RadioFrequencyStrip::toggleManualSeek() -{ - mManualSeekMode = !mManualSeekMode; - emit manualSeekChanged( mManualSeekMode ); - - if ( mManualSeekMode ) { - grabMouse(); - hideButtons(); - mManualSeekTimerId = startTimer( MANUALSEEK_SIGNAL_DELAY ); - } else { - ungrabMouse(); - showButtons(); - killTimer( mManualSeekTimerId ); - mManualSeekTimerId = 0; - } -} - -/*! - * Private slot - */ -void RadioFrequencyStrip::handleScrollingEnd() +void RadioFrequencyStrip::setFrequency( const uint newFrequency, int reason, Scroll::Direction direction ) { - // Check if the selector is in the invalid area where the strip loops around - const int selectorPosition = selectorPos(); - if ( mManualSeekMode ) { - if ( !mPositions.contains( selectorPosition ) ) { - if ( selectorPosition < mMaxWidth - ITEM_WIDTH + mSeparatorPos ) { - scrollToFrequency( mMaxFrequency, Scroll::Shortest, 500 ); - emit frequencyChanged( mMaxFrequency, TuneReason::ManualSeekUpdate, Scroll::Shortest ); - } else { - scrollToFrequency( mMinFrequency, Scroll::Shortest, 500 ); - emit frequencyChanged( mMinFrequency, TuneReason::ManualSeekUpdate, Scroll::Shortest ); - } - } - - mManualSeekTimer->start( MANUALSEEK_END_TIMEOUT ); - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ) -{ - QGraphicsPixmapItem* item = static_cast( itemToUpdate ); - if ( itemIndex < mFrequencyItems.count() ) { - item->setPixmap( mFrequencyItems.at( itemIndex )->updatePrimitive( item ) ); - } -} - -/*! - * \reimp - */ -QGraphicsItem* RadioFrequencyStrip::createItemPrimitive( QGraphicsItem* parent ) -{ - return new QGraphicsPixmapItem( parent ); -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::scrollPosChanged() -{ - if ( mManualSeekMode ) { - const int pos = selectorPos(); - const uint frequency = mPositions.value( pos ); - if ( frequency > 0 ) { - mFrequency = mPositions.value( pos ); - emit frequencyChanged( mFrequency, TuneReason::ManualSeekUpdate, Scroll::Shortest ); - } - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::resizeEvent ( QGraphicsSceneResizeEvent* event ) -{ - LOG_METHOD; - RadioStripBase::resizeEvent( event ); - - initSelector(); - - const qreal height = event->newSize().height(); - const qreal width = event->newSize().width(); - - mSelectorPos = width / 2; - mSelectorImage->setOffset( mSelectorPos - (INDICATOR_WIDTH / 2), 0.0 ); - - if ( mLeftButton && mRightButton ) { - mLeftButton->resize( height, height ); - mRightButton->resize( height, height ); - mRightButton->setPos( QPointF( width - height, 0 ) ); - } - - scrollToFrequency( mFrequency ); -} - -/*! - * \reimp - */ -//void RadioFrequencyStrip::showEvent( QShowEvent* event ) -//{ -// RadioStripBase::showEvent( event ); -// scrollToFrequency( mFrequency ); -//} - -/*! - * \reimp - */ -void RadioFrequencyStrip::changeEvent( QEvent* event ) -{ - if ( event->type() == HbEvent::ThemeChanged ) { - // Update the foreground color and redraw each item - mForegroundColor = Qt::white;// HbColorScheme::color( TEXT_COLOR_ATTRIBUTE ); - updateAllItems(); - } - - return RadioStripBase::changeEvent(event); -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::mousePressEvent( QGraphicsSceneMouseEvent* event ) -{ - RadioStripBase::mousePressEvent( event ); - - mManualSeekTimer->stop(); - if ( mManualSeekMode ) { - const bool insideStrip = rect().contains( event->pos() ); - if ( !insideStrip ) { - toggleManualSeek(); - } - } else { - mManualSeekTimer->start( MANUALSEEK_START_TIMEOUT ); - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::mouseReleaseEvent( QGraphicsSceneMouseEvent* event ) -{ - RadioStripBase::mouseReleaseEvent( event ); - - mManualSeekTimer->stop(); - if ( mManualSeekMode && !isScrolling() ) { - mManualSeekTimer->start( MANUALSEEK_END_TIMEOUT ); - } -} - -/*! - * \reimp - */ -void RadioFrequencyStrip::gestureEvent( QGestureEvent* event ) -{ - HbSwipeGesture* swipeGesture = static_cast( event->gesture( Qt::SwipeGesture ) ); - if ( swipeGesture && !mManualSeekMode ) { - if ( swipeGesture->state() == Qt::GestureFinished ) { - if ( swipeGesture->horizontalDirection() == QSwipeGesture::Left ) { - emit skipRequested( StationSkip::Next ); - } else if ( swipeGesture->horizontalDirection() == QSwipeGesture::Right ) { - emit skipRequested( StationSkip::Previous ); - } - } - } else if ( mManualSeekMode ) { - RadioStripBase::gestureEvent( event ); + Q_UNUSED( reason ); + if ( newFrequency != frequency() || reason == TuneReason::Skip ) { + RadioFrequencyStripBase::setFrequency( newFrequency, reason, direction ); } } /*! * \reimp */ -void RadioFrequencyStrip::timerEvent( QTimerEvent* event ) +bool RadioFrequencyStrip::isInitialized() const { - Q_UNUSED( event ); - if ( mLastReportedFrequency != mFrequency ) { - mLastReportedFrequency = mFrequency; - emit frequencyChanged( mFrequency, TuneReason::ManualSeekTune, Scroll::Shortest ); - } + return mUiEngine != NULL; } /*! - * + * \reimp */ -void RadioFrequencyStrip::initModel() +QList RadioFrequencyStrip::stationsInRange( uint minFrequency, uint maxFrequency ) const { - const uint minFreq = uint( qreal(mMinFrequency) / ONE_HERTZ + ROUNDER ); - const uint maxFreq = uint( qreal(mMaxFrequency) / ONE_HERTZ + 0.9 ); // always round up - - QStringList list; - QString freqText; - for ( uint i = minFreq; i <= maxFreq; ++i ) { - freqText = QString::number( i ); - list.append( freqText ); - mFrequencyItems.append( new RadioFrequencyItem( freqText ) ); + QList stations = mUiEngine->stationsInRange( minFrequency, maxFrequency ); + QList markers; + foreach ( const RadioStation& station, stations ) { + markers.append( FrequencyStrip::StationMarker( station.frequency(), station.isFavorite() ) ); } - mFrequencyItems.append( new RadioFrequencyItem( "" ) ); - list.append( "" ); - - mMaxWidth = list.count() * ITEM_WIDTH; - - mSeparatorPos = qreal(ITEM_WIDTH) / 2; - const uint minDrawableFreq = minFreq * ONE_HERTZ - HALF_HERTZ;; - const uint maxDrawableFreq = maxFreq * ONE_HERTZ + HALF_HERTZ; - mSeparatorPos += qreal( ( mMinFrequency - minDrawableFreq ) / 2 ) / PIXEL_IN_HZ; - mSeparatorPos -= qreal( ( maxDrawableFreq - mMaxFrequency ) / 2 ) / PIXEL_IN_HZ; - - setModel( new QStringListModel( list, this ) ); + return markers; } /*! - * + * \reimp */ -void RadioFrequencyStrip::initSelector() -{ - QPixmap selectorPixmap = QPixmap( QSize( SELECTOR_WIDTH, (int)size().height() ) ); - selectorPixmap.fill( Qt::red ); - mSelectorImage->setPixmap( selectorPixmap ); - mSelectorImage->setZValue( SELECTOR_Z_POS ); -} - -/*! - * - */ -void RadioFrequencyStrip::initPositions() +void RadioFrequencyStrip::emitFrequencyChanged( uint frequency, int reason, int direction ) { - int prevPos = 0; - int nextPos = 0; - const int lastPos = mFrequencies.value( mMaxFrequency ).mPosition; - for ( int i = mFrequencies.value( mMinFrequency ).mPosition; i < lastPos; ++i ) { - if ( mPositions.contains( i ) ) { - prevPos = i; - const uint freq = mPositions.value( prevPos ) + mFrequencyStepSize; - if ( mFrequencies.contains( freq ) ) { - nextPos = mFrequencies.value( freq ).mPosition; - } else { - nextPos = prevPos; - } - } else { - const int nearestHit = ( i - prevPos ) < ( nextPos - i ) ? prevPos : nextPos; - mPositions.insert( i, mPositions.value( nearestHit ) ); - } + int tuneReason = TuneReason::Unspecified; + if ( reason == FrequencyStrip::ManualSeekUpdate ) { + tuneReason = TuneReason::ManualSeekUpdate; + } else if ( reason == FrequencyStrip::ManualSeekTune ) { + tuneReason = TuneReason::ManualSeekTune; } + + emit frequencyChanged( frequency, tuneReason, direction ); } /*! * */ -void RadioFrequencyStrip::initButtons() -{ - mLeftButton->setZValue( SELECTOR_Z_POS ); - mLeftButton->setObjectName( LEFT_BUTTON ); - mRightButton->setZValue( SELECTOR_Z_POS ); - mRightButton->setObjectName( RIGHT_BUTTON ); - - const qreal height = size().height(); - const qreal width = size().width(); - mLeftButton->resize( height, height ); - mRightButton->resize( height, height ); - mRightButton->setPos( QPointF( width - height, 0 ) ); - - QEffectList effectList; - effectList.append( EffectInfo( mLeftButton, ":/effects/slide_to_left.fxml", SLIDE_TO_LEFT ) ); - effectList.append( EffectInfo( mLeftButton, ":/effects/slide_from_left.fxml", SLIDE_FROM_LEFT ) ); - effectList.append( EffectInfo( mRightButton, ":/effects/slide_to_right.fxml", SLIDE_TO_RIGHT ) ); - effectList.append( EffectInfo( mRightButton, ":/effects/slide_from_right.fxml", SLIDE_FROM_RIGHT ) ); - RadioUtil::addEffects( effectList ); -} - -/*! - * - */ -void RadioFrequencyStrip::addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ) -{ - mFrequencies.insert( frequency, FrequencyPos( pos, item ) ); - mPositions.insert( pos, frequency ); -} - -/*! - * - */ -void RadioFrequencyStrip::updateStationsInRange( int first, int last, bool stationRemoved ) +void RadioFrequencyStrip::skipToPrevious() { - if ( RadioUtil::scanStatus() != Scan::ScanningInMainView ) { - RadioStationModel& model = mUiEngine->stationModel(); - uint frequency = 0; - for ( int i = first; i <= last; ++i ) { - frequency = model.data( model.index( i, 0, QModelIndex() ), - RadioRole::RadioStationRole ).value().frequency(); - if ( mFrequencies.contains( frequency ) ) { - FrequencyPos pos = mFrequencies.value( frequency ); - updateItem( pos.mItem, 0, stationRemoved ? frequency : 0 ); - } - } - } -} - -/*! - * - */ -void RadioFrequencyStrip::updateItem( RadioFrequencyItem* item, uint upperRange, uint ignoredFrequency ) -{ - if ( item ) { - uint frequency = item->frequency(); - QList stations; - - if ( upperRange == 0 ) { - upperRange = frequency + HALF_HERTZ; - } - - if ( mUiEngine ) { - stations = mUiEngine->stationsInRange( frequency - HALF_HERTZ, upperRange ); - for ( int i = stations.count() - 1; ignoredFrequency > 0 && i >= 0; --i ) { - if ( stations[i].frequency() == ignoredFrequency ) { - stations.removeAt( i ); - break; - } - } - } - - QPixmap pixmap = drawPixmap( frequency, stations, item ); - item->setPixmap( pixmap ); - - foreach ( const RadioStation& station, stations ) { - frequency = station.frequency(); - FrequencyPos pos = mFrequencies.value( frequency ); - mFrequencies.insert( frequency, pos ); - } - } -} - -/*! - * - */ -void RadioFrequencyStrip::updateAllItems() -{ - foreach ( RadioFrequencyItem* item, mFrequencyItems ) { - updateItem( item ); - } + emit skipRequested( StationSkip::Previous ); } /*! * */ -QPixmap RadioFrequencyStrip::drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ) +void RadioFrequencyStrip::skipToPreviousFavorite() { - QPixmap pixmap( PIXMAP_WIDTH, mItemHeight ); - pixmap.fill( Qt::transparent ); - QPainter painter( &pixmap ); - QPen normalPen = painter.pen(); - QPen favoritePen = normalPen; - normalPen.setColor( mForegroundColor ); - painter.setPen( normalPen ); - - if ( frequency == 0 ) { - painter.drawLine( makeTab( mSeparatorPos - 1 + ROUNDER, mItemHeight ) ); - painter.drawLine( makeTab( mSeparatorPos + ROUNDER, mItemHeight ) ); - return pixmap; - } - - const QString itemText = QString::number( frequency / ONE_HERTZ ); - const uint startFrequency = frequency - HALF_HERTZ; - const uint endFrequency = startFrequency + ONE_HERTZ; - const uint roundedMin = int( qreal(mMinFrequency) / ONE_HERTZ + ROUNDER ); - const uint freq = frequency / ONE_HERTZ; - const int diff = freq - roundedMin; - const qreal startPixel = diff * ITEM_WIDTH; - qreal pixels = 0.0; - const qreal leftOverlap = PIXMAP_OVERLAP / 2; - - for ( uint frequency = startFrequency; frequency <= endFrequency; frequency += mFrequencyStepSize ) { - - if ( frequency < mMinFrequency || frequency > mMaxFrequency ) { - continue; - } - - pixels = qreal( frequency - startFrequency ) / PIXEL_IN_HZ; - if ( frequency % ONE_HERTZ == 0 ) { - - // Draw the high frequency tab and the frequency text for the even number - normalPen.setWidth( 3 ); - painter.setPen( normalPen ); - painter.drawLine( makeTab( pixels + leftOverlap - 1, TAB_HEIGHT_BIG ) ); - normalPen.setWidth( 1 ); - painter.setPen( normalPen ); + emit skipRequested( StationSkip::PreviousFavorite ); +} - // Draw the frequency text and its 00 decimals - painter.setFont( DECIMAL_FONT ); - const int decimalWidth = painter.fontMetrics().width( DECIMAL_TEXT ); - const int decimalSpace = painter.fontMetrics().leftBearing( '.' ); - painter.setFont( FREQUENCY_FONT ); - const int frequencyWidth = painter.fontMetrics().width( itemText ); - const int textPosX = int( pixels + leftOverlap - ( frequencyWidth + decimalSpace + decimalWidth ) / 2 ); - painter.drawText( QPoint( textPosX, 20 ), itemText ); - painter.setFont( DECIMAL_FONT ); - painter.drawText( QPoint( textPosX + frequencyWidth + decimalSpace, 20 ), DECIMAL_TEXT ); - - } else if ( frequency % ONE_TAB_IN_HZ == 0 ) { - - // Draw the low frequency tab for the uneven number - painter.drawLine( makeTab( pixels + leftOverlap, TAB_HEIGHT_SMALL ) ); - - } - - addFrequencyPos( int( startPixel + pixels + ROUNDER ), frequency, item ); - } +/*! + * + */ +void RadioFrequencyStrip::skipToNext() +{ + emit skipRequested( StationSkip::Next ); +} - // Draw favorites and local stations - favoritePen.setColor( Qt::yellow ); - - const int markerYPos = mItemHeight - 28; - foreach ( const RadioStation& station, stations ) { - const uint frequency = station.frequency(); - pixels = qreal( frequency - startFrequency ) / PIXEL_IN_HZ; - - if ( station.isFavorite() ) { - favoritePen.setWidth( PEN_WIDTH_FAVORITE ); - painter.setPen( favoritePen ); - painter.drawEllipse( int( pixels + leftOverlap - 3 ), markerYPos - 3, 6, 6 ); - } else if ( station.isType( RadioStation::LocalStation ) ) { - - favoritePen.setWidth( 1 ); - painter.setPen( favoritePen ); - painter.drawEllipse( int( pixels + leftOverlap - 4 ), markerYPos - 4, 8, 8 ); - } - } - - return pixmap; +/*! + * + */ +void RadioFrequencyStrip::skipToNextFavorite() +{ + emit skipRequested( StationSkip::NextFavorite ); } /*! * */ -QLineF RadioFrequencyStrip::makeTab( qreal pos, int height ) +void RadioFrequencyStrip::seekDown() { - return QLineF( pos, mItemHeight - height, pos, mItemHeight ); + emit seekRequested( Seek::Down ); } -/*! - * - */ -void RadioFrequencyStrip::emitFrequencyChanged( uint frequency ) -{ - if ( frequency > 0 && frequency != mFrequency ) { - mFrequency = frequency; - //TOD: Get direction - emit frequencyChanged( frequency, TuneReason::FrequencyStrip, Scroll::Shortest ); - } -} - -/*! - * - */ -int RadioFrequencyStrip::selectorPos() const -{ - const int pos = int( -contentWidget()->x() + mSelectorPos + ROUNDER ); - return pos % mMaxWidth; -} /*! * */ -void RadioFrequencyStrip::scrollToFrequency( uint frequency, Scroll::Direction direction, int time, TuneReason::Reason reason ) +void RadioFrequencyStrip::seekUp() { - int targetFreqPos = mFrequencies.value( frequency ).mPosition; - const int currentFreqPos = mFrequencies.value( mFrequency ).mPosition; - const int currentPos = int( -contentWidget()->x() + mSelectorPos + ROUNDER ); - const bool isInSecondHalf = currentPos >= mMaxWidth - ITEM_WIDTH + mSeparatorPos; - - // Special case: When there is only one favorite and the user presses skip - // the strip must scroll around to the same frequency. - if ( mFrequency == frequency && reason == TuneReason::Skip ) { - if ( direction == Scroll::Left ) { - targetFreqPos += mMaxWidth; - } else { - targetFreqPos -= mMaxWidth; - } - } - - mFrequency = frequency; - - qreal newPos = targetFreqPos; - if ( direction == Scroll::Left ) { - - if ( currentFreqPos > targetFreqPos ) { - newPos += mMaxWidth; - } - - } else if ( direction == Scroll::Right ) { - - if ( currentFreqPos < targetFreqPos ) { - newPos -= mMaxWidth; - } - - } - - if ( isInSecondHalf ) { - newPos += mMaxWidth; - } - - newPos -= mSelectorPos - ROUNDER; - -// scrollContentsTo( QPointF( newPos, 0 ), time ); -// 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().frequency(); } diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/src/radiofrequencystripbase.cpp --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// User includes +#include "radiofrequencystripbase.h" +#include "radiofrequencystripdef.h" +#include "radiofrequencyitem.h" + +/*! + * Convenience function to check signal-slot connections + */ +//#define CHECK_SIGNAL_CONNECTIONS +static bool connectAndCheck( const QObject* sender, const char* signal, + const QObject* receiver, const char* member, + Qt::ConnectionType type = Qt::AutoConnection ) +{ + bool connected = QObject::connect( sender, signal, receiver, member, type ); + + #ifdef CHECK_SIGNAL_CONNECTIONS + + if ( !connected ) { + qDebug() << "Failed to make a signal-slot connection!"; + qDebug() << "sender: " << sender->metaObject()->className(); + qDebug() << "signal: " << signal; + qDebug() << "receiver: " << receiver->metaObject()->className(); + qDebug() << "slot/signal: " << signal; + + Q_ASSERT( false ); + + // ---------------------------------------------------------------- + // SIGNAL-SLOT CONNECT FAILED! + // ---------------------------------------------------------------- + } + + #endif // CHECK_SIGNAL_CONNECTIONS + + return connected; +} + +/*! + * + */ +RadioFrequencyStripBase::RadioFrequencyStripBase( QGraphicsItem* parent ) : + RadioStripBase( parent ), + mItemHeight( 8 ), + mMinFrequency( 87500000 ), + mMaxFrequency( 108000000 ), + mFrequencyStepSize( 100000 ), + mFrequency( 87500000 ), + mSelectorImage( new QGraphicsPixmapItem( this ) ), + mSeparatorPos( 0.0 ), + mMaxWidth( 0 ), + mSelectorPos( 0.0 ), + mLeftButton( 0 ), + mRightButton( 0 ), + mManualSeekTimer( NULL ), + mManualSeekMode( false ), + mLastReportedFrequency( 0 ), + mManualSeekTimerId( 0 ), + mForegroundColor( Qt::white )//HbColorScheme::color( FrequencyStrip::TEXT_COLOR_ATTRIBUTE ) ) +{ + setScrollingStyle( HbScrollArea::PanWithFollowOn ); + setItemSize( QSizeF( FrequencyStrip::ITEM_WIDTH + FrequencyStrip::PIXMAP_OVERLAP / 2, mItemHeight ) ); + setOverlap( FrequencyStrip::PIXMAP_OVERLAP / 2 ); +} + +/*! + * Property + */ +void RadioFrequencyStripBase::setItemHeight( int itemHeight ) +{ + mItemHeight = itemHeight; +} + +/*! + * Property + */ +int RadioFrequencyStripBase::itemHeight() const +{ + return mItemHeight; +} + +/*! + * + */ +void RadioFrequencyStripBase::initbase( uint minFrequency, uint maxFrequency, uint stepSize, uint frequency ) +{ + mMinFrequency = minFrequency; + mMaxFrequency = maxFrequency; + mFrequencyStepSize = stepSize; + mFrequency = frequency; + + initModel(); + initEmptyItems(); + initPositions(); + + HbDeviceProfile deviceProfile; + mItemHeight = static_cast( mItemHeight * deviceProfile.unitValue() ); + + mManualSeekTimer = new QTimer( this ); + mManualSeekTimer->setInterval( FrequencyStrip::MANUALSEEK_START_TIMEOUT ); + mManualSeekTimer->setSingleShot( true ); + connectAndCheck( mManualSeekTimer, SIGNAL(timeout()), + this, SLOT(toggleManualSeek()) ); + + connectAndCheck( this, SIGNAL(scrollingEnded()), + this, SLOT(handleScrollingEnd()) ); + + grabGesture( Qt::SwipeGesture ); + + //TODO: Remove. Stepsize temporarily hardcoded to 100 Khz in europe region + if ( mFrequencyStepSize < FrequencyStrip::ONE_HUNDRED_KHZ ) { + mFrequencyStepSize = FrequencyStrip::ONE_HUNDRED_KHZ; + } + + updateAllItems(); + + showButtons(); +} + +/*! + * + */ +void RadioFrequencyStripBase::createButtonsFromDocml( HbDocumentLoader& uiLoader, const QString& leftButtonName, const QString& rightButtonName ) +{ + Q_ASSERT( !mLeftButton && !mRightButton ); + mLeftButton = qobject_cast( uiLoader.findWidget( leftButtonName ) ); + mRightButton = qobject_cast( uiLoader.findWidget( rightButtonName ) ); + + initButtons(); +} + +/*! + * + */ +void RadioFrequencyStripBase::createButtons() +{ + Q_ASSERT( !mLeftButton && !mRightButton ); + mLeftButton = new HbPushButton( this ); + mRightButton = new HbPushButton( this ); + + mLeftButton->setIcon( HbIcon( "qtg_mono_previous" ) ); + mRightButton->setIcon( HbIcon( "qtg_mono_next" ) ); + + initButtons(); +} + +/*! + * + */ +void RadioFrequencyStripBase::setFrequency( const uint frequency, int reason, Scroll::Direction direction ) +{ + if ( mFrequencies.contains( frequency ) ) { + scrollToFrequency( frequency, direction, mAutoScrollTime ); + } +} + +/*! + * + */ +uint RadioFrequencyStripBase::frequency() const +{ + return mFrequency; +} + +/*! + * + */ +bool RadioFrequencyStripBase::isInManualSeekMode() const +{ + return mManualSeekMode; +} + +/*! + * + */ +void RadioFrequencyStripBase::cancelManualSeek() +{ + mManualSeekTimer->stop(); + if ( mManualSeekMode ) { + toggleManualSeek(); + } +} + +/*! + * + */ +void RadioFrequencyStripBase::addScannedStation( uint frequency ) +{ + FrequencyPos pos = mFrequencies.value( frequency ); + updateItem( pos.mItem, frequency ); +} + +/*! + * + */ +void RadioFrequencyStripBase::updateFavorite( uint frequency ) +{ + FrequencyPos pos = mFrequencies.value( frequency ); + updateItem( pos.mItem ); +} + +/*! + * Public slot + * + */ +void RadioFrequencyStripBase::setScanningMode( bool isScanning ) +{ + mManualSeekTimer->stop(); + if ( isScanning ) { + initEmptyItems(); + hideButtons(); + scrollToFrequency( mMinFrequency, Scroll::Shortest, mAutoScrollTime ); + } else { + showButtons(); + } + setEnabled( !isScanning ); +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::initEmptyItems() +{ + //TODO: Remove the weird hack of checking the sender + if ( !sender() || !isScanning() ) { + QList emptyList; + foreach ( RadioFrequencyItem* item, mFrequencyItems ) { + QPixmap pixmap = drawPixmap( item->frequency(), emptyList, item ); + item->setPixmap( pixmap ); + } + } +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::removeStation( const QModelIndex& parent, int first, int last ) +{ + Q_UNUSED( parent ); + updateStationsInRange( first, last, true ); +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::updateStation( const QModelIndex& parent, int first, int last ) +{ + Q_UNUSED( parent ); + updateStationsInRange( first, last ); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleLeftButton() +{ + skipToPreviousFavorite(); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleRightButton() +{ + skipToNextFavorite(); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleLongLeftButton() +{ + seekDown(); +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleLongRightButton() +{ + seekUp(); +} + +/*! + * Private slot + * + */ +void RadioFrequencyStripBase::toggleManualSeek() +{ + mManualSeekMode = !mManualSeekMode; + emit manualSeekChanged( mManualSeekMode ); + + if ( mManualSeekMode ) { + grabMouse(); + hideButtons(); + mManualSeekTimerId = startTimer( FrequencyStrip::MANUALSEEK_SIGNAL_DELAY ); + } else { + ungrabMouse(); + showButtons(); + killTimer( mManualSeekTimerId ); + mManualSeekTimerId = 0; + } +} + +/*! + * Private slot + */ +void RadioFrequencyStripBase::handleScrollingEnd() +{ + // Check if the selector is in the invalid area where the strip loops around + const int selectorPosition = selectorPos(); + if ( mManualSeekMode ) { + if ( !mPositions.contains( selectorPosition ) ) { + if ( selectorPosition < mMaxWidth - FrequencyStrip::ITEM_WIDTH + mSeparatorPos ) { + scrollToFrequency( mMaxFrequency, Scroll::Shortest, 500 ); + emitFrequencyChanged( mMaxFrequency, FrequencyStrip::ManualSeekUpdate, Scroll::Shortest ); + } else { + scrollToFrequency( mMinFrequency, Scroll::Shortest, 500 ); + emitFrequencyChanged( mMinFrequency, FrequencyStrip::ManualSeekUpdate, Scroll::Shortest ); + } + } + + mManualSeekTimer->start( FrequencyStrip::MANUALSEEK_END_TIMEOUT ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::updateItemPrimitive( QGraphicsItem* itemToUpdate, int itemIndex ) +{ + QGraphicsPixmapItem* item = static_cast( itemToUpdate ); + if ( itemIndex < mFrequencyItems.count() ) { + item->setPixmap( mFrequencyItems.at( itemIndex )->updatePrimitive( item ) ); + } +} + +/*! + * \reimp + */ +QGraphicsItem* RadioFrequencyStripBase::createItemPrimitive( QGraphicsItem* parent ) +{ + return new QGraphicsPixmapItem( parent ); +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::scrollPosChanged() +{ + if ( mManualSeekMode ) { + const int pos = selectorPos(); + const uint frequency = mPositions.value( pos ); + if ( frequency > 0 ) { + mFrequency = mPositions.value( pos ); + emitFrequencyChanged( mFrequency, FrequencyStrip::ManualSeekUpdate, Scroll::Shortest ); + } + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::resizeEvent ( QGraphicsSceneResizeEvent* event ) +{ + RadioStripBase::resizeEvent( event ); + + initSelector(); + + const qreal height = event->newSize().height(); + const qreal width = event->newSize().width(); + + mSelectorPos = width / 2; + mSelectorImage->setOffset( mSelectorPos - ( FrequencyStrip::INDICATOR_WIDTH / 2 ), 0.0 ); + + if ( mLeftButton && mRightButton ) { + mLeftButton->resize( height, height ); + mRightButton->resize( height, height ); + mRightButton->setPos( QPointF( width - height, 0 ) ); + } + + scrollToFrequency( mFrequency ); +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::changeEvent( QEvent* event ) +{ + if ( event->type() == HbEvent::ThemeChanged ) { + // Update the foreground color and redraw each item + mForegroundColor = Qt::white;// HbColorScheme::color( FrequencyStrip::TEXT_COLOR_ATTRIBUTE ); + updateAllItems(); + } + + return RadioStripBase::changeEvent(event); +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::mousePressEvent( QGraphicsSceneMouseEvent* event ) +{ + RadioStripBase::mousePressEvent( event ); + + mManualSeekTimer->stop(); + if ( mManualSeekMode ) { + const bool insideStrip = rect().contains( event->pos() ); + if ( !insideStrip ) { + toggleManualSeek(); + } + } else { + mManualSeekTimer->start( FrequencyStrip::MANUALSEEK_START_TIMEOUT ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::mouseReleaseEvent( QGraphicsSceneMouseEvent* event ) +{ + RadioStripBase::mouseReleaseEvent( event ); + + mManualSeekTimer->stop(); + if ( mManualSeekMode && !isScrolling() ) { + mManualSeekTimer->start( FrequencyStrip::MANUALSEEK_END_TIMEOUT ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::gestureEvent( QGestureEvent* event ) +{ + HbSwipeGesture* swipeGesture = static_cast( event->gesture( Qt::SwipeGesture ) ); + if ( swipeGesture && !mManualSeekMode ) { + if ( swipeGesture->state() == Qt::GestureFinished ) { + if ( swipeGesture->horizontalDirection() == QSwipeGesture::Left ) { + skipToNext(); + } else if ( swipeGesture->horizontalDirection() == QSwipeGesture::Right ) { + skipToPrevious(); + } + } + } else if ( mManualSeekMode ) { + RadioStripBase::gestureEvent( event ); + } +} + +/*! + * \reimp + */ +void RadioFrequencyStripBase::timerEvent( QTimerEvent* event ) +{ + Q_UNUSED( event ); + if ( mLastReportedFrequency != mFrequency ) { + mLastReportedFrequency = mFrequency; + emitFrequencyChanged( mFrequency, FrequencyStrip::ManualSeekTune, Scroll::Shortest ); + } +} + +/*! + * + */ +void RadioFrequencyStripBase::initModel() +{ + const uint minFreq = uint( qreal(mMinFrequency) / FrequencyStrip::ONE_HERTZ + FrequencyStrip::ROUNDER ); + const uint maxFreq = uint( qreal(mMaxFrequency) / FrequencyStrip::ONE_HERTZ + 0.9 ); // always round up + + QStringList list; + QString freqText; + for ( uint i = minFreq; i <= maxFreq; ++i ) { + freqText = QString::number( i ); + list.append( freqText ); + mFrequencyItems.append( new RadioFrequencyItem( freqText ) ); + } + mFrequencyItems.append( new RadioFrequencyItem( "" ) ); + list.append( "" ); + + mMaxWidth = list.count() * FrequencyStrip::ITEM_WIDTH; + + mSeparatorPos = qreal(FrequencyStrip::ITEM_WIDTH) / 2; + const uint minDrawableFreq = minFreq * FrequencyStrip::ONE_HERTZ - FrequencyStrip::HALF_HERTZ;; + const uint maxDrawableFreq = maxFreq * FrequencyStrip::ONE_HERTZ + FrequencyStrip::HALF_HERTZ; + mSeparatorPos += qreal( ( mMinFrequency - minDrawableFreq ) / 2 ) / FrequencyStrip::PIXEL_IN_HZ; + mSeparatorPos -= qreal( ( maxDrawableFreq - mMaxFrequency ) / 2 ) / FrequencyStrip::PIXEL_IN_HZ; + + setModel( new QStringListModel( list, this ) ); +} + +/*! + * + */ +void RadioFrequencyStripBase::initSelector() +{ + QPixmap selectorPixmap = QPixmap( QSize( FrequencyStrip::SELECTOR_WIDTH, (int)size().height() ) ); + selectorPixmap.fill( Qt::red ); + mSelectorImage->setPixmap( selectorPixmap ); + mSelectorImage->setZValue( FrequencyStrip::SELECTOR_Z_POS ); +} + +/*! + * + */ +void RadioFrequencyStripBase::initPositions() +{ + int prevPos = 0; + int nextPos = 0; + const int lastPos = mFrequencies.value( mMaxFrequency ).mPosition; + for ( int i = mFrequencies.value( mMinFrequency ).mPosition; i < lastPos; ++i ) { + if ( mPositions.contains( i ) ) { + prevPos = i; + const uint freq = mPositions.value( prevPos ) + mFrequencyStepSize; + if ( mFrequencies.contains( freq ) ) { + nextPos = mFrequencies.value( freq ).mPosition; + } else { + nextPos = prevPos; + } + } else { + const int nearestHit = ( i - prevPos ) < ( nextPos - i ) ? prevPos : nextPos; + mPositions.insert( i, mPositions.value( nearestHit ) ); + } + } +} + +/*! + * + */ +void RadioFrequencyStripBase::initButtons() +{ + Q_ASSERT( mLeftButton && mRightButton ); + connectAndCheck( mLeftButton, SIGNAL(clicked()), + this, SLOT(handleLeftButton()) ); + connectAndCheck( mRightButton, SIGNAL(clicked()), + this, SLOT(handleRightButton()) ); + connectAndCheck( mLeftButton, SIGNAL(longPress(QPointF)), + this, SLOT(handleLongLeftButton()) ); + connectAndCheck( mRightButton, SIGNAL(longPress(QPointF)), + this, SLOT(handleLongRightButton()) ); + + mLeftButton->setZValue( FrequencyStrip::SELECTOR_Z_POS ); + mLeftButton->setObjectName( FrequencyStrip::LEFT_BUTTON ); + mRightButton->setZValue( FrequencyStrip::SELECTOR_Z_POS ); + mRightButton->setObjectName( FrequencyStrip::RIGHT_BUTTON ); + + const qreal height = size().height(); + const qreal width = size().width(); + mLeftButton->resize( height, height ); + mRightButton->resize( height, height ); + mRightButton->setPos( QPointF( width - height, 0 ) ); + + // Add left button effects + QStringList pathList; + pathList << ":/effects/slide_to_left.fxml" << ":/effects/slide_from_left.fxml"; + QStringList eventList; + eventList << FrequencyStrip::SLIDE_TO_LEFT << FrequencyStrip::SLIDE_FROM_LEFT; + HbEffect::add( mLeftButton, pathList, eventList ); + + // Add right button effects + pathList.clear(); + pathList << ":/effects/slide_to_right.fxml" << ":/effects/slide_from_right.fxml"; + eventList.clear(); + eventList << FrequencyStrip::SLIDE_TO_RIGHT << FrequencyStrip::SLIDE_FROM_RIGHT; + HbEffect::add( mRightButton, pathList, eventList ); +} + +/*! + * + */ +void RadioFrequencyStripBase::addFrequencyPos( int pos, uint frequency, RadioFrequencyItem* item ) +{ + mFrequencies.insert( frequency, FrequencyPos( pos, item ) ); + mPositions.insert( pos, frequency ); +} + +/*! + * + */ +void RadioFrequencyStripBase::updateStationsInRange( int first, int last, bool stationRemoved ) +{ + if ( !isScanning() ) { + uint frequency = 0; + for ( int i = first; i <= last; ++i ) { + frequency = frequencyAtIndex( i ); + if ( mFrequencies.contains( frequency ) ) { + FrequencyPos pos = mFrequencies.value( frequency ); + updateItem( pos.mItem, 0, stationRemoved ? frequency : 0 ); + } + } + } +} + +/*! + * + */ +void RadioFrequencyStripBase::updateItem( RadioFrequencyItem* item, uint upperRange, uint ignoredFrequency ) +{ + if ( item ) { + uint frequency = item->frequency(); + QList markers; + + if ( upperRange == 0 ) { + upperRange = frequency + FrequencyStrip::HALF_HERTZ; + } + + if ( isInitialized() ) { + markers = stationsInRange( frequency - FrequencyStrip::HALF_HERTZ, upperRange ); + for ( int i = markers.count() - 1; ignoredFrequency > 0 && i >= 0; --i ) { + if ( markers[i].mFrequency == ignoredFrequency ) { + markers.removeAt( i ); + break; + } + } + } + + QPixmap pixmap = drawPixmap( frequency, markers, item ); + item->setPixmap( pixmap ); + + foreach ( const FrequencyStrip::StationMarker& marker, markers ) { + FrequencyPos pos = mFrequencies.value( marker.mFrequency ); + mFrequencies.insert( marker.mFrequency, pos ); + } + } +} + +/*! + * + */ +void RadioFrequencyStripBase::updateAllItems() +{ + foreach ( RadioFrequencyItem* item, mFrequencyItems ) { + updateItem( item ); + } +} + +/*! + * + */ +QPixmap RadioFrequencyStripBase::drawPixmap( uint frequency, QList stations, RadioFrequencyItem* item ) +{ + QPixmap pixmap( FrequencyStrip::PIXMAP_WIDTH, mItemHeight ); + pixmap.fill( Qt::transparent ); + QPainter painter( &pixmap ); + QPen normalPen = painter.pen(); + QPen favoritePen = normalPen; + normalPen.setColor( mForegroundColor ); + painter.setPen( normalPen ); + + if ( frequency == 0 ) { + painter.drawLine( makeTab( mSeparatorPos - 1 + FrequencyStrip::ROUNDER, mItemHeight ) ); + painter.drawLine( makeTab( mSeparatorPos + FrequencyStrip::ROUNDER, mItemHeight ) ); + return pixmap; + } + + const QString itemText = QString::number( frequency / FrequencyStrip::ONE_HERTZ ); + const uint startFrequency = frequency - FrequencyStrip::HALF_HERTZ; + const uint endFrequency = startFrequency + FrequencyStrip::ONE_HERTZ; + const uint roundedMin = int( qreal(mMinFrequency) / FrequencyStrip::ONE_HERTZ + FrequencyStrip::ROUNDER ); + const uint freq = frequency / FrequencyStrip::ONE_HERTZ; + const int diff = freq - roundedMin; + const qreal startPixel = diff * FrequencyStrip::ITEM_WIDTH; + qreal pixels = 0.0; + const qreal leftOverlap = FrequencyStrip::PIXMAP_OVERLAP / 2; + + for ( uint frequency = startFrequency; frequency <= endFrequency; frequency += mFrequencyStepSize ) { + + if ( frequency < mMinFrequency || frequency > mMaxFrequency ) { + continue; + } + + pixels = qreal( frequency - startFrequency ) / FrequencyStrip::PIXEL_IN_HZ; + if ( frequency % FrequencyStrip::ONE_HERTZ == 0 ) { + + // Draw the high frequency tab and the frequency text for the even number + normalPen.setWidth( 3 ); + painter.setPen( normalPen ); + painter.drawLine( makeTab( pixels + leftOverlap - 1, FrequencyStrip::TAB_HEIGHT_BIG ) ); + normalPen.setWidth( 1 ); + painter.setPen( normalPen ); + + // Draw the frequency text and its 00 decimals + painter.setFont( FrequencyStrip::DECIMAL_FONT ); + const int decimalWidth = painter.fontMetrics().width( FrequencyStrip::DECIMAL_TEXT ); + const int decimalSpace = painter.fontMetrics().leftBearing( '.' ); + painter.setFont( FrequencyStrip::FREQUENCY_FONT ); + const int frequencyWidth = painter.fontMetrics().width( itemText ); + const int textPosX = int( pixels + leftOverlap - ( frequencyWidth + decimalSpace + decimalWidth ) / 2 ); + painter.drawText( QPoint( textPosX, FrequencyStrip::FREQUENCY_TEXT_Y_POS ), itemText ); + painter.setFont( FrequencyStrip::DECIMAL_FONT ); + painter.drawText( QPoint( textPosX + frequencyWidth + decimalSpace, FrequencyStrip::FREQUENCY_TEXT_Y_POS ), FrequencyStrip::DECIMAL_TEXT ); + + } else if ( frequency % FrequencyStrip::ONE_TAB_IN_HZ == 0 ) { + + // Draw the low frequency tab for the uneven number + painter.drawLine( makeTab( pixels + leftOverlap, FrequencyStrip::TAB_HEIGHT_SMALL ) ); + + } + + addFrequencyPos( int( startPixel + pixels + FrequencyStrip::ROUNDER ), frequency, item ); + } + + // Draw favorites and local stations + favoritePen.setColor( Qt::yellow ); + + foreach ( const FrequencyStrip::StationMarker& station, stations ) { + const uint frequency = station.mFrequency; + pixels = qreal( frequency - startFrequency ) / FrequencyStrip::PIXEL_IN_HZ; + + if ( station.mIsFavorite ) { + favoritePen.setWidth( FrequencyStrip::PEN_WIDTH_FAVORITE ); + painter.setPen( favoritePen ); + painter.drawEllipse( int( pixels + leftOverlap - 3 ), FrequencyStrip::STATION_MARKER_Y_POS - 3, 6, 6 ); + } else { + favoritePen.setWidth( 1 ); + painter.setPen( favoritePen ); + painter.drawEllipse( int( pixels + leftOverlap - 4 ), FrequencyStrip::STATION_MARKER_Y_POS - 4, 8, 8 ); + } + } + + return pixmap; +} + +/*! + * + */ +QLineF RadioFrequencyStripBase::makeTab( qreal pos, int height ) +{ + return QLineF( pos, mItemHeight - height, pos, mItemHeight ); +} + +/*! + * + */ +int RadioFrequencyStripBase::selectorPos() const +{ + const int pos = int( -contentWidget()->x() + mSelectorPos + FrequencyStrip::ROUNDER ); + return pos % mMaxWidth; +} + +/*! + * + */ +void RadioFrequencyStripBase::scrollToFrequency( uint frequency, Scroll::Direction direction, int time ) +{ + int targetFreqPos = mFrequencies.value( frequency ).mPosition; + const int currentFreqPos = mFrequencies.value( mFrequency ).mPosition; + const int currentPos = int( -contentWidget()->x() + mSelectorPos + FrequencyStrip::ROUNDER ); + const bool isInSecondHalf = currentPos >= mMaxWidth - FrequencyStrip::ITEM_WIDTH + mSeparatorPos; + + // Special case: When there is only one favorite and the user presses skip + // the strip must scroll around to the same frequency. + if ( mFrequency == frequency && direction != Scroll::Shortest ) { + if ( direction == Scroll::Left ) { + targetFreqPos += mMaxWidth; + } else { + targetFreqPos -= mMaxWidth; + } + } + + mFrequency = frequency; + + qreal newPos = targetFreqPos; + if ( direction == Scroll::Left ) { + + if ( currentFreqPos > targetFreqPos ) { + newPos += mMaxWidth; + } + + } else if ( direction == Scroll::Right ) { + + if ( currentFreqPos < targetFreqPos ) { + newPos -= mMaxWidth; + } + + } + + if ( isInSecondHalf ) { + newPos += mMaxWidth; + } + + newPos -= mSelectorPos - FrequencyStrip::ROUNDER; + +// scrollContentsTo( QPointF( newPos, 0 ), time ); +// TODO: Remove this and uncomment the above line. This is a temporary workaround to get the strip to move + scrollContentsTo( QPointF( newPos, 0 ), 0 ); +} + +/*! + * + */ +void RadioFrequencyStripBase::hideButtons() +{ + HbEffect::start( mLeftButton, FrequencyStrip::SLIDE_TO_LEFT ); + HbEffect::start( mRightButton, FrequencyStrip::SLIDE_TO_RIGHT ); +} + +/*! + * + */ +void RadioFrequencyStripBase::showButtons() +{ + HbEffect::start( mLeftButton, FrequencyStrip::SLIDE_FROM_LEFT ); + HbEffect::start( mRightButton, FrequencyStrip::SLIDE_FROM_RIGHT ); +} diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/src/radiomainview.cpp --- 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(); } diff -r f8c3d4e6102c -r ac7857bd5fdb radioapp/radiowidgets/src/radiostripbase.cpp --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/settings/stub/group/radioenginesettings_stub.mmp --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/settings/tsrc/group/SettingsTestModule.mmp --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/settings/tsrc/group/SettingsTestModule_nrm.mmp --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/utils/group/radioengineutils.mmp --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/utils/src/cradioaccessoryobserver.cpp --- 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 +//#include +#include #ifndef __WINS__ - -const TUint KPhysicalConnectionBitmask = KPCNokiaAV | KPCWired; +// See accpolpropgenericid.h definitions KPCNokiaAV == 0x20000, +// Forced to use hard coded value here to avoid including from epoc32/include/internal +const TUint KPhysicalConnectionBitmask = 0x20000 | KPCWired; #else - -const TUint KPhysicalConnectionBitmask = 0x20000 | 0x1; +// See accpolpropgenericid.h definitions KPCNokiaAV == 0x20000, +// Forced to use hard coded value here to avoid including from epoc32/include/internal +const TUint KPhysicalConnectionBitmask = 0x20000 | KPCWired; #endif // __WINS__ diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/utils/src/cradiosystemeventdetector.cpp --- 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 -#include +//#include +//#include +#include #endif //__WINS__ @@ -36,7 +37,7 @@ #include "mradiosystemeventdetectorobserver.h" /** Granularity for audio category arrays. */ -const TInt KVRAudioCategoryArrayGranularity = 3; +//const TInt KVRAudioCategoryArrayGranularity = 3; // This has to be the last include. #ifdef STUB_CONSTELLATION @@ -84,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 +*/ } // --------------------------------------------------------------------------- diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/utils/stub/bwins/fmradioengineutils_stubu.def --- 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) diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/utils/stub/eabi/fmradioengineutils_stubu.def --- 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 diff -r f8c3d4e6102c -r ac7857bd5fdb radioengine/utils/stub/group/radioengineutils_stub.mmp --- 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