diff -r f05641c183ff -r 43824b19ee35 bluetoothengine/btui/inc/bluetoothuitrace.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/btui/inc/bluetoothuitrace.h Fri May 14 16:01:46 2010 +0300 @@ -0,0 +1,182 @@ +/* +* ============================================================================ +* Name : bluetoothuitrace.h +* Part of : BluetoothUI / bluetoothuimodel *** Info from the SWAD +* Description : API declaration of run-time debug tracing in bluetoothui project +* +* Copyright © 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: +* Nokia Corporation +* ============================================================================ +* Template version: 4.2 +*/ + +#ifndef BLUETOOTHUITRACE_H +#define BLUETOOTHUITRACE_H + +#include +#include + +#ifdef BLUETOOTHTRACE_ENABLED + +/* + * trace macro for Qt code with an additional trace text. + * param must be QString type. + */ +#define BtTraceQString1( groupName, traceName, traceText, param ) \ +{\ + _LIT(TrTxt, traceText); TPtrC p(TrTxt); \ + TPtrC textPtr(reinterpret_cast(param.utf16()), param.length() ); \ + BOstraceExt2( groupName, traceName, "%S%S", &p, &textPtr ); \ +} + +/* + * trace macro for Qt code with no additional trace text. + * param must be QString type. + */ +#define BtTraceQString0( groupName, traceName, param ) \ +{\ + TPtrC textPtr(reinterpret_cast(param.utf16()), param.length() ); \ + BOstraceExt1( groupName, traceName, "%S", &textPtr ); \ +} + +/* + * Macro for tracing a Bluetooth device entry in btuimdevlist + * with no additional trace text. + */ +#define BtTraceDevListEntry0( groupName, traceName, dev ) \ +{\ + QString info("["); \ + info += dev[Btuim::DevAddrReadableRole].toString() + "]"; \ + QString filterBinary; \ + filterBinary.setNum( dev[Btuim::MajorFilterRole].toInt(), 16); \ + info += "[" + filterBinary + "]"; \ + info += "[" \ + + dev[Btuim::LastUsedTimeRole].value().toString(Qt::ISODate ) \ + + "]" ; \ + info += "[" + dev[Btuim::DevNameRoleRole].toString() + "]" ; \ + TPtrC textPtr(reinterpret_cast(info.utf16()), info.length() ); \ + BOstraceExt1( groupName, traceName, "%S", &textPtr ); \ +} + +/* + * Macro for tracing a Bluetooth device entry in btuim + * with an additional trace text. + */ +#define BtTraceDevListEntry1( groupName, traceName, traceText, dev ) \ +{\ + QString info("["); \ + info += dev[Btuim::DevAddrReadableRole].toString() + "]"; \ + QString cod; \ + cod.setNum( dev[Btuim::ClassOfDeviceRole].toInt(), 16); \ + info += "[" + cod + "]"; \ + QString filterBinary; \ + filterBinary.setNum( dev[Btuim::MajorFilterRole].toInt(), 16); \ + info += "[" + filterBinary + "]"; \ + info += "[" \ + + dev[Btuim::LastUsedTimeRole].value().toString(Qt::ISODate ) \ + + "]" ; \ + info += "[" + dev[Btuim::DevNameRole].toString() + "]" ; \ + TPtrC textPtr(reinterpret_cast(info.utf16()), info.length() ); \ + _LIT(TrTxt, traceText); TPtrC p(TrTxt); \ + BOstraceExt2( groupName, traceName, "%S%S", &p, &textPtr ); \ +} + +/* + * Macro for Qt code with additional trace text. + * list must be QStringList type. + */ +#define BtTraceQStringList1( groupName, traceName, traceText, list ) \ +{\ + QString info(": ["); \ + info += list.join(".") + "]"; \ + TPtrC textPtr(reinterpret_cast(info.utf16()), info.length() ); \ + _LIT(TrTxt, traceText); TPtrC p(TrTxt); \ + BOstraceExt2( groupName, traceName, "%S%S", &p, &textPtr ); \ +} + +/* + * Macro for Qt code with no additional trace text. + * list must be QStringList type. + */ +#define BtTraceQStringList0( groupName, traceName, list ) \ +{\ + QString info(": ["); \ + info += list.join(".") + "]"; \ + TPtrC textPtr(reinterpret_cast(info.utf16()), info.length() ); \ + BOstraceExt1( groupName, traceName, "%S", &textPtr ); \ +} + + +/* + * Macro for tracing Bluetooth DevData data source in btuimdevdata + * with no additional trace text. +*/ +#define BtTraceDevDataEntry0( groupName, traceName, devData ) \ +{\ + QString info("["); \ + QMap< int, QVariant > val = devData.at( Btuim::DevDataIndexName ); \ + info += val.value(Qt::EditRole).toString() + "]" ; \ + val = devData.at( Btuim::DevDataIndexStatus ); \ + int statusBits = val.value(Qt::EditRole).toInt(); \ + info += "["; \ + info += QString::number(statusBits, 16 ); \ + info += "]"; \ + QStringList strl = val.value(Qt::DisplayRole).toStringList(); \ + info += "[" ; \ + for ( int i = 0; i < strl.count(); ++i ) { \ + info += strl.at(i) + ","; \ + } \ + info += "]" ; \ + val = devData.at( Btuim::DevDataIndexOptionsMenu ); \ + info += " opts:"; \ + QList cmdItems = val.value( Btuim::DevDataCmdItemsRole ).toList(); \ + for ( int i = 0; i < cmdItems.count(); i++ ) { \ + const Btuim::DevDataCmdItem& item = cmdItems.at(i).value(); \ + info += "[" + QString::number(item.mCmdId) + "," + QString::number(item.mEnabled) + "," + "]"; \ + } \ + val = devData.at( Btuim::DevDataIndexCmdList ); \ + info += " cmds:"; \ + cmdItems = val.value( Btuim::DevDataCmdItemsRole ).toList(); \ + for ( int i = 0; i < cmdItems.count(); i++ ) { \ + const Btuim::DevDataCmdItem& item = cmdItems.at(i).value(); \ + info += "[" + QString::number(item.mCmdId) + "," + QString::number(item.mEnabled) + "," + "]"; \ + } \ + TPtrC textPtr(reinterpret_cast(info.utf16()), info.length() ); \ + BOstraceExt1( groupName, traceName, "%S", &textPtr ); \ +} +#else + +#define BtTraceQString1( aGroupName, aTraceName, aTraceText, aParam ) +#define BtTraceQString0( aGroupName, aTraceName, aParam ) +#define BtTraceDevListEntry0( groupName, traceName, dev ) +#define BtTraceDevListEntry1( groupName, traceName, traceText, dev ) +#define BtTraceQStringList1( groupName, traceName, traceText, list ) +#define BtTraceQStringList0( groupName, traceName, list ) +#define BtTraceDevDataEntry0( groupName, traceName, devData ) +#endif // BLUETOOTHTRACE_ENABLED + +// At early development phase, we force assertion in release build to find out +// design and implementation issues. +//#ifndef QT_NO_DEBUG +#define BTUI_DEBUG +//#endif + +#if !defined(BTUI_ASSERT_X) +# ifdef BTUI_DEBUG +#define BTUI_ASSERT_X(cond, where, what) ((!(cond)) ? qt_assert_x(where, what,__FILE__,__LINE__) : qt_noop()) +# else +# define BTUI_ASSERT_X(cond, where, what) qt_noop() +# endif +#endif + +#endif // BLUETOOTHUITRACE_H