videofeeds/vcnsuiengine/inc/vcxnsservice.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/vcnsuiengine/inc/vcxnsservice.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,374 @@
+/*
+* 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_VCXNSVODSERVICE_H
+#define C_VCXNSVODSERVICE_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+_LIT( KVcxNsVideoDirectory, "qtn_iptv_video_directory_list" );
+
+// CLASS DECLARATION
+
+/**
+ *  CVcxNsService
+ * 
+ * @lib vcxnsuiengine.lib
+ */
+class CVcxNsService : public CBase
+    {
+    
+public:
+
+    /**
+     * Service's update status enum.
+     */
+    typedef enum
+        {
+        ENotUpdating = 0,
+        EUpdatePending,
+        EStartingPending,
+        EUpdateOngoing,
+        EUpdateFailed,
+        } TServiceUpdateStatus;
+    
+    /**
+    * VOD feed type information 
+    */
+    typedef enum 
+        {
+        EVcxNsReadOnly = 0,
+        EVcxNsEditable,
+        EVcxNsMainGroup,
+        EVcxNsVideoDirectory,
+        EVcxNsGroupedVod,
+        EVcxNsGroupedBrowser,
+        EVcxNsGroupedSearch,
+        EVcxNsGroupedUpload
+        } TVcxNsVodServiceType;
+
+     /**
+     * Constructor
+     */
+    static CVcxNsService* NewL();
+
+    /**
+     * Destructor
+     */
+    virtual ~CVcxNsService();
+
+    /**
+     * GetName
+     * @return Name
+     */
+    IMPORT_C const TDesC& GetName();
+    
+    /**
+     * GetDesc
+     * @return Description
+     */
+    IMPORT_C const TDesC& GetDesc();
+    
+    /**
+     * GetIconPath
+     * @return IconPath
+     */
+    IMPORT_C const TDesC& GetIconPath();
+    
+    /**
+     * GetUserName
+     * @return User name
+     */
+    IMPORT_C const TDesC& GetUserName();
+        
+    /**
+     * GetPassword
+     * @return Password
+     */
+    IMPORT_C const TDesC& GetPassword();
+    
+    /**
+     * GetUpdateTime 
+     * @return update time
+     */
+    IMPORT_C TTime GetUpdateTime();
+        
+    /**
+     * GetUpdateStatus
+     * @return Update status
+     */
+    IMPORT_C TServiceUpdateStatus GetUpdateStatus();
+
+    /**
+     * GetIap
+     * @return Iap
+     */
+    IMPORT_C TUint32 GetIap();
+    
+    /**
+     * GetIsReadOnlyIap
+     * @return Is read only iap
+     */
+    IMPORT_C TBool GetIsReadOnlyIap();
+    
+    /**
+     * Get simplified service type.
+     * @return Service type
+     */
+    IMPORT_C TVcxNsVodServiceType Type() const;
+
+    /**
+     * Get account management uri.
+     * @return Account management uri. 
+     * KNullDesC() if not available.
+     */
+    IMPORT_C const TDesC& AccountMgmtUri();
+    
+    /**
+     * Get service custom URI.
+     * @return Custom uri
+     */
+    const TDesC& CustomUri();
+    
+    /**
+     * SetNameL
+     * @param aName Name
+     */
+    void SetNameL( const TDesC& aName );
+
+    /**
+     * SetDescL
+     * @param aDesc Description
+     */
+    void SetDescL( const TDesC& aDesc );
+    
+    /**
+     * SetIconPathL
+     * @param aPath icon path
+     */
+    void SetIconPathL(  const TDesC& aPath );
+    
+    /**
+     * SetUserNameL
+     * @param aUserName Username
+     */
+    void SetUserNameL( const TDesC& aUserName );
+    
+    /**
+     * SetPasswordL
+     * @param aPassword Password
+     */
+    void SetPasswordL( const TDesC& aPassword );
+    
+    /**
+     * SetServiceId
+     * @param iServiceId Service Id 
+     */
+    void SetServiceId( const TUint32 iServiceId );
+
+    /**
+     * GetServiceId
+     * @return Service Id 
+     */
+    IMPORT_C TUint32 GetServiceId();
+    
+    /**
+     * SetUpdateTime
+     * @param aTime Update time
+     */
+    void SetUpdateTime( const TTime aTime );
+
+    /**
+     * SetUpdateStatus
+     * @param aUpdateStatus Update status
+     */
+    void SetUpdateStatus( const TServiceUpdateStatus aUpdateStatus );
+    
+    /**
+     * SetIap
+     * @param aIap Iap id
+     */
+    void SetIap( const TUint32 aIap );
+    
+    /**
+     * SetIsReadOnlyIap
+     * @param aIsReadOnlyIap Is read only iap
+     */
+    void SetIsReadOnlyIap( const TBool aIsReadOnlyIap );
+    
+    /**
+     * Set browser url for browser type service
+     * @param aCustomUri Custom uri
+     */
+    void SetCustomUriL( const TDesC& aCustomUri ); 
+    
+    /**
+     * Set type of the service
+     * @param aType Service type
+     */
+    void SetType( const CVcxNsService::TVcxNsVodServiceType aType );
+    
+    /**
+     * Set account management url for service
+     * @param aAccountMgmtUri Account management uri.
+     */
+    void SetAccountMgmtUriL( const TDesC& aAccountMgmtUri );
+
+    /**
+     * Set group id.
+     * @param aGroupId Group id
+     */
+    void SetGroupId( const TUint32 aGroupId );
+    
+    /**
+     * Get group id.
+     * @return Service group id.
+     */
+    TUint32 GroupId();
+    
+    /**
+     * Add sub service to service group.
+     * @param aSubService Groupped service. Ownership transferred here.
+     * Leaves with KErrArgument if aSubService is NULL or if service type
+     * is something else than EVcxNsMainGroup.
+     */
+    void AddSubServiceL( CVcxNsService* aSubService );
+    
+    /**
+     * Return service group.
+     * @return Array of groupped services.
+     */
+    RPointerArray<CVcxNsService>& ServiceGroup();
+
+    /**
+     * Set highlighted category index.
+     * @param aIndex Highlighted index.
+     */
+    void SetHighlightCategoryIndex( TInt aIndex );
+
+    /**
+     * Return service group.
+     * @return Highlighted index.
+     */
+    TInt HighlightCategoryIndex();
+
+private:
+
+    /**
+     * Constructor
+     */
+    CVcxNsService();
+
+private: //Data
+
+    /**
+     * Name.
+     * Own.
+     */
+    HBufC* iName;
+
+    /**
+     * Icon path.
+     * Own.
+     */
+    HBufC* iIconPath;
+
+    /**
+     * User name
+     * Own.
+     */
+    HBufC* iUserName;
+
+    /**
+     * Password
+     * Own.
+     */
+    HBufC* iPassword;
+    
+    /**
+     * Service id.
+     */
+    TUint32 iServiceId;
+    
+    /**
+     * Last updated time
+     */
+    TTime iUpdateTime;
+    
+    /**
+     * Current update status.
+     */    
+    TServiceUpdateStatus iUpdateStatus;
+    
+    /**
+     * Access point.
+     */   
+    TUint32 iIap;
+    
+    /**
+     * Flag for read only iap.
+     */
+    TBool iIsReadOnlyIap;
+    
+    /**
+     * Optional URI for browser service
+     * Own.
+     */
+    HBufC* iCustomUri;
+    
+    /**
+     * Service type. 
+     */
+    TVcxNsVodServiceType iType;
+    
+    /**
+     * Service description
+     * Own.
+     */
+    HBufC* iDescription;
+    
+    /**
+     * Account management uri
+     * Own.
+     */
+    HBufC* iAccountMgmtUri;
+    
+    /**
+     * Service group id.
+     */
+    TUint32 iGroupId;
+    
+    /**        
+    * Groupped services.
+    * Own.
+    */
+    RPointerArray<CVcxNsService> iServiceGroup;
+    
+    /**        
+    * Highlighted category index for service.
+    * By default, always 0.
+    */
+    TInt iHighlightIndex;
+
+    };
+
+#endif // C_VCXNSVODSERVICE_H