From 794bbccd5160a2dc8eb49447091b264d1316fa86 Mon Sep 17 00:00:00 2001 From: Chris Marsh Date: Wed, 30 Aug 2017 15:17:47 -0700 Subject: [PATCH] Register upgrade (#2) * Update init to take an optional Steam ID. Add register for steam game. Remove url from cmd line params to launched game. * Start on a build script --- .gitignore | 1 + build.py | 60 ++++++++++++ examples/button-clicker/.gitignore | 1 + .../Assets/DiscordController.cs | 3 +- examples/button-clicker/Assets/DiscordRpc.cs | 2 +- .../Assets/Resources/discord-rpc.dll | Bin 242688 -> 59392 bytes examples/button-clicker/Assets/main.unity | 1 + examples/send-presence/send-presence.c | 2 +- .../unrealstatus/Content/ShowTheUILevel.umap | Bin 743414 -> 743510 bytes .../Private/DiscordRpcBlueprint.cpp | 7 +- .../discordrpc/Public/DiscordRpcBlueprint.h | 19 ++-- include/discord-rpc.h | 3 +- src/CMakeLists.txt | 1 + src/discord-register.cpp | 87 +++++++++++++++--- src/discord-register.h | 3 +- src/discord-rpc.cpp | 10 +- 16 files changed, 167 insertions(+), 33 deletions(-) create mode 100644 build.py diff --git a/.gitignore b/.gitignore index 6f949c6..3f2979e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /build*/ /.vscode/ /thirdparty/ +.vs/ diff --git a/build.py b/build.py new file mode 100644 index 0000000..e0859c8 --- /dev/null +++ b/build.py @@ -0,0 +1,60 @@ +import os +import subprocess +import sys +import shutil +from contextlib import contextmanager + + +SCRIPT_PATH = os.path.dirname(os.path.abspath(__file__)) + + +@contextmanager +def cd(new_dir): + """ Temporarily change current directory """ + if new_dir: + old_dir = os.getcwd() + os.chdir(new_dir) + yield + if new_dir: + os.chdir(old_dir) + + +def mkdir_p(path): + """ mkdir -p """ + if not os.path.isdir(path): + os.makedirs(path) + + +def build(build_path, generator, options): + mkdir_p(build_path) + with cd(build_path): + initial_cmake = ['cmake', SCRIPT_PATH] + if generator: + initial_cmake.extend(['-G', generator]) + for key in options: + val = 'ON' if options[key] else 'OFF' + initial_cmake.append('-D%s=%s' %(key, val)) + subprocess.check_call(initial_cmake) + subprocess.check_call(['cmake', '--build', '.', '--config', 'Debug']) + subprocess.check_call(['cmake', '--build', '.', '--config', 'Release']) + + +def main(): + os.chdir(SCRIPT_PATH) + if sys.platform.startswith('win'): + generator = 'Visual Studio 14 2015' + build(os.path.join(SCRIPT_PATH, 'builds', 'win32-static'), generator, {}) + build(os.path.join(SCRIPT_PATH, 'builds', 'win32-dynamic'), generator, {'BUILD_DYNAMIC_LIB': True}) + generator = 'Visual Studio 14 2015 Win64' + build(os.path.join(SCRIPT_PATH, 'builds', 'win64-static'), generator, {}) + build(os.path.join(SCRIPT_PATH, 'builds', 'win64-dynamic'), generator, {'BUILD_DYNAMIC_LIB': True}) + # todo: this in some better way + src_dll = os.path.join(SCRIPT_PATH, 'builds', 'win64-dynamic', 'src', 'Release', 'discord-rpc.dll') + dst_dll = os.path.join(SCRIPT_PATH, 'examples\\button-clicker\\Assets\\Resources\\discord-rpc.dll') + shutil.copy(src_dll, dst_dll) + dst_dll = os.path.join(SCRIPT_PATH, 'examples\\unrealstatus\\Plugins\\discordrpc\\Binaries\\ThirdParty\\discordrpcLibrary\\Win64\\discord-rpc.dll') + shutil.copy(src_dll, dst_dll) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/examples/button-clicker/.gitignore b/examples/button-clicker/.gitignore index 2f0d3c1..6e47d8f 100644 --- a/examples/button-clicker/.gitignore +++ b/examples/button-clicker/.gitignore @@ -3,3 +3,4 @@ /obj/ *.sln *.csproj +*.userprefs \ No newline at end of file diff --git a/examples/button-clicker/Assets/DiscordController.cs b/examples/button-clicker/Assets/DiscordController.cs index c93ca25..1bc11d4 100644 --- a/examples/button-clicker/Assets/DiscordController.cs +++ b/examples/button-clicker/Assets/DiscordController.cs @@ -5,6 +5,7 @@ using UnityEngine; public class DiscordController : MonoBehaviour { public DiscordRpc.RichPresence presence; public string applicationId; + public string optionalSteamId; public int callbackCalls; public int clickCounter; public UnityEngine.Events.UnityEvent onConnect; @@ -72,7 +73,7 @@ public class DiscordController : MonoBehaviour { handlers.errorCallback += ErrorCallback; handlers.joinCallback += JoinCallback; handlers.spectateCallback += SpectateCallback; - DiscordRpc.Initialize(applicationId, ref handlers, true); + DiscordRpc.Initialize(applicationId, ref handlers, true, optionalSteamId); } void OnDisable() diff --git a/examples/button-clicker/Assets/DiscordRpc.cs b/examples/button-clicker/Assets/DiscordRpc.cs index c91491a..447337f 100644 --- a/examples/button-clicker/Assets/DiscordRpc.cs +++ b/examples/button-clicker/Assets/DiscordRpc.cs @@ -47,7 +47,7 @@ public class DiscordRpc } [DllImport("discord-rpc", EntryPoint = "Discord_Initialize")] - public static extern void Initialize(string applicationId, ref EventHandlers handlers, bool autoRegister); + public static extern void Initialize(string applicationId, ref EventHandlers handlers, bool autoRegister, string optionalSteamId); [DllImport("discord-rpc", EntryPoint = "Discord_Shutdown")] public static extern void Shutdown(); diff --git a/examples/button-clicker/Assets/Resources/discord-rpc.dll b/examples/button-clicker/Assets/Resources/discord-rpc.dll index 4b3e65595fe918c114fa3d985684eda1ace9a9fa..f9eb346d1c40e4e1a7067042a6a82514f9fc0540 100644 GIT binary patch literal 59392 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

O(05O1=Xc5u+tp%0ikdf|;X%x-#&H{(hy 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 s7=_MemhNVyzqEN=O&}$h=!B=CH(ZX5oE^} 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 diff --git a/examples/button-clicker/Assets/main.unity b/examples/button-clicker/Assets/main.unity index 080d2d1..b044ae3 100644 --- a/examples/button-clicker/Assets/main.unity +++ b/examples/button-clicker/Assets/main.unity @@ -668,6 +668,7 @@ MonoBehaviour: spectateSecret: instance: 0 applicationId: 345229890980937739 + optionalSteamId: callbackCalls: 0 clickCounter: 0 onConnect: diff --git a/examples/send-presence/send-presence.c b/examples/send-presence/send-presence.c index 65a2b57..a016c29 100644 --- a/examples/send-presence/send-presence.c +++ b/examples/send-presence/send-presence.c @@ -86,7 +86,7 @@ static void discordInit() handlers.errored = handleDiscordError; handlers.joinGame = handleDiscordJoin; handlers.spectateGame = handleDiscordSpectate; - Discord_Initialize(APPLICATION_ID, &handlers, 1); + Discord_Initialize(APPLICATION_ID, &handlers, 1, NULL); } static void gameLoop() diff --git a/examples/unrealstatus/Content/ShowTheUILevel.umap b/examples/unrealstatus/Content/ShowTheUILevel.umap index fc9228f7431f3829fb299acb51b3cd14405229b6..1b100e471f4890c15e251a74f8f6a6cd2192f498 100644 GIT binary patch delta 6941 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 delta 6987 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 - Discord_Initialize((const char*)appId.Get(), &handlers, autoRegister); + auto steamId = StringCast(*optionalSteamId); + Discord_Initialize((const char*)appId.Get(), &handlers, autoRegister, (const char*)steamId.Get()); } void UDiscordRpc::Shutdown() diff --git a/examples/unrealstatus/Plugins/discordrpc/Source/discordrpc/Public/DiscordRpcBlueprint.h b/examples/unrealstatus/Plugins/discordrpc/Source/discordrpc/Public/DiscordRpcBlueprint.h index 4821b66..0ce28bd 100644 --- a/examples/unrealstatus/Plugins/discordrpc/Source/discordrpc/Public/DiscordRpcBlueprint.h +++ b/examples/unrealstatus/Plugins/discordrpc/Source/discordrpc/Public/DiscordRpcBlueprint.h @@ -6,22 +6,19 @@ #include "CoreMinimal.h" #include "DiscordRpcBlueprint.generated.h" +// unreal's header tool hates clang-format +// clang-format off + DECLARE_LOG_CATEGORY_EXTERN(Discord, Log, All); DECLARE_DYNAMIC_MULTICAST_DELEGATE(FDiscordConnected); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDiscordDisconnected, - int, - errorCode, - const FString&, - errorMessage); -DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDiscordErrored, - int, - errorCode, - const FString&, - errorMessage); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDiscordDisconnected, int, errorCode, const FString&, errorMessage); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDiscordErrored, int, errorCode, const FString&, errorMessage); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDiscordJoin, const FString&, joinSecret); DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDiscordSpectate, const FString&, spectateSecret); +// clang-format on + /** * Rich presence data */ @@ -73,7 +70,7 @@ public: UFUNCTION(BlueprintCallable, meta = (DisplayName = "Initialize connection", Keywords = "Discord rpc"), Category = "Discord") - void Initialize(const FString& applicationId, bool autoRegister); + void Initialize(const FString& applicationId, bool autoRegister, const FString& optionalSteamId); UFUNCTION(BlueprintCallable, meta = (DisplayName = "Shut down connection", Keywords = "Discord rpc"), diff --git a/include/discord-rpc.h b/include/discord-rpc.h index 2eba2f7..88c750e 100644 --- a/include/discord-rpc.h +++ b/include/discord-rpc.h @@ -51,7 +51,8 @@ typedef struct DiscordEventHandlers { DISCORD_EXPORT void Discord_Initialize(const char* applicationId, DiscordEventHandlers* handlers, - int autoRegister); + int autoRegister, + const char* optionalSteamId); DISCORD_EXPORT void Discord_Shutdown(); /* checks for incoming messages, dispatches callbacks */ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c919cc1..31f95db 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,6 +10,7 @@ endif (NOT ${ENABLE_IO_THREAD}) set(BASE_RPC_SRC ${PROJECT_SOURCE_DIR}/include/discord-rpc.h discord-rpc.cpp + discord-register.h discord-register.cpp rpc_connection.h rpc_connection.cpp diff --git a/src/discord-register.cpp b/src/discord-register.cpp index bd2fcc3..05a7f6b 100644 --- a/src/discord-register.cpp +++ b/src/discord-register.cpp @@ -12,27 +12,31 @@ #pragma comment(lib, "Psapi.lib") #endif -void Discord_Register(const char* applicationId) -{ #ifdef _WIN32 +void Discord_RegisterW(const wchar_t* applicationId, const wchar_t* command) +{ // https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx // we want to register games so we can run them as discord-:// // Update the HKEY_CURRENT_USER, because it doesn't seem to require special permissions. - wchar_t appId[32]; - MultiByteToWideChar(CP_UTF8, 0, applicationId, -1, appId, 32); - wchar_t exeFilePath[MAX_PATH]; - GetModuleFileNameExW(GetCurrentProcess(), nullptr, exeFilePath, MAX_PATH); + int exeLen = GetModuleFileNameExW(GetCurrentProcess(), nullptr, exeFilePath, MAX_PATH); + wchar_t openCommand[1024]; + const auto commandBufferLen = sizeof(openCommand) / sizeof(*openCommand); + + if (command && command[0]) { + StringCbPrintfW(openCommand, sizeof(openCommand), L"%s", command); + } + else { + lstrcpyW(openCommand, exeFilePath); + } wchar_t protocolName[64]; - StringCbPrintfW(protocolName, sizeof(protocolName), L"discord-%s", appId); + StringCbPrintfW(protocolName, sizeof(protocolName), L"discord-%s", applicationId); wchar_t protocolDescription[128]; StringCbPrintfW( - protocolDescription, sizeof(protocolDescription), L"URL:Run game %s protocol", appId); + protocolDescription, sizeof(protocolDescription), L"URL:Run game %s protocol", applicationId); wchar_t urlProtocol = 0; - wchar_t openCommand[MAX_PATH + 8]; - StringCbPrintfW(openCommand, sizeof(openCommand), L"\"%s\" \"%%1\"", exeFilePath); wchar_t keyName[256]; StringCbPrintfW(keyName, sizeof(keyName), L"Software\\Classes\\%s", protocolName); @@ -58,9 +62,8 @@ void Discord_Register(const char* applicationId) fprintf(stderr, "Error writing description\n"); } - len = lstrlenW(exeFilePath) + 1; - result = - RegSetKeyValueW(key, L"DefaultIcon", nullptr, REG_SZ, exeFilePath, len * sizeof(wchar_t)); + result = RegSetKeyValueW( + key, L"DefaultIcon", nullptr, REG_SZ, exeFilePath, (exeLen + 1) * sizeof(wchar_t)); if (FAILED(result)) { fprintf(stderr, "Error writing icon\n"); } @@ -72,5 +75,63 @@ void Discord_Register(const char* applicationId) fprintf(stderr, "Error writing command\n"); } RegCloseKey(key); +} +#endif + +void Discord_Register(const char* applicationId, const char* command) +{ +#ifdef _WIN32 + + wchar_t appId[32]; + MultiByteToWideChar(CP_UTF8, 0, applicationId, -1, appId, 32); + + wchar_t openCommand[1024]; + const wchar_t* wcommand = nullptr; + if (command && command[0]) { + const auto commandBufferLen = sizeof(openCommand) / sizeof(*openCommand); + MultiByteToWideChar(CP_UTF8, 0, command, -1, openCommand, commandBufferLen); + wcommand = openCommand; + } + + Discord_RegisterW(appId, wcommand); +#endif +} + +void Discord_RegisterSteamGame(const char* applicationId, const char* steamId) +{ +#ifdef _WIN32 + wchar_t appId[32]; + MultiByteToWideChar(CP_UTF8, 0, applicationId, -1, appId, 32); + + wchar_t wSteamId[32]; + MultiByteToWideChar(CP_UTF8, 0, steamId, -1, wSteamId, 32); + + HKEY key; + auto status = RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Valve\\Steam", 0, KEY_READ, &key); + if (status != ERROR_SUCCESS) { + fprintf(stderr, "Error opening Steam key\n"); + return; + } + + wchar_t steamPath[MAX_PATH]; + DWORD pathBytes = sizeof(steamPath); + status = RegQueryValueExW(key, L"SteamExe", nullptr, nullptr, (BYTE*)steamPath, &pathBytes); + RegCloseKey(key); + if (status != ERROR_SUCCESS || pathBytes < 1) { + fprintf(stderr, "Error reading SteamExe key\n"); + return; + } + + DWORD pathChars = pathBytes / sizeof(wchar_t); + for (DWORD i = 0; i < pathChars; ++i) { + if (steamPath[i] == L'/') { + steamPath[i] = L'\\'; + } + } + + wchar_t command[1024]; + StringCbPrintfW(command, sizeof(command), L"\"%s\" steam://run/%s", steamPath, wSteamId); + + Discord_RegisterW(appId, command); #endif } diff --git a/src/discord-register.h b/src/discord-register.h index 1ad943b..8df2105 100644 --- a/src/discord-register.h +++ b/src/discord-register.h @@ -1,3 +1,4 @@ #pragma once -void Discord_Register(const char* applicationId); +void Discord_Register(const char* applicationId, const char* command); +void Discord_RegisterSteamGame(const char* applicationId, const char* steamId); diff --git a/src/discord-rpc.cpp b/src/discord-rpc.cpp index 2ad7442..97a78de 100644 --- a/src/discord-rpc.cpp +++ b/src/discord-rpc.cpp @@ -208,10 +208,16 @@ bool RegisterForEvent(const char* evtName) extern "C" void Discord_Initialize(const char* applicationId, DiscordEventHandlers* handlers, - int autoRegister) + int autoRegister, + const char* optionalSteamId) { if (autoRegister) { - Discord_Register(applicationId); + if (optionalSteamId && optionalSteamId[0]) { + Discord_RegisterSteamGame(applicationId, optionalSteamId); + } + else { + Discord_Register(applicationId, nullptr); + } } Pid = GetProcessId();