usbengines/usbotgwatcher/src/cusbservicecontrol.cpp
changeset 3 47c263f7e521
parent 0 1e05558e2206
child 13 7068aba64af5
child 25 8c311f9acc5e
equal deleted inserted replaced
2:468cfcb53fd1 3:47c263f7e521
    72 
    72 
    73 // ---------------------------------------------------------------------------
    73 // ---------------------------------------------------------------------------
    74 // 
    74 // 
    75 // ---------------------------------------------------------------------------
    75 // ---------------------------------------------------------------------------
    76 //
    76 //
    77 TInt CUsbServiceControl::Start(TInt aPersonalityId)
    77 TInt CUsbServiceControl::StartL(TInt aPersonalityId)
    78     {
    78     {
    79         FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::Start aPersonalityId = %d" ), aPersonalityId));
    79         FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::Start aPersonalityId = %d" ), aPersonalityId));
    80 
    80 
    81     TUsbServiceState serviceState;
    81     TUsbServiceState serviceState;
    82     TInt err = iUsb.GetServiceState(serviceState);
    82     TInt err = iUsb.GetServiceState(serviceState);
   115                 return err;
   115                 return err;
   116                 }
   116                 }
   117 
   117 
   118             if (aPersonalityId == currentPersonality) // already started
   118             if (aPersonalityId == currentPersonality) // already started
   119                 {
   119                 {
   120                     FLOG( _L( "[USBOTGWATCHER]\tCUsbServiceControl::Start Personality already sterted" ) );
   120                     FLOG( _L( "[USBOTGWATCHER]\tCUsbServiceControl::Start Personality already started" ) );
   121                 iObserver->UsbServiceControlReqCompletedL(KErrNone);
   121                 iObserver->UsbServiceControlReqCompletedL(KErrInUse);
   122                 return KErrNone;
   122                 return KErrNone;
   123                 }
   123                 }
   124 
   124 
   125             // we need to stop current personality and start service with new personailty id
   125             // we need to stop current personality and start service with new personailty id
   126             iPersonalityId = aPersonalityId; // this will indicate that we want to start this personality after
   126             iPersonalityId = aPersonalityId; // this will indicate that we want to start this personality after
   127 
   127 
   128             Stop();
   128             StopL();
   129 
   129 
   130             // start new personality in RunL() when state is Idle
   130             // start new personality in RunL() when state is Idle
   131 
   131 
   132             break;
   132             break;
   133             }
   133             }
   174 
   174 
   175 // ---------------------------------------------------------------------------
   175 // ---------------------------------------------------------------------------
   176 // 
   176 // 
   177 // ---------------------------------------------------------------------------
   177 // ---------------------------------------------------------------------------
   178 //
   178 //
   179 TInt CUsbServiceControl::Stop()
   179 TInt CUsbServiceControl::StopL()
   180     {
   180     {
   181         FLOG( _L( "[USBOTGWATCHER]\tCUsbServiceControl::Stop" ) );
   181         FLOG( _L( "[USBOTGWATCHER]\tCUsbServiceControl::Stop" ) );
   182 
   182 
   183     TUsbServiceState serviceState;
   183     TUsbServiceState serviceState;
   184     TInt err = iUsb.GetServiceState(serviceState);
   184     TInt err = iUsb.GetServiceState(serviceState);
   284             if (iPersonalityId != 0) // during service stopping, requested to start it
   284             if (iPersonalityId != 0) // during service stopping, requested to start it
   285                 {
   285                 {
   286                     FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL Requested to start personality %d. Starting it." ), iPersonalityId));
   286                     FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL Requested to start personality %d. Starting it." ), iPersonalityId));
   287                 TInt personalityId = iPersonalityId;
   287                 TInt personalityId = iPersonalityId;
   288                 iPersonalityId = 0; // reset
   288                 iPersonalityId = 0; // reset
   289                 err = Start(personalityId);
   289                 err = StartL(personalityId);
   290                 if(KErrNone != err)
   290                 if(KErrNone != err)
   291                     {
   291                     {
   292                     iObserver->UsbServiceControlReqCompletedL(err);
   292                     iObserver->UsbServiceControlReqCompletedL(err);
   293                     }
   293                     }
   294                 return;
   294                 return;
   322                 }
   322                 }
   323 
   323 
   324             if (iPersonalityId == 0) // during service start requested to stop it
   324             if (iPersonalityId == 0) // during service start requested to stop it
   325                 {
   325                 {
   326                 FLOG( _L( "[USBOTGWATCHER]\tCUsbServiceControl::Start Requested to stop personality. Stopping." ) );
   326                 FLOG( _L( "[USBOTGWATCHER]\tCUsbServiceControl::Start Requested to stop personality. Stopping." ) );
   327                 err = Stop();
   327                 err = StopL();
   328                 if(KErrNone != err)
   328                 if(KErrNone != err)
   329                     {
   329                     {
   330                     FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL error while stopping personality err = %d" ), err));
   330                     FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL error while stopping personality err = %d" ), err));
   331                     iObserver->UsbServiceControlReqCompletedL(err);
   331                     iObserver->UsbServiceControlReqCompletedL(err);
   332                     }
   332                     }
   336             // otherwise, during service start, requested to start it with another personality
   336             // otherwise, during service start, requested to start it with another personality
   337             FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL Requested to start personality %d. Starting it." ), iPersonalityId));
   337             FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL Requested to start personality %d. Starting it." ), iPersonalityId));
   338             TInt personalityId = iPersonalityId;
   338             TInt personalityId = iPersonalityId;
   339             iPersonalityId = 0; // reset
   339             iPersonalityId = 0; // reset
   340             //User::LeaveIfError(Start(personalityId));
   340             //User::LeaveIfError(Start(personalityId));
   341             err = Start(personalityId);
   341             err = StartL(personalityId);
   342             if(KErrNone != err)
   342             if(KErrNone != err)
   343                 {
   343                 {
   344                 FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL error while starting personality err = %d" ), err));
   344                 FTRACE(FPrint(_L( "[USBOTGWATCHER]\tCUsbServiceControl::RunL error while starting personality err = %d" ), err));
   345                 iObserver->UsbServiceControlReqCompletedL(err);
   345                 iObserver->UsbServiceControlReqCompletedL(err);
   346                 }
   346                 }