videofeeds/vcnsuiengine/inc/vcxnscontent.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/vcnsuiengine/inc/vcxnscontent.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,525 @@
+/*
+* 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_VCXNSVODCONTENT_H
+#define C_VCXNSVODCONTENT_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <vcxmyvideosdefs.h>
+
+// FORWARD DECLARATIONS
+class CMPXMedia;
+class CVcxNsContentAccess;
+
+// CLASS DECLARATION
+
+/**
+ *  CVcxNsContent
+ * 
+ * @lib vcxnsuiengine.lib
+ */
+class CVcxNsContent : public CBase
+    {
+
+public:
+
+    /**
+     * TVcxContentDlStatus
+     * Typedef that links the content dl status to mpx dl status
+     */ 
+    typedef enum
+        {
+        EVcxContentDlStateNone         =   EVcxMyVideosDlStateNone,
+        EVcxContentDlStateDownloading  =   EVcxMyVideosDlStateDownloading,
+        EVcxContentDlStateFailed       =   EVcxMyVideosDlStateFailed,
+        EVcxContentDlStatePaused       =   EVcxMyVideosDlStatePaused,
+        EVcxContentDlStateDownloaded   =   EVcxMyVideosDlStateDownloaded,
+        EVcxContentDlStateNotFound     =   1000,  // Mpx item not found
+        EVcxContentDlStateNotDownloadable,        // Content has no downloadable media content
+        EVcxContentDlStateCanceling // Dl cancel command has been sent to collection, dl start cmd is not offered for user
+        }  TVcxContentDlStatus;
+
+    /**
+     * TVcxNsContentAccessType
+     * 
+     * Defines the mime / handling type of given content media acess.
+     */ 
+    typedef enum
+        {
+        EVcxContentTypeNoType          = 0x00,
+        EVcxContentTypeVideo           = 0x01,
+        EVcxContentTypeStream          = 0x02,
+        EVcxContentTypePreviewVideo    = 0x04,
+        EVcxContentTypePreviewStream   = 0x08
+        } TVcxNsContentAccessType;
+
+    /**
+     * TVcxNsMpxContentCommand
+     */    
+    typedef enum 
+        {
+        EVcxNsMpxContentCommandNone = 0,
+        EVcxNsMpxContentCommandStartDownload,
+        EVcxNsMpxContentCommandCancelDownload,
+        EVcxNsMpxContentCommandPauseDownload,
+        EVcxNsMpxContentCommandResumeDownload,
+        EVcxNsMpxContentCommandWaitingForMpxItem
+        } TVcxNsMpxContentCommand;
+
+    static CVcxNsContent* NewL();
+
+	/**
+	 * Copy ctor
+	 *
+	 * @param aContent Content to be made a copy
+	 */
+    static CVcxNsContent* NewL( CVcxNsContent& aContent );
+
+    virtual ~CVcxNsContent();
+
+    /**
+     * GetName
+     * @return Name
+     */
+    IMPORT_C const TDesC& GetName();
+
+    /**
+     * GetLanguage
+     * @return Language
+     */
+    IMPORT_C const TDesC& GetLanguage();
+    
+    /**
+     * GetDescription
+     * @return Description
+     */
+    IMPORT_C const TDesC& GetDescription();
+    
+    /**
+     * GetAuthor
+     * @return Author
+     */
+    IMPORT_C const TDesC& GetAuthor();  
+  
+    /**
+     * GetCopyright
+     * @return GetCopyright
+     */
+    IMPORT_C const TDesC& GetCopyright();  
+  
+     /**
+     * GetIconPath
+     * @return IconPath
+     */
+    IMPORT_C const TDesC& GetIconPath();
+    
+    /**
+     * GetServiceId
+     * @return ServiceId
+     */
+    IMPORT_C TUint32 GetServiceId();
+     
+    /**
+     * GetContentId
+     * @return ContentId
+     */
+    IMPORT_C TUint32 GetContentId();
+    
+    /**
+     * Get size
+     * @return Size
+     */
+    IMPORT_C TUint32 GetSize();
+    
+    /**
+     * Get length in time
+     * @return Length
+     */
+    IMPORT_C TUint32 GetLength();
+    
+    /**
+     * Get browser url
+     * @return Browser url
+     */
+    IMPORT_C const TDesC& GetBrowserUrl();
+    
+    /**
+     * Get DlStatus
+     * @return Dl Status
+     */
+    IMPORT_C TVcxContentDlStatus GetDlStatus();
+    
+    /**
+     * Get DlProgress in time
+     * @return Dl Progress
+     */
+    IMPORT_C TInt8 GetDlProgress();    
+
+    /**
+     * Get content access types found from this content.
+     * Content type flag values are masked to return value.
+     * @return  Content types
+     */
+    IMPORT_C TUint32 GetContentTypes();
+   
+    /**
+     * GetUrl
+     * @return Url
+     */
+    IMPORT_C const TDesC& GetUrl( TVcxNsContentAccessType aContentType );
+    
+    /**
+     * Get age profile for this content.
+     * @return Age profile.
+     */
+    IMPORT_C TUint16 GetAgeProfile();
+
+    /**
+     * Set user name
+     * @param aUsername
+     */
+    IMPORT_C void SetUsernameL( const TDesC& aUsername );
+    
+    /**
+     * Set password
+     * @param aPassword
+     */
+    IMPORT_C void SetPasswordL( const TDesC& aPassword );
+    
+    /**
+     * Get user name
+     * @return Username
+     */
+    const TDesC& GetUsername();
+    
+    /**
+     * Get password
+     * @return Password
+     */
+    const TDesC& GetPassword();
+    
+    /**
+     * Get local filepath
+     * @param aType Type of the content access, which path to get
+     * @return path
+     */
+    const TDesC& GetLocalFilepath( TVcxNsContentAccessType aType );
+    
+    /**
+     * Get Last Playback Position
+     * 
+     * @param aType Type of the content access, which position to get
+     * @return Last playback position
+     */
+    TInt32 GetLastPlaybackPosition( TVcxNsContentAccessType aType );
+    
+    /**
+     * Set Last Playback Position
+     * @param aPos Last playback position
+     * @param aType Type of the content access, which position to get
+     */
+    void SetLastPlaybackPosition( const TReal32 aPos, TVcxNsContentAccessType aType );
+
+    /**
+     * SetNameL
+     * @param aName Name
+     */
+    void SetNameL( const TDesC& aName );
+    
+    /**
+     * SetLanguageL
+     * @param aLanguage Language
+     */
+    void SetLanguageL( const TDesC& aLanguage );
+    
+    /**
+     * SetDescriptionL
+     * @param aDescription Description
+     */
+    void SetDescriptionL( const TDesC& aDescription );
+    
+    /**
+     * SetAuthorL
+     * @param aAuthor Author
+     */
+    void SetAuthorL( const TDesC& aAuthor );    
+
+    /**
+     * SetCopyrightL
+     * @param aCopyright Copyright
+     */
+    void SetCopyrightL( const TDesC& aCopyright );
+    
+    /**
+     * SetIconPathL
+     * @param aPath Path
+     */
+    void SetIconPathL( const TDesC& aPath );
+
+    /**
+     * SetServiceId
+     * @param aServiceId ServiceId
+     */
+    void SetServiceId( const TUint32 aServiceId );
+    
+    /**
+     * SetContentId
+     * @param aContentId ContentId
+     */
+    void SetContentId( const TUint32 aContentId );
+
+    /**
+     * Set size
+     * @param aSize Size
+     */
+    void SetSize( const TUint32 aSize );
+    
+    /**
+     * Set length
+     * @param aLength Length
+     */
+    void SetLength( const TUint32 aLength );
+
+    /**
+     * Set browser url
+     * @param aBrowserUrl Browser Url
+     */
+    void SetBrowserUrlL( const TDesC& aBrowserUrl );
+
+    /**
+     * Set age profile.
+     * @param aAgeProfile Age profile.
+     */
+    void SetAgeProfile( const TUint16 aAgeProfile );
+
+    /**
+     * Set mpx media
+     * @param aMpxMedia Mpx Media object
+     * @param aType Content access type
+     */
+    void SetMpxMediaL( CMPXMedia* aMpxMedia,
+                       TVcxNsContentAccessType aType = EVcxContentTypeVideo );
+    
+    /**
+     * Get mpx media
+     * @param aType Content access type
+     * @return Media object
+     */
+    CMPXMedia* GetMpxMedia( TVcxNsContentAccessType aType = EVcxContentTypeVideo );
+    
+    /**
+     * Get mpx id
+     * @param aType Content access type
+     * @return 
+     */    
+    TUint32 GetMpxId( TVcxNsContentAccessType aType = EVcxContentTypeVideo );
+    
+     /**
+      * Set mpx id
+      * @param aMpxId Mpx Media id
+      * @param aType Content access type
+      */   
+    void SetMpxId( const TUint32 aMpxId, TVcxNsContentAccessType aType = EVcxContentTypeVideo );
+
+    /**
+     * Adds content access. Transfers ownership to this class.
+     * @param aContentAccess Media content access
+     */    
+    void AddContentAccess( CVcxNsContentAccess* aContentAccess );
+
+     /**
+      * Get media content.
+      * @param aType Content access type
+      * @return Media content access
+      */   
+    CVcxNsContentAccess* GetContentAccess( TVcxNsContentAccessType aType );
+
+    /**
+     * Pending collection command. Cmd has been sent, but not yet processed.
+     * see TVcxNsMpxContentCommand
+     * @param aCmd Issued command
+     */
+    void SetPendingCommand( TVcxNsMpxContentCommand aCmd );
+
+    /**
+     * Pending collection command. Cmd has been sent, but not yet processed.
+     * see TVcxNsMpxContentCommand
+     * @return Pending command
+     */
+    TVcxNsMpxContentCommand PendingCommand();
+
+    /**
+     * Pending collection command's transaction id.
+     * Needed to identify when the command is completed.
+     * @param aTrId Current command's transaction id
+     */
+    void SetCmdTransactionId( TUint32 aTrId );
+
+    /**
+     * Pending collection command's transaction id.
+     * Needed to identify when the command is completed.
+     * @return Current command's transaction id
+     */
+    TUint32 CmdTransactionId();
+
+    /**
+     * DlFailNotified
+     * @return Is the dl failure notified to ui engine observers.
+     */
+    TBool DlFailNotified();
+    
+    /**
+     * SetDlFailNotified
+     * @param aDlFailNotified Is the dl fail notified.
+     */
+    void SetDlFailNotified( TBool aDlFailNotified );
+
+    /**
+     * FullDetailsFetched
+     * @return Has the full details been fetched to the content item.
+     */
+    TBool FullDetailsFetched();
+    
+    /**
+     * SetFullDetailsFetched
+     * @param aFullDetailsFetched Is the full details fetched.
+     */
+    void SetFullDetailsFetched( TBool aFullDetailsFetched );
+    
+private:
+
+    CVcxNsContent( );
+    
+// Data
+
+    /**
+     * Content name
+     * Own.
+     */
+    HBufC* iName;
+
+    /**
+     * iLanguage.
+     * Own.
+     */
+    HBufC* iLanguage;
+    
+    /**
+     * iDescription.
+     * Own.
+     */
+    HBufC* iDescription;
+    
+    /**
+     * iAuthor.
+     * Own.
+     */
+    HBufC* iAuthor;
+    
+    /**
+     * iCopyright.
+     * Own.
+     */
+    HBufC* iCopyright;
+    
+    /**
+     * Icon path
+     * Own.
+     */
+    HBufC* iIconPath;
+
+    /**
+     * Service Id
+     */
+    TUint32 iServiceId;
+    
+    /**
+     * Content Id
+     */
+    TUint32 iContentId;
+    
+    /**
+     * Size
+     */
+    TUint32 iSize; 
+    
+    /**        
+    * Length in time
+    */
+    TUint32 iLength;
+    
+    /**        
+    * Browser url
+    * Own.
+    */
+    HBufC* iBrowserUrl;
+    
+    /**        
+    * Video age profile.
+    */
+    TUint16 iAgeProfile;
+    
+    /**        
+    * Username
+    * Own.
+    */
+    HBufC* iUserName;
+    
+    /**        
+    * Password
+    * Own.
+    */
+    HBufC* iPasswd;
+    
+    /**        
+    * Content acess array.
+    */
+    RPointerArray<CVcxNsContentAccess> iContentAccesses;
+
+    /**
+     * Pending collection command. Cmd has been sent, but not yet processed.
+     * 
+     * see typedef TVcxNsMpxContentCommand
+     */
+    TVcxNsMpxContentCommand iPendingCommand;
+
+    /**
+     * Pending collection command's transaction id.
+     * 
+     * Needed to identify when the command is completed.
+     */
+    TUint32 iCmdTransactionId;
+
+    /**
+     * Is error note show to user.
+     */
+    TBool iDlFailNotified;
+
+    /**
+     * Has the full details been fetched to the content item.
+     */
+    TBool iFullDetailsFetched;
+    
+    };
+
+#endif // C_VCXNSVODCONTENT_H