equal
deleted
inserted
replaced
261 { |
261 { |
262 HandleHostProblemL(EUsbWatcherErrorInConnection); |
262 HandleHostProblemL(EUsbWatcherErrorInConnection); |
263 return; |
263 return; |
264 } |
264 } |
265 |
265 |
266 TInt err = iUsbServiceControl->Start(iPersonalityId); |
266 TInt err = iUsbServiceControl->StartL(iPersonalityId); |
267 if (KErrNone != err) |
267 if (KErrNone != err) |
268 { |
268 { |
269 FTRACE( FPrint(_L( "[USBOTGWATCHER]\tCUsbOtgWatcher::StartSessionL Can not start usb services. reason = %d" ), err)); |
269 FTRACE( FPrint(_L( "[USBOTGWATCHER]\tCUsbOtgWatcher::StartSessionL Can not start usb services. reason = %d" ), err)); |
270 HandleHostProblemL(EUsbWatcherCanNotStartUsbServices); |
270 HandleHostProblemL(EUsbWatcherCanNotStartUsbServices); |
271 return; |
271 return; |
323 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::IdPinOffL Before DisableFunctionDriverLoad " ) ); |
323 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::IdPinOffL Before DisableFunctionDriverLoad " ) ); |
324 Usb().DisableFunctionDriverLoading(); |
324 Usb().DisableFunctionDriverLoading(); |
325 |
325 |
326 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::IdPinOffL Before TryStop" ) ); |
326 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::IdPinOffL Before TryStop" ) ); |
327 |
327 |
328 TInt err = iUsbServiceControl->Stop(); |
328 TInt err = iUsbServiceControl->StopL(); |
329 |
329 |
330 if (KErrNone != err) |
330 if (KErrNone != err) |
331 { |
331 { |
332 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::IdPinOnL ErrorStoppingUsbServices" ) ); |
332 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::IdPinOnL ErrorStoppingUsbServices" ) ); |
333 Panic(ECanNotStopUsbServices); |
333 Panic(ECanNotStopUsbServices); |
864 // |
864 // |
865 // --------------------------------------------------------------------------- |
865 // --------------------------------------------------------------------------- |
866 // |
866 // |
867 void CUsbOtgWatcher::UsbServiceControlReqCompletedL(TInt aError) |
867 void CUsbOtgWatcher::UsbServiceControlReqCompletedL(TInt aError) |
868 { |
868 { |
869 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::UsbServiceControlReqCompleted" ) ); |
869 FTRACE( FPrint(_L( "[USBOTGWATCHER]\tCUsbOtgWatcher::UsbServiceControlReqCompleted Error returned by UsbServiceControl = %d" ), aError)); |
870 |
870 |
871 if (KErrNone != aError) |
871 switch(aError) |
872 { |
872 { |
873 FTRACE( FPrint(_L( "[USBOTGWATCHER]\tCUsbOtgWatcher::UsbServiceControlReqCompleted Error returned by UsbServiceControl = %d" ), aError)); |
873 case KErrInUse: |
|
874 // usb services already started (this might happen if more than one idpin on event come) |
|
875 { |
|
876 return; |
|
877 } |
|
878 |
|
879 case KErrNone: |
|
880 { |
|
881 break; // do normal routine |
|
882 } |
|
883 |
|
884 default: // handle the issue |
|
885 { |
874 HandleHostProblemL(EUsbWatcherCanNotStartUsbServices); |
886 HandleHostProblemL(EUsbWatcherCanNotStartUsbServices); |
875 return; |
887 return; |
876 } |
888 } |
|
889 } |
877 |
890 |
878 TUsbServiceState serviceState; |
891 TUsbServiceState serviceState; |
879 TInt err = iUsb.GetServiceState(serviceState); |
892 TInt err = iUsb.GetServiceState(serviceState); |
880 |
893 |
881 if (KErrNone != err) |
894 if (KErrNone != err) |
985 User::Leave(KErrGeneral); |
998 User::Leave(KErrGeneral); |
986 } |
999 } |
987 |
1000 |
988 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::SelfTestL Observers destructors." ) ); |
1001 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::SelfTestL Observers destructors." ) ); |
989 |
1002 |
990 delete iIdPinObserver; |
1003 // idpinobserver is deleted later |
991 iIdPinObserver = 0; |
|
992 |
|
993 // Vbus observer is deleted later |
1004 // Vbus observer is deleted later |
994 |
1005 |
995 delete iOtgStateObserver; |
1006 delete iOtgStateObserver; |
996 iOtgStateObserver = 0; |
1007 iOtgStateObserver = 0; |
997 delete iBusActivityObserver; |
1008 delete iBusActivityObserver; |
1042 delete usbnotifmanager; |
1053 delete usbnotifmanager; |
1043 |
1054 |
1044 // VBus observer is deleted here, due to it is used by usbnotifmanager.usbindicatornotifier |
1055 // VBus observer is deleted here, due to it is used by usbnotifmanager.usbindicatornotifier |
1045 delete iVBusObserver; |
1056 delete iVBusObserver; |
1046 iVBusObserver = 0; |
1057 iVBusObserver = 0; |
|
1058 |
|
1059 // id pin observer is deleted here due to it is used by usbnotifmanager.usbindicatornotifier |
|
1060 delete iIdPinObserver; |
|
1061 iIdPinObserver = 0; |
1047 |
1062 |
1048 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::SelfTestL Destructing states." ) ); |
1063 FLOG( _L( "[USBOTGWATCHER]\tCUsbOtgWatcher::SelfTestL Destructing states." ) ); |
1049 |
1064 |
1050 iStates.ResetAndDestroy(); |
1065 iStates.ResetAndDestroy(); |
1051 |
1066 |