diff -r 63aabac4416d -r f54ebcfc1b80 hswidgetplugin/fmradiohswidgetplugin/src/fmradiohswidget.cpp --- a/hswidgetplugin/fmradiohswidgetplugin/src/fmradiohswidget.cpp Fri Apr 16 14:58:55 2010 +0300 +++ b/hswidgetplugin/fmradiohswidgetplugin/src/fmradiohswidget.cpp Mon May 03 12:31:41 2010 +0300 @@ -26,6 +26,8 @@ #include "fmradiohswidgetprocesshandler.h" #include "fmradiohswidgetprofilereader.h" #include "fmradiohswidgetradioserviceclient.h" +#include "radioservicedef.h" +#include "radio_global.h" /*! \ingroup group_fmradiohs_widget @@ -64,6 +66,8 @@ load(DOCML_WIDGET); handleRadioStateChange(QVariant(NotRunning)); + + mRadioServiceClient->init(); } /*! @@ -280,27 +284,28 @@ void FmRadioHsWidget::handleRadioInformationChange( int notificationId, QVariant value) { - QString informationText; - if (value.canConvert(QVariant::String)) { - informationText = value.toString(); - } else { - return; - } - - switch (notificationId) { - /* - Name = 0, - Genre, - RadioText, - Homepage, - Song - */ - case 0: // Name - if (updateRadioInformation(KRadioInformationStationName, - informationText)) { - radioInformationChanged(); + switch ( notificationId ) { + + case RadioServiceNotification::FavoriteCount: + break; + + case RadioServiceNotification::Frequency: + { + const uint frequency = value.toUInt(); + QString freqString; + freqString.sprintf( "%.1f", qreal( frequency ) / KFrequencyMultiplier ); + if (updateRadioInformation( KRadioInformationFrequency, freqString )) { + radioInformationChanged(); + } } break; + + case RadioServiceNotification::Name: + if (updateRadioInformation( KRadioInformationStationName, value.toString() )) { + radioInformationChanged(); + } + break; + /* case FmRadioHsWidgetRadioServiceClient::InformationTypeCallSign: if (updateRadioInformation(KRadioInformationCallSign, informationText)) { @@ -312,22 +317,32 @@ } break; - */ case 2: // RadioText - if (updateRadioInformation(KRadioInformationRt, informationText)) { - radioInformationChanged(); - } + */ + case RadioServiceNotification::RadioText: + if (updateRadioInformation( KRadioInformationRt, value.toString() )) { + radioInformationChanged(); + } break; + /* case FmRadioHsWidgetRadioServiceClient::InformationTypeDynamicPsName: if (updateRadioInformation(KRadioInformationDynamicPsName, informationText)) { } break; -*/ case 1: // Genre - if (updateRadioInformation(KRadioInformationPty, informationText)) { - radioInformationChanged(); - } + */ + case RadioServiceNotification::Genre: + if (updateRadioInformation( KRadioInformationPty, value.toString() )) { + radioInformationChanged(); + } break; + + case RadioServiceNotification::HomePage: + break; + + case RadioServiceNotification::Song: + break; + default: break; }