add player autodj (#7)

This commit is contained in:
jeffvli
2025-12-07 15:04:39 -08:00
parent 4862a65b21
commit 65a7c3440b
14 changed files with 514 additions and 59 deletions
+20 -20
View File
@@ -130,6 +130,26 @@ export function calculateNextSong(
}
}
// Helper function to check if shuffle is enabled and not in priority mode
export function isShuffleEnabled(state: {
player: { queueType: PlayerQueueType; shuffle: PlayerShuffle };
queue: { shuffled: number[] };
}): boolean {
return (
state.player.shuffle === PlayerShuffle.TRACK &&
state.queue.shuffled.length > 0 &&
state.player.queueType !== PlayerQueueType.PRIORITY
);
}
// Helper function to map shuffled position to actual queue position
export function mapShuffledToQueueIndex(shuffledIndex: number, shuffled: number[]): number {
if (shuffledIndex >= 0 && shuffledIndex < shuffled.length) {
return shuffled[shuffledIndex];
}
return shuffledIndex;
}
// Helper function to add new indexes to shuffled array after current position
function addIndexesToShuffled(
shuffled: number[],
@@ -206,26 +226,6 @@ function getCombinedQueueLength(priority: string[], defaultQueue: string[]): num
return priority.length + defaultQueue.length;
}
// Helper function to check if shuffle is enabled and not in priority mode
function isShuffleEnabled(state: {
player: { queueType: PlayerQueueType; shuffle: PlayerShuffle };
queue: { shuffled: number[] };
}): boolean {
return (
state.player.shuffle === PlayerShuffle.TRACK &&
state.queue.shuffled.length > 0 &&
state.player.queueType !== PlayerQueueType.PRIORITY
);
}
// Helper function to map shuffled position to actual queue position
function mapShuffledToQueueIndex(shuffledIndex: number, shuffled: number[]): number {
if (shuffledIndex >= 0 && shuffledIndex < shuffled.length) {
return shuffled[shuffledIndex];
}
return shuffledIndex;
}
// Helper function to regenerate shuffled indexes if shuffle is enabled
function regenerateShuffledIndexesIfNeeded(state: {
player: { queueType: PlayerQueueType; shuffle: PlayerShuffle };