dbgagents/trkagent/app/s60/TrkSettingsData.cpp
changeset 0 c6b0df440bee
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dbgagents/trkagent/app/s60/TrkSettingsData.cpp	Tue Mar 02 10:33:16 2010 +0530
@@ -0,0 +1,210 @@
+/*
+* Copyright (c) 2005 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 "TrkSettingsData.h"
+
+// ================= MEMBER FUNCTIONS =========================================
+
+// ----------------------------------------------------------------------------
+// CTrkSettingsData::NewL
+// Two-phase constructor
+// ----------------------------------------------------------------------------
+//
+CTrkSettingsData* CTrkSettingsData::NewL(RTrkSrvCliSession& aTrkSession)
+{
+    CTrkSettingsData* data = new(ELeave) CTrkSettingsData(aTrkSession);
+    CleanupStack::PushL(data);
+    data->ConstructL();
+    CleanupStack::Pop(); // data
+    return data;
+}
+
+// Destructor
+//
+CTrkSettingsData::~CTrkSettingsData()
+{
+}
+
+// Constructor
+//
+CTrkSettingsData::CTrkSettingsData(RTrkSrvCliSession& aTrkSession)
+:iTrkSession(aTrkSession)
+{
+    iConnTypeIndex = 1;
+
+	iPortNumber = KDefaultUsbPortNumber;
+	iBaudRateIndex = 8;
+}
+
+// Epoc default constructor
+//
+void CTrkSettingsData::ConstructL()
+{
+    iTrkSession.GetCurrentConnData(iTrkConnData);
+	iConnTypeIndex = iTrkConnData.iConnType;
+
+#ifdef __OEM_TRK__
+	if (iConnTypeIndex>ETrkDcc)
+#else
+	if (iConnTypeIndex>ETrkBt)
+#endif
+	{
+		iTrkConnData.iConnType = ETrkBt;
+		iConnTypeIndex = ETrkBt;
+	}
+	iPlugAndPlay = iTrkConnData.iPlugPlay;
+	iPortNumber = iTrkConnData.iPortNumber;
+	iBaudRateIndex = GetIndexForBaudRate(iTrkConnData.iRate);
+	
+	if(iPlugAndPlay == 1)
+	  iPlugAndPlayType = 0;
+	else
+	  iPlugAndPlayType = 1;
+	
+}
+
+TInt CTrkSettingsData::SaveSettings()
+{
+	iTrkConnData.iConnType = (TTrkConnType)iConnTypeIndex;
+	iTrkConnData.iRate = GetBaudRateForIndex(iBaudRateIndex);
+	iTrkConnData.iPortNumber = iPortNumber;
+	
+	if(iPlugAndPlayType == 1)
+	    iPlugAndPlay = 0;
+	else
+	    iPlugAndPlay = 1;
+	
+	
+	switch (iTrkConnData.iConnType)
+	{
+		case ETrkUsbDbgTrc:
+		{
+			iTrkConnData.iCommType = EDbgTrcComm;
+			iTrkConnData.iPDD.Copy(KDefaultUsbPDD);
+			iTrkConnData.iLDD.Copy(KDefaultUsbLDD);
+			iTrkConnData.iCSY.Copy(KDefaultUsbCSY);
+			iTrkConnData.iPlugPlay = iPlugAndPlay;
+			break;
+		}
+		case ETrkBt:
+		{
+			iTrkConnData.iCommType = EBtSocket;
+			iTrkConnData.iPDD = KNullDesC;
+			iTrkConnData.iLDD = KNullDesC;
+			iTrkConnData.iCSY = KNullDesC;
+			iTrkConnData.iPlugPlay = iPlugAndPlay;
+			break;
+		}
+		case ETrkXti:
+		{
+			iTrkConnData.iCommType = EXti;
+			iTrkConnData.iPDD = KNullDesC;
+			iTrkConnData.iLDD.Copy(KTrkXTILDD);
+			iTrkConnData.iCSY = KNullDesC;
+			iTrkConnData.iPlugPlay = iPlugAndPlay;
+			break;
+		}
+		case ETrkDcc:
+		{
+			iTrkConnData.iCommType = EDcc;
+			iTrkConnData.iPDD = KNullDesC;
+			iTrkConnData.iLDD.Copy(KTrkDCCLDD);
+			iTrkConnData.iCSY = KNullDesC;
+			iTrkConnData.iPortNumber = 42;
+			iTrkConnData.iPlugPlay = iPlugAndPlay;
+			break;
+		}
+		case ETrkUsb:
+		{
+			iTrkConnData.iCommType = ESerialComm;
+			iTrkConnData.iPDD.Copy(KDefaultUsbPDD);
+			iTrkConnData.iLDD.Copy(KDefaultUsbLDD);
+			iTrkConnData.iCSY.Copy(KDefaultUsbCSY);
+			iTrkConnData.iPlugPlay = iPlugAndPlay;
+			break;
+		}
+		case ETrkIr:
+		{
+			iTrkConnData.iCommType = ESerialComm;
+			iTrkConnData.iPDD.Copy(KDefaultIrPDD);
+			iTrkConnData.iLDD.Copy(KDefaultIrLDD);
+			iTrkConnData.iCSY.Copy(KDefaultIrCSY);
+			iTrkConnData.iPlugPlay = iPlugAndPlay;
+			break;
+		}
+		default:
+		{
+			iTrkConnData.iCommType = ESerialComm;
+			break;
+		}
+	}
+	return iTrkSession.SetCurrentConnData(iTrkConnData);
+}
+
+TInt CTrkSettingsData::GetIndexForBaudRate(TUint aRate)
+{
+	switch (aRate)
+	{
+		case 300:     return 0;
+		case 1200:    return 1;
+		case 2400:    return 2;
+		case 4800:    return 3;
+		case 9600:    return 4;
+		case 19200:   return 5;
+		case 38400:   return 6;
+		case 57600:   return 7;
+		case 115200:  return 8;
+		case 234000:  return 9;
+		case 460800:  return 10;
+		case 576000:  return 11;
+		case 1152000: return 12;
+		case 4000000: return 13;
+		
+		default: return 8;
+		
+	}
+	
+}
+
+TUint CTrkSettingsData::GetBaudRateForIndex(TInt aIndex)
+{
+	switch (aIndex)
+	{
+		case 0:  return 300;
+		case 1:  return 1200;
+		case 2:  return 2400;
+		case 3:  return 4800;
+		case 4:  return 9600;
+		case 5:  return 19200;
+		case 6:  return 38400;
+		case 7:  return 57600;
+		case 8:  return 115200;
+		case 9:  return 234000;
+		case 10: return 460800;
+		case 11: return 576000;
+		case 12: return 1152000;
+		case 13: return 4000000;
+		
+		default: return 115200;
+		
+	}
+	
+}
+// End of File