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