3 Commits

Author SHA1 Message Date
be8a8e9380 ACTUALLY register the handlers on init 2018-03-29 14:33:46 -07:00
c70acbe7d1 Fix Unity buildhelper for linux
- Fixes #157
2018-03-26 10:56:05 -07:00
d97e6b48ed Note to install cmake
- Fixes #149
2018-03-26 10:37:03 -07:00
3 changed files with 18 additions and 5 deletions

View File

@ -21,6 +21,10 @@ Download a release package for your platform(s) -- they have subdirs with variou
### From repo
First-eth, you'll want `CMake`. There's a few different ways to install it on your system, and you should refer to [their website](https://cmake.org/install/). Many package managers provide ways of installing CMake as well.
To make sure it's installed correctly, type `cmake --version` into your flavor of terminal/cmd. If you get a response with a version number, you're good to go!
There's a [CMake](https://cmake.org/download/) file that should be able to generate the lib for you; Sometimes I use it like this:
```sh
cd <path to discord-rpc>

View File

@ -46,8 +46,8 @@ public class ScriptBatch
string[] srcDlls = { "../../builds/install/osx-dynamic/lib/libdiscord-rpc.dylib" };
#else
string[] dstDirs = { "Assets/Plugins", "Assets/Plugins/x86", "Assets/Plugins/x86_64" };
string[] dstDlls = { "Assets/Plugins/x86/discord-rpc.so", "Assets/Plugins/x86_64/discord-rpc.so" };
string[] srcDlls = { "../../builds/install/linux-dynamic/bin/discord-rpc.dll", "../../builds/install/win64-dynamic/bin/discord-rpc.dll" };
string[] dstDlls = { "Assets/Plugins/discord-rpc.so" };
string[] srcDlls = { "../../builds/install/linux-dynamic/lib/libdiscord-rpc.so" };
#endif
Debug.Assert(dstDlls.Length == srcDlls.Length);

View File

@ -47,6 +47,7 @@ struct JoinRequest {
};
static RpcConnection* Connection{nullptr};
static DiscordEventHandlers QueuedHandlers{};
static DiscordEventHandlers Handlers{};
static std::atomic_bool WasJustConnected{false};
static std::atomic_bool WasJustDisconnected{false};
@ -282,12 +283,16 @@ extern "C" DISCORD_EXPORT void Discord_Initialize(const char* applicationId,
{
std::lock_guard<std::mutex> guard(HandlerMutex);
if (handlers) {
Handlers = *handlers;
QueuedHandlers = *handlers;
}
else {
Handlers = {};
QueuedHandlers = {};
}
Handlers = {};
}
if (Connection) {
@ -296,13 +301,17 @@ extern "C" DISCORD_EXPORT void Discord_Initialize(const char* applicationId,
Connection = RpcConnection::Create(applicationId);
Connection->onConnect = []() {
Discord_UpdateHandlers(&Handlers);
Discord_UpdateHandlers(&QueuedHandlers);
WasJustConnected.exchange(true);
ReconnectTimeMs.reset();
};
Connection->onDisconnect = [](int err, const char* message) {
LastDisconnectErrorCode = err;
StringCopy(LastDisconnectErrorMessage, message);
{
std::lock_guard<std::mutex> guard(HandlerMutex);
Handlers = {};
}
WasJustDisconnected.exchange(true);
UpdateReconnectTime();
};