00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00007 #ifndef _AKMONITORERROR_H 00008 #define _AKMONITORERROR_H 00009 00010 #include <AK/SoundEngine/Common/AkSoundEngineExport.h> 00011 #include <AK/SoundEngine/Common/AkTypes.h> 00012 00013 namespace AK 00014 { 00015 // Error monitoring. 00016 00017 namespace Monitor 00018 { 00020 enum ErrorLevel 00021 { 00022 ErrorLevel_Message = (1<<0), // used as bitfield 00023 ErrorLevel_Error = (1<<1), 00024 00025 ErrorLevel_All = ErrorLevel_Message | ErrorLevel_Error 00026 }; 00028 enum ErrorCode 00029 { 00030 ErrorCode_NoError = 0, // 0-based index into AK::Monitor::s_aszErrorCodes table 00031 ErrorCode_FileNotFound, 00032 ErrorCode_CannotOpenFile, 00033 ErrorCode_CannotStartStreamNoMemory, 00034 ErrorCode_IODevice, 00035 ErrorCode_IncompatibleIOSettings, 00036 00037 ErrorCode_PluginUnsupportedChannelConfiguration, 00038 ErrorCode_PluginMediaUnavailable, 00039 ErrorCode_PluginInitialisationFailed, 00040 ErrorCode_PluginProcessingFailed, 00041 ErrorCode_PluginExecutionInvalid, 00042 ErrorCode_PluginAllocationFailed, 00043 00044 ErrorCode_VorbisRequireSeekTable, 00045 ErrorCode_VorbisRequireSeekTableVirtual, 00046 00047 ErrorCode_VorbisDecodeError, 00048 ErrorCode_AACDecodeError, 00049 00050 ErrorCode_xWMACreateDecoderFailed, 00051 00052 ErrorCode_ATRAC9CreateDecoderFailed, 00053 ErrorCode_ATRAC9CreateDecoderFailedChShortage, 00054 ErrorCode_ATRAC9DecodeFailed, 00055 ErrorCode_ATRAC9ClearContextFailed, 00056 ErrorCode_ATRAC9LoopSectionTooSmall, 00057 00058 ErrorCode_InvalidAudioFileHeader, 00059 ErrorCode_AudioFileHeaderTooLarge, 00060 ErrorCode_FileTooSmall, 00061 00062 ErrorCode_TransitionNotAccurateChannel, 00063 ErrorCode_TransitionNotAccurateStarvation, 00064 ErrorCode_NothingToPlay, 00065 ErrorCode_PlayFailed, 00066 00067 ErrorCode_StingerCouldNotBeScheduled, 00068 ErrorCode_TooLongSegmentLookAhead, 00069 ErrorCode_CannotScheduleMusicSwitch, 00070 ErrorCode_TooManySimultaneousMusicSegments, 00071 ErrorCode_PlaylistStoppedForEditing, 00072 ErrorCode_MusicClipsRescheduledAfterTrackEdit, 00073 00074 ErrorCode_CannotPlaySource_Create, 00075 ErrorCode_CannotPlaySource_VirtualOff, 00076 ErrorCode_CannotPlaySource_TimeSkip, 00077 ErrorCode_CannotPlaySource_InconsistentState, 00078 ErrorCode_MediaNotLoaded, 00079 ErrorCode_VoiceStarving, 00080 ErrorCode_StreamingSourceStarving, 00081 ErrorCode_XMADecoderSourceStarving, 00082 ErrorCode_XMADecodingError, 00083 ErrorCode_InvalidXMAData, 00084 00085 ErrorCode_PluginNotRegistered, 00086 ErrorCode_CodecNotRegistered, 00087 00088 ErrorCode_EventIDNotFound, 00089 00090 ErrorCode_InvalidGroupID, 00091 ErrorCode_SelectedChildNotAvailable, 00092 ErrorCode_SelectedNodeNotAvailable, 00093 ErrorCode_SelectedMediaNotAvailable, 00094 ErrorCode_NoValidSwitch, 00095 00096 ErrorCode_SelectedNodeNotAvailablePlay, 00097 00098 ErrorCode_FeedbackVoiceStarving, 00099 00100 ErrorCode_BankLoadFailed, 00101 ErrorCode_BankUnloadFailed, 00102 ErrorCode_ErrorWhileLoadingBank, 00103 ErrorCode_InsufficientSpaceToLoadBank, 00104 00105 ErrorCode_LowerEngineCommandListFull, 00106 00107 ErrorCode_SeekNoMarker, 00108 ErrorCode_CannotSeekContinuous, 00109 ErrorCode_SeekAfterEof, 00110 00111 ErrorCode_UnknownGameObjectEvent, 00112 ErrorCode_UnknownGameObject, 00113 00114 ErrorCode_ExternalSourceNotResolved, 00115 ErrorCode_FileFormatMismatch, 00116 00117 ErrorCode_CommandQueueFull, 00118 ErrorCode_CommandTooLarge, 00119 00120 ErrorCode_ExecuteActionOnEvent, 00121 ErrorCode_StopAll, 00122 ErrorCode_StopPlayingID, 00123 00124 ErrorCode_XMACreateDecoderLimitReached, 00125 ErrorCode_XMAStreamBufferTooSmall, 00126 00127 ErrorCode_ModulatorScopeError_Inst, 00128 ErrorCode_ModulatorScopeError_Obj, 00129 00130 Num_ErrorCodes // THIS STAYS AT END OF ENUM 00131 }; 00132 00134 AK_CALLBACK( void, LocalOutputFunc )( 00135 ErrorCode in_eErrorCode, 00136 const AkOSChar* in_pszError, 00137 ErrorLevel in_eErrorLevel, 00138 AkPlayingID in_playingID, 00139 AkGameObjectID in_gameObjID 00140 ); 00141 00142 extern const AkOSChar* s_aszErrorCodes[ Num_ErrorCodes ]; 00143 00150 AK_EXTERNAPIFUNC( AKRESULT, PostCode )( 00151 ErrorCode in_eError, 00152 ErrorLevel in_eErrorLevel 00153 ); 00154 #ifdef AK_SUPPORT_WCHAR 00155 00156 00157 00158 00159 00160 00161 AK_EXTERNAPIFUNC( AKRESULT, PostString )( 00162 const wchar_t* in_pszError, 00163 ErrorLevel in_eErrorLevel 00164 ); 00165 #endif // #ifdef AK_SUPPORT_WCHAR 00166 00167 00168 00169 00170 00171 00172 AK_EXTERNAPIFUNC( AKRESULT, PostString )( 00173 const char* in_pszError, 00174 ErrorLevel in_eErrorLevel 00175 ); 00176 00181 AK_EXTERNAPIFUNC( AKRESULT, SetLocalOutput )( 00182 AkUInt32 in_uErrorLevel = ErrorLevel_All, 00183 LocalOutputFunc in_pMonitorFunc = 0 00184 ); 00185 00189 AK_EXTERNAPIFUNC( AkTimeMs, GetTimeStamp )(); 00190 } 00191 } 00192 00193 // Macros. 00194 #ifndef AK_OPTIMIZED 00195 #define AK_MONITOR_ERROR( in_eErrorCode )\ 00196 AK::Monitor::PostCode( in_eErrorCode, AK::Monitor::ErrorLevel_Error ) 00197 #else 00198 #define AK_MONITOR_ERROR( in_eErrorCode ) 00199 #endif 00200 00201 #ifdef AK_MONITOR_IMPLEMENT_ERRORCODES 00202 namespace AK 00203 { 00204 namespace Monitor 00205 { 00206 const AkOSChar* s_aszErrorCodes[ Num_ErrorCodes ] = 00207 { 00208 AKTEXT("No error"), // ErrorCode_NoError 00209 AKTEXT("File not found"), // ErrorCode_FileNotFound, 00210 AKTEXT("Cannot open file"), // ErrorCode_CannotOpenFile, 00211 AKTEXT("Not enough memory to start stream"), // ErrorCode_CannotStartStreamNoMemory, 00212 AKTEXT("IO device error"), // ErrorCode_IODevice, 00213 AKTEXT("IO settings incompatible with user requirements"), // ErrorCode_IncompatibleIOSettings 00214 00215 AKTEXT("Plug-in unsupported channel configuration"), // ErrorCode_PluginUnsupportedChannelConfiguration, 00216 AKTEXT("Plug-in media unavailable"), // ErrorCode_PluginMediaUnavailable, 00217 AKTEXT("Plug-in initialization failure"), // ErrorCode_PluginInitialisationFailed, 00218 AKTEXT("Plug-in execution failure"), // ErrorCode_PluginProcessingFailed, 00219 AKTEXT("Invalid plug-in execution mode"), // ErrorCode_PluginExecutionInvalid 00220 AKTEXT("Could not allocate effect"), // ErrorCode_PluginAllocationFailed 00221 00222 AKTEXT("Seek table required to seek in Vorbis sources. Please update conversion settings."), // ErrorCode_VorbisRequireSeekTable, 00223 AKTEXT("Seek table needed for Vorbis audio format with this virtual voice behavior. Please update conversion settings or virtual mode."), // ErrorCode_VorbisRequireSeekTableVirtual, 00224 00225 AKTEXT("Vorbis decoder failure"), // ErrorCode_VorbisDecodeError, 00226 AKTEXT("AAC decoder failure"), // ErrorCode_AACDecodeError 00227 00228 AKTEXT("Failed creating xWMA decoder"), // ErrorCode_xWMACreateDecoderFailed, 00229 00230 AKTEXT("Failed creating ATRAC9 decoder"), // ErrorCode_ATRAC9CreateDecoderFailed 00231 AKTEXT("Failed creating ATRAC9 decoder: no more ATRAC9 decoding channels available"), // ErrorCode_ATRAC9CreateDecoderFailedChShortage 00232 AKTEXT("ATRAC9 decoding failed"), // ErrorCode_ATRAC9DecodeFailed 00233 AKTEXT("ATRAC9 context clear failed"), // ErrorCode_ATRAC9ClearContextFailed 00234 AKTEXT("ATRAC9 loop section is too small"), // ErrorCode_ATRAC9LoopSectionTooSmall 00235 00236 AKTEXT("Invalid file header"), // ErrorCode_InvalidAudioFileHeader, 00237 AKTEXT("File header too large (due to markers or envelope)"), // ErrorCode_AudioFileHeaderTooLarge, 00238 AKTEXT("File or loop region is too small to be played properly"), // ErrorCode_FileTooSmall, 00239 00240 AKTEXT("Transition not sample-accurate due to mixed channel configurations"), // ErrorCode_TransitionNotAccurateChannel, 00241 AKTEXT("Transition not sample-accurate due to source starvation"), // ErrorCode_TransitionNotAccurateStarvation, 00242 AKTEXT("Nothing to play"), // ErrorCode_NothingToPlay, 00243 AKTEXT("Play Failed"), // ErrorCode_PlayFailed, // Notification meaning the play asked was not done for an out of control reason 00244 // For example, if The Element has a missing source file. 00245 00246 AKTEXT("Stinger could not be scheduled in this segment or was dropped"), // ErrorCode_StingerCouldNotBeScheduled, 00247 AKTEXT("Segment look-ahead is longer than previous segment in sequence"), // ErrorCode_TooLongSegmentLookAhead, 00248 AKTEXT("Cannot schedule music switch transition in upcoming segments: using Exit Cue"), // ErrorCode_CannotScheduleMusicSwitch, 00249 AKTEXT("Cannot schedule music segments: Stopping music"), // ErrorCode_TooManySimultaneousMusicSegments, 00250 AKTEXT("Music system is stopped because a music playlist is modified"), // ErrorCode_PlaylistStoppedForEditing 00251 AKTEXT("Rescheduling music clips because a track was modified"), // ErrorCode_MusicClipsRescheduledAfterTrackEdit 00252 00253 AKTEXT("Failed creating source"), // ErrorCode_CannotPlaySource_Create, 00254 AKTEXT("Virtual source failed becoming physical"), // ErrorCode_CannotPlaySource_VirtualOff, 00255 AKTEXT("Error while computing virtual source elapsed time"), // ErrorCode_CannotPlaySource_TimeSkip, 00256 AKTEXT("Inconsistent source status"), // ErrorCode_CannotPlaySource_InconsistentState, 00257 AKTEXT("Media was not loaded for this source"),// ErrorCode_MediaNotLoaded, 00258 AKTEXT("Voice Starvation"), // ErrorCode_VoiceStarving, 00259 AKTEXT("Source starvation"), // ErrorCode_StreamingSourceStarving, 00260 AKTEXT("XMA decoder starvation"), // ErrorCode_XMADecoderSourceStarving, 00261 AKTEXT("XMA decoding error"), // ErrorCode_XMADecodingError 00262 AKTEXT("Invalid XMA data - Make sure data is allocated from APU memory and is aligned to 2K."), // ErrorCode_InvalidXMAData 00263 00264 AKTEXT("Plug-in not registered"), // ErrorCode_PluginNotRegistered, 00265 AKTEXT("Codec plug-in not registered"), // ErrorCode_CodecNotRegistered, 00266 00267 AKTEXT("Event ID not found"), // ErrorCode_EventIDNotFound, 00268 00269 AKTEXT("Invalid State Group ID"), // ErrorCode_InvalidGroupID, 00270 AKTEXT("Selected Child Not Available"), // ErrorCode_SelectedChildNotAvailable, 00271 AKTEXT("Selected Node Not Available"), // ErrorCode_SelectedNodeNotAvailable, 00272 AKTEXT("Selected Media Not Available"),// ErrorCode_SelectedMediaNotAvailable, 00273 AKTEXT("No Valid Switch"), // ErrorCode_NoValidSwitch, 00274 00275 AKTEXT("Selected node not available. Make sure the structure associated to the event is loaded or that the event has been prepared"), // ErrorCode_SelectedNodeNotAvailablePlay, 00276 00277 AKTEXT("Motion voice starvation"), // ErrorCode_FeedbackVoiceStarving, 00278 00279 AKTEXT("Bank Load Failed"), // ErrorCode_BankLoadFailed, 00280 AKTEXT("Bank Unload Failed"), // ErrorCode_BankUnloadFailed, 00281 AKTEXT("Error while loading bank"), // ErrorCode_ErrorWhileLoadingBank, 00282 AKTEXT("Insufficient Space to Load Bank"), // ErrorCode_InsufficientSpaceToLoadBank, 00283 00284 AKTEXT("Lower engine command list is full"), // ErrorCode_LowerEngineCommandListFull, 00285 00286 AKTEXT("No marker in file; seeking to specified location"), // ErrorCode_SeekNoMarker 00287 AKTEXT("Cannot seek in sound that is within a continuous container with special transitions"), // ErrorCode_CannotSeekContinuous 00288 AKTEXT("Seeking after end of file. Playback will stop"), // ErrorCode_SeekAfterEof 00289 00290 AKTEXT("Unknown game object ID. Make sure the game object is registered before using it and do not use it once it was unregistered."), // ErrorCode_UnknownGameObject, 00291 AKTEXT("Unknown game object ID. Make sure the game object is registered before using it and do not use it once it was unregistered."), // ErrorCode_UnknownGameObjectEvent 00292 00293 AKTEXT("External source missing from PostEvent call"), // ErrorCode_ExternalSourceNotResolved 00294 AKTEXT("Source file is of different format than expected"), //ErrorCode_FileFormatMismatch 00295 AKTEXT("Audio command queue is full, blocking caller. Reduce number of calls to sound engine or boost command queue memory."), // ErrorCode_CommandQueueFull 00296 AKTEXT("Audio command is too large to fit in the command queue. Break the command in smaller pieces."), //ErrorCode_CommandTooLarge 00297 00298 AKTEXT("ExecuteActionOnEvent API called"), // ErrorCode_ExecuteActionOnEvent 00299 AKTEXT("StopAll API called"), // ErrorCode_StopAll 00300 AKTEXT("StopPlayingID API called"), // ErrorCode_StopPlayingID 00301 00302 AKTEXT("Failed creating XMA decoder: no more XMA voices available"), // ErrorCode_XMACreateDecoderLimitReached 00303 AKTEXT("Failed seeking in XMA source: stream buffer is smaller than XMA block size"), // ErrorCode_XMAStreamBufferTooSmall 00304 00305 AKTEXT("Triggered a note-scoped or playing-instance-scoped modulator in a global context (such as a bus or bus effect). Modulator will have global scope."), // ErrorCode_ModulatorScopeError_Inst 00306 AKTEXT("Triggered a game-object-scoped modulator in a global context (such as a bus or bus effect). Modulator will have global scope.") // ErrorCode_ModulatorScopeError_Obj 00307 }; 00308 } 00309 } 00310 #endif // AK_MONITOR_IMPLEMENT_ERRORCODES 00311 00312 #endif // _AKMONITORERROR_H
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요