diff -r 000000000000 -r b8ed18f6c07b mmlibs/mmfw/inc/mmf/ControllerFramework/mmfcontrollerextendeddata.h --- /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 +#include +#include +#include +#include + +#include + +/** +@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__