multimediacommsengine/mmceshared/inc/mceclientserver.h
changeset 0 1bce908db942
child 49 64c62431ac08
equal deleted inserted replaced
-1:000000000000 0:1bce908db942
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:    
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 
       
    23 #ifndef MCECLIENTSERVER_H
       
    24 #define MCECLIENTSERVER_H
       
    25 
       
    26 #include <e32std.h>
       
    27 #include "mcedefs.h"
       
    28 
       
    29 _LIT( KMceServerName,"mceserver" );
       
    30 _LIT( KMceServerFilename, "mceserver" ); 
       
    31 _LIT( KMceServerSemaphoreName, "MceServerSemaphore" );
       
    32 _LIT( KMceServerPanicString, "MceServer" );
       
    33 
       
    34 const TUid KServerUid3 = {0x1020E4C7};
       
    35 
       
    36 #if (defined (__WINS__) || defined(__WINSCW__))
       
    37 static const TUint KServerMinHeapSize =  0x1000;  //   4K
       
    38 static const TUint KServerMaxHeapSize = 0x80000;  // 512K 
       
    39 #endif
       
    40 
       
    41 class TMceCameraInfo;
       
    42 class TMceFileInfo;
       
    43 
       
    44 // The server version.
       
    45 // A version must be specifyed when creating a session with the server
       
    46 const TUint KMceServerMajorVersionNumber=0;
       
    47 const TUint KMceServerMinorVersionNumber=1;
       
    48 const TUint KMceServerBuildVersionNumber=1;
       
    49 
       
    50 const TUint32 KMceNotAssigned = (TUint32)KMaxTUint32;
       
    51 const TInt32 KMceNotAssignedInt = KMaxTInt32;
       
    52 const TUint KMceSecToMicrosec = 1000000;
       
    53 const TUint KMceSecToMillisec = 1000;
       
    54 
       
    55 //
       
    56 // callbacks
       
    57 enum TMceItcCallBack
       
    58     {
       
    59     EMceItcNotAssigned = KMaxTUint16,
       
    60     EMceItcStateChanged = 1,
       
    61     EMceItcObjectAdded = 2,
       
    62     EMceItcSessionConnectionStateChanged = 3,
       
    63     EMceItcSRReceived = 4,
       
    64     EMceItcRRReceived = 5,
       
    65     EMceItcInactivityTimeout = 6,
       
    66     EMceItcFCMsgReceived = 7,
       
    67     EMceItcFCErrorReceived = 8,
       
    68     EMceItcNotifyReceived = 9,
       
    69     EMceItcIncomingUpdate = 10,
       
    70     EMceItcUpdateFailed = 11,
       
    71     EMceItcActivity = 12,
       
    72     EMceItcInProgress = 13,
       
    73     EMceItcTranscodingInProgress = 14,
       
    74     EMceItcTranscodingCompleted = 15,
       
    75     EMceItcDtmfSendStarted = 16,
       
    76     EMceItcDtmfSendCompleted = 17,
       
    77     EMceItcDtmfSendError = 18,
       
    78     EMceItcLinkCreated = 19, 
       
    79     EMceItcResponseReceived = 20,
       
    80     EMceItcRequestReceived = 21
       
    81     };
       
    82 
       
    83 
       
    84 //data types
       
    85 enum TMceItcDataType
       
    86 	{
       
    87 	//basics
       
    88 	EMceItcMsgTypeWriteString,
       
    89 	EMceItcMsgTypeReadString,
       
    90 	EMceItcMsgTypeTextArray,
       
    91 	//structs
       
    92 	EMceItcMsgTypeSIPData,
       
    93 	EMceItcMsgTypeSIPReply,
       
    94 	EMceItcMsgTypeMessageArray,
       
    95 	EMceItcMsgTypeEvent,
       
    96 	EMceItcMsgTypeSIPRequest,
       
    97 	//objects
       
    98 	EMceItcMsgTypeSession,
       
    99 	EMceItcMsgTypeStream,
       
   100 	EMceItcMsgTypeSink,
       
   101 	EMceItcMsgTypeSource,
       
   102 	EMceItcMsgTypeCodec,
       
   103 	EMceItcMsgTypeFC
       
   104 	};
       
   105 
       
   106 enum TMceItcEventType
       
   107     {
       
   108     EMceItcEventTypeEither = -1,
       
   109     EMceItcEventTypeSubscribe = 1,
       
   110     EMceItcEventTypeRefer = 2
       
   111     };
       
   112 
       
   113 typedef TPckgBuf<TInt> TMceItcArgTInt;
       
   114 typedef TPckgBuf<TUint32> TMceItcArgTUint32;
       
   115 typedef TPckgBuf<TMceCameraInfo> TMceItcArgTCameraInfo;
       
   116 typedef TPckgBuf<TRect> TMceItcArgTRect;
       
   117 typedef TPckgBuf<TTimeIntervalMicroSeconds> TMceItcArgTime;
       
   118 typedef TPckgBuf<TMceFileInfo> TMceItcArgTFileInfo;
       
   119 
       
   120 typedef TUint32 TMceManagerType;
       
   121 typedef TUint32 TMceCsSessionType;
       
   122 typedef TUint32 TMceDialogType;
       
   123 
       
   124 const TMceCsSessionType KMceCSSIPSession = 1;
       
   125 const TMceCsSessionType KMceCSSIPEvent = 2;
       
   126 
       
   127 const TMceDialogType KMceDlgTypeInvite = 1;
       
   128 const TMceDialogType KMceDlgTypeRefer = 2;
       
   129 const TMceDialogType KMceDlgTypeSubscribe = 3;
       
   130 
       
   131 /*
       
   132  * media id
       
   133  *
       
   134  */
       
   135 class TMceMediaId
       
   136     {
       
   137 public:
       
   138 
       
   139 	inline TMceMediaId(): iAppId( KMceNotAssigned ), iId( KMceNotAssigned ) 
       
   140 	    {
       
   141 	    }
       
   142 
       
   143 	inline TMceMediaId( TUint32 aId ): iAppId( 0 ), iId( aId )
       
   144 	    {
       
   145 	    }
       
   146 	    
       
   147 	inline TMceMediaId( TUid aAppUid, TUint32 aId ): iAppId( aAppUid.iUid ), iId( aId )
       
   148 	    {
       
   149 	    }
       
   150 	    
       
   151     inline TBool operator==( const TMceMediaId aId ) const
       
   152         {
       
   153         return ( iAppId == aId.iAppId &&
       
   154                  iId == aId.iId );
       
   155         
       
   156         }
       
   157         
       
   158     inline TBool operator!=( const TMceMediaId aId ) const
       
   159         {
       
   160         return !( iAppId == aId.iAppId &&
       
   161                  iId == aId.iId );
       
   162         }
       
   163 
       
   164 
       
   165     inline TBool IsAssigned() const
       
   166         {
       
   167         return ( iAppId != KMceNotAssigned &&
       
   168                  iId != KMceNotAssigned );
       
   169         }
       
   170         
       
   171     inline TUint64 Uint64() const
       
   172         {
       
   173         return MAKE_TUINT64( iAppId, iId );
       
   174         }
       
   175         
       
   176     
       
   177 public:
       
   178 
       
   179     TUint32 iAppId;
       
   180     TUint32 iId;
       
   181     
       
   182     };
       
   183 
       
   184 #define KMceMediaIdNotAssigned TMceMediaId()
       
   185 
       
   186 const TInt KMceArrayIndexOriginator = 0;
       
   187 const TInt KMceArrayIndexRecipient = 1;
       
   188 const TInt KMceArrayIndexIAPId = 2;
       
   189 
       
   190 const TInt KMceArrayIndexEventHeader = 0;
       
   191 const TInt KMceArrayIndexEventReferTo = 0;
       
   192 const TInt KMceArrayIndexEventRemoteURI = 1;
       
   193 const TInt KMceArrayIndexEventOriginator = 2;
       
   194 
       
   195 const TInt KMceIDsMaxIndex = 12;
       
   196 const TInt KMceIDsLastReservedIndex = 9;
       
   197 
       
   198 #define MCEIDS_DEFINE_SPARE_INDEX_1( name )\
       
   199     const TInt name = KMceIDsLastReservedIndex + 1
       
   200 
       
   201 #define MCEIDS_DEFINE_SPARE_INDEX_2( name )\
       
   202     const TInt name = KMceIDsLastReservedIndex + 2
       
   203 
       
   204 #define MCEIDS_DEFINE_SPARE_INDEX_3( name )\
       
   205     const TInt name = KMceIDsLastReservedIndex + 3
       
   206 
       
   207 //#define MCEIDS_DEFINE_SPARE_INDEX_4( name )\
       
   208 //    const TInt name = KMceIDsLastReservedIndex + 4
       
   209     
       
   210 
       
   211 MCEIDS_DEFINE_SPARE_INDEX_1( KMceIdsIndexFCPort );
       
   212 MCEIDS_DEFINE_SPARE_INDEX_1( KMceIdsIndexTCId );
       
   213 
       
   214 #define MCE_ENCODE_DOUBLE_STATE( state1, state2 ) \
       
   215 ( ( (TUint8)state1 ) << 8 ) | (TUint8)state2 & 0x0000FFFF
       
   216 
       
   217 #define MCE_DECODE_DOUBLE_STATE( doubleState, state1, state2 ) \
       
   218 state2 = doubleState & 0x000000FF;\
       
   219 state1 = ( ( doubleState & 0x0000FFFF ) >> 8 ) & 0x000000FF
       
   220 
       
   221 #define MCE_IDS_ITC_CONTEXT( ids ) \
       
   222     reinterpret_cast<const RMessage2*>( ids.iItcContext )
       
   223 
       
   224 // A container for MCE IDs
       
   225 
       
   226 class TMceIds
       
   227 	{
       
   228 public:
       
   229 
       
   230 	inline TMceIds()
       
   231 		: iAppUID(KMceNotAssigned),
       
   232 		  iManagerType( KMceNotAssigned ),
       
   233 		  iSessionID(KMceNotAssigned),
       
   234 		  iDialogID(KMceNotAssigned),
       
   235 		  iDialogType(KMceNotAssigned),
       
   236 		  iProfileID(KMceNotAssigned),
       
   237 		  iCallbackID( KMceNotAssigned ),
       
   238 		  iMsgType(KMceNotAssigned),
       
   239 		  iState(KMceNotAssigned),
       
   240 		  iTransactionID(KMceNotAssigned),
       
   241           iSpare1(KMceNotAssigned),
       
   242           iSpare2(KMceNotAssigned),
       
   243           iSpare3(KMceNotAssigned),
       
   244           iSecureFlag(EFalse),
       
   245           iStatus( KErrNone ),
       
   246           iMediaID(KMceMediaIdNotAssigned),
       
   247 		  iSourceID(KMceMediaIdNotAssigned),
       
   248 		  iSinkID(KMceMediaIdNotAssigned),
       
   249 		  iCodecID(KMceMediaIdNotAssigned),
       
   250 		  iItcContext( NULL ) {}
       
   251 
       
   252 /*	inline TMceIds(const TMceIds& aIds)
       
   253 		: iAppUID(aIds.iAppUID),
       
   254 		  iManagerType( aIds.iManagerType ),
       
   255 		  iSessionID(aIds.iSessionID),
       
   256 		  iDialogID(aIds.iDialogID),
       
   257 		  iDialogType(aIds.iDialogType),
       
   258 		  iProfileID( aIds.iProfileID),
       
   259 		  iCallbackID(aIds.iCallbackID),
       
   260 		  iMsgType(aIds.iMsgType),
       
   261 		  iState(aIds.iState),
       
   262 		  iSpare1(aIds.iSpare1),
       
   263 		  iSpare2(aIds.iSpare2),
       
   264 		  iSpare3(aIds.iSpare3),
       
   265 		  iSecureFlag(aIds.iSecureFlag),
       
   266 		  iStatus(aIds.iStatus),
       
   267           iMediaID(aIds.iMediaID),
       
   268 		  iSourceID(aIds.iSourceID),
       
   269 		  iSinkID(aIds.iSinkID),
       
   270 		  iCodecID(aIds.iCodecID),
       
   271 		  iItcContext( aIds.iItcContext )
       
   272 		  {
       
   273 		  Mem::Copy(this, &aIds, sizeof(TMceIds));
       
   274 		  }
       
   275 */
       
   276  
       
   277     inline TBool IsAppUIDId() const
       
   278         {
       
   279         return (
       
   280             iAppUID != KMceNotAssigned &&
       
   281             iSessionID == KMceNotAssigned );
       
   282         }
       
   283 
       
   284     inline TBool IsSessionId() const
       
   285         {
       
   286         return (
       
   287             iSessionID != KMceNotAssigned &&
       
   288             iMediaID == KMceMediaIdNotAssigned );
       
   289         }
       
   290 
       
   291     inline TBool IsMediaId() const
       
   292         {
       
   293         return (
       
   294             iMediaID != KMceMediaIdNotAssigned &&
       
   295             ( iSourceID == KMceMediaIdNotAssigned && 
       
   296               iSinkID == KMceMediaIdNotAssigned && 
       
   297               iCodecID == KMceMediaIdNotAssigned ) );
       
   298         }
       
   299 
       
   300     inline TBool IsSourceId() const
       
   301         {
       
   302         return (
       
   303             iSourceID != KMceMediaIdNotAssigned &&
       
   304             iSinkID == KMceMediaIdNotAssigned && 
       
   305             iCodecID == KMceMediaIdNotAssigned );
       
   306         }
       
   307 
       
   308     inline TBool IsSinkId() const
       
   309         {
       
   310         return (
       
   311             iSinkID != KMceMediaIdNotAssigned &&
       
   312             iSourceID == KMceMediaIdNotAssigned &&
       
   313             iCodecID == KMceMediaIdNotAssigned );
       
   314         }
       
   315 
       
   316     inline TBool IsCodecId() const
       
   317         {
       
   318         return (
       
   319             iCodecID != KMceMediaIdNotAssigned &&
       
   320             iSourceID == KMceMediaIdNotAssigned &&
       
   321             iSinkID == KMceMediaIdNotAssigned );
       
   322         }
       
   323 
       
   324     inline void Set( TInt aIndex, TUint32 aValue )
       
   325         {
       
   326         __ASSERT_ALWAYS( aIndex <= KMceIDsMaxIndex, 
       
   327                          User::Panic( KMceServerPanicString, KErrArgument ) );
       
   328         TUint32* id = (TUint32*)this;
       
   329         id = id + aIndex;
       
   330         *id = aValue;
       
   331         }
       
   332 
       
   333     inline TUint32 Get( TInt aIndex )
       
   334         {
       
   335         __ASSERT_ALWAYS( aIndex <= KMceIDsMaxIndex, 
       
   336                          User::Panic( KMceServerPanicString, KErrArgument ) );
       
   337         TUint32* id = (TUint32*)this;
       
   338         id = id + aIndex;
       
   339         return *id;
       
   340         }
       
   341         
       
   342 
       
   343     inline void Copy( const TMceIds& aIds )
       
   344         {
       
   345         iAppUID = aIds.iAppUID != KMceNotAssigned ? aIds.iAppUID : iAppUID;
       
   346         iManagerType = aIds.iManagerType != KMceNotAssigned ? aIds.iManagerType : iManagerType;
       
   347         iSessionID = aIds.iSessionID != KMceNotAssigned ? aIds.iSessionID : iSessionID;
       
   348         iDialogID = aIds.iDialogID != KMceNotAssigned ? aIds.iDialogID : iDialogID;
       
   349         iDialogType = aIds.iDialogType != KMceNotAssigned ? aIds.iDialogType : iDialogType;
       
   350         iProfileID = aIds.iProfileID != KMceNotAssigned ? aIds.iProfileID : iProfileID;
       
   351         iCallbackID = aIds.iCallbackID;
       
   352         iMsgType = aIds.iMsgType;
       
   353         iState = aIds.iState;
       
   354         iTransactionID = aIds.iTransactionID; 
       
   355         iSpare1 = aIds.iSpare1;
       
   356         iSpare2 = aIds.iSpare2;
       
   357         iSpare3 = aIds.iSpare3;
       
   358         iSecureFlag= aIds.iSecureFlag;
       
   359         iStatus = aIds.iStatus;
       
   360         iMediaID = aIds.iMediaID;
       
   361         iSourceID = aIds.iSourceID;
       
   362         iSinkID = aIds.iSinkID;
       
   363         iCodecID = aIds.iCodecID;
       
   364         }
       
   365         
       
   366 public://data
       
   367 
       
   368     TUint32     iAppUID;     //0
       
   369     TUint32     iManagerType;//1
       
   370     TUint32     iSessionID;  //2
       
   371     TUint32     iDialogID;   //3
       
   372     TUint32     iDialogType; //4
       
   373     TUint32     iProfileID;  //5
       
   374 	TUint32     iCallbackID; //6
       
   375     TUint32     iMsgType;    //7
       
   376     TUint32     iState;      //8
       
   377     TMceTransactionId iTransactionID; //9   KMceIDsLastReservedIndex
       
   378     TUint32     iSpare1;              //10  first spare index
       
   379     TUint32     iSpare2;              //11
       
   380     TUint32     iSpare3;              //12  KMceIDsMaxIndex
       
   381     TBool     	iSecureFlag;          //13
       
   382     TInt        iStatus;
       
   383 	TMceMediaId iMediaID;
       
   384 	TMceMediaId iSourceID;
       
   385 	TMceMediaId iSinkID;
       
   386 	TMceMediaId iCodecID;	
       
   387 	const TAny*	iItcContext;
       
   388 	};
       
   389 
       
   390 
       
   391 // A container for incoming buffer sizes
       
   392 class TMceMessageBufSizes
       
   393     {
       
   394 public:
       
   395 
       
   396     inline TMceMessageBufSizes()
       
   397         : iContextBufSize( KErrNotFound ),
       
   398           iContentBufSize( KErrNotFound ) {}
       
   399             
       
   400 
       
   401     inline TMceMessageBufSizes( TInt aContextBufSize, TInt aContentBufSize )
       
   402         : iContextBufSize( aContextBufSize ),
       
   403           iContentBufSize( aContentBufSize ) {}
       
   404 
       
   405 	inline TMceMessageBufSizes(const TMceMessageBufSizes& aSizes)
       
   406         : iContextBufSize(aSizes.iContextBufSize),
       
   407           iContentBufSize(aSizes.iContentBufSize) {}
       
   408 
       
   409     TInt iContextBufSize;
       
   410     TInt iContentBufSize;
       
   411     };
       
   412     
       
   413     
       
   414 	
       
   415 // Oper. codes used in passing IPC messages between C/S-client and C/S-server
       
   416 // To these IPC messages are refered in MCE server security policy file 
       
   417 // mcecsplatsecpolicy.h
       
   418 enum TMceItcFunctions
       
   419 	{
       
   420 	EMceItcSetAppUid,               //0 (AlwaysPass)
       
   421 	EMceItcCreateSession,           //1 (NetworkServices)
       
   422 	EMceItcDeleteSession,           //2 (NetworkServices)
       
   423 	EMceItcSetDefaultHeaders,       //3 (NetworkServices)
       
   424 	EMceItcGetDefaultHeaders,       //4 (NetworkServices)
       
   425 	EMceItcEstablishSession,        //5 (NetworkServices)
       
   426 	EMceItcTerminateSession,        //6 (NetworkServices)
       
   427 	EMceItcAcceptSession,           //7 (NetworkServices)
       
   428 	EMceItcRejectSession,           //8 (NetworkServices)
       
   429 	EMceItcUpdate,                  //9 (NetworkServices)
       
   430 	EMceItcRing,                    //10 (NetworkServices)
       
   431 	EMceItcEnable,                  //11 (NetworkServices)
       
   432 	EMceItcDisable,                 //12 (NetworkServices)
       
   433 	EMceItcSendRR,                  //13 (NetworkServices)
       
   434 	EMceItcSendSR,                  //14 (NetworkServices)
       
   435 	EMceItcReceive,                 //15 (AlwaysPass)
       
   436 	EMceItcClientReadyToReceive,    //16 (AlwaysPass)
       
   437 	EMceItcCancel,                  //17 (AlwaysPass)
       
   438 	EMceItcClientCancelReceive,     //18 (AlwaysPass)
       
   439 	EMceItcInitFC,                  //19 (AlwaysPass)
       
   440 	EMceItcUpdateFC,                //20 (AlwaysPass)
       
   441 	EMceItcSendFCMsg,               //21 (NetworkServices)
       
   442 	EMceItcFCGetMediaLines,         //22 (AlwaysPass)
       
   443 	EMceItcFCSetMediaLines,         //23 (AlwaysPass)
       
   444 	EMceItcGetSupportedAudioCodecs, //24 (AlwaysPass)
       
   445 	EMceItcSubscribe,               //25 (NetworkServices)
       
   446 	EMceItcSubscribeUpdate,         //26 (NetworkServices)
       
   447 	EMceItcAcceptEvent,             //27 (NetworkServices)
       
   448 	EMceItcRejectEvent,             //28 (NetworkServices)
       
   449 	EMceItcRespondEvent,            //29 (NetworkServices)
       
   450 	EMceItcTerminateEvent,          //30 (NetworkServices)
       
   451 	EMceItcNotify,                  //31 (NetworkServices)
       
   452 	EMceItcReferEvent,              //32 (NetworkServices)
       
   453 	EMceItcSetVolume,               //33 (WriteDeviceData)
       
   454 	EMceItcVolume,                  //34 (AlwaysPass)
       
   455 	EMceItcMaxVolume,               //35 (AlwaysPass) 
       
   456 	EMceItcSetGain,                 //36 (WriteDeviceData)
       
   457 	EMceItcGain,                    //37 (AlwaysPass)
       
   458 	EMceItcMaxGain,                 //38 (AlwaysPass)
       
   459 	EMceItcEnableInactivityTimer,   //39 (AlwaysPass)
       
   460     EMceItcDisableInactivityTimer,  //40 (AlwaysPass)
       
   461     EMceItcGetSession,              //41 (AlwaysPass)
       
   462     EMceItcCameraInfo,              //42 (MultimediaDD)
       
   463     EMceItcCamerasAvailable,        //43 (MultimediaDD)
       
   464     EMceItcZoomFactor,              //44 (MultimediaDD)
       
   465     EMceItcDigitalZoomFactor,       //45 (MultimediaDD)
       
   466     EMceItcContrast,                //46 (MultimediaDD)
       
   467     EMceItcBrightness,              //47 (MultimediaDD)
       
   468     EMceItcExposure,                //48 (MultimediaDD)
       
   469     EMceItcWhiteBalance,            //49 (MultimediaDD)
       
   470     EMceItcDisplaysAvailable,       //50 (AlwaysPass)
       
   471     EMceItcDisplayRect,             //51 (AlwaysPass)
       
   472     EMceItcDisplayPriority,         //52 (AlwaysPass)
       
   473     EMceItcFileInfo,                //53 (AlwaysPass)
       
   474     EMceItcFilePosition,            //54 (AlwaysPass)
       
   475     EMceItcSetCameraIndex,          //55 (AlwaysPass)
       
   476     EMceItcSetZoomFactor,           //56 (AlwaysPass)
       
   477     EMceItcSetDigitalZoomFactor,    //57 (AlwaysPass)
       
   478     EMceItcSetContrast,             //58 (AlwaysPass)
       
   479     EMceItcSetBrightness,           //59 (AlwaysPass)
       
   480     EMceItcSetExposure,             //60 (AlwaysPass)
       
   481     EMceItcSetWhiteBalance,         //61 (AlwaysPass)
       
   482     EMceItcSetDisplayIndex,         //62 (AlwaysPass)
       
   483     EMceItcSetDisplayRect,          //63 (AlwaysPass)
       
   484     EMceItcSetDisplayPriority,      //64 (AlwaysPass)
       
   485     EMceItcSetAudioRouting,         //65 (AlwaysPass)
       
   486     EMceItcSetFilePosition,         //66 (AlwaysPass)
       
   487     EMceItcSetFastForward,          //67 (AlwaysPass)
       
   488     EMceItcSetFastRewind,           //68 (AlwaysPass)
       
   489     EMceItcGetSupportedVideoCodecs, //69 (AlwaysPass)
       
   490     EMceItcAudioRouting,            //70 (AlwaysPass)
       
   491     EMceItcSetFileInfo,             //71 (AlwaysPass)
       
   492     EMceItcTranscode,               //72 (AlwaysPass)
       
   493     EMceItcCancelTranscode,         //73 (AlwaysPass)
       
   494     EMceItcDisplayRotation,         //74 (AlwaysPass)
       
   495     EMceItcSetDisplayRotation,      //75 (AlwaysPass)
       
   496     EMceItcCallInQueue,             //76 (AlwaysPass)
       
   497     EMceItcIsDtmfActive,            //77 (AlwaysPass)
       
   498     EMceItcStartDtmfTone,           //78 (AlwaysPass)
       
   499     EMceItcStopDtmfTone,            //79 (AlwaysPass)
       
   500     EMceItcSendDtmfTone,            //80 (AlwaysPass)
       
   501     EMceItcSendDtmfToneSequence,    //81 (AlwaysPass)
       
   502     EMceItcCancelSendDtmfToneSequence,   //82 (AlwaysPass)
       
   503     EMceItcRequestSend,							// 83 (AlwaysPass) 
       
   504     EMceItcReplySend,								// 84 (AlwaysPass) 
       
   505     EMceItcTranscodeWithSession                // 85 (AlwaysPass) 
       
   506     };	
       
   507 
       
   508 
       
   509 // Indexes used in ITC parameter array passed between C/S-client and C/S-server
       
   510 //
       
   511 // All the parameters except TMceItcArguments are packed into package buffers
       
   512 // to enable ITC parameter in-out behaviour.
       
   513 //
       
   514 // NOTE: Remember to update the types in comments if the actual types change.
       
   515 //
       
   516 enum TMceItcArguments
       
   517 	{
       
   518     EMceItcArgIds = 0,               // Type: TMceIds
       
   519     EMceItcArgContext = 1,
       
   520     EMceItcArgAppUid = 1,            // Type: TInt
       
   521     EMceItcArgId = 1,                // Type: TUint32
       
   522     EMceItcArgBufSizes = 1,          // Type: TMceMessageBufSizes
       
   523     EMceItcArgMessageContent = 2,    // Type: TDes8/TDesC8
       
   524 	};
       
   525 	
       
   526 
       
   527 #define MCE_ENDPOINT_ITC_ALLOWED( endpoint )\
       
   528     ( (endpoint).Id().IsAssigned() &&\
       
   529       (endpoint).iStream &&\
       
   530       (endpoint).iStream->Session() &&\
       
   531       (endpoint).iStream->Session()->State() != CMceSession::EIdle &&\
       
   532       (endpoint).iStream->Session()->State() != CMceSession::EIncoming )
       
   533 
       
   534 
       
   535 #endif // MCECLIENTSERVER_H
       
   536 
       
   537 // End of File