From 5601f7612420190b534363af6e2bf5e9a5552397 Mon Sep 17 00:00:00 2001 From: glax Date: Thu, 22 Feb 2024 05:51:14 +0100 Subject: [PATCH] Better playbackstate --- DiscordMediaRP/DisMediaRP.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/DiscordMediaRP/DisMediaRP.cs b/DiscordMediaRP/DisMediaRP.cs index 7747c83..6c12f91 100644 --- a/DiscordMediaRP/DisMediaRP.cs +++ b/DiscordMediaRP/DisMediaRP.cs @@ -138,9 +138,20 @@ public class DisMediaRP : IDisposable if (timelineProperties.LastUpdatedTime < DateTimeOffset.UnixEpoch) return; + + GlobalSystemMediaTransportControlsSessionPlaybackInfo playbackInfo = + mediaSession.ControlSession.GetPlaybackInfo(); - this._currentStatus.Timestamps = new Timestamps(DateTime.Now.Subtract(timelineProperties.Position), - DateTime.Now.Add(timelineProperties.EndTime - timelineProperties.Position)); + string? repeatMode = playbackInfo.AutoRepeatMode switch + { + MediaPlaybackAutoRepeatMode.Track => "\ud83d\udd02", + MediaPlaybackAutoRepeatMode.List => "\ud83d\udd01", + _ => null + }; + + string? shuffle = (playbackInfo.IsShuffleActive ?? false) ? "\ud83d\udd00" : null; + + this._currentStatus.State = string.Join(' ', repeatMode, shuffle, $"{timelineProperties.Position.ToString(@"hh\:mm\:ss")}/{timelineProperties.EndTime.ToString(@"hh\:mm\:ss")}"); this._discordRpcClient.SetPresence(this._currentStatus); }