videofeeds/vcnsuiengine/inc/vcxnsservicesettings.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/vcnsuiengine/inc/vcxnsservicesettings.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,241 @@
+/*
+* 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 VCXNSSERVICESETTINGS_H
+#define VCXNSSERVICESETTINGS_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include "CIptvNetworkSelection.h"
+#include "CIptvService.h"
+#include "MIptvServiceManagementClientObserver.h"
+#include "CIptvIapList.h"
+#include "iptvvodscheduleddownloaddefinitions.h"
+
+// FORWARD DECLARATIONS
+class CIptvServiceManagementClient;
+class CDesC8ArraySeg;
+
+// CLASS DECLARATION
+
+/**
+ *  CVcxNsServiceSettings
+ * 
+ */
+class CVcxNsServiceSettings : public CBase, public MIptvServiceManagementClientObserver
+    {
+public:
+
+// Helper class
+
+    class TVodcastService
+        {
+        public:
+        
+        TUint32                                  iId;
+        TBuf<KIptvSmServicesDbNameMaxLength>     iName;
+        TTime                                    iUpdateTime;
+        TBuf<KIptvSmServicesDbIconPathMaxLength> iIconPath;
+        TUint32                                  iDisplayOrder;
+        };
+
+// Constructors and destructor
+
+    virtual ~CVcxNsServiceSettings( );
+    
+    IMPORT_C static CVcxNsServiceSettings* NewL( );
+    
+// New functions
+       
+    /**
+     * Returns all services.
+     *
+     * @return Array of services if successful, NULL otherwise.
+     */
+    IMPORT_C CDesC8ArraySeg* GetAllServicesL();
+    
+    /**
+     * Returns all selected services.
+     *
+     * @param aError On return, error code from server.
+     * @return Array of services if successfull, NULL otherwise.
+     */
+    IMPORT_C CDesC8ArraySeg* GetAllSelectedServicesL( TInt& aError );
+    
+    
+    /**
+     * Returns all services that match given type.
+     *
+     * @param aServiceType Type of requested services as CIptvService::TServiceType enumeration.
+     * @return Array of services if successfull, NULL otherwise.
+     */
+    IMPORT_C CDesC8ArraySeg* GetServicesByTypeL( CIptvService::TServiceType aServiceType );
+    /**
+     * Gets IAP list for new service. List is created from existing services.
+     *
+     * @param aIapList On return, IAP list for new service.
+     * @return KErrNone or one of the system wide error codes.
+     */
+    IMPORT_C TInt GetIapListForNewServiceL( CIptvIapList& aIapList );
+    
+    /**
+      * Adds a new service to Service DB.
+      *
+      * @param aServiceName Name for service.
+      * @param aAddress     Address of service.
+      * @param aDescription Description of service.
+      * @param aIapList     IAP list for service.
+      * @param aServiceType Type of service as CIptvService::TServiceType enumeration.
+      * @param aEpgPluginUid   Service EPG plugin Uid.
+      * @param aIptvPluginUid  Service IPTV plugin Uid.
+      * @param aVodPluginUid   Service VOD plugin Uid.
+      * @return KErrNone or one of the system wide error codes.
+      */
+     IMPORT_C TInt AddServiceL( const TDesC& aServiceName,
+                                const TDesC& aAddress,
+                                const TDesC& aDescription,
+                                CIptvIapList& aIapList,
+                                CIptvService::TServiceType aServiceType,
+                                const TUid& aEpgPluginUid,
+                                const TUid& aIptvPluginUid,
+                                const TUid& aVodPluginUid  );
+    
+     /**
+      * Updates existing service.
+      *
+      * @param aIptvService New service information. Includes ID to identify
+      *                     which service to update.
+      */         
+     IMPORT_C void UpdateServiceL( CIptvService& aIptvService );
+    
+     /**
+      * Deletes a service.
+      *
+      * @param aItemId Service ID of service to delete.
+      */
+     IMPORT_C void DeleteServiceL( TUint32 aItemId );
+    
+     /**
+      * Returns a single service based on service Id.
+      * Note: Method is not efficient, so use only if absolutely necessary.         
+      *
+      * @param aServiceId   Service ID of service to get.
+      * @param aIptvService On return, the requested service.
+      * @return KErrNone or one of the system wide error codes.
+      */
+    IMPORT_C TInt GetServiceL( TUint32 aServiceId, CIptvService& aIptvService );
+    
+    // Schedule settings stuff
+    
+    /**
+    * Get the scheduled download settings.
+    * 
+    * @param aServiceId The service id.
+    * @param aDownloadTime The download time.
+    * @param aCondition The download condition.
+    * @param aType The download type.
+    * @return KErrNone if successful,
+    *           otherwise one of the other system-wide error codes.
+    */
+    IMPORT_C TInt GetScheduledDownloadSettingsL(
+        TIptvServiceId aServiceId,
+        TIptvVodScheduleDownloadtimeCombination& aDownloadTime,
+        TIptvVodScheduleConnectionCondition& aCondition,
+        TIptvVodScheduleDownloadTypeCombination& aType );
+
+    /**
+    * Set the scheduled download settings and reschedule.
+    * 
+    * @param aServiceId The service id.
+    * @param aDownloadTime The download time.
+    * @param aCondition The download condition.
+    * @param aType The download type.
+    * @return KErrNone if successful,
+    *           otherwise one of the other system-wide error codes.
+    */
+    IMPORT_C TInt SetScheduledDownloadSettingsL(
+        TIptvServiceId aServiceId,
+        TIptvVodScheduleDownloadtimeCombination aDownloadTime,
+        TIptvVodScheduleConnectionCondition aCondition,
+        TIptvVodScheduleDownloadTypeCombination aType );
+    
+// From MIptvServiceManagementClientObserver
+
+    /**
+     * Not used
+     */
+    void AddServiceResp( TRespStatus ) { ; }
+
+    /**
+     * Not used
+     */
+    void UpdateServiceResp( TRespStatus  ) { ; }
+
+    /**
+     * Not used
+     */
+    void DeleteServiceResp( TRespStatus ) { ; }
+
+    /**
+     * Not used
+     */
+    void GetServicesResp( TRespStatus, CDesC8ArraySeg* ) { ; }
+
+    /**
+     * Not used
+     */
+    void GetUsedIapResp( TUint32,
+                         const TDesC&,
+                         CIptvNetworkSelection::TConnectionPermission,
+                         TBool,
+                         CIptvNetworkSelection::TRespStatus ){ ; }
+
+    /**
+     * Not used
+     */
+    void ServerShutdownResp( TRespStatus ) { ; }
+
+    /**
+     * Not used
+     */
+    void HandleSmEvent( CIptvSmEvent& ) { ; }
+    
+private:
+    
+    CVcxNsServiceSettings( );  
+
+    /**
+     * GetServiceManagementClientL
+     */    
+    CIptvServiceManagementClient* CVcxNsServiceSettings::GetServiceManagementClientL();
+
+ // Data
+
+    /**
+     * CIptvServiceManagementClient
+     */ 
+    CIptvServiceManagementClient* iIptvServiceManagementClient;
+
+    };
+
+#endif // VCXNSSERVICESETTINGS_H