From 304ab8d8901efc9ecb38fb1d61b2902753896dfc Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Tue, 15 Dec 2020 21:32:01 -0800 Subject: Avoid a generic event struct --- al/event.cpp | 10 +++++++--- al/event.h | 7 ++----- alc/alu.cpp | 9 +++------ 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/al/event.cpp b/al/event.cpp index 296c64e6..6014a4a1 100644 --- a/al/event.cpp +++ b/al/event.cpp @@ -89,10 +89,14 @@ static int EventThread(ALCcontext *context) evt.u.bufcomp.count, static_cast(msg.length()), msg.c_str(), context->mEventParam); } - else if((enabledevts&evt.EnumType) == evt.EnumType) - context->mEventCb(evt.u.user.type, evt.u.user.id, evt.u.user.param, - static_cast(strlen(evt.u.user.msg)), evt.u.user.msg, + else if(evt.EnumType == EventType_Disconnected) + { + if(!(enabledevts&EventType_Disconnected)) + continue; + context->mEventCb(AL_EVENT_TYPE_DISCONNECTED_SOFT, 0, 0, + static_cast(strlen(evt.u.disconnect.msg)), evt.u.disconnect.msg, context->mEventParam); + } } while(evt_data.len != 0); } return 0; diff --git a/al/event.h b/al/event.h index 71374618..a9f08091 100644 --- a/al/event.h +++ b/al/event.h @@ -35,11 +35,8 @@ struct AsyncEvent { ALuint count; } bufcomp; struct { - ALenum type; - ALuint id; - ALuint param; - ALchar msg[232]; - } user; + ALchar msg[244]; + } disconnect; EffectState *mEffectState; } u{}; diff --git a/alc/alu.cpp b/alc/alu.cpp index f3c21c06..007a328b 100644 --- a/alc/alu.cpp +++ b/alc/alu.cpp @@ -1974,17 +1974,14 @@ void ALCdevice::handleDisconnect(const char *msg, ...) return; AsyncEvent evt{EventType_Disconnected}; - evt.u.user.type = AL_EVENT_TYPE_DISCONNECTED_SOFT; - evt.u.user.id = 0; - evt.u.user.param = 0; va_list args; va_start(args, msg); - int msglen{vsnprintf(evt.u.user.msg, sizeof(evt.u.user.msg), msg, args)}; + int msglen{vsnprintf(evt.u.disconnect.msg, sizeof(evt.u.disconnect.msg), msg, args)}; va_end(args); - if(msglen < 0 || static_cast(msglen) >= sizeof(evt.u.user.msg)) - evt.u.user.msg[sizeof(evt.u.user.msg)-1] = 0; + if(msglen < 0 || static_cast(msglen) >= sizeof(evt.u.disconnect.msg)) + evt.u.disconnect.msg[sizeof(evt.u.disconnect.msg)-1] = 0; IncrementRef(MixCount); for(ALCcontext *ctx : *mContexts.load()) -- cgit v1.2.3