From 59a9586dbdbc6c7fc9f3ef841183f736fb07eb23 Mon Sep 17 00:00:00 2001
From: Damian Kacperski <7dami77@gmail.com>
Date: Fri, 9 Feb 2024 20:41:32 +0100
Subject: [PATCH] Add PlaybackOrder to Session state
---
.../Session/SessionManager.cs | 1 +
.../Session/GeneralCommandType.cs | 3 ++-
MediaBrowser.Model/Session/PlaybackOrder.cs | 18 ++++++++++++++++++
.../Session/PlaybackProgressInfo.cs | 6 ++++++
MediaBrowser.Model/Session/PlayerStateInfo.cs | 6 ++++++
5 files changed, 33 insertions(+), 1 deletion(-)
create mode 100644 MediaBrowser.Model/Session/PlaybackOrder.cs
diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs
index bbb3938dcf..40b3b0339e 100644
--- a/Emby.Server.Implementations/Session/SessionManager.cs
+++ b/Emby.Server.Implementations/Session/SessionManager.cs
@@ -394,6 +394,7 @@ namespace Emby.Server.Implementations.Session
session.PlayState.SubtitleStreamIndex = info.SubtitleStreamIndex;
session.PlayState.PlayMethod = info.PlayMethod;
session.PlayState.RepeatMode = info.RepeatMode;
+ session.PlayState.PlaybackOrder = info.PlaybackOrder;
session.PlaylistItemId = info.PlaylistItemId;
var nowPlayingQueue = info.NowPlayingQueue;
diff --git a/MediaBrowser.Model/Session/GeneralCommandType.cs b/MediaBrowser.Model/Session/GeneralCommandType.cs
index 166a6b4416..09339928c8 100644
--- a/MediaBrowser.Model/Session/GeneralCommandType.cs
+++ b/MediaBrowser.Model/Session/GeneralCommandType.cs
@@ -48,6 +48,7 @@ namespace MediaBrowser.Model.Session
PlayNext = 38,
ToggleOsdMenu = 39,
Play = 40,
- SetMaxStreamingBitrate = 41
+ SetMaxStreamingBitrate = 41,
+ SetPlaybackOrder = 42
}
}
diff --git a/MediaBrowser.Model/Session/PlaybackOrder.cs b/MediaBrowser.Model/Session/PlaybackOrder.cs
new file mode 100644
index 0000000000..8ef7faf14d
--- /dev/null
+++ b/MediaBrowser.Model/Session/PlaybackOrder.cs
@@ -0,0 +1,18 @@
+namespace MediaBrowser.Model.Session
+{
+ ///
+ /// Enum PlaybackOrder.
+ ///
+ public enum PlaybackOrder
+ {
+ ///
+ /// Sorted playlist.
+ ///
+ Default = 0,
+
+ ///
+ /// Shuffled playlist.
+ ///
+ Shuffle = 1
+ }
+}
diff --git a/MediaBrowser.Model/Session/PlaybackProgressInfo.cs b/MediaBrowser.Model/Session/PlaybackProgressInfo.cs
index a6e7efcb0c..04a9d68674 100644
--- a/MediaBrowser.Model/Session/PlaybackProgressInfo.cs
+++ b/MediaBrowser.Model/Session/PlaybackProgressInfo.cs
@@ -107,6 +107,12 @@ namespace MediaBrowser.Model.Session
/// The repeat mode.
public RepeatMode RepeatMode { get; set; }
+ ///
+ /// Gets or sets the playback order.
+ ///
+ /// The playback order.
+ public PlaybackOrder PlaybackOrder { get; set; }
+
public QueueItem[] NowPlayingQueue { get; set; }
public string PlaylistItemId { get; set; }
diff --git a/MediaBrowser.Model/Session/PlayerStateInfo.cs b/MediaBrowser.Model/Session/PlayerStateInfo.cs
index 80e6d4e0b0..35cd68fd15 100644
--- a/MediaBrowser.Model/Session/PlayerStateInfo.cs
+++ b/MediaBrowser.Model/Session/PlayerStateInfo.cs
@@ -65,6 +65,12 @@ namespace MediaBrowser.Model.Session
/// The repeat mode.
public RepeatMode RepeatMode { get; set; }
+ ///
+ /// Gets or sets the playback order.
+ ///
+ /// The playback order.
+ public PlaybackOrder PlaybackOrder { get; set; }
+
///
/// Gets or sets the now playing live stream identifier.
///