internetradio2.0/uisrc/irnowplayingview.cpp
changeset 0 09774dfdd46b
--- /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;
+	}