You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
265 lines
6.5 KiB
265 lines
6.5 KiB
/*----------------------------------------------------------------------------
|
|
*
|
|
* File:
|
|
* eas_report.c
|
|
*
|
|
* Contents and purpose:
|
|
* This file contains the debug message handling routines for the EAS library.
|
|
* These routines should be modified as needed for your system.
|
|
*
|
|
* Copyright 2005 Sonic Network Inc.
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
*----------------------------------------------------------------------------
|
|
* Revision Control:
|
|
* $Revision: 659 $
|
|
* $Date: 2007-04-24 13:36:35 -0700 (Tue, 24 Apr 2007) $
|
|
*----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifdef _lint
|
|
#include "lint_stdlib.h"
|
|
#else
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
#endif
|
|
|
|
#include "eas_report.h"
|
|
|
|
static int severityLevel = 9999;
|
|
|
|
/* debug file */
|
|
static FILE *debugFile = NULL;
|
|
int flush = 0;
|
|
|
|
#ifndef _NO_DEBUG_PREPROCESSOR
|
|
|
|
/* structure should have an #include for each error message header file */
|
|
S_DEBUG_MESSAGES debugMessages[] =
|
|
{
|
|
#ifndef UNIFIED_DEBUG_MESSAGES
|
|
#include "eas_config_msgs.h"
|
|
|
|
|
|
#include "eas_host_msgs.h"
|
|
#include "eas_hostmm_msgs.h"
|
|
#include "eas_math_msgs.h"
|
|
#include "eas_midi_msgs.h"
|
|
#include "eas_mixer_msgs.h"
|
|
#include "eas_pcm_msgs.h"
|
|
#include "eas_public_msgs.h"
|
|
#include "eas_smf_msgs.h"
|
|
#include "eas_wave_msgs.h"
|
|
#include "eas_voicemgt_msgs.h"
|
|
|
|
#ifdef _FM_SYNTH
|
|
#include "eas_fmsynth_msgs.h"
|
|
#include "eas_fmengine_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _WT_SYNTH
|
|
#include "eas_wtsynth_msgs.h"
|
|
#include "eas_wtengine_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _ARM_TEST_MAIN
|
|
#include "arm_main_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _EAS_MAIN
|
|
#include "eas_main_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _EAS_MAIN_IPC
|
|
#include "eas_main_ipc_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _METRICS_ENABLED
|
|
#include "eas_perf_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _COMPRESSOR_ENABLED
|
|
#include "eas_compressor_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _ENHANCER_ENABLED
|
|
#include "eas_enhancer_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _WOW_ENABLED
|
|
#include "eas_wow_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _SMAF_PARSER
|
|
#include "eas_smaf_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _OTA_PARSER
|
|
#include "eas_ota_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _IMELODY_PARSER
|
|
#include "eas_imelody_msgs.h"
|
|
#endif
|
|
|
|
#ifdef _WAVE_PARSER
|
|
#include "eas_wavefile_msgs.h"
|
|
#endif
|
|
|
|
#if defined(_CMX_PARSER) || defined(_MFI_PARSER)
|
|
#include "eas_cmf_msgs.h"
|
|
#endif
|
|
|
|
#if defined(_CMX_PARSER) || defined(_MFI_PARSER) || defined(_WAVE_PARSER)
|
|
#include "eas_imaadpcm_msgs.h"
|
|
#endif
|
|
|
|
#else
|
|
#include "eas_debugmsgs.h"
|
|
#endif
|
|
|
|
/* denotes end of error messages */
|
|
{ 0,0,0 }
|
|
};
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* EAS_ReportEx()
|
|
*
|
|
* This is the error message handler. The default handler outputs error
|
|
* messages to stdout. Modify this as needed for your system.
|
|
*----------------------------------------------------------------------------
|
|
*/
|
|
void EAS_ReportEx (int severity, unsigned long hashCode, int serialNum, ...)
|
|
{
|
|
va_list vargs;
|
|
int i;
|
|
|
|
/* check severity level */
|
|
if (severity > severityLevel)
|
|
return;
|
|
|
|
/* find the error message and output to stdout */
|
|
/*lint -e{661} we check for NULL pointer - no fence post error here */
|
|
for (i = 0; debugMessages[i].m_pDebugMsg; i++)
|
|
{
|
|
if ((debugMessages[i].m_nHashCode == hashCode) &&
|
|
(debugMessages[i].m_nSerialNum == serialNum))
|
|
{
|
|
/*lint -e{826} <allow variable args> */
|
|
va_start(vargs, serialNum);
|
|
if (debugFile)
|
|
{
|
|
vfprintf(debugFile, debugMessages[i].m_pDebugMsg, vargs);
|
|
if (flush)
|
|
fflush(debugFile);
|
|
}
|
|
else
|
|
{
|
|
vprintf(debugMessages[i].m_pDebugMsg, vargs);
|
|
}
|
|
va_end(vargs);
|
|
return;
|
|
}
|
|
}
|
|
printf("Unrecognized error: Severity=%d; HashCode=%lu; SerialNum=%d\n", severity, hashCode, serialNum);
|
|
} /* end EAS_ReportEx */
|
|
|
|
#else
|
|
/*----------------------------------------------------------------------------
|
|
* EAS_Report()
|
|
*
|
|
* This is the error message handler. The default handler outputs error
|
|
* messages to stdout. Modify this as needed for your system.
|
|
*----------------------------------------------------------------------------
|
|
*/
|
|
void EAS_Report (int severity, const char *fmt, ...)
|
|
{
|
|
va_list vargs;
|
|
|
|
/* check severity level */
|
|
if (severity > severityLevel)
|
|
return;
|
|
|
|
/*lint -e{826} <allow variable args> */
|
|
va_start(vargs, fmt);
|
|
if (debugFile)
|
|
{
|
|
vfprintf(debugFile, fmt, vargs);
|
|
if (flush)
|
|
fflush(debugFile);
|
|
}
|
|
else
|
|
{
|
|
vprintf(fmt, vargs);
|
|
}
|
|
va_end(vargs);
|
|
} /* end EAS_Report */
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* EAS_ReportX()
|
|
*
|
|
* This is the error message handler. The default handler outputs error
|
|
* messages to stdout. Modify this as needed for your system.
|
|
*----------------------------------------------------------------------------
|
|
*/
|
|
void EAS_ReportX (int severity, const char *fmt, ...)
|
|
{
|
|
va_list vargs;
|
|
|
|
/* check severity level */
|
|
if (severity > severityLevel)
|
|
return;
|
|
|
|
/*lint -e{826} <allow variable args> */
|
|
va_start(vargs, fmt);
|
|
if (debugFile)
|
|
{
|
|
vfprintf(debugFile, fmt, vargs);
|
|
if (flush)
|
|
fflush(debugFile);
|
|
}
|
|
else
|
|
{
|
|
vprintf(fmt, vargs);
|
|
}
|
|
va_end(vargs);
|
|
} /* end EAS_ReportX */
|
|
#endif
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* EAS_SetDebugLevel()
|
|
*
|
|
* Sets the level for debug message output
|
|
*----------------------------------------------------------------------------
|
|
*/
|
|
|
|
void EAS_SetDebugLevel (int severity)
|
|
{
|
|
severityLevel = severity;
|
|
} /* end EAS_SetDebugLevel */
|
|
|
|
/*----------------------------------------------------------------------------
|
|
* EAS_SetDebugFile()
|
|
*
|
|
* Redirect debugger output to the specified file.
|
|
*----------------------------------------------------------------------------
|
|
*/
|
|
void EAS_SetDebugFile (void *file, int flushAfterWrite)
|
|
{
|
|
debugFile = (FILE*) file;
|
|
flush = flushAfterWrite;
|
|
} /* end EAS_SetDebugFile */
|
|
|