videofeeds/utils/inc/iptvlastwatcheddata.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/utils/inc/iptvlastwatcheddata.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,481 @@
+/*
+* Copyright (c) 2007-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:    Contains Video Center's last watched item's data.*
+*/
+
+
+
+
+#ifndef C_IPTVLASTWATCHEDDATA_H
+#define C_IPTVLASTWATCHEDDATA_H
+
+#include <e32base.h>
+#include "CIptvUtil.h"
+
+// Consts
+const TInt KIptvLastWatchedStartparamMaxLength = 16384; // 16kB
+const TInt KIptvLastWatchedUriMaxLength = 2048;
+const TInt KIdUndefined = KMaxTInt32 - 1;
+
+/**
+ *  Last watched data class
+ *
+ *  VideoCenter Main UI has the last watched item, data of that item can be set
+ *  and get via the API by this class. This is used also when there is
+ *  Space UI support available, this class contains MainUI's last watched
+ *  item's launch data.
+ *
+ *  @lib IptvUtil.lib
+ *  @since S60 v3.1
+ */
+class CIptvLastWatchedData : public CBase
+    {
+
+public: // structs
+
+    /**
+     * Type of the launch of last watched item.
+     */
+    enum TLaunchType
+        {
+        /**
+         * Not defined.
+         */
+        EUndefined,
+
+        /**
+         * Activate VideoCenter's local view by view server id and pass parameters for the view.
+         *
+         * Last watched command handling uses CAknViewAppUi::ActivateLocalViewL()
+         */
+        EView,
+
+        /**
+         * Start application by app and view uid and pass parameters for the
+         * application.
+         *
+         * Last watched command handling uses CCoeAppUi::ActivateViewL();
+         */
+        EApplication,
+
+        /**
+         * Send message to an application by app and view uid and pass
+         * parameters for the application. Application should be running if
+         * using this method.
+         *
+         * Last watched command handling uses TApaTask::SendMessageL
+         */
+        EHandleMessage,
+
+        /**
+         * Try to send a message to the application by app and view uid
+         * and pass parameters for the application. If application is not
+         * running it is started via apparc.
+         *
+         * Last watched command handling uses RApaLsSession::StartApp
+         */
+        EApaMsgWithTail
+        };
+
+public: // member functions
+
+    IMPORT_C static CIptvLastWatchedData* NewL();
+    virtual ~CIptvLastWatchedData();
+
+    /**
+     * Read data stream and construct this class from it.
+     * @param aStream Stream to read data from.
+     */
+    IMPORT_C void InternalizeL( RReadStream& aStream );
+
+    /**
+     * Write class data to binary format which can be stored in a file.
+     * @param aStream The Stream where data is written.
+     */
+    IMPORT_C void ExternalizeL( RWriteStream& aStream );
+
+    /**
+     * Sets the last watched item's name
+     * Max length = KIptvMyVideosVideoNameMaxLength = 100
+     * @since S60 v3.1
+     * @param aName item's name
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetNameL( const TDesC& aName );
+
+    /**
+     * Sets the last watched item's URI
+     * Max length = KIptvLastWatchedUriMaxLength = 2048
+     * @since S60 v3.1
+     * @param aUri Item's uri, works as unique identifier.
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetUriL( const TDesC& aUri );
+
+    /**
+     * Sets the last watched item's icon path
+     * Max length = KIptvMaxPath = 255
+     * @since S60 v3.1
+     * @param aIconPath item's icon path
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetIconPathL( const TDesC& aIconPath );
+
+    /**
+     * Sets the last watched item's mime type
+     * Max length = KIptvMyVideosVideoMaxMimeTypeLength
+     * @since S60 v3.2
+     * @param aMimeType item's mime type
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetMimeTypeL( const TDesC& aMimeType );
+
+    /**
+     * Sets the last watched item's service id
+     * @since S60 v3.2
+     * @param aServiceId item's service id
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetServiceId( const TInt32 aServiceId );
+
+    /**
+     * Sets the last watched item's content id
+     * @since S60 v3.2
+     * @param aContentId item's content id
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetContentId( const TIptvContentId aContentId );
+
+    /**
+     * Sets the last watched item's content index
+     * @since S60 v3.2
+     * @param aContentIndex item's content index
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetContentIndex( const TInt32 aContentIndex );
+
+    /**
+     * Sets the last watched item's last play point
+     * @since S60 v3.2
+     * @param aLastVideoPlayPoint item's last play point
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetLastVideoPlayPoint( const TUint32 aLastVideoPlayPoint );
+
+    /**
+     * Sets the last watched item's parental control limit
+     * @since S60 v3.2
+     * @param aParentalControl item's parental control limit
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetParentalControl( const TUint32 aParentalControl );
+
+    /**
+     * Sets the last watched item's launch parameters. This can be command
+     * line, TPckg<?Datatype?>, or anything that the launched application
+     * takes as start / activation parameter.
+     * Max length = KIptvLastWatchedStartparamMaxLength = 16k
+     * @since S60 v3.1
+     * @param aParameters item's launch parameters
+     * @return System-wide error code
+     */
+    IMPORT_C TInt SetParametersL( const TDesC8& aParameters );
+
+    /**
+     * Sets the last watched item's launched application's Uid.
+     * Needed only if item's launch type is EApplication.
+     * @since S60 v3.1
+     * @param aAppUid launched application's Uid
+     * @return System-wide error code
+     */
+    IMPORT_C void SetAppUid( const TUid& aAppUid );
+
+    /**
+     * Sets the last watched item's launched application view's Uid.
+     * @since S60 v3.1
+     * @param aViewUid activated window server view's uid.
+     * @return System-wide error code
+     */
+    IMPORT_C void SetViewUid( const TUid& aViewUid );
+
+    /**
+     * Sets the last watched item's parameter uid.
+     * @since S60 v3.1
+     * @param aParameterId
+     * @return System-wide error code
+     */
+    IMPORT_C void SetParameterId( const TUid& aParameterId );
+
+    /**
+     * Sets the last watched item's launch type, see TLaunchType enum.
+     * Type of launching of the last watched item. Launcing can be handled
+     * by activating VideoCenter's local view, send mssage to self or some
+     * other application, or launch any application with any given parameters.
+     *
+     * @since S60 v3.1
+     * @param aLaunchType last watched item's launch type
+     * @return System-wide error code
+     */
+    IMPORT_C void SetLaunchType( TLaunchType aLaunchType );
+
+    /**
+     * Gets the last watched item's name
+     * Max length = KIptvMyVideosVideoNameMaxLength = 100
+     * @since S60 v3.1
+     * @return aName item's name
+     */
+    IMPORT_C const TDesC& Name() const;
+
+    /**
+     * Gets the last watched item's URI
+     * Max length = KIptvLastWatchedUriMaxLength = 2048
+     * @since S60 v3.1
+     * @return aUri item's uri
+     */
+    IMPORT_C const TDesC& Uri() const;
+
+    /**
+     * Gets the last watched item's icon path
+     * Max length = KIptvMaxPath = 255
+     * @since S60 v3.1
+     * @return aIconPath item's icon path
+     */
+    IMPORT_C const TDesC& IconPath() const;
+
+    /**
+     * Gets the last watched item's mime type
+     * Max length = KIptvMyVideosVideoMaxMimeTypeLength
+     * @since S60 v3.2
+     * @return aIconPath item's mine type
+     */
+    IMPORT_C const TDesC& MimeType() const;
+
+    /**
+     * Gets the last watched item's service id
+     * @since S60 v3.2
+     * @return item's service id
+     */
+    IMPORT_C TInt32 ServiceId() const;
+
+    /**
+     * Gets the last watched item's content id
+     * @since S60 v3.2
+     * @return item's content id
+     */
+    IMPORT_C TIptvContentId ContentId() const;
+
+    /**
+     * Gets the last watched item's content index
+     * @since S60 v3.2
+     * @return item's content index
+     */
+    IMPORT_C TInt32 ContentIndex() const;
+
+    /**
+     * Gets the last watched item's last play point
+     * @since S60 v3.2
+     * @return item's last play point
+     */
+    IMPORT_C TUint32 LastVideoPlayPoint() const;
+
+    /**
+     * Gets the last watched item's parental control limit
+     * @since S60 v3.2
+     * @return item's parental control limit.
+     */
+    IMPORT_C TUint32 ParentalControl() const;
+
+    /**
+     * Gets the last watched item's launch parameters. This can be command
+     * line, TPckg<?Datatype?>, or anything that the launched application
+     * takes as start / activation parameter.
+     * Max length = KIptvLastWatchedStartparamMaxLength = 16k
+     * @since S60 v3.1
+     * @return item's launch parameters
+     */
+    IMPORT_C const TDesC8& Parameters() const;
+
+    /**
+     * Gets the last watched item's launched application's Uid.
+     * Needed only if item's launch type is EApplication.
+     * @since S60 v3.1
+     * @return launched application's Uid
+     */
+    IMPORT_C TUid AppUid() const;
+
+    /**
+     * Gets the last watched item's launched application view's Uid.
+     * @since S60 v3.1
+     * @return activated window server view's uid.
+     */
+    IMPORT_C TUid ViewUid() const;
+
+    /**
+     * Gets the last watched item's parameter uid.
+     * @since S60 v3.1
+     * @return parameter id
+     */
+    IMPORT_C TUid ParameterId() const;
+
+    /**
+     * Sets the last watched item's launch type, see TLaunchType enum.
+     * Type of launching of the last watched item. Launching can be handled
+     * by activating VideoCenter's local view, send mssage to self or some
+     * other application, or launch any application with any given parameters.
+     *
+     * @since S60 v3.1
+     * @return last watched item's launch type
+     */
+    IMPORT_C TLaunchType LaunchType() const;
+
+    /**
+     * Counts size of the externalize result. User can call this to find out
+     * how much data will be received from ExternalizeL.
+     * @return Size in 8-bit bytes
+     */
+    IMPORT_C TUint32 CountExternalizeSize() const;
+
+    /**
+     * Gets the last watched item's content type.
+     * 
+     * @since S60 v5.0
+     * @param aContentType Item's content type.
+     * @return System-wide error code.
+     */
+    IMPORT_C TInt SetContentType( const TInt aContentType );    
+    
+    /**
+     * Gets the last watched item's content type.
+     * 
+     * @since S60 v5.0
+     * @return Item's content type.
+     */
+    IMPORT_C TInt ContentType() const;    
+
+    /**
+     * Gets the last watched item's mpx id.
+     * 
+     * @since S60 v5.0
+     * @param aMpxId Item's mpx id.
+     * @return System-wide error code.
+     */
+    IMPORT_C TInt SetMpxId( const TInt aMpxId );    
+    
+    /**
+     * Gets the last watched item's mpx id.
+     * 
+     * @since S60 v5.0
+     * @return Item's mpx id.
+     */
+    IMPORT_C TInt MpxId() const; 
+    
+private:
+
+    CIptvLastWatchedData();
+
+private: // Data
+
+    /**
+     * Name that is displayed in UI for the last watched item.
+     * Own.
+     */
+    HBufC* iName;
+
+    /**
+     * Uri that identifies the last watched item.
+     * Own.
+     */
+    HBufC* iUri;
+
+    /**
+     * Icon's path that is shown to user for the last watched item.
+     * Own.
+     */
+    HBufC* iIconPath;
+
+    /**
+     * Mime type for the last watched item.
+     * Own.
+     */
+    HBufC* iMimeType;
+
+    /**
+     * Service where from this video was started.
+     */
+    TInt32 iServiceId;
+
+    /**
+     * Content id of started video.
+     */
+    TIptvContentId iContentId;
+
+    /**
+     * Content index of started video to specify correct url.
+     */
+    TUint32 iContentIndex;
+
+    /**
+     * Position where play was stopped when finnished watching the clip.
+     */
+    TUint32 iLastVideoPlayPoint;
+
+    /**
+     * Parental control age limit for this video.
+     */
+    TUint32 iParentalControl;
+
+    /**
+     * Launch parameter descriptor for launching the last watched item's
+     * associated application.
+     * Own.
+     */
+    HBufC8* iParameters;
+
+    /**
+     * Last watched item's associated application's Uid.
+     */
+    TUid iAppUid;
+
+    /**
+     * Last watched item's associated view server view's Uid.
+     */
+    TUid iViewUid;
+
+    /**
+     * Launch parameter id of the last watched item's associated application.
+     */
+    TUid iParameterId;
+
+    /**
+     * Last watched item's launch type, see TLaunchType enum. Launching can
+     * be handled by activating VideoCenter's local view, send mssage to self
+     * or some other application, or launch any application with any given
+     * parameters.
+     */
+    TLaunchType iLaunchType;
+    
+    /**
+     * Content type when last watched is storing either stream or local clip.
+     * Same values are used as in Via Player Default View's iContentType.
+     */
+    TInt iContentType;
+    
+    /**
+     * iMpxId.
+     */
+    TInt iMpxId;
+    
+    };
+
+#endif // C_IPTVLASTWATCHEDDATA_H