diff -r 000000000000 -r c6b0df440bee dbgagents/trkagent/toolsstarter/toolsstarterserver/src/toolslaunchmgr.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dbgagents/trkagent/toolsstarter/toolsstarterserver/src/toolslaunchmgr.cpp Tue Mar 02 10:33:16 2010 +0530 @@ -0,0 +1,272 @@ +/* +* 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 "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 +#include +#include "logging.h" +#include "toolsusbportlistener.h" +#include "toolslaunchmgr.h" + +#define SafeDelete(x) { if (x) delete x; x = NULL; } + +_LIT(KTRKSERVER, "trkserver.exe"); +//_LIT(KTRACESERVER, "traceserver.exe"); + +_LIT(KCMDLINECONNTYPEUSB, "-usb"); +_LIT(KCMDLINECONNTYPEXTI, "-xti"); + + +// LOCAL FUNCTION PROTOTYPES + +// LOCAL CONSTANTS + + + +// +// CToolsLaunchMgr::NewL +// +CToolsLaunchMgr* CToolsLaunchMgr::NewL() +{ + CToolsLaunchMgr* self = new(ELeave) CToolsLaunchMgr; + self->ConstructL(); + return self; +} + +// +// CTrkEngine::NewLC +// +CToolsLaunchMgr* CToolsLaunchMgr::NewLC() +{ + CToolsLaunchMgr* self = new(ELeave) CToolsLaunchMgr; + CleanupStack::PushL(self); + + self->ConstructL(); + + return self; +} + + +// +// CToolsLaunchMgr::ConstructL +// Constructor +// +void CToolsLaunchMgr::ConstructL() +{ + iUsbPortListener = new CToolsUsbPortListener(this); + TRAPD(err, iUsbPortListener->ListenL()); + if (err != KErrNone) + LOG_MSG("Failed to start the USB port listener"); + + // Adding TRKAPP to the launch list + CToolsProcess* toolsProcess = CToolsProcess::NewL(KTRKSERVER, KCMDLINECONNTYPEUSB, KCMDLINECONNTYPEXTI); + iToolsProcessList.Append(toolsProcess); + + // Adding TRACESWITCH app + // For now, we are disabling the autostart of traceserver from toolsstarter + // When traceserver connects to the tracecore ost ldd at bootup time, + // there is a problem for getting the data from the ldd. + // Until this problem is fixed, traceswitch needs to be started after the bootup + // for plug-n-play trace support. + //_LIT(KNOXTI, ""); + + //toolsProcess = CToolsProcess::NewL(KTRACESERVER, KCMDLINECONNTYPEUSB, KNOXTI); + //iToolsProcessList.Append(toolsProcess); +} + +// +// CToolsLaunchMgr::CToolsLaunchMgr +// Constructor +// +CToolsLaunchMgr::CToolsLaunchMgr() + : iUsbPortListener(NULL), + iToolsProcessList(1), + iToolListenerList(1) +{ + +} + +// +// CToolsLaunchMgr::~CToolsLaunchMgr +// Destructor +// +CToolsLaunchMgr::~CToolsLaunchMgr() +{ + SafeDelete(iUsbPortListener); + iToolsProcessList.ResetAndDestroy(); + iToolsProcessList.Close(); + iToolListenerList.ResetAndDestroy(); + iToolListenerList.Close(); +} + +// +// CToolsLaunchMgr::Launch +// +void CToolsLaunchMgr::Launch() +{ + if (iUsbPortListener->IsConnectionAvailable()) + { + LaunchTools(EUsb); + } + else + { + LaunchTools(EXti); + } +} + +// +// CToolsLaunchMgr::ConnectionAvailable +// +void CToolsLaunchMgr::ConnectionAvailable() +{ + + for (TInt i=0; iConnStatusChanged(EUsbConnected); + + } + +} + +// +// CToolsLaunchMgr::LaunchTools +// +void CToolsLaunchMgr::LaunchTools(TCmdLineConnType aConnType) +{ + // remove this process from our list + for (TInt i=0; iStart(aConnType); + + if (err != KErrNone) + { + LOG_MSG2("Failed to start the process: %d", err); + } + } +} + +// +// CToolsLaunchMgr::ConnectionAvailable +// +void CToolsLaunchMgr::ConnectionUnAvailable() +{ + for (TInt i=0; iConnStatusChanged(EUsbNotConnected); + + } +} + +// +// CToolsLaunchMgr::StopTools +// +void CToolsLaunchMgr::StopTools() +{ + // remove this process from our list + for (TInt i=0; iStop(); + } +} +// +// CToolsLaunchMgr::GetUsbConnStatus() +// +// To Find out the usb connection status +// +TConnectionStatus CToolsLaunchMgr::GetUsbConnStatus() +{ + return (iUsbPortListener->GetUsbConnStatus()); + +} +// +// CToolsLaunchMgr::RegisterListener() +// +// To register the cable connection events +// + +void CToolsLaunchMgr::RegisterListener(MConnStateListener* aListener) +{ + iToolListenerList.Append(aListener); +} + +// +// CToolsLaunchMgr::UnregisterListener() +// +// To unregister the cable connection events +// +void CToolsLaunchMgr::UnregisterListener(MConnStateListener* aListener) +{ + for (TInt i=0; i