--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/inc/mpxvideoplayerappuiengine.h Tue Aug 31 15:15:55 2010 +0300
@@ -0,0 +1,293 @@
+/*
+* Copyright (c) 2009 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: CMpxVideoPlayerAppUiEngine
+ *
+*/
+
+// Version : %version: 8 %
+
+
+
+#ifndef CMPXVIDEOPLAYERAPPUIENGINE_H
+#define CMPXVIDEOPLAYERAPPUIENGINE_H
+
+#include <e32base.h>
+#include <mpxplaybackutility.h>
+#include <mpxviewutility.h>
+#include <mpxcollectionutility.h>
+#include <mpxmessage2.h>
+#include <mpxcollectionplaylist.h>
+#include <mediarecognizer.h>
+#include <mpxplaybackobserver.h>
+#include <mpxviewactivationobserver.h>
+#include <mpxcollectionobserver.h>
+#include <mpxcollectionuihelperobserver.h>
+
+class CMPXCommonUiHelper;
+class MMPXCollectionUiHelper;
+class CVideoPlaylistUtility;
+class VideoPlaybackWrapper;
+
+/**
+* Application UI class.
+*
+* @lib mpxvideoplayer.exe
+* @since MpxVideoPlayer 0.1
+*/
+class CMpxVideoPlayerAppUiEngine : public CBase,
+ public MMPXPlaybackObserver,
+ public MMPXViewActivationObserver,
+ public MMPXCollectionObserver ,
+ public MMPXCHelperEmbeddedOpenObserver
+{
+ public: // Constructors and destructor
+ static CMpxVideoPlayerAppUiEngine* NewL( VideoPlaybackWrapper* aWrapper );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CMpxVideoPlayerAppUiEngine();
+
+ public:
+ /*
+ * Retrieve the playback utility pointer
+ */
+ inline MMPXPlaybackUtility* PlaybackUtility();
+
+ /**
+ * Opens the specified file in response to a corresponding message.
+ *
+ * @param aFile File to be opened.
+ */
+ void OpenFileL( const TDesC& aFileName );
+
+ /**
+ * Opens the specified file in response to a corresponding message.
+ *
+ * @param aFile File to be opened.
+ */
+ void OpenFileL( RFile& aFile );
+
+ /**
+ * Opens the specified mpx media object.
+ *
+ * @param aMedia Media to be opened.
+ */
+ void OpenMediaL( const CMPXMedia& aMedia );
+
+ /**
+ * Handle playback message
+ *
+ * @param aMessage playback message
+ */
+ void DoHandlePlaybackMessageL( const CMPXMessage& aMessage );
+
+ /**
+ * Handle Player Changed Playback Message
+ */
+ void HandlePlaybackPlayerChangedL();
+
+ /**
+ * Sets mpx components ready for application shutdown
+ */
+ void PrepareCloseMpxL();
+
+ /**
+ * Handle media properties.
+ */
+ void DoHandelCollectionMediaL( const CMPXMedia& aMedia );
+
+ /*
+ * Handle embedded playback message
+ * @param aMessageUid message identification uid
+ * @param aMessageParameters aiw generic parameters
+ */
+ TBool HandleMessageL( TUid aMessageUid,
+ const TDesC8& aMessageParameters );
+
+ /**
+ * From MMPXPlaybackObserver
+ * Handle playback message
+ *
+ * @since 3.1
+ * @param aMessage playback message
+ * @param aErr system error code.
+ */
+ void HandlePlaybackMessage( CMPXMessage* aMessage, TInt aError );
+
+ /**
+ * 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 );
+
+
+ /**
+ * From MPXCollectionObserver
+ * @since S60 3.2.3
+ * @param aMessage collection message, ownership not transferred.
+ * Please check aMsg is not NULL before using it. If aErr is not
+ * KErrNone, plugin might still call back with more info in the aMsg.
+ * @param aErr system error code
+ */
+ void HandleCollectionMessage( CMPXMessage* aMsg, TInt /*aErr*/ );
+
+ /**
+ * 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
+ * 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 );
+
+ /*
+ * Late initializatoin of members that can be delayed
+ * to help improve startup time
+ * @since 10.1
+ */
+ void LateInitL();
+
+ TInt ReplayAfterPriorTermination(const TDesC& aFileName);
+
+ /*
+ * converts provided error code to a string
+ * @since 10.1
+ * @param aErrorCode error code to be converted
+ */
+ const TDesC& ResolveErrorStringL(TInt aErrorCode);
+
+ private:
+ /**
+ * Constructor
+ */
+ CMpxVideoPlayerAppUiEngine( VideoPlaybackWrapper* aWrapper );
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+
+ void HandleMultiLinksFileL( const TDesC& aFileName,
+ CMediaRecognizer::TMediaType aMediaType );
+
+ void HandleMultiLinksFileL( RFile& aFile,
+ CMediaRecognizer::TMediaType aMediaType );
+
+ void DoHandleMultiLinksFileL( CVideoPlaylistUtility* aPlaylistUtil,
+ TBool aSingleLink,
+ TBool aLocalFile );
+
+ /**
+ * Handles the Url descriptor
+ *
+ * @param aUrl - the ulr to be handled
+ */
+ void HandleUrlDesL(const TDesC& aUrl);
+
+ /**
+ * Handle collection message
+ *
+ * @param aMessage collection message
+ */
+ void DoHandleCollectionMessageL( CMPXMessage* aMessage );
+
+ void CreatePlaybackUtilityL();
+
+ void CreateCollectionUtilityMemberVariablesL();
+
+ /*
+ * used to send media info to plugin
+ */
+ void UpdatePbPluginMediaL();
+
+ void ActivateVideoPlaybackView();
+
+ void ReadActivityData();
+
+ private: // data
+
+ //
+ // Owned Utilities
+ //
+ MMPXPlaybackUtility* iPlaybackUtility;
+ MMPXCollectionUtility* iCollectionUtility;
+ MMPXCollectionUiHelper* iCollectionUiHelper; // own
+
+ TUid iVideoCollectionId;
+
+ CMediaRecognizer* iRecognizer; // own
+
+ TInt iAccessPointId;
+ TBool iMultilinkPlaylist;
+ TBool iSeekable;
+ TBool iUpdateSeekInfo;
+
+ VideoPlaybackWrapper* iPlaybackWrapper;
+ TUint32 iLastPlayedItemId;
+};
+
+//
+// Inline methods
+//
+inline
+MMPXPlaybackUtility* CMpxVideoPlayerAppUiEngine::PlaybackUtility()
+{
+ return iPlaybackUtility;
+}
+
+#endif // CMPXVIDEOPLAYERAPPUIENGINE_H