diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index f4e8ec02c1..bb256e0e01 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -2147,6 +2147,7 @@ export class PlaybackManager { state.PlayState.IsPaused = player.paused(); state.PlayState.RepeatMode = self.getRepeatMode(player); state.PlayState.ShuffleMode = self.getQueueShuffleMode(player); + state.PlayState.OrderMode = self.getQueueShuffleMode(player); state.PlayState.MaxStreamingBitrate = self.getMaxStreamingBitrate(player); state.PlayState.PositionTicks = getCurrentTicks(player); @@ -4212,6 +4213,9 @@ export class PlaybackManager { case 'SetShuffleQueue': this.setQueueShuffleMode(cmd.Arguments.ShuffleMode, player); break; + case 'SetOrderMode': + this.setQueueShuffleMode(cmd.Arguments.OrderMode, player); + break; case 'VolumeUp': this.volumeUp(player); break; diff --git a/src/plugins/sessionPlayer/plugin.js b/src/plugins/sessionPlayer/plugin.js index 510129d7f1..05a9cb1132 100644 --- a/src/plugins/sessionPlayer/plugin.js +++ b/src/plugins/sessionPlayer/plugin.js @@ -510,17 +510,17 @@ class SessionPlayer { } getRepeatMode() { - // not supported? + return this.lastPlayerData?.PlayState?.RepeatMode; } setQueueShuffleMode(mode) { - sendCommandByName(this, 'SetShuffleQueue', { - ShuffleMode: mode + sendCommandByName(this, 'SetOrderMode', { + OrderMode: mode }); } getQueueShuffleMode() { - // not supported? + return this.lastPlayerData?.PlayState?.OrderMode; } displayContent(options) { diff --git a/src/utils/dashboard.js b/src/utils/dashboard.js index 9b468730d6..b53a7c9814 100644 --- a/src/utils/dashboard.js +++ b/src/utils/dashboard.js @@ -181,7 +181,7 @@ export function alert(options) { export function capabilities(appHost) { return Object.assign({ PlayableMediaTypes: ['Audio', 'Video'], - SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'SetShuffleQueue', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'], + SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'SetOrderMode', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'], SupportsPersistentIdentifier: window.appMode === 'cordova' || window.appMode === 'android', SupportsMediaControl: true }, appHost.getPushTokenInfo());