--- /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__