--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/uisrc/irnowplayingview.cpp Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,3307 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+
+/* ---------------------------------------------------------------------------
+* Version history:
+* Template version:
+* <ccm_history>
+*
+* Version: 18, Tue Mar 19 18:00:00 2008 by Rohit
+* Ref:
+* Implemented change request to display Byte Counter in KB till 0.1 MB, and in MB threrafter
+*
+* </ccm_history>
+* ============================================================================
+*/
+
+// INCLUDE FILES
+
+
+#include <aknviewappui.h>
+#include <alf/alfcontrolgroup.h>
+#include <alf/alfdisplay.h>
+#include <alf/alfenv.h>
+#include <alf/alfroster.h>
+#include <eikmenup.h>
+#include <eiklabel.h>
+#include <avkon.rsg>
+#include <aknnotewrappers.h>
+#include <internetradio.rsg>
+#include <data_caging_paths_strings.hrh>
+#include <mdaaudiosampleplayer.h>
+#include <stereowideningbase.h>
+#include <f32file.h> // for File operations
+#include <s32file.h> // for File operations
+#include <akntoolbar.h>
+#include <akntouchpane.h>
+#include <aknbutton.h>
+#include <eikcolib.h>
+/* no need to change to lower case */
+#include <AknsConstants.h>
+#include <hlplch.h>
+#ifdef MUSICSHOP_AVAILABLE
+#include <mpxfindinmusicshop.h> //For Find in Shop
+#include <mpxmusicplayerviewplugin.hrh>
+/* no need to change to lower case */
+#include <MusicWapCenRepKeys.h>
+#endif
+#include <apgcli.h> //For Find in Shop
+#include <e32des8.h>
+#include <stringloader.h>
+#include <internetradio.mbg>
+#include <aknwaitdialog.h>
+#include <math.h> // floor()
+
+#include <mpxviewplugin.h>
+#include <mpxviewplugin.hrh>
+
+
+#include <featmgr.h>//Fmtransmitter
+#include <features.hrh>
+
+
+#include "iraap.hlp.hrh"
+
+#include "irpubsubkeys.h"
+#include "irisdspreset.h"
+#include "irfavoritesdb.h"
+#include "irisdswrapper.h"
+#include "irisdspreset.h"
+#include "mlogodownloadobserver.h"
+#include "irlogodownloadengine.h"
+#include "irbaseview.h"
+#include "irnowplayingviewcontainer.h"
+#include "irnowplayingview.h"
+#include "irui.h"
+#include "ir.hrh"
+#include "ircommon.h"
+#include "irdebug.h"
+#include "irhistory.h"
+#include "irpreset.h"
+#include "irmetadata.h"
+#include "irsettings.h"
+#include "irstationlogocontrol.h"
+#include "irstationlogodata.h"
+#include "pspresetobserver.h"
+#include "irdataprovider.h"
+#include "irhttpdataprovider.h"
+#include "irstationinformationdata.h"
+#include "irstationinformationdisplay.h"
+#include "irradioidle.h"
+#include "irdialoglauncher.h"
+#include "irmediaclient.h"
+#include "irnowplayingwrapper.h"
+#include "irstationinfoview.h"
+#include "irpubsub.h"
+
+
+#include "irsystemeventcollector.h"
+#include <remconcoreapitarget.h>
+#include <remconinterfaceselector.h>
+#include "irnetworkcontroller.h"
+#include "msyncpresetobserver.h" // MSyncPresetObserver
+
+_LIT( KIRMifFileName, "\\resource\\apps\\InternetRadio.mif" );
+
+const TInt KIRLogoArrayGranularity = 10; // Granularity for logo arrays
+const TInt KPresetNumbering = 4;//format 1-20.
+const TInt KOne =1;
+const TInt KSize =360;
+const TInt KMinVolume=0;
+const TInt KMaxVolumeRange=10;
+const TInt KMaxVolume=10;
+const TInt KWaitTimeInMicroSeconds = 100000;
+const TInt KMusicStoreURLSize = 512;
+
+// Constants for byte counter display
+const TInt KIRByteCounterDisplayThreshold1 = 10485760; // 10 MB
+const TInt KIRByteCounterDisplayThreshold2 = 104857600; // 100 MB
+const TInt KIRMBtoBytesConversion = 1048576; // 1 MB
+
+//Literal Declaration
+_LIT(KConst1," ");
+//_LIT(KHiFn,"-")
+const TInt KTwo = 2;
+const TInt KChannelNameSize = 200;
+const TInt KTen=10;
+const TInt KHundred=100;
+const TUid KFmTxAppUid = { 0x10282BEF };
+const TInt KDefault=-1;
+const TInt KDefaultValue=-2;
+//Static Variable Declaration
+TBool CIRNowPlayingView::iPlaying;
+
+#ifdef __IRA_FEATURE_EQUALIZER
+const TUint32 KMPXEqualizerViewImplementationId = 0x101FFC77;
+#endif
+
+// ==================== LOCAL FUNCTIONS ====================
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::CIRNowPlayingView( CAlfEnv& aAlfEnv )
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------
+//
+CIRNowPlayingView::CIRNowPlayingView( CAlfEnv& aAlfEnv ):
+ iAlfEnv( aAlfEnv ), iToolbar(NULL), iStartUp(ETrue)
+ ,iMPXFindInShop(NULL)
+#ifdef __IRA_FEATURE_EQUALIZER
+ , iMpxEqualizerViewPlugin(NULL)
+#endif // __IRA_FEATURE_EQUALIZER
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::CIRNowPlayingView" );
+ }
+// ---------------------------------------------------------
+// CIRNowPlayingView::ConstructL( )
+// EPOC default constructor can leave.
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------
+void CIRNowPlayingView::ConstructL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::ConstructL - Entering" );
+ CIRBaseView::ConstructL(R_IR_NOWPLAYING_VIEW );
+ EnableObserverL(EIRSystemEventObserver);
+ iIRSettings = CIRSettings::OpenL();
+ iIndex=0;
+ iRockerIndex=0;
+ iAlfEnv.AddActionObserverL( this );
+ iDefaultLogo=EFalse;
+
+ //For Find in Shop
+#ifdef __IRA_FEATURE_EQUALIZER
+ if (FeatureManager::FeatureSupported( KFeatureIdEqualizer))
+ {
+#ifdef MUSICSHOP_AVAILABLE
+ TRAPD(error, iMPXFindInShop = CMPXFindInMShop::NewL());
+ if (error != KErrNotFound && error != KErrNone)
+ {
+ User::Leave(error);
+ }
+#endif
+ TRAPD(eqError, iMpxEqualizerViewPlugin = CMPXViewPlugin::NewL(
+ TUid::Uid(KMPXEqualizerViewImplementationId), NULL));
+ if (eqError != KErrNotFound && eqError != KErrNone)
+ {
+ User::Leave(eqError);
+ }
+ }
+#endif // __IRA_FEATURE_EQUALIZER
+
+ iVolPopup = CAknVolumePopup::NewL(NULL, ETrue);
+ iVolPopup->SetObserver(this);
+ iVolPopup->SetRange(KMinVolume,KMaxVolumeRange);
+ iVolPopup->SetValue(2);
+
+ iUpdateLastplayed=ETrue;
+ iSameUrl=EFalse;
+ iEaualizerOn=EFalse;
+ iCallActive=EFalse;
+
+ iRequestPending = EFalse;
+ iStationHasLogo=EFalse;
+ iNextOrPrevRequest=EFalse;
+ iVolumeMute=EFalse;
+ // TO Do: need to check
+ iNowPlayingWrapper->SetFavFocus(-1);
+ IRLOG_DEBUG( "CIRNowPlayingView::ConstructL - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView* CIRNowPlayingView::NewL( CAlfEnv& aEnv )
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CIRNowPlayingView* CIRNowPlayingView::NewL( CAlfEnv& aEnv)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::NewL" );
+ CIRNowPlayingView* self = CIRNowPlayingView::NewLC(aEnv);
+ CleanupStack::Pop(self);
+ IRLOG_DEBUG( "CIRNowPlayingView::NewL - Exiting." );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::ConstructL( )
+// Two-phased constructor.
+// ---------------------------------------------------------
+CIRNowPlayingView* CIRNowPlayingView::NewLC( CAlfEnv& aAlfEnv )
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::NewLC - Entering" );
+ CIRNowPlayingView* self = new (ELeave) CIRNowPlayingView( aAlfEnv );
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ IRLOG_DEBUG( "CIRNowPlayingView::NewLC - Exiting" );
+ return self;
+ }
+// ---------------------------------------------------------
+// CIRNowPlayingView::ConstructL( )
+// Destructor
+// ---------------------------------------------------------
+CIRNowPlayingView::~CIRNowPlayingView()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::~CIRNowPlayingView - Entering" );
+ CAlfEnv* alfEnv = CAlfEnv::Static();
+ if( alfEnv )
+ {
+ alfEnv->PrimaryDisplay().Roster().Hide( alfEnv->ControlGroup( KIRNowPlayingViewID.iUid ) );
+ alfEnv->DeleteControlGroup( KIRNowPlayingViewID.iUid );
+ iContainer = NULL;
+ }
+ if( alfEnv )
+ {
+ iAlfEnv.RemoveActionObserver( this );
+ }
+ if ( iToolbar )
+ {
+ iToolbar->SetToolbarVisibility(EFalse, EFalse);
+ iToolbar->SetToolbarObserver( NULL );
+ }
+ if(iConnectionCleanupTimer)
+ {
+ iConnectionCleanupTimer->Cancel();
+ }
+ if(iConnectionCleanupTimer)
+ {
+ delete iConnectionCleanupTimer;
+ iConnectionCleanupTimer=NULL;
+ }
+ iMetadata.Close();
+ iBuffer.Close();
+
+#ifdef __IRA_FEATURE_EQUALIZER
+ if (iMpxEqualizerViewPlugin)
+ {
+ delete iMpxEqualizerViewPlugin;
+ iMpxEqualizerViewPlugin = NULL;
+ }
+#endif // __IRA_FEATURE_EQUALIZER
+
+#ifdef MUSICSHOP_AVAILABLE
+ if (iMPXFindInShop)
+ {
+ delete iMPXFindInShop;
+ iMPXFindInShop = NULL;
+ }
+#endif
+
+ if(plsData)
+ {
+ delete plsData;
+
+ }
+ if(iIRSettings)
+ {
+ iIRSettings->Close();
+ iIRSettings = NULL;
+ }
+ if(iVolPopup)
+ {
+ delete iVolPopup;
+ iVolPopup=NULL;
+ }
+ if(iPrevPreset1)
+ {
+ delete iPrevPreset1;
+ iPrevPreset1=NULL;
+ }
+ if(iCurrentPreset)
+ {
+ delete iCurrentPreset;
+ iCurrentPreset=NULL;
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::~CIRNowPlayingView - Exiting " );
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::Id
+// ---------------------------------------------------------
+TUid CIRNowPlayingView::Id() const
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::Id" );
+ return KIRNowPlayingViewID;
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::DoActivateL
+// ---------------------------------------------------------
+
+void CIRNowPlayingView::DoActivateL(const TVwsViewId& aPrevViewId, TUid aCustomMessageId,
+ const TDesC8& aCustomMessage)
+ {
+ //IRLOG_DEBUG( "CIRNowPlayingView::DoActivateL - Entering" )
+ iFadeStyle=EIRFadeNoFade;
+ CIRBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
+ iAlfEnv.PrimaryDisplay().SetVisibleArea( ClientRect() );
+ iUpdateLastplayed=ETrue;
+ iUpdateStationName=ETrue;
+ iStationHasLogo=EFalse;
+ iShowBitrate=ETrue;
+
+ if(iNowPlayingWrapper->GetView()==ESearch||iNowPlayingWrapper->GetView()==EStations||
+ iNowPlayingWrapper->GetView()==EBrowseByTopStations )
+ {
+ iStationsData=iIsdsWrapper->GetStationsData();
+ if(iStationsData->Count()==1)
+ {
+ iShowToolBar=EFalse;
+ }
+ else
+ {
+ iShowToolBar=ETrue;
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ TInt presetCount=iUi->iFavPresets->iFavPresetList.Count();
+ if(presetCount==1||presetCount==0)
+ {
+ iShowToolBar=EFalse;
+ }
+ else
+ {
+ iShowToolBar=ETrue;
+ }
+ if(presetCount >= 1)
+ {
+ //fovorities list is not empty
+ TInt index = iUi->iFavPresets->SearchPreset(iNowPlayingWrapper->iNowPlayingPreset->
+ GetId(),iNowPlayingWrapper->
+ iNowPlayingPreset->UniqId());
+ if (index != KErrNotFound )
+ {
+ iNowPlayingWrapper->SetFavFocus(index+1) ;
+ }
+ else
+ {
+ iNowPlayingWrapper->SetFavFocus(-1) ;
+ }
+
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==ELastplayed||
+ iNowPlayingWrapper->GetView()==EHistoryView)
+ {
+ iShowToolBar=EFalse;
+ }
+ else if(iNowPlayingWrapper->GetView()==EPls)
+ {
+
+ TInt plslist=(iUi->iURLs.Count()) / KTwo ;
+ if(plslist==1 || plslist==0 || !iUi->GetListenFromSecondPls())
+ {
+ iShowToolBar=EFalse;
+ }
+ else
+ {
+ iShowToolBar=ETrue;
+ }
+ }
+ // TO Do: need to check
+ if(iNowPlayingWrapper->GetView()!=EFav)
+ {
+ iNowPlayingWrapper->SetFavFocus(-1) ;
+ }
+ ConstructToolbarL();
+ CIRUi* ui = reinterpret_cast<CIRUi*>( AppUi() );
+ ui->iPresentViewID = KIRNowPlayingViewID;
+ SetTitleL( R_IRAPP_NOWPLAYING_TITLE );
+ if( !iContainer )
+ {
+ iAlfEnv.NewControlGroupL( KIRNowPlayingViewID.iUid );
+ iContainer = CIRNowPlayingViewContainer::NewL( iAlfEnv,this );
+ }
+ iUi->iFavPresets->AddObserver( *this );
+ iPrevPreset1=CIRIsdsPreset::NewL();
+ iCurrentPreset=CIRIsdsPreset::NewL();
+ iUpdateStationName=ETrue;
+ iContainer->StationLogoControl().SetLogoControlObserver( *this );
+ OnViewActivationL();
+ GetLogoL();
+ iAlfEnv.PrimaryDisplay().Roster().ShowL( iAlfEnv.ControlGroup( KIRNowPlayingViewID.iUid ));
+ Cba()->AddCommandSetToStackL( R_AVKON_SOFTKEYS_OPTIONS_BACK);
+ iFadeStyle=EIRFadeNoFade;
+ if(iCallActive)
+ {
+ ConstructToolbarL();
+ iFadeStyle=EIRFadeUnknown;
+ DrawViewL(iStationHasLogo);
+ DisplaylogoL();
+ }
+
+ iIsOn = ETrue;
+ iHasBeenActivated = ETrue;
+ IRLOG_DEBUG( "CIRNowPlayingView::DoActivateL - Exiting" );
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::DoDeactivate
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::DoDeactivate()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DoDeactivate Entering" );
+ CAlfEnv* alfEnv = CAlfEnv::Static();
+ if( alfEnv )
+ {
+ alfEnv->PrimaryDisplay().Roster().Hide( alfEnv->ControlGroup( KIRNowPlayingViewID.iUid ) );
+ TRAP_IGNORE( iContainer->RadioIdle().HandleCommandL( EShutdown ) )
+ alfEnv->DeleteControlGroup( KIRNowPlayingViewID.iUid );
+ iContainer = NULL;
+ }
+ iUi->iFavPresets->RemoveObserver( *this );
+ if ( iToolbar )
+ {
+ iToolbar->SetToolbarVisibility(EFalse, EFalse);
+ iToolbar->SetToolbarObserver( NULL );
+ }
+ if(iConnectionCleanupTimer)
+ {
+ iConnectionCleanupTimer->Cancel();
+ }
+ if(iConnectionCleanupTimer)
+ {
+ delete iConnectionCleanupTimer;
+ iConnectionCleanupTimer=NULL;
+ }
+ iMetadata.Close();
+ iBuffer.Close();
+ iPrecount=0;
+ iPresetValue=0;
+ if(iPrevPreset1)
+ {
+ delete iPrevPreset1;
+ iPrevPreset1=NULL;
+ }
+ if(iCurrentPreset)
+ {
+ delete iCurrentPreset;
+ iCurrentPreset=NULL;
+ }
+
+ if(iNowPlayingWrapper->iPlaying)
+ {
+ iUpdateLastplayed=ETrue;
+ }
+ else
+ {
+ iUpdateLastplayed=EFalse;
+ }
+ iShowToolBar=EFalse;
+ iStartUp=ETrue;
+ iRockerIndex=0;
+ iIndex=0;
+ if(iPlaying)
+ {
+ iNowPlayingWrapper->SetMedadataForErrotrConditions(EFalse);
+ }
+ else
+ {
+ iNowPlayingWrapper->SetMedadataForErrotrConditions(ETrue);
+ }
+ iNowPlayingWrapper->SetMarquee(EFalse);
+ IRLOG_DEBUG( "CIRNowPlayingView::DoDeactivate Exiting" );
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::HandleCommandL
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::HandleCommandL(TInt aCommand)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::HandleCommandL Activating" );
+ switch (aCommand)
+ {
+ case EStationDetailsCmd:
+ {
+ if( !iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ iUi->iStationInfoView->SetStationPresetL( iNowPlayingWrapper->iNowPlayingPreset );
+ AppUi()->ActivateLocalViewL(KIRStationInfoViewId);
+ }
+ break;
+ }
+ case EAddtoStationsCmd:
+ {
+ if( !iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ AddStationsL();
+ }
+ }
+ break;
+ case EIRCmdStepNextPreset:
+ {
+ if( iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ break;
+ }
+ iCommandId=EIRCmdStepNextPreset;
+ iPresetCount=iRockerIndex;
+ iRockerIndex++;
+
+ if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ iNowPlayingWrapper->SetView(EFav);
+
+ if( iRockerIndex == (iUi->iFavPresets->iFavPresetList.Count()) )
+ {
+ iRockerIndex = 0;
+ }
+ iFadeStyle=EIRFadeRightToLeft;
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ //StartTimerL()
+ }
+ break;
+ }
+ else if(iNowPlayingWrapper->GetView()==ESearch||
+ iNowPlayingWrapper->GetView()==EStations ||
+ iNowPlayingWrapper->GetView()==EBrowseByTopStations )
+ {
+ //iNowPlayingWrapper->SetView(ESearch)
+ iNowPlayingWrapper->SetListenFromIsdsValue(EFalse);
+ iNowPlayingWrapper->SetWhenUserCancelsBufferingWaitBar(EFalse);
+ iFadeStyle=EIRFadeRightToLeft;
+ if(iIsdsWrapper->GetBannerUrl())
+ {
+ if(iRockerIndex>iStationsData->Count())
+ {
+ iRockerIndex = 1;
+ }
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ }
+ break;
+ }
+ else
+ {
+ if(iRockerIndex>=iStationsData->Count())
+ {
+ iRockerIndex = 0;
+ }
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ }
+ break;
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==EPls)
+ {
+ iNowPlayingWrapper->SetView(EPls);
+ TInt plslist=(iUi->iURLs.Count()) / KTwo ;
+ if(iRockerIndex==plslist)
+ {
+ iRockerIndex = 0;
+
+ }
+ iFadeStyle=EIRFadeRightToLeft;
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ StartTimerL();
+ }
+ }
+ break;
+ }
+ case EIRCmdStepPrevPreset:
+ {
+ if ( iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ break;
+ }
+ iCommandId=EIRCmdStepPrevPreset;
+ iPresetCount=iRockerIndex;
+ iRockerIndex--;
+ if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ iNowPlayingWrapper->SetView(EFav);
+ if(iRockerIndex < 0)
+ {
+ iRockerIndex = (iUi->iFavPresets->iFavPresetList.Count()) - 1;
+ }
+ iFadeStyle=EIRFadeLeftToRight;
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ //StartTimerL()
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==ESearch||
+ iNowPlayingWrapper->GetView()==EStations ||
+ iNowPlayingWrapper->GetView()==EBrowseByTopStations )
+ {
+ //iNowPlayingWrapper->SetView(ESearch)
+ iNowPlayingWrapper->SetListenFromIsdsValue(EFalse);
+ iNowPlayingWrapper->SetWhenUserCancelsBufferingWaitBar(EFalse);
+ iFadeStyle=EIRFadeLeftToRight;
+ if(iIsdsWrapper->GetBannerUrl())
+ {
+ if(iRockerIndex==0)
+ {
+ iRockerIndex=iStationsData->Count();
+ }
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ }
+ break;
+ }
+ else
+ {
+ if(iRockerIndex< 0)
+ {
+ iRockerIndex =(iStationsData->Count())-1 ;
+ }
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ }
+ break;
+ }
+ }
+
+ else if(iNowPlayingWrapper->GetView()==EPls)
+ {
+ iNowPlayingWrapper->SetView(EPls);
+ if(iRockerIndex< 0)
+ {
+ TInt plslist=(iUi->iURLs.Count()) / KTwo ;
+ iRockerIndex =plslist-1;
+ }
+ iFadeStyle=EIRFadeLeftToRight;
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iNextOrPrevRequest=ETrue;
+ }
+ else
+ {
+ ConnectToPresetL();
+ StartTimerL();
+ }
+ }
+ break;
+ }
+ case EIRCmdPlay:
+ case EPlayCmd:
+ {
+ if ( iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ break;
+ }
+
+ if( iContainer )
+ {
+ if( iUi->VerifyNetworkConnectivityL() )
+ {
+ iRequestPending = ETrue;
+ break;
+ }
+ else
+ {
+ PlayAndStopControlL();
+ }
+ }
+ }
+ break;
+ case EIRCmdStop:
+ case EStopCmd:
+ {
+ if( iContainer )
+ {
+ iShowBitrate=ETrue;
+ PlayAndStopControlL();
+ }
+ }
+ break;
+ case EFmRecOrPhone:
+ {
+ if ( !iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ LaunchFMTransmitterL();
+ }
+ }
+ break;
+
+ case EGotoMusicStore:
+ case EFindInShop:
+ {
+ if ( iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ break;
+ }
+
+ _LIT(KLaunchStr, "launch");
+ _LIT(KFindStr, "find");
+
+ if(aCommand == EGotoMusicStore)
+ {
+ DoFindInMusicShopL(iNowPlayingWrapper->MetaData().Song(),
+ iNowPlayingWrapper->MetaData().Artist(),
+ KNullDesC,EFalse);
+ iNowPlayingWrapper->UpdateNmsLogEventsL(KLaunchStr);
+ }
+ else if(aCommand == EFindInShop)
+ {
+ DoFindInMusicShopL(iNowPlayingWrapper->MetaData().Song(),
+ iNowPlayingWrapper->MetaData().Artist(),
+ KNullDesC,ETrue);
+ /**
+ * Increment the FindInMusicStore count by one
+ */
+ iUi->FindInMusicStoreCounter();
+
+
+
+
+
+
+
+ iNowPlayingWrapper->UpdateNmsLogEventsL(KFindStr);
+ }
+ }
+ break;
+
+ case EStereoMode:
+ {
+ iIsOn = ETrue;
+ break;
+ }
+ case EOnCmd:
+ {
+ iIsOn=ETrue;
+ iDs=EOnCmd;
+ iStereoMode = 1;
+ iIRSettings->SetStereoModeL(iStereoMode);
+ GetStereoModeL();
+ DynInitMenuPaneL(R_NOW_SUBMENU,iMenuPane);
+ break;
+ }
+ case EOffCmd:
+ {
+ iIsOn=ETrue;
+ iDs=EOffCmd;
+ iStereoMode = 0;
+ iIRSettings->SetStereoModeL(iStereoMode);
+ GetStereoModeL();
+ DynInitMenuPaneL(R_NOW_SUBMENU,iMenuPane);
+ break;
+ }
+ case EEqualizer:
+ {
+ if ( iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ break;
+ }
+
+ iToolbar->SetToolbarVisibility(EFalse, EFalse);
+ iEaualizerOn=ETrue;
+
+#ifdef __IRA_FEATURE_EQUALIZER
+ if (iMpxEqualizerViewPlugin)
+ {
+ iMpxEqualizerViewPlugin->ActivateViewL();
+ }
+#endif
+
+ iEaualizerOn=EFalse;
+ iToolbar->SetToolbarVisibility(ETrue, EFalse);
+ }
+ break;
+ case EHistory:
+ {
+ _LIT8(KNull,"");
+ AppUi()->ActivateLocalViewL( KIRHistoryListViewId ,KNowPlayingLaunch,KNull);
+ break;
+ }
+ case ESettingsCmd:
+ {
+ AppUi()->ActivateLocalViewL(KIRSettingsViewId);
+ break;
+ }
+ case EHelpCmd:
+ {
+ if ( iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ break;
+ }
+
+ TCoeHelpContext context = HelpContext();
+ // Launch help app with help context of the view.
+ CArrayFix<TCoeHelpContext>* array = new( ELeave ) CArrayFixFlat<TCoeHelpContext>( 1 );
+ array->AppendL( context );
+ // Launch help application with help context of this view.
+ // It must be verified that the ownership of the help context array is transfered.
+ // Remember to verify also CIRSettingsViewBase help application launch.
+ HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), array );
+ break;
+ }
+ case EIRCmdVolumeControl:
+ {
+ if(iVolPopup)
+ {
+ if(iVolumeMute)
+ {
+ iVolumeBarValue=0;
+ }
+ else
+ {
+ iVolumeBarValue=iUi->iIRSettings->GetVolumeSetting();
+ }
+ iVolPopup->SetValue(2);
+ if(iVolumeMute)
+ {
+ TInt index = iNowPlayingWrapper->GetMediaClientInstance()->MaxVolume()/KMaxVolume;
+ TInt volume = index*iVolumeBarValue;
+ iNowPlayingWrapper->GetMediaClientInstance()->SetVolume(volume);
+ }
+ else
+ {
+ iNowPlayingWrapper->SetVolumeL(iVolumeBarValue);
+ }
+ if(!iVolPopup->IsFocused())
+ iVolPopup->ShowVolumePopupL();
+ }
+
+ }
+ break;
+ case EGotoMainView:
+ {
+ _LIT8(KNull,"");
+ AppUi()->ActivateLocalViewL( KIRMainChoiceViewID,KMainViewLaunch , KNull);
+ break;
+ }
+ case EAknSoftkeyBack:
+ {
+ if((iUi->GetPlsSaved().Count()) &&
+ (iUi->GetListenFromPls()) &&
+ iUi->GetListenFromSecondPls())
+ {
+ if(iUi->GetPlsSaved()[iRockerIndex]==0)
+ {
+ RBuf sumvalue;
+ HBufC* textResource = StringLoader::LoadLC(R_IRAPP_NOTE_POPUP_SAVE );
+ sumvalue.Create(*textResource);
+ CIRDialogLauncher* queryNote = CIRDialogLauncher::NewL();
+ CleanupStack::PushL( queryNote );
+ TInt dlgValue;
+ queryNote->ShowQueryDialogDeletionL(sumvalue,dlgValue);
+ if(dlgValue)
+ {
+ AddStationsL();
+ }
+ CleanupStack::PopAndDestroy( queryNote );
+ CleanupStack::PopAndDestroy( textResource );
+ sumvalue.Close();
+ }
+ }
+ CIRBaseView::HandleCommandL(aCommand);
+ }
+ default:
+ {
+ CIRBaseView::HandleCommandL(aCommand);
+ break;
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::HandleCommandL Exiting" );
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::UpdateStationNameL()
+// This function updates station name
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::UpdateStationNameL(TIRFadeStyle /*aFadeStyle*/)
+ {
+
+ IRLOG_DEBUG( "CIRNowPlayingView::UpdateStationNameL Activating" );
+
+
+ if(iContainer)
+ {
+ CIRUi* ui = reinterpret_cast<CIRUi*>( iCoeEnv->AppUi() );
+ if(iUpdateLastplayed)
+ {
+
+ if(iNowPlayingWrapper->iNowPlayingPreset)
+ {
+ // store the last played station
+ *ui->iLastPlayed->iLastPlayedStation = *iNowPlayingWrapper->iNowPlayingPreset;
+ TRAPD(err,ui->iLastPlayed->CommitLastPlayedChannelL());
+ TInt error=KErrNone;
+ if(err != KErrNone)
+ {
+ error = ui->iLastPlayed->RemoveLastPlayedFile();
+ User::Leave(error);
+ }
+ }
+ }
+
+ if(iUpdateStationName)
+ {
+ // Check whether the currently playing station is from fav db to enable
+ // switching/browsing b/w channels that are there in fav db &
+ // enable the left & right rocker keys accordingly
+ if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ if(ui->iFavPresets->iFavPresetList.Count() >= 1)
+ {
+ //fovorities list is not empty
+ TInt index = ui->iFavPresets->SearchPreset(iNowPlayingWrapper->iNowPlayingPreset->
+ GetId(),iNowPlayingWrapper->
+ iNowPlayingPreset->UniqId());
+ if (index != KErrNotFound )
+ {
+ //if there are contents in favorites
+ iIndex = index;
+ iRockerIndex = iIndex;
+ //assigning the preset
+ ui->iFavPresets->iFavPresetList[iIndex]->CopyPresetData(*iNowPlayingWrapper->
+ iNowPlayingPreset);
+ iBuffer.Close();
+ iBuffer.Create(iNowPlayingWrapper->iNowPlayingPreset->GetName().Length()+
+ KPresetNumbering);
+ iBuffer.Append(iNowPlayingWrapper->iNowPlayingPreset->GetName());
+ }
+ else
+ {
+ iIndex = KErrNotFound;
+ iBuffer.Close();
+ iBuffer.Create(iNowPlayingWrapper->iNowPlayingPreset->GetName().Length()+
+ KPresetNumbering);
+ iBuffer.Append(iNowPlayingWrapper->iNowPlayingPreset->GetName());
+ }
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==ESearch||iNowPlayingWrapper->GetView()==EStations ||
+ iNowPlayingWrapper->GetView()==EBrowseByTopStations )
+ {
+ iRockerIndex = (iIsdsWrapper->GetCurrentPlayingIndex());
+ iBuffer.Close();
+ iBuffer.Create(iNowPlayingWrapper->iNowPlayingPreset->GetName().Length()+
+ KPresetNumbering);
+ iBuffer.Append(iNowPlayingWrapper->iNowPlayingPreset->GetName());
+ }
+ else if(iNowPlayingWrapper->GetView()==ELastplayed||
+ iNowPlayingWrapper->GetView()==EHistoryView ||iNowPlayingWrapper->GetView()==EPls)
+ {
+ if(iNowPlayingWrapper->GetView()==ELastplayed)
+ {
+ TInt index = ui->iFavPresets->SearchPreset(iNowPlayingWrapper->
+ iNowPlayingPreset->GetId(),iNowPlayingWrapper->iNowPlayingPreset->UniqId());
+ if (index != KErrNotFound )
+ {
+ iIndex=index;
+ iRockerIndex = iIndex;
+
+ }
+ else if(iNowPlayingWrapper->iNowPlayingPreset->GetChannelType()==0)
+ {
+ iIndex=1;
+ iRockerIndex = iIndex;
+ }
+ else
+ {
+ iIndex=1;
+ iRockerIndex = iIndex;
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==EPls)
+ {
+ iIndex= iUi->GetPlsIndex();
+ iRockerIndex = iIndex;
+ }
+ else if(iNowPlayingWrapper->GetView()==EHistoryView)
+ {
+ iIndex=1;
+ iRockerIndex = iIndex;
+ }
+
+ iBuffer.Close();
+ iBuffer.Create(iNowPlayingWrapper->iNowPlayingPreset->GetName().Length()+
+ KPresetNumbering);
+ iBuffer.Append(iNowPlayingWrapper->iNowPlayingPreset->GetName());
+ }
+ }
+ }
+
+ IRLOG_DEBUG( "CIRNowPlayingView::UpdateStationNameL Exiting" );
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::UpdateStationLogosL
+// ---------------------------------------------------------
+void CIRNowPlayingView::UpdateStationLogosL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::UpdateStationLogosL Activating" );
+ TBool upLoadLogo=EFalse;
+ if( iContainer )
+ {
+ RArray<TInt> idArray( KIRLogoArrayGranularity );
+ CleanupClosePushL( idArray );
+ CPtrC8Array* dataArray = new (ELeave) CPtrC8Array( KIRLogoArrayGranularity );
+ CleanupStack::PushL( dataArray );
+ if(iNowPlayingWrapper->GetView()==EFav||iNowPlayingWrapper->GetView()==ELastplayed
+ ||iNowPlayingWrapper->GetView()==EHistoryView||
+ iNowPlayingWrapper->GetView()==EPls )
+ {
+ if(iPresetValue==0||iNowPlayingWrapper->GetView()==ELastplayed)
+ {
+ if(iCurrentPreset->GetLogoData() != KNullDesC8 )
+ {
+ dataArray->AppendL(iCurrentPreset->GetLogoData() );
+ idArray.AppendL( iRockerIndex);
+ iContainer->StationLogoControl().SetLogosL( idArray, *dataArray );
+ iPresetValue++;
+ }
+
+ }
+ else
+ {
+ if(iPrevPreset1->GetLogoData() != KNullDesC8 && !iDefaultLogo)
+ {
+ dataArray->AppendL(iPrevPreset1->GetLogoData() );
+ idArray.AppendL( iPresetCount );
+ }
+ if(iCurrentPreset->GetLogoData() != KNullDesC8 )
+ {
+ upLoadLogo=ETrue;
+ dataArray->AppendL(iCurrentPreset->GetLogoData() );
+ idArray.AppendL(iRockerIndex);
+ }
+ if(upLoadLogo)
+ iContainer->StationLogoControl().SetLogosL( idArray, *dataArray );
+ iDefaultLogo=EFalse;
+ }
+ }
+ if(iNowPlayingWrapper->GetView()==ESearch||iNowPlayingWrapper->GetView()==EStations
+ ||iNowPlayingWrapper->GetView()==EBrowseByTopStations )
+ {
+ if(iPresetValue==0)
+ {
+ if(iCurrentPreset->GetLogoData() != KNullDesC8 )
+ {
+ dataArray->AppendL(iCurrentPreset->GetLogoData() );
+ idArray.AppendL(iLogoIndex);
+ iContainer->StationLogoControl().SetLogosL( idArray, *dataArray );
+ iPresetValue++;
+ }
+ }
+ else
+ {
+ if(iPrevPreset1->GetLogoData() != KNullDesC8 && !iDefaultLogo)
+ {
+ upLoadLogo=ETrue;
+ dataArray->AppendL(iPrevPreset1->GetLogoData() );
+ idArray.AppendL(iPresetCount);
+ }
+ if(iCurrentPreset->GetLogoData() != KNullDesC8 )
+ {
+ upLoadLogo=ETrue;
+ dataArray->AppendL(iCurrentPreset->GetLogoData() );
+ idArray.AppendL(iLogoIndex );
+ }
+ iContainer->StationLogoControl().SetLogosL( idArray, *dataArray );
+ iDefaultLogo=EFalse;
+ }
+ }
+ CleanupStack::PopAndDestroy( dataArray );
+ CleanupStack::PopAndDestroy( &idArray );
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::UpdateStationLogosL Exiting" );
+ }
+
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::DisplayBitrate
+// Displays the song name on to the screen
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::DisplayBitrate(const TDesC& aBitrate) const
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplaySongNameL - Entering" );
+ if( iContainer )
+ {
+ TRAP_IGNORE(iContainer->SetBitrateL( aBitrate));
+ if(iNowPlayingWrapper->iPlaying || !iShowBitrate)
+ {
+ if(iBitrateIndex)
+ {
+ if ( iContainer->RadioIdle().State() == CIRRadioIdle::ERunning )
+ {
+ iContainer->RadioIdle().UpdateRadioIdleContent( aBitrate,
+ iBitrateIndex );
+ }
+
+ }
+ }
+ else
+ {
+ if(iBitrateIndex)
+ {
+ if ( iContainer->RadioIdle().State() == CIRRadioIdle::ERunning )
+ {
+ iContainer->RadioIdle().UpdateRadioIdleContent( iBuffer,
+ iBitrateIndex );
+ }
+
+ }
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplaySongNameL - Exiting." );
+ }
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::DisplaySongArtistNameL
+// Displays the song name on to the screen
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::DisplaySongArtistNameL(const TDesC& aSongName,const TDesC& aArtistName)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplayArtistNameL - Entering " );
+ if(aSongName==KNullDesC && aArtistName==KNullDesC )
+ {
+ iNowPlayingWrapper->SetMedadataForErrotrConditions(ETrue);
+ DisplaySongArtistNameL(KConst1,KConst1);
+ return;
+ }
+ if(aSongName!=KNullDesC && (!iNowPlayingWrapper->GetMedadataForErrotrConditions())
+ && aArtistName!=KNullDesC)
+ {
+ CDesCArray* strings = new ( ELeave ) CDesCArrayFlat( 2 );
+ CleanupStack::PushL( strings );
+ if(iNowPlayingWrapper->GetMarquee())
+ {
+ strings->AppendL( aArtistName);
+ strings->AppendL( aSongName );
+ }
+ else
+ {
+ strings->AppendL( aSongName );
+ strings->AppendL( aArtistName);
+ }
+ iNowPlayingWrapper->SetMedadataForErrotrConditions(EFalse);
+ HBufC* text = StringLoader::LoadLC( R_IR_NOW_ARTIST_SONG, *strings );
+ iMetadata.Close();
+ iMetadata.Create(text->Length());
+ iMetadata.Copy(*text);
+ CleanupStack::PopAndDestroy( 2, strings );
+ }
+ else
+ {
+ iMetadata.Close();
+ iMetadata.Create(aSongName.Length()+aArtistName.Length()+KTwo);
+ if(aSongName!=KNullDesC)
+ {
+ iMetadata.Append(aSongName);
+ }
+ if(aArtistName!=KNullDesC)
+ {
+ iMetadata.Append(aArtistName);
+ }
+ }
+ if(iNowPlayingWrapper->GetMarquee())
+ {
+ TRAP_IGNORE( iContainer->StationInformationDisplay().RdsDataReceivedL( iMetadata ) );
+ if ( iContainer->RadioIdle().State() == CIRRadioIdle::ERunning )
+ {
+ iContainer->RadioIdle().UpdateRadioIdleContent( iMetadata,
+ iMetadataIndex );
+ }
+ }
+
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplayArtistNameL - Exiting" );
+}
+
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::DisplayByteCounter
+// Formats byte counter bytes for display
+// For example, Byte counter is indicated in the following formats:
+// 0.00 to 9.99 MB
+// 10.0 to 99.9 MB
+// 100 MB and more
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::DisplayByteCounterL(TReal32 total_bytes)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplayByteCounter Activating" );
+
+ TReal32 totalMB = total_bytes / KIRMBtoBytesConversion;
+
+ // required for byte counter in deciaml format
+ CArrayFix<TInt>* byteCtr_nums = new (ELeave) CArrayFixFlat<TInt>( KTwo );
+ CleanupStack::PushL( byteCtr_nums );
+
+ HBufC* text = NULL;
+ if( total_bytes < KIRByteCounterDisplayThreshold1 )
+ {
+ TInt wholeMB = floor(totalMB);
+ TInt fractionMB = (totalMB - wholeMB) * KHundred;
+ byteCtr_nums->AppendL( wholeMB );
+ byteCtr_nums->AppendL( fractionMB );
+ text = StringLoader::LoadLC( R_IRAPP_NOWPLAYING_BYTECOUNTER_DECI, *byteCtr_nums );
+
+ if( fractionMB < KTen )
+ {
+ RBuf buff;
+ buff.CreateL( *text, text->Length()+1 );
+ TInt insertPos = KTwo;
+ while(wholeMB >= KTen)
+ {
+ ++insertPos;
+ wholeMB /= KTen;
+ }
+ _LIT( KZero, "0" );
+ buff.Insert( insertPos, KZero );
+ CleanupStack::PopAndDestroy( text );
+ text = HBufC::NewLC( buff.Length() );
+ *text = buff;
+ buff.Close();
+ }
+ }
+ else if( total_bytes >= KIRByteCounterDisplayThreshold1 &&
+ total_bytes < KIRByteCounterDisplayThreshold2 )
+ {
+ TInt wholeMB = floor(totalMB);
+ TInt fractionMB = (totalMB - wholeMB) * KTen;
+ byteCtr_nums->AppendL( wholeMB );
+ byteCtr_nums->AppendL( fractionMB );
+ text = StringLoader::LoadLC( R_IRAPP_NOWPLAYING_BYTECOUNTER_DECI, *byteCtr_nums );
+ }
+ else
+ {
+ text = StringLoader::LoadLC( R_IRAPP_NOWPLAYING_BYTECOUNTER, totalMB );
+ }
+
+ if( iContainer )
+ {
+ iContainer->SetByteCounterL( *text );
+ }
+ CleanupStack::PopAndDestroy( text );
+ CleanupStack::PopAndDestroy( byteCtr_nums );
+
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplayByteCounter - Exiting" );
+ }
+
+
+//
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::OnViewActivationL
+// Displays the song name on to the screen
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::OnViewActivationL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::OnViewActivationL - Entering" );
+ UpdateStationNameL(iFadeStyle);
+ if(iNowPlayingWrapper->MetaData().Artist().Length()
+ && iNowPlayingWrapper->MetaData().Song().Length() )
+ {
+ iNowPlayingWrapper->SetMedadataForErrotrConditions(EFalse);
+ }
+ DisplaySongArtistNameL(iNowPlayingWrapper->MetaData().Artist(),
+ iNowPlayingWrapper->MetaData().Song());
+ IRLOG_DEBUG( "CIRNowPlayingView::OnViewActivationL - Exiting." );
+ }
+
+ // -----------------------------------------------------------------------------
+// ConnectToPresetL()
+// Function called to connect to any channel after the timer expires
+// ------------------------------------------------------------------------------
+//
+void CIRNowPlayingView::ConnectToPresetL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::ConnectToPresetL - Entering" );
+ iSameUrl=EFalse;
+ if(iStereoEffect)
+ {
+ if(iStereoEffect->IsEnabled())
+ {
+ iStereoEffect->DisableL();
+ }
+ }
+ if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ iNowPlayingWrapper->SetConnectToServerState(ETrue);
+ iIndex=iRockerIndex;
+ //connected from saved preset
+ iNowPlayingWrapper->SetCurrentConnectionSource(EIRPresetIsds);
+ if(iUi->iFavPresets->iFavPresetList.Count() >= 1)
+ {
+ if(iUi->iFavPresets->iFavPresetList[iRockerIndex]->
+ GetChannelType() == CIRIsdsPreset::EIsdsPreset)
+ {
+ // Sync Favourite Isds preset
+ SyncPresetL(iUi->iFavPresets->iFavPresetList[iRockerIndex]->GetId(),
+ iUi->iFavPresets->iFavPresetList[iRockerIndex]->GetLastModifiedTime());
+ }
+ else
+ {
+ // TO Do: need to check
+
+ iNowPlayingWrapper->SetFavFocus(iRockerIndex+1);
+ // Connect to Favourite User-defined preset
+ iUi->iFavPresets->iFavPresetList[iRockerIndex]->
+ CopyPresetData(*iNowPlayingWrapper->iNowPlayingPreset);
+ iNowPlayingWrapper->ConnectToChannelL(*iNowPlayingWrapper->iNowPlayingPreset);
+ StartTimerL();
+ }
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==ESearch|| iNowPlayingWrapper->GetView()==EStations ||
+ iNowPlayingWrapper->GetView()==EBrowseByTopStations )
+ {
+ if(iRockerIndex >=0 && iRockerIndex <=iStationsData->Count())
+ {
+
+ iNowPlayingWrapper->SetWhenUserCancelsBufferingWaitBar(EFalse);
+ iNowPlayingWrapper->SetListenFromIsdsValue(EFalse);
+ iNowPlayingWrapper->CreateWaitDialogL();
+ iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingStart);
+
+ iIsdsWrapper->IsdsListenRequestL(this,iRockerIndex);
+ }
+ }
+ else if(iNowPlayingWrapper->GetView()==EPls)
+ {
+ iIndex=iRockerIndex;
+ ListenFromPlsL();
+ }
+ else
+ {
+ // if browsing to same channel that we were and
+ // playback were stopped, need to try to restart it
+ if( !iNowPlayingWrapper->iPlaying )
+ {
+ TRAP_IGNORE( PlayAndStopControlL() );
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplayByteCounter Exiting" );
+}
+
+
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::PlayAndStopControlL()
+// Used to stop & play the station
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::PlayAndStopControlL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::StopAndPlayControlL - Entering" );
+ CIRUi* ui = reinterpret_cast<CIRUi*>( iCoeEnv->AppUi() );
+ iNowPlayingWrapper->PlayAndStopL();
+ IRLOG_DEBUG( "CIRNowPlayingView::StopAndPlayControlL - Exiting." );
+ }
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::DynInitMenuPaneL
+// Dynamically handles menu pane.
+// From class MEikMenuObserver.
+// Itialiases the items on the menu.
+// ---------------------------------------------------------------------------
+void CIRNowPlayingView::DynInitMenuPaneL(TInt aResourceId,
+ CEikMenuPane* aMenuPane)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DynInitMenuPaneL - Entering " );
+ iMenuPane=aMenuPane;
+ if(aResourceId == R_IR_MENU_NOWPLAYING )
+ {
+ if(!iContainer)
+ {
+ aMenuPane->SetItemDimmed(EGotoMainView,ETrue);
+ aMenuPane->SetItemDimmed(EStationDetailsCmd,ETrue);
+ aMenuPane->SetItemDimmed(EFmRecOrPhone,ETrue);
+ aMenuPane->SetItemDimmed(EAddtoStationsCmd,ETrue);
+ aMenuPane->SetItemDimmed(EStereoMode,ETrue);
+ aMenuPane->SetItemDimmed(EEqualizer,ETrue);
+ aMenuPane->SetItemDimmed(EHistory,ETrue);
+ aMenuPane->SetItemDimmed(EFindInShop,ETrue);
+ aMenuPane->SetItemDimmed(EGotoMusicStore, ETrue);
+ aMenuPane->SetItemDimmed(ESettingsCmd,ETrue);
+ aMenuPane->SetItemDimmed(EHelpCmd,ETrue);
+ aMenuPane->SetItemDimmed(EExitCmd,ETrue);
+ }
+ else
+ {
+
+ if(iUi->GetPlsActiavted() && iUi->GetListenFromPls())
+ {
+ aMenuPane->SetItemDimmed(EGotoMainView,EFalse);
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed(EGotoMainView,ETrue);
+ }
+ #ifdef FF_FMTX
+
+ aMenuPane->SetItemDimmed(EFmRecOrPhone,EFalse);
+ #else
+
+ aMenuPane->SetItemDimmed(EFmRecOrPhone,ETrue);
+ #endif
+
+#ifdef __IRA_FEATURE_EQUALIZER
+ /**
+ * Activate "FindInShop" or "Goto MusicStore" only if iMpxFindInShop
+ * object is succcessfully created. Show "FindInShop" option for
+ * isds presets which has MetaData and MusicStoreEnalbed status as true.
+ * Otherwise show "Goto MusicStore".
+ */
+ if (iMPXFindInShop)
+ {
+ if (iNowPlayingWrapper->iNowPlayingPreset->
+ GetChannelType() == CIRIsdsPreset::EIsdsPreset)
+ {
+ if (IsMetaData() && MusciStoreEnabledStatus() )
+ {
+ aMenuPane->SetItemDimmed(EFindInShop,EFalse);
+ aMenuPane->SetItemDimmed(EGotoMusicStore, ETrue);
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed(EFindInShop,ETrue);
+ aMenuPane->SetItemDimmed(EGotoMusicStore, EFalse);
+ }
+ }
+ else //preset is UserDefined
+ {
+ aMenuPane->SetItemDimmed(EFindInShop,ETrue);
+ aMenuPane->SetItemDimmed(EGotoMusicStore, EFalse);
+ }
+ }
+ else
+#endif // __IRA_FEATURE_EQUALIZER
+ {
+ aMenuPane->SetItemDimmed(EFindInShop,ETrue);
+ aMenuPane->SetItemDimmed(EGotoMusicStore, ETrue);
+ }
+
+#ifdef __IRA_FEATURE_EQUALIZER
+ if (iMpxEqualizerViewPlugin)
+ {
+ aMenuPane->SetItemDimmed(EEqualizer,EFalse);
+ }
+ else
+#endif // __IRA_FEATURE_EQUALIZER
+ {
+ aMenuPane->SetItemDimmed(EEqualizer,ETrue);
+ }
+ }
+ }
+ if(aResourceId==R_NOW_SUBMENU)
+ {
+ if(iDs==EOnCmd)
+ {
+ aMenuPane->SetItemButtonState( EOnCmd,
+ iIsOn?
+ EEikMenuItemSymbolOn:
+ EEikMenuItemSymbolIndeterminate );
+ }
+ if(iDs==EOffCmd)
+ {
+ aMenuPane->SetItemButtonState( EOffCmd,
+ iIsOn?
+ EEikMenuItemSymbolOn:
+ EEikMenuItemSymbolIndeterminate );
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::DynInitMenuPaneL - Exiting." );
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::HandlePresetChangedL
+// ---------------------------------------------------------
+void CIRNowPlayingView::HandlePresetChangedL( TInt /*aId*/, TUid /*aDataHandler*/,
+ MPSPresetObserver::TPSReason /*aReason*/ )
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::HandlePresetChangedL - Entering." );
+ if(iContainer)
+ {
+ if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ TInt presetCount=iUi->iFavPresets->iFavPresetList.Count();
+ if(presetCount==1||presetCount==0)
+ {
+ iShowToolBar=EFalse;
+ }
+ else
+ {
+ iShowToolBar=ETrue;
+ }
+ }
+ ConstructToolbarL();
+}
+
+ IRLOG_DEBUG( "CIRNowPlayingView::HandlePresetChangedL - Exiting." );
+ }
+
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::AddStationsL()
+// Saves the currently playing station into fav DB
+// ---------------------------------------------------------------------------
+void CIRNowPlayingView::AddStationsL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::AddStationsL - Entering" );
+ CIRUi* ui = reinterpret_cast<CIRUi*>( iCoeEnv->AppUi() );
+ TInt returnVal;
+ ui->iFavPresets->AddPresetL(*(iNowPlayingWrapper->iNowPlayingPreset),returnVal);
+ if(returnVal==KErrNoMemory)
+ {
+ iIsdsWrapper->GetDialogLauncherInstance()->ShowErrorNoteL(R_IRAPP_ADDFAVOURITES_ERROR,ETrue);
+ return;
+ }
+ else
+ {
+ if(iUi->iFavPresets->iFavPresetList.Count() == KPresetsArrayMaxLength)
+ {
+ iIsdsWrapper->GetDialogLauncherInstance()->ShowErrorNoteL
+ (R_IRAPP_ADDFAVOURITES_ERROR,ETrue);
+ return;
+ }
+ else
+ {
+ RBuf channel;
+ HBufC* textResource = StringLoader::LoadLC(R_IRAPP_STATIONS_POPUP_SAVED,
+ iNowPlayingWrapper->iNowPlayingPreset->
+ GetName());
+ channel.Create(*textResource);
+ iIsdsWrapper->GetDialogLauncherInstance()->ShowConfirmationNoteL( channel,ETrue );
+ CleanupStack::PopAndDestroy(textResource);
+ channel.Close();
+ }
+ if(iUi->GetListenFromPls() && iUi->GetPlsSaved().Count())
+ {
+ iUi->GetPlsSaved()[iRockerIndex]=1;
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::AddStationsL - Exiting." );
+ }
+
+// CIRNowPlayingView::PresetLogoDownloadedL()
+//----------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::PresetLogoDownloadedL(CIRIsdsPreset* aPreset)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::PresetLogoDownloadedL - Entering" );
+ TInt Iindex=KDefaultValue;
+ TInt LogoDownloadedIndex=KDefault;
+ /*if(iNowPlayingWrapper->iPlaying)
+ {
+ Iindex=aPreset->GetId();
+ LogoDownloadedIndex=iNowPlayingWrapper->iNowPlayingPreset->GetId();
+ if(Iindex==LogoDownloadedIndex && aPreset->GetLogoData().Length())
+ {
+ iNowPlayingWrapper->iNowPlayingPreset->SetLogoData(aPreset->GetLogoData());
+ UpdateLastplayedL();
+ }
+ }*/
+ if(iContainer)
+ {
+ if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ Iindex = iUi->iFavPresets->SearchPreset(iNowPlayingWrapper->iNowPlayingPreset->
+ GetId(),iNowPlayingWrapper->
+ iNowPlayingPreset->UniqId());
+ LogoDownloadedIndex= iUi->iFavPresets->SearchPreset(aPreset->GetId()
+ ,aPreset->UniqId());
+ }
+ else if(iNowPlayingWrapper->GetView()==EStations
+ || iNowPlayingWrapper->GetView()==EBrowseByTopStations
+ ||iNowPlayingWrapper->GetView()==ESearch)
+ {
+ Iindex=aPreset->GetId();
+ LogoDownloadedIndex=iNowPlayingWrapper->iNowPlayingPreset->GetId();
+ }
+ else
+ {
+ Iindex=0;
+ LogoDownloadedIndex=0;
+ }
+ if(LogoDownloadedIndex==Iindex)
+ {
+ iStationHasLogo=ETrue;
+ if(iPrecount==0||iNowPlayingWrapper->GetView()==ELastplayed)
+ {
+ iDefaultLogo=EFalse;
+ if(aPreset->GetLogoData() != KNullDesC8 )
+ {
+ *iCurrentPreset=*aPreset;
+ iPrecount++;
+ }
+ }
+ else
+ {
+ if(!iDefaultLogo)
+ {
+ *iPrevPreset1=*iCurrentPreset;
+ }
+ *iCurrentPreset=*aPreset;
+ }
+
+ if ( iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ return;
+ }
+
+ if(iNowPlayingWrapper->GetView()==EHistoryView||iNowPlayingWrapper->GetView()==ESearch
+ || iNowPlayingWrapper->GetView()==EFav||iNowPlayingWrapper->GetView()==EStations
+ || iNowPlayingWrapper->GetView()==EBrowseByTopStations
+ ||iNowPlayingWrapper->GetView()==ELastplayed||iNowPlayingWrapper->GetView()==EPls)
+ {
+ UpdateStationLogosL();
+ DisplaylogoL();
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::PresetLogoDownloadedL - Exiting" );
+ }
+ }
+
+
+// CIRNowPlayingView::PresetLogoDownloadError()
+//----------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::PresetLogoDownloadError(CIRIsdsPreset* /*aPreset*/)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::PresetLogoDownloadErrorL");
+ //TO Do:implementation need to done for handling Media animation
+ iStationHasLogo=EFalse;
+ //TRAP_IGNORE(DrawViewL(iStationHasLogo))
+ }
+
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::ConstructToolbarL
+// Simulate user pressing play immediately when came into this view.
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::ConstructToolbarL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::ConstructToolbarL - Entering" );
+ TInt bitmapId;
+ TInt maskId;
+ if ( AknLayoutUtils::PenEnabled() )
+ {
+ iToolbar = this->Toolbar();
+ if ( iToolbar )
+ {
+ iToolbar->SetToolbarObserver( this );
+ if(iToolbar)
+ {
+
+ bitmapId=iUi->ChooseToolBarBitmaps(EMbmInternetradioQgn_indi_tb_previous,
+ EMbmInternetradioQgn_indi_tb_previous_white);
+
+ maskId=iUi->ChooseToolBarMaskId(EMbmInternetradioQgn_indi_tb_previous_mask,
+ EMbmInternetradioQgn_indi_tb_previous_white_mask);
+
+ // There are no presets or the only preset is active
+ HBufC* previousToolTipText =
+ CCoeEnv::Static()->AllocReadResourceLC(R_IR_NOW_TOOLTIP_PREVIOUS);
+ CAknButton* button1 = CAknButton::NewL(KIRMifFileName,bitmapId,
+ maskId,0,0,bitmapId,maskId,bitmapId,maskId,KNullDesC ,
+ *previousToolTipText,0,0,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone);
+
+ CleanupStack::PopAndDestroy(previousToolTipText);
+ CleanupStack::PushL(button1);
+ iToolbar->AddItemL( button1, EAknCtButton, EIRCmdStepPrevPreset, 0, 0 );
+ CleanupStack::Pop(button1);
+
+ if(!iNowPlayingWrapper->iPlaying)
+ {
+ bitmapId=iUi->ChooseToolBarBitmaps(EMbmInternetradioQgn_indi_tb_play,
+ EMbmInternetradioQgn_indi_tb_play_white);
+
+ maskId=iUi->ChooseToolBarMaskId(EMbmInternetradioQgn_indi_tb_play_mask,
+ EMbmInternetradioQgn_indi_tb_play_white_mask);
+
+ HBufC* playToolTipText = CCoeEnv::Static()->AllocReadResourceLC( R_IR_NOW_TOOLTIP_PLAY);
+ CAknButton* button2 = CAknButton::NewL(KIRMifFileName,bitmapId,
+ maskId,0,0,bitmapId,maskId,bitmapId,maskId,KNullDesC ,
+ *playToolTipText,0,0,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone);
+
+ CleanupStack::PopAndDestroy(playToolTipText);
+ CleanupStack::PushL(button2);
+ iToolbar->AddItemL(button2, EAknCtButton, EIRCmdPlay, 0, 1 );
+ CleanupStack::Pop(button2);
+ }
+ else
+ {
+
+ bitmapId=iUi->ChooseToolBarBitmaps(EMbmInternetradioQgn_indi_tb_stop,
+ EMbmInternetradioQgn_indi_tb_stop_white);
+
+ maskId=iUi->ChooseToolBarMaskId(EMbmInternetradioQgn_indi_tb_stop_mask,
+ EMbmInternetradioQgn_indi_tb_stop_white_mask);
+
+ HBufC* stopToolTipText = CCoeEnv::Static()->AllocReadResourceLC( R_IR_NOW_TOOLTIP_STOP);
+ CAknButton* button2 = CAknButton::NewL(KIRMifFileName,bitmapId,
+ maskId,0,0,bitmapId,maskId,bitmapId,maskId,KNullDesC
+ ,*stopToolTipText,0,0,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone);
+
+ CleanupStack::PopAndDestroy(stopToolTipText);
+ CleanupStack::PushL(button2);
+ iToolbar->AddItemL(button2, EAknCtButton, EIRCmdStop, 0, 1 );
+ CleanupStack::Pop(button2);
+ }
+
+
+ bitmapId=iUi->ChooseToolBarBitmaps(EMbmInternetradioQgn_indi_tb_next,
+ EMbmInternetradioQgn_indi_tb_next_white);
+
+ maskId=iUi->ChooseToolBarMaskId(EMbmInternetradioQgn_indi_tb_next_mask,
+ EMbmInternetradioQgn_indi_tb_next_white_mask);
+
+ HBufC* nextToolTipText1 = CCoeEnv::Static()->AllocReadResourceLC(R_IR_NOW_TOOLTIP_NEXT);
+ CAknButton* button3 = CAknButton::NewL(KIRMifFileName,bitmapId,
+ maskId, 0,0,bitmapId,maskId,bitmapId,maskId,KNullDesC ,
+ *nextToolTipText1,0,0,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone,KAknsIIDNone);
+
+ CleanupStack::PopAndDestroy(nextToolTipText1);
+ CleanupStack::PushL(button3);
+ iToolbar->AddItemL(button3, EAknCtButton, EIRCmdStepNextPreset, 0, 2 );
+ CleanupStack::Pop(button3);
+
+ // Take toolbar control event handling from touch pane.
+ // Events need to be forwarded to touch pane manually.
+ iToolbar->SetToolbarVisibility(ETrue, EFalse);
+ }
+ if(!iShowToolBar)
+ {
+ iToolbar->SetItemDimmed(EIRCmdStepNextPreset,ETrue,ETrue);
+ iToolbar->SetItemDimmed(EIRCmdStepPrevPreset,ETrue,ETrue);
+ }
+ if(iUi->IsCallActive())
+ {
+ if(!iNowPlayingWrapper->iPlaying)
+ {
+ iToolbar->SetItemDimmed(EIRCmdPlay,ETrue,ETrue);
+ }
+ else
+ {
+ iToolbar->SetItemDimmed(EIRCmdStop,ETrue,ETrue);
+ }
+ }
+
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::ConstructToolbarL - Exiting" );
+ }
+
+
+// --------------------------------------------------------------------------
+// CIRNowPlayingView::OfferToolbarEventL
+// --------------------------------------------------------------------------
+//
+void CIRNowPlayingView::OfferToolbarEventL( TInt aCommand )
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::OfferToolbarEventL - Entering" );
+ HandleCommandL(aCommand);
+ IRLOG_DEBUG( "CIRNowPlayingView::OfferToolbarEventL - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::Displaylogo
+// Simulate user pressing play immediately when came into this view.
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::DisplaylogoL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplaylogoL - Entering" );
+ if(iContainer)
+ {
+ iStationHasLogo=ETrue;
+ if(iNowPlayingWrapper->GetView()==EFav||iNowPlayingWrapper->GetView()==ESearch
+ ||iNowPlayingWrapper->GetView()==EStations
+ || iNowPlayingWrapper->GetView()==EBrowseByTopStations
+ || iNowPlayingWrapper->GetView()==EPls)
+ {
+ iStationHasLogo=iContainer->StationLogoControl().SwitchToLogoL( iLogoIndex );
+ }
+ else if(iNowPlayingWrapper->GetView()==ELastplayed
+ ||iNowPlayingWrapper->GetView()==EHistoryView)
+ {
+ iStationHasLogo=iContainer->StationLogoControl().SwitchToLogoL( iIndex );
+ }
+
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::DisplaylogoL - Exiting" );
+ }
+
+// ---------------------------------------------------------------------------
+// From MIRLogoControlObserver.
+// CIRNowPlayingView::LogoReadyForDisplayL
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::LogoReadyForDisplayL()
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::LogoReadyForDisplayL " );
+ if ( iContainer->RadioIdle().State() != CIRRadioIdle::EStopped )
+ {
+ iContainer->RadioIdle().HandleCommandL( EShutdown );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// From MIRLogoControlObserver.
+// CIRNowPlayingView::LogoConversionFailedL
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::LogoConversionFailedL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::LogoConversionFailedL " );
+ if ( iContainer->RadioIdle().State() == CIRRadioIdle::EStopped )
+ {
+ iContainer->RadioIdle().HandleCommandL( EStartup );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::GetLogo
+// Simulate user pressing play immediately when came into this view.
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::GetLogoL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::GetLogoL - Entering" );
+ if(iContainer)
+ {
+ iLogoIndex=iRockerIndex;
+ if(iNowPlayingWrapper->iNowPlayingPreset->GetImgUrl().Length() != 0)
+ {
+ iUi->iIsdsWrapper->GetISDSInstance()->GetDataProvider()->GetHttpDataProvider()->
+ GetLogoDownloadEngine()->SendRequestL(iNowPlayingWrapper->iNowPlayingPreset,
+ this,KTwo,KSize,KSize);
+ }
+
+ else
+ {
+ iStationHasLogo=EFalse;
+ iDefaultLogo=ETrue;
+ }
+
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::GetLogoL - Exiting" );
+
+ }
+// ---------------------------------------------------------
+// CIRNowPlayingView::HandleForegroundEventL
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::HandleForegroundEventL(TBool aForeground)
+ {
+ IRLOG_DEBUG2(" *** S60InternetRadio -- CIRNowPlayingView::HandleForegroundEventL(%d)",aForeground);
+
+ CIRBaseView::HandleForegroundEventL(aForeground);
+
+ if (aForeground)
+ {
+ if (iStartUp)
+ {
+ CIRUi* appUi = static_cast<CIRUi*>( AppUi() );
+
+ iStartUp = EFalse;
+ if(appUi->SystemEventCollector().IsNetworkCoverage())
+ {
+ HandleSystemEventL(EIRNetworkCoverageUp);
+ }
+ else
+ {
+ HandleSystemEventL(EIRNetworkCoverageDown);
+ }
+ if(!iEaualizerOn)
+ {
+ if(iContainer && !iCallActive)
+ {
+ iFadeStyle=EIRFadeUnknown;
+ delete iConnectionCleanupTimer;
+ iConnectionCleanupTimer = NULL;
+ TRAPD( err, iConnectionCleanupTimer = CPeriodic::NewL( CActive::EPriorityStandard ) )
+ if ( err == KErrNone )
+ {
+ iConnectionCleanupTimer->Start( KWaitTimeInMicroSeconds, 0,
+ TCallBack( StaticConnectionCleanupCallback, this ) );
+ }
+ }
+ }
+ }
+ else
+ {
+ if(!iEaualizerOn)
+ {
+ if( iContainer && !iCallActive)
+ {
+ if ( iContainer )
+ {
+ iContainer->LayoutControl();
+ }
+ iFadeStyle=EIRFadeNoFade;
+ DrawViewL(iStationHasLogo);
+
+ }
+
+ }
+ }
+ }
+ else
+ {
+ if(iContainer)
+ {
+ CAlfEnv* env = CAlfEnv::Static();
+ if ( env )
+ {
+ iContainer->RadioIdle().HandleCommandL( EShutdown );
+ }
+ }
+
+ /*if(iContainer)
+ {
+ if(iVolPopup->IsVisible())
+ {
+ iVolPopup->CloseVolumePopup();
+ }
+ }*/
+ }
+}
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::Draw
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::DrawViewL( TBool aLogoStatus )
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DrawViewL - Entering" );
+ if(iContainer)
+ {
+ if(iBuffer!=KNullDesC)
+ {
+ CIRStationInformationData* data = CIRStationInformationData::NewL( *iCoeEnv );
+ CleanupStack::PushL( data );
+ CIRStationInformationDisplay& display = iContainer->StationInformationDisplay();
+ data->SetFadeDirectionality( iFadeStyle );
+ data->SetNameL(iBuffer);
+ if(iMetadata!=KNullDesC)
+ {
+ data->SetRdsPsNameL(iMetadata);
+ }
+ if(iNowPlayingWrapper->GetView()==EFav)
+ {
+ if(iIndex>=0)
+ data->SetIndexL(iIndex);
+ }
+ RBuf bitrate;
+ bitrate.CleanupClosePushL();
+ if(iShowBitrate || iNowPlayingWrapper->iPlaying)
+ {
+ TInt bitRate(0);
+ RProperty::Get ( KUidActiveInternetRadioApp, KIRPSBitrate, bitRate );
+ HBufC* BitRate = StringLoader::LoadLC(R_IRAPP_NOWPLAYING_BITRATE, bitRate);
+ bitrate.Create(BitRate->Length());
+ bitrate.Copy(*BitRate);
+ CleanupStack::PopAndDestroy(BitRate);
+ DisplayBitrate(bitrate);
+ }
+ ///displaying the byte counter///////
+ iUi->UpdateNowPlayingByteCounter();
+ iContainer->StationLogoControl().SetLogoFadeStyle( iFadeStyle );
+ if( iFadeStyle == EIRFadeNoFade
+ && iContainer->RadioIdle().State() != CIRRadioIdle::EStopped )
+ {
+ if(iNowPlayingWrapper->iPlaying)
+ {
+ iContainer->RadioIdle().UpdateRadioIdleContent( bitrate,iBitrateIndex );
+ }
+ else
+ {
+ iContainer->RadioIdle().UpdateRadioIdleContent( data->Name(),iBitrateIndex );
+ }
+ iContainer->RadioIdle().UpdateRadioIdleContent( data->Name(), iNameIndex );
+ iContainer->RadioIdle().UpdateRadioIdleContent( data->Name(),iNameIndex1 );
+ iContainer->RadioIdle().UpdateRadioIdleContent( data->RdsPsName(),iMetadataIndex ); // Rds
+ if(iNowPlayingWrapper->iNowPlayingPreset->GetGenreName().Length())
+ {
+ iContainer->RadioIdle().UpdateRadioIdleContent(
+ iNowPlayingWrapper->iNowPlayingPreset->GetGenreName(),iPSNameIndex );
+ }
+ else
+ {
+ iContainer->RadioIdle().UpdateRadioIdleContent( data->Name(),iPSNameIndex); // PS name, updated later
+ }
+ }
+ else
+ {
+ switch ( iFadeStyle )
+ {
+ case EIRFadeLeftToRight:
+ iContainer->RadioIdle().SetIdleFadeStyle( CIRRadioIdle::EFadeRight );
+ break;
+ case EIRFadeRightToLeft:
+ iContainer->RadioIdle().SetIdleFadeStyle( CIRRadioIdle::EFadeLeft );
+ break;
+ case EIRFadeNoFade:
+ iContainer->RadioIdle().SetIdleFadeStyle( CIRRadioIdle::EFadeStyleNone );
+ break;
+ default:
+ break;
+ }
+ if(!aLogoStatus)
+ {
+ iContainer->StationLogoControl().FadeOutLogo(iRockerIndex);
+ }
+ if ( iContainer->RadioIdle().State() != CIRRadioIdle::EStopped )
+ {
+ iContainer->RadioIdle().HandleCommandL( EShutdown );
+ }
+ // Tuned to new station which has no logo, set data and start radio idle.
+ /*lint -save -e744 (Info -- Boolean within 'left side of && within if' always evaluates to True)*/
+ iContainer->RadioIdle().HandleCommandL( EResetContent );
+ if ( !aLogoStatus )
+ /*lint -restore*/
+ {
+
+ if(iNowPlayingWrapper->iPlaying)
+ {
+ iBitrateIndex = iContainer->RadioIdle().AddRadioIdleContentL( bitrate );
+ }
+ else
+ {
+ iBitrateIndex=iContainer->RadioIdle().AddRadioIdleContentL( data->Name() );
+ }
+ iNameIndex = iContainer->RadioIdle().AddRadioIdleContentL( data->Name() );
+ iNameIndex1=iContainer->RadioIdle().AddRadioIdleContentL( data->Name() );
+ iMetadataIndex = iContainer->RadioIdle().AddRadioIdleContentL( data->RdsPsName() ); // Rds
+ if(iNowPlayingWrapper->iNowPlayingPreset->GetGenreName().Length())
+ {
+ iPSNameIndex = iContainer->RadioIdle().AddRadioIdleContentL(
+ iNowPlayingWrapper->iNowPlayingPreset->GetGenreName());
+ }
+ else
+ {
+ iPSNameIndex = iContainer->RadioIdle().AddRadioIdleContentL( data->Name()); // PS name, updated later
+ }
+ }
+
+ }
+ if ( !aLogoStatus && iContainer->RadioIdle().State() == CIRRadioIdle::EStopped )
+ {
+ iContainer->RadioIdle().HandleCommandL( EStartup );
+ }
+ else if(aLogoStatus)
+ {
+ DisplaylogoL();
+ }
+ display.SetDisplayedDataL( *data );
+ CleanupStack::PopAndDestroy(&bitrate);
+ CleanupStack::PopAndDestroy( data );
+ iStationHasLogo=aLogoStatus;
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::DrawViewL - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::StartTimerL()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::StartTimerL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::StartTimerL - Entering" );
+ iBuffer.Close();
+ iBuffer.Create(iNowPlayingWrapper->iNowPlayingPreset->GetName().Length()+ KPresetNumbering);
+ iBuffer.Append(iNowPlayingWrapper->iNowPlayingPreset->GetName());
+ if(!iSameUrl)
+ {
+ iNowPlayingWrapper->SetMarquee(EFalse);
+ iNowPlayingWrapper->SetMedadataForErrotrConditions(ETrue);
+ DisplaySongArtistNameL(KConst1,KConst1);
+ //iNowPlayingWrapper->SetMetadataL()
+ }
+ iSameUrl=EFalse;
+ iStationHasLogo=EFalse;
+
+ DrawViewL(iStationHasLogo);
+ GetLogoL();
+ IRLOG_DEBUG( "CIRNowPlayingView::StartTimerL - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::ReFreshView()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::ReFreshViewL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::ReFreshViewL - Entering" );
+ if ( iContainer )
+ {
+ DrawViewL(iStationHasLogo);
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::ReFreshView - Exiting." );
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::ResponseL()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::ResponseL(CIRIsdsPreset* /*aPreset*/)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::ResponseL " );
+ //TO DO :: The line can be removed in future written to fix
+ // Code Scanner ERROR
+ return;
+ //no implementation
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::PresetResponseL()
+//Callback To Receive ISDS Preset
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::PresetResponseL(CIRIsdsPreset* aPreset)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::PresetResponseL - Entering" );
+
+ if ( !iUi->CheckAndNotifyLowDiskSpaceL() )
+ {
+ // TO Do
+ // Check the condition in If
+ //!iNowPlayingWrapper->GetWhenUserCancelsIsdsBufferingWaitBar()
+ iNowPlayingWrapper->SetListenFromIsdsValue(ETrue);
+ iNowPlayingWrapper->ListenToChannelL(aPreset);
+ StartTimerL();
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::PresetResponseL - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetsameUrlFlag()
+//For displaing the metadata
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::SetsameUrlFlag(TBool aSameUrl)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::SetsameUrlFlag - Entering" );
+ iSameUrl=aSameUrl;
+ IRLOG_DEBUG( "CIRNowPlayingView::SetsameUrlFlag - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetsameUrlFlag()
+//For displaing the metadata
+// ---------------------------------------------------------------------------
+//
+TInt CIRNowPlayingView::GetsameUrlFlag()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::SetsameUrlFlag - Entering" );
+ IRLOG_DEBUG( "CIRNowPlayingView::SetsameUrlFlag - Exiting" );
+ return iSameUrl;
+ }
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::ErrorL()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::ErrorL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::ErrorL - Entering" );
+ if(iIsdsWrapper->GetListenRequest())
+ {
+ iRockerIndex=iPresetCount;
+ iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingError);
+ iNowPlayingWrapper->DestroyWaitDialogL();
+ iIsdsWrapper->SetListenRequest(EFalse);
+ }
+ if(iIsdsWrapper->iConnTimeOut)
+ {
+ iIsdsWrapper->iConnTimeOut = EFalse;
+ }
+ if(iIsdsWrapper->iDialogDismissed)
+ {
+ iIsdsWrapper->iDialogDismissed=EFalse;
+ iRockerIndex=iPresetCount;
+ }
+ if(iUi->iNowPlayingWrapper->iSyncPreset)
+ {
+ iRockerIndex=iPresetCount;
+ iNowPlayingWrapper->DestroyWaitDialogL();
+ iUi->iNowPlayingWrapper->iSyncPreset=EFalse;
+ }
+ //TO DO :: The line can be removed in future nad written to fix
+ // Code Scanner ERROR
+ IRLOG_DEBUG( "CIRNowPlayingView::ErrorL - Exiting" );
+ return;
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::GetStereoModeL()
+// Used Getting the status of Stereo Mode
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::GetStereoModeL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::GetStereoModeL - Entering" );
+ iStereoMode=iIRSettings->GetStereoMode();
+ if(iStereoMode)
+ {
+ iDs=EOnCmd;
+
+ //Used for later in implementing Stereo mode Functionality
+
+ if(!iStereoEffect) // If stereo widening is ON and not constructed
+ {
+ TUint stereoLevel = KHundred;
+ // cmdUtil ownership passed into new object
+ TRAPD(error,iStereoEffect = CStereoWidening::NewL(
+ *(iNowPlayingWrapper->GetMediaClientInstance()->GetPlayerInstance()),EFalse, stereoLevel));
+ if(error)
+ {
+ iStereoEffect = NULL;
+ User::Leave(KErrNotSupported);
+ }
+ }
+ if(iNowPlayingWrapper->iPlaying)
+ {
+ iStereoEffect->EnableL();
+ TUint8 level = KHundred;
+ iStereoEffect->SetStereoWideningLevelL( level );
+ iStereoEffect->ApplyL();
+ }
+ }
+ else
+ {
+ iDs=EOffCmd;
+
+ //For future use
+ //Used for later in implementing Stereo mode Functionality
+
+ if (iStereoEffect) // If audio effects was not on, then no need to disable
+ {
+ if(iNowPlayingWrapper->iPlaying)
+ {
+ iStereoEffect->DisableL();
+ }
+ }
+
+ }
+
+ IRLOG_DEBUG( "CIRNowPlayingView::GetStereoModeL - Exiting" );
+}
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::LaunchMusicShopL()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::LaunchMusicShopL()
+ {
+#ifdef MUSICSHOP_AVAILABLE
+ IRLOG_DEBUG( "Entered CIRNowPlayingView::LaunchMusicShopL - Entering" );
+
+ TApaTaskList tasList( iCoeEnv->WsSession() );
+ TApaTask task = tasList.FindApp( KUidMusicStore );
+
+ if ( task.Exists() )
+ {
+ task.BringToForeground();
+ }
+ else
+ {
+ RApaLsSession session;
+ if ( KErrNone == session.Connect() )
+ {
+ CleanupClosePushL( session );
+ TThreadId threadId;
+ session.CreateDocument( KNullDesC, KUidMusicStore, threadId );
+ CleanupStack::PopAndDestroy(&session);
+ }
+ }
+ IRLOG_DEBUG( "Leaving CIRNowPlayingView::LaunchMusicShopL - Exiting" );
+#endif
+ }
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::DoFindInMusicShopL()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::DoFindInMusicShopL( const TDesC& aSongName,
+ const TDesC& aArtistName,
+ const TDesC& aAlbumName,
+ TBool aMusicFlag )
+ {
+ IRLOG_DEBUG( "Entered CIRNowPlayingView::DoFindInMusicShopL - Entering" );
+#ifdef MUSICSHOP_AVAILABLE
+ HBufC* url = NULL;
+#ifdef __IRA_FEATURE_EQUALIZER
+ if(aMusicFlag && iMPXFindInShop)
+ {
+ //which means, create url for to FindInShop operation
+ url = iMPXFindInShop->CreateSearchURLL( aSongName,
+ aArtistName,
+ aAlbumName,
+ KNullDesC, // Composer - Not used
+ KNullDesC ); // Genre - Not used
+ CleanupStack::PushL(url); // the pointer will be poped
+ }
+ else
+#endif // __IRA_FEATURE_EQUALIZER
+ {
+ //which means, crate url for to GotoMusicStore operation
+ url = CentralRepositoryStringValueL(KCRUidMusicShopSettings,KMusicShopURI);
+ CleanupStack::PushL(url); // the pointer will be poped
+ }
+
+ RProperty::Set( KUidMusicStore,
+ KMShopCategoryId,
+ KFindInMShopKeyValid ); // Set Key to Valid
+
+ RProperty::Set( KUidMusicStore,
+ KMShopCategoryName,
+ *url );
+ LaunchMusicShopL();
+ if(url)
+ {
+ CleanupStack::PopAndDestroy(url);
+ }
+
+ REComSession::FinalClose();
+#else
+ if(aSongName.Length() > 0 || aArtistName.Length() > 0 || aAlbumName.Length() > 0
+ || aMusicFlag)
+ {
+ // do nothing, just remove build warnings.
+ }
+#endif
+ IRLOG_DEBUG( "Leaving CIRNowPlayingView::DoFindInMusicShopL - Exiting" );
+ }
+
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::CentralRepositoryStringValueL
+// Retrievs the string from Central Repository for the specified key and cen rep uid
+// Transfers the ownership of the returned HBufC object
+// The caller must takecare of deleting the returned object*
+// ---------------------------------------------------------------------------
+//
+HBufC* CIRNowPlayingView::CentralRepositoryStringValueL(
+ const TUid& aRepositoryUid, TUint32 aKey ) const
+ {
+ IRLOG_DEBUG( "CIRNetworkController::CentralRepositoryStringValueL- Entering" );
+ CRepository* pRepository = CRepository::NewL( aRepositoryUid );
+ CleanupStack::PushL( pRepository );
+
+ TInt length = KMusicStoreURLSize;
+ HBufC* valueString = HBufC::NewLC( length );
+ TInt error( KErrTooBig );
+ do
+ {
+ TPtr ptr = valueString->Des();
+ error = pRepository->Get( aKey, ptr );
+ if ( error == KErrTooBig )
+ {
+ CleanupStack::PopAndDestroy( valueString );
+ length = KTwo * length;
+ valueString = HBufC::NewLC( length );
+ }
+ } while ( error == KErrTooBig );
+
+ if ( error )
+ {
+ TPtr ptr = valueString->Des();
+ ptr.Copy( KNullDesC() );
+ }
+
+ CleanupStack::Pop( valueString );
+ CleanupStack::PopAndDestroy( pRepository );
+ IRLOG_DEBUG( "CIRNetworkController::CentralRepositoryStringValueL - Exiting." );
+ return valueString;
+ }
+
+
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::ListenFromPls()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::ListenFromPlsL()
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::ListenFromPlsL - Entering" );
+ TInt ListBoxIndex =iRockerIndex;
+ TInt UrlIndex = (ListBoxIndex * KTwo);
+
+ CIRIsdsPreset* preset = CIRIsdsPreset::NewL();
+ CleanupStack::PushL( preset );
+
+ //copy channel name
+ TBuf<KChannelNameSize> channelName;
+ if(UrlIndex>=0 && UrlIndex <iUi->iURLs.Count())
+ {
+ channelName.Copy(*( iUi->iURLs[UrlIndex+1]));
+ }
+ preset->SetName(channelName);
+ preset->SetChannelType(0);
+ channelName.Zero();
+ //copy channel url
+ channelName.Copy(*( iUi->iURLs[UrlIndex] ) );
+ _LIT(KServerName,"NA");
+
+ //set station information to NA
+ preset->SetUrlL(KServerName,channelName,0);
+ preset->SetUrlCount();
+
+
+ // Set the channel as last played and currently playing
+*iNowPlayingWrapper->iNowPlayingPreset = *preset;
+ CleanupStack::PopAndDestroy( preset );
+
+ //connecting to server
+ iNowPlayingWrapper->SetCurrentConnectionSource(EIRAdhocExternal);
+ iNowPlayingWrapper->ConnectToChannelL(*iNowPlayingWrapper->iNowPlayingPreset);
+
+
+ IRLOG_DEBUG( "Leaving CIRNowPlayingView::ListenFromPlsL - Exiting" );
+ }
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::HandleControlEventL()
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView ::HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType )
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::HandleControlEventL - Entering" );
+ if( AknLayoutUtils::PenEnabled() )
+ {
+ if(aEventType==EEventStateChanged)
+ {
+ if(aControl==iVolPopup)
+ {
+ iSettingsValue=iIRSettings->GetVolumeSetting();
+ iVolumeBarValue=iVolPopup->Value();
+ if(iVolumeBarValue<iSettingsValue)
+ {
+ TInt diff=iSettingsValue-iVolumeBarValue;
+ if(diff>1 && (iVolumeBarValue==0 ))
+ {
+ TInt index = iNowPlayingWrapper->GetMediaClientInstance()->MaxVolume()/KMaxVolume;
+ TInt volume = index*iVolumeBarValue;
+ iVolumeMute=ETrue;
+ iNowPlayingWrapper->GetMediaClientInstance()->SetVolume(volume);
+ }
+ else
+ {
+ if(iVolumeMute)
+ {
+ iVolPopup->SetValue(2);
+ iVolumeBarValue=iVolPopup->Value();
+ }
+ iVolumeMute=EFalse;
+ iNowPlayingWrapper->SetVolumeL(iVolumeBarValue);
+ }
+ }
+ else
+ {
+ if(iVolumeMute)
+ {
+ iVolPopup->SetValue(2);
+ iVolumeBarValue=iVolPopup->Value();
+ }
+ iNowPlayingWrapper->SetVolumeL(iVolumeBarValue);
+ iVolumeMute=EFalse;
+ }
+ }
+ }
+ }
+ IRLOG_DEBUG( "Leaving CIRNowPlayingView::HandleControlEventL - Exiting" );
+ }
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetLastPlayedValue()
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView::SetLastPlayedValue(TInt aLastPlayed)
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::SetLastPlayedValue - Entering" );
+ iUpdateLastplayed=aLastPlayed;
+ IRLOG_DEBUG( " CIRNowPlayingView::SetLastPlayedValue - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetStationNameFlag()
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView::SetStationNameFlag(TInt aUpdateStationName)
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::SetStationNameFlag - Entering" );
+ iUpdateStationName=aUpdateStationName;
+ IRLOG_DEBUG( "Leaving CIRNowPlayingView::SetStationNameFlag - Exiting" );
+ }
+
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::HandleSystemEventL
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::HandleSystemEventL(TIRSystemEventType aEventType)
+ {
+ IRLOG_DEBUG(" CIRNowPlayingView::::HandleSystemEventL - Entering");
+
+ CIRUi* appUi = static_cast<CIRUi*>(AppUi());
+ switch (aEventType)
+ {
+ case EIRNetworkCoverageUp:
+ {
+ break;
+ }
+ case EIRNetworkCoverageDown:
+ {
+ break;
+ }
+ case EIRCallActivated:
+ {
+ iCallActive=ETrue;
+ if( appUi->ActiveView() == KIRNowPlayingViewID )
+ {
+ ConstructToolbarL();
+ }
+ iUi->HandleCallActiveL(aEventType);
+
+ break;
+ }
+ case EIRCallDeactivated:
+ {
+ iCallActive=EFalse;
+ iUi->HandleCallActiveL(aEventType);
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::HandleSystemEventL - Exiting." );
+ return;
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetPlayingValue()
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView::SetPlayingValue(TInt aPlaying)
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::SetLastPlayedValue - Entering" );
+ iPlaying=aPlaying;
+ IRLOG_DEBUG( " CIRNowPlayingView::SetLastPlayedValue - Exiting" );
+ }
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::HandleMediaKeys()
+// function handles the hardware media keys
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView::HandleMediaKeysL(TRemConCoreApiOperationId aOperationId,
+ TRemConCoreApiButtonAction aButtonAct)
+ {
+ switch(aOperationId)
+ {
+ case ERemConCoreApiVolumeUp:
+ {
+ TInt volume=iIRSettings->GetVolumeSetting();
+ if(volume==KMaxVolume)
+ {
+ if(!iVolPopup->IsFocused())
+ iVolPopup->ShowVolumePopupL();
+ }
+ else if(volume==KMinVolume && !iVolumeMute)
+ {
+ iVolPopup->SetValue(KMinVolume+(KMaxVolume/KMaxVolumeRange));
+ if(!iVolPopup->IsFocused())
+ iVolPopup->ShowVolumePopupL();
+ iNowPlayingWrapper->SetVolumeL(iVolPopup->Value());
+ }
+ else
+ {
+ switch(aButtonAct)
+ {
+ case ERemConCoreApiButtonPress:
+ case ERemConCoreApiButtonClick:
+ {
+ iVolumeMute=EFalse;
+ iVolPopup->SetValue(2);
+ if(!iVolPopup->IsFocused())
+ iVolPopup->ShowVolumePopupL();
+ iNowPlayingWrapper->SetVolumeL(iVolPopup->Value());
+ }
+ break;
+ case ERemConCoreApiButtonRelease:
+ {
+
+ }
+ break;
+ }
+ }
+
+
+ }
+ break;
+ case ERemConCoreApiVolumeDown:
+ {
+ TInt volume=iIRSettings->GetVolumeSetting();
+
+ if(volume==KMinVolume && !iVolumeMute)
+ {
+ if(!iVolPopup->IsFocused())
+ iVolPopup->ShowVolumePopupL();
+ }
+ else if(volume==KMaxVolume)
+ {
+ iVolPopup->SetValue(KMaxVolume-(KMaxVolume/KMaxVolumeRange));
+ if(!iVolPopup->IsFocused())
+ iVolPopup->ShowVolumePopupL();
+ iNowPlayingWrapper->SetVolumeL(iVolPopup->Value());
+ }
+ else
+ {
+ switch(aButtonAct)
+ {
+ case ERemConCoreApiButtonPress:
+ case ERemConCoreApiButtonClick:
+ {
+ iVolumeMute=EFalse;
+ TInt volume=iIRSettings->GetVolumeSetting();
+ TInt value =volume - (KMaxVolume/KMaxVolumeRange);
+ if(value==0)
+ {
+ iVolumeMute=EFalse;
+ }
+ iVolPopup->SetValue(2);
+ if(!iVolPopup->IsFocused())
+ iVolPopup->ShowVolumePopupL();
+ iNowPlayingWrapper->SetVolumeL(iVolPopup->Value());
+ }
+ break;
+ case ERemConCoreApiButtonRelease:
+ {
+
+ }
+ break;
+ }
+ }
+
+
+ }
+ break;
+ }
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetVolumePopUpValue()
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView::SetVolumePopUpValue(TInt aValue)
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::SetVolumePopUpValue - Entering" );
+
+ iVolPopup->SetValue(aValue);
+ IRLOG_DEBUG( " CIRNowPlayingView::SetVolumePopUpValue - Exiting" );
+ }
+
+ // ---------------------------------------------------------------------------
+// void CIRNowPlayingView::GetVolumePopUpValue()
+// ---------------------------------------------------------------------------
+//
+
+TInt CIRNowPlayingView::GetVolumePopUpValue()
+ {
+ IRLOG_DEBUG( " CIRNowPlayingView::GetVolumePopUpValue - Entering" );
+
+ IRLOG_DEBUG( " CIRNowPlayingView::GetVolumePopUpValue - Exiting" );
+ return iVolPopup->Value();
+ }
+
+// ---------------------------------------------------------------------------
+// From class CBaseView.
+// Returns help context for this view.
+
+// ---------------------------------------------------------------------------
+//
+TCoeHelpContext CIRNowPlayingView::HelpContext() const
+ {
+ return TCoeHelpContext( KIRMCVUid, KIR_HELP_NOW );
+ }
+
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::LaunchFMTransmitterL()
+// Launch FM Transmitter application
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::LaunchFMTransmitterL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::LaunchFMTransmitterL - Entering" );
+
+ if ( FeatureManager::FeatureSupported( KFeatureIdFmtx ) )
+ {
+ TApaTaskList tasList( iCoeEnv->WsSession() );
+ TApaTask task = tasList.FindApp( KFmTxAppUid );
+ if ( task.Exists() )
+ {
+ task.BringToForeground();
+ }
+ else
+ {
+ RProcess process;
+ TApaAppInfo appInfo;
+ RApaLsSession session;
+ if ( KErrNone == session.Connect() )
+ {
+ CleanupClosePushL( session );
+ TThreadId threadId;
+ session.CreateDocument( KNullDesC, KFmTxAppUid, threadId );
+ CleanupStack::PopAndDestroy(&session);
+ }
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::LaunchFMTransmitterL - Exiting" );
+ }
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::DeleteSteroEffect()
+// Destroys the Stereo Effect Corresponing the Player
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::DeleteSteroEffect(TBool /*aStereo*/)
+{
+IRLOG_DEBUG( "CIRNowPlayingView::DeleteSteroEffect - Entering" );
+
+ if(iStereoEffect)
+ {
+ delete iStereoEffect;
+ iStereoEffect=NULL;
+
+ }
+IRLOG_DEBUG( "CIRNowPlayingView::DeleteSteroEffect - Exiting" );
+
+}
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::DisableVolumePopup()
+// Disbale the volumepopup when it is Active
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::DisablePlayer()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::DisablePlayer - Entering" );
+ if(iUi->IsCallActive() )
+ {
+ if(iUi->GetCurrentNetworkType().Compare(KWiFi)==0)
+ {
+ iNowPlayingWrapper->StopPlayer();
+ iNowPlayingWrapper->DoPlayingStateChanged(EFalse);
+ iUi->SetPlayStateWhileCall(ETrue);
+ }
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::DisablePlayer - Exiting" );
+ }
+
+// ---------------------------------------------------------
+// From class MAlfActionObserver.
+// CIRNowPlayingView::HandleActionL
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::HandleActionL( const TAlfActionCommand& aActionCommand )
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::HandleActionL - Entering" );
+
+ if ( aActionCommand.Id() == KAlfActionIdDeviceLayoutChanged )
+ {
+ if ( iContainer )
+ {
+ iAlfEnv.PrimaryDisplay().SetVisibleArea( ClientRect() );
+ iContainer->LayoutControl();
+ iFadeStyle=EIRFadeNoFade;
+ /*delete iConnectionCleanupTimer;
+ iConnectionCleanupTimer = NULL;
+ TRAPD( err, iConnectionCleanupTimer = CPeriodic::NewL( CActive::EPriorityStandard ) )
+ if ( err == KErrNone )
+ {
+ iConnectionCleanupTimer->Start( KWaitTimeInMicroSeconds, 0,
+ TCallBack( StaticConnectionCleanupCallback, this ) );
+ }*/
+ if(iStationHasLogo)
+ {
+ DisplaylogoL();
+ }
+ DrawViewL(iStationHasLogo);
+ }
+ }
+ else if ( aActionCommand.Id() == KAlfActionIdSkinChanged )
+ {
+ if ( iContainer )
+ {
+ // Update radio idle skin color
+ MAknsSkinInstance* skin = AknsUtils::SkinInstance();
+ if ( skin )
+ {
+ TRgb textColor; // text color when not highlighted
+ AknsUtils::GetCachedColor( skin, textColor, KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG6 );
+ TRgb highlightColor; // text color when highlighted
+ AknsUtils::GetCachedColor( skin, highlightColor, KAknsIIDQsnTextColors,
+ EAknsCIQsnTextColorsCG10 );
+ iContainer->RadioIdle().SetPrimaryColor( textColor );
+ iContainer->RadioIdle().SetSecondaryColor( highlightColor );
+ iFadeStyle=EIRFadeNoFade;
+ ConstructToolbarL();
+ if(iStationHasLogo)
+ {
+ DisplaylogoL();
+ }
+ DrawViewL(iStationHasLogo);
+ }
+ }
+
+ }
+ else
+ {
+ }
+ }
+ // ---------------------------------------------------------
+// void CIRNowPlayingView::SetBitrate()
+// Sets The Bitrates Value
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::SetBitrate(TInt aError)
+{
+IRLOG_DEBUG( "CIRNowPlayingView::SetBitrate - Entering" );
+
+ if(iContainer)
+ {
+ TInt bitRate(0);
+ if(!aError)
+ {
+ iShowBitrate=ETrue;
+ RProperty::Get ( KUidActiveInternetRadioApp, KIRPSBitrate, bitRate );
+ }
+ else
+ {
+ iShowBitrate=EFalse;
+ }
+ RBuf bitrate;
+ HBufC* BitRate=NULL;
+ TRAPD(err,BitRate= StringLoader::LoadL(R_IRAPP_NOWPLAYING_BITRATE, bitRate);)
+ if(err==KErrNone)
+ {
+ bitrate.Create(BitRate->Length());
+ bitrate.Copy(*BitRate);
+ DisplayBitrate(bitrate);
+ bitrate.Close();
+ }
+ delete BitRate;
+ }
+
+IRLOG_DEBUG( "CIRNowPlayingView::SetBitrate - Exiting " );
+}
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::IsMetaData()
+// returns true if there is meta data
+// ---------------------------------------------------------
+TBool CIRNowPlayingView::IsMetaData()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::IsMetaData - Entered " );
+ TBool retVal = ETrue;
+
+ if( iNowPlayingWrapper->MetaData().Song().Length() <= KOne &&
+ iNowPlayingWrapper->MetaData().Artist().Length() <= KOne )
+ {
+ retVal = EFalse;
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::IsMetaData - Leaving " );
+ return retVal;
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::MusciStoreEnabledStatus()
+// returns true if music store enabled status is "yes"
+// ---------------------------------------------------------
+TBool CIRNowPlayingView::MusciStoreEnabledStatus()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::MusciStoreEnabledStatus - Entered " );
+ _LIT(KMusicStoreEnabled, "yes");
+ TBool retVal = EFalse;
+
+ if (iNowPlayingWrapper->iNowPlayingPreset->
+ GetMusicStoreStatus().CompareF(KMusicStoreEnabled)==0 )
+ {
+ retVal = ETrue;
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::MusciStoreEnabledStatus - Leaving " );
+ return retVal;
+ }
+
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetLogoStatus()
+// Sets the Value of Request Pendind While Checking For Network
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::SetRequestPendingWhenNoNetWork(TBool aRequestPending)
+{
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Entering" );
+iRequestPending=aRequestPending;
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Exiting" );
+}
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetLogoStatus()
+// Return the Request Pending Value
+// ---------------------------------------------------------------------------
+//
+TBool CIRNowPlayingView::GetRequestPending()
+{
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Entering" );
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Exiting" );
+return iRequestPending;
+}
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetLogoStatus()
+// Sets the Value of Request Pendind While Checking For Network
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::SetRequestPendingWhenNoNetWorkForNextOrPrev(TBool aRequestPending)
+{
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Entering" );
+iNextOrPrevRequest=aRequestPending;
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Exiting" );
+}
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::SetLogoStatus()
+// Return the Request Pending Value
+// ---------------------------------------------------------------------------
+//
+TBool CIRNowPlayingView::GetRequestPendingForNextOrPreV()
+{
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Entering" );
+IRLOG_DEBUG( "CIRLogoTimer::SetLogoStatus - Exiting" );
+return iNextOrPrevRequest;
+}
+// ---------------------------------------------------------------------------
+// SetRockerIndex()
+// Sets the Current Playing Index
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView::SetRockerIndex(TInt aRockerIndex )
+ {
+
+ IRLOG_DEBUG( "CIRNowPlayingView::SetRockerIndex - Entering" );
+ iRockerIndex=aRockerIndex;
+ IRLOG_DEBUG( "CIRNowPlayingView::SetRockerIndex - exiting" );
+ }
+// ---------------------------------------------------------------------------
+// GetRockerIndex()
+// Returns The current Playing Index
+// ---------------------------------------------------------------------------
+//
+
+TInt CIRNowPlayingView::GetRockerIndex( )
+ {
+
+ IRLOG_DEBUG( "CIRNowPlayingView::GetRockerIndex - Entering" );
+ IRLOG_DEBUG( "CIRNowPlayingView::GetRockerIndex - exiting" );
+ return iRockerIndex;
+ }
+
+// ---------------------------------------------------------------------------
+// SavePreviousIndex()
+// Sets the Current Playing Index
+// ---------------------------------------------------------------------------
+//
+
+void CIRNowPlayingView::SavePreviousIndex(TInt aPresetCount )
+ {
+
+ IRLOG_DEBUG( "CIRNowPlayingView::SavePreviousIndex - Entering" );
+ iPresetCount=aPresetCount;
+ IRLOG_DEBUG( "CIRNowPlayingView::SavePreviousIndex - exiting" );
+ }
+// ---------------------------------------------------------------------------
+// GetPreviousIndex()
+// Returns The Previous Index
+// ---------------------------------------------------------------------------
+//
+
+TInt CIRNowPlayingView::GetPreviousIndex( )
+ {
+
+ IRLOG_DEBUG( "CIRNowPlayingView::GetPreviousIndexex - Entering" );
+ IRLOG_DEBUG( "CIRNowPlayingView::GetPreviousIndex - exiting" );
+ return iPresetCount;
+ }
+// ---------------------------------------------------------------------------
+// IsVolumeMuted()
+// Returns whether volume is Muted
+// ---------------------------------------------------------------------------
+//
+
+TBool CIRNowPlayingView::IsVolumeMuted( )
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::IsVolumeMuted - Entering" );
+ IRLOG_DEBUG( "CIRNowPlayingView::IsVolumeMuted - exiting" );
+ return iVolumeMute;
+ }
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::MrccatoCommand()
+// This is call back function which observes hardware key events
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::MrccatoCommand(TRemConCoreApiOperationId aOperationId,
+ TRemConCoreApiButtonAction aButtonAct)
+ {
+ IRLOG_INFO3( "CIRNowPlayingView::MrccatoCommand(aOperationId=%d, aButtonAct=%d)", aOperationId, aButtonAct );
+
+
+ switch( aOperationId )
+ {
+ case ERemConCoreApiPausePlayFunction:
+ if( iNowPlayingWrapper->iPlaying )
+ {
+ MrccatoCommand( ERemConCoreApiPause, aButtonAct );
+ }
+ else
+ {
+ // Note that ERemConCoreApiPlaybackSpeedForward is just any value,
+ // it's not used by MrccatoPlay implementation in this class.
+ MrccatoPlay( ERemConCoreApiPlaybackSpeedForward, aButtonAct );
+ }
+ break;
+ case ERemConCoreApiPause: // -fall through
+ case ERemConCoreApiStop:
+ if( aButtonAct == ERemConCoreApiButtonClick )
+ {
+ if( iNowPlayingWrapper->iPlaying)
+ {
+ TRAP_IGNORE( PlayAndStopControlL() )
+ }
+ }
+
+ break;
+ case ERemConCoreApiForward:
+ if( aButtonAct == ERemConCoreApiButtonClick )
+ {
+ if(iContainer)
+ {
+ TRAP_IGNORE(HandleCommandL(EIRCmdStepNextPreset);)
+ }
+ }
+ break;
+ case ERemConCoreApiBackward:
+ if( aButtonAct == ERemConCoreApiButtonClick )
+ {
+ if(iContainer)
+ {
+ TRAP_IGNORE(HandleCommandL(EIRCmdStepPrevPreset);)
+ }
+ }
+
+ break;
+ default:
+ break;
+ }
+
+ IRLOG_DEBUG( "CIRNowPlayingView::MrccatoCommand - Exiting." );
+ }
+
+// ---------------------------------------------------------
+// CIRNowPlayingView::MrccatoPlay()
+// ---------------------------------------------------------
+//
+void CIRNowPlayingView::MrccatoPlay(TRemConCoreApiPlaybackSpeed IRDEBUGVAR(aSpeed),
+ TRemConCoreApiButtonAction aButtonAct)
+ {
+ IRLOG_INFO3( "CIRNowPlayingView::MrccatoPlay(aSpeed=%d, aButtonAct=%d)", aSpeed, aButtonAct );
+
+
+ if( aButtonAct == ERemConCoreApiButtonClick )
+ {
+ if( !iNowPlayingWrapper->iPlaying )
+ {
+ if(iContainer)
+ {
+ TRAP_IGNORE(PlayAndStopControlL();)
+ }
+ }
+ }
+
+ IRLOG_DEBUG( "CIRNowPlayingView::MrccatoPlay - Exiting." );
+ }
+
+// -----------------------------------------------------------------------------
+// CIRNowPlayingView::HasBeenActivated()
+// ------------------------------------------------------------------------------
+//
+TBool CIRNowPlayingView::HasBeenActivated() const
+ {
+ return iHasBeenActivated;
+ }
+
+// CIRNowPlayingView::GetCommandId()
+// ------------------------------------------------------------------------------
+//
+TInt CIRNowPlayingView::GetCommandId()
+{
+
+return iCommandId;
+}
+// ---------------------------------------------------------------------------
+// void CIRNowPlayingView::UpdateLastplayed()
+// To Update LastPlayed
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::UpdateLastplayedL()
+{
+ if(iNowPlayingWrapper->iNowPlayingPreset)
+ {
+ // store the last played station
+ *iUi->iLastPlayed->iLastPlayedStation = *iNowPlayingWrapper->iNowPlayingPreset;
+ TRAPD(err,iUi->iLastPlayed->CommitLastPlayedChannelL());
+ TInt error=KErrNone;
+ if(err != KErrNone)
+ {
+ error = iUi->iLastPlayed->RemoveLastPlayedFile();
+ User::Leave(error);
+ }
+ }
+}
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::SyncPresetL()
+// ---------------------------------------------------------------------------
+//
+void CIRNowPlayingView::SyncPresetL(TInt aChid,const TDesC &aModifiedTime)
+ {
+ //sync state set to pending
+ iUi->iNowPlayingWrapper->CreateWaitDialogL();
+ iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingStart);
+
+ iUi->iNowPlayingWrapper->iSyncPreset = ETrue;
+ iIsdsWrapper->SetSyncPresetObserver( this,this );
+ iUi->iIsdsWrapper->GetISDSInstance()->SyncPresetL(aChid,aModifiedTime);
+ }
+
+// ------------------------------------------------------------------------
+// from MSyncPresetObserver
+// SyncPresetRemovedL()
+// called back when the preset that is synced was removed from isds
+// @param TInt,the preset id
+// -----------------------------------------------------------------------
+void CIRNowPlayingView::SyncPresetRemovedL(TInt /*aId*/)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::SyncPresetRemovedL - Entering." );
+ // TO Do: need to check
+ iNowPlayingWrapper->SetFavFocus(iRockerIndex+1) ;
+ iUi->iNowPlayingWrapper->iSyncPreset = EFalse;
+
+ // Connect to Favourite User-defined preset
+ if(iUi->iFavPresets->iFavPresetList.Count() >= 1)
+ {
+ iUi->iFavPresets->iFavPresetList[iRockerIndex]->
+ CopyPresetData(*iNowPlayingWrapper->iNowPlayingPreset);
+ iNowPlayingWrapper->ConnectToChannelL(*iNowPlayingWrapper->iNowPlayingPreset);
+ StartTimerL();
+ }
+ IRLOG_DEBUG( "CIRNowPlayingView::SyncPresetRemovedL - Entering." );
+ }
+
+// -----------------------------------------------------------------------
+// from MSyncPresetObserver
+// SyncPresetChangedL()
+// called back when the preset that is synced has been changed in the isds
+// @param CIRIsdsPreset&,the new preset data
+// ----------------------------------------------------------------------
+void CIRNowPlayingView::SyncPresetChangedL(CIRIsdsPreset& /*aPreset*/)
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::SyncPresetChangedL - Entering." );
+ iUi->iNowPlayingWrapper->iSyncPreset = EFalse;
+ // TO Do: need to check
+ iNowPlayingWrapper->SetFavFocus(iRockerIndex+1);
+ // Connect to Favourite User-defined preset
+ if(iUi->iFavPresets->iFavPresetList.Count() >= 1)
+ {
+ iUi->iFavPresets->iFavPresetList[iRockerIndex]->
+ CopyPresetData(*iNowPlayingWrapper->iNowPlayingPreset);
+ iNowPlayingWrapper->ConnectToChannelL(*iNowPlayingWrapper->iNowPlayingPreset);
+ StartTimerL();
+ }
+
+ IRLOG_DEBUG( "CIRNowPlayingView::SyncPresetChangedL - Entering." );
+ }
+
+// -----------------------------------------------------------------------
+// from MSyncPresetObserver
+// SyncPresetNoChangeL()
+// called back when the preset that is synced has not been changed
+// -----------------------------------------------------------------------
+void CIRNowPlayingView::SyncPresetNoChangeL()
+ {
+ IRLOG_DEBUG( "CIRNowPlayingView::SyncPresetNoChangeL - Entering." );
+ iUi->iNowPlayingWrapper->iSyncPreset = EFalse;
+ // TO Do: need to check
+ iNowPlayingWrapper->SetFavFocus(iRockerIndex+1);
+
+ if(iUi->iFavPresets->iFavPresetList.Count() >= 1)
+ {
+ iUi->iFavPresets->iFavPresetList[iRockerIndex]->
+ CopyPresetData(*iNowPlayingWrapper->iNowPlayingPreset);
+ iNowPlayingWrapper->ConnectToChannelL(*iNowPlayingWrapper->iNowPlayingPreset);
+ StartTimerL();
+ }
+
+ IRLOG_DEBUG( "CIRNowPlayingView::SyncPresetNoChangeL - Entering." );
+ }
+// ---------------------------------------------------------------------------
+// CIRNowPlayingView::StaticConnectionCleanupCallback
+// ---------------------------------------------------------------------------
+//
+TInt CIRNowPlayingView::StaticConnectionCleanupCallback( TAny* aSelfPtr )
+ {
+ CIRNowPlayingView* self = reinterpret_cast<CIRNowPlayingView*>( aSelfPtr );
+
+ if(self)
+ {
+ delete self->iConnectionCleanupTimer;
+ self->iConnectionCleanupTimer = NULL;
+ TRAP_IGNORE(self->DrawViewL(self->iStationHasLogo);)
+ }
+ return KErrNone;
+ }