|
1 /* |
|
2 * Copyright (c) 2004 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: Provides interface for UL/DL subthread clients |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 #ifndef MCCULDLCLIENT_H |
|
22 #define MCCULDLCLIENT_H |
|
23 |
|
24 // INCLUDES |
|
25 #include <mmf/common/mmfbase.h> |
|
26 #include <mmf/common/mmfutilities.h> |
|
27 #include "rtpapi.h" |
|
28 #include "rtpdef.h" |
|
29 #include "mmccinterfacedef.h" |
|
30 #include "mccinternaldef.h" |
|
31 |
|
32 // CONSTANTS |
|
33 |
|
34 // MACROS |
|
35 |
|
36 // DATA TYPES |
|
37 |
|
38 // FUNCTION PROTOTYPES |
|
39 |
|
40 // FORWARD DECLARATIONS |
|
41 class CMccSubThreadClientBase; |
|
42 class CMccUlSubThreadClient; |
|
43 class CMccDlSubThreadClient; |
|
44 class MDataSource; |
|
45 class MDataSink; |
|
46 class CMccDTMFClient; |
|
47 class CMccSymSubthreadClient; |
|
48 class MMccEventHandler; |
|
49 class TMccCodecInfo; |
|
50 class TMccEvent; |
|
51 class MMccResources; |
|
52 class CMccRtpMediaClock; |
|
53 class TMccCryptoContext; |
|
54 |
|
55 // CLASS DECLARATION |
|
56 |
|
57 /** |
|
58 * Mcc Uplink/Downlink client interface |
|
59 * |
|
60 * @lib Mccsubthreads.lib |
|
61 * @since Series 60 3.0 |
|
62 */ |
|
63 class CMccUlDlClient : public CBase, public MMccEventHandler |
|
64 { |
|
65 public: // Constructors and destructor |
|
66 |
|
67 /** |
|
68 * Two-phased constructor. |
|
69 */ |
|
70 IMPORT_C static CMccUlDlClient* NewL( MMccEventHandler* aMccEventHandler, |
|
71 MMccResources* aMccResources, |
|
72 TUint32 aSessionId ); |
|
73 /** |
|
74 * Destructor. |
|
75 */ |
|
76 IMPORT_C virtual ~CMccUlDlClient(); |
|
77 |
|
78 public: // New functions |
|
79 |
|
80 |
|
81 IMPORT_C static void GetCodecDefaultsL( const TUid aType, |
|
82 TDes8& aParam, |
|
83 TMccCodecInfo& aCodec ); |
|
84 |
|
85 /** |
|
86 * Gets the gain of current stream |
|
87 * @since Series 60 3.0 |
|
88 * @param [input] aLinkId Link location in the array |
|
89 * @param [input] aStreamId ID of the stream |
|
90 * @param [output] aGain Return value of the current gain |
|
91 * @return TInt System wide error code |
|
92 */ |
|
93 IMPORT_C TInt GetGainL( const TUint32 aLinkId, |
|
94 const TUint32 aStreamId, |
|
95 TInt& aGain ); |
|
96 /** |
|
97 * Sets the gain for ul client |
|
98 * @since Series 60 3.0 |
|
99 * @param [input] aGain The wanted gain value |
|
100 * @return TInt System wide error code |
|
101 */ |
|
102 IMPORT_C TInt SetGainL( TInt aGain ); |
|
103 /** |
|
104 * Returns the maximum gain of current stream |
|
105 * @since Series 60 3.0 |
|
106 * @param [input] aLinkId Link location in the array |
|
107 * @param [input] aStreamId ID of the stream |
|
108 * @param [output] aMaxGain Value of the maximum gain |
|
109 * @return System wide error code |
|
110 */ |
|
111 IMPORT_C void MaxGainL( const TUint32 aLinkId, |
|
112 const TUint32 aStreamId, |
|
113 TInt& aMaxGain ); |
|
114 |
|
115 /** |
|
116 * Sets the volume for current stream |
|
117 * @since Series 60 3.0 |
|
118 * @param [input] aVolume Value for the current volume |
|
119 * @return System wide error code |
|
120 */ |
|
121 IMPORT_C TInt SetVolumeL( TInt aVolume ); |
|
122 |
|
123 /** |
|
124 * Returns the maximum volume for current stream |
|
125 * @since Series 60 3.0 |
|
126 * @param [input] aLinkId Link location in the array |
|
127 * @param [input] aStreamId ID of the stream |
|
128 * @param [output] aMaxVolume Return value of the maximum volume |
|
129 * @return TInt System wide error code |
|
130 */ |
|
131 IMPORT_C void MaxVolumeL( const TUint32 aLinkId, |
|
132 const TUint32 aStreamId, |
|
133 TInt& aMaxVolume ); |
|
134 /** |
|
135 * Returns the used codec |
|
136 * @since Series 60 3.0 |
|
137 * @param [input] aLinkId Link location in the array |
|
138 * @param [input] aStreamId ID of the stream |
|
139 * @param [output] aCodec Codec information struct containing codec info |
|
140 * @return void |
|
141 */ |
|
142 IMPORT_C void GetCodecL( const TUint32 aLinkId, |
|
143 const TUint32 aStreamId, |
|
144 TMccCodecInfo& aCodec ); |
|
145 |
|
146 /** |
|
147 * Returns the fmtp |
|
148 * @since Series 60 3.0 |
|
149 * @param [input] aLinkId Link location in the array |
|
150 * @param [input] aStreamId ID of the stream |
|
151 * @return the fmtp string for the link |
|
152 */ |
|
153 IMPORT_C void GetFmtpAttrL( const TUint32 aLinkId, |
|
154 const TUint32 aStreamId, |
|
155 TDes8& aFmtp ); |
|
156 |
|
157 /** |
|
158 * Sets the stream priority |
|
159 * @since Series 60 3.0 |
|
160 * @param [input] aLinkId Link location in the array |
|
161 * @param [input] aStreamId ID of the stream |
|
162 * @param [input] aPrioritySettings An object that holds the |
|
163 * audio client's priority and device state settings. |
|
164 * @return TInt System wide error code |
|
165 */ |
|
166 IMPORT_C TInt SetPriorityL( const TUint32 aLinkId, |
|
167 const TUint32 aStreamId, |
|
168 TMMFPrioritySettings aPrioritySettings ); |
|
169 /** |
|
170 * Opens the ul or dl client subthread |
|
171 * @since Series 60 3.0 |
|
172 * @param [input] aLinkId Link ID |
|
173 * @param [input] aStreamId unique id for the stream |
|
174 * @param [input] aStreamType The desired stream type |
|
175 * @param [input] aFourCC the fourCC code of the desired codec |
|
176 * @param [input] aDataSource Data source of the client |
|
177 * @param [input] aSink Data sink of the client |
|
178 * @param [input] aSettings MMF settings |
|
179 * @leave System-wide error code if unsuccessful |
|
180 * @return void |
|
181 */ |
|
182 IMPORT_C void OpenL( const TUint32 aLinkIdId, |
|
183 const TUint32 aStreamId, |
|
184 TInt aStreamType, |
|
185 TFourCC aFourCC, |
|
186 MDataSource* aDataSource, |
|
187 MDataSink* aSink, |
|
188 TMMFPrioritySettings aSettings ); |
|
189 |
|
190 /** |
|
191 * Prepares ul/dl streams |
|
192 * @since Series 60 3.0 |
|
193 * @param [input] aLinkId Link location in the array |
|
194 * @param [input] aStreamId ID of the stream |
|
195 * @leave System wide error code if unsuccessful |
|
196 * @return None |
|
197 */ |
|
198 IMPORT_C void PrepareL( const TUint32 aLinkId, |
|
199 const TUint32 aStreamId, |
|
200 const TUint32 aEndpointId ); |
|
201 |
|
202 /** |
|
203 * Plays ul/dl streams |
|
204 * @since Series 60 3.0 |
|
205 * @param [input] aLinkId Link location in the array |
|
206 * @param [input] aStreamId ID of the stream |
|
207 * @leave System wide error code if unsuccessful |
|
208 * @return None |
|
209 */ |
|
210 IMPORT_C void PlayL( const TUint32 aLinkId, |
|
211 const TUint32 aStreamId, |
|
212 const TUint32 aEndpointId, |
|
213 const TBool aStreamPaused, |
|
214 const TBool aEnableRTCP ); |
|
215 |
|
216 /** |
|
217 * Pauses ul/dl streams |
|
218 * @since Series 60 3.0 |
|
219 * @param [input] aLinkId Link location in the array |
|
220 * @param [input] aStreamId ID of the stream |
|
221 * @param [input] aEnableRTCP ETrue if automatic RTCP sending should be |
|
222 * enabled when the stream is paused |
|
223 * @leave System wide error code if unsuccessful |
|
224 * @return None |
|
225 */ |
|
226 IMPORT_C void PauseL( const TUint32 aLinkId, |
|
227 const TUint32 aStreamId, |
|
228 const TUint32 aEndpointId, |
|
229 const TBool aEnableRTCP ); |
|
230 |
|
231 /** |
|
232 * Stops ul/dl streams |
|
233 * @since Series 60 3.0 |
|
234 * @param [input] aLinkId Link location in the array |
|
235 * @param [input] aStreamId ID of the stream |
|
236 * @return TInt System wide error code |
|
237 */ |
|
238 IMPORT_C void StopL( const TUint32 aLinkId, |
|
239 const TUint32 aStreamId, |
|
240 const TUint32 aEndpointId ); |
|
241 |
|
242 /** |
|
243 * Resumes ul/dl streams |
|
244 * @since Series 60 3.0 |
|
245 * @param [input] aLinkId Link location in the array |
|
246 * @param [input] aStreamId ID of the stream |
|
247 * @param [input] aEnableRTCP ETrue if automatic RTCP sending should be |
|
248 * enabled when the stream is paused |
|
249 * @leave System wide error code if unsuccessful |
|
250 * @return None |
|
251 */ |
|
252 IMPORT_C void ResumeL( const TUint32 aLinkId, |
|
253 const TUint32 aStreamId, |
|
254 const TUint32 aEndpointId, |
|
255 const TBool aEnableRTCP ); |
|
256 |
|
257 /** |
|
258 * Checks if link contais stream |
|
259 * @since Series 60 3.0 |
|
260 * @param [input] aLinkId Link location in the array |
|
261 * @leave System wide error code if unsuccessful |
|
262 * @return ETrue, if streams exists |
|
263 */ |
|
264 IMPORT_C TBool StreamsExistsL( const TUint32 aLinkId ); |
|
265 |
|
266 /** |
|
267 * Returns the play balance |
|
268 * @since Series 60 3.0 |
|
269 * @param [input] aLinkId Link location in the array |
|
270 * @param [output] aLeftBalance Value for the left balance |
|
271 * @param [output] aRightBalance Value for the right balance |
|
272 * @return System wide error code |
|
273 */ |
|
274 IMPORT_C TInt GetPlayBalanceL( const TUint32 aLinkId, |
|
275 const TUint32 aStreamId, |
|
276 TInt& aLeftBalance, |
|
277 TInt& aRightBalance ); |
|
278 |
|
279 /** |
|
280 * Returns the record balance |
|
281 * @since Series 60 3.0 |
|
282 * @param [input] aLinkId Link location in the array |
|
283 * @param [input] aStreamId ID of the stream |
|
284 * @param [output] aLeftBalance Value for the left balance |
|
285 * @param [output] aRightBalance Value for the right balance |
|
286 * @return System wide error code |
|
287 */ |
|
288 IMPORT_C TInt GetRecordBalanceL( const TUint32 aLinkId, |
|
289 const TUint32 aStreamId, |
|
290 TInt& aLeftBalance, |
|
291 TInt& aRightBalance ); |
|
292 |
|
293 /** |
|
294 * Sets the record balance |
|
295 * @since Series 60 3.0 |
|
296 * @param [input] aLinkId Link location in the array |
|
297 * @param [input] aStreamId ID of the stream |
|
298 * @param [input] aLeftBalance Value for the left balance |
|
299 * @param [input] aRightBalance Value for the right balance |
|
300 * @leave System wide error code |
|
301 */ |
|
302 IMPORT_C void SetRecordBalanceL( const TUint32 aLinkId, |
|
303 const TUint32 aStreamId, |
|
304 TInt aLeftBalance, |
|
305 TInt aRightBalance ); |
|
306 |
|
307 /** |
|
308 * Sets the play balance |
|
309 * @since Series 60 3.0 |
|
310 * @param [input] aLinkId Link location in the array |
|
311 * @param [input] aStreamId ID of the stream |
|
312 * @param [input] aLeftBalance Value for the left balance |
|
313 * @param [input] aRightBalance Value for the right balance |
|
314 * @leave System wide error code |
|
315 */ |
|
316 IMPORT_C void SetPlayBalanceL( const TUint32 aLinkId, |
|
317 const TUint32 aStreamId, |
|
318 TInt aLeftBalance, |
|
319 TInt aRightBalance ); |
|
320 |
|
321 /** |
|
322 * Closes ul/dl streams |
|
323 * @since Series 60 3.0 |
|
324 * @param [input] aLinkId ID of link that contains stream |
|
325 * @param [input] aStreamId ID of stream to close |
|
326 * @return void |
|
327 */ |
|
328 IMPORT_C void CloseL( const TUint32 aLinkIdId, |
|
329 const TUint32 aStreamId ); |
|
330 |
|
331 /** |
|
332 * Returns the session ID |
|
333 * @since Series 60 3.0 |
|
334 * @param None |
|
335 * @return Value which represents the session ID |
|
336 */ |
|
337 IMPORT_C TUint32 GetSessionId(); |
|
338 |
|
339 /** |
|
340 * Sets the remote address for aStream |
|
341 * @since Series 60 3.0 |
|
342 * @param [input] aRemAddr Denotes the remote IP address |
|
343 * @param [input] aLinkId Link location in the array |
|
344 * @leave System wide error code if unsuccessful |
|
345 * @return None |
|
346 */ |
|
347 IMPORT_C void SetRemoteAddressL( TInetAddr aRemAddr, |
|
348 const TUint32 aLinkId ); |
|
349 |
|
350 /** |
|
351 * Sets the remote rtcp address for aStream |
|
352 * @since Series 60 3.0 |
|
353 * @param [input] aRemAddr Denotes the remote rtcp IP address |
|
354 * @param [input] aLinkId Link location in the array |
|
355 * @leave System wide error code if unsuccessful |
|
356 * @return None |
|
357 */ |
|
358 IMPORT_C void SetRemoteRtcpAddrL( TInetAddr aRemAddr, |
|
359 const TUint32 aLinkId ); |
|
360 |
|
361 /** |
|
362 * Creates link |
|
363 * @since Series 60 3.0 |
|
364 * @param [input] aLinkId ID of the new link (UL or DL client) |
|
365 * @param [input] aType Type of the link to be created |
|
366 * @return void |
|
367 */ |
|
368 IMPORT_C void CreateLinkL( TUint32& aLinkId, |
|
369 TInt aType ); |
|
370 |
|
371 /** |
|
372 * Initializes link |
|
373 * @since Series 60 3.0 |
|
374 * @param [input/output] aStatus Status of the request |
|
375 * @param [input] aLinkId ID of the link |
|
376 * @param [input] aIapId IAP ID |
|
377 * @return void |
|
378 */ |
|
379 IMPORT_C void InitializeLinkL( TRequestStatus& aStatus, |
|
380 TUint32 aLinkId, |
|
381 TInt aIapId ); |
|
382 |
|
383 /** |
|
384 * Creates the RTP session |
|
385 * @since Series 60 3.0 |
|
386 * @param [input] aLinkId |
|
387 * @param [input/output] aPort |
|
388 * @param [input] aIpTOS |
|
389 * @param [input] aMediaSignaling |
|
390 * @return void |
|
391 */ |
|
392 IMPORT_C void CreateRtpSessionL( TUint32 aLinkId, |
|
393 TUint aPort, |
|
394 TInt aIpTOS, |
|
395 TInt aMediaSignaling ); |
|
396 |
|
397 /** |
|
398 * Closes ul/dl links |
|
399 * @since Series 60 3.0 |
|
400 * @param [input] aLinkId ID of link to close |
|
401 * @return System wide error code |
|
402 */ |
|
403 IMPORT_C TInt CloseLinkL( TUint32 aLinkIdId ); |
|
404 |
|
405 |
|
406 /** |
|
407 * Sends media signals to uplink if possible |
|
408 * @since Series 60 3.0 |
|
409 * @param aStreamId Stream into which the signal should be sent |
|
410 * @param aEvent The event to be sent |
|
411 * @return void |
|
412 */ |
|
413 IMPORT_C void SendMediaSignalL( const TMccEvent& aEvent ); |
|
414 |
|
415 /** |
|
416 * Sets the codec information for specific stream |
|
417 * @since Series 60 3.0 |
|
418 * @param [input] aLink Link for which the codec information is set |
|
419 * @param [input] aStreamId ID of the stream |
|
420 * @param aCodecInfo Codec information for the stream |
|
421 * @return void |
|
422 */ |
|
423 IMPORT_C void SetCodecInformationL( const TUint32 aLinkId, |
|
424 const TUint32 aStreamId, |
|
425 const TMccCodecInfo& aCodecInfo, |
|
426 const TDesC8& aFmtp ); |
|
427 |
|
428 /** |
|
429 * Get the supported bitrates from the codec of the specified stream |
|
430 * @since Series 60 3.0 |
|
431 * @param aLinkId - [input] link ID |
|
432 * @param aStreamId - [input] Stream ID identifying stream |
|
433 * @param aBitrates Array for the bitrates |
|
434 * @leave System wide error code if unsuccessful |
|
435 * @return None |
|
436 */ |
|
437 IMPORT_C void GetSupportedBitratesL( const TUint32 aLinkIdId, |
|
438 const TUint32 aStreamId, |
|
439 RArray<TUint>& aBitrates ); |
|
440 |
|
441 /** |
|
442 * Get syncrinization source from the specified stream |
|
443 * @since Series 60 3.0 |
|
444 * @param aLinkId - [input] link ID |
|
445 * @param aStreamId - [input] Stream ID identifying stream |
|
446 * @param aaSSRCValue - [input] SSRC value to be retturn |
|
447 * @leave System wide error code if unsuccessful |
|
448 * @return none. |
|
449 */ |
|
450 IMPORT_C void GetSSRCL( const TUint32 aLinkId, |
|
451 const TUint32 aStreamId, |
|
452 TUint32& aSSRCValue); |
|
453 |
|
454 /** |
|
455 * Sends RTCP receiver report to uplink if possible. |
|
456 * @param aLinkId - [input] link ID |
|
457 * @param aStreamId - [input] Stream ID identifying stream |
|
458 * @leave System wide error code if unsuccessful |
|
459 * @return None |
|
460 */ |
|
461 IMPORT_C void SendRTCPReceiverReportL( const TUint32 aLinkIdId, |
|
462 const TUint32 aStreamId ); |
|
463 |
|
464 /** |
|
465 * Sends RTCP sender report to uplink if possible. |
|
466 * @param aLinkId - [input] link ID |
|
467 * @param aStreamId - [input] Stream ID identifying stream |
|
468 * @leave System wide error code if unsuccessful |
|
469 * @return None |
|
470 */ |
|
471 IMPORT_C void SendRTCPSenderReportL( const TUint32 aLinkIdId, |
|
472 const TUint32 aStreamId ); |
|
473 |
|
474 |
|
475 /** |
|
476 * Sends RTCP data to uplink if possible. |
|
477 * @param aLinkId - [input] link ID |
|
478 * @param aStreamId - [input] Stream ID identifying stream |
|
479 * @param aData - [input] Non-RTCP data |
|
480 * @leave System wide error code if unsuccessful |
|
481 * @return None |
|
482 */ |
|
483 IMPORT_C void SendRTCPDataL( const TUint32 aLinkId, |
|
484 const TUint32 aStreamId, |
|
485 const TDesC8& aData ); |
|
486 /** |
|
487 * Starts inactivity timer for a stream in a given session. |
|
488 * @param aLinkId - [input] link ID |
|
489 * @param aStreamId - [input] Stream ID identifying stream |
|
490 * @param aTimeoutTime - [input] timeout value in milliseconds |
|
491 * @leave System wide error code if unsuccessful |
|
492 * @return None |
|
493 */ |
|
494 IMPORT_C void StartInactivityTimerL( const TUint32 aLinkIdId, |
|
495 const TUint32 aStreamId, |
|
496 TUint32 aTimeoutTime ); |
|
497 |
|
498 /** |
|
499 * Stops inactivity timer for a stream in a given session. |
|
500 * @param aLinkId - [input] link ID |
|
501 * @param aStreamId - [input] Stream ID identifying stream |
|
502 * @leave System wide error code if unsuccessful |
|
503 * @return None |
|
504 */ |
|
505 IMPORT_C void StopInactivityTimerL( const TUint32 aLinkIdId, |
|
506 const TUint32 aStreamId ); |
|
507 |
|
508 /** |
|
509 * Sets audio route for a stream in a given session. |
|
510 * @param aLinkId - [input] link ID |
|
511 * @param aStreamId - [input] Stream ID identifying stream |
|
512 * @param aRoutingDestination - [input] routing destination |
|
513 * @leave System wide error code if unsuccessful |
|
514 * @return None |
|
515 */ |
|
516 IMPORT_C void SetAudioRouteL( TUint32 aLinkId, |
|
517 TUint32 aStreamId, |
|
518 TUint32 aRoutingDestination ); |
|
519 |
|
520 |
|
521 /** |
|
522 * Sets audio route for a stream in a given session. |
|
523 * @param aLinkId - [input] link ID |
|
524 * @param aStreamId - [input] Stream ID identifying stream |
|
525 * @param aRoutingDestination - [output] routing destination |
|
526 * @leave System wide error code if unsuccessful |
|
527 * @return None |
|
528 */ |
|
529 IMPORT_C void GetAudioRouteL( TUint32 aLinkId, |
|
530 TUint32 aStreamId, |
|
531 TUint32& aRoutingDestination ); |
|
532 |
|
533 /** |
|
534 * Generates a random stream identifier |
|
535 * @since Series 60 3.0 |
|
536 * @param None |
|
537 * @return TInt New stream ID |
|
538 */ |
|
539 IMPORT_C TUint32 GenerateStreamId(); |
|
540 |
|
541 /** |
|
542 * Unuses ul/dl stream |
|
543 * @since Series 60 3.0 |
|
544 * @param [input] aLinkId Link location in the array |
|
545 * @param [input] aStreamId ID of the stream |
|
546 * @return TInt System wide error code |
|
547 */ |
|
548 IMPORT_C void UnuseL( const TUint32 aLinkId, |
|
549 const TUint32 aStreamId ); |
|
550 |
|
551 /** |
|
552 * Resolves local IP addresses and ports |
|
553 * @since Series 60 3.2 |
|
554 * @param [input/output] aClientData Client data |
|
555 * @return void |
|
556 */ |
|
557 IMPORT_C void GetLocalIpAddressesL( TMccCreateLink& aClientData ); |
|
558 |
|
559 |
|
560 /** |
|
561 * Bind context into stream. |
|
562 * @since Series 60 3.2 |
|
563 * @param aLinkId The link id |
|
564 * @param aStreamId The stream id |
|
565 * @param aEndpointId The endpoint id |
|
566 * @param aCryptoContext Crypto context |
|
567 * @return void |
|
568 */ |
|
569 IMPORT_C void BindContextIntoStreamL( TUint32 aLinkId, |
|
570 TUint32 aStreamId, |
|
571 TUint32 aEndpointId, |
|
572 const TMccCryptoContext& aCryptoContext ); |
|
573 |
|
574 /** |
|
575 * Remove context. |
|
576 * @since Series 60 3.2 |
|
577 * @param aLinkId The link id |
|
578 * @param aStreamId The stream id |
|
579 * @param aEndpointId The endpoint id |
|
580 * @return void |
|
581 */ |
|
582 IMPORT_C void RemoveContextL( TUint32 aLinkId, |
|
583 TUint32 aStreamId, |
|
584 TUint32 aEndpointId ); |
|
585 |
|
586 /** |
|
587 * Generic value setter. |
|
588 * @param [input] aParam identifier of the param to be set |
|
589 * @param [input] aLinkId Link location in the array |
|
590 * @param [input] aStreamId ID of the stream |
|
591 * @param [input] aEndpointId ID of the endpoint |
|
592 * @param [input] aVal value to be set |
|
593 */ |
|
594 IMPORT_C void SetParameterL( TUint32 aParam, |
|
595 TUint32 aLinkId, |
|
596 TUint32 aStreamId, |
|
597 TUint32 aEndpointId, |
|
598 const TDesC8& aVal ); |
|
599 |
|
600 /** |
|
601 * Generic value getter. |
|
602 * @param [input] aParam identifier of the param to be get |
|
603 * @param [input] aLinkId Link location in the array |
|
604 * @param [input] aStreamId ID of the stream |
|
605 * @param [input] aEndpointId ID of the endpoint |
|
606 * @param [input] aVal value fill be set to this |
|
607 */ |
|
608 IMPORT_C void GetParameterL( TUint32 aParam, |
|
609 TUint32 aLinkId, |
|
610 TUint32 aStreamId, |
|
611 TUint32 aEndpointId, |
|
612 TDesC8& aVal ); |
|
613 |
|
614 public: // From MMccEventHandler |
|
615 |
|
616 virtual TInt SendMccEventToClient( TMccEvent& aEvent ); |
|
617 |
|
618 virtual void StateChange( TInt aState, TUint32 aLinkId ); |
|
619 |
|
620 virtual void ErrorOccured( TInt aError, |
|
621 TUint32 aSessionId, |
|
622 TUint32 aLinkId, |
|
623 TUint32 aStreamId, |
|
624 TUint32 aEndpointId ); |
|
625 |
|
626 protected: // New functions |
|
627 |
|
628 |
|
629 protected: // Functions from base classes |
|
630 |
|
631 private: // New functions |
|
632 |
|
633 /** |
|
634 * Method for finding correct streams |
|
635 * @since Series 60 3.0 |
|
636 * @param [input] aLinkId Link location in the array |
|
637 * @return TInt System wide error code |
|
638 */ |
|
639 TInt FindLinkL( const TUint32 aLinkId ); |
|
640 |
|
641 /** |
|
642 * Stores the link (pointer to clients) |
|
643 * @since Series 60 3.0 |
|
644 * @param [input] aClient client object |
|
645 * @return TInt System wide error code |
|
646 */ |
|
647 TInt StoreLink( CMccSubThreadClientBase* aClient ); |
|
648 |
|
649 private: // Constructors |
|
650 |
|
651 /** |
|
652 * C++ default constructor. |
|
653 */ |
|
654 CMccUlDlClient( MMccEventHandler* aMccEventHandler, |
|
655 MMccResources* aMccResources, |
|
656 TUint32 aSessionId ); |
|
657 |
|
658 /** |
|
659 * By default Symbian 2nd phase constructor is private. |
|
660 */ |
|
661 void ConstructL(); |
|
662 |
|
663 public: // Data |
|
664 |
|
665 protected: // Data |
|
666 |
|
667 private: // Data |
|
668 |
|
669 // array for storing ul & dl client pointers to streams |
|
670 RPointerArray<CMccSubThreadClientBase> iClientArray; |
|
671 |
|
672 // member variable for storing session id |
|
673 TUint32 iSessionId; |
|
674 |
|
675 // Variable for storing event error code |
|
676 TInt iErrorCode; |
|
677 |
|
678 // Datasink of the subthread |
|
679 MDataSink* iDatasink; |
|
680 |
|
681 // Datasource of the subthread |
|
682 MDataSource* iDatasource; |
|
683 |
|
684 // Event handler |
|
685 MMccEventHandler* iMccEventHandler; |
|
686 |
|
687 // Resources |
|
688 MMccResources* iMccResources; |
|
689 |
|
690 // Rtp media clock |
|
691 CMccRtpMediaClock* iRtpMediaClock; |
|
692 |
|
693 public: // Friend classes |
|
694 |
|
695 protected: // Friend classes |
|
696 |
|
697 private: // Friend classes |
|
698 |
|
699 |
|
700 }; |
|
701 |
|
702 #endif // MCCULDLCLIENT_H |
|
703 |
|
704 // End of File |
|
705 |
|
706 |
|
707 |