diff -r 000000000000 -r 63b37f68c1ce connectivitylayer/usbphonetlink/usbpnclasscontroller_dll/src/usbpnclasscontroller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/connectivitylayer/usbphonetlink/usbpnclasscontroller_dll/src/usbpnclasscontroller.cpp Fri Nov 06 17:28:23 2009 +0000 @@ -0,0 +1,208 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + +// INCLUDE FILES +#include "usbpnclasscontroller.h" +#include "usbpndefinitions.h" +#include "usbpntrace.h" + +#include "osttracedefinitions.h" // For tracing +#ifdef OST_TRACE_COMPILER_IN_USE +#include "usbpnclasscontrollerTraces.h" +#endif + +#include // For TUsbDescriptor + +// EXTERNAL DATA STRUCTURES +// EXTERNAL FUNCTION PROTOTYPES +// CONSTANTS + +#ifdef _DEBUG +_LIT(KTraceName, "USBPNClassController"); +#endif + +// MACROS +// LOCAL CONSTANTS AND MACROS +// MODULE DATA STRUCTURES +// LOCAL FUNCTION PROTOTYPES +// FORWARD DECLARATIONS +// ============================= LOCAL FUNCTIONS =============================== +// ============================ MEMBER FUNCTIONS =============================== +// --------------------------------------------------------- +// CUsbPNClassController::NewL +// --------------------------------------------------------- +CUsbPNClassController* CUsbPNClassController::NewL(MUsbClassControllerNotify& aOwner) + { + OstTrace1( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_NEWL_ENTRY, "CUsbPNClassController::NewL;aOwner=%x", ( TUint )&( aOwner ) ); + C_TRACE( ( _T("CUsbPNClassController::NewL(0x%x)" ), &aOwner ) ); + + CUsbPNClassController* self = new (ELeave) CUsbPNClassController(aOwner); + + OstTrace1( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_NEWL_EXIT, "CUsbPNClassController::NewL;self=%x", ( TUint ) self ); + C_TRACE( ( _T("CUsbPNClassController::NewL - return 0x%x" ), self ) ); + return self; + } + +// --------------------------------------------------------- +// CUsbPNClassController::CUsbPNClassController +// --------------------------------------------------------- +CUsbPNClassController::CUsbPNClassController(MUsbClassControllerNotify& aOwner) + : CUsbClassControllerPlugIn(aOwner, 1) + { + OstTrace1( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_CUSBPNCLASSCONTROLLER_ENTRY, "CUsbPNClassController::CUsbPNClassController;aOwner=%x", ( TUint )&( aOwner ) ); + C_TRACE( ( _T("CUsbPNClassController::CUsbPNClassController(0x%x)" ), &aOwner ) ); + + iState = EUsbServiceIdle; + + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_CUSBPNCLASSCONTROLLER_EXIT, "CUsbPNClassController::CUsbPNClassController - return void" ); + C_TRACE( ( _T("CUsbPNClassController::CUsbPNClassController - return void" ) ) ); + } + +// --------------------------------------------------------- +// CUsbPNClassController::~CUsbPNClassController +// --------------------------------------------------------- +CUsbPNClassController::~CUsbPNClassController() + { + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_CUSBPNCLASSCONTROLLER_DESTRUCTOR_ENTRY, "CUsbPNClassController::~CUsbPNClassController" ); + C_TRACE( ( _T("CUsbPNClassController::~CUsbPNClassController()" ) ) ); + + Cancel(); + + if(iState == EUsbServiceStarted) + { + iClient.Detach(); + } + + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_CUSBPNCLASSCONTROLLER_DESTRUCTOR_EXIT, "CUsbPNClassController::~CUsbPNClassController - return void" ); + C_TRACE( ( _T("CUsbPNClassController::~CUsbPNClassController - return void" ) ) ); + } + +// --------------------------------------------------------- +// CUsbPNClassController::Start +// --------------------------------------------------------- +void CUsbPNClassController::Start(TRequestStatus& aStatus) + { + OstTrace1( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_START_ENTRY, "CUsbPNClassController::Start;aStatus=%x", ( TUint )&( aStatus ) ); + C_TRACE( ( _T("CUsbPNClassController::Start(0x%x)" ), &aStatus ) ); + + //Show component build information in traces + BUILD_TRACE( &KTraceName ); + + TRequestStatus* reportStatus = &aStatus; + TInt err( KErrNotReady ); + + if(iState == EUsbServiceIdle) + { + iState = EUsbServiceStarting; + + // Connect to server client to start server. + TRAP( err, iClient.ConnectL() ); + if(!err) + { + iState = EUsbServiceStarted; + } + } + + User::RequestComplete(reportStatus, err); + + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_START_EXIT, "CUsbPNClassController::Start - return void" ); + C_TRACE( ( _T("CUsbPNClassController::Start - return void" ) ) ); + } + +// --------------------------------------------------------- +// CUsbPNClassController::Stop +// --------------------------------------------------------- +void CUsbPNClassController::Stop(TRequestStatus& aStatus) + { + OstTrace1( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_STOP_ENTRY, "CUsbPNClassController::Stop;aStatus=%x", ( TUint )&( aStatus ) ); + C_TRACE( ( _T("CUsbPNClassController::Stop(0x%x)" ), &aStatus ) ); + TRequestStatus* ReportStatus = &aStatus; + + if(iState == EUsbServiceStarted) + { + iState = EUsbServiceStopping; + + // Close connection to client API to shutdown server. + iClient.Detach(); + + iState = EUsbServiceIdle; + } + User::RequestComplete(ReportStatus, KErrNone); + + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_STOP_EXIT, "CUsbPNClassController::Stop - return void" ); + C_TRACE( ( _T("CUsbPNClassController::Stop - return void" ) ) ); + } + +// --------------------------------------------------------- +// CUsbPNClassController::GetDescriptorInfo +// --------------------------------------------------------- + +void CUsbPNClassController::GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const + { + OstTrace1( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY, "CUsbPNClassController::GetDescriptorInfo;aDescriptorInfo=%x", ( TUint )&( aDescriptorInfo ) ); + C_TRACE( ( _T("CUsbPNClassController::GetDescriptorInfo(0x%x)" ), &aDescriptorInfo ) ); + + aDescriptorInfo.iNumInterfaces = KPnNumInterfaces; + aDescriptorInfo.iLength = KPnDescriptorLength; + + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT, "CUsbPNClassController::GetDescriptorInfo - return void" ); + C_TRACE( ( _T("CUsbPNClassController::GetDescriptorInfo - return void" ) ) ); + } + +// --------------------------------------------------------- +// CUsbPNClassController::RunL +// --------------------------------------------------------- +void CUsbPNClassController::RunL() + { + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_RUNL_ENTRY, "CUsbPNClassController::RunL" ); + C_TRACE( ( _T("CUsbPNClassController::RunL()" ) ) ); + + __ASSERT_DEBUG(EFalse, User::Invariant()); + + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_RUNL_EXIT, "CUsbPNClassController::RunL - return void" ); + C_TRACE( ( _T("CUsbPNClassController::RunL - return void" ) ) ); + } + +// --------------------------------------------------------- +// CUsbPNClassController::DoCancel +// --------------------------------------------------------- +void CUsbPNClassController::DoCancel() + { + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_DOCANCEL_ENTRY, "CUsbPNClassController::DoCancel" ); + C_TRACE( ( _T("CUsbPNClassController::DoCancel()" ) ) ); + + __ASSERT_DEBUG(EFalse, User::Invariant()); + + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_DOCANCEL_EXIT, "CUsbPNClassController::DoCancel - return void" ); + C_TRACE( ( _T("CUsbPNClassController::DoCancel - return void" ) ) ); + } + +// --------------------------------------------------------- +// CUsbPNClassController::RunError +// --------------------------------------------------------- +TInt CUsbPNClassController::RunError(TInt /*aError*/) + { + OstTrace0( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_RUNERROR_ENTRY, "CUsbPNClassController::RunError" ); + C_TRACE( ( _T("CUsbPNClassController::RunError()" )) ); + + __ASSERT_DEBUG(EFalse, User::Invariant()); + + OstTrace1( TRACE_NORMAL, CUSBPNCLASSCONTROLLER_RUNERROR_EXIT, "CUsbPNClassController::RunError - return 0x%x", KErrNone ); + C_TRACE( ( _T("CUsbPNClassController::RunError - return 0x%x" ), KErrNone ) ); + return KErrNone; + } +