omxilvideocomps/omxil3gpdemuxer/src/log.h
author hgs
Fri, 08 Oct 2010 22:09:17 +0100
changeset 0 5d29cba61097
permissions -rw-r--r--
2010wk38_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     1
/*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     3
* All rights reserved.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     8
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    11
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    12
* Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    13
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    14
* Description:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    15
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    16
*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    17
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    18
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    19
#ifndef __3GPDEMUXER_LOG_H__
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    20
#define __3GPDEMUXER_LOG_H__
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    21
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    22
#include <e32debug.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    23
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    24
namespace DSD
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    25
{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    26
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    27
#ifdef _DEBUG
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    28
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    29
#ifdef _OMXIL_AACDECODER_DEBUG_TRACING_ON
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    30
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    31
#define DEBUG_PRINTF(a) {DSD::DebugPrintf(__LINE__, __FILE__, a);}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    32
#define DEBUG_PRINTF2(a, b) {DSD::DebugPrintf(__LINE__, __FILE__, a, b);}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    33
#define DEBUG_PRINTF3(a, b, c) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c);}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    34
#define DEBUG_PRINTF4(a, b, c, d) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d);}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    35
#define DEBUG_PRINTF5(a, b, c, d, e) {DSD::DebugPrintf(__LINE__, __FILE__, a, b, c, d, e);}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    36
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    37
#define DEBUG_CODE_SECTION(a) TRAP_IGNORE({ a; }) 
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    38
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    39
class TTruncateOverflowHandler16 : public TDes16Overflow
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    40
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    41
	public:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    42
		virtual void Overflow( TDes16& aDes );
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    43
	};
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    44
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    45
inline void TTruncateOverflowHandler16::Overflow( TDes16& aDes)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    46
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    47
	_LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    48
	if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    49
     	aDes.Append(KErrOverflowMsg);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    50
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    51
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    52
class TTruncateOverflowHandler8 : public TDes8Overflow
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    53
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    54
	public:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    55
		virtual void Overflow( TDes8& aDes );
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    56
	};
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    57
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    58
inline void TTruncateOverflowHandler8::Overflow( TDes8& aDes)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    59
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    60
    _LIT(KErrOverflowMsg,"Descriptor Overflow, hence value truncated");
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    61
	if( aDes.MaxLength() >= KErrOverflowMsg().Length() + aDes.Length() )
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    62
     	aDes.Append(KErrOverflowMsg);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    63
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    64
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    65
// UTF-8 overload of the DebufPrintf method. Should be used by default,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    66
// since it's cheaper both in CPU cycles and stack space.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    67
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    68
inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC8> aFormat, ...)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    69
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    70
	TTruncateOverflowHandler8 overflowHandler8;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    71
	VA_LIST list;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    72
	VA_START(list, aFormat);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    73
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    74
	TTime now;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    75
	now.HomeTime();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    76
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    77
	TBuf8<1024> buffer;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    78
	_LIT8(KSwiLogPrefix, "[aacdeco] ");
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    79
	_LIT8(KSwiLineFileFormat, "TID[%d] : [%s:%d] -- ");
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    80
	buffer.Append(KSwiLogPrefix);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    81
	RThread thread;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    82
	TUint threadId = thread.Id();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    83
	thread.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    84
	RProcess proc;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    85
	TFileName fName = proc.FileName();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    86
	proc.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    87
	buffer.AppendFormat(KSwiLineFileFormat, threadId, aFile, aLine);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    88
	buffer.AppendFormatList(aFormat, list ,&overflowHandler8 );
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    89
	buffer.Append(_L8("\r\n"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    90
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    91
	RDebug::RawPrint(buffer);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    92
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    93
	VA_END(list);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    94
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    95
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    96
// Unicode DebufPrintf overload
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    97
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    98
inline void DebugPrintf(TInt aLine, char* aFile, TRefByValue<const TDesC16> aFormat, ...)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    99
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   100
	TTruncateOverflowHandler16 overflowHandler16;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   101
	VA_LIST list;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   102
	VA_START(list, aFormat);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   103
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   104
	TTime now;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   105
	now.HomeTime();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   106
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   107
	TBuf8<256> header;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   108
	_LIT8(KSwiLogPrefix, "[aacdecoder] ");
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   109
	_LIT8(KSwiLineFileFormat, "%Ld Line: % 5d, File: %s -- ");
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   110
	header.Append(KSwiLogPrefix);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   111
	header.AppendFormat(KSwiLineFileFormat, now.Int64(), aLine, aFile);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   112
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   113
	TBuf<1024> buffer;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   114
	buffer.Copy(header);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   115
	buffer.AppendFormatList(aFormat, list ,&overflowHandler16);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   116
	buffer.Append(_L("\r\n"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   117
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   118
	RDebug::RawPrint(buffer);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   119
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   120
	VA_END(list);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   121
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   122
#else
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   123
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   124
#define DEBUG_PRINTF(a)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   125
#define DEBUG_PRINTF2(a, b)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   126
#define DEBUG_PRINTF3(a, b, c)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   127
#define DEBUG_PRINTF4(a, b, c, d)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   128
#define DEBUG_PRINTF5(a, b, c, d, e)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   129
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   130
#define DEBUG_CODE_SECTION(a)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   131
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   132
#endif
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   133
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   134
#else
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   135
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   136
#define DEBUG_PRINTF(a)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   137
#define DEBUG_PRINTF2(a, b)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   138
#define DEBUG_PRINTF3(a, b, c)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   139
#define DEBUG_PRINTF4(a, b, c, d)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   140
#define DEBUG_PRINTF5(a, b, c, d, e)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   141
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   142
#define DEBUG_CODE_SECTION(a)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   143
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   144
#endif
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   145
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   146
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   147
} // namespace DSD
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   148
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   149
#endif // __3GPDEMUXER_LOG_H__