diff -r 000000000000 -r f63038272f30 bluetoothengine/btsap/inc/debug.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btsap/inc/debug.h Mon Jan 18 20:28:57 2010 +0200 @@ -0,0 +1,141 @@ +/* +* Copyright (c) 2004-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: +* Central place for nice debug-type macros & functions +* +*/ + + +#ifndef BT_SAP_DEBUG_H +#define BT_SAP_DEBUG_H + +#ifdef _DEBUG + +// Debugging options + +#define KBTSAP_TRACE_ERROR 0x00000001 // Print errors traces +#define KBTSAP_TRACE_FUNCTIONS 0x00000002 // Print function traces +#define KBTSAP_TRACE_STM 0x00000004 // Print state machine traces +#define KBTSAP_TRACE_MEMORY 0x00000008 // Print memory traces +#define KBTSAP_TRACE_INFO 0x00000010 // Print informational traces + +// Add desired tracing levels below +const TInt KBTSapDebugMask = KBTSAP_TRACE_ERROR | + KBTSAP_TRACE_FUNCTIONS | + KBTSAP_TRACE_STM | + KBTSAP_TRACE_MEMORY | + KBTSAP_TRACE_INFO; + +#ifdef __WINS__ + // File logging for WINS + #define __FLOGGING__ +#else + // RDebug logging for target HW + #define __CLOGGING__ +#endif + +#ifdef __FLOGGING__ + +#include +#include +#include + +_LIT(KLogFile,"BTSapLog.txt"); +_LIT(KLogDir,"BT"); + +inline void TraceMem() + { +#ifdef MEMTRACE + TInt size; + User::Heap().AllocSize(size); + RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, _L("Memory usage: %d high: %d"), size, User::Heap().Size()); +#endif + } + +inline void BTSapPrintTrace(const TRefByValue aFmt, ...) + { + VA_LIST list; + VA_START(list,aFmt); + RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list); + TraceMem(); + } + +inline void BTSapPrintTrace(const TRefByValue aFmt, ...) + { + VA_LIST list; + VA_START(list,aFmt); + RFileLogger::WriteFormat(KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list); + TraceMem(); + } + +#else // __CLOGGING__ + +#include + +inline void BTSapPrintTrace(const TRefByValue aFmt, ...) + { + VA_LIST list; + VA_START(list,aFmt); + TInt tmpInt = VA_ARG(list, TInt); + TInt tmpInt2 = VA_ARG(list, TInt); + TInt tmpInt3 = VA_ARG(list, TInt); + VA_END(list); + RDebug::Print(aFmt, tmpInt, tmpInt2, tmpInt3); + } + +inline void BTSapPrintTrace(TRefByValue aFmt, ...) + { + VA_LIST list; + VA_START(list, aFmt); + TBuf8<256> buf8; + buf8.AppendFormatList(aFmt, list); + + TBuf16<256> buf16(buf8.Length()); + buf16.Copy(buf8); + + TRefByValue tmpFmt(_L("%S")); + RDebug::Print(tmpFmt, &buf16); + } + +#endif // __CLOGGING__ + +inline void BTSapPrintHex(const TRefByValue aFmt, ...) + { + VA_LIST list; + VA_START(list, aFmt); + TDesC8* aValue = VA_ARG(list, TDesC8*); + VA_END(list); + + TBuf8<85> buf8; + for (TInt i = 0; i < aValue->Length(); i ++) + { + if (buf8.Length() > 80) break; + buf8.AppendNumFixedWidth((*aValue)[i], EHex, 2); + buf8.Append(0x20); + } + + BTSapPrintTrace(aFmt, &buf8); + } + +#define BTSAP_TRACE_OPT(a,p) { if((KBTSapDebugMask) & (a)) (p); } + +#else // NO DEBUG + +#define BTSAP_TRACE_OPT(a,p) + +#endif // _DEBUG + +#endif // BT_SAP_DEBUG_H + +// End of File