diff -r 2e1adbfc62af -r ee64f059b8e1 internetradio2.0/uiinc/irnowplayingview.h --- a/internetradio2.0/uiinc/irnowplayingview.h Mon May 03 12:25:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,847 +0,0 @@ -/* -* Copyright (c) 2004-2006 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: Header file for CIRNowPlayingView -* -*/ - - -#ifndef C_CIRNOWPLAYINGVIEW_H -#define C_CIRNOWPLAYINGVIEW_H - -#include "internetradioconfigurationflags.hrh" -#include -#ifdef MUSICSHOP_AVAILABLE -#include //For Find in Shop -#include //For Find in Shop -#endif -#include //For future use -#include - -#include -#include "irbaseview.h" -#include "irui.h" -#include "ir.hrh" -#include "pspresetobserver.h" -#include "MLogoDownloadObserver.h" -#include "irstationinformationdata.h" -#include -#include -#include "IRFavoritesDb.h" -#include "MViewsResponseAndErrorObserver.h" -#include - -#include -#include -#include "irstationlogocontrolobserver.h" - -#include "IRActiveNetworkObserver.h" -#include "msyncpresetobserver.h" // MSyncPresetObserver -//Forward Declarations -class CAlfEnv; -class CIRNowPlayingViewContainer; -class CIRIsdsPreset; -class CIRLogoDownloadEngine; -class MLogoDownloadObserver; -class CIRIsdsPreset; -class CEikMenuPane; - -#ifdef __IRA_FEATURE_EQUALIZER -class CMPXViewPlugin; -class CMPXFindInMShop; //For Find in Shop -#endif - -class CMdaAudioPlayerUtility; -class CStereoWidening; -class CIRSettings; -class CMPXFindInMShop; //For Find in Shop -class CAknVolumePopup; -class CAknWaitDialog; -class CIRLogoTimer; -/** - * NowPlayingView View - * - * NowPlayingView View, the view displayed in Internet Radio application,when - * Listen is Done - */ -class CIRNowPlayingView :public CIRBaseView,public MPSPresetObserver, - public MLogoDownloadObserver,public MAknToolbarObserver, - public MViewsResponseAndErrorObserver,public MCoeControlObserver, - public MAlfActionObserver,private MRemConCoreApiTargetObserver, - public MIRLogoControlObserver, - public MSyncPresetObserver - - - { -public: // Methods - - /** - * Function : NewL - * Function returns an instance of CIRNowPlayingView - * Two phase constructor - * @param aAlfEnv Alfred environment to use - * @return instance of CIRNowPlayingView - */ - static CIRNowPlayingView* NewLC( CAlfEnv& aAlfEnv ); - - /** - * Two-phased constructor. - * - * Adds the control to the control group - * - * @param aEnv Alfred environment to use. - * @return The created object. Ownership is not transferred. - */ - static CIRNowPlayingView* NewL( CAlfEnv& aEnv); - /** - * Destructor. - */ - ~CIRNowPlayingView(); - - /** - * OfferToolbarEventL() - */ - void OfferToolbarEventL(TInt aCommand ); - - /** - * Id() - * returns the id of the View - */ - // from base class CAknView - TUid Id() const; - - /** - * HandleCommandL() - */ - void HandleCommandL( TInt aCommand ); - - /** - * DynInitMenuPaneL() - */ - // from base class MEikMenuObserver - void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); - - - /** - * HandleForegroundEventL() - */ - void HandleForegroundEventL( TBool aForeground ); - - /** - * Function : PresetLogoDownloadedL - * CallBack Function Returning the Preset With Logo - * @param aPreset to be filled with Logo - */ - void PresetLogoDownloadedL(CIRIsdsPreset* aPreset); - - /** - * PresetLogoDownloadError() - * CallBack Function Returning the Preset Without Logo - * Called when an error/connection-fail occurs while downloading - * @param aPreset sent without Logo - */ - void PresetLogoDownloadError(CIRIsdsPreset* aPreset); - - - /** - * Function :PlayAndStopControlL() - * Function Used to Play or Stop The Song - * User Play,Stop Functionality - */ - void PlayAndStopControlL(); - - /** - * Function :ConnectToPreset() - * User For Connecting To Next or Prev Preset - * For Context Navigation - */ - void ConnectToPresetL(); - - // from base class MCoeControlObserver - /** - * From MCoeControlObserver - * - * @see MCoeControlObserver::HandleControlEventL( - * CCoeControl* aControl, - * TCoeEvent aEventType ) - */ - void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); - -// from base class MAlfActionObserver - void HandleActionL(const TAlfActionCommand& aActionCommand); - - /** - * Function :UpdateStationNameL() - * User For Updating Station Name - * @param aFadeStyle Used for setting Directionality - */ - void UpdateStationNameL(TIRFadeStyle /*aFadeStyle*/) ; - - /** - * Function :DisplayBitrate() - * Used for Displaying Bitrate - * @param aBitrate Value To show on the View - */ - void DisplayBitrate(const TDesC& aBitrate) const; - - /** - * Function :OnViewActivationL() - * Used for Setting the values On View Activation - */ - void OnViewActivationL(); - - /** - * Function :DisplaySongArtistNameL() - * Displays the Song Name and Artist Name - * @param aSongName To show on the View - * @param aArtistName To show on the View - */ - void DisplaySongArtistNameL(const TDesC& aSongName,const TDesC& aArtistName); - - /** - * Function :DisplayByteCounterL() - * Used for Displaying ByteCounter - * @param total_bytes Value To show on the View - */ - void DisplayByteCounterL(TReal32 total_bytes); - - /** - * Function :SetRequestPendingWhenNoNetWork() - * Sets the Value of Request Pendind While Checking For Network - * @param aRequestPending Value To Set - */ - void SetRequestPendingWhenNoNetWork(TBool aRequestPending); - - /** - * Function :GetRequestPending() - * Return the Request Pending Value - * @return Returns the Request Pending Value - */ - TBool GetRequestPending(); - - /** - * Function :SetRequestPendingWhenNoNetWorkForNextOrPrev() - * Sets the Value of Request Pendind While Checking For Network - * @param aRequestPending Value To Set - */ - void SetRequestPendingWhenNoNetWorkForNextOrPrev(TBool aRequestPending); - - /** - * Function :GetRequestPendingForNextOrPreV() - * Return the Request Pending Value - * @return Returns the Request Pending Value - */ - TBool GetRequestPendingForNextOrPreV(); - - /** - * Function :ConstructToolbarL() - * Used for Constructing ToolBar - */ - void ConstructToolbarL(); - - /** - * Function :DisplaylogoL() - * Function User For Displaying the Logo - */ - void DisplaylogoL() ; - - /** - * Function :DrawViewL() - * Function User For Layouting Controls On the View - * @param aLogoStatus Value Used for Displaying - * Media idle Animation - */ - void DrawViewL(TBool aLogoStatus) ; - - /** - * Function :StartTimerL() - * Function User Updating Station Name When Next Is Pressed - */ - void StartTimerL() ; - /** - * Function :ReFreshView() - * Function Used For Refreshing the View - */ - - void ReFreshViewL(); - /** - * Function :AddStationsL() - * Function Used Used to Add the Currently Playing Channel To Fav - */ - void AddStationsL(); - /** - * ResponseL() - */ - //from thr mixing class MViewsResponseAndErrorObserver - void ResponseL( CIRIsdsPreset* aPreset = NULL ); - - /** - * PresetResponseL() - * CallBack From IsDs when Preset data is received - */ - void PresetResponseL(CIRIsdsPreset* aPreset); - - /** - * ErrorL() - */ - void ErrorL(); - - /** - * Function :GetStereoModeL() - * Used for getting Mode of Stereo whether it is On or Off - */ - - void GetStereoModeL(); - - // from base class MIRSystemEventObserver - void HandleSystemEventL( TIRSystemEventType aEventType ); - - /** - * Function :SetVolumePopUpValue() - * Used for setting the VolumePop up Value - */ - void SetVolumePopUpValue(TInt aValue); - - /** - * Function :GetVolumePopUpValue() - * Getting the volume Pop up Value - */ - TInt GetVolumePopUpValue(); - - /** - * Function :UpdateLastplayedL() - * Updates the LastPlayed Station - */ - void UpdateLastplayedL(); - - - /** - * LaunchFMTransmitterL() - * Launch FM Transmitter application - */ - void LaunchFMTransmitterL(); - /** - * SetBitrate() - * Sets The Bitrates Value - */ - void SetBitrate(TInt aError) ; - - // from base class MRemConCoreApiTargetObserver - - /** - * From MRemConCoreApiTargetObserver. - */ - void MrccatoCommand(TRemConCoreApiOperationId aOperationId, - TRemConCoreApiButtonAction aButtonAct); - - /** - * From MRemConCoreApiTargetObserver. - */ - void MrccatoPlay(TRemConCoreApiPlaybackSpeed aSpeed, - TRemConCoreApiButtonAction aButtonAct); -// from base class MIRLogoControlObserver - void LogoReadyForDisplayL(); - void LogoConversionFailedL(); - - /** - * from MSyncPresetObserver - * SyncPresetRemovedL() - * called back when the preset that is synced was removed from isds - * @param TInt,the preset id - */ - void SyncPresetRemovedL(TInt aId); - - /** - * from MSyncPresetObserver - * SyncPresetChangedL() - * called back when the preset that is synced has been changed in the isds - * @param CIRIsdsPreset&,the new preset data - */ - void SyncPresetChangedL(CIRIsdsPreset& aPreset); - - /** - * from MSyncPresetObserver - * SyncPresetNoChangeL() - * called back when the preset that is synced has not been changed - */ - void SyncPresetNoChangeL(); - -protected: - - // from base class CAknView - /** - * DoActivateL() - */ - void DoActivateL( const TVwsViewId& aPrevViewId,TUid aCustomMessageId, - const TDesC8& aCustomMessage ); - - /** - * DoDeactivate() - */ - void DoDeactivate(); - -private: //Methods - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * C++ default constructor. - */ - CIRNowPlayingView( CAlfEnv& aAlfEnv ); - - /** - * Updates the station logos with preset data - */ - void UpdateStationLogosL(); - - /** - * HandlePresetChangedL() - * returns the instance of iStationsData - */ - // from base class MPSPresetObserver - void HandlePresetChangedL( TInt aId, TUid aDataHandler, MPSPresetObserver::TPSReason aReason ); - - /** - * GetLogo() - * returns the instance of iStationsData - */ - void GetLogoL(); - - /** - * To Launch Find in Shop Option - * - */ - void LaunchMusicShopL(); - - /** - * To Launch Find in Shop Option - * - */ - void DoFindInMusicShopL( const TDesC& aSongName, - const TDesC& aArtistName, - const TDesC& aAlbumName, - TBool aMusicFlag ); - - /** - * 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* - * @param aRepositoryUid specifies the Uid of the repository to be used - * @param aKey specifies the key to be used - * @return HufC* pointer to the retrieved string - */ - HBufC* CentralRepositoryStringValueL(const TUid& aRepositoryUid, - TUint32 aKey ) const; - /** - * ListenFromPls() - * To support Context Navigation - */ - void ListenFromPlsL(); - - /** - * HelpContext() - * Returns the Help Context For NowPlaying View - */ - TCoeHelpContext HelpContext() const; - - /** - * IsMetaData() - * returns true if there is meta data - */ - TBool IsMetaData(); - - /** - * MusciStoreEnabledStatus() - * returns true if music store enabled status is "yes" - */ - TBool MusciStoreEnabledStatus(); - - - -public: - /** - * SetsameUrlFlag() - * function sets the iSameUrl flag - */ - void SetsameUrlFlag(TBool aSameUrl); - /** - * GetsameUrlFlag() - * function returns the iSameUrl Flag - */ - TInt GetsameUrlFlag(); - - /** - * SetStationNameFlag() - * function Sets the Flag to Update the Station Nmae - */ - void SetStationNameFlag(TInt aValue); - - /** - * SetLastPlayedValue() - * function Sets the Lastplayed Flag Value - */ - void SetLastPlayedValue(TInt aLastPlayed); - - /** - * SetPlayingValue() - * function Sets the iPlaying Flag Value - */ - void SetPlayingValue(TInt aPlaying); - - /** - * HandleMediaKeysL() - * function handles the hardware media keys - */ - void HandleMediaKeysL(TRemConCoreApiOperationId aOperationId, - TRemConCoreApiButtonAction aButtonAct); - - /** - * DeleteSteroEffect() - * Destroys the Stereo Effect Corresponing the Player - */ - void DeleteSteroEffect(TBool aStereo); - /** - * DisablePlayer() - * Stop Player When Call is Active - */ - void DisablePlayer(); - - /** - * Function :SetRockerIndex() - * Sets the Current Playing Index - * @param aRockerIndex Value used for Context Navigation - */ - void SetRockerIndex(TInt aRockerIndex); - - /** - * Function :GetRockerIndex() - * Returns The current Playing Index - * @return RockerIndex Value used for Context Navigation - */ - TInt GetRockerIndex(); - - /** - * Function :SavePreviousIndex() - * Sets the Previous Index - * @param aPresetCount Value used for Context Navigation - */ - void SavePreviousIndex(TInt aPresetCount); - - /** - * Function :GetRequestPending() - * Return the Previous index Value - * @return Returns Previous index Value - */ - TInt GetPreviousIndex(); - /** - * Indicates, has this view been activated in the life time of - * the application. - * @return ETrue if this view has been activated, EFalse otherwise - */ - TBool HasBeenActivated() const; - - /** - * Function :GetCommandId() - * Returns the Last selected Command id - * @return the Command id Required While network Switch - */ - TInt GetCommandId() ; - - /** - * Function :IsVolumeMuted() - * Returns whether volume is Muted - * @return the Volume Mute State - */ - TBool IsVolumeMuted() ; - - /** - * SyncPresetL() - * Used to syncronize presets - * @param TInt the preset id - * @param TDesC the last modified tag for the preset - */ - void SyncPresetL(TInt aChid,const TDesC &aModifiedTime); - - /** - * Callback method that performs the actual deletion of connections. - * - * @param aSelfPtr Pointer argument given when the callback/timer is created. - * @return KErrNone Specified in the function pointer declaration. - */ - static TInt StaticConnectionCleanupCallback( TAny* aSelfPtr ); - - -private: - - /** - * The Alfred environment - */ - CAlfEnv& iAlfEnv; - - /** - * iToolbar - * Used for Touch ToolBar - */ - CAknToolbar* iToolbar; - - /** - * Is the start up of application ongoing. - */ - TBool iStartUp; - - /** - * For Find in Music Shop - * - */ - CMPXFindInMShop* iMPXFindInShop; //For Find in Shop - -#ifdef __IRA_FEATURE_EQUALIZER - /** - * Used for activating the equalizer view - */ - CMPXViewPlugin* iMpxEqualizerViewPlugin; -#endif // __IRA_FEATURE_EQUALIZER - - /** - * iIndex - * Used for Context Navigation - */ - TInt iIndex; - - /** - * iPreset - * Used for storing the Current Logo Data - */ - CIRIsdsPreset* iCurrentPreset; - - /** - * iPreset1 - * Used for storing the Prev Logo Data - */ - CIRIsdsPreset* iPrevPreset1; - - /** - * iFadeStyle - * Used for directionality - */ - TIRFadeStyle iFadeStyle; - - /** - * iIsOn - * Used for handling Menupane - */ - TBool iIsOn; - - /** - * ipresets - * Used for Getting the Fav Presets - */ - RIRPresetArray ipresets; - - /** - * iBuffer - * Used for storing the Station Name - */ - RBuf iBuffer; - - /** - * iMenuPane - * Used for handling the MenuPane - */ - CEikMenuPane* iMenuPane; - - /** - * iDs - * Used for holding the Commands - */ - TIRIds iDs; - - - /** - * iStationsData - * Used for Referencing the Stations Data - */ - CDesCArrayFlat* iStationsData; - - /** - * iShowToolBar - * Used showing the Touch ToolBar - */ - TBool iShowToolBar; - - /** - * iMetadata - * Used For storing the Metadata - */ - RBuf iMetadata; - - /** - * iStereoMode - * Used For storing status of Stereo Mode - */ - TInt iStereoMode; - - - //Instance of CurrentOperationSettings - CIRSettings* iIRSettings; - - /** - *iSameUrl - *Used for showing the metadata - */ - TBool iSameUrl; - - /** - * Used For Pls - */ - CIRIsdsPreset *plsData; - - /** - * iPlsIndex - * Used for Context Navigation - */ - TInt iPlsIndex; - - /** - * iPresetValue - * Used for Loading the Logos - */ - TInt iPresetValue; - - /** - * iPrecount - * Used for Loading the Logos - */ - TInt iPrecount; - /** - * iDefaultLogo - * Used for Loading the Logos - */ - TBool iDefaultLogo; - /** - * iUpdateLastplayed - * Used for Upadating the Lastplayed Song - */ - TBool iUpdateLastplayed; - /** - * iUpdateStationName - * Used for Updating the Station Name - */ - TBool iUpdateStationName; - - /** - * iRockerIndex - * Used for Context Navigation - */ - TInt iRockerIndex; - - /** - * iPresetCount - * Used for storing the index Value - */ - TInt iPresetCount; - /** - * iVolumeBarValue - * Stores the VolumeBar Value - */ - TInt iVolumeBarValue; - - /** - * Flag used for When Equalizer is On. - */ - TBool iEaualizerOn; - /** - * iPlaying - * Checks Whether thr NowPlaying is Active or Not - */ - static TBool iPlaying; - - /** - * iVolPopup - * The Instance of AknVolume Popup. - */ - CAknVolumePopup* iVolPopup; - - /** - * Flag Set When Call is active. - */ - TBool iCallActive; - - - //Used for later in handling Stereo Mode - CStereoWidening* iStereoEffect; - /* - * iRequestPending - * Checks whether an active request is pending - */ - TBool iRequestPending; - - /* - * iNextOrPrevRequest - * Checks whether an active request is pending - */ - TBool iNextOrPrevRequest; - /* - * iStationHasLogo - * Checks whether an active request is pending - */ - - TBool iStationHasLogo; - /** - * Indexes for items in Radio Idle, needed for keeping radio idle up to date. - */ - TInt iBitrateIndex; - TInt iNameIndex; - TInt iMetadataIndex; - TInt iPSNameIndex; - TInt iNameIndex1; - /* - * iLogoTimer - * Instance of Timer Class To start the Media Animation - */ - - CIRLogoTimer* iLogoTimer; - - /** - * Indicates, has this view been activated in the life time of - * the application. - */ - TBool iHasBeenActivated; - /** - * Indicates, has this view been activated in the life time of - * the application. - */ - TInt iCommandId; - TInt iSettingsValue; - TBool iVolumeMute; - TInt iLogoIndex; - TBool iShowBitrate; - - /** - * Timer for delayed cleanup of connections. - * Owned. - */ - CPeriodic* iConnectionCleanupTimer; -public: - /** - * The Alf container. Not owned. - */ - CIRNowPlayingViewContainer* iContainer; - - // TO Do: The Variable can be made private in Future - }; - -#endif // C_CIRNOWPLAYINGVIEW_H