|
1 /* |
|
2 * Copyright (c) 2002 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: Camcorder MMF API Test DLL |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 // INCLUDE FILES |
|
21 |
|
22 #include "camctestclient_visualcheckdsp.h" |
|
23 #include <AudioPreference.h> |
|
24 |
|
25 |
|
26 // EXTERNAL DATA STRUCTURES |
|
27 |
|
28 // EXTERNAL FUNCTION PROTOTYPES |
|
29 |
|
30 // CONSTANTS |
|
31 |
|
32 // MACROS |
|
33 |
|
34 // LOCAL CONSTANTS AND MACROS |
|
35 |
|
36 // MODULE DATA STRUCTURES |
|
37 |
|
38 // LOCAL FUNCTION PROTOTYPES |
|
39 |
|
40 // FORWARD DECLARATIONS |
|
41 |
|
42 |
|
43 |
|
44 CCamcTestClient_visualcheckdsp::CCamcTestClient_visualcheckdsp () : CTimer(CActive::EPriorityHigh) |
|
45 { |
|
46 } |
|
47 |
|
48 |
|
49 CCamcTestClient_visualcheckdsp::~CCamcTestClient_visualcheckdsp () |
|
50 { |
|
51 #ifdef _DEBUG |
|
52 RDebug::Print(_L("CamCTestClient VisualCheck: Destructor Start")); |
|
53 #endif |
|
54 Cancel(); |
|
55 delete iCamc; |
|
56 #ifdef _DEBUG |
|
57 RDebug::Print(_L("CamCTestClient VisualCheck: Destructor Start")); |
|
58 #endif |
|
59 } |
|
60 |
|
61 CCamcTestClient_visualcheckdsp* CCamcTestClient_visualcheckdsp::NewL() |
|
62 { |
|
63 CCamcTestClient_visualcheckdsp* self = new(ELeave) CCamcTestClient_visualcheckdsp; |
|
64 CleanupStack::PushL(self); |
|
65 self->ConstructL( ); |
|
66 CleanupStack::Pop(self); |
|
67 return self; |
|
68 } |
|
69 |
|
70 void CCamcTestClient_visualcheckdsp::ConstructL( ) |
|
71 { |
|
72 iCamc = CVideoRecorderUtility::NewL( *this, KAudioPriorityVideoRecording, EMdaPriorityPreferenceTimeAndQuality ); |
|
73 iOpenReady = EFalse; |
|
74 iPrepareReady = EFalse; |
|
75 iRecordingReady = EFalse; |
|
76 iPaused = EFalse; |
|
77 i2ndTime = EFalse; |
|
78 iDoublePause = EFalse; |
|
79 iStartRecording2ndTime = EFalse; |
|
80 |
|
81 CTimer::ConstructL(); |
|
82 iTimeout = 0; |
|
83 iClosed = 0; |
|
84 CActiveScheduler::Add(this); |
|
85 } |
|
86 |
|
87 |
|
88 void CCamcTestClient_visualcheckdsp::Start_Active_ObjectL ( TestClientVCdspActions aAction, TInt aCameraHandle ) |
|
89 { |
|
90 |
|
91 iUiLevelCameraHandle = aCameraHandle; |
|
92 TUid controllerUid = {0x101F8503}; //implementation uid |
|
93 TUid formatUid = {0}; |
|
94 TUid formatUidG2 = {0x101F86D6}; |
|
95 TUid formatUidMP4 = {0x101F873D}; |
|
96 |
|
97 |
|
98 iAction = aAction; //iAction might be set to NULL after action has been executed |
|
99 TBuf<50> fileName; |
|
100 |
|
101 #if ( defined (__WINS__) || defined (__WINSCW__) ) |
|
102 _LIT(KFileName1,"c:\\recordQCIF_dsp_1.3gp"); |
|
103 _LIT(KFileName2,"c:\\recordQCIF_dsp_2.3gp"); |
|
104 _LIT(KFileName3,"c:\\recordQCIF_dsp_3.3gp"); |
|
105 _LIT(KFileName4,"c:\\recordQCIF_dsp_4.3gp"); |
|
106 _LIT(KFileName5,"c:\\recordQCIF_dsp_5.3gp"); |
|
107 _LIT(KFileName6,"c:\\recordQCIF_dsp_6.3gp"); |
|
108 _LIT(KFileName7,"c:\\recordQCIF_dsp_7.3gp"); |
|
109 _LIT(KFileName8,"c:\\recordQCIF_dsp_8.3gp"); |
|
110 _LIT(KFileName9_a,"c:\\recordQCIF_dsp_9_a.3gp"); |
|
111 _LIT(KFileName9_b,"c:\\recordQCIF_dsp_9_b.3gp"); |
|
112 _LIT(KFileName10,"c:\\recordQCIF_dsp_10.3gp"); |
|
113 _LIT(KFileName11,"c:\\recordQCIF_dsp_11.3gp"); |
|
114 _LIT(KFileName12,"c:\\recordQCIF_dsp_12.3gp"); |
|
115 _LIT(KFileName14,"c:\\recordQCIF_dsp_14.3gp"); |
|
116 _LIT(KFileName15,"c:\\recordQCIF_dsp_15.3gp"); |
|
117 _LIT(KFileName16,"c:\\recordQCIF_dsp_16.3gp"); |
|
118 _LIT(KFileName17,"c:\\recordQCIF_dsp_17.3gp"); |
|
119 _LIT(KFileName17_A,"c:\\recordQCIF_dsp_17_a.3gp"); |
|
120 _LIT(KFileName18,"c:\\recordQCIF_dsp_18.3g2"); |
|
121 _LIT(KFileName19,"c:\\recordQCIF_dsp_19.3g2"); |
|
122 _LIT(KFileName20,"c:\\recordQCIF_dsp_20.3g2"); |
|
123 _LIT(KFileName21,"c:\\recordQCIF_dsp_21.mp4"); |
|
124 #else |
|
125 _LIT(KFileName1,"E:\\recordQCIF_dsp_1.3gp"); |
|
126 _LIT(KFileName2,"E:\\recordQCIF_dsp_2.3gp"); |
|
127 _LIT(KFileName3,"E:\\recordQCIF_dsp_3.3gp"); |
|
128 _LIT(KFileName4,"E:\\recordQCIF_dsp_4.3gp"); |
|
129 _LIT(KFileName5,"E:\\recordQCIF_dsp_5.3gp"); |
|
130 _LIT(KFileName6,"E:\\recordQCIF_dsp_6.3gp"); |
|
131 _LIT(KFileName7,"E:\\recordQCIF_dsp_7.3gp"); |
|
132 _LIT(KFileName8,"E:\\recordQCIF_dsp_8.3gp"); |
|
133 _LIT(KFileName9_a,"E:\\recordQCIF_dsp_9_a.3gp"); |
|
134 _LIT(KFileName9_b,"E:\\recordQCIF_dsp_9_b.3gp"); |
|
135 _LIT(KFileName10,"E:\\recordQCIF_dsp_10.3gp"); |
|
136 _LIT(KFileName11,"E:\\recordQCIF_dsp_11.3gp"); |
|
137 _LIT(KFileName12,"E:\\recordQCIF_dsp_12.3gp"); |
|
138 _LIT(KFileName14,"E:\\recordQCIF_dsp_14.3gp"); |
|
139 _LIT(KFileName15,"C:\\recordQCIF_dsp_15.3gp"); |
|
140 _LIT(KFileName16,"E:\\recordQCIF_dsp_16.3gp"); |
|
141 _LIT(KFileName17,"E:\\recordQCIF_dsp_17.3gp"); |
|
142 _LIT(KFileName17_A,"E:\\recordQCIF_dsp_17_a.3gp"); |
|
143 _LIT(KFileName18,"E:\\recordQCIF_dsp_18.3g2"); |
|
144 _LIT(KFileName19,"E:\\recordQCIF_dsp_19.3g2"); |
|
145 _LIT(KFileName20,"E:\\recordQCIF_dsp_20.3g2"); |
|
146 _LIT(KFileName21,"E:\\recordQCIF_dsp_21.mp4"); |
|
147 #endif |
|
148 switch(iAction) |
|
149 { |
|
150 case K_VC_dsp_test_case_1: |
|
151 { |
|
152 fileName = KFileName1; |
|
153 break; |
|
154 } |
|
155 case K_VC_dsp_test_case_2: |
|
156 { |
|
157 fileName = KFileName2; |
|
158 break; |
|
159 } |
|
160 case K_VC_dsp_test_case_3: |
|
161 { |
|
162 fileName = KFileName3; |
|
163 break; |
|
164 } |
|
165 case K_VC_dsp_test_case_4: |
|
166 { |
|
167 fileName = KFileName4; |
|
168 break; |
|
169 } |
|
170 case K_VC_dsp_test_case_5: |
|
171 { |
|
172 fileName = KFileName5; |
|
173 break; |
|
174 } |
|
175 case K_VC_dsp_test_case_6: |
|
176 { |
|
177 fileName = KFileName6; |
|
178 break; |
|
179 } |
|
180 case K_VC_dsp_test_case_7: |
|
181 { |
|
182 fileName = KFileName7; |
|
183 break; |
|
184 } |
|
185 case K_VC_dsp_test_case_8: |
|
186 { |
|
187 fileName = KFileName8; |
|
188 break; |
|
189 } |
|
190 case K_VC_dsp_test_case_9_a: |
|
191 { |
|
192 fileName = KFileName9_a; |
|
193 break; |
|
194 } |
|
195 case K_VC_dsp_test_case_9_b: |
|
196 { |
|
197 fileName = KFileName9_b; |
|
198 break; |
|
199 } |
|
200 case K_VC_dsp_test_case_10: |
|
201 { |
|
202 fileName = KFileName10; |
|
203 break; |
|
204 } |
|
205 case K_VC_dsp_test_case_11: |
|
206 { |
|
207 fileName = KFileName11; |
|
208 break; |
|
209 } |
|
210 case K_VC_dsp_test_case_12: |
|
211 { |
|
212 fileName = KFileName12; |
|
213 break; |
|
214 } |
|
215 case K_VC_dsp_test_case_14: |
|
216 { |
|
217 fileName = KFileName14; |
|
218 break; |
|
219 } |
|
220 case K_VC_dsp_test_case_15: |
|
221 { |
|
222 fileName = KFileName15; |
|
223 break; |
|
224 } |
|
225 case K_VC_dsp_test_case_16: |
|
226 { |
|
227 fileName = KFileName16; |
|
228 break; |
|
229 } |
|
230 case K_VC_dsp_test_case_17: |
|
231 { |
|
232 fileName = KFileName17; |
|
233 break; |
|
234 } |
|
235 case K_VC_dsp_test_case_17_a: |
|
236 { |
|
237 fileName = KFileName17_A; |
|
238 break; |
|
239 } |
|
240 case K_VC_dsp_test_case_18: |
|
241 { |
|
242 fileName = KFileName18; |
|
243 break; |
|
244 } |
|
245 case K_VC_dsp_test_case_19: |
|
246 { |
|
247 fileName = KFileName19; |
|
248 break; |
|
249 } |
|
250 case K_VC_dsp_test_case_20: |
|
251 { |
|
252 fileName = KFileName20; |
|
253 break; |
|
254 } |
|
255 case K_VC_dsp_test_case_21: |
|
256 { |
|
257 fileName = KFileName21; |
|
258 break; |
|
259 } |
|
260 default: |
|
261 break; |
|
262 } |
|
263 |
|
264 TInt err = KErrNone; |
|
265 switch ( iAction ) |
|
266 { |
|
267 case K_VC_dsp_test_case_9_a : |
|
268 TRAP(err, |
|
269 iCamc->OpenFileL( fileName, iUiLevelCameraHandle, |
|
270 controllerUid, |
|
271 formatUid, |
|
272 _L8("video/H263-2000; profile=0; level=45"), |
|
273 TFourCC(' ', 'A', 'M', 'R') )); |
|
274 break; |
|
275 case K_VC_dsp_test_case_17 : |
|
276 case K_VC_dsp_test_case_17_a : |
|
277 TRAP(err, |
|
278 iCamc->OpenFileL( fileName, iUiLevelCameraHandle, |
|
279 controllerUid, |
|
280 formatUid, |
|
281 _L8("video/mp4v-es"), |
|
282 TFourCC(' ', 'A', 'M', 'R') )); |
|
283 break; |
|
284 case K_VC_dsp_test_case_18: |
|
285 TRAP(err, |
|
286 iCamc->OpenFileL( fileName, iUiLevelCameraHandle, |
|
287 controllerUid, |
|
288 formatUidG2, |
|
289 _L8("video/H263-2000"), |
|
290 TFourCC(' ', 'A', 'M', 'R') )); |
|
291 break; |
|
292 case K_VC_dsp_test_case_19: |
|
293 TRAP(err, |
|
294 iCamc->OpenFileL( fileName, iUiLevelCameraHandle, |
|
295 controllerUid, |
|
296 formatUidG2, |
|
297 _L8("video/mp4v-es"), |
|
298 TFourCC(' ', 'Q', '1', '3') )); |
|
299 break; |
|
300 case K_VC_dsp_test_case_20: |
|
301 TRAP(err, |
|
302 iCamc->OpenFileL( fileName, iUiLevelCameraHandle, |
|
303 controllerUid, |
|
304 formatUidG2, |
|
305 _L8("video/H263-2000"), |
|
306 TFourCC(' ', 'Q', '1', '3') )); |
|
307 break; |
|
308 case K_VC_dsp_test_case_21: |
|
309 TRAP(err, |
|
310 iCamc->OpenFileL( fileName, iUiLevelCameraHandle, |
|
311 controllerUid, |
|
312 formatUidMP4, |
|
313 _L8("video/mp4v-es; profile-level-id=3"), |
|
314 TFourCC(' ', 'A', 'A', 'C') )); |
|
315 break; |
|
316 default: |
|
317 { |
|
318 TRAP(err, |
|
319 iCamc->OpenFileL( fileName, iUiLevelCameraHandle, |
|
320 controllerUid, |
|
321 formatUid, |
|
322 _L8("video/H263-2000"), |
|
323 TFourCC(' ', 'A', 'M', 'R') )); |
|
324 } |
|
325 } |
|
326 if (err) |
|
327 { |
|
328 User::Leave(99); |
|
329 } |
|
330 iOpenReady = EFalse; |
|
331 |
|
332 // Main part of program is a wait loop |
|
333 // This function completes when the scheduler stops |
|
334 CActiveScheduler::Start(); |
|
335 |
|
336 if ( iError ) |
|
337 { |
|
338 User::Leave( iError ); |
|
339 } |
|
340 } |
|
341 |
|
342 void CCamcTestClient_visualcheckdsp::RunL() |
|
343 { |
|
344 |
|
345 // Trap RunL, to catch if the AO leaves. |
|
346 // A Walkaround... |
|
347 // RunError() should be used in this case, but |
|
348 // Apparently, it is not possible to use the AO RunError() virtual function |
|
349 // for that purpose, it is not called. |
|
350 |
|
351 TRAPD( err,RunLTrappedL() ); |
|
352 if ( err ) |
|
353 { |
|
354 SomethingInActiveObjectIsLeaving(err); |
|
355 } |
|
356 } |
|
357 |
|
358 void CCamcTestClient_visualcheckdsp::RunLTrappedL() |
|
359 { |
|
360 #ifdef _DEBUG |
|
361 RDebug::Print(_L("CamCTestClient VisualCheck:RunL")); |
|
362 #endif |
|
363 if ( iOpenReady ) |
|
364 { |
|
365 iOpenReady = EFalse; |
|
366 |
|
367 switch(iAction) |
|
368 { |
|
369 case K_VC_dsp_test_case_1: |
|
370 { |
|
371 break; |
|
372 } |
|
373 case K_VC_dsp_test_case_2: |
|
374 { |
|
375 iCamc->SetVideoFrameSizeL(TSize(128,96)); |
|
376 iCamc->SetVideoFrameRateL(TReal32(5)); |
|
377 iCamc->SetVideoBitRateL(TInt(28000)); |
|
378 iCamc->SetAudioEnabledL(ETrue); |
|
379 iCamc->SetAudioBitRateL(12200); |
|
380 iCamc->SetMaxClipSizeL(95000); |
|
381 break; |
|
382 } |
|
383 case K_VC_dsp_test_case_3: |
|
384 { |
|
385 iCamc->SetVideoFrameSizeL(TSize(128,96)); |
|
386 iCamc->SetVideoFrameRateL(TReal32(7.5)); |
|
387 iCamc->SetVideoBitRateL(TInt(28000)); |
|
388 iCamc->SetAudioEnabledL(ETrue); |
|
389 iCamc->SetAudioBitRateL(6700); |
|
390 iCamc->SetMaxClipSizeL(95000); |
|
391 break; |
|
392 } |
|
393 case K_VC_dsp_test_case_4: |
|
394 { |
|
395 iCamc->SetVideoFrameSizeL(TSize(128,96)); |
|
396 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
397 iCamc->SetVideoBitRateL(TInt(28000)); |
|
398 iCamc->SetAudioEnabledL(ETrue); |
|
399 iCamc->SetAudioBitRateL(5150); |
|
400 iCamc->SetMaxClipSizeL(250000); |
|
401 break; |
|
402 } |
|
403 case K_VC_dsp_test_case_5: |
|
404 { |
|
405 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
406 iCamc->SetVideoFrameRateL(TReal32(5)); |
|
407 iCamc->SetVideoBitRateL(TInt(42000)); |
|
408 iCamc->SetAudioEnabledL(ETrue); |
|
409 iCamc->SetAudioBitRateL(7400); |
|
410 iCamc->SetMaxClipSizeL(95000); |
|
411 break; |
|
412 } |
|
413 case K_VC_dsp_test_case_6: |
|
414 { |
|
415 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
416 iCamc->SetVideoFrameRateL(TReal32(7.5)); |
|
417 iCamc->SetVideoBitRateL(TInt(42000)); |
|
418 iCamc->SetAudioEnabledL(ETrue); |
|
419 iCamc->SetAudioBitRateL(4750); |
|
420 iCamc->SetMaxClipSizeL(95000); |
|
421 break; |
|
422 } |
|
423 case K_VC_dsp_test_case_7: |
|
424 { |
|
425 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
426 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
427 iCamc->SetVideoBitRateL(TInt(42000)); |
|
428 iCamc->SetAudioEnabledL(ETrue); |
|
429 iCamc->SetAudioBitRateL(12200); |
|
430 break; |
|
431 } |
|
432 case K_VC_dsp_test_case_8: |
|
433 { |
|
434 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
435 iCamc->SetVideoFrameRateL(TReal32(7.5)); |
|
436 iCamc->SetVideoBitRateL(TInt(64000)); |
|
437 iCamc->SetAudioEnabledL(ETrue); |
|
438 iCamc->SetAudioBitRateL(12200); |
|
439 iCamc->SetMaxClipSizeL(250000); |
|
440 break; |
|
441 } |
|
442 case K_VC_dsp_test_case_9_a: |
|
443 { |
|
444 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
445 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
446 iCamc->SetVideoBitRateL(TInt(128000)); |
|
447 iCamc->SetAudioEnabledL(ETrue); |
|
448 iCamc->SetAudioBitRateL(12200); |
|
449 break; |
|
450 } |
|
451 case K_VC_dsp_test_case_9_b: |
|
452 { |
|
453 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
454 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
455 iCamc->SetVideoBitRateL(TInt(64000)); |
|
456 iCamc->SetAudioEnabledL(ETrue); |
|
457 iCamc->SetAudioBitRateL(12200); |
|
458 break; |
|
459 } |
|
460 case K_VC_dsp_test_case_10: |
|
461 { |
|
462 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
463 iCamc->SetVideoFrameRateL(TReal32(7.5)); |
|
464 iCamc->SetVideoBitRateL(TInt(42000)); |
|
465 iCamc->SetAudioEnabledL(EFalse); |
|
466 iCamc->SetMaxClipSizeL(95000); |
|
467 break; |
|
468 } |
|
469 case K_VC_dsp_test_case_11: |
|
470 { |
|
471 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
472 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
473 iCamc->SetVideoBitRateL(TInt(64000)); |
|
474 iCamc->SetAudioEnabledL(EFalse); |
|
475 iCamc->SetMaxClipSizeL(500000); |
|
476 break; |
|
477 } |
|
478 case K_VC_dsp_test_case_12: |
|
479 { |
|
480 iCamc->SetVideoFrameSizeL(TSize(128,96)); |
|
481 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
482 iCamc->SetVideoBitRateL(KMMFVariableVideoBitRate); |
|
483 iCamc->SetMaxClipSizeL(95000); |
|
484 break; |
|
485 } |
|
486 case K_VC_dsp_test_case_15: |
|
487 { |
|
488 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
489 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
490 iCamc->SetVideoBitRateL(KMMFVariableVideoBitRate); |
|
491 break; |
|
492 } |
|
493 case K_VC_dsp_test_case_16: |
|
494 { |
|
495 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
496 iCamc->SetVideoFrameRateL(TReal32(10)); |
|
497 iCamc->SetVideoBitRateL(TInt(64000)); |
|
498 iCamc->SetAudioEnabledL(ETrue); |
|
499 iCamc->SetAudioBitRateL(12200); |
|
500 break; |
|
501 } |
|
502 case K_VC_dsp_test_case_17: |
|
503 { |
|
504 iCamc->SetVideoFrameSizeL(TSize(128,96)); |
|
505 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
506 iCamc->SetVideoBitRateL(TInt(64000)); |
|
507 iCamc->SetAudioEnabledL(ETrue); |
|
508 iCamc->SetAudioBitRateL(12200); |
|
509 break; |
|
510 } |
|
511 case K_VC_dsp_test_case_17_a: |
|
512 { |
|
513 iCamc->SetVideoFrameSizeL(TSize(128,96)); |
|
514 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
515 iCamc->SetVideoBitRateL(TInt(64000)); |
|
516 iCamc->SetAudioEnabledL(ETrue); |
|
517 iCamc->SetAudioBitRateL(12200); |
|
518 iCamc->SetMaxClipSizeL(500000); |
|
519 break; |
|
520 } |
|
521 case K_VC_dsp_test_case_18: |
|
522 { |
|
523 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
524 iCamc->SetVideoFrameRateL(TReal32(10)); |
|
525 iCamc->SetVideoBitRateL(TInt(64000)); |
|
526 iCamc->SetAudioEnabledL(ETrue); |
|
527 iCamc->SetAudioBitRateL(12200); |
|
528 break; |
|
529 } |
|
530 case K_VC_dsp_test_case_19: |
|
531 { |
|
532 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
533 iCamc->SetVideoFrameRateL(TReal32(10)); |
|
534 iCamc->SetVideoBitRateL(TInt(64000)); |
|
535 iCamc->SetAudioEnabledL(ETrue); |
|
536 iCamc->SetMaxClipSizeL(300000); |
|
537 //bitrate setting TBD |
|
538 iCamc->SetAudioBitRateL(6800); |
|
539 break; |
|
540 } |
|
541 case K_VC_dsp_test_case_20: |
|
542 { |
|
543 iCamc->SetVideoFrameSizeL(TSize(176,144)); |
|
544 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
545 iCamc->SetVideoBitRateL(TInt(64000)); |
|
546 iCamc->SetAudioEnabledL(ETrue); |
|
547 //bitrate setting TBD |
|
548 iCamc->SetAudioBitRateL(6800); |
|
549 break; |
|
550 } |
|
551 case K_VC_dsp_test_case_21: |
|
552 { |
|
553 iCamc->SetVideoFrameSizeL(TSize(352,288)); |
|
554 iCamc->SetVideoFrameRateL(TReal32(15)); |
|
555 iCamc->SetVideoBitRateL(TInt(384000)); |
|
556 iCamc->SetAudioEnabledL(ETrue); |
|
557 iCamc->SetAudioBitRateL(32000); |
|
558 break; |
|
559 } |
|
560 default: |
|
561 break; |
|
562 } |
|
563 |
|
564 |
|
565 |
|
566 iCamc->Prepare(); |
|
567 } |
|
568 else if ( iPrepareReady ) |
|
569 { |
|
570 iPrepareReady = EFalse; |
|
571 iCamc->Record(); |
|
572 switch(iAction) |
|
573 { |
|
574 case K_VC_dsp_test_case_1: |
|
575 { |
|
576 CTimer::After( 30 * TInt32 ( 1E6 ) ); // Records for 30 sec |
|
577 break; |
|
578 } |
|
579 case K_VC_dsp_test_case_2: |
|
580 case K_VC_dsp_test_case_3: |
|
581 case K_VC_dsp_test_case_4: |
|
582 case K_VC_dsp_test_case_5: |
|
583 case K_VC_dsp_test_case_6: |
|
584 case K_VC_dsp_test_case_19: |
|
585 { |
|
586 // The timeout will be generated by the SetMaxClipSize. |
|
587 break; |
|
588 } |
|
589 case K_VC_dsp_test_case_14: |
|
590 { |
|
591 CTimer::After( 1 * TInt32 ( 1E6 ) ); |
|
592 break; |
|
593 } |
|
594 case K_VC_dsp_test_case_16: |
|
595 case K_VC_dsp_test_case_17: |
|
596 case K_VC_dsp_test_case_17_a: |
|
597 case K_VC_dsp_test_case_18: |
|
598 { |
|
599 CTimer::After( 10 * TInt32 ( 1E6 ) ); // Records for 10 sec |
|
600 iStartRecording2ndTime = EFalse; |
|
601 break; |
|
602 } |
|
603 case K_VC_dsp_test_case_12: |
|
604 { |
|
605 CTimer::After( 4 * TInt32 ( 1E6 ) ); // Records for 4 sec |
|
606 iStartRecording2ndTime = EFalse; |
|
607 } |
|
608 break; |
|
609 case K_VC_dsp_test_case_20: |
|
610 { |
|
611 CTimer::After( 15 * TInt32 ( 1E6 ) ); // Records for 15 sec + pause + another 15 sec |
|
612 iStartRecording2ndTime = EFalse; |
|
613 break; |
|
614 } |
|
615 case K_VC_dsp_test_case_21: |
|
616 { |
|
617 CTimer::After( 30 * TInt32 ( 1E6 ) ); // Records for 30 sec + pause + another 30 sec |
|
618 iStartRecording2ndTime = EFalse; |
|
619 break; |
|
620 } |
|
621 |
|
622 default: |
|
623 { |
|
624 CTimer::After( 10 * TInt32 ( 1E6 ) ); |
|
625 break; |
|
626 } |
|
627 } |
|
628 } |
|
629 else if ( iRecordingReady ) |
|
630 { |
|
631 iRecordingReady = EFalse; |
|
632 iCamc->Close(); |
|
633 iClosed = ETrue; |
|
634 CTimer::After(1000); |
|
635 } |
|
636 else if (iClosed) |
|
637 { |
|
638 CActiveScheduler::Stop(); |
|
639 } |
|
640 else if ( iPaused ) //resume |
|
641 { |
|
642 switch(iAction) |
|
643 { |
|
644 case K_VC_dsp_test_case_7: |
|
645 { |
|
646 iCamc->Record(); |
|
647 CTimer::After( 50 * TInt32 ( 1E6 ) ); // Records for 50 sec. |
|
648 iPaused = EFalse; |
|
649 iAction = K_VC_dsp_none; |
|
650 break; |
|
651 } |
|
652 case K_VC_dsp_test_case_9_a: |
|
653 { |
|
654 if ( iDoublePause ) |
|
655 { |
|
656 iCamc->Record(); |
|
657 CTimer::After( 2*60 * TInt32 ( 1E6 ) ); // Record 2 minutes |
|
658 iPaused = EFalse; |
|
659 iAction = K_VC_dsp_none; |
|
660 } |
|
661 else |
|
662 { |
|
663 iCamc->Record(); |
|
664 CTimer::After( 2*60 * TInt32 ( 1E6 ) ); // Record 2 minutes |
|
665 iPaused = EFalse; |
|
666 iDoublePause = ETrue; |
|
667 } |
|
668 break; |
|
669 } |
|
670 case K_VC_dsp_test_case_9_b: |
|
671 { |
|
672 if ( iDoublePause ) |
|
673 { |
|
674 iCamc->Record(); |
|
675 CTimer::After( 2*60 * TInt32 ( 1E6 ) ); // Record 2 minutes |
|
676 iPaused = EFalse; |
|
677 iAction = K_VC_dsp_none; |
|
678 } |
|
679 else |
|
680 { |
|
681 iCamc->Record(); |
|
682 CTimer::After( 2*60 * TInt32 ( 1E6 ) ); // Record 2 minutes |
|
683 iPaused = EFalse; |
|
684 iDoublePause = ETrue; |
|
685 } |
|
686 break; |
|
687 } |
|
688 case K_VC_dsp_test_case_12: |
|
689 case K_VC_dsp_test_case_19: |
|
690 { |
|
691 iCamc->Record(); |
|
692 iPaused = EFalse; |
|
693 break; |
|
694 } |
|
695 case K_VC_dsp_test_case_20: |
|
696 { |
|
697 iCamc->Record(); |
|
698 CTimer::After( 15 * TInt32 ( 1E6 ) ); // Records for 15 sec. |
|
699 iPaused = EFalse; |
|
700 iAction = K_VC_dsp_none; |
|
701 break; |
|
702 } |
|
703 case K_VC_dsp_test_case_21: |
|
704 { |
|
705 iCamc->Record(); |
|
706 CTimer::After( 30 * TInt32 ( 1E6 ) ); // Records for 30 sec. |
|
707 iPaused = EFalse; |
|
708 iAction = K_VC_dsp_none; |
|
709 break; |
|
710 } |
|
711 case K_VC_dsp_test_case_15: |
|
712 { |
|
713 if ( iDoublePause ) |
|
714 { |
|
715 iCamc->Record(); |
|
716 iAction = K_VC_dsp_none; |
|
717 // Record until disk full |
|
718 } |
|
719 else |
|
720 { |
|
721 iCamc->Record(); |
|
722 CTimer::After( 2*60 * TInt32 ( 1E6 ) ); // Record 2 minutes |
|
723 iPaused = EFalse; |
|
724 iDoublePause = ETrue; |
|
725 } |
|
726 break; |
|
727 } |
|
728 default: |
|
729 break; |
|
730 } |
|
731 } |
|
732 else //timer |
|
733 { |
|
734 switch(iAction) |
|
735 { |
|
736 case K_VC_dsp_test_case_7: |
|
737 { |
|
738 iCamc->PauseL(); |
|
739 iPaused = ETrue; |
|
740 CTimer::After( 5 * TInt32 ( 1E6 ) ); // Pause 5 sec |
|
741 break; |
|
742 } |
|
743 case K_VC_dsp_test_case_8: |
|
744 { |
|
745 if ( i2ndTime ) |
|
746 { |
|
747 // Volume down |
|
748 iCamc->SetGainL( 1 ); |
|
749 iAction = K_VC_dsp_none; |
|
750 } |
|
751 else |
|
752 { |
|
753 // Volume Up |
|
754 TInt aSetGain; |
|
755 aSetGain = iCamc->MaxGainL(); |
|
756 iCamc->SetGainL( aSetGain ); |
|
757 CTimer::After( 15 * TInt32 ( 1E6 ) ); |
|
758 i2ndTime = ETrue; |
|
759 } |
|
760 break; |
|
761 } |
|
762 case K_VC_dsp_test_case_9_a: |
|
763 case K_VC_dsp_test_case_9_b: |
|
764 case K_VC_dsp_test_case_15: |
|
765 { |
|
766 iCamc->PauseL(); |
|
767 iPaused = ETrue; |
|
768 |
|
769 if ( i2ndTime ) |
|
770 { |
|
771 CTimer::After( 30 * TInt32 ( 1E6 ) ); // Pauses for 30s |
|
772 } |
|
773 else |
|
774 { |
|
775 CTimer::After( 10 * TInt32 ( 1E6 ) ); // Pauses for 10s |
|
776 i2ndTime = ETrue; |
|
777 } |
|
778 break; |
|
779 } |
|
780 case K_VC_dsp_test_case_10: |
|
781 { |
|
782 iCamc->SetVideoBitRateL( VIDEO_BIT_RATE_10 ); |
|
783 break; |
|
784 } |
|
785 case K_VC_dsp_test_case_11: |
|
786 case K_VC_dsp_test_case_17: |
|
787 case K_VC_dsp_test_case_17_a: |
|
788 { |
|
789 iCamc->SetVideoBitRateL( VIDEO_BIT_RATE_11 ); |
|
790 iAction = K_VC_dsp_none; |
|
791 break; |
|
792 } |
|
793 case K_VC_dsp_test_case_12: |
|
794 case K_VC_dsp_test_case_19: |
|
795 case K_VC_dsp_test_case_20: |
|
796 case K_VC_dsp_test_case_21: |
|
797 { |
|
798 iCamc->PauseL(); |
|
799 iPaused = ETrue; |
|
800 CTimer::After( 10 * TInt32 ( 1E6 ) ); |
|
801 break; |
|
802 } |
|
803 case K_VC_dsp_test_case_16: |
|
804 { |
|
805 if(iStartRecording2ndTime) |
|
806 { |
|
807 iPrepareReady = ETrue; |
|
808 CTimer::After( 10 * TInt32 ( 1E6 ) ); |
|
809 iAction = K_VC_dsp_none; |
|
810 } |
|
811 else |
|
812 { |
|
813 iCamc->Stop(); |
|
814 CTimer::After( 3 * TInt32 ( 1E6 ) ); |
|
815 iStartRecording2ndTime = ETrue; |
|
816 } |
|
817 break; |
|
818 } |
|
819 default: |
|
820 iCamc->Stop(); |
|
821 // Simulates that iRecording has been completed through the |
|
822 // MvruoRecordComplete callback |
|
823 iRecordingReady=ETrue; |
|
824 CTimer::After( 1 * TInt32 ( 1E6 ) ); |
|
825 |
|
826 } |
|
827 } |
|
828 |
|
829 } |
|
830 |
|
831 void CCamcTestClient_visualcheckdsp::DoCancel() |
|
832 { |
|
833 iCamc->Stop(); |
|
834 iCamc->Close(); |
|
835 delete iCamc; |
|
836 iCamc = NULL; |
|
837 } |
|
838 |
|
839 |
|
840 _LIT(KMyPanicDescriptor, "Callback error"); |
|
841 void CCamcTestClient_visualcheckdsp::MvruoOpenComplete( TInt aError ) |
|
842 { |
|
843 if (aError) |
|
844 { |
|
845 SomethingInActiveObjectIsLeaving(aError); |
|
846 } |
|
847 else |
|
848 { |
|
849 iOpenReady = ETrue; |
|
850 RunL(); // RunL is trapped, cannot actually leave. |
|
851 } |
|
852 } |
|
853 |
|
854 void CCamcTestClient_visualcheckdsp::MvruoPrepareComplete( TInt aError ) |
|
855 { |
|
856 if (aError) |
|
857 { |
|
858 SomethingInActiveObjectIsLeaving(aError); |
|
859 } |
|
860 else |
|
861 { |
|
862 iPrepareReady = ETrue; |
|
863 RunL(); // RunL is trapped, cannot actually leave. |
|
864 } |
|
865 } |
|
866 |
|
867 void CCamcTestClient_visualcheckdsp::MvruoRecordComplete( TInt aError ) |
|
868 { |
|
869 #ifdef _DEBUG |
|
870 RDebug::Print(_L("CamCTestClient VisualCheck:Record Complete")); |
|
871 #endif |
|
872 if ((aError) && (aError != KErrCompletion)) |
|
873 { |
|
874 SomethingInActiveObjectIsLeaving(aError); |
|
875 } |
|
876 else |
|
877 { |
|
878 iRecordingReady = ETrue; |
|
879 RunL(); // RunL is trapped, cannot actually leave. |
|
880 } |
|
881 } |
|
882 |
|
883 void CCamcTestClient_visualcheckdsp::MvruoEvent(const TMMFEvent& /*aEvent*/) |
|
884 { |
|
885 /* Should be never called ... */ |
|
886 SomethingInActiveObjectIsLeaving(99); |
|
887 } |
|
888 |
|
889 void CCamcTestClient_visualcheckdsp::SomethingInActiveObjectIsLeaving (TInt aError) |
|
890 { |
|
891 |
|
892 #ifdef _DEBUG |
|
893 RDebug::Print(_L("CamCTestClient VisualCheck: SomethingInActiveObjectIsLeaving ")); |
|
894 #endif |
|
895 // Something in the active object is leaving |
|
896 // or a fatal error has been found. |
|
897 |
|
898 // Stop the active object scheduler. |
|
899 iError=aError; |
|
900 iCamc->Stop(); |
|
901 CActiveScheduler::Stop(); |
|
902 } |
|
903 |
|
904 |
|
905 |