00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _AKMONITORERROR_H
00029 #define _AKMONITORERROR_H
00030
00031 #include <AK/SoundEngine/Common/AkSoundEngineExport.h>
00032 #include <AK/SoundEngine/Common/AkTypes.h>
00033
00034 namespace AK
00035 {
00036
00037
00038 namespace Monitor
00039 {
00040
00041 enum ErrorLevel
00042 {
00043 ErrorLevel_Message = (1<<0),
00044 ErrorLevel_Error = (1<<1),
00045
00046 ErrorLevel_All = ErrorLevel_Message | ErrorLevel_Error
00047 };
00048
00049 enum ErrorCode
00050 {
00051 ErrorCode_NoError = 0,
00052 ErrorCode_FileNotFound,
00053 ErrorCode_CannotOpenFile,
00054 ErrorCode_CannotStartStreamNoMemory,
00055 ErrorCode_IODevice,
00056 ErrorCode_IncompatibleIOSettings,
00057
00058 ErrorCode_PluginUnsupportedChannelConfiguration,
00059 ErrorCode_PluginMediaUnavailable,
00060 ErrorCode_PluginInitialisationFailed,
00061 ErrorCode_PluginProcessingFailed,
00062 ErrorCode_PluginExecutionInvalid,
00063 ErrorCode_PluginAllocationFailed,
00064
00065 ErrorCode_VorbisRequireSeekTable,
00066
00067 ErrorCode_VorbisDecodeError,
00068 ErrorCode_AACDecodeError,
00069
00070 ErrorCode_xWMACreateDecoderFailed,
00071
00072 ErrorCode_ATRAC9CreateDecoderFailed,
00073 ErrorCode_ATRAC9CreateDecoderFailedChShortage,
00074 ErrorCode_ATRAC9DecodeFailed,
00075 ErrorCode_ATRAC9ClearContextFailed,
00076 ErrorCode_ATRAC9LoopSectionTooSmall,
00077
00078 ErrorCode_InvalidAudioFileHeader,
00079 ErrorCode_AudioFileHeaderTooLarge,
00080 ErrorCode_FileTooSmall,
00081
00082 ErrorCode_TransitionNotAccurateChannel,
00083 ErrorCode_TransitionNotAccurateStarvation,
00084 ErrorCode_NothingToPlay,
00085 ErrorCode_PlayFailed,
00086
00087 ErrorCode_StingerCouldNotBeScheduled,
00088 ErrorCode_TooLongSegmentLookAhead,
00089 ErrorCode_CannotScheduleMusicSwitch,
00090 ErrorCode_TooManySimultaneousMusicSegments,
00091 ErrorCode_PlaylistStoppedForEditing,
00092 ErrorCode_MusicClipsRescheduledAfterTrackEdit,
00093
00094 ErrorCode_CannotPlaySource_Create,
00095 ErrorCode_CannotPlaySource_VirtualOff,
00096 ErrorCode_CannotPlaySource_TimeSkip,
00097 ErrorCode_CannotPlaySource_InconsistentState,
00098 ErrorCode_MediaNotLoaded,
00099 ErrorCode_VoiceStarving,
00100 ErrorCode_StreamingSourceStarving,
00101 ErrorCode_XMADecoderSourceStarving,
00102 ErrorCode_XMADecodingError,
00103 ErrorCode_InvalidXMAData,
00104
00105 ErrorCode_PluginNotRegistered,
00106 ErrorCode_CodecNotRegistered,
00107 ErrorCode_PluginVersionMismatch,
00108
00109 ErrorCode_EventIDNotFound,
00110
00111 ErrorCode_InvalidGroupID,
00112 ErrorCode_SelectedChildNotAvailable,
00113 ErrorCode_SelectedNodeNotAvailable,
00114 ErrorCode_SelectedMediaNotAvailable,
00115 ErrorCode_NoValidSwitch,
00116
00117 ErrorCode_SelectedNodeNotAvailablePlay,
00118
00119 ErrorCode_FeedbackVoiceStarving,
00120
00121 ErrorCode_BankLoadFailed,
00122 ErrorCode_BankUnloadFailed,
00123 ErrorCode_ErrorWhileLoadingBank,
00124 ErrorCode_InsufficientSpaceToLoadBank,
00125
00126 ErrorCode_LowerEngineCommandListFull,
00127
00128 ErrorCode_SeekNoMarker,
00129 ErrorCode_CannotSeekContinuous,
00130 ErrorCode_SeekAfterEof,
00131
00132 ErrorCode_UnknownGameObject,
00133 ErrorCode_UnknownEmitter,
00134 ErrorCode_UnknownListener,
00135 ErrorCode_GameObjectIsNotListener,
00136 ErrorCode_GameObjectIsNotEmitter,
00137 ErrorCode_UnknownGameObjectEvent,
00138 ErrorCode_GameObjectIsNotEmitterEvent,
00139
00140 ErrorCode_ExternalSourceNotResolved,
00141 ErrorCode_FileFormatMismatch,
00142
00143 ErrorCode_CommandQueueFull,
00144 ErrorCode_CommandTooLarge,
00145
00146 ErrorCode_XMACreateDecoderLimitReached,
00147 ErrorCode_XMAStreamBufferTooSmall,
00148
00149 ErrorCode_ModulatorScopeError_Inst,
00150 ErrorCode_ModulatorScopeError_Obj,
00151
00152 ErrorCode_SeekAfterEndOfPlaylist,
00153
00154 ErrorCode_OpusRequireSeekTable,
00155 ErrorCode_OpusDecodeError,
00156 ErrorCode_OpusCreateDecoderFailed,
00157
00158 ErrorCode_NotEnoughMemoryToStart,
00159
00160 Num_ErrorCodes
00161 };
00162
00163
00164 AK_CALLBACK( void, LocalOutputFunc )(
00165 ErrorCode in_eErrorCode,
00166 const AkOSChar* in_pszError,
00167 ErrorLevel in_eErrorLevel,
00168 AkPlayingID in_playingID,
00169 AkGameObjectID in_gameObjID
00170 );
00171
00172 extern const AkOSChar* s_aszErrorCodes[ Num_ErrorCodes ];
00173
00174
00175
00176
00177
00178
00179
00180 AK_EXTERNAPIFUNC( AKRESULT, PostCode )(
00181 ErrorCode in_eError,
00182 ErrorLevel in_eErrorLevel,
00183 AkPlayingID in_playingID = AK_INVALID_PLAYING_ID,
00184 AkGameObjectID in_gameObjID = AK_INVALID_GAME_OBJECT,
00185 AkUniqueID in_audioNodeID = AK_INVALID_UNIQUE_ID,
00186 bool in_bIsBus = false
00187 );
00188 #ifdef AK_SUPPORT_WCHAR
00189
00190
00191
00192
00193
00194
00195 AK_EXTERNAPIFUNC( AKRESULT, PostString )(
00196 const wchar_t* in_pszError,
00197 ErrorLevel in_eErrorLevel,
00198 AkPlayingID in_playingID = AK_INVALID_PLAYING_ID,
00199 AkGameObjectID in_gameObjID = AK_INVALID_GAME_OBJECT,
00200 AkUniqueID in_audioNodeID = AK_INVALID_UNIQUE_ID,
00201 bool in_bIsBus = false
00202 );
00203 #endif // #ifdef AK_SUPPORT_WCHAR
00204
00205
00206
00207
00208
00209
00210 AK_EXTERNAPIFUNC( AKRESULT, PostString )(
00211 const char* in_pszError,
00212 ErrorLevel in_eErrorLevel,
00213 AkPlayingID in_playingID = AK_INVALID_PLAYING_ID,
00214 AkGameObjectID in_gameObjID = AK_INVALID_GAME_OBJECT,
00215 AkUniqueID in_audioNodeID = AK_INVALID_UNIQUE_ID,
00216 bool in_bIsBus = false
00217 );
00218
00219
00220
00221
00222
00223 AK_EXTERNAPIFUNC( AKRESULT, SetLocalOutput )(
00224 AkUInt32 in_uErrorLevel = ErrorLevel_All,
00225 LocalOutputFunc in_pMonitorFunc = 0
00226 );
00227
00228
00229
00230
00231 AK_EXTERNAPIFUNC( AkTimeMs, GetTimeStamp )();
00232 }
00233 }
00234
00235
00236 #ifndef AK_OPTIMIZED
00237 #define AK_MONITOR_ERROR( in_eErrorCode )\
00238 AK::Monitor::PostCode( in_eErrorCode, AK::Monitor::ErrorLevel_Error )
00239 #else
00240 #define AK_MONITOR_ERROR( in_eErrorCode )
00241 #endif
00242
00243 #ifdef AK_MONITOR_IMPLEMENT_ERRORCODES
00244 namespace AK
00245 {
00246 namespace Monitor
00247 {
00248 const AkOSChar* s_aszErrorCodes[ Num_ErrorCodes ] =
00249 {
00250 AKTEXT("No error"),
00251 AKTEXT("File not found"),
00252 AKTEXT("Cannot open file"),
00253 AKTEXT("Not enough memory to start stream"),
00254 AKTEXT("IO device error"),
00255 AKTEXT("IO settings incompatible with user requirements"),
00256
00257 AKTEXT("Plug-in unsupported channel configuration"),
00258 AKTEXT("Plug-in media unavailable"),
00259 AKTEXT("Plug-in initialization failure"),
00260 AKTEXT("Plug-in execution failure"),
00261 AKTEXT("Invalid plug-in execution mode"),
00262 AKTEXT("Could not allocate effect"),
00263
00264 AKTEXT("Seek table required to seek in Vorbis sources. Please update conversion settings."),
00265
00266 AKTEXT("Vorbis decoder failure"),
00267 AKTEXT("AAC decoder failure"),
00268
00269 AKTEXT("Failed creating xWMA decoder"),
00270
00271 AKTEXT("Failed creating ATRAC9 decoder"),
00272 AKTEXT("Failed creating ATRAC9 decoder: no more ATRAC9 decoding channels available"),
00273 AKTEXT("ATRAC9 decoding failed"),
00274 AKTEXT("ATRAC9 context clear failed"),
00275 AKTEXT("ATRAC9 loop section is too small"),
00276
00277 AKTEXT("Invalid file header"),
00278 AKTEXT("File header too large (due to markers or envelope)"),
00279 AKTEXT("File or loop region is too small to be played properly"),
00280
00281 AKTEXT("Transition not sample-accurate due to mixed channel configurations"),
00282 AKTEXT("Transition not sample-accurate due to source starvation"),
00283 AKTEXT("Nothing to play"),
00284 AKTEXT("Play Failed"),
00285
00286
00287 AKTEXT("Stinger could not be scheduled in this segment or was dropped"),
00288 AKTEXT("Segment look-ahead is longer than previous segment in sequence"),
00289 AKTEXT("Cannot schedule music switch transition in upcoming segments: using Exit Cue"),
00290 AKTEXT("Cannot schedule music segments: Stopping music"),
00291 AKTEXT("Music system is stopped because a music playlist is modified"),
00292 AKTEXT("Rescheduling music clips because a track was modified"),
00293
00294 AKTEXT("Failed creating source"),
00295 AKTEXT("Virtual source failed becoming physical"),
00296 AKTEXT("Error while computing virtual source elapsed time"),
00297 AKTEXT("Inconsistent source status"),
00298 AKTEXT("Media was not loaded for this source"),
00299 AKTEXT("Voice Starvation"),
00300 AKTEXT("Source starvation"),
00301 AKTEXT("XMA decoder starvation"),
00302 AKTEXT("XMA decoding error"),
00303 AKTEXT("Invalid XMA data - Make sure data is allocated from APU memory and is aligned to 2K."),
00304
00305 AKTEXT("Plug-in not registered"),
00306 AKTEXT("Codec plug-in not registered"),
00307 AKTEXT("Plug-in version doesn't match sound engine version. Please ensure the plug-in is compatible with this version of Wwise"),
00308
00309 AKTEXT("Event ID not found"),
00310
00311 AKTEXT("Invalid State Group ID"),
00312 AKTEXT("Selected Child Not Available"),
00313 AKTEXT("Selected Node Not Available"),
00314 AKTEXT("Selected Media Not Available"),
00315 AKTEXT("No Valid Switch"),
00316
00317 AKTEXT("Selected node not available. Make sure the structure associated to the event is loaded or that the event has been prepared"),
00318
00319 AKTEXT("Motion voice starvation"),
00320
00321 AKTEXT("Bank Load Failed"),
00322 AKTEXT("Bank Unload Failed"),
00323 AKTEXT("Error while loading bank"),
00324 AKTEXT("Insufficient Space to Load Bank"),
00325
00326 AKTEXT("Lower engine command list is full"),
00327
00328 AKTEXT("No marker in file; seeking to specified location"),
00329 AKTEXT("Cannot seek in sound that is within a continuous container with special transitions"),
00330 AKTEXT("Seeking after end of file. Playback will stop"),
00331
00332 AKTEXT("Unknown game object ID. Make sure the game object is registered before using it and do not use it once it was unregistered."),
00333
00334 AKTEXT("Unknown emitter game object ID. Make sure the game object is registered before using it and do not use it once it was unregistered."),
00335 AKTEXT("Unknown listener game object ID. Make sure the game object is registered before using it and do not use it once it was unregistered."),
00336 AKTEXT("The requested game object is not a listener."),
00337 AKTEXT("The requested game object is not an emitter."),
00338
00339 AKTEXT("Unknown emitter game object ID on event. Make sure the game object is registered before using it and do not use it once it was unregistered."),
00340 AKTEXT("The requested game object for an event was not registered as an emitter. Make sure the game object is registered as an emitter before using it to post an event."),
00341
00342 AKTEXT("External source missing from PostEvent call"),
00343 AKTEXT("Source file is of different format than expected"),
00344 AKTEXT("Audio command queue is full, blocking caller. Reduce number of calls to sound engine or boost command queue memory."),
00345 AKTEXT("Audio command is too large to fit in the command queue. Break the command in smaller pieces."),
00346
00347 AKTEXT("Failed creating XMA decoder: no more XMA voices available"),
00348 AKTEXT("Failed seeking in XMA source: stream buffer is smaller than XMA block size"),
00349
00350 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."),
00351 AKTEXT("Triggered a game-object-scoped modulator in a global context (such as a bus or bus effect). Modulator will have global scope."),
00352
00353 AKTEXT("Ignoring seek after end of playlist"),
00354
00355 AKTEXT("Seek table required to seek in Opus sources. Please update conversion settings."),
00356 AKTEXT("Opus decoder failure"),
00357 AKTEXT("Failed creating Opus decoder"),
00358
00359 AKTEXT("Not enough memory to start sound."),
00360
00361 };
00362 }
00363 }
00364 #endif // AK_MONITOR_IMPLEMENT_ERRORCODES
00365
00366 #endif // _AKMONITORERROR_H