# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271253752 -10800 # Node ID 165aafcbb3d864bb6eeb44d100c37479fc1f807e # Parent 56303587e92f7d4432e84b60508663b1a1a4a395 Revision: 201013 Kit: 201015 diff -r 56303587e92f -r 165aafcbb3d8 usbengines/usbdevcon/inc/cusbdevcon.h --- a/usbengines/usbdevcon/inc/cusbdevcon.h Wed Mar 31 23:11:07 2010 +0300 +++ b/usbengines/usbdevcon/inc/cusbdevcon.h Wed Apr 14 17:02:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007 - 2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -109,13 +109,6 @@ */ void StopL(); - /** - * Take needed actions on resuming services - * - * @since S60 v.5.0 - */ - void ResumeL(); - // from CActive /** diff -r 56303587e92f -r 165aafcbb3d8 usbengines/usbdevcon/src/cusbdevcon.cpp --- a/usbengines/usbdevcon/src/cusbdevcon.cpp Wed Mar 31 23:11:07 2010 +0300 +++ b/usbengines/usbdevcon/src/cusbdevcon.cpp Wed Apr 14 17:02:32 2010 +0300 @@ -116,39 +116,39 @@ // CUsbDevCon::~CUsbDevCon() { - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon" ) ); - - Cancel(); - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon Cancel" ) ); - - delete iStateMachine; - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon StateMachine" ) ); - - delete iRequestsHandler; - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon RequestsHandler" ) ); - - delete iUsbStateWatcher; - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon UsbStateWatcher" ) ); - - iUsbWatcher.Close(); - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon UsbWatcher" ) ); - - iUsbManager.Close(); - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon UsbManager" ) ); - - iLdd.Close(); - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon LDD" ) ); - - iShutdownTimer.Close(); - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon Timer" ) ); + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon" ) ); + + Cancel(); + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon Cancel" ) ); + + delete iStateMachine; + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon StateMachine" ) ); + + delete iRequestsHandler; + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon RequestsHandler" ) ); + + delete iUsbStateWatcher; + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon UsbStateWatcher" ) ); + + iUsbWatcher.Close(); + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon UsbWatcher" ) ); + + iUsbManager.Close(); + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon UsbManager" ) ); + + iLdd.Close(); + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon LDD" ) ); + + iShutdownTimer.Close(); + + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::~CUsbDevCon Timer" ) ); } @@ -165,32 +165,46 @@ { FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Undefined" ) ); - + StopL(); break; } case EUsbcDeviceStateAttached: { - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Attached" ) ); + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Attached, ignored" ) ); break; } + case EUsbcDeviceStateSuspended: + { + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Suspended" ) ); + // NO break here + } case EUsbcDeviceStatePowered: { - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Powered" ) ); + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Powered" ) ); - StartL(); + // In powered or suspended state, we are not allowed to do any data + // communication. Hence if there are pending read/write requests, + // we need cancel them. + // Not call StopL() here because we do not want to shut down this + // process so earlier but in Undefined state. + if ( iStateMachine->IsStarted() ) + { + iStateMachine->Stop(); + // release device control + User::LeaveIfError(iLdd.ReleaseDeviceControl()); + } break; } case EUsbcDeviceStateDefault: { - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Default" ) ); + // The request will only be started from default state. + // If it has been started already, nothing will be done. + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Default" ) ); StartL(); break; @@ -198,8 +212,7 @@ case EUsbcDeviceStateAddress: { - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Addressed" ) ); + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Addressed" ) ); StartL(); break; @@ -207,32 +220,16 @@ case EUsbcDeviceStateConfigured: { - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Configured" ) ); + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Configured" ) ); - if(iPrevUsbState == EUsbcDeviceStateSuspended) - { - ResumeL(); - } - else - { - StartL(); - } + StartL(); break; } - case EUsbcDeviceStateSuspended: - { - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: Suspended" ) ); - - break; - } - default: { - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: ***Undefined***" ) ); + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ActAccordinglyToUsbStateL State: ***Unknown***" ) ); StopL(); break; @@ -302,9 +299,9 @@ } - // Cancel shutdown timer, if it is started - iShutdownTimer.Cancel(); - } + // Cancel shutdown timer, if it is started + iShutdownTimer.Cancel(); + } // --------------------------------------------------------------------------- // Stops UsbDevCon services @@ -324,34 +321,21 @@ // release device control User::LeaveIfError(iLdd.ReleaseDeviceControl()); - } + } - if(!IsActive()) // not waiting for timer - { - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::StopL Starting timer" ) ); - // run timer - iShutdownTimer.Cancel(); + if(!IsActive()) // not waiting for timer + { + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::StopL Starting timer" ) ); + // run timer + iShutdownTimer.Cancel(); - // RunL will be called after KInactiveTimeForShutDown milliseconds - iShutdownTimer.After(iStatus, TTimeIntervalMicroSeconds32(KInactiveTimeForShutDown)); - SetActive(); - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::StopL Timer is started" ) ); - } + // RunL will be called after KInactiveTimeForShutDown milliseconds + iShutdownTimer.After(iStatus, TTimeIntervalMicroSeconds32(KInactiveTimeForShutDown)); + SetActive(); + FLOG( _L( "[USBDEVCON]\tCUsbDevCon::StopL Timer is started" ) ); + } } -// --------------------------------------------------------------------------- -// Resumes UsbDevCon services -// --------------------------------------------------------------------------- -// -void CUsbDevCon::ResumeL() - { - - FLOG( _L( "[USBDEVCON]\tCUsbDevCon::ResumeL" ) ); - - // Resume state machine - StartL(); - - } // ---------------------------------------------------------------------------- // Constructs and installs the active scheduler, constructs UsbDevCon object. @@ -412,6 +396,3 @@ return err; } - - - diff -r 56303587e92f -r 165aafcbb3d8 usbuis/usbui/USBClassChangeUIPlugin/src/USBClassChangeUIPluginContainer.cpp --- a/usbuis/usbui/USBClassChangeUIPlugin/src/USBClassChangeUIPluginContainer.cpp Wed Mar 31 23:11:07 2010 +0300 +++ b/usbuis/usbui/USBClassChangeUIPlugin/src/USBClassChangeUIPluginContainer.cpp Wed Apr 14 17:02:32 2010 +0300 @@ -310,16 +310,17 @@ iViewRef->HandleCommandL( EUSBUICmdSelect ); break; } + case EEventPenDownOnItem: + { + ShowPopUpsL (CurrentItemIndex()); + break; + } case EEventPanningStarted: case EEventPanningStopped: case EEventFlickStarted: case EEventFlickStopped: - case EEventPenDownOnItem: - case EEventItemDraggingActioned: - { - ShowPopUpsL (CurrentItemIndex()) ; - break; - } + case EEventItemDraggingActioned: + break; default: break; }