From 169eaa1aec3cde9d6d5882a1022e33da19438137 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 10 Feb 2018 17:28:13 +0100 Subject: [PATCH] Update Source to 0.3 --- foo_drpc/Plugin.cpp | 33 ++++++++++++++++++++------------- foo_drpc/Plugin.rc | Bin 1212 -> 1282 bytes foo_drpc/foo_drpc.vcxproj | 2 +- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/foo_drpc/Plugin.cpp b/foo_drpc/Plugin.cpp index 3a629cb..bf299b8 100644 --- a/foo_drpc/Plugin.cpp +++ b/foo_drpc/Plugin.cpp @@ -4,8 +4,8 @@ DECLARE_COMPONENT_VERSION( "foo_drpc", -"0.1", -"© 2017 - ultrasn0w"); +"0.3", +"Foobar2000 music status for Discord Rich Presence! (c) 2018 - ultrasn0w"); static initquit_factory_t foo_interface; static std::chrono::time_point lastT; @@ -37,18 +37,18 @@ void foo_drpc::on_init() play_callback::flag_on_playback_edited | play_callback::flag_on_playback_dynamic_info_track, false); - discordInit(); initDiscordPresence(); } void foo_drpc::on_quit() { + Discord_ClearPresence(); Discord_Shutdown(); static_api_ptr_t()->unregister_callback(this); } -void foo_drpc::on_playback_starting(play_control::t_track_command command, bool pause) +void foo_drpc::on_playback_starting(playback_control::t_track_command command, bool pause) { if (!connected) return; @@ -61,9 +61,12 @@ void foo_drpc::on_playback_starting(play_control::t_track_command command, bool { switch (command) { - case play_control::track_command_play: - case play_control::track_command_resume: - case play_control::track_command_settrack: + case playback_control::track_command_play: + case playback_control::track_command_next: + case playback_control::track_command_prev: + case playback_control::track_command_resume: + case playback_control::track_command_rand: + case playback_control::track_command_settrack: discordPresence.state = "Listening"; discordPresence.smallImageKey = "play"; break; @@ -79,15 +82,15 @@ void foo_drpc::on_playback_starting(play_control::t_track_command command, bool // updateDiscordPresence(); } -void foo_drpc::on_playback_stop(play_control::t_stop_reason reason) +void foo_drpc::on_playback_stop(playback_control::t_stop_reason reason) { if (!connected) return; switch (reason) { - case play_control::stop_reason_user: - case play_control::stop_reason_eof: - case play_control::stop_reason_shutting_down: + case playback_control::stop_reason_user: + case playback_control::stop_reason_eof: + case playback_control::stop_reason_shutting_down: discordPresence.state = "Stopped"; discordPresence.smallImageKey = "stop"; break; @@ -151,7 +154,7 @@ void foo_drpc::initDiscordPresence() { memset(&discordPresence, 0, sizeof(discordPresence)); discordPresence.state = "Initialized"; - discordPresence.details = "topkek"; + discordPresence.details = "Waiting ..."; discordPresence.largeImageKey = "logo"; discordPresence.smallImageKey = "stop"; // discordPresence.partyId = "party1234"; @@ -172,11 +175,15 @@ void foo_drpc::updateDiscordPresence() req = std::chrono::high_resolution_clock::now(); std::chrono::duration elapsed = req - lastT; // spam protection - if (elapsed.count() > 1.0) { + if (elapsed.count() > 0.42) { Discord_UpdatePresence(&discordPresence); lastT = std::chrono::high_resolution_clock::now(); } } +#ifdef DISCORD_DISABLE_IO_THREAD + Discord_UpdateConnection(); +#endif + Discord_RunCallbacks(); } void connectedF() diff --git a/foo_drpc/Plugin.rc b/foo_drpc/Plugin.rc index 8338325e86dee2e6ac5c723fc6ffe01a9ac05d21..5fe0e1f96d94529fbf559f788b4d1ad57d36ca75 100644 GIT binary patch delta 94 zcmdnP*~GOWgpt>nL5D$s!2m)|He^(0G~V3G_?D5=m_d)h0E8#sW>%N?V@PDkWk_XE o0xMKvNMp!n$Y+RWNMR^qC}2pQT+QsxXfgRPb0nkjWLcK^0CMmXr~m)} delta 58 zcmZqT+QYdagpt>fL5D$s!2m)|He^(0G~C?E_?D5=kU@{Z0E8zWWOipXpUlY;$!It^ HnPolzTGR|) diff --git a/foo_drpc/foo_drpc.vcxproj b/foo_drpc/foo_drpc.vcxproj index 31fc982..ae2a5d2 100644 --- a/foo_drpc/foo_drpc.vcxproj +++ b/foo_drpc/foo_drpc.vcxproj @@ -29,7 +29,7 @@ false true Unicode - v141_xp + v141