errdbg.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:8k
源码类别:

Symbian

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Source last modified: $Id: errdbg.h,v 1.11.8.4 2004/07/09 01:46:15 hubbe Exp $
  3.  * 
  4.  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
  5.  * 
  6.  * The contents of this file, and the files included with this file,
  7.  * are subject to the current version of the RealNetworks Public
  8.  * Source License (the "RPSL") available at
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed
  10.  * the file under the current version of the RealNetworks Community
  11.  * Source License (the "RCSL") available at
  12.  * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
  13.  * will apply. You may also obtain the license terms directly from
  14.  * RealNetworks.  You may not use this file except in compliance with
  15.  * the RPSL or, if you have a valid RCSL with RealNetworks applicable
  16.  * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
  17.  * the rights, obligations and limitations governing use of the
  18.  * contents of the file.
  19.  * 
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU General Public License Version 2 or later (the
  22.  * "GPL") in which case the provisions of the GPL are applicable
  23.  * instead of those above. If you wish to allow use of your version of
  24.  * this file only under the terms of the GPL, and not to allow others
  25.  * to use your version of this file under the terms of either the RPSL
  26.  * or RCSL, indicate your decision by deleting the provisions above
  27.  * and replace them with the notice and other provisions required by
  28.  * the GPL. If you do not delete the provisions above, a recipient may
  29.  * use your version of this file under the terms of any one of the
  30.  * RPSL, the RCSL or the GPL.
  31.  * 
  32.  * This file is part of the Helix DNA Technology. RealNetworks is the
  33.  * developer of the Original Code and owns the copyrights in the
  34.  * portions it created.
  35.  * 
  36.  * This file, and the files included with this file, is distributed
  37.  * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
  38.  * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
  39.  * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
  40.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
  41.  * ENJOYMENT OR NON-INFRINGEMENT.
  42.  * 
  43.  * Technology Compatibility Kit Test Suite(s) Location:
  44.  *    http://www.helixcommunity.org/content/tck
  45.  * 
  46.  * Contributor(s):
  47.  * 
  48.  * ***** END LICENSE BLOCK ***** */
  49. #ifndef _ERRDBG_H_
  50. #define _ERRDBG_H_
  51. extern const char* g_pDebugOutLevels[];
  52. extern const BOOL  g_bDebugOutDefaults[];
  53. #define DEBUG_OUT_BUF_SZ 2048
  54. #include "hlxclib/stdio.h"
  55. inline int debug_out_sprintf(char* pBuffer, const char* pFormatString, ...)
  56. {
  57.     va_list argptr;
  58.     va_start(argptr, pFormatString);
  59.     int nCharsWritten = vsnprintf(pBuffer, DEBUG_OUT_BUF_SZ, 
  60.   pFormatString, argptr);
  61.     pBuffer[DEBUG_OUT_BUF_SZ-1] = '';
  62.     va_end(argptr);
  63.     return nCharsWritten;
  64. }
  65. #define DEBUG_OUT_SPRINTF debug_out_sprintf
  66. #if defined(HELIX_FEATURE_DBG_LOG) && !defined(GOLD)
  67. #include "hxerror.h"
  68. #define DEBUG_OUT(x, l, y) {
  69.     char* s;
  70.     s = new char[DEBUG_OUT_BUF_SZ];
  71.     if(s){                                      
  72.     DEBUG_OUT_SPRINTF y;
  73.     x ? x->Report(HXLOG_DEBUG, 0, l, s, 0) : 0;
  74.     delete [] s;
  75.     } 
  76.    }
  77. #else
  78. #define DEBUG_OUT(x, l, y)
  79. #endif
  80. #ifdef _DEBUG
  81. #define DEBUG_OUTF(x, y) {
  82.     char* s;
  83.     FILE* f1;
  84.     s = new char[DEBUG_OUT_BUF_SZ];
  85.     if(s){                                      
  86.     DEBUG_OUT_SPRINTF y;
  87.     f1 = (x)?(::fopen(x, "a+")):(NULL);
  88.     (f1)?(::fprintf(f1, s), ::fclose(f1)):(0);
  89.     delete [] s;
  90.             } 
  91.        }
  92. #else
  93. #define DEBUG_OUTF(x, y)
  94. #endif
  95. #ifdef _DEBUG
  96. #ifndef DEBUG_OUTF_IDX_COL_WIDTH
  97. #define DEBUG_OUTF_IDX_COL_WIDTH    20
  98. #endif // DEBUG_OUTF_IDX_COL_WIDTH
  99. #define DEBUG_OUTF_IDX(idx, x, y) {
  100.     char* s;
  101.     char* p_dbgx;
  102.     FILE* f1_dbgx;
  103.     int i_dbgx = (idx > 0)?(DEBUG_OUTF_IDX_COL_WIDTH * idx):0;
  104.     p_dbgx = s = new char[DEBUG_OUT_BUF_SZ + i_dbgx];
  105.     if(s){ 
  106.     if (i_dbgx < 1024)
  107. for (; i_dbgx > 0; i_dbgx--)
  108.     *(s++) = ' ';
  109.     DEBUG_OUT_SPRINTF y;
  110.     f1_dbgx = (x)?(::fopen(x, "a+")):(NULL);
  111.     (f1_dbgx)?(::fprintf(f1_dbgx, p_dbgx), ::fclose(f1_dbgx)):(0);
  112.     delete [] p_dbgx;
  113.     } 
  114.        }
  115. #else
  116. #define DEBUG_OUTF_IDX(idx, x, y)
  117. #endif
  118. /* Debug Levels */
  119. #define DOL_GENERIC                 0
  120. #define DOL_TRANSPORT               1
  121. #define DOL_ASM                     2
  122. #define DOL_BWMGR                   3
  123. #define DOL_TRANSPORT_EXTENDED      4
  124. #define DOL_REALAUDIO               5
  125. #define DOL_REALAUDIO_EXTENDED      6
  126. #define DOL_REALVIDEO               7
  127. #define DOL_REALPIX                 8
  128. #define DOL_REALPIX_EXTENDED        9
  129. #define DOL_JPEG                   10
  130. #define DOL_JPEG_EXTENDED          11
  131. #define DOL_GIF                    12
  132. #define DOL_GIF_EXTENDED           13
  133. #define DOL_FLASH                  14
  134. #define DOL_FLASH_EXTENDED         15
  135. #define DOL_SMIL                   16
  136. #define DOL_SMIL_EXTENDED          17
  137. #define DOL_TURBOPLAY              18
  138. #define DOL_TURBOPLAY_EXTENDED     19
  139. #define DOL_SITE                   20
  140. #define DOL_AUTOUPDATE             21
  141. #define DOL_RECONNECT              22
  142. #define DOL_AUTHENTICATION         23
  143. #define DOL_CORELOADTIME           24
  144. #define DOL_RTSP                   25
  145. #define DOL_STREAMSOURCEMAP        26
  146. #define DOL_REALEVENTS             27
  147. #define DOL_REALEVENTS_EXTENDED    28
  148. #define DOL_BUFFER_CONTROL         29
  149. #define NUM_DOL_CODES              30 // Make sure this is updated when
  150.                                       // new user codes are added
  151. #ifdef ERRDBG_DEFINE_CONSTS
  152. /* Name of Each Debug Level */
  153. const char* g_pDebugOutLevels[] = {
  154.     "Generic Messages",
  155.     "Transport Basic",
  156.     "ASM Subscriptions",
  157.     "Bandwidth Manager",
  158.     "Transport Bandwidth Reports",
  159.     "RealAudio Renderer",
  160.     "RealAudio Renderer Extended",
  161.     "RealVideo Renderer",
  162.     "RealPix Renderer",
  163.     "RealPix Renderer Extended",
  164.     "JPEG Renderer",
  165.     "JPEG Renderer Extended",
  166.     "GIF Renderer",
  167.     "GIF Renderer Extended",
  168.     "Flash Renderer",
  169.     "Flash Renderer Extended",
  170.     "SMIL Renderer",
  171.     "SMIL Renderer Extended",
  172.     "TurboPlay",
  173.     "TurboPlay Extended",
  174.     "Site Info",
  175.     "AutoUpdate",
  176.     "Reconnect and Redirect",
  177.     "Authentication",
  178.     "Core Load Time",
  179.     "RTSP",
  180.     "Stream and Source",
  181.     "RealEvents Renderer",
  182.     "RealEvents Renderer Extended",
  183.     "Buffer Control",
  184.     0
  185. };
  186. /*
  187.  * Debug Level Default Status
  188.  * 
  189.  * Set to TRUE if this debug level should default to ON in the statistics pane.
  190.  * Set this to false if you output a lot of data at a particular debug level.
  191.  */
  192. const BOOL g_bDebugOutDefaults[] = {
  193.     TRUE,       // Generic Messages
  194.     TRUE,       // Transport Basic
  195.     TRUE,       // ASM Subscriptions
  196.     TRUE,       // Bandwidth Manager
  197.     FALSE,      // Transport Bandwidth Reports
  198.     TRUE,       // RealAudio Renderer
  199.     FALSE,      // RealAudio Renderer Extended
  200.     TRUE,       // RealVideo Renderer
  201.     TRUE,       // RealPix Renderer
  202.     FALSE,      // RealPix Renderer Extended
  203.     TRUE,       // JPEG Renderer
  204.     FALSE,      // JPEG Renderer Extended
  205.     TRUE,       // GIF Renderer
  206.     FALSE,      // GIF Renderer Extended
  207.     TRUE,       // Flash Renderer
  208.     FALSE,      // Flash Renderer Extended
  209.     TRUE,       // SMIL Renderer
  210.     FALSE,      // SMIL Renderer Extended
  211.     FALSE,      // TurboPlay
  212.     FALSE,      // TurboPlay Extended
  213.     FALSE,      // Site Info
  214.     FALSE,      // AutoUpdate
  215.     FALSE,      // Reconnect and Redirect
  216.     FALSE,      // Authentication
  217.     FALSE,      // Core Load Time
  218.     FALSE,      // RTSP
  219.     FALSE,      // Stream and Source Info
  220.     TRUE,       // RealEvents Renderer
  221.     FALSE,      // RealEvents Renderer Extended
  222.     0
  223. };
  224. #endif
  225. #endif /*_ERRDBG_H_*/