--- /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