--- a/usbengines/usbotgwatcher/src/cusbstatehostabase.cpp Fri May 14 16:51:51 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/*
- * Copyright (c) 2008 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: Implementation
- *
- */
-
-#include <e32base.h>
-#include <usbhosterrors.h>
-#include <d32otgdi_errors.h>
-#include <d32usbdi_errors.h>
-
-#include "cusbotgwatcher.h"
-#include "cusbstatehostabase.h"
-#include "cusbstatehosthandledropping.h"
-
-#include "errors.h"
-
-#include "debug.h"
-#include "panic.h"
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CUsbStateHostABase::CUsbStateHostABase(CUsbOtgWatcher& aWatcher) :
- CUsbState(aWatcher)
- {
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::ConstructL()
- {
- LOG_FUNC
- CUsbState::ConstructL();
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CUsbStateHostABase::~CUsbStateHostABase()
- {
- LOG_FUNC
- }
-
-// From VBus observer
-// ---------------------------------------------------------------------------
-// VBus can be dropped by lower leyer in case of a critical problem
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::VBusDownL()
- {
- LOG_FUNC
- HandleL(EUsbWatcherErrorInConnection, EUsbStateHostHandleDropping);
- }
-
-// From OTG state observer
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::AIdleL()
- {
- LOG_FUNC
- // do nothing
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::AHostL()
- {
- LOG_FUNC
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::APeripheralL()
- {
- LOG_FUNC
- ChangeHostStateL( EUsbStateHostAPeripheral);
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::AVBusErrorL()
- {
- LOG_FUNC
- // No need to handle BusClearError error code, due to Bus will be dropped anyway
- iWatcher.Usb().BusClearError();
- HandleL(EUsbWatcherErrDeviceRequiresTooMuchPower,
- EUsbStateHostHandleDropping);
- }
-
-// From bus activity observer
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::BusIdleL()
- {
- LOG_FUNC
- //do nothing
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::BusActiveL()
- {
- LOG_FUNC
- // do nothing
- }
-
-// From message notification observer
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::MessageNotificationReceivedL(TInt aMessage)
- {
- LOG_FUNC
- LOG1( "aMessage = %d" , aMessage);
-
- switch (aMessage)
- {
-
- // OTGDI
- case KErrUsbOtgStackNotStarted:// = -6680;
- case KErrUsbOtgHnpNotResponding:// = -6683;
- case KErrUsbOtgBusControlProblem:// = -6685;
- case KErrUsbOtgVbusPowerUpError:// = -6686;
- case KErrUsbOtgHnpEnableProblem:// = -6687;
- case KErrUsbOtgVbusError:// = -6690;
-
- // hosterrors.h
- case KErrUsbConfigurationHasNoInterfaces:
- case KErrUsbInterfaceCountMismatch:
- case KErrUsbDuplicateInterfaceNumbers:
- case KErrUsbBadDescriptor:
- case KErrUsbDeviceDetachedDuringDriverLoading:
- case KErrUsbAttachmentFailureGeneralError:
- {
- LOG( "ErrorInConnection" );
- HandleL(EUsbWatcherErrorInConnection, EUsbStateHostHandleDropping);
- break;
- }
-
- // OTGDI
- case KErrUsbOtgPeriphNotSupported: // = -6688, for OPT only
-
- // USBDI
- case KErrUsbRequestsPending:
- case KErrUsbBadAddress:
- case KErrUsbNoAddress:
- case KErrUsbSetAddrFailed:
- case KErrUsbNoPower:
- case KErrUsbTooDeep:
- case KErrUsbIOError:
- case KErrUsbNotConfigured:
- case KErrUsbTimeout:
- case KErrUsbStalled:
- case KErrUsbTestFailure:
- case KErrUsbBadState:
- case KErrUsbDeviceSuspended:
- case KErrUsbBadDescriptorTopology:
- case KErrUsbDeviceRejected:
- case KErrUsbDeviceFailed:
- case KErrUsbBadDevice: // = -6656
- case KErrUsbBadHub:
- case KErrUsbEventOverflow:
- case KErrUsbBadDeviceAttached:
-
- // hosterrors.h
- case KErrUsbUnsupportedDevice:
- {
- LOG( "UnsupportedDevice" );
- HandleL(EUsbWatcherErrUnsupportedDevice,
- EUsbStateHostHandleDropping);
- break;
- }
- default:
- {
- LOG1( "Unhandled message = %d" , aMessage);
- break;
- }
-
- }
-
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::BadHubPositionL()
- {
- LOG_FUNC
- HandleL(EUsbWatcherHubsNotSupported, EUsbStateHostHandleDropping);
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::VBusErrorL()
- {
- LOG_FUNC
- // No error code handling after BusClearError call, due to bus will be dropped anyway
- iWatcher.Usb().BusClearError();
- HandleL(EUsbWatcherErrDeviceRequiresTooMuchPower,
- EUsbStateHostHandleDropping);
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::SrpReceivedL()
- {
- LOG_FUNC
-
- if (iWatcher.VBusObserver()->VBus() == CUsbVBusObserver::EVBusUp)
- {
- LOG( "Session is ongoing (VBus high); ignore SRP request." );
- return;
- }
-
- TInt err = iWatcher.Usb().BusRespondSrp();
- LOG1( "BusRespondSrp() error = %d" , err );
-
- if (KErrNone != err && KErrUsbOtgVbusAlreadyRaised != err)
- {
- iWatcher.HandleHostProblemL(EUsbWatcherErrorInConnection,
- EUsbStateHostHandleDropping);
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CUsbStateHostABase::SessionRequestedL()
- {
- LOG_FUNC
-
- if (iWatcher.VBusObserver()->VBus() == CUsbVBusObserver::EVBusUp)
- {
- // session already ongoing; BusRequest() in this case returns KErrUsbOtgBadState...
- LOG( "Session is ongoing (VBus high); ignore Session Request." );
- return;
- }
-
- TInt err = iWatcher.Usb().BusRequest();
- LOG1( "BusRequest() err = %d" , err);
-
- if (KErrNone != err && KErrUsbOtgVbusAlreadyRaised != err)
- {
- iWatcher.HandleHostProblemL(EUsbWatcherErrorInConnection,
- EUsbStateHostHandleDropping);
- }
- }