--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/vcnsuiengine/inc/vcxnscontentclienthandler.h Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,216 @@
+/*
+* Copyright (c) 2009 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 VCXNSCONTENTCLIENTHANDLER_H_
+#define VCXNSCONTENTCLIENTHANDLER_H_
+
+// INCLUDES
+#include <e32base.h>
+
+#include "MIptvVodContentClientObserver.h"
+#include <ipvideo/vcxconnutilengineobserver.h>
+
+// FORWARD DECLARATIONS
+class CIptvVodContentClient;
+class CVcxNsUiEngine;
+class CVcxConnectionUtility;
+
+// TYPEDEFS
+typedef TUint32 TIptvServiceId;
+
+/**
+* Class CVcxNsContentClientHandler handles content client interactions.
+*
+* @lib vcxnsuiengine.lib
+*/
+class CVcxNsContentClientHandler : public CBase,
+ public MIptvVodContentClientObserver,
+ public MConnUtilEngineObserver
+ {
+
+public:
+
+ /**
+ * Constructor.
+ *
+ * @param aUiEngine Ui engine
+ * @param aConnUtil Connection util
+ */
+ static CVcxNsContentClientHandler* CVcxNsContentClientHandler::NewL(
+ CVcxNsUiEngine& aUiEngine, CVcxConnectionUtility& aConnUtil );
+
+ virtual ~CVcxNsContentClientHandler();
+
+ /**
+ * Returns content management client.
+ * @return Pointer to CIptvVodContentClient object.
+ */
+ CIptvVodContentClient* GetVodContentClientL( TUint32 aServiceId );
+
+ /**
+ * Updates the given service's ecg.
+ * This causes the iap to be reasked if necessary.
+ *
+ * @param aServiceId Service id
+ * @return Error code
+ */
+ TInt UpdateEcgL( TUint32 aServiceId );
+
+ /**
+ * Stores mpx media id to content database.
+ * @param aServiceId Service id
+ * @param aContentId Content id
+ * @param aCaIndex Content access index
+ * @param aMpxId Mpx id.
+ */
+ void StoreMpxIdToEcgDbL( TUint32 aServiceId,
+ TUint32 aContentId,
+ TUint32 aCaIndex,
+ TUint32 aMpxId );
+
+
+ /**
+ * Stores Last Playing Position to content database.
+ * @param aServiceId Service id
+ * @param aContentId Content id
+ * @param aCaIndex Content access index
+ * @param aPos Last play pos.
+ */
+ void StoreLastPlayPosL( TUint32 aServiceId,
+ TUint32 aContentId,
+ TUint32 aCaIndex,
+ TReal32 aPos );
+
+// From MIptvVodContentClientObserver
+
+ /**
+ * Messages from EPG manager are handled here. Messages are defined in CIptvUtil.h
+ * @since Engine 1.1
+ * @param aMsg Message
+ * @param aInfo Info
+ * @param aServiceId Service id.
+ */
+ void HandleEpgManagerMsgL( TInt aMsg, TInt aInfo, TIptvServiceId aServiceId );
+
+// from MConnUtilEngineObserver
+
+ /**
+ * This method is called by the vcxconnectionutility when
+ * it has received a notification about the availibility of
+ * "better" iap in the network. This might happen
+ * when WLAN defined in the corresponding destination becomes
+ * available or when WLAN carrier is lost and there is defined
+ * 3G/gprs iap (or another available WLAN) in the destination
+ * being used.
+ *
+ * Client don't have to accept the changing of the iap. If client
+ * returns EFalse notifying it does not want to roam, then the
+ * iap will not be changed.
+ *
+ * This however might result in diconnecting, if the old iap is
+ * no longer available, like it would happen when WLAN carrier is lost
+ *
+ * @return TBool ETrue: roaming accepted, EFalse: Roaming not accepted
+ */
+ TBool RequestIsRoamingAllowedL();
+
+ /**
+ * This method is called by the vcxconnectionutility when
+ * there have been some change in the iap currently using:
+ *
+ * Connection lost: this happens when for example WLAN carrier
+ * is lost and there is no other iap to use to or when corresponding
+ * connection is closed by some other application.
+ *
+ * Iap change by the roaming: if client has accepted roaming
+ * vcxconnectionutility notifies about new iap is ready to use
+ *
+ * When client is being called by this method, it can request a
+ * iap id by calling CVcxConnectionUtility::GetIap-
+ */
+ void IapChangedL();
+
+ /**
+ * Return iap query status.
+ *
+ * @return ETrue if connection for service has been created or
+ * will be triggered via MIptvVodContentClientObserver
+ * interface, otherwise EFalse
+ */
+ TBool IapAsked( TUint32 aServiceId );
+
+ /**
+ * Set specified service iap query status.
+ *
+ * @param aServiceId the service id, that value is to be set.
+ * @param aSet Value to be set to iap asked flag
+ */
+ void SetIapAsked( TUint32 aServiceId, TBool aSet );
+
+private:
+
+
+ /**
+ * Constructor.
+ *
+ * @param aUiEngine Ui engine
+ * @param aConnUtil Connection util
+ */
+ CVcxNsContentClientHandler( CVcxNsUiEngine& aUiEngine,
+ CVcxConnectionUtility& aConnUtil );
+
+ /**
+ * Private 2nd phase construction.
+ */
+ void ConstructL();
+
+// Data
+
+ /**
+ * Pointers to VOD Content Clients.
+ * Own.
+ */
+ RPointerArray<CIptvVodContentClient> iVodContentClients;
+
+ /**
+ * Array of content client service id's.
+ */
+ RArray<TInt> iVodContentClientIds;
+
+ /**
+ * Array of flags, if the iap query is needed for service
+ * This must be set to ETrue by default. If user cancels in
+ * connection creation dialog, then set to EFalse
+ */
+ RArray<TBool> iIapAsked;
+
+ /**
+ * CVcxNsUiEngine
+ */
+ CVcxNsUiEngine& iUiEngine;
+
+ /**
+ * Reference to connection utility
+ */
+ CVcxConnectionUtility& iConnUtil;
+
+ };
+
+#endif /*VCXNSCONTENTCLIENTHANDLER_H_*/