/* ////////////////////////////////////////////////////////////// // SNDERR.CXX - SOUNDxD Version 2.0 ////////////////////////////////////////////////////////////// // Error managing functions. ///////////////////////////////////////////////////////////// */ #include #include "SND\snddef.h" #include "SND/snderr.h" #define __DeclareGlobalVariableErrSnd_h__ #include "SNDext/errsnd.h" //établir le niveau maxi des Warnings #ifdef DEBUG_SON #define SNDERR_MAX_DISPLAYED_ERROR E_uwSndErrNumber #else #define SNDERR_MAX_DISPLAYED_ERROR E_uwSndEndOfWarningLevel2 #endif //#include "sndmusct.h" #include "sndwin95.h" #include "sndthrd.h" #ifndef SNDERR_USE_ACP #define NB_ERROR_MAX 5 int g_iNbError=0; struct { unsigned long ulChannel; unsigned short uwErr; } astErrDescriptor[NB_ERROR_MAX]; #endif typedef struct _tdstSndErrorOccurElement { SndBool bOccured; SndBool bDontDisplay; SndBool bDONTAskToBeDisplayed; } tdstSndErrorOccurElement; tdstSndErrorOccurElement SND_g_astErrorOccurArray[E_uwSndErrNumber]; HWND SNDERR_g_hwndMainWnd=NULL; #ifdef DEBUG_SON void liste_of_association(char *texte,long size); void liste_of_voices(char* texte,long size); //returns TRUE if errors yet occured in the past SndBool fn_bHasErrorOccured(unsigned short uwErrNum) { snd_assert(uwErrNum>0);snd_assert(uwErrNum0);snd_assert(uwErrNum0);snd_assert(uwErrNum0);snd_assert(uwErrNum0);snd_assert(uwErrNum0);snd_assert(uwErrNumhMainWindow; Erm_M_InitErrMsg(Snd); memset(&SND_g_astErrorOccurArray,0,sizeof(SND_g_astErrorOccurArray)); } void SND_CALL SND_fn_vDesInitErrorSnd(void) { } void SND_fn_vUpdateLastError(unsigned long ulChannelId, unsigned short uwErrNum, long lDebugData, unsigned char ucOpenInfoWindow, unsigned char ucStopForDebug, char* message) { if (uwErrNum>SNDERR_MAX_DISPLAYED_ERROR) { Erm_M_UpdateLastError(Snd, ulChannelId, uwErrNum, lDebugData, 0, 0,message); } else { Erm_M_UpdateLastError(Snd, ulChannelId, uwErrNum, lDebugData, ucOpenInfoWindow, ucStopForDebug,message); } } #else // SNDERR_USE_ACP //non using ERM module void SND_CALL SND_fn_vInitErrorSnd(SND_tdstInitStruct *pInitStruct) { SNDERR_g_hwndMainWnd=pInitStruct->hMainWindow; } void SND_CALL SND_fn_vDesInitErrorSnd(void) { } //-------------------------------------------------------------- // UpdateLastError : display and save an error message // Entrée:ulChannelId=channel of error occurence (up to NB_ERROR_MAX) // uwErrNum=error id // lDebugData,ucOpenInfoWindow,ucStopForDebug=not used // Sortie: néant //-------------------------------------------------------------- void SND_fn_vUpdateLastError(unsigned long ulChannelId, unsigned short uwErrNum, long lDebugData, unsigned char ucOpenInfoWindow, unsigned char ucStopForDebug, char* message) { int i; char texte[128]; i=0; while ((g_a_stSndTabErr[i].uwErrorId!=uwErrNum) && (g_a_stSndTabErr[i].uwErrorId!=0xFFFF)) i++; //--affichage if (g_a_stSndTabErr[i].uwErrorId==0xFFFF) sprintf(texte,"Unknown error #%d",uwErrNum); else sprintf(texte,"%s",g_a_stSndTabErr[i].szErrorText); if (message!=NULL) strncat(texte,message,sizeof(texte)-strlen(texte)-1); MessageBox(SNDERR_g_hwndMainWnd,texte,"Sound Error",MB_OK|MB_TOPMOST); //---stockage de l'erreur i=0; while ((i