os/mm/mmlibs/mmfw/inc/mmf/ControllerFramework/mmfcontrollerextendeddata.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 
    17 #ifndef __MMFCONTROLLEREXTENDEDDATA_H__
    18 #define __MMFCONTROLLEREXTENDEDDATA_H__
    19 
    20 #include <mmf/server/mmfdatasource.h>
    21 #include <mmf/server/mmfdatasink.h>
    22 #include <mmf/common/mmfcontrollerframework.h>
    23 #include <mmf/common/mmfcontrollerpluginresolver.h>
    24 #include <mmfplugininterfaceuids.hrh>
    25 
    26 #include <caf/caf.h>
    27 
    28 /**
    29 @internalComponent
    30 */
    31 const TUid KUidInterfaceMMFDataSinkHolder = {0x101F76D4};
    32 /**
    33 @internalComponent
    34 */
    35 const TUid KUidInterfaceMMFDataSourceHolder = {0x101F76D5};
    36 /**
    37 @internalComponent
    38 */
    39 const TUid KUidMMFControllerExtendedDataHolder = {0x102834AC};
    40 
    41 /**
    42 @internalComponent
    43 
    44 Create a const TUid with the same values as the controller
    45 ECOM plugin interface UID
    46 */
    47 const TUid KUidInterfaceMMFController = {KMmfUidPluginInterfaceController};
    48 
    49 /**
    50 @internalComponent
    51 
    52 IPC messages for interface KUidInterfaceMMFController in the controller framework.
    53 */
    54 enum TMMFControllerMessages
    55 	{
    56 	EMMFControllerAddDataSource,
    57 	EMMFControllerAddDataSink,
    58 	EMMFControllerRemoveDataSource,
    59 	EMMFControllerRemoveDataSink,
    60 	EMMFControllerReset,
    61 	EMMFControllerPrime,
    62 	EMMFControllerPlay,
    63 	EMMFControllerPause,
    64 	EMMFControllerStop,
    65 	EMMFControllerGetPosition,
    66 	EMMFControllerSetPosition,
    67 	EMMFControllerGetDuration,
    68 	EMMFControllerGetNumberOfMetaDataEntries,
    69 	EMMFControllerGetSizeOfMetaDataEntry,//use internally
    70 	EMMFControllerGetMetaDataEntry,
    71 	EMMFControllerSetPrioritySettings,
    72 	EMMFControllerCancelAddDataSource,
    73 	EMMFControllerCancelAddDataSink,
    74 	EMMFControllerAddFileHandleDataSource,
    75 	EMMFControllerAddFileHandleDataSink,
    76 	EMMFControllerSourceSinkInitDataPreload,
    77 	EMMFControllerAddFileHandleDataSourceWithInitData,
    78 	EMMFControllerAddFileHandleDataSinkWithInitData
    79 	};
    80 
    81 /**
    82 @internalComponent
    83 
    84 The controller proxy session.
    85 
    86 Only one session can be connected to a controller proxy server.
    87 
    88 */
    89 NONSHARABLE_CLASS(CMMFControllerExtendedData) : public CMMFObject
    90 	{
    91 public:
    92 	CMMFControllerExtendedData();
    93 	
    94 	~CMMFControllerExtendedData();
    95 	
    96 	// Set/Get the source/sink initialization data used by CMMFController
    97 	// Ownership of aSourceSinkInitData is transferred (NULL pointer is allow)
    98 	// If source/sink initialization data is already set, previous one will be destroyed
    99 	void SetSourceSinkInitData(HBufC8* aSourceSinkInitData);
   100 	HBufC8* SourceSinkInitData() const;
   101 	void ResetSourceSinkInitData();
   102 
   103 	// Set/Get the client thread ID used by CMMFController
   104 	void SetClientThreadId(TThreadId aClientThreadId);
   105 	TThreadId ClientThreadId() const;
   106 	
   107 	// Set/Get the Secure DRM mode of CMMFController
   108 	void SetSecureDrmMode(TBool aSecureDrmMode);
   109 	TBool SecureDrmMode() const;
   110 		
   111 	//from CMMFObject
   112 	void HandleRequest(TMMFMessage& aMessage);
   113 private:
   114 	/**
   115 	Extended data uses by CMMFController: Source/Sink initialization data
   116 	It serves as a temporary storage for Source/Sink initialization
   117 	Client should request the server to use and cleanup this variable ASAP
   118 	once it is being loaded
   119 	*/
   120 	HBufC8*	iSourceSinkInitData;
   121 	
   122 	/**
   123 	Extended data uses by CMMFController: The client thread Id
   124 	*/
   125 	TThreadId iClientThreadId;
   126 	
   127 	/**
   128 	Extended data uses by CMMFController: Controller Scecure DRM Mode
   129 	*/
   130 	TBool iSecureDrmMode;
   131 	};
   132 
   133 #endif //__MMFCONTROLLEREXTENDEDDATA_H__