dosservices/tsrc/dsytesttool/dosservercontrol/src/tfdosservercontrol.cpp
changeset 0 4e1aa6a622a0
equal deleted inserted replaced
-1:000000000000 0:4e1aa6a622a0
       
     1 /*
       
     2 * Copyright (c) 2009 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:  Implementation of CTFDosServerControl class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #ifndef RD_STARTUP_CHANGE
       
    21 #include <sysstartup.h>
       
    22 #endif // RD_STARTUP_CHANGE
       
    23 
       
    24 #include "ctffactory.h"
       
    25 #include "tftypes.h"
       
    26 #include <psvariables.h>
       
    27 #include "dsytesttooltrace.h"
       
    28 #include "dsyenums.h"
       
    29 #include "ctfdosservercontrol.h"
       
    30 #include "ctfdosservercontroltestcase.h"
       
    31 #include "ctfdoseventlistener.h"
       
    32 
       
    33 
       
    34 // -----------------------------------------------------------------------------
       
    35 // GetDosServerControl
       
    36 // -----------------------------------------------------------------------------
       
    37 EXPORT_C MTFDosServerControl* GetDosServerControl( void )
       
    38     {
       
    39     CTFStub* stub = CTFFactory::Stub( KTFStubTypeDosServerControl );
       
    40     return STATIC_CAST( CTFDosServerControl*, stub );
       
    41     }
       
    42 
       
    43 
       
    44 // -----------------------------------------------------------------------------
       
    45 // MTFDosServerControl::MTFDosServerControl
       
    46 // -----------------------------------------------------------------------------
       
    47 MTFDosServerControl::MTFDosServerControl( void )
       
    48     {
       
    49     }
       
    50     
       
    51     
       
    52 // -----------------------------------------------------------------------------
       
    53 // MTFDosServerControl::~MTFDosServerControl
       
    54 // -----------------------------------------------------------------------------
       
    55 MTFDosServerControl::~MTFDosServerControl( void )
       
    56     {
       
    57     }
       
    58     
       
    59 
       
    60 CTFDosServerControl::CTFDosServerControl( void )
       
    61 : CTFStub( KTFStubTypeDosServerControl )
       
    62     {
       
    63     }
       
    64     
       
    65 //lint -e1740 Pointer not directly deleted by destructor
       
    66 CTFDosServerControl::~CTFDosServerControl( void )
       
    67     {
       
    68     ResetDosServices();
       
    69     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerControl::~CTFDosServerControl() - DosServer connection closed" ) ) );
       
    70     }
       
    71 //lint +e1740    
       
    72     
       
    73 void CTFDosServerControl::InitializeL( void )
       
    74     {
       
    75     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerControl::InitializeL()" ) ) );
       
    76 
       
    77     User::LeaveIfError( iDosServer.Connect() );
       
    78     iEventListener = new ( ELeave ) CTFDosServerEventListener( iDosServer );
       
    79     TRegisterEvent eventList[] = 
       
    80         {
       
    81 #ifndef RD_STARTUP_CHANGE       
       
    82             { KNotifySelfTestStatus, sizeof ( TInt ), EQueue },
       
    83             { KDoMtcInitiatedShutdown, sizeof ( TInt ), EQueue },
       
    84             { KPhonePowerOn, 0, EQueue },
       
    85 #endif //RD_STARTUP_CHANGE
       
    86 
       
    87 #ifndef RD_STARTUP_CHANGE
       
    88             { KSimReady, sizeof ( TInt ), EQueue },
       
    89             { KSimChanged, sizeof ( TInt ), EQueue },
       
    90             { KSimLockStatus, sizeof ( TInt ), EQueue },
       
    91             { KSimState, sizeof ( TInt ), EQueue },
       
    92             { KCallsForwardingStatus, sizeof ( TInt ), EQueue },
       
    93             { KVoiceMailStatus, sizeof ( TInt ), EQueue },
       
    94             { KFaxMessage, sizeof ( TInt ), EQueue },
       
    95             { KEmailMessage, sizeof ( TInt ), EQueue },
       
    96 #endif //RD_STARTUP_CHANGE
       
    97 
       
    98      //       { KNetworkBars, sizeof ( TInt ), EQueue },
       
    99 
       
   100 #ifndef RD_STARTUP_CHANGE
       
   101             { KSecurityCode, sizeof ( TInt ), EQueue },
       
   102 #endif //RD_STARTUP_CHANGE
       
   103 
       
   104 #ifndef RD_STARTUP_CHANGE
       
   105             { KCurrentSimOwnedStatus, sizeof ( TInt ), EQueue },
       
   106 #endif //RD_STARTUP_CHANGE
       
   107 
       
   108 #ifndef __ACCESSORY_FW
       
   109             { KAudioLinkOpenReq, sizeof ( TInt ), EQueue },
       
   110             { KAudioLinkCloseReq, sizeof ( TInt ), EQueue },
       
   111             { KActivateVoiceRecognitionReq, sizeof ( TInt ), EQueue },
       
   112             { KAbortVoiceRecognitionReq, sizeof ( TInt ), EQueue },
       
   113             { KVoiceRecognitionStatusReq, sizeof ( TInt ), EQueue },
       
   114             { KQuerySpeedDialNumberReq, sizeof ( TInt ), EQueue },
       
   115             { KQueryLastDialledVoiceNumberReq, sizeof ( TInt ), EQueue },
       
   116             { KAccessoryModeChangedInd, sizeof ( TInt ), EQueue },
       
   117             { KBTAccessoryModeChangedInd, sizeof ( TInt ), EQueue },
       
   118             { KAccessorySpeakerVolumeSetInd, sizeof ( TInt ), EQueue },
       
   119             { KServiceLevelConnEstablishedInd, sizeof ( TInt ), EQueue },
       
   120             { KHeadsetButtonChanged, sizeof ( TInt ), EQueue },
       
   121             { KHandsfreeModeChanged, sizeof ( TInt ), EQueue },
       
   122             { KOutputVolumeLevelChanged, sizeof ( TInt ), EQueue },
       
   123 #endif //__ACCESSORY_FW
       
   124             
       
   125 #ifndef RD_STARTUP_CHANGE
       
   126             { KSmsStorageStatusChanged, sizeof ( TDosSmsStorageStatus ), EQueue },
       
   127 #endif // RD_STARTUP_CHANGE
       
   128 
       
   129 #ifndef __ACCESSORY_FW
       
   130             { KAccessoryModeChanged, sizeof ( TInt ), EQueue }
       
   131 #endif //__ACCESSORY_FW
       
   132         };
       
   133     iEventListener->StartListeningL( eventList, sizeof ( eventList ) / sizeof ( TRegisterEvent ) );
       
   134     iInitialized = ETrue;
       
   135 
       
   136     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerControl::InitializeL - return" ) ) );
       
   137     }
       
   138 
       
   139 void CTFDosServerControl::ResetDosServices( void )
       
   140     {
       
   141     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerStub::ResetDosServices()" ) ) );
       
   142 
       
   143     if ( iEventListener != NULL )
       
   144         {
       
   145         iEventListener->Stop();
       
   146         delete iEventListener;
       
   147         }
       
   148 #ifndef RD_STARTUP_CHANGE
       
   149     if ( iDosSysUtils != NULL )
       
   150         {
       
   151         iDosSysUtils->Close();
       
   152         iDosSysUtils = NULL;
       
   153         }
       
   154     if ( iDosHelper != NULL )
       
   155         {
       
   156         iDosHelper->Close();
       
   157         iDosHelper = NULL;
       
   158         }
       
   159     if ( iDosMtc != NULL )
       
   160         {
       
   161         iDosMtc->Close();
       
   162         iDosMtc = NULL;
       
   163         }
       
   164     if ( iDosSelfTest != NULL )
       
   165         {
       
   166         iDosSelfTest->Close();
       
   167         iDosSelfTest = NULL;
       
   168         }
       
   169 #endif //RD_STARTUP_CHANGE 
       
   170 
       
   171     if ( iDosSae != NULL )
       
   172         {
       
   173         iDosSae->Close();
       
   174         iDosSae = NULL;
       
   175         }        
       
   176 #ifndef __ACCESSORY_FW
       
   177     if ( iDosBTAudio != NULL )
       
   178         {
       
   179         iDosBTAudio->Close();
       
   180         iDosBTAudio = NULL;
       
   181         }
       
   182 #endif //__ACCESSORY_FW
       
   183     if ( iDosExtension != NULL )
       
   184         {
       
   185         iDosExtension->Close();
       
   186         iDosExtension = NULL;
       
   187         }
       
   188 #ifndef __ACCESSORY_FW
       
   189     if ( iDosAccessory != NULL )
       
   190         {
       
   191         iDosAccessory->Close();
       
   192         iDosAccessory = NULL;
       
   193         }
       
   194     if ( iDosAudio != NULL )
       
   195         {
       
   196         iDosAudio->Close();
       
   197         iDosAudio = NULL;
       
   198         }
       
   199 #endif //__ACCESSORY_FW
       
   200 
       
   201     iDosServer.Close();
       
   202     iInitialized = EFalse;
       
   203 
       
   204     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerStub::ResetDosServices() - Success" ) ) );
       
   205     }
       
   206 
       
   207 void CTFDosServerControl::CallDosFunctionL( TTFDosServerControlTestCaseState& aParameter )
       
   208     {
       
   209     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerControl::CallDosFunctionL(%d, %d, %d)" ), aParameter.iDosFunction, aParameter.iArg1, aParameter.iArg2 ) );
       
   210 
       
   211     // DosServer connection needs to be opened.
       
   212     if ( !iInitialized )
       
   213         {
       
   214         InitializeL();
       
   215         }
       
   216 
       
   217     TInt retval = KTFErrDosServiceMissing;
       
   218     switch ( aParameter.iDosFunction )
       
   219         {
       
   220         
       
   221 #ifndef RD_STARTUP_CHANGE       
       
   222         case ETFDosSysUtils_Open:
       
   223             if ( iDosSysUtils == NULL )
       
   224                 {
       
   225                 iDosSysUtils = new ( ELeave ) RDosSysUtils();
       
   226                 retval = iDosSysUtils->Open( iDosServer );
       
   227                 }
       
   228             else
       
   229                 {
       
   230                 retval = KErrNone;
       
   231                 }
       
   232             break;
       
   233         case ETFDosSysUtils_GetSimLanguage:
       
   234             TRACE_ASSERT( iDosSysUtils != NULL );
       
   235             if ( iDosSysUtils != NULL )
       
   236                 {
       
   237                 retval = iDosSysUtils->GetSimLanguage( aParameter.iArg1 );
       
   238                 }
       
   239             break;
       
   240         case ETFDosSysUtils_SetDosAlarm:
       
   241             TRACE_ASSERT( iDosSysUtils != NULL );
       
   242             if ( iDosSysUtils != NULL )
       
   243                 {
       
   244                 if ( aParameter.iArg1 != 0 )
       
   245                     {
       
   246                     TTime time;
       
   247                     time.HomeTime();
       
   248                     if ( aParameter.iArg1 > 0 )
       
   249                         {
       
   250                         TTimeIntervalMinutes interval = aParameter.iArg1;
       
   251                         time += interval;
       
   252                         }
       
   253                     else
       
   254                         {
       
   255                         TTimeIntervalMinutes interval = 0 - aParameter.iArg1;
       
   256                         time -= interval;
       
   257                         }
       
   258                     time.RoundUpToNextMinute();
       
   259                     if ( aParameter.iArg2 != 0 )
       
   260                         {
       
   261                         TTimeIntervalSeconds interval = aParameter.iArg2;
       
   262                         time += interval;
       
   263                         }
       
   264                     retval = iDosSysUtils->SetDosAlarm( &time );
       
   265                     }
       
   266                 else
       
   267                     {
       
   268                     retval = iDosSysUtils->SetDosAlarm( NULL );
       
   269                     }
       
   270                 }
       
   271             break;
       
   272         case ETFDosSysUtils_PerformDosRfs:
       
   273             TRACE_ASSERT( iDosSysUtils != NULL );
       
   274             if ( iDosSysUtils != NULL )
       
   275                 {
       
   276                 }
       
   277             break;
       
   278         case ETFDosSysUtils_Close:
       
   279             TRACE_ASSERT( iDosSysUtils != NULL );
       
   280             if ( iDosSysUtils != NULL )
       
   281                 {
       
   282                 iDosSysUtils->Close();
       
   283                 delete iDosSysUtils;
       
   284                 iDosSysUtils = NULL;
       
   285                 }
       
   286             retval = KErrNone;
       
   287             break;
       
   288     
       
   289         case ETFDosHelper_Open:
       
   290             if ( iDosHelper == NULL )
       
   291                 {
       
   292                 iDosHelper = new ( ELeave ) RDosHelper();
       
   293                 retval = iDosHelper->Open( iDosServer );
       
   294                 }
       
   295             else
       
   296                 {
       
   297                 retval = KErrNone;
       
   298                 }
       
   299             break;
       
   300         case ETFDosHelper_GetStartupReason:
       
   301             TRACE_ASSERT( iDosHelper != NULL );
       
   302             if ( iDosHelper != NULL )
       
   303                 {
       
   304                 retval = iDosHelper->GetStartupReason( aParameter.iArg1 );
       
   305                 }
       
   306             break;
       
   307         case ETFDosHelper_GetSWStartupReason:
       
   308             TRACE_ASSERT( iDosHelper != NULL );
       
   309             if ( iDosHelper != NULL )
       
   310                 {
       
   311                 TInt16 temp;
       
   312                 retval = iDosHelper->GetSWStartupReason( temp );
       
   313                 aParameter.iArg1 = temp;
       
   314                 }
       
   315             break;
       
   316         case ETFDosHelper_SetSWStartupReason:
       
   317             TRACE_ASSERT( iDosHelper != NULL );
       
   318             if ( iDosHelper != NULL )
       
   319                 {
       
   320                 retval = iDosHelper->SetSWStartupReason( ( TInt16 )aParameter.iArg1 );
       
   321                 }
       
   322             break;
       
   323         case ETFDosHelper_HiddenReset:
       
   324             TRACE_ASSERT( iDosHelper != NULL );
       
   325             if ( iDosHelper != NULL )
       
   326                 {
       
   327                 aParameter.iArg1 = iDosHelper->HiddenReset();
       
   328                 retval = KErrNone;
       
   329                 }
       
   330             break;
       
   331         case ETFDosHelper_GetRTCStatus:
       
   332             TRACE_ASSERT( iDosHelper != NULL );
       
   333             if ( iDosHelper != NULL )
       
   334                 {
       
   335                 retval = iDosHelper->GetRTCStatus( aParameter.iArg1 );
       
   336                 }
       
   337             break;
       
   338         /*case ETFDosHelper_GenerateGripEvent:
       
   339             TRACE_ASSERT( iDosHelper != NULL );
       
   340             if ( iDosHelper != NULL )
       
   341                 {
       
   342                 retval = iDosHelper->GenerateGripEvent();
       
   343                 }
       
   344             break;*/
       
   345         case ETFDosHelper_Close:
       
   346             TRACE_ASSERT( iDosHelper != NULL );
       
   347             if ( iDosHelper != NULL )
       
   348                 {
       
   349                 iDosHelper->Close();
       
   350                 delete iDosHelper;
       
   351                 iDosHelper = NULL;
       
   352                 }
       
   353             retval = KErrNone;
       
   354             break;
       
   355     
       
   356         case ETFDosMtc_Open:
       
   357             if ( iDosMtc == NULL )
       
   358                 {
       
   359                 iDosMtc = new ( ELeave ) RDosMtc();
       
   360                 retval = iDosMtc->Open( iDosServer );
       
   361                 }
       
   362             else
       
   363                 {
       
   364                 retval = KErrNone;
       
   365                 }
       
   366             break;
       
   367         case ETFDosMtc_PowerOn:
       
   368             TRACE_ASSERT( iDosMtc != NULL );
       
   369             if ( iDosMtc != NULL )
       
   370                 {
       
   371                 retval = iDosMtc->PowerOn();
       
   372                 }
       
   373             break;
       
   374         case ETFDosMtc_PowerOff:
       
   375             TRACE_ASSERT( iDosMtc != NULL );
       
   376             if ( iDosMtc != NULL )
       
   377                 {
       
   378                 retval = iDosMtc->PowerOff();
       
   379                 }
       
   380             break;
       
   381         case ETFDosMtc_DosSync:
       
   382             TRACE_ASSERT( iDosMtc != NULL );
       
   383             if ( iDosMtc != NULL )
       
   384                 {
       
   385                 retval = iDosMtc->DosSync();
       
   386                 }
       
   387             break;
       
   388         case ETFDosMtc_ResetGenerate:
       
   389             TRACE_ASSERT( iDosMtc != NULL );
       
   390             if ( iDosMtc != NULL )
       
   391                 {
       
   392                 retval = iDosMtc->ResetGenerate();
       
   393                 }
       
   394             break;
       
   395         case ETFDosMtc_SetState:
       
   396             TRACE_ASSERT( iDosMtc != NULL );
       
   397             if ( iDosMtc != NULL )
       
   398                 {
       
   399                 retval = iDosMtc->SetState( aParameter.iArg1 );
       
   400                 }
       
   401             break;
       
   402         case ETFDosMtc_SetStateFlag:
       
   403             TRACE_ASSERT( iDosMtc != NULL );
       
   404             if ( iDosMtc != NULL )
       
   405                 {
       
   406                 retval = iDosMtc->SetStateFlag( ( TDosStateFlag )aParameter.iArg1 );
       
   407                 }
       
   408             break;
       
   409         case ETFDosMtc_GetStateFlag:
       
   410             TRACE_ASSERT( iDosMtc != NULL );
       
   411             if ( iDosMtc != NULL )
       
   412                 {
       
   413                 TDosStateFlag flag;
       
   414                 retval = iDosMtc->GetStateFlag( flag );
       
   415                 aParameter.iArg1 = flag;
       
   416                 }
       
   417             break;
       
   418         case ETFDosMtc_Close:
       
   419             TRACE_ASSERT( iDosMtc != NULL );
       
   420             if ( iDosMtc != NULL )
       
   421                 {
       
   422                 iDosMtc->Close();
       
   423                 delete iDosMtc;
       
   424                 iDosMtc = NULL;
       
   425                 }
       
   426             retval = KErrNone;
       
   427             break;
       
   428     
       
   429         case ETFDosSelfTest_Open:
       
   430             if ( iDosSelfTest == NULL )
       
   431                 {
       
   432                 iDosSelfTest = new ( ELeave ) RDosSelfTest();
       
   433                 retval = iDosSelfTest->Open( iDosServer );
       
   434                 }
       
   435             else
       
   436                 {
       
   437                 retval = KErrNone;
       
   438                 }
       
   439             break;
       
   440         case ETFDosSelfTest_PerformSelfTest:
       
   441             TRACE_ASSERT( iDosSelfTest != NULL );
       
   442             if ( iDosSelfTest != NULL )
       
   443                 {
       
   444                 retval = iDosSelfTest->PerformSelfTest();
       
   445                 }
       
   446             break;
       
   447         case ETFDosSelfTest_Close:
       
   448             TRACE_ASSERT( iDosSelfTest != NULL );
       
   449             if ( iDosSelfTest != NULL )
       
   450                 {
       
   451                 iDosSelfTest->Close();
       
   452                 delete iDosSelfTest;
       
   453                 iDosSelfTest = NULL;
       
   454                 }
       
   455             retval = KErrNone;
       
   456             break;
       
   457 #endif // RD_STARTUP_CHANGE
       
   458 
       
   459         case ETFDosSae_Open:
       
   460             if ( iDosSae == NULL )
       
   461                 {
       
   462                 iDosSae = new ( ELeave ) RDosSae();
       
   463                 retval = iDosSae->Open( iDosServer );
       
   464                 }
       
   465             else
       
   466                 {
       
   467                 retval = KErrNone;
       
   468                 }
       
   469             break;
       
   470         case ETFDosSae_StartSae:
       
   471             TRACE_ASSERT( iDosSae != NULL );
       
   472             if ( iDosSae != NULL )
       
   473                 {
       
   474                 retval = iDosSae->StartSae();
       
   475                 }
       
   476             break;
       
   477         case ETFDosSae_Close:
       
   478             TRACE_ASSERT( iDosSae != NULL );
       
   479             if ( iDosSae != NULL )
       
   480                 {
       
   481                 iDosSae->Close();
       
   482                 delete iDosSae;
       
   483                 iDosSae = NULL;
       
   484                 }
       
   485             retval = KErrNone;
       
   486             break;
       
   487 
       
   488 #ifndef __ACCESSORY_FW 
       
   489         case ETFDosBTAudio_Open:
       
   490             if ( iDosBTAudio == NULL )
       
   491                 {
       
   492                 iDosBTAudio = new ( ELeave ) RDosBTAudio();
       
   493                 retval = iDosBTAudio->Open( iDosServer );
       
   494                 }
       
   495             else
       
   496                 {
       
   497                 retval = KErrNone;
       
   498                 }
       
   499             break;
       
   500         case ETFDosBTAudio_AttachAudioAccessoryReq:
       
   501             TRACE_ASSERT( iDosBTAudio != NULL );
       
   502             if ( iDosBTAudio != NULL )
       
   503                 {
       
   504                 }
       
   505             break;
       
   506         case ETFDosBTAudio_CancelAttachReq:
       
   507             TRACE_ASSERT( iDosBTAudio != NULL );
       
   508             if ( iDosBTAudio != NULL )
       
   509                 {
       
   510                 }
       
   511             break;
       
   512         case ETFDosBTAudio_DetachAudioAccessoryReq:
       
   513             TRACE_ASSERT( iDosBTAudio != NULL );
       
   514             if ( iDosBTAudio != NULL )
       
   515                 {
       
   516                 }
       
   517             break;
       
   518         case ETFDosBTAudio_CancelDetachReq:
       
   519             TRACE_ASSERT( iDosBTAudio != NULL );
       
   520             if ( iDosBTAudio != NULL )
       
   521                 {
       
   522                 }
       
   523             break;
       
   524         case ETFDosBTAudio_AudioLinkOpenResp:
       
   525             TRACE_ASSERT( iDosBTAudio != NULL );
       
   526             if ( iDosBTAudio != NULL )
       
   527                 {
       
   528                 }
       
   529             break;
       
   530         case ETFDosBTAudio_AudioLinkCloseResp:
       
   531             TRACE_ASSERT( iDosBTAudio != NULL );
       
   532             if ( iDosBTAudio != NULL )
       
   533                 {
       
   534                 }
       
   535             break;
       
   536         case ETFDosBTAudio_ActivateVoiceRecognitionResp:
       
   537             TRACE_ASSERT( iDosBTAudio != NULL );
       
   538             if ( iDosBTAudio != NULL )
       
   539                 {
       
   540                 }
       
   541             break;
       
   542         case ETFDosBTAudio_AbortVoiceRecognitionResp:
       
   543             TRACE_ASSERT( iDosBTAudio != NULL );
       
   544             if ( iDosBTAudio != NULL )
       
   545                 {
       
   546                 }
       
   547             break;
       
   548         case ETFDosBTAudio_VoiceRecognitionStatusResp:
       
   549             TRACE_ASSERT( iDosBTAudio != NULL );
       
   550             if ( iDosBTAudio != NULL )
       
   551                 {
       
   552                 }
       
   553             break;
       
   554         case ETFDosBTAudio_QuerySpeedDialNumberResp:
       
   555             TRACE_ASSERT( iDosBTAudio != NULL );
       
   556             if ( iDosBTAudio != NULL )
       
   557                 {
       
   558                 }
       
   559             break;
       
   560         case ETFDosBTAudio_QueryLastDialledVoiceNumberResp:
       
   561             TRACE_ASSERT( iDosBTAudio != NULL );
       
   562             if ( iDosBTAudio != NULL )
       
   563                 {
       
   564                 }
       
   565             break;
       
   566         case ETFDosBTAudio_AudioLinkOpenInd:
       
   567             TRACE_ASSERT( iDosBTAudio != NULL );
       
   568             if ( iDosBTAudio != NULL )
       
   569                 {
       
   570                 }
       
   571             break;
       
   572         case ETFDosBTAudio_AudioLinkCloseInd:
       
   573             TRACE_ASSERT( iDosBTAudio != NULL );
       
   574             if ( iDosBTAudio != NULL )
       
   575                 {
       
   576                 }
       
   577             break;
       
   578         case ETFDosBTAudio_VoiceRecognitionStatusInd:
       
   579             TRACE_ASSERT( iDosBTAudio != NULL );
       
   580             if ( iDosBTAudio != NULL )
       
   581                 {
       
   582                 }
       
   583             break;
       
   584         case ETFDosBTAudio_Close:
       
   585             TRACE_ASSERT( iDosBTAudio != NULL );
       
   586             if ( iDosBTAudio != NULL )
       
   587                 {
       
   588                 iDosBTAudio->Close();
       
   589                 delete iDosBTAudio;
       
   590                 iDosBTAudio = NULL;
       
   591                 }
       
   592             retval = KErrNone;
       
   593             break;
       
   594 #endif // __ACCESSORY_FW 
       
   595     
       
   596         case ETFDosExtension_Open:
       
   597             if ( iDosExtension == NULL )
       
   598                 {
       
   599                 iDosExtension = new ( ELeave ) RTFDosExtension();
       
   600                 retval = iDosExtension->Open( iDosServer );
       
   601                 }
       
   602             else
       
   603                 {
       
   604                 retval = KErrNone;
       
   605                 }
       
   606             break;
       
   607         case ETFDosExtension_CallFunction:
       
   608             TRACE_ASSERT( iDosExtension != NULL );
       
   609             if ( iDosExtension != NULL )
       
   610                 {
       
   611                 retval = iDosExtension->CallSyncDosExtFunction( aParameter.iArg1, ( TAny* )&aParameter.iArg2, sizeof ( aParameter.iArg2 ), ETrue );
       
   612                 }
       
   613             break;
       
   614         case ETFDosExtension_CallFunctionAndComplete:
       
   615             TRACE_ASSERT( iDosExtension != NULL );
       
   616             if ( iDosExtension != NULL )
       
   617                 {
       
   618                 TRequestStatus status;
       
   619                 retval = iDosExtension->CallAsyncDosExtFunction( status, aParameter.iArg1, ( TAny* )&aParameter.iArg2, sizeof ( TInt ), ETrue );
       
   620                 }
       
   621             break;
       
   622         case ETFDosExtension_Close:
       
   623             TRACE_ASSERT( iDosExtension != NULL );
       
   624             if ( iDosExtension != NULL )
       
   625                 {
       
   626                 iDosExtension->Close();
       
   627                 delete iDosExtension;
       
   628                 iDosExtension = NULL;
       
   629                 }
       
   630             retval = KErrNone;
       
   631             break;
       
   632     
       
   633 #ifndef __ACCESSORY_FW    
       
   634         case ETFDosAccessory_Open:
       
   635             if ( iDosAccessory == NULL )
       
   636                 {
       
   637                 iDosAccessory = new ( ELeave ) RDosAccessory();
       
   638                 retval = iDosAccessory->Open( iDosServer );
       
   639                 }
       
   640             else
       
   641                 {
       
   642                 retval = KErrNone;
       
   643                 }
       
   644             break;
       
   645         case ETFDosAccessory_GetAccessoryMode:
       
   646             TRACE_ASSERT( iDosAccessory != NULL );
       
   647             if ( iDosAccessory != NULL )
       
   648                 {
       
   649                 TDosAccessoryMode acc;
       
   650                 retval = iDosAccessory->GetAccessoryMode( acc );
       
   651                 if ( retval == KErrNone )
       
   652                     {
       
   653                     aParameter.iArg1 = acc;
       
   654                     }
       
   655                 }
       
   656             break;
       
   657         case ETFDosAccessory_SetLoopSetModeState:
       
   658             TRACE_ASSERT( iDosAccessory != NULL );
       
   659             if ( iDosAccessory != NULL )
       
   660                 {
       
   661                 retval = iDosAccessory->SetLoopSetModeState( ( EPSAccLpsMode )aParameter.iArg1 );
       
   662                 }
       
   663             break;
       
   664         case ETFDosAccessory_GetLoopSetModeState:
       
   665             TRACE_ASSERT( iDosAccessory != NULL );
       
   666             if ( iDosAccessory != NULL )
       
   667                 {
       
   668                 EPSAccLpsMode acc;
       
   669                 retval = iDosAccessory->GetLoopSetModeState( acc );
       
   670                 if ( retval == KErrNone )
       
   671                     {
       
   672                     aParameter.iArg1 = acc;
       
   673                     }
       
   674                 }
       
   675             break;
       
   676             
       
   677         case ETFDosAccessory_Close:
       
   678             TRACE_ASSERT( iDosAccessory != NULL );
       
   679             if ( iDosAccessory != NULL )
       
   680                 {
       
   681                 iDosAccessory->Close();
       
   682                 delete iDosAccessory;
       
   683                 iDosAccessory = NULL;
       
   684                 }
       
   685             retval = KErrNone;
       
   686             break;
       
   687 #endif // __ACCESSORY_FW    
       
   688             
       
   689     
       
   690 #ifndef __ACCESSORY_FW    
       
   691         case ETFDosAudio_Open:
       
   692             if ( iDosAudio == NULL )
       
   693                 {
       
   694                 iDosAudio = new ( ELeave ) RDosAudio();
       
   695                 retval = iDosAudio->Open( iDosServer );
       
   696                 }
       
   697             else
       
   698                 {
       
   699                 retval = KErrNone;
       
   700                 }
       
   701             break;
       
   702         case ETFDosAudio_SetHandsfreeMode:
       
   703             TRACE_ASSERT( iDosAudio != NULL );
       
   704             if ( iDosAudio != NULL )
       
   705                 {
       
   706                 retval = iDosAudio->SetHandsfreeMode( ( EPSHandsFreeMode )aParameter.iArg1 );
       
   707                 }
       
   708             break;
       
   709         case ETFDosAudio_GetHandsfreeMode:
       
   710             TRACE_ASSERT( iDosAudio != NULL );
       
   711             if ( iDosAudio != NULL )
       
   712                 {
       
   713                 EPSHandsFreeMode hf;
       
   714                 retval = iDosAudio->GetHandsfreeMode( hf );
       
   715                 if ( retval == KErrNone )
       
   716                     {
       
   717                     aParameter.iArg1 = hf;
       
   718                     }
       
   719                 }
       
   720             break;
       
   721         
       
   722         case ETFDosAudio_GetOutputVolume:
       
   723             TRACE_ASSERT( iDosAudio != NULL );
       
   724             if ( iDosAudio != NULL )
       
   725                 {
       
   726                 retval = iDosAudio->GetOutputVolume( aParameter.iArg1 );
       
   727                 }
       
   728             break;
       
   729         case ETFDosAudio_SetOutputVolume:
       
   730             TRACE_ASSERT( iDosAudio != NULL );
       
   731             if ( iDosAudio != NULL )
       
   732                 {
       
   733                 retval = iDosAudio->SetOutputVolume( aParameter.iArg1 );
       
   734                 }
       
   735             break;
       
   736         case ETFDosAudio_Close:
       
   737             TRACE_ASSERT( iDosAudio != NULL );
       
   738             if ( iDosAudio != NULL )
       
   739                 {
       
   740                 iDosAudio->Close();
       
   741                 delete iDosAudio;
       
   742                 iDosAudio = NULL;
       
   743                 }
       
   744             retval = KErrNone;
       
   745             break;
       
   746 #endif // __ACCESSORY_FW    
       
   747             
       
   748         default:
       
   749             TRACE_ASSERT_ALWAYS;
       
   750             break;
       
   751         }
       
   752     User::LeaveIfError( retval );
       
   753     }
       
   754 
       
   755 // Getters return 0, since they are not used in parameter tests
       
   756 TInt CTFDosServerControl::ParameterCount( TTFDosFunction aFunction ) const
       
   757     {
       
   758     TInt retval = 0;
       
   759     switch ( aFunction )
       
   760         {
       
   761 #ifndef RD_STARTUP_CHANGE
       
   762         case ETFDosSysUtils_Open:
       
   763         case ETFDosHelper_Open:
       
   764         case ETFDosMtc_Open:
       
   765         case ETFDosSelfTest_Open:
       
   766         case ETFDosSysUtils_Close:
       
   767         case ETFDosHelper_Close:
       
   768         case ETFDosMtc_Close:
       
   769         case ETFDosSelfTest_Close:
       
   770 #endif // RD_STARTUP_CHANGE
       
   771 
       
   772         case ETFDosSae_Open:
       
   773         case ETFDosSae_Close:
       
   774 
       
   775 #ifndef __ACCESSORY_FW
       
   776         case ETFDosBTAudio_Open:
       
   777         case ETFDosBTAudio_Close:
       
   778 #endif // __ACCESSORY_FW
       
   779 
       
   780         case ETFDosExtension_Open:
       
   781         case ETFDosExtension_Close:
       
   782         
       
   783 #ifndef __ACCESSORY_FW       
       
   784         case ETFDosAccessory_Open:
       
   785         case ETFDosAudio_Open:
       
   786         case ETFDosAccessory_Close:
       
   787         case ETFDosAudio_Close:
       
   788 #endif // __ACCESSORY_FW        
       
   789             break;
       
   790             
       
   791 #ifndef RD_STARTUP_CHANGE
       
   792         case ETFDosSysUtils_SetDosAlarm:
       
   793         case ETFDosSysUtils_PerformDosRfs:
       
   794             retval = 1;
       
   795             break;
       
   796         case ETFDosHelper_GetStartupReason:
       
   797         case ETFDosHelper_GetSWStartupReason:
       
   798             break;
       
   799         case ETFDosHelper_SetSWStartupReason:
       
   800             retval = 1;
       
   801             break;
       
   802         case ETFDosHelper_HiddenReset:
       
   803         case ETFDosHelper_GetRTCStatus:
       
   804         //case ETFDosHelper_GenerateGripEvent:
       
   805         case ETFDosMtc_PowerOn:
       
   806         case ETFDosMtc_PowerOff:
       
   807         case ETFDosMtc_DosSync:
       
   808         case ETFDosMtc_ResetGenerate:
       
   809             break;
       
   810         case ETFDosMtc_SetState:
       
   811         case ETFDosMtc_SetStateFlag:
       
   812             retval = 1;
       
   813             break;
       
   814         case ETFDosMtc_GetStateFlag:
       
   815         case ETFDosSelfTest_PerformSelfTest:
       
   816             break;
       
   817 #endif // RD_STARTUP_CHANGE
       
   818         
       
   819         case ETFDosSae_StartSae:
       
   820             break;
       
   821 
       
   822 #ifndef __ACCESSORY_FW 
       
   823         case ETFDosBTAudio_AttachAudioAccessoryReq:
       
   824             break;
       
   825         case ETFDosBTAudio_CancelAttachReq:
       
   826             break;
       
   827         case ETFDosBTAudio_DetachAudioAccessoryReq:
       
   828             break;
       
   829         case ETFDosBTAudio_CancelDetachReq:
       
   830             break;
       
   831         case ETFDosBTAudio_AudioLinkOpenResp:
       
   832             break;
       
   833         case ETFDosBTAudio_AudioLinkCloseResp:
       
   834             break;
       
   835         case ETFDosBTAudio_ActivateVoiceRecognitionResp:
       
   836             break;
       
   837         case ETFDosBTAudio_AbortVoiceRecognitionResp:
       
   838             break;
       
   839         case ETFDosBTAudio_VoiceRecognitionStatusResp:
       
   840             break;
       
   841         case ETFDosBTAudio_QuerySpeedDialNumberResp:
       
   842             break;
       
   843         case ETFDosBTAudio_QueryLastDialledVoiceNumberResp:
       
   844             break;
       
   845         case ETFDosBTAudio_AudioLinkOpenInd:
       
   846             break;
       
   847         case ETFDosBTAudio_AudioLinkCloseInd:
       
   848             break;
       
   849         case ETFDosBTAudio_VoiceRecognitionStatusInd:
       
   850             break;
       
   851 #endif // __ACCESSORY_FW 
       
   852     
       
   853         case ETFDosExtension_CallFunction:
       
   854             break;
       
   855         case ETFDosExtension_CallFunctionAndComplete:
       
   856             break;
       
   857     
       
   858 #ifndef __ACCESSORY_FW    
       
   859         case ETFDosAccessory_GetAccessoryMode:
       
   860             break;
       
   861         case ETFDosAccessory_SetLoopSetModeState:
       
   862             retval = 1;
       
   863             break;
       
   864         case ETFDosAccessory_GetLoopSetModeState:
       
   865             break;
       
   866 
       
   867         case ETFDosAudio_SetHandsfreeMode:
       
   868             retval = 1;
       
   869             break;
       
   870         case ETFDosAudio_GetHandsfreeMode:
       
   871             break;
       
   872         
       
   873         case ETFDosAudio_GetOutputVolume:
       
   874             break;
       
   875         case ETFDosAudio_SetOutputVolume:
       
   876             retval = 1;
       
   877             break;
       
   878 #endif // __ACCESSORY_FW    
       
   879             
       
   880         default:
       
   881             TRACE_ASSERT_ALWAYS;
       
   882             break;
       
   883         }
       
   884     return retval;
       
   885     }
       
   886     
       
   887 
       
   888 TBool CTFDosServerControl::ParameterBounds( TTFDosFunction aFunction, TInt* aMin, TInt* aMax ) const
       
   889     {
       
   890     TBool retval = EFalse;
       
   891     TRACE_ASSERT( aMin != NULL && aMax != NULL );
       
   892     if ( aMin != NULL && aMax != NULL )
       
   893         {
       
   894         switch ( aFunction )
       
   895             {
       
   896 #ifndef RD_STARTUP_CHANGE
       
   897             case ETFDosSysUtils_Open:
       
   898             case ETFDosHelper_Open:
       
   899             case ETFDosMtc_Open:
       
   900             case ETFDosSelfTest_Open:
       
   901             case ETFDosSysUtils_Close:
       
   902             case ETFDosHelper_Close:
       
   903             case ETFDosMtc_Close:
       
   904             case ETFDosSelfTest_Close:
       
   905 #endif // RD_STARTUP_CHANGE
       
   906 
       
   907             case ETFDosSae_Open:
       
   908             case ETFDosExtension_Open:
       
   909 
       
   910 #ifndef __ACCESSORY_FW    
       
   911             case ETFDosBTAudio_Open:
       
   912             case ETFDosBTAudio_Close:
       
   913             case ETFDosAccessory_Open:
       
   914             case ETFDosAudio_Open:
       
   915             case ETFDosAccessory_Close:
       
   916             case ETFDosAudio_Close:
       
   917 #endif // __ACCESSORY_FW    
       
   918 
       
   919             case ETFDosSae_Close:
       
   920             case ETFDosExtension_Close:
       
   921                 break;
       
   922     
       
   923 #ifndef RD_STARTUP_CHANGE
       
   924             case ETFDosSysUtils_GetSimLanguage:
       
   925                 break;
       
   926             case ETFDosSysUtils_SetDosAlarm:
       
   927                 // Not supported, too many time values to test.
       
   928                 break;
       
   929             case ETFDosSysUtils_PerformDosRfs:
       
   930                 retval = ETrue;
       
   931                 *aMin = ERfsNormal;
       
   932                 *aMax = ERfsDeep;
       
   933                 break;
       
   934     
       
   935             case ETFDosHelper_GetStartupReason:
       
   936                 break;
       
   937             case ETFDosHelper_GetSWStartupReason:
       
   938                 break;
       
   939             case ETFDosHelper_SetSWStartupReason:
       
   940                 retval = ETrue;
       
   941                 *aMin = ESWNone;
       
   942                 *aMax = ESWRestoreFactorySetDeep;
       
   943                 break;
       
   944             case ETFDosHelper_HiddenReset:
       
   945                 break;
       
   946             case ETFDosHelper_GetRTCStatus:
       
   947                 break;
       
   948             //case ETFDosHelper_GenerateGripEvent:
       
   949             //    break;
       
   950     
       
   951             case ETFDosMtc_PowerOn:
       
   952                 break;
       
   953             case ETFDosMtc_PowerOff:
       
   954                 break;
       
   955             case ETFDosMtc_DosSync:
       
   956                 break;
       
   957             case ETFDosMtc_ResetGenerate:
       
   958                 break;
       
   959             case ETFDosMtc_SetState:
       
   960                 retval = ETrue;
       
   961                 *aMin = ESysApMtcChargingState;
       
   962                 *aMax = ESysApMtcRfInactiveState;
       
   963                 break;
       
   964             case ETFDosMtc_SetStateFlag:
       
   965                 retval = ETrue;
       
   966                 *aMin = EDosOfflineStateFlagFalse;
       
   967                 *aMax = EDosOfflineStateFlagTrue;
       
   968                 break;
       
   969             case ETFDosMtc_GetStateFlag:
       
   970                 break;
       
   971     
       
   972             case ETFDosSelfTest_PerformSelfTest:
       
   973                 break;
       
   974 #endif // RD_STARTUP_CHANGE
       
   975     
       
   976             case ETFDosSae_StartSae:
       
   977                 break;
       
   978 
       
   979 #ifndef __ACCESSORY_FW 
       
   980             case ETFDosBTAudio_AttachAudioAccessoryReq:
       
   981                 break;
       
   982             case ETFDosBTAudio_CancelAttachReq:
       
   983                 break;
       
   984             case ETFDosBTAudio_DetachAudioAccessoryReq:
       
   985                 break;
       
   986             case ETFDosBTAudio_CancelDetachReq:
       
   987                 break;
       
   988             case ETFDosBTAudio_AudioLinkOpenResp:
       
   989                 break;
       
   990             case ETFDosBTAudio_AudioLinkCloseResp:
       
   991                 break;
       
   992             case ETFDosBTAudio_ActivateVoiceRecognitionResp:
       
   993                 break;
       
   994             case ETFDosBTAudio_AbortVoiceRecognitionResp:
       
   995                 break;
       
   996             case ETFDosBTAudio_VoiceRecognitionStatusResp:
       
   997                 break;
       
   998             case ETFDosBTAudio_QuerySpeedDialNumberResp:
       
   999                 break;
       
  1000             case ETFDosBTAudio_QueryLastDialledVoiceNumberResp:
       
  1001                 break;
       
  1002             case ETFDosBTAudio_AudioLinkOpenInd:
       
  1003                 break;
       
  1004             case ETFDosBTAudio_AudioLinkCloseInd:
       
  1005                 break;
       
  1006             case ETFDosBTAudio_VoiceRecognitionStatusInd:
       
  1007                 break;
       
  1008 #endif // __ACCESSORY_FW 
       
  1009     
       
  1010             case ETFDosExtension_CallFunction:
       
  1011                 break;
       
  1012             case ETFDosExtension_CallFunctionAndComplete:
       
  1013                 break;
       
  1014     
       
  1015 #ifndef __ACCESSORY_FW    
       
  1016             case ETFDosAccessory_GetAccessoryMode:
       
  1017                 break;
       
  1018             case ETFDosAccessory_SetLoopSetModeState:
       
  1019                 retval = ETrue;
       
  1020                 *aMin = EPSAccLpsOff;
       
  1021                 *aMax = EPSAccTty;
       
  1022                 break;
       
  1023             case ETFDosAccessory_GetLoopSetModeState:
       
  1024                 break;
       
  1025 
       
  1026             case ETFDosAudio_SetHandsfreeMode:
       
  1027                 retval = ETrue;
       
  1028                 *aMin = EPSIhfOff;
       
  1029                 *aMax = EPSIhfOn;
       
  1030                 break;
       
  1031             case ETFDosAudio_GetHandsfreeMode:
       
  1032                 break;
       
  1033 
       
  1034             case ETFDosAudio_GetOutputVolume:
       
  1035                 break;
       
  1036             case ETFDosAudio_SetOutputVolume:
       
  1037                 retval = ETrue;
       
  1038                 *aMin = 0;
       
  1039                 *aMax = 9;
       
  1040                 break;
       
  1041 #endif // __ACCESSORY_FW    
       
  1042                 
       
  1043             default:
       
  1044                 TRACE_ASSERT_ALWAYS;
       
  1045                 break;
       
  1046             }
       
  1047         }
       
  1048     else
       
  1049         {
       
  1050         retval = KErrArgument;
       
  1051         }
       
  1052     return retval;
       
  1053     }
       
  1054 
       
  1055 void CTFDosServerControl::NotifyDosEvent( TInt aEvent, TInt aParameter )
       
  1056     {
       
  1057     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerControl::NotifyDosEvent( %d, %d )" ), aEvent, aParameter ) );
       
  1058     CTFDosServerControlTestCase* testCase = STATIC_CAST( CTFDosServerControlTestCase*, CurrentTestCase() );
       
  1059     TRACE_ASSERT( testCase != NULL );
       
  1060     if ( testCase != NULL )
       
  1061         {
       
  1062         testCase->NotifyDosEvent( aEvent, aParameter );
       
  1063         }
       
  1064     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - CTFDosServerControl::NotifyDosEvent - return" ) ) );
       
  1065     }
       
  1066     
       
  1067 
       
  1068 TInt RTFDosExtension::CallSyncDosExtFunction( const TInt& aFunc, TAny* aParam = NULL, TInt aParLength = 0, TBool aAutoComplete = ETrue )
       
  1069     {
       
  1070     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - RTFDosExtension::CallSyncDosExtFunction(0x%x, 0x%x, 0x%x, 0x%x)" ), aFunc, aParam, aParLength, aAutoComplete ) );
       
  1071     TExtensionParPckg package;
       
  1072     package().iFunc = aFunc;
       
  1073     package().iParLength = aParLength;
       
  1074     package().iAutoComplete = aAutoComplete;
       
  1075     TPtr8 ptr( ( TUint8* )aParam, aParLength, aParLength );
       
  1076     TInt result = CallFunction( package, ptr );
       
  1077     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - RTFDosExtension::CallSyncDosExtFunction - return 0x%x" ), result ) );
       
  1078     return result;
       
  1079     }
       
  1080 
       
  1081 
       
  1082 TInt RTFDosExtension::CallAsyncDosExtFunction( TRequestStatus& aStatus, TInt aFunc, TAny* aParam = NULL, TInt aParLength = 0, TBool aAutoComplete = EFalse )
       
  1083     {
       
  1084     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - RTFDosExtension::CallAsyncDosExtFunction(0x%x, 0x%x, 0x%x, 0x%x, 0x%x)" ), &aStatus, aFunc, aParam, aParLength, aAutoComplete ) );
       
  1085     TExtensionParPckg package;
       
  1086     package().iFunc = aFunc;
       
  1087     package().iParLength = aParLength;
       
  1088     package().iAutoComplete = aAutoComplete;
       
  1089     TPtr8 ptr( ( TUint8* )aParam, aParLength, aParLength );
       
  1090     CallFunction( aStatus, package, ptr );
       
  1091     User::WaitForRequest( aStatus );
       
  1092     COMPONENT_TRACE( ( _L( "    DSYTESTTOOL - RTFDosExtension::CallAsyncDosExtFunction - return 0x%x" ), aStatus.Int() ) );
       
  1093     return aStatus.Int();
       
  1094     }