--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/vcnsuiengine/inc/vcxnsuiengine.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,481 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+
+
+
+#ifndef C_VCXNSUIENGINE_H
+#define C_VCXNSUIENGINE_H
+
+// INCLUDES
+#include <e32base.h>
+
+#include "iptvlastwatcheddata.h"
+
+// FORWARD DECLARATIONS
+class CVcxNsServiceProvider;
+class CVcxNsContentProvider;
+class CVcxNsCategoryProvider;
+class MVcxNsServiceProviderIf;
+class MVcxNsContentProviderIf;
+class MVcxNsCategoryProviderIf;
+class CVcxNsServiceClientHandler;
+class CVcxNsContentClientHandler;
+class CVcxNsMpxCollectionClientHandler;
+class CVcxNsEventRouter;
+class CVcxNsContentSearchHandler;
+class MVcxNsContentSearchIf;
+class CVcxNsUpdateProgressHandler;
+class MVcxNsUpdateProgressIf;
+class CVcxConnectionUtility;
+class CVcxNsStreamingHandler;
+class CIptvLastWatchedApi;
+class CMediatorEventProvider;
+class CVcxNsContent;
+
+// ENUMS
+
+/**
+* Video Center application states
+*/
+typedef enum
+ {
+ EStateNoState = 0,
+ EStateServiceView,
+ EStateCategoryView,
+ EStateContentView,
+ EStateCustomView,
+ EStateSetting,
+ EStateMyVideos,
+ EStateBrowser,
+ EStatePlayback,
+ EStateOther
+ } TVcxNsAppState;
+
+// CLASS DECLARATION
+
+/**
+* Video Center Ui Engine class
+*
+* @lib vcxnsuiengine.lib
+*/
+class CVcxNsUiEngine : public CBase
+ {
+
+public:
+
+ /**
+ * Get instance of VcxNs ui engine.
+ *
+ * Returns a pointer to existing, or else creates a new instance.
+ * NOTE: this increases automatically the reference count, so this should
+ * not be called multiple times without cleaning the references.
+ *
+ * @return Pointer to CVcxNsUiEngine.
+ */
+ IMPORT_C static CVcxNsUiEngine* InstanceL();
+
+ /**
+ * Remove the reference to this ui engine instance.
+ *
+ * Decreases the reference count by one, this should
+ * be called when not needing ui engine anymore. When
+ * all references are removed, the ui engine is destructed.
+ */
+ IMPORT_C void DecreaseReferenceCount();
+
+// New functions
+
+ /**
+ * Get pointer to app service provider object. Ownership not transferred.
+ *
+ * @return Pointer to CVcxNsServiceProvider.
+ */
+ IMPORT_C MVcxNsServiceProviderIf* GetServiceProviderL();
+
+ /**
+ * Get pointer to app content provider object. Ownership not transferred.
+ *
+ * @return Pointer to CVcxNsContentProvider.
+ */
+ IMPORT_C MVcxNsContentProviderIf* GetContentProviderL();
+
+ /**
+ * Get pointer to app category provider object. Ownership not transferred.
+ *
+ * @return Pointer to CVcxNsCategoryProvider.
+ */
+ IMPORT_C MVcxNsCategoryProviderIf* GetCategoryProviderL();
+
+ /**
+ * Get pointer to app content search handler object.
+ * Ownership not transferred.
+ *
+ * @return Pointer to content search interface.
+ */
+ IMPORT_C MVcxNsContentSearchIf* ContentSearchHandlerL();
+
+ /**
+ * Get pointer to content update progress handler
+ * Ownership not transferred.
+ *
+ * @return Pointer to update progress interface.
+ */
+ IMPORT_C MVcxNsUpdateProgressIf* ProgressHandlerL();
+
+ /**
+ * Get the videocenter application state.
+ *
+ * @return Current videocenter application state
+ */
+ IMPORT_C TVcxNsAppState VcAppState();
+
+ /**
+ * Set the videocenter application state.
+ *
+ * @param aAppState New videocenter application state
+ */
+ IMPORT_C void SetVcAppState( TVcxNsAppState aAppState );
+
+ /**
+ * Handle back command. Activates previous application state.
+ *
+ * @return Was the back event consumed. If EFalse,
+ * the back event should be handled by caller.
+ */
+ IMPORT_C TBool HandleBack();
+
+ /**
+ * Handle clieant app exit command. Clears application states.
+ */
+ IMPORT_C void ResetStates();
+
+ /**
+ * Returns active Category id
+ * @return Id of the category
+ */
+ IMPORT_C TUint32 ActiveCategory();
+
+ /**
+ * Get iap for connection
+ * @return IAP.
+ */
+ IMPORT_C TUint32 GetAvailableIapL();
+
+ /**
+ * Get WAP id for the connection.
+ * @return WAP id matching the given IAP id.
+ */
+ IMPORT_C TUint32 GetAvailableWapIdL();
+
+ /**
+ * Starts to play the given content
+ *
+ * NOTE: this Works only with MPX video player
+ *
+ * @param aContent Content to be played.
+ */
+ IMPORT_C void PlayVideoL( CVcxNsContent* aContent );
+
+ /**
+ * Starts to play the given content
+ *
+ * NOTE: this Works only with MPX video player
+ *
+ * @param aContent Content to be played. Ownership not passed.
+ */
+ IMPORT_C void PlayStreamL( CVcxNsContent* aContent );
+
+ /**
+ * Starts to play the last watched
+ *
+ * NOTE: this Works only with MPX video player
+ */
+ IMPORT_C void PlayLastWatchedL();
+
+ /**
+ * Should be called when playback of video is starting. Updates 'Last
+ * Watched' information to Matrix and dat-file.
+ *
+ * @param aContent Content item representing played video.
+ */
+ IMPORT_C void VideoPlaybackStartingL( CVcxNsContent* aContent );
+
+ /**
+ * Removes the topmost state from application state stack.
+ * Needed for vod view changes, where back navigation route changes.
+ * This is intended just for UI engine's internal use
+ */
+ void PopAppStateStack();
+
+ /**
+ * Get service provider ptr, ownership not transferred.
+ * for ui engine internal use, pointer can be NULL
+ *
+ * @return Pointer to CVcxNsServiceProvider
+ */
+ CVcxNsServiceProvider* ServiceProvider();
+
+ /**
+ * Get content provider ptr, ownership not transferred.
+ * for ui engine internal use, pointer can be NULL
+ *
+ * @return Pointer to CVcxNsContentProvider
+ */
+ CVcxNsContentProvider* ContentProvider();
+
+ /**
+ * Get category provider ptr, ownership not transferred.
+ * for ui engine internal use, pointer can be NULL
+ *
+ * @return Pointer to CVcxNsContentProvider
+ */
+ CVcxNsCategoryProvider* CategoryProvider();
+
+ /**
+ * Get pointer to service client handler class
+ *
+ * @return Pointer to CVcxNsServiceClientHandler.
+ * ownership not transferred.
+ */
+ CVcxNsServiceClientHandler* GetServiceClientHandlerL();
+
+ /**
+ * Get pointer to content client handler class
+ *
+ * @return Pointer to CVcxNsContentClientHandler.
+ * ownership not transferred.
+ */
+ CVcxNsContentClientHandler* GetContentClientHandlerL();
+
+ /**
+ * Get pointer to Mpx collection client handle
+ *
+ * @return Pointer to CVcxNsContentClientHandler.
+ * ownership not transferred.
+ */
+ CVcxNsMpxCollectionClientHandler* GetMpxCollectionClientHandlerL();
+
+ /**
+ * Get pointer to search handler.
+ *
+ * @return Pointer to CVcxNsContentSearchHandler.
+ * ownership not transferred.
+ */
+ CVcxNsContentSearchHandler* GetContentSearchHandlerL();
+
+ /**
+ * Get pointer to event handler class
+ *
+ * @return Pointer to CVcxNsEventRouter.
+ * ownership not transferred.
+ */
+ CVcxNsEventRouter* GetEventRouter();
+
+ /**
+ * Get pointer to progress update handler
+ *
+ * @return Pointer to progress handler.
+ * Ownership not transferred.
+ */
+ CVcxNsUpdateProgressHandler* GetProgressHandler();
+
+ /**
+ * Returns active Service id
+ *
+ * @return Active service's id
+ */
+ TUint32 ActiveService();
+
+ /**
+ * Set active Service id
+ *
+ * @param aServiceId Active service's id
+ */
+ void SetActiveService( TUint32 aServiceId );
+
+ /**
+ * Returns active Service group
+ *
+ * @return Active service group id
+ */
+ TUint32 ActiveServiceGroup();
+
+ /**
+ * Set active Service group id
+ *
+ * @param aServiceId Active service group id
+ */
+ void SetActiveServiceGroup( TUint32 aServiceId );
+
+ /**
+ * Set active Category id
+ * @param aCategoryId Active gategory's id
+ */
+ void SetActiveCategory( TUint32 aCategoryId );
+
+// from MvcxNsPlayerObserver
+
+ /**
+ * MnpwoLastPlaybackPosition
+ * @param aContentUri Content Uri
+ * @return Play position
+ */
+ TInt MnpwoLastPlaybackPosition( const TDesC& aContentUri );
+
+ /**
+ * MnpwoSetLastPlaybackPosition
+ * @param aContentUri Content Uri
+ * @param aPos Play position
+ */
+ void MnpwoSetLastPlaybackPosition( const TDesC& aContentUri, TInt aPos );
+
+private:
+
+ /**
+ * Deletes the ui engine instance.
+ * @param aThis class pointer
+ */
+ static void DeleteInstance( CVcxNsUiEngine* aThis );
+
+ /**
+ * Increases the reference count to this ui engine instance.
+ */
+ void IncreaseReferenceCount();
+
+ CVcxNsUiEngine();
+
+ void ConstructL();
+
+ virtual ~CVcxNsUiEngine();
+
+ void RaisePlayEventL( CVcxNsContent* aContent );
+
+ void WriteLastWatchedL( CVcxNsContent* aContent );
+
+ /**
+ * @return The content. Ownership is transferred to caller.
+ */
+ CVcxNsContent* LastWatchedToContentL();
+
+private:
+
+// Data
+
+ /**
+ * Service provider
+ */
+ CVcxNsServiceProvider* iServiceProvider;
+
+ /**
+ * Content provider
+ */
+ CVcxNsContentProvider* iContentProvider;
+
+ /**
+ * Category provider
+ */
+ CVcxNsCategoryProvider* iCategoryProvider;
+
+ /**
+ * Count of references to this ui engine object.
+ */
+ TInt iReferenceCount;
+
+ /**
+ * Service client handler
+ */
+ CVcxNsServiceClientHandler* iServiceClientHandler;
+
+ /**
+ * Content client handler
+ */
+ CVcxNsContentClientHandler* iContentClientHandler;
+
+ /**
+ * Mpx collection client handler
+ */
+ CVcxNsMpxCollectionClientHandler* iMpxCollectionClientHandler;
+
+ /**
+ * Application state
+ */
+ TVcxNsAppState iApplicationState;
+
+ /**
+ * Event router
+ */
+ CVcxNsEventRouter* iEventRouter;
+
+ /**
+ * Application state history, needed for handling back commands.
+ */
+ RArray<TVcxNsAppState> iAppStateStack;
+
+ /**
+ * Active Service id
+ */
+ TUint32 iActiveService;
+
+ /**
+ * Active Service Group id
+ */
+ TUint32 iActiveServiceGroup;
+
+ /**
+ * Active Category id
+ */
+ TUint32 iActiveCategory;
+
+ /**
+ * Content search handler.
+ * Own.
+ */
+ CVcxNsContentSearchHandler* iContentSearchHandler;
+
+ /**
+ * Connection utility
+ */
+ CVcxConnectionUtility* iConnUtil;
+
+ /**
+ * Content update progress handler.
+ * Own.
+ */
+ CVcxNsUpdateProgressHandler* iProgressHandler;
+
+ /**
+ * Pointer to 'Last Watched' API.
+ * Own.
+ */
+ CIptvLastWatchedApi* iLastWatchedApi;
+
+ /**
+ * Pointer to Mediator Event class.
+ * Own.
+ */
+ CMediatorEventProvider* iMediatorEventProvider;
+
+ /**
+ * Pointer to Streaming Handler.
+ * Own.
+ */
+ CVcxNsStreamingHandler* iStreamingHandler;
+
+ };
+
+#endif // C_VCXNSUIENGINE_H