diff -r 25fce757be94 -r e02eb84a14d2 usbengines/usbwatcher/src/cusbindicatorhandler.cpp --- a/usbengines/usbwatcher/src/cusbindicatorhandler.cpp Tue Aug 31 16:13:57 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* -* Copyright (c) 2009-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" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: This implements TUsbIndicatorHandler class. -* -*/ - -#include -#include -#include -#include -#include "debug.h" -#include "cusbindicatorhandler.h" - - -// --------------------------------------------------------------------------- -// C++ Constructor -// --------------------------------------------------------------------------- -// - -CUsbIndicatorHandler::CUsbIndicatorHandler() - { - // No implementation required - } - -CUsbIndicatorHandler::~CUsbIndicatorHandler() - { - delete iSymbianIndicator; - - } - -CUsbIndicatorHandler* CUsbIndicatorHandler::NewLC() - { - CUsbIndicatorHandler* self = new (ELeave) CUsbIndicatorHandler(); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -CUsbIndicatorHandler* CUsbIndicatorHandler::NewL() - { - CUsbIndicatorHandler* self = CUsbIndicatorHandler::NewLC(); - CleanupStack::Pop(); // self; - return self; - } - -void CUsbIndicatorHandler::ConstructL() - { - LOG_FUNC - - iDevStateB4Suspend = EUsbDeviceStateUndefined; - iSymbianIndicator = CHbIndicatorSymbian::NewL(); - } - -// --------------------------------------------------------------------------- -// Change USB Indicator -// --------------------------------------------------------------------------- -// -void CUsbIndicatorHandler::HandleDeviceStateChangeL( TUsbDeviceState aStateOld, - TUsbDeviceState aStateNew, TInt aPersonality ) - { - LOG_FUNC - - LOG2( "USB device state changed: %d ==> %d", aStateOld, aStateNew ); - - if ( EUsbDeviceStateAddress == aStateNew ) // Entering addressed state - { - // going down configured -> addressed - if( ( EUsbDeviceStateConfigured == aStateOld ) || - ( ( EUsbDeviceStateSuspended == aStateOld ) && - ( EUsbDeviceStateConfigured == iDevStateB4Suspend ) ) ) - { - ShowUsbConnectedIndicatorL( EFalse, aPersonality ); - } - - // connecting indicator will be shown when addressed state is entered going up or down - // note that when disconnecting the cable (no need to show connecting indicator) - // the state change is CONFIGURED => SUSPENDED => POWERED => UNDEFINED - // filter out case of addressed -> suspended -> addressed - if ( ( EUsbDeviceStateSuspended != aStateOld ) || - ( EUsbDeviceStateAddress != iDevStateB4Suspend) ) - { - ShowUsbAddressedIndicator( ETrue ); - } - } - - else if ( EUsbDeviceStateConfigured == aStateNew ) // Entering configured state - { - // filter out case of configed -> suspended -> configed - if ( ( EUsbDeviceStateSuspended != aStateOld ) || - ( EUsbDeviceStateConfigured != iDevStateB4Suspend) ) - { - ShowUsbAddressedIndicator( EFalse ); - ShowUsbConnectedIndicatorL( ETrue, aPersonality ); - } - } - - else if ( EUsbDeviceStateUndefined == aStateNew ) // Entering undefined - { - ShowUsbAddressedIndicator( EFalse ); - ShowUsbConnectedIndicatorL( EFalse, aPersonality ); - } - - - else if ( EUsbDeviceStateSuspended == aStateNew ) - // If current state is suspend, we do not change the indicator, but save - // the previous state - { - iDevStateB4Suspend = aStateOld; - } - else // New device state is not configured, nor suspended, nor addressed - { - ShowUsbConnectedIndicatorL( EFalse, aPersonality ); - } - - } - -// --------------------------------------------------------------------------- -// Show USB Indicator -// --------------------------------------------------------------------------- -// -void CUsbIndicatorHandler::ShowUsbConnectedIndicatorL( TBool aActivate, TInt aPersonality ) - { - LOG_FUNC - TBool success = EFalse; - _LIT(KUsbIndicator, "com.nokia.hb.indicator.usb.device.connected/1.0"); - - if (aActivate) - { - RUsb usbman; - User::LeaveIfError(usbman.Connect()); - CleanupClosePushL(usbman); - HBufC* description = NULL; - User::LeaveIfError(usbman.GetDescription(aPersonality, - description)); - CleanupStack::PopAndDestroy(&usbman); - CleanupStack::PushL(description); - CHbSymbianVariant* parameters = CHbSymbianVariant::NewL(description, CHbSymbianVariant::EDes); - CleanupStack::PopAndDestroy(description); - success = iSymbianIndicator->Activate(KUsbIndicator, parameters); - LOG1( "calling CHbIndicatorSymbian::Activate(), returned %d", success); - if (!success) - { - TInt indicatorerror = iSymbianIndicator->Error(); - LOG1( "activating the indicator failed with %d", indicatorerror); - } - else - { - iConnectedIndicatorActive = ETrue; - } - delete parameters; - } - else if (iConnectedIndicatorActive) - { - success = iSymbianIndicator->Deactivate(KUsbIndicator); - LOG1( "calling CHbIndicatorSymbian::Deactivate(), returned %d", success); - if (success) - { - iConnectedIndicatorActive = EFalse; - } - LOG( "calling CHbIndicatorSymbian::Deactivate()"); - } - - } - -void CUsbIndicatorHandler::ShowUsbAddressedIndicator( TBool aActivate ) - { - LOG_FUNC - TBool success = EFalse; - _LIT(KUsbIndicator, "com.nokia.hb.indicator.usb.device.inprogress/1.0"); - if (aActivate) - { - success = iSymbianIndicator->Activate(KUsbIndicator); - LOG1( "calling CHbIndicatorSymbian::Activate(), returned %d", success); - if (!success) - { - TInt indicatorerror = iSymbianIndicator->Error(); - LOG1( "activating the indicator failed with %d", indicatorerror); - } - else - { - iAddressedIndicatorActive = ETrue; - } - } - else if (iAddressedIndicatorActive) - { - success = iSymbianIndicator->Deactivate(KUsbIndicator); - LOG1( "calling CHbIndicatorSymbian::Deactivate(), returned %d", success); - if (success) - { - iAddressedIndicatorActive = EFalse; - } - LOG( "calling CHbIndicatorSymbian::Deactivate()"); - } - } - - - -// End of file