diff -r 000000000000 -r 96612d01cf9f videofeeds/utils/inc/iptvlastwatcheddata.h --- /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 +#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, 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, 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