mpxmusicplayer/app/inc/mpxappui.h
changeset 0 ff3acec5bc43
child 21 a1247965635c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxmusicplayer/app/inc/mpxappui.h	Thu Dec 17 08:45:05 2009 +0200
@@ -0,0 +1,878 @@
+/*
+* Copyright (c) 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:  Application UI class required by AVKON application architecture.
+*
+*/
+
+
+
+#ifndef CMPXAPPUI_H
+#define CMPXAPPUI_H
+
+
+// INCLUDES
+#include <e32std.h>
+#include <f32file.h>
+#ifdef RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+#include <AknServerApp.h>
+#endif //RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+#include <aknViewAppUi.h>
+#include <apparc.h>
+#include <AknProgressDialog.h>  // MProgressDialogCallback
+#ifdef FF_OOM_MONITOR2_COMPONENT
+#include <oommonitorsession.h>
+#endif
+#include <iaupdateobserver.h>  //IAD
+#include <mpxplaybackobserver.h>
+#include <mpxcollectionobserver.h>
+#include <mpxcollectionuihelper.h>
+#include <mpxmediakeyhandlerobserver.h>
+#include <mpxviewactivationobserver.h>
+#include <mpxcollectionhelper.h>
+#include <mpxcollectionuihelperobserver.h>
+#include "mpxsavehelper.h"
+#include "mpxcontroller.h"
+
+// FORWARD DECLARATIONS
+class MMPXPlaybackUtility;
+class MMPXCollectionUtility;
+class MMPXViewUtility;
+class CMPXCommonUiHelper;
+class MMPXMediaKeyHandler;
+class CRepository;
+class CMPXRestorePath;
+class MMPXHarvesterUtility;
+class MMPXCollectionHelper;
+class CMPXCommandHandler;
+class CIdle;
+class CIAUpdate; //IAD
+class CIAUpdateParameters; //IAD
+//class CMPXController;
+
+// Cover UI start
+//#ifdef __COVER_DISPLAY
+class CMediatorCommandInitiator;
+//#endif // __COVER_DISPLAY
+// Cover UI end
+#ifdef RD_BROWSER_PROGRESSIVE_DOWNLOAD
+class CMPXPdCommandHandler;
+#endif // RD_BROWSER_PROGRESSIVE_DOWNLOAD
+#ifdef __CAMESE_SUPERDISTRIBUTION_SUPPORT
+class CCameseDrmHandler;
+#endif
+#ifdef RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+class CDocumentHandler;
+#endif //RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+
+// CLASS DECLARATION
+
+/**
+ * Application UI class.
+ * Provides support for the following features:
+ * - EIKON control architecture
+ * - view architecture
+ * - status pane
+ *
+ *  @lib mpx.exe
+ *  @since 3.1
+ */
+class CMPXAppUi : public CAknViewAppUi,
+                  public MMPXPlaybackObserver,
+                  public MMPXCollectionObserver,
+                  public MMPXCHelperEmbeddedOpenObserver,
+                  public MMPXMediaKeyHandlerObserver,
+                  public MMPXViewActivationObserver,
+                  public MMPXSaveHelperObserver,
+                  public MMPXCollectionHelperObserver,
+                  public MProgressDialogCallback,
+                  public MFileManObserver,
+                  public MMPXPlaybackCallback,
+                  public MIAUpdateObserver
+#ifdef RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+                  ,public MAknServerAppExitObserver
+#endif //RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+    {
+public:
+
+    /**
+     * C++ default constructor.
+     */
+    CMPXAppUi();
+
+    /**
+     * Destructor.
+     */
+    virtual ~CMPXAppUi();
+
+    /**
+     * This function is used for querying whether the application
+     * is launched in embedded mode or not.
+     * @since 3.1
+     * @return ETrue:  The application is launched in embedded mode.
+     *         EFalse: The application is launched in standalone mode.
+     */
+    TBool IsEmbedded() const;
+
+    /**
+     * Opens temporary playlist or album from buffer. Buffer contents are
+     * handled as album if the album name is provided.
+     * @since 3.1
+     * @param aBuffer Descriptor containing playlist contents (each track's
+     *                path is separated with a line feed "\n").
+     * @param aName Album name.
+     */
+    void OpenPlaylistFromBufferL(
+        const TDesC& aBuffer,
+        TDesC& aName );
+
+    /**
+     * Opens the specified file in response.
+     * @since 3.1
+     * @param aFileStore Not used
+     * @param aFile      File handle to open
+     */
+    void OpenFileL(
+        CFileStore*& aFileStore,
+        RFile& aFile,
+        const CAiwGenericParamList* aParams );
+
+    /**
+     * Make Phone/Idle/ActiveIdle come to foreground.
+     */
+    void ActivatePhoneAppL();
+
+    /**
+     * Function for deferred exit call back
+     *
+     * @param aPtr Pointer to self
+     * @return System wide error code
+     */
+    static TInt DeferredExitCallback( TAny* aPtr );
+
+private:
+
+    /**
+     * Start a waitnote dialog
+     */
+    void StartWaitNoteL( TWaitNoteType aNoteType );
+
+    /**
+     * Close the waitnote dialog
+     */
+    void CloseWaitNoteL( );
+
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     */
+    void ConstructL();
+
+    /**
+     * Handle media key commands.
+     *
+     * @param aCommand Media key commands. see mpxappui.hrh
+     */
+    void DoHandleMediaKeyCommandL( TMPXPlaybackCommand aCommand );
+
+    /**
+     * Control popup behaviour.
+     *
+     * @param aCommand Media key commands. see mpxappui.hrh
+     * @param aValue Parameter for aCommand
+     */
+    void HandlePopupL( TMPXPlaybackCommand aCommand );
+
+    /**
+     * Check if Active Idle app is on foreground.
+     *
+     * @return ETrue if idle app is in the foreground, EFalse otherwise.
+     */
+    TBool IsIdleAppForeground();
+
+    /**
+     * Check if Active Idle is enabled.
+     *
+     * @return ETrue if active idle is in the enabled, EFalse otherwise.
+     */
+    TBool IsActiveIdleEnabled();
+
+    /**
+     * Creates and initializes all member variables
+     */
+    void CreateMemberVariablesL();
+
+    /**
+     * Saves a file
+     */
+    void DoSaveL();
+
+    /**
+     * Creates a new save path filename
+     *
+     * @param aNewPath Contains new save path on return
+     */
+    void CreateAutomaticSavePathL( TFileName& aNewPath );
+
+    /**
+     * Handling to be done after save/add file is complete
+     */
+    void HandlePostSaveOperationL();
+    
+     /**
+     * Handles WMA DRM Protected Media
+     *
+     * @return ETrue if it's ok to open the document, EFalse otherwise.
+     */
+    TBool HandleWMAProtectionL();
+
+    /**
+     * Handles both OMA and WM DRM Protected Media
+     *
+     * @param aMedia Media object containing the rights information.
+     * @return ETrue if it's ok to open the document, EFalse otherwise.
+     */
+    TBool HandleDRMProtectionL(const CMPXMedia& aMedia);
+
+    /**
+     * Handles broadcast messages
+     */
+    void HandleBroadcastMessageL( const CMPXMessage& aMessage );
+
+    /**
+     * Handles commands passed in by other applications
+     */
+    void HandleCommandParametersL( const TDesC8& aCommand );
+
+    /**
+     * Handle playback message
+     *
+     * @param aMessage playback message
+     */
+    void DoHandlePlaybackMessageL( const CMPXMessage& aMessage );
+    
+    #ifdef __CAMESE_SUPERDISTRIBUTION_SUPPORT
+    /**
+     * Handle Camese Playback PreProcessing
+     *
+     * @param aMessage playback message
+     * @param aSkipEvent whether App Ui should skip this event
+     */
+    void HandleCamesePlaybackPreProcessingL(const CMPXMessage& aMessage, TBool& aSkipEvent);
+   #endif
+
+
+    /**
+     * Handle Player Changed Playback Message
+     *
+     */
+    void HandlePlaybackPlayerChangedL();
+
+    /**
+     * Handle custom commands.
+     *
+     * @param aUid Command category Uid. Different command set will have
+     *             different Uid to avoid clash.
+     * @param aCommand Command to be handled.
+     */
+    void DoHandleCustomCommandL(
+        const TUid& aUid,
+        const TInt aCommand );
+
+    /**
+     * Callback function to signal that saving a file is complete
+     *
+     * @param aErr Error of the operation.
+     */
+    void DoHandleSaveCompleteL( TInt aErr );
+
+    /**
+     * Handle collection message
+     *
+     * @param aMessage collection message
+     */
+    void DoHandleCollectionMessageL( const CMPXMessage& aMessage );
+#ifdef RD_BROWSER_PROGRESSIVE_DOWNLOAD
+    /**
+     * Check if the Browser is closed.
+     *
+     * @param aParameter AIW parameter passed in by other applications
+     */
+    TBool IsBrowserClosed(const TDesC8& aParameter);
+
+    /**
+     * Brings the browser to the foreground.
+     *
+     * @return ETrue if browser was found, EFalse otherwise.
+     */
+
+    TBool BringUpBrowserL();
+#endif
+
+    /*
+    * Returns whether playback is remote i.e using UPNP.
+    * @return ETrue if playback is remote, EFalse otherwise.
+    */
+    TBool IsPlaybackRemote();
+
+    /*
+    * Sends a command to collection to set media
+    */
+    void SetMediaL( CMPXMedia& aMedia );
+// from base class MMPXPlaybackObserver
+
+    /**
+     * From MMPXPlaybackObserver
+     * Handle playback message
+     *
+     * @since 3.1
+     * @param aMessage playback message
+     * @param aErr system error code.
+     */
+    void HandlePlaybackMessage(
+        CMPXMessage* aMessage, TInt aError );
+
+// from base class MMPXCollectionObserver
+
+    /**
+     * From MMPXCollectionObserver
+     * Handle media properties.
+     *
+     * @since 3.1
+     * @param aMedia  media properties.
+     * @param aError Error code.
+     */
+    void HandleCollectionMediaL(
+        const CMPXMedia& aMedia,
+        TInt aError );
+
+    /**
+     * From MMPXCollectionObserver
+     * Handle collection message.
+     *
+     * @since 3.1
+     * @param aMessage Collection message
+     * @param aErr system error code.
+     */
+    void HandleCollectionMessage(
+        CMPXMessage* aMessage, TInt aError );
+
+    /**
+     * From MMPXCollectionObserver
+     * Handles the collection entries being opened.
+     *
+     * @since 3.1
+     * @param aEntries Collection entries opened.
+     * @param aIndex Focused entry.
+     * @param aComplete ETrue no more entries. EFalse more entries
+     *                  expected.
+     * @param aError Error code.
+     */
+    void HandleOpenL(
+        const CMPXMedia& aEntries,
+        TInt aIndex,
+        TBool aComplete,
+        TInt aError );
+
+    /**
+     * From MMPXCollectionObserver
+     * Handles the item being opened.
+     *
+     * @since 3.1
+     * @param aPlaylist Collection playlist, owner ship is transfered.
+     * @param aError Error code.
+     */
+    void HandleOpenL(
+        const CMPXCollectionPlaylist& aPlaylist,
+        TInt aError );
+
+// from base class MMPXCHelperEmbeddedOpenObserver
+
+    /**
+    * From MMPXCHelperEmbeddedOpenObserver
+    * Handles errors from opening in embedded mode
+    *
+    * @since 3.1
+    * @param aErr Error code
+    * @param aCategory Type of item to be opened.
+    */
+    void HandleEmbeddedOpenL( TInt aErr, TMPXGeneralCategory aCategory  );
+
+// from base class MMPXMediaKeyHandlerObserver
+
+    /**
+     * Handle media key commands.
+     *
+     * @since 5.0
+     * @param aCommand Command to be handled.
+     * @param aData data for the specific command
+     */
+    void HandleMediaKeyCommand(
+        const TMPXPlaybackCommand aCommand,
+        const TInt aData = KErrNotFound );
+
+// from base class MMPXViewActivationObserver
+
+    /**
+     * From MMPXViewActivationObserver
+     * Handle view activation.
+     *
+     * @since 3.1
+     * @param aCurrentViewType Current view type Uid.
+     * @param aPreviousViewType Previous view type Uid.
+     */
+    void HandleViewActivation(
+        const TUid& aCurrentViewType,
+        const TUid& aPreviousViewType );
+
+    /**
+     * @see MMPXViewActivationObserver
+     */
+    void HandleViewUpdate(
+        TUid aViewUid,
+        MMPXViewActivationObserver::TViewUpdateEvent aUpdateEvent,
+        TBool aLoaded,
+        TInt aData);
+
+// from base class CEikAppUi
+
+    /**
+     * From CEikAppUi
+     * opens the specified file in response to a corresponding message.
+     *
+     * @param aFileName File to be opened.
+     */
+    void OpenFileL( const TDesC& aFileName );
+
+    /**
+     * From CCoeAppUi
+     * called when event occurs of type EEventFocusLost or EEventFocusGained.
+     *
+     * @param aForeground ETrue if the application is in the foreground,
+     *                    otherwise EFalse.
+     */
+    void HandleForegroundEventL( TBool aForeground );
+
+    /**
+     * From CEikAppUi
+     * processes shell commands.
+     *
+     * @param aCommand The shell command sent to the application.
+     * @param aDocument Name The name of the document as
+                        specified on the command line
+     * @param aTail Tail end information in the command
+     * @return ETrue if the file exist, EFalse otherwise
+     */
+    TBool ProcessCommandParametersL(
+        TApaCommand aCommand,
+        TFileName& aDocumentName,
+        const TDesC8& aTail );
+
+    /**
+     * From CEikAppUi
+     * takes care of command handling.
+     *
+     * @param aCommand The ID of the command.
+     */
+    void HandleCommandL( TInt aCommand );
+
+    /**
+     * From CEikAppUi
+     * handle window server events.
+     *
+     * @param aEvent The window server event to be handled.
+     * @param aDestination The control associated with the event.
+     */
+    void HandleWsEventL(
+        const TWsEvent& aEvent,
+        CCoeControl* aDestination );
+
+    /**
+     * From CEikAppUi
+     * Handles window server messages.
+     *
+     * @param aClientHandleOfTargetWindowGroup The window group that the message
+     *                                         was sent to.
+     * @param aMessageUid The message UID.
+     * @param aMessageParameters The Message parameters.
+     * @return Indicates whether the message was handled or not.
+     */
+    MCoeMessageObserver::TMessageResponse HandleMessageL(
+        TUint32 aClientHandleOfTargetWindowGroup,
+        TUid aMessageUid,
+        const TDesC8& aMessageParameters );
+
+    /**
+     * From CEikAppUi
+     * Process message sent by another application
+     *
+     * @param aUid uid identifying the message.
+     * @param aParams The message to be processed.
+     */
+    void ProcessMessageL( TUid aUid, const TDesC8& aParams );
+
+    /**
+     * From CEikAppUi
+     * process command line parameter
+     *
+     * @param aCommandLine The message to be processed.
+     */
+    TBool ProcessCommandParametersL( CApaCommandLine& aCommandLine );
+
+
+// from base class MMPXSaveHelperObserver
+
+    /**
+     * From MMPXSaveHelperObserver
+     * Callback function to signal that saving a file is complete
+     *
+     * @since 3.1
+     * @param aErr Error of the operation.
+     */
+    void HandleSaveComplete( TInt aErr );
+
+// from base class MMPXCollectionHelperObserver
+
+    /**
+     * From MMPXCollectionHelperObserver
+     * Callback function to signal that adding a file is complete
+     *
+     * @since 3.1
+     * @param aErr Error of the operation.
+     */
+    void HandleAddFileCompleteL( TInt aErr );
+
+// from base class MProgressDialogCallback
+
+    /**
+     * From MProgressDialogCallback
+     * Callback method
+     * Gets called when a dialog is dismissed.
+     *
+     * @param aButtonId Button pressed for the dialog to be dismissed.
+     */
+    void DialogDismissedL( TInt aButtonId );
+
+// from base class MFileManObserver
+
+    /**
+     * From MFileManObserver
+     * Callback method
+     * Gets called during a file operation.
+     *
+     * @return Control status
+     */
+    MFileManObserver::TControl NotifyFileManOperation();
+
+#ifdef RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+
+// from base class MAknServerAppExitObserver
+
+    /**
+     * From MAknServerAppExitObserver.
+     */
+    void HandleServerAppExit(TInt aReason);
+    /**
+     * Create a Forwards parameters that were passed by browser to media player
+     * If the new parameters is created successful, it will be leave on the CleanupStack
+     * @param aParamList the original parameter
+     * @return Forward parameters that is created.
+     */
+    CAiwGenericParamList* CreateForwardAiwParametersLC(const CAiwGenericParamList* aParamList) const;
+
+#endif // RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+
+    /**
+    * Update the refreshed time for music and podcast plugins
+    */
+    void DoUpdatePluginRefreshedTimeL();
+
+// from base class MMPXPlaybackCallback
+    /**
+    *  Handle playback property
+    *
+    *  @param aProperty the property
+    *  @param aValue the value of the property
+    *  @param aError error code
+    */
+    void HandlePropertyL(TMPXPlaybackProperty aProperty,
+                                 TInt aValue,
+                                 TInt aError);
+
+    /**
+    *  Method is called continously until aComplete=ETrue, signifying that
+    *  it is done and there will be no more callbacks
+    *  Only new items are passed each time
+    *
+    *  @param aPlayer UID of the subplayer
+    *  @param aSubPlayers a list of sub players
+    *  @param aComplete ETrue no more sub players. EFalse more subplayer
+    *                   expected
+    *  @param aError error code
+    */
+    void HandleSubPlayerNamesL(TUid aPlayer,
+                                       const MDesCArray* aSubPlayers,
+                                       TBool aComplete,
+                                       TInt aError);
+
+    /**
+    *  Call back of media request
+    *
+    *  @param aMedia media
+    *  @param aError error code
+    */
+    void HandleMediaL(const CMPXMedia& aProperties,
+                              TInt aError);
+
+    /**
+     *  Checks if the specified view is the active view
+     *
+     *  @param aViewType view identifier
+     *  @return ETRUE if the view is active, EFALSE otherwise
+     */
+    TBool IsActiveView(TInt aViewType );
+
+    /**
+     * Reopens the path in order to get the latest data.
+     *
+     */
+    void ReOpenPathL();
+
+    /**
+     * Suppress the collection view from coming up.
+     *
+     */
+    TBool SuppressCollectionView();
+
+    /**
+     *  Sets the playback volume.
+     *
+     *  @param aVolume volume value.
+     */
+    void SetVolume( const TInt aVolume );
+
+    /**
+     *  Mutes the playback volume.
+     */
+    void MuteVolume();
+
+    /**
+     *  Unmutes the playback volume.
+     */
+    void UnMuteVolume();
+
+    /**
+     *  Translates Playback commands to MPX commands
+     */
+    TInt MPXCmdForPbCmd( TMPXPlaybackCommand aCommand );
+
+    /**
+    *  if current heap memory is less than the lowest need of music player
+    *  music player well exit.
+    *
+    *  @param music player need memory
+    */
+    void CheckAvailableMemory( TInt aNeedMemory );
+
+#ifdef FF_OOM_MONITOR2_COMPONENT
+    /**
+     * Dynamically set music player's busy or mornal priority in OOM
+     * according to MPX playing state.
+     *
+     * @param aPriority     Correct priority to set.
+     */
+    void SetMpxOomPriorityL( ROomMonitorSession::TOomPriority aPriority );
+
+    /**
+    *  Check heap memory through OOM moudule.
+    *  If less than the lowest need of music player
+    *  music player will exit.
+    *
+    *  @param aNeedMemory   Memory needed by Music Player
+    */
+    void CheckAvailableMemoryByOomL( TInt aNeedMemory );
+#endif //    FF_OOM_MONITOR2_COMPONENT
+
+	/**
+	* Launch matrix menu Music suite with given message
+	*/
+	void LaunchMmViewL( const TDesC8& aMessage );
+
+    /**
+    * Check updates
+    */
+    void CheckUpdatesL(); //IAD
+
+    /**
+    * Clean IAD update parameters
+    */
+    void CleanUpdateParams(); //IAD
+
+
+    // from base class MIAUpdateObserver
+
+    /**
+    * This callback function is called when the update checking operation has completed.
+    *
+    * @param aErrorCode The error code of the observed update operation.
+    *                   KErrNone for successful completion,
+    *                   otherwise a system wide error code.
+    * @param aAvailableUpdates Number of the updates that were found available.
+    */
+    void CheckUpdatesComplete( TInt aErrorCode, TInt aAvailableUpdates );
+
+    /**
+    * This callback function is called when an update operation has completed.
+    *
+    * @param aErrorCode The error code of the completed update operation.
+    *                   KErrNone for successful completion,
+    *                   otherwise a system wide error code.
+    * @param aResult Details about the completed update operation.
+    *                Ownership is transferred.
+    */
+    void UpdateComplete( TInt aErrorCode, CIAUpdateResult* aResultDetails );
+
+    /**
+    * This callback function is called when an update query operation has completed.
+    *
+    * @param aErrorCode The error code of the observed query operation.
+    *                   KErrNone for successful completion,
+    *                   otherwise a system wide error code.
+    * @param aUpdateNow ETrue informs that an update operation should be started.
+    *                   EFalse informs that there is no need to start an update
+    *                   operation.
+    */
+    void UpdateQueryComplete( TInt aErrorCode, TBool aUpdateNow );
+
+private:
+    enum TMPXSaveMode
+    {
+    EMPXSaveModeIdle = 0,
+    EMPXOpenAfterSave,
+    EMPXExitAppAfterSave,
+    EMPXExitHostAppAfterSave,
+    EMPXAssignRingtone,
+    EMPXAssignContact
+    };
+
+private: //Data
+
+    MMPXPlaybackUtility* iPlaybackUtility;  // own
+    MMPXCollectionUtility* iCollectionUtility;  // own
+    MMPXViewUtility* iViewUtility;  // own
+    MMPXHarvesterUtility* iHarvesterUtility;  // own
+    MMPXCollectionUiHelper* iCollectionUiHelper;  // own
+    MMPXCollectionHelper* iCollectionHelper;  // own
+
+    // RemCon target for receiving media key events
+    MMPXMediaKeyHandler* iMediaKeyHandler;  // own
+
+    CMPXCommonUiHelper* iCommonUiHelper;    // own
+    CMPXSaveHelper* iSaveHelper;    // own
+    CRepository* iSettingsRepository;  // own, for active idle setting
+
+    // Handle commands passed in from other applications
+    CMPXCommandHandler*  iProcessParameter; // own
+#ifdef RD_BROWSER_PROGRESSIVE_DOWNLOAD
+    CMPXPdCommandHandler*  iPdParameterHandler; // own
+    TBool iAppStartedByBrowser;
+    TBool iPdPbvStartedByBrowser;
+    TBool icollectionBrowsed;
+    TBool iPbvStartedByBrowser;
+#endif // RD_BROWSER_PROGRESSIVE_DOWNLOAD
+    // Path backup and restore when music player is exited
+    CMPXRestorePath* iPathRestore; // own
+
+    // Music Player controller for System Events and startup check
+    CMPXController*  iController;
+
+    // Array of ring tone mime types for saving files
+    CDesCArrayFlat iRingToneMimeTypes; // own
+
+    HBufC* iSavePath;  // own
+
+    CIdle* iIdle; // own
+
+    RFile iFile;
+
+    TInt iOpenState;
+    TBool iIsUsbOnGoing; // USB status
+    TBool iFormattingOnGoing; // Formatting state
+    TBool iRefreshOnGoing;
+
+    // Flag whether or not playback was paused for save operation
+    TBool iPausedForSave;
+
+    TBool iInitedVolume;
+
+    TUid iPreviousViewType;  // previous view type
+    TUid iCurrentViewType;  // current view type
+
+    // UIDs for the music and podcast collection databases
+    TUid iMusicCollectionId;
+    TUid iPodcastCollectionId;
+
+    RArray<TUid> iDeferredViewActivationUid;
+
+    TInt iCurrentIndex;
+
+    TMPXSaveMode iSaveMode;
+
+    TBool iCancelFileMan;
+
+    TBool iStandAlone;
+
+    TInt iCurrentVolume;
+    TInt iMaxVolume;
+
+    TBool iUPnPUnavailableEventFromCollection;
+
+    TBool iDelayedParameterHandling;
+
+    TBool iIgnoreExternalCommand;
+
+    TBool iRefreshCollectionView;
+
+// Cover UI start
+//#ifdef __COVER_DISPLAY
+    CMediatorCommandInitiator* iCommandInitiator;
+    TBool iCoverDisplay;
+//#endif
+// Cover UI end
+
+#ifdef __CAMESE_SUPERDISTRIBUTION_SUPPORT
+    // Indicates we are handling Protected WMA Media on Open stage
+    TBool iHandlingProtectedWMAMedia;
+    CCameseDrmHandler* iCameseDrmHandler;       // own
+#endif
+
+#ifdef RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+    CDocumentHandler* iDocHandler;
+#endif //RD_RA_SUPPORT_FOR_MUSIC_PLAYER
+
+    TInt iCmdActivatedViewTypeId;
+
+    TBool iDisablePodcasting;
+    TBool iLaunchModePlaying;   // Launch mode specified in startup parameter
+    CIAUpdate* iUpdate;  // IAD client object
+    CIAUpdateParameters* iParameters; // Parameters for IAD update
+
+#ifdef FF_OOM_MONITOR2_COMPONENT
+    ROomMonitorSession::TOomPriority iOomPriority;
+#endif    // FF_OOM_MONITOR2_COMPONENT
+
+	TBool iStartInAlbumMenu;
+    };
+
+#endif  // CMPXAPPUI_H
+
+// End of File