|
1 /* |
|
2 * Copyright (c) 2004-2008 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: UL/DL Session abstraction for Mcc Subthread clients |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 // INCLUDE FILES |
|
22 #include <e32math.h> |
|
23 |
|
24 #include "mcculdlclient.h" |
|
25 |
|
26 #include "mmccnetworksettings.h" |
|
27 #include "mccsymsubthreadclient.h" |
|
28 #include "mcccodecconfigurator.h" |
|
29 #include "mccsubcontrollerlogs.h" |
|
30 #include "mccrtpmediaclock.h" |
|
31 #include "mmccsecureinterface.h" |
|
32 |
|
33 |
|
34 // EXTERNAL DATA STRUCTURES |
|
35 |
|
36 // EXTERNAL FUNCTION PROTOTYPES |
|
37 |
|
38 // CONSTANTS |
|
39 |
|
40 // MACROS |
|
41 |
|
42 // LOCAL CONSTANTS AND MACROS |
|
43 |
|
44 // MODULE DATA STRUCTURES |
|
45 |
|
46 // LOCAL FUNCTION PROTOTYPES |
|
47 |
|
48 // FORWARD DECLARATIONS |
|
49 |
|
50 // ============================= LOCAL FUNCTIONS =============================== |
|
51 |
|
52 // ============================ MEMBER FUNCTIONS =============================== |
|
53 |
|
54 // ----------------------------------------------------------------------------- |
|
55 // CMccUlDlClient::CMccUlDlClient |
|
56 // C++ default constructor can NOT contain any code, that |
|
57 // might leave. |
|
58 // ----------------------------------------------------------------------------- |
|
59 CMccUlDlClient::CMccUlDlClient( MMccEventHandler* aMccEventHandler, |
|
60 MMccResources* aMccResources, |
|
61 TUint32 aSessionId ) : |
|
62 iSessionId( aSessionId ), |
|
63 iMccEventHandler( aMccEventHandler ), |
|
64 iMccResources( aMccResources ) |
|
65 { |
|
66 } |
|
67 |
|
68 // ----------------------------------------------------------------------------- |
|
69 // CMccUlDlClient::ConstructL |
|
70 // Symbian 2nd phase constructor can leave. |
|
71 // ----------------------------------------------------------------------------- |
|
72 void CMccUlDlClient::ConstructL() |
|
73 { |
|
74 __SUBCONTROLLER( "CMccUlDlClient::ConstructL" ) |
|
75 User::LeaveIfNull( iMccEventHandler ); |
|
76 User::LeaveIfNull( iMccResources ); |
|
77 iRtpMediaClock = CMccRtpMediaClock::NewL(); |
|
78 |
|
79 __SUBCONTROLLER( "CMccUlDlClient::ConstructL, exit" ) |
|
80 } |
|
81 |
|
82 // ----------------------------------------------------------------------------- |
|
83 // CMccUlDlClient::NewL |
|
84 // Static constructor. |
|
85 // ----------------------------------------------------------------------------- |
|
86 EXPORT_C CMccUlDlClient* CMccUlDlClient::NewL( MMccEventHandler* aMccEventHandler, |
|
87 MMccResources* aMccResources, |
|
88 TUint32 aSessionId ) |
|
89 { |
|
90 CMccUlDlClient* self = new ( ELeave ) CMccUlDlClient( aMccEventHandler, |
|
91 aMccResources, |
|
92 aSessionId ); |
|
93 CleanupStack::PushL( self ); |
|
94 self->ConstructL(); |
|
95 CleanupStack::Pop( self ); |
|
96 |
|
97 return self; |
|
98 } |
|
99 |
|
100 // ----------------------------------------------------------------------------- |
|
101 // CMccUlDlClient::~CMccUlDlClient |
|
102 // Destructor |
|
103 // ----------------------------------------------------------------------------- |
|
104 EXPORT_C CMccUlDlClient::~CMccUlDlClient() |
|
105 { |
|
106 __SUBCONTROLLER( "CMccUlDlClient::~CMccUlDlClient" ) |
|
107 |
|
108 iClientArray.ResetAndDestroy(); |
|
109 iClientArray.Close(); |
|
110 |
|
111 delete iRtpMediaClock; |
|
112 |
|
113 __SUBCONTROLLER( "CMccUlDlClient::~CMccUlDlClient, exit" ) |
|
114 } |
|
115 |
|
116 // ----------------------------------------------------------------------------- |
|
117 // CMccUlDlClient::MaxGainL |
|
118 // Returns the maximum gain for uplink stream |
|
119 // ----------------------------------------------------------------------------- |
|
120 // |
|
121 EXPORT_C void CMccUlDlClient::MaxGainL( const TUint32 aLinkId, |
|
122 const TUint32 aStreamId, |
|
123 TInt& aMaxGain ) |
|
124 { |
|
125 __SUBCONTROLLER( "CMccUlDlClient::MaxGainL" ) |
|
126 TInt stream = FindLinkL( aLinkId ); |
|
127 aMaxGain = iClientArray[stream]->MaxGainL( aStreamId ); |
|
128 __SUBCONTROLLER_INT1( "CMccUlDlClient::MaxGainL, exit with MaxGain", |
|
129 aMaxGain ) |
|
130 } |
|
131 |
|
132 // ----------------------------------------------------------------------------- |
|
133 // CMccUlDlClient::MaxVolumeL |
|
134 // Returns the mareximum volume for downlink stream |
|
135 // ----------------------------------------------------------------------------- |
|
136 // |
|
137 EXPORT_C void CMccUlDlClient::MaxVolumeL( const TUint32 aLinkId, |
|
138 const TUint32 aStreamId, |
|
139 TInt& aMaxVolume ) |
|
140 { |
|
141 __SUBCONTROLLER( "CMccUlDlClient::MaxVolumeL" ) |
|
142 TInt link = FindLinkL( aLinkId ); |
|
143 aMaxVolume = iClientArray[link]->MaxVolumeL( aStreamId ); |
|
144 __SUBCONTROLLER_INT1( "CMccUlDlClient::MaxVolumeL, exit with\ |
|
145 MaxVolume", aMaxVolume ) |
|
146 } |
|
147 |
|
148 // ----------------------------------------------------------------------------- |
|
149 // CMccUlDlClient::OpenL |
|
150 // Opens ul/dl clients |
|
151 // ----------------------------------------------------------------------------- |
|
152 // |
|
153 EXPORT_C void CMccUlDlClient::OpenL( const TUint32 aLinkId, |
|
154 const TUint32 aStreamId, |
|
155 TInt aStreamType, |
|
156 TFourCC aFourCC, |
|
157 MDataSource* aDataSource, |
|
158 MDataSink* aSink, |
|
159 TMMFPrioritySettings aSettings ) |
|
160 { |
|
161 __SUBCONTROLLER( "CMccUlDlClient::OpenL" ) |
|
162 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
163 __SUBCONTROLLER_INT1( "CMccUlDlClient streamid", aStreamId ) |
|
164 TInt link = FindLinkL( aLinkId ); |
|
165 iClientArray[link]->OpenL( aStreamType, aFourCC, |
|
166 aDataSource, aSink, |
|
167 aStreamId, aSettings ); |
|
168 __SUBCONTROLLER( "CMccUlDlClient::OpenL, exit with id" ) |
|
169 } |
|
170 |
|
171 // ----------------------------------------------------------------------------- |
|
172 // CMccUlDlClient::PrepareL |
|
173 // Prepare ul/dl client |
|
174 // ----------------------------------------------------------------------------- |
|
175 // |
|
176 EXPORT_C void CMccUlDlClient::PrepareL( const TUint32 aLinkId, |
|
177 const TUint32 aStreamId, |
|
178 const TUint32 aEndpointId ) |
|
179 { |
|
180 __SUBCONTROLLER( "CMccUlDlClient::PrepareL" ) |
|
181 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
182 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
183 __SUBCONTROLLER_INT1( "CMccUlDlClient endpointId", aEndpointId ) |
|
184 TInt link = FindLinkL( aLinkId ); |
|
185 iClientArray[link]->PrepareL( aStreamId, aEndpointId ); |
|
186 |
|
187 __SUBCONTROLLER( "CMccUlDlClient::PrepareL, exit" ) |
|
188 } |
|
189 |
|
190 // ----------------------------------------------------------------------------- |
|
191 // CMccUlDlClient::PlayL |
|
192 // Plays ul/dl stream |
|
193 // ----------------------------------------------------------------------------- |
|
194 // |
|
195 EXPORT_C void CMccUlDlClient::PlayL( const TUint32 aLinkId, |
|
196 const TUint32 aStreamId, |
|
197 const TUint32 aEndpointId, |
|
198 TBool aStreamPaused, |
|
199 TBool aEnableRTCP ) |
|
200 { |
|
201 __SUBCONTROLLER( "CMccUlDlClient::PlayL" ) |
|
202 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
203 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
204 __SUBCONTROLLER_INT1( "CMccUlDlClient endpointId", aEndpointId ) |
|
205 TInt link = FindLinkL( aLinkId ); |
|
206 iClientArray[link]->PlayL( aStreamId, aEndpointId, aStreamPaused, aEnableRTCP ); |
|
207 |
|
208 __SUBCONTROLLER( "CMccUlDlClient::PlayL, exit" ) |
|
209 } |
|
210 |
|
211 // ----------------------------------------------------------------------------- |
|
212 // CMccUlDlClient::PauseL |
|
213 // Pauses ul/dl stream |
|
214 // ----------------------------------------------------------------------------- |
|
215 // |
|
216 EXPORT_C void CMccUlDlClient::PauseL( const TUint32 aLinkId, |
|
217 const TUint32 aStreamId, |
|
218 const TUint32 aEndpointId, |
|
219 TBool aEnableRTCP ) |
|
220 { |
|
221 __SUBCONTROLLER( "CMccUlDlClient::PauseL" ) |
|
222 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
223 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
224 __SUBCONTROLLER_INT1( "CMccUlDlClient endpointId", aEndpointId ) |
|
225 TInt link = FindLinkL( aLinkId ); |
|
226 iClientArray[link]->PauseL( aStreamId, aEndpointId, aEnableRTCP ); |
|
227 |
|
228 __SUBCONTROLLER( "CMccUlDlClient::PauseL, exit" ) |
|
229 } |
|
230 |
|
231 // ----------------------------------------------------------------------------- |
|
232 // CMccUlDlClient::StopL |
|
233 // Stops ul/dl stream |
|
234 // ----------------------------------------------------------------------------- |
|
235 // |
|
236 EXPORT_C void CMccUlDlClient::StopL( const TUint32 aLinkId, |
|
237 const TUint32 aStreamId, |
|
238 const TUint32 aEndpointId ) |
|
239 { |
|
240 __SUBCONTROLLER( "CMccUlDlClient::StopL" ) |
|
241 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
242 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
243 __SUBCONTROLLER_INT1( "CMccUlDlClient endpointId", aEndpointId ) |
|
244 TInt link = FindLinkL( aLinkId ); |
|
245 iClientArray[link]->StopL( aStreamId, aEndpointId ); |
|
246 __SUBCONTROLLER( "CMccUlDlClient::StopL, exit" ) |
|
247 } |
|
248 |
|
249 // ----------------------------------------------------------------------------- |
|
250 // CMccUlDlClient::CloseL |
|
251 // Closes ul/dl client |
|
252 // ----------------------------------------------------------------------------- |
|
253 // |
|
254 EXPORT_C void CMccUlDlClient::CloseL( const TUint32 aLinkId, |
|
255 const TUint32 aStreamId ) |
|
256 { |
|
257 __SUBCONTROLLER( "CMccUlDlClient::CloseL" ) |
|
258 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
259 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
260 TInt linkId = FindLinkL( aLinkId ); |
|
261 iClientArray[linkId]->CloseL( aStreamId ); |
|
262 __SUBCONTROLLER( "CMccUlDlClient::CloseL, exit" ) |
|
263 } |
|
264 |
|
265 // ----------------------------------------------------------------------------- |
|
266 // CMccUlDlClient::ResumeL |
|
267 // Resumes ul/dl stream |
|
268 // ----------------------------------------------------------------------------- |
|
269 // |
|
270 EXPORT_C void CMccUlDlClient::ResumeL( const TUint32 aLinkId, |
|
271 const TUint32 aStreamId, |
|
272 const TUint32 aEndpointId, |
|
273 TBool aEnableRTCP ) |
|
274 { |
|
275 __SUBCONTROLLER( "CMccUlDlClient::ResumeL" ) |
|
276 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
277 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
278 __SUBCONTROLLER_INT1( "CMccUlDlClient endpointId", aEndpointId ) |
|
279 TInt link = FindLinkL( aLinkId ); |
|
280 iClientArray[link]->ResumeL( aStreamId, aEndpointId, aEnableRTCP ); |
|
281 |
|
282 __SUBCONTROLLER( "CMccUlDlClient::ResumeL, exit" ) |
|
283 } |
|
284 |
|
285 // ----------------------------------------------------------------------------- |
|
286 // CMccUlDlClient::ResumeL |
|
287 // Resumes ul/dl stream |
|
288 // ----------------------------------------------------------------------------- |
|
289 // |
|
290 EXPORT_C TBool CMccUlDlClient::StreamsExistsL( const TUint32 aLinkId ) |
|
291 { |
|
292 __SUBCONTROLLER( "CMccUlDlClient::StreamsExistsL" ) |
|
293 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
294 TInt link = FindLinkL( aLinkId ); |
|
295 return iClientArray[link]->StreamsExistsL(); |
|
296 } |
|
297 |
|
298 |
|
299 // ----------------------------------------------------------------------------- |
|
300 // CMccUlDlClient::GetGainL |
|
301 // Get the current ul gain |
|
302 // ----------------------------------------------------------------------------- |
|
303 // |
|
304 EXPORT_C TInt CMccUlDlClient::GetGainL( const TUint32 aLinkId, |
|
305 const TUint32 aStreamId, |
|
306 TInt& aGain ) |
|
307 { |
|
308 __SUBCONTROLLER( "CMccUlDlClient::GetGainL" ) |
|
309 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
310 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
311 TInt link = FindLinkL( aLinkId ); |
|
312 aGain = iClientArray[link]->GetGainL( aStreamId ); |
|
313 __SUBCONTROLLER( "CMccUlDlClient::GetGainL, exit" ) |
|
314 return KErrNone; |
|
315 } |
|
316 |
|
317 // ----------------------------------------------------------------------------- |
|
318 // CMccUlDlClient::GetCodecL |
|
319 // Get current codec |
|
320 // ----------------------------------------------------------------------------- |
|
321 // |
|
322 EXPORT_C void CMccUlDlClient::GetCodecL( const TUint32 aLinkId, |
|
323 const TUint32 aStreamId, |
|
324 TMccCodecInfo& aCodec ) |
|
325 { |
|
326 __SUBCONTROLLER_INT1( "CMccUlDlClient::GetCodecL linkid", aLinkId ) |
|
327 __SUBCONTROLLER_INT1( "CMccUlDlClient::GetCodecL streamId", aStreamId ) |
|
328 |
|
329 const TInt link = FindLinkL( aLinkId ); |
|
330 iClientArray[link]->CodecInformationL( aStreamId, aCodec ); |
|
331 |
|
332 __SUBCONTROLLER( "CMccUlDlClient::GetCodecL exit" ) |
|
333 } |
|
334 |
|
335 // ----------------------------------------------------------------------------- |
|
336 // CMccUlDlClient::GetFmtpAttrL |
|
337 // Get current codec |
|
338 // ----------------------------------------------------------------------------- |
|
339 // |
|
340 EXPORT_C void CMccUlDlClient::GetFmtpAttrL( const TUint32 aLinkId, |
|
341 const TUint32 aStreamId, |
|
342 TDes8& aFmtp ) |
|
343 { |
|
344 __SUBCONTROLLER( "CMccUlDlClient::GetFmtpAttrL" ) |
|
345 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
346 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
347 TInt link = this->FindLinkL( aLinkId ); |
|
348 iClientArray[link]->GetFmtpAttrL( aStreamId, aFmtp ); |
|
349 __SUBCONTROLLER( "CMccUlDlClient::GetFmtpAttrL, exit" ) |
|
350 } |
|
351 |
|
352 // ----------------------------------------------------------------------------- |
|
353 // CMccUlDlClient::GetPlayBalanceL |
|
354 // Returns the play balance of dl client |
|
355 // ----------------------------------------------------------------------------- |
|
356 // |
|
357 EXPORT_C TInt CMccUlDlClient::GetPlayBalanceL( const TUint32 aLinkId, |
|
358 const TUint32 aStreamId, |
|
359 TInt& aLeftBalance, |
|
360 TInt& aRightBalance ) |
|
361 { |
|
362 __SUBCONTROLLER( "CMccUlDlClient::GetPlayBalanceL" ) |
|
363 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
364 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
365 TInt link = FindLinkL( aLinkId ); |
|
366 iClientArray[link]->GetBalanceL( aStreamId, aLeftBalance, aRightBalance ); |
|
367 __SUBCONTROLLER( "CMccUlDlClient::GetPlayBalanceL, exit" ) |
|
368 return KErrNone; |
|
369 } |
|
370 |
|
371 // ----------------------------------------------------------------------------- |
|
372 // CMccUlDlClient::GetRecordBalanceL |
|
373 // Returns the record balance of ul client |
|
374 // ----------------------------------------------------------------------------- |
|
375 // |
|
376 EXPORT_C TInt CMccUlDlClient::GetRecordBalanceL( const TUint32 aLinkId, |
|
377 const TUint32 aStreamId, |
|
378 TInt& aLeftBalance, |
|
379 TInt& aRightBalance ) |
|
380 { |
|
381 __SUBCONTROLLER( "CMccUlDlClient::GetRecordBalanceL" ) |
|
382 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
383 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
384 TInt link = FindLinkL( aLinkId ); |
|
385 iClientArray[link]->GetBalanceL( aStreamId, aLeftBalance, aRightBalance ); |
|
386 __SUBCONTROLLER( "CMccUlDlClient::GetRecordBalanceL, exit" ) |
|
387 return KErrNone; |
|
388 } |
|
389 |
|
390 // ----------------------------------------------------------------------------- |
|
391 // CMccUlDlClient::SetPriorityL |
|
392 // Sets the link priority |
|
393 // ----------------------------------------------------------------------------- |
|
394 // |
|
395 EXPORT_C TInt CMccUlDlClient::SetPriorityL( const TUint32 aLinkId, |
|
396 const TUint32 aStreamId, |
|
397 TMMFPrioritySettings aPrioritySettings ) |
|
398 { |
|
399 __SUBCONTROLLER( "CMccUlDlClient::SetPriorityL" ) |
|
400 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
401 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
402 TInt link = FindLinkL( aLinkId ); |
|
403 iClientArray[link]->SetPrioritySettingsL( aStreamId, aPrioritySettings ); |
|
404 __SUBCONTROLLER( "CMccUlDlClient::SetPriorityL, exit" ) |
|
405 return KErrNone; |
|
406 } |
|
407 |
|
408 |
|
409 // ----------------------------------------------------------------------------- |
|
410 // CMccUlDlClient::SetVolumeL |
|
411 // Sets the volume for downlink stream |
|
412 // ----------------------------------------------------------------------------- |
|
413 // |
|
414 EXPORT_C TInt CMccUlDlClient::SetVolumeL( TInt aVolume ) |
|
415 { |
|
416 __SUBCONTROLLER( "CMccUlDlClient::GetRecordBalanceL" ) |
|
417 TInt indexCount = iClientArray.Count(); |
|
418 TInt err = KErrNone; |
|
419 TInt i = 0; |
|
420 for ( i = 0 ; i < indexCount ; i++ ) |
|
421 { |
|
422 iClientArray[i]->SetVolumeL( aVolume ); |
|
423 } |
|
424 __SUBCONTROLLER( "CMccUlDlClient::GetRecordBalanceL, exit" ) |
|
425 return err; |
|
426 } |
|
427 |
|
428 // ----------------------------------------------------------------------------- |
|
429 // CMccUlDlClient::SetGainL |
|
430 // Sets the gain for uplink stream |
|
431 // ----------------------------------------------------------------------------- |
|
432 // |
|
433 EXPORT_C TInt CMccUlDlClient::SetGainL( TInt aGain ) |
|
434 { |
|
435 __SUBCONTROLLER( "CMccUlDlClient::SetGainL" ) |
|
436 TInt indexCount = iClientArray.Count(); |
|
437 TInt err = KErrNone; |
|
438 TInt i = 0; |
|
439 for ( i = 0 ; i < indexCount ; i++ ) |
|
440 { |
|
441 iClientArray[i]->SetGainL( aGain ); |
|
442 } |
|
443 __SUBCONTROLLER( "CMccUlDlClient::SetGainL, exit" ) |
|
444 return err; |
|
445 } |
|
446 |
|
447 // ----------------------------------------------------------------------------- |
|
448 // CMccUlDlClient::SetRecordBalanceL |
|
449 // Set the record balance for uplink stream |
|
450 // ----------------------------------------------------------------------------- |
|
451 // |
|
452 EXPORT_C void CMccUlDlClient::SetRecordBalanceL( const TUint32 aLinkId, |
|
453 const TUint32 aStreamId, |
|
454 TInt aLeftBalance, |
|
455 TInt aRightBalance ) |
|
456 { |
|
457 __SUBCONTROLLER( "CMccUlDlClient::SetRecordBalanceL" ) |
|
458 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
459 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
460 TInt link = FindLinkL( aLinkId ); |
|
461 iClientArray[link]->SetBalanceL( aStreamId, aLeftBalance, aRightBalance ); |
|
462 __SUBCONTROLLER( "CMccUlDlClient::SetRecordBalanceL, exit" ) |
|
463 } |
|
464 |
|
465 // ----------------------------------------------------------------------------- |
|
466 // CMccUlDlClient::SetPlayBalanceL |
|
467 // Set the record balance for downlink stream |
|
468 // ----------------------------------------------------------------------------- |
|
469 // |
|
470 EXPORT_C void CMccUlDlClient::SetPlayBalanceL( const TUint32 aLinkId, |
|
471 const TUint32 aStreamId, |
|
472 TInt aLeftBalance, |
|
473 TInt aRightBalance ) |
|
474 { |
|
475 __SUBCONTROLLER( "CMccUlDlClient::SetPlayBalanceL" ) |
|
476 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
477 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
478 TInt link = FindLinkL( aLinkId ); |
|
479 iClientArray[link]->SetBalanceL( aStreamId, aLeftBalance, aRightBalance ); |
|
480 __SUBCONTROLLER( "CMccUlDlClient::SetPlayBalanceL, exit" ) |
|
481 } |
|
482 |
|
483 // ----------------------------------------------------------------------------- |
|
484 // CMccUlDlClient::CreateLinkL |
|
485 // Creates link, 1st step in link creation |
|
486 // ----------------------------------------------------------------------------- |
|
487 // |
|
488 EXPORT_C void CMccUlDlClient::CreateLinkL( TUint32& aLinkId, |
|
489 TInt aType ) |
|
490 { |
|
491 __SUBCONTROLLER( "CMccUlDlClient::CreateLinkL" ) |
|
492 TInt err( KErrNone ); |
|
493 |
|
494 switch ( aType ) |
|
495 { |
|
496 case KMccLinkGeneral: |
|
497 case KMccLinkGeneralVideo: |
|
498 { |
|
499 CMccSymSubthreadClient* symClient = |
|
500 CMccSymSubthreadClient::NewL( this, iMccResources, aType, iSessionId ); |
|
501 |
|
502 err = StoreLink( symClient ); |
|
503 if ( err == KErrNone ) |
|
504 { |
|
505 aLinkId = reinterpret_cast<TUint32>( symClient ); |
|
506 symClient->SetLinkId( aLinkId ); |
|
507 } |
|
508 else |
|
509 { |
|
510 delete symClient; |
|
511 } |
|
512 break; |
|
513 } |
|
514 |
|
515 case KMccLinkLocal: |
|
516 { |
|
517 CMccSymSubthreadClient* symClient = |
|
518 CMccSymSubthreadClient::NewL( this, iMccResources, aType, iSessionId ); |
|
519 |
|
520 err = StoreLink( symClient ); |
|
521 if ( err == KErrNone ) |
|
522 { |
|
523 aLinkId = reinterpret_cast<TUint32>( symClient ); |
|
524 symClient->SetLinkId( aLinkId ); |
|
525 } |
|
526 else |
|
527 { |
|
528 delete symClient; |
|
529 } |
|
530 break; |
|
531 } |
|
532 |
|
533 case KMccLinkSecure: |
|
534 case KMccLinkSecureVideo: |
|
535 { |
|
536 CMccSymSubthreadClient* symClient = |
|
537 CMccSymSubthreadClient::NewL( this, iMccResources, aType, iSessionId ); |
|
538 |
|
539 err = StoreLink( symClient ); |
|
540 if ( err == KErrNone ) |
|
541 { |
|
542 aLinkId = reinterpret_cast<TUint32>( symClient ); |
|
543 symClient->SetLinkId( aLinkId ); |
|
544 } |
|
545 else |
|
546 { |
|
547 delete symClient; |
|
548 } |
|
549 break; |
|
550 } |
|
551 |
|
552 default: |
|
553 err = KErrNotSupported; |
|
554 break; |
|
555 } |
|
556 |
|
557 User::LeaveIfError( err ); |
|
558 |
|
559 __SUBCONTROLLER_INT1( "CMccUlDlClient::CreateLinkL, exit with id", aLinkId ) |
|
560 } |
|
561 |
|
562 // ----------------------------------------------------------------------------- |
|
563 // CMccUlDlClient::InitializeLinkL |
|
564 // Initializes ul and dl links, 2nd step in link creation |
|
565 // ----------------------------------------------------------------------------- |
|
566 // |
|
567 EXPORT_C void CMccUlDlClient::InitializeLinkL( TRequestStatus& aStatus, |
|
568 TUint32 aLinkId, |
|
569 TInt aIapId ) |
|
570 { |
|
571 __SUBCONTROLLER( "CMccUlDlClient::InitializeLinkL" ) |
|
572 |
|
573 TInt link = FindLinkL( aLinkId ); |
|
574 iClientArray[link]->InitializeLinkL( aStatus, aIapId ); |
|
575 } |
|
576 |
|
577 // ----------------------------------------------------------------------------- |
|
578 // CMccUlDlClient::CreateRtpSessionL |
|
579 // Creates RTP session, 3rd step in link creation |
|
580 // ----------------------------------------------------------------------------- |
|
581 // |
|
582 EXPORT_C void CMccUlDlClient::CreateRtpSessionL( TUint32 aLinkId, |
|
583 TUint aPort, |
|
584 TInt aIpTOS, |
|
585 TInt /*aMediaSignaling*/ ) |
|
586 { |
|
587 __SUBCONTROLLER( "CMccUlDlClient::CreateRtpSessionL" ) |
|
588 |
|
589 TInt link = FindLinkL( aLinkId ); |
|
590 |
|
591 iClientArray[link]->CreateRtpSessionL( aPort, |
|
592 EFalse, |
|
593 aIpTOS, |
|
594 *iRtpMediaClock ); |
|
595 } |
|
596 |
|
597 // ----------------------------------------------------------------------------- |
|
598 // CMccUlDlClient::CloseLinkL |
|
599 // Closes ul/dl client |
|
600 // ----------------------------------------------------------------------------- |
|
601 // |
|
602 EXPORT_C TInt CMccUlDlClient::CloseLinkL( TUint32 aLinkId ) |
|
603 { |
|
604 __SUBCONTROLLER( "CMccUlDlClient::CloseLinkL" ) |
|
605 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
606 TInt arrayId = FindLinkL( aLinkId ); |
|
607 CMccSubThreadClientBase* temp = iClientArray[arrayId]; |
|
608 iClientArray[arrayId]->CloseL(); |
|
609 iClientArray.Remove( arrayId ); |
|
610 delete temp; |
|
611 |
|
612 // Notify the interface that an link has been closed |
|
613 TMccEvent event( iSessionId, aLinkId, KNullId, KNullId, |
|
614 KMccEventCategoryStream, KMccStreamClosed, KErrNone, KNullDesC8 ); |
|
615 iMccEventHandler->SendMccEventToClient( event ); |
|
616 |
|
617 __SUBCONTROLLER( "CMccUlDlClient::CloseLinkL, exit" ) |
|
618 return KErrNone; |
|
619 } |
|
620 |
|
621 // ----------------------------------------------------------------------------- |
|
622 // CMccUlSubThreadClient::SetRemoteAddressL |
|
623 // Sets the remote address for uplink stream |
|
624 // ----------------------------------------------------------------------------- |
|
625 EXPORT_C void CMccUlDlClient::SetRemoteAddressL( TInetAddr aRemAddr, |
|
626 TUint32 aLinkId ) |
|
627 { |
|
628 __SUBCONTROLLER( "CMccUlDlClient::SetRemoteAddressL" ) |
|
629 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
630 TInt ind = FindLinkL( aLinkId ); |
|
631 iClientArray[ind]->SetRemoteAddressL( aRemAddr ); |
|
632 __SUBCONTROLLER( "CMccUlDlClient::SetRemoteAddressL, exit" ) |
|
633 } |
|
634 |
|
635 // ----------------------------------------------------------------------------- |
|
636 // CMccUlSubThreadClient::SetRemoteRtcpAddrL |
|
637 // Sets the remote address for uplink stream |
|
638 // ----------------------------------------------------------------------------- |
|
639 EXPORT_C void CMccUlDlClient::SetRemoteRtcpAddrL( TInetAddr aRemAddr, |
|
640 TUint32 aLinkId ) |
|
641 { |
|
642 __SUBCONTROLLER( "CMccUlDlClient::SetRemoteRtcpAddrL" ) |
|
643 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
644 TInt ind = FindLinkL( aLinkId ); |
|
645 iClientArray[ind]->SetRemoteRtcpAddrL( aRemAddr ); |
|
646 __SUBCONTROLLER( "CMccUlDlClient::SetRemoteRtcpAddrL, exit" ) |
|
647 } |
|
648 |
|
649 // ----------------------------------------------------------------------------- |
|
650 // CMccUlDlClient::GetCodecDefaultsL |
|
651 // Get default codec values |
|
652 // ----------------------------------------------------------------------------- |
|
653 // |
|
654 EXPORT_C void CMccUlDlClient::GetCodecDefaultsL( |
|
655 const TUid aType, TDes8& aParam, TMccCodecInfo& aCodec ) |
|
656 { |
|
657 __SUBCONTROLLER( "CMccUlDlClient::GetCodecDefaultsL" ) |
|
658 MccCodecConfigurator::GetCodecDefaultsL( aType, aParam, aCodec ); |
|
659 __SUBCONTROLLER( "CMccUlDlClient::GetCodecDefaultsL, exit" ) |
|
660 } |
|
661 |
|
662 // ----------------------------------------------------------------------------- |
|
663 // CMccUlDlClient::GetSessionId() |
|
664 // returns the session id |
|
665 // ----------------------------------------------------------------------------- |
|
666 // |
|
667 EXPORT_C TUint32 CMccUlDlClient::GetSessionId() |
|
668 { |
|
669 __SUBCONTROLLER_INT1( "CMccUlDlClient::GetSessionId, id ", iSessionId ) |
|
670 return iSessionId; |
|
671 } |
|
672 |
|
673 // ----------------------------------------------------------------------------- |
|
674 // CMccUlDlClient::SendMediaSignalL |
|
675 // Send media signal to given stream |
|
676 // ----------------------------------------------------------------------------- |
|
677 // |
|
678 EXPORT_C void CMccUlDlClient::SendMediaSignalL( const TMccEvent& aEvent ) |
|
679 { |
|
680 __SUBCONTROLLER( "CMccUlDlClient::SendMediaSignalL" ) |
|
681 TInt link = FindLinkL( aEvent.iLinkId ); |
|
682 iClientArray[link]->SendMediaSignalL( aEvent ); |
|
683 __SUBCONTROLLER( "CMccUlDlClient::SendMediaSignalL, exit" ) |
|
684 } |
|
685 |
|
686 // ----------------------------------------------------------------------------- |
|
687 // CMccUlDlClient::SetCodecInformationL |
|
688 // Set the codec information for the stream |
|
689 // ----------------------------------------------------------------------------- |
|
690 // |
|
691 EXPORT_C void CMccUlDlClient::SetCodecInformationL( const TUint32 aLinkId, |
|
692 const TUint32 aStreamId, |
|
693 const TMccCodecInfo& aCodecInfo, |
|
694 const TDesC8& aFmtp ) |
|
695 { |
|
696 __SUBCONTROLLER( "CMccUlDlClient::SetCodecInformationL" ) |
|
697 TInt link = this->FindLinkL( aLinkId ); |
|
698 iClientArray[link]->SetCodecInformationL( aStreamId, aCodecInfo, aFmtp ); |
|
699 __SUBCONTROLLER( "CMccUlDlClient::SetCodecInformationL, exit" ) |
|
700 } |
|
701 |
|
702 // ----------------------------------------------------------------------------- |
|
703 // CMccUlDlClient::GetSupportedBitratesL |
|
704 // Get the supported bitrates from the codec of the specified stream |
|
705 // ----------------------------------------------------------------------------- |
|
706 // |
|
707 EXPORT_C void CMccUlDlClient::GetSupportedBitratesL( const TUint32 aLinkId, |
|
708 const TUint32 /*aStreamId*/, |
|
709 RArray<TUint>& /*aBitrates*/ ) |
|
710 { |
|
711 __SUBCONTROLLER( "CMccUlDlClient::GetSupportedBitratesL" ) |
|
712 this->FindLinkL( aLinkId ); |
|
713 User::Leave( KErrNotSupported ); |
|
714 } |
|
715 |
|
716 // ----------------------------------------------------------------------------- |
|
717 // CMccUlDlClient::GetSSRCL |
|
718 // Get syncronization source for the specified stream |
|
719 // ----------------------------------------------------------------------------- |
|
720 // |
|
721 EXPORT_C void CMccUlDlClient::GetSSRCL( const TUint32 aLinkId, |
|
722 const TUint32 aStreamId, |
|
723 TUint32& aSSRCValue) |
|
724 { |
|
725 __SUBCONTROLLER( "CMccUlDlClient::GetSSRCL" ) |
|
726 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
727 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
728 TInt link = this->FindLinkL( aLinkId ); |
|
729 iClientArray[link]->GetSSRCL( aStreamId, aSSRCValue ); |
|
730 } |
|
731 |
|
732 // ----------------------------------------------------------------------------- |
|
733 // CMccUlDlClient::SendRTCPReceiverReportL |
|
734 // Sends a RTCP receiver report |
|
735 // ----------------------------------------------------------------------------- |
|
736 // |
|
737 EXPORT_C void CMccUlDlClient::SendRTCPReceiverReportL( const TUint32 aLinkId, |
|
738 const TUint32 aStreamId ) |
|
739 { |
|
740 __SUBCONTROLLER( "CMccUlDlClient::SendRTCPReceiverReportL" ) |
|
741 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
742 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
743 TInt link = this->FindLinkL( aLinkId ); |
|
744 iClientArray[link]->SendRTCPReceiverReportL( aStreamId ); |
|
745 __SUBCONTROLLER( "CMccUlDlClient::SendRTCPReceiverReportL, exit" ) |
|
746 } |
|
747 |
|
748 // ----------------------------------------------------------------------------- |
|
749 // CMccUlDlClient::SendRTCPSenderReportL |
|
750 // Sends a RTCP sender report |
|
751 // ----------------------------------------------------------------------------- |
|
752 // |
|
753 EXPORT_C void CMccUlDlClient::SendRTCPSenderReportL( const TUint32 aLinkId, |
|
754 const TUint32 aStreamId ) |
|
755 { |
|
756 __SUBCONTROLLER( "CMccUlDlClient::SendRTCPSenderReportL" ) |
|
757 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
758 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
759 TInt link = this->FindLinkL( aLinkId ); |
|
760 iClientArray[link]->SendRTCPSenderReportL( aStreamId ); |
|
761 __SUBCONTROLLER( "CMccUlDlClient::SendRTCPSenderReportL, exit" ) |
|
762 } |
|
763 |
|
764 // ----------------------------------------------------------------------------- |
|
765 // CMccUlDlClient::SendRTCPSenderReportL |
|
766 // Sends a RTCP sender report |
|
767 // ----------------------------------------------------------------------------- |
|
768 // |
|
769 EXPORT_C void CMccUlDlClient::SendRTCPDataL( const TUint32 aLinkId, |
|
770 const TUint32 aStreamId, |
|
771 const TDesC8& aData ) |
|
772 { |
|
773 __SUBCONTROLLER( "CMccUlDlClient::SendRTCPDataL" ) |
|
774 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
775 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
776 TInt link = this->FindLinkL( aLinkId ); |
|
777 iClientArray[link]->SendRTCPDataL( aStreamId, aData ); |
|
778 __SUBCONTROLLER( "CMccUlDlClient::SendRTCPDataL, exit" ) |
|
779 } |
|
780 |
|
781 // ----------------------------------------------------------------------------- |
|
782 // CMccUlDlClient::StartInactivityTimer |
|
783 // Starts inactivity timer for a stream in a given link. |
|
784 // ----------------------------------------------------------------------------- |
|
785 // |
|
786 EXPORT_C void CMccUlDlClient::StartInactivityTimerL( const TUint32 aLinkId, |
|
787 const TUint32 aStreamId, |
|
788 TUint32 aTimeoutTime ) |
|
789 { |
|
790 __SUBCONTROLLER( "CMccUlDlClient::StartInactivityTimerL" ) |
|
791 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
792 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
793 TInt link = this->FindLinkL( aLinkId ); |
|
794 iClientArray[link]->StartInactivityTimerL( aStreamId, aTimeoutTime ); |
|
795 __SUBCONTROLLER( "CMccUlDlClient::StartInactivityTimerL, exit" ) |
|
796 } |
|
797 |
|
798 // ----------------------------------------------------------------------------- |
|
799 // CMccUlDlClient::StopInactivityTimer |
|
800 // Stops inactivity timer for a stream in a given link. |
|
801 // ----------------------------------------------------------------------------- |
|
802 // |
|
803 EXPORT_C void CMccUlDlClient::StopInactivityTimerL( const TUint32 aLinkId, |
|
804 const TUint32 aStreamId ) |
|
805 { |
|
806 __SUBCONTROLLER( "CMccUlDlClient::StopInactivityTimerL" ) |
|
807 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
808 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
809 TInt link = this->FindLinkL( aLinkId ); |
|
810 iClientArray[link]->StopInactivityTimerL( aStreamId ); |
|
811 __SUBCONTROLLER( "CMccUlDlClient::StopInactivityTimerL, exit" ) |
|
812 } |
|
813 |
|
814 // ----------------------------------------------------------------------------- |
|
815 // CMccUlDlClient::SetAudioRouteL |
|
816 // ----------------------------------------------------------------------------- |
|
817 // |
|
818 EXPORT_C void CMccUlDlClient::SetAudioRouteL( |
|
819 TUint32 aLinkId, |
|
820 TUint32 aStreamId, |
|
821 TUint32 aRoutingDestination ) |
|
822 { |
|
823 __SUBCONTROLLER( "CMccUlDlClient::SetAudioRouteL" ) |
|
824 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
825 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
826 TInt link = this->FindLinkL( aLinkId ); |
|
827 iClientArray[ link ]->SetAudioRouteL( aStreamId, aRoutingDestination ); |
|
828 __SUBCONTROLLER( "CMccUlDlClient::StopInactivityTimerL, exit" ) |
|
829 } |
|
830 |
|
831 // ----------------------------------------------------------------------------- |
|
832 // CMccUlDlClient::GetAudioRouteL |
|
833 // ----------------------------------------------------------------------------- |
|
834 // |
|
835 EXPORT_C void CMccUlDlClient::GetAudioRouteL( |
|
836 TUint32 aLinkId, |
|
837 TUint32 aStreamId, |
|
838 TUint32& aRoutingDestination ) |
|
839 { |
|
840 __SUBCONTROLLER( "CMccUlDlClient::SetAudioRouteL" ) |
|
841 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
842 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
843 TInt link = this->FindLinkL( aLinkId ); |
|
844 iClientArray[ link ]->GetAudioRouteL( aStreamId, aRoutingDestination ); |
|
845 __SUBCONTROLLER( "CMccUlDlClient::StopInactivityTimerL, exit" ) |
|
846 } |
|
847 |
|
848 // ----------------------------------------------------------------------------- |
|
849 // CMccUlDlClient::GenerateStreamId |
|
850 // Generates a new stream identifier |
|
851 // ----------------------------------------------------------------------------- |
|
852 // |
|
853 EXPORT_C TUint32 CMccUlDlClient::GenerateStreamId() |
|
854 { |
|
855 __SUBCONTROLLER( "CMccUlDlClient::GenerateStreamId" ) |
|
856 TUint32 id = 0; |
|
857 |
|
858 while( id == 0 ) |
|
859 { |
|
860 id = static_cast<TUint32>( Math::Random() ); |
|
861 } |
|
862 |
|
863 __SUBCONTROLLER_INT1( "CMccUlDlClient::GenerateStreamId, exit with id", id ) |
|
864 return id; |
|
865 } |
|
866 |
|
867 // ----------------------------------------------------------------------------- |
|
868 // CMccUlDlClient::UnuseL |
|
869 // Ususes stream |
|
870 // ----------------------------------------------------------------------------- |
|
871 // |
|
872 EXPORT_C void CMccUlDlClient::UnuseL( |
|
873 const TUint32 aLinkId, |
|
874 const TUint32 aStreamId ) |
|
875 { |
|
876 __SUBCONTROLLER( "CMccUlDlClient::UnuseL" ) |
|
877 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
878 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
879 TInt linkId = FindLinkL( aLinkId ); |
|
880 iClientArray[linkId]->UnuseL( aStreamId ); |
|
881 __SUBCONTROLLER( "CMccUlDlClient::UnuseL, exit" ) |
|
882 } |
|
883 |
|
884 // ----------------------------------------------------------------------------- |
|
885 // CMccUlDlClient::GetLocalIpAddressesL |
|
886 // ----------------------------------------------------------------------------- |
|
887 // |
|
888 EXPORT_C void CMccUlDlClient::GetLocalIpAddressesL( |
|
889 TMccCreateLink& aClientData ) |
|
890 { |
|
891 __SUBCONTROLLER( "CMccUlDlClient::GetLocalIpAddressesL" ) |
|
892 |
|
893 TInt linkId = FindLinkL( aClientData.iLinkID ); |
|
894 iClientArray[linkId]->GetLocalIpAddressesL( aClientData ); |
|
895 |
|
896 __SUBCONTROLLER( "CMccUlDlClient::GetLocalIpAddressesL, exit" ) |
|
897 } |
|
898 |
|
899 |
|
900 // ----------------------------------------------------------------------------- |
|
901 // CMccUlDlClient::SendMccEventToClient |
|
902 // ----------------------------------------------------------------------------- |
|
903 // |
|
904 TInt CMccUlDlClient::SendMccEventToClient( TMccEvent& aEvent ) |
|
905 { |
|
906 __SUBCONTROLLER( "CMccUlDlClient::SendMccEventToClient" ) |
|
907 |
|
908 aEvent.iSessionId = iSessionId; |
|
909 |
|
910 return iMccEventHandler->SendMccEventToClient( aEvent ); |
|
911 } |
|
912 |
|
913 // ----------------------------------------------------------------------------- |
|
914 // CMccUlDlClient::StateChange |
|
915 // ----------------------------------------------------------------------------- |
|
916 // |
|
917 void CMccUlDlClient::StateChange( TInt aState, TUint32 aLinkId ) |
|
918 { |
|
919 __SUBCONTROLLER( "CMccUlDlClient::StateChange" ) |
|
920 |
|
921 iMccEventHandler->StateChange( aState, aLinkId ); |
|
922 } |
|
923 |
|
924 // ----------------------------------------------------------------------------- |
|
925 // CMccUlDlClient::ErrorOccured |
|
926 // ----------------------------------------------------------------------------- |
|
927 // |
|
928 void CMccUlDlClient::ErrorOccured( |
|
929 TInt aError, |
|
930 TUint32 /*aSessionId*/, |
|
931 TUint32 aLinkId, |
|
932 TUint32 aStreamId, |
|
933 TUint32 aEndpointId ) |
|
934 { |
|
935 __SUBCONTROLLER( "CMccUlDlClient::ErrorOccured" ) |
|
936 |
|
937 // Probably caller don't know the session id, so fill it here |
|
938 iMccEventHandler->ErrorOccured( aError, |
|
939 iSessionId, |
|
940 aLinkId, |
|
941 aStreamId, |
|
942 aEndpointId ); |
|
943 } |
|
944 |
|
945 // ----------------------------------------------------------------------------- |
|
946 // CMccUlDlClient::FindLinkL |
|
947 // finds correct link to handle |
|
948 // ----------------------------------------------------------------------------- |
|
949 // |
|
950 TInt CMccUlDlClient::FindLinkL( const TUint32 aLinkId ) |
|
951 { |
|
952 __SUBCONTROLLER_INT1( "CMccUlDlClient::FindLinkL, linkid", aLinkId ) |
|
953 TInt err = KErrNotFound; |
|
954 TInt index = 0; |
|
955 TBool flagFound = EFalse; |
|
956 |
|
957 for ( TInt i = 0; i < iClientArray.Count() && flagFound == EFalse ; i++ ) |
|
958 { |
|
959 TUint32 linkId = reinterpret_cast<TUint32>(iClientArray[i]); |
|
960 |
|
961 if( linkId == aLinkId ) |
|
962 { |
|
963 index = i; |
|
964 err = KErrNone; |
|
965 flagFound = ETrue; |
|
966 } |
|
967 } |
|
968 |
|
969 if ( KErrNotFound == err ) |
|
970 { |
|
971 __SUBCONTROLLER( "CMccUlDlClient::FindLinkL, Link not found" ) |
|
972 User::Leave( err ); |
|
973 } |
|
974 |
|
975 __SUBCONTROLLER( "CMccUlDlClient::FindLinkL, exit" ) |
|
976 return index; |
|
977 } |
|
978 |
|
979 // ----------------------------------------------------------------------------- |
|
980 // CMccUlDlClient::StoreDlStream() |
|
981 // stores the pointer to ul/dl stream |
|
982 // ----------------------------------------------------------------------------- |
|
983 // |
|
984 TInt CMccUlDlClient::StoreLink( CMccSubThreadClientBase* aClient ) |
|
985 { |
|
986 __SUBCONTROLLER( "CMccUlDlClient::StoreLink" ) |
|
987 TInt err = KErrNone; |
|
988 err = iClientArray.Append( aClient ); |
|
989 __SUBCONTROLLER_INT1( "CMccUlDlClient::StoreLink, exit with", err ) |
|
990 return err; |
|
991 } |
|
992 |
|
993 // ----------------------------------------------------------------------------- |
|
994 // CMccUlDlClient::BindContextIntoStreamL() |
|
995 // ----------------------------------------------------------------------------- |
|
996 // |
|
997 EXPORT_C void CMccUlDlClient::BindContextIntoStreamL( TUint32 aLinkId, |
|
998 TUint32 aStreamId, |
|
999 TUint32 aEndpointId, |
|
1000 const TMccCryptoContext& aCryptoContext ) |
|
1001 { |
|
1002 __SUBCONTROLLER( "CMccUlDlClient::BindContextIntoStreamL, IN ") |
|
1003 |
|
1004 TInt link = FindLinkL( aLinkId ); |
|
1005 |
|
1006 iClientArray[link]->BindContextIntoStreamL( aStreamId, aEndpointId, aCryptoContext ); |
|
1007 |
|
1008 __SUBCONTROLLER( "CMccUlDlClient::BindContextIntoStreamL, EXIT ") |
|
1009 } |
|
1010 |
|
1011 // ----------------------------------------------------------------------------- |
|
1012 // CMccUlDlClient::RemoveContextL() |
|
1013 // ----------------------------------------------------------------------------- |
|
1014 // |
|
1015 EXPORT_C void CMccUlDlClient::RemoveContextL( TUint32 aLinkId, |
|
1016 TUint32 aStreamId, |
|
1017 TUint32 aEndpointId ) |
|
1018 { |
|
1019 __SUBCONTROLLER( "CMccUlDlClient::RemoveContextL, IN ") |
|
1020 |
|
1021 TInt link = FindLinkL( aLinkId ); |
|
1022 |
|
1023 iClientArray[link]->RemoveContextL( aStreamId, aEndpointId ); |
|
1024 |
|
1025 __SUBCONTROLLER( "CMccUlDlClient::RemoveContextL, EXIT ") |
|
1026 } |
|
1027 |
|
1028 // ----------------------------------------------------------------------------- |
|
1029 // CMccUlDlClient::SetParameterL |
|
1030 // ----------------------------------------------------------------------------- |
|
1031 // |
|
1032 EXPORT_C void CMccUlDlClient::SetParameterL( |
|
1033 TUint32 aParam, |
|
1034 TUint32 aLinkId, |
|
1035 TUint32 aStreamId, |
|
1036 TUint32 aEndpointId, |
|
1037 const TDesC8& aVal ) |
|
1038 { |
|
1039 __SUBCONTROLLER( "CMccUlDlClient::SetParameterL" ) |
|
1040 __SUBCONTROLLER_INT1( "CMccUlDlClient linkid", aLinkId ) |
|
1041 __SUBCONTROLLER_INT1( "CMccUlDlClient streamId", aStreamId ) |
|
1042 TInt linkId = FindLinkL( aLinkId ); |
|
1043 iClientArray[linkId]->SetParameterL( aParam, aStreamId, aEndpointId, aVal ); |
|
1044 __SUBCONTROLLER( "CMccUlDlClient::SetParameterL, exit" ) |
|
1045 } |
|
1046 |
|
1047 // ----------------------------------------------------------------------------- |
|
1048 // CMccUlDlClient::GetParameterL |
|
1049 // ----------------------------------------------------------------------------- |
|
1050 // |
|
1051 EXPORT_C void GetParameterL( |
|
1052 TUint32 /*aParam*/, |
|
1053 TUint32 /*aLinkId*/, |
|
1054 TUint32 /*aStreamId*/, |
|
1055 TUint32 /*aEndpointId*/, |
|
1056 TDesC8& /*aVal*/ ) |
|
1057 { |
|
1058 __SUBCONTROLLER( "CMccUlDlClient::GetParameterL" ) |
|
1059 } |
|
1060 |
|
1061 // ========================== OTHER EXPORTED FUNCTIONS ========================= |
|
1062 |
|
1063 // End of File |