mmlibs/mmfw/inc/mmf/ControllerFramework/mmfcontrollerextendeddata.h
changeset 0 b8ed18f6c07b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/inc/mmf/ControllerFramework/mmfcontrollerextendeddata.h	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,133 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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 __MMFCONTROLLEREXTENDEDDATA_H__
+#define __MMFCONTROLLEREXTENDEDDATA_H__
+
+#include <mmf/server/mmfdatasource.h>
+#include <mmf/server/mmfdatasink.h>
+#include <mmf/common/mmfcontrollerframework.h>
+#include <mmf/common/mmfcontrollerpluginresolver.h>
+#include <mmfplugininterfaceuids.hrh>
+
+#include <caf/caf.h>
+
+/**
+@internalComponent
+*/
+const TUid KUidInterfaceMMFDataSinkHolder = {0x101F76D4};
+/**
+@internalComponent
+*/
+const TUid KUidInterfaceMMFDataSourceHolder = {0x101F76D5};
+/**
+@internalComponent
+*/
+const TUid KUidMMFControllerExtendedDataHolder = {0x102834AC};
+
+/**
+@internalComponent
+
+Create a const TUid with the same values as the controller
+ECOM plugin interface UID
+*/
+const TUid KUidInterfaceMMFController = {KMmfUidPluginInterfaceController};
+
+/**
+@internalComponent
+
+IPC messages for interface KUidInterfaceMMFController in the controller framework.
+*/
+enum TMMFControllerMessages
+	{
+	EMMFControllerAddDataSource,
+	EMMFControllerAddDataSink,
+	EMMFControllerRemoveDataSource,
+	EMMFControllerRemoveDataSink,
+	EMMFControllerReset,
+	EMMFControllerPrime,
+	EMMFControllerPlay,
+	EMMFControllerPause,
+	EMMFControllerStop,
+	EMMFControllerGetPosition,
+	EMMFControllerSetPosition,
+	EMMFControllerGetDuration,
+	EMMFControllerGetNumberOfMetaDataEntries,
+	EMMFControllerGetSizeOfMetaDataEntry,//use internally
+	EMMFControllerGetMetaDataEntry,
+	EMMFControllerSetPrioritySettings,
+	EMMFControllerCancelAddDataSource,
+	EMMFControllerCancelAddDataSink,
+	EMMFControllerAddFileHandleDataSource,
+	EMMFControllerAddFileHandleDataSink,
+	EMMFControllerSourceSinkInitDataPreload,
+	EMMFControllerAddFileHandleDataSourceWithInitData,
+	EMMFControllerAddFileHandleDataSinkWithInitData
+	};
+
+/**
+@internalComponent
+
+The controller proxy session.
+
+Only one session can be connected to a controller proxy server.
+
+*/
+NONSHARABLE_CLASS(CMMFControllerExtendedData) : public CMMFObject
+	{
+public:
+	CMMFControllerExtendedData();
+	
+	~CMMFControllerExtendedData();
+	
+	// Set/Get the source/sink initialization data used by CMMFController
+	// Ownership of aSourceSinkInitData is transferred (NULL pointer is allow)
+	// If source/sink initialization data is already set, previous one will be destroyed
+	void SetSourceSinkInitData(HBufC8* aSourceSinkInitData);
+	HBufC8* SourceSinkInitData() const;
+	void ResetSourceSinkInitData();
+
+	// Set/Get the client thread ID used by CMMFController
+	void SetClientThreadId(TThreadId aClientThreadId);
+	TThreadId ClientThreadId() const;
+	
+	// Set/Get the Secure DRM mode of CMMFController
+	void SetSecureDrmMode(TBool aSecureDrmMode);
+	TBool SecureDrmMode() const;
+		
+	//from CMMFObject
+	void HandleRequest(TMMFMessage& aMessage);
+private:
+	/**
+	Extended data uses by CMMFController: Source/Sink initialization data
+	It serves as a temporary storage for Source/Sink initialization
+	Client should request the server to use and cleanup this variable ASAP
+	once it is being loaded
+	*/
+	HBufC8*	iSourceSinkInitData;
+	
+	/**
+	Extended data uses by CMMFController: The client thread Id
+	*/
+	TThreadId iClientThreadId;
+	
+	/**
+	Extended data uses by CMMFController: Controller Scecure DRM Mode
+	*/
+	TBool iSecureDrmMode;
+	};
+
+#endif //__MMFCONTROLLEREXTENDEDDATA_H__