Add a deprecated event type for alDopplerVelocity

This commit is contained in:
Chris Robinson 2018-01-24 18:42:00 -08:00
parent 1d86aea61c
commit 2a7f5aa569
4 changed files with 16 additions and 0 deletions

View File

@ -665,6 +665,7 @@ static const struct {
DECL(AL_EVENT_TYPE_SOURCE_STATE_CHANGED_SOFT),
DECL(AL_EVENT_TYPE_ERROR_SOFT),
DECL(AL_EVENT_TYPE_PERFORMANCE_SOFT),
DECL(AL_EVENT_TYPE_DEPRECATED_SOFT),
};
#undef DECL

View File

@ -74,6 +74,7 @@ AL_API void AL_APIENTRY alFlushMappedBufferSOFT(ALuint buffer, ALsizei offset, A
#define AL_EVENT_TYPE_SOURCE_STATE_CHANGED_SOFT 0xffe3
#define AL_EVENT_TYPE_ERROR_SOFT 0xffe4
#define AL_EVENT_TYPE_PERFORMANCE_SOFT 0xffe5
#define AL_EVENT_TYPE_DEPRECATED_SOFT 0xffe6
typedef void (AL_APIENTRY*ALEVENTPROCSOFT)(ALenum eventType, ALuint object, ALuint param,
ALsizei length, const ALchar *message,
void *userParam);
@ -570,6 +571,7 @@ enum {
EventType_BufferCompleted = 1<<1,
EventType_Error = 1<<2,
EventType_Performance = 1<<3,
EventType_Deprecated = 1<<4,
};
struct ALCcontext_struct {

View File

@ -715,6 +715,17 @@ AL_API ALvoid AL_APIENTRY alDopplerVelocity(ALfloat value)
context = GetContextRef();
if(!context) return;
if((context->EnabledEvts&EventType_Deprecated))
{
static const ALCchar msg[] =
"alDopplerVelocity is deprecated in AL1.1, use alSpeedOfSound";
almtx_lock(&context->EventLock);
if((context->EnabledEvts&EventType_Deprecated) && context->EventCb)
(*context->EventCb)(AL_EVENT_TYPE_DEPRECATED_SOFT, 0, 0, strlen(msg), msg,
context->EventParam);
almtx_unlock(&context->EventLock);
}
if(!(value >= 0.0f && isfinite(value)))
SETERR_GOTO(context, AL_INVALID_VALUE, 0, "Doppler velocity out of range", done);

View File

@ -31,6 +31,8 @@ AL_API void AL_APIENTRY alEventControlSOFT(ALsizei count, const ALenum *types, A
flags |= EventType_Error;
else if(types[i] == AL_EVENT_TYPE_PERFORMANCE_SOFT)
flags |= EventType_Performance;
else if(types[i] == AL_EVENT_TYPE_DEPRECATED_SOFT)
flags |= EventType_Deprecated;
else
SETERR_GOTO(context, AL_INVALID_ENUM, 0, "Invalid event type", done);
}