Avoid a generic event struct
This commit is contained in:
+7
-3
@@ -89,10 +89,14 @@ static int EventThread(ALCcontext *context)
|
||||
evt.u.bufcomp.count, static_cast<ALsizei>(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<ALsizei>(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<ALsizei>(strlen(evt.u.disconnect.msg)), evt.u.disconnect.msg,
|
||||
context->mEventParam);
|
||||
}
|
||||
} while(evt_data.len != 0);
|
||||
}
|
||||
return 0;
|
||||
|
||||
+2
-5
@@ -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{};
|
||||
|
||||
|
||||
+3
-6
@@ -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<size_t>(msglen) >= sizeof(evt.u.user.msg))
|
||||
evt.u.user.msg[sizeof(evt.u.user.msg)-1] = 0;
|
||||
if(msglen < 0 || static_cast<size_t>(msglen) >= sizeof(evt.u.disconnect.msg))
|
||||
evt.u.disconnect.msg[sizeof(evt.u.disconnect.msg)-1] = 0;
|
||||
|
||||
IncrementRef(MixCount);
|
||||
for(ALCcontext *ctx : *mContexts.load())
|
||||
|
||||
Reference in New Issue
Block a user