Use buffer instead of raw struct
This commit is contained in:
parent
ef5e7f389c
commit
64e192b326
@ -62,7 +62,7 @@ static int LastDisconnectErrorCode{0};
|
|||||||
static char LastDisconnectErrorMessage[256];
|
static char LastDisconnectErrorMessage[256];
|
||||||
static std::mutex PresenceMutex;
|
static std::mutex PresenceMutex;
|
||||||
static std::mutex HandlerMutex;
|
static std::mutex HandlerMutex;
|
||||||
static DiscordRichPresence CurrentPresence{};
|
static QueuedMessage CurrentPresence{};
|
||||||
static QueuedMessage QueuedPresence{};
|
static QueuedMessage QueuedPresence{};
|
||||||
static MsgQueue<QueuedMessage, MessageQueueSize> SendQueue;
|
static MsgQueue<QueuedMessage, MessageQueueSize> SendQueue;
|
||||||
static MsgQueue<User, JoinQueueSize> JoinAskQueue;
|
static MsgQueue<User, JoinQueueSize> JoinAskQueue;
|
||||||
@ -311,7 +311,10 @@ extern "C" DISCORD_EXPORT void Discord_Initialize(const char* applicationId,
|
|||||||
Connection = RpcConnection::Create(applicationId);
|
Connection = RpcConnection::Create(applicationId);
|
||||||
Connection->onConnect = [](JsonDocument& readyMessage) {
|
Connection->onConnect = [](JsonDocument& readyMessage) {
|
||||||
Discord_UpdateHandlers(&QueuedHandlers);
|
Discord_UpdateHandlers(&QueuedHandlers);
|
||||||
Discord_UpdatePresence(&CurrentPresence);
|
if (CurrentPresence.length > 0) {
|
||||||
|
QueuedPresence.Copy(CurrentPresence);
|
||||||
|
SignalIOActivity();
|
||||||
|
}
|
||||||
auto data = GetObjMember(&readyMessage, "data");
|
auto data = GetObjMember(&readyMessage, "data");
|
||||||
auto user = GetObjMember(data, "user");
|
auto user = GetObjMember(data, "user");
|
||||||
auto userId = GetStrMember(user, "id");
|
auto userId = GetStrMember(user, "id");
|
||||||
@ -352,7 +355,6 @@ extern "C" DISCORD_EXPORT void Discord_Shutdown(void)
|
|||||||
Connection->onConnect = nullptr;
|
Connection->onConnect = nullptr;
|
||||||
Connection->onDisconnect = nullptr;
|
Connection->onDisconnect = nullptr;
|
||||||
Handlers = {};
|
Handlers = {};
|
||||||
CurrentPresence = {};
|
|
||||||
if (IoThread != nullptr) {
|
if (IoThread != nullptr) {
|
||||||
IoThread->Stop();
|
IoThread->Stop();
|
||||||
delete IoThread;
|
delete IoThread;
|
||||||
@ -370,10 +372,10 @@ extern "C" DISCORD_EXPORT void Discord_UpdatePresence(const DiscordRichPresence*
|
|||||||
QueuedPresence.buffer, sizeof(QueuedPresence.buffer), Nonce++, Pid, presence);
|
QueuedPresence.buffer, sizeof(QueuedPresence.buffer), Nonce++, Pid, presence);
|
||||||
}
|
}
|
||||||
if (presence) {
|
if (presence) {
|
||||||
CurrentPresence = *presence;
|
CurrentPresence.Copy(QueuedPresence);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CurrentPresence = {};
|
CurrentPresence.length = 0;
|
||||||
}
|
}
|
||||||
SignalIOActivity();
|
SignalIOActivity();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user