camerasrv_plat/media_recorder_api/tsrc/src/camcTestClient_visualcheckdsp.cpp
changeset 0 9b3e960ffc8a
child 42 605672cc2a86
equal deleted inserted replaced
-1:000000000000 0:9b3e960ffc8a
       
     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