Merge pull request #8092 from wongcallum/remote-control-shuffle-repeat

This commit is contained in:
Bill Thornton
2026-07-31 17:19:26 -04:00
committed by GitHub
2 changed files with 11 additions and 2 deletions
@@ -2,6 +2,7 @@ import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-ite
import { ItemFilter } from '@jellyfin/sdk/lib/generated-client/models/item-filter';
import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by';
import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type';
import { PlaybackOrder } from '@jellyfin/sdk/lib/generated-client/models/playback-order';
import { PlaybackErrorCode } from '@jellyfin/sdk/lib/generated-client/models/playback-error-code';
import { getMediaInfoApi } from '@jellyfin/sdk/lib/utils/api/media-info-api';
import merge from 'lodash-es/merge';
@@ -2204,6 +2205,8 @@ export class PlaybackManager {
state.PlayState.IsPaused = player.paused();
state.PlayState.RepeatMode = self.getRepeatMode(player);
state.PlayState.ShuffleMode = self.getQueueShuffleMode(player);
// Needed for remote control because ShuffleMode doesn't exist in PlayerStateInfo from the server
state.PlayState.PlaybackOrder = state.PlayState.ShuffleMode === 'Shuffle' ? PlaybackOrder.Shuffle : PlaybackOrder.Default;
state.PlayState.MaxStreamingBitrate = self.getMaxStreamingBitrate(player);
state.PlayState.PositionTicks = getCurrentTicks(player);
+8 -2
View File
@@ -1,5 +1,7 @@
import isEqual from 'lodash-es/isEqual';
import { OutboundWebSocketMessageType, PeriodicListenerInterval } from '@jellyfin/sdk/lib/websocket';
import { PlaybackOrder } from '@jellyfin/sdk/lib/generated-client/models/playback-order';
import { RepeatMode } from '@jellyfin/sdk/lib/generated-client/models/repeat-mode';
import { playbackManager } from 'components/playback/playbackmanager';
import { PluginType } from 'constants/pluginType';
@@ -535,7 +537,9 @@ class SessionPlayer {
}
getRepeatMode() {
// not supported?
let state = this.lastPlayerData || {};
state = state.PlayState || {};
return state.RepeatMode || RepeatMode.RepeatNone;
}
setQueueShuffleMode(mode) {
@@ -545,7 +549,9 @@ class SessionPlayer {
}
getQueueShuffleMode() {
// not supported?
let state = this.lastPlayerData || {};
state = state.PlayState || {};
return state.PlaybackOrder === PlaybackOrder.Shuffle ? 'Shuffle' : 'Sorted';
}
displayContent(options) {