handle player stop on queue clear

This commit is contained in:
jeffvli
2025-12-13 00:15:20 -08:00
parent 1ac267fa99
commit a546a4d57b
5 changed files with 38 additions and 0 deletions
@@ -13,6 +13,7 @@ import {
subscribePlayerSpeed,
subscribePlayerStatus,
subscribePlayerVolume,
subscribeQueueCleared,
} from '/@/renderer/store';
import { LibraryItem, QueueData, QueueSong, Song } from '/@/shared/types/domain-types';
import { PlayerRepeat, PlayerShuffle, PlayerStatus } from '/@/shared/types/types';
@@ -46,6 +47,7 @@ interface PlayerEventsCallbacks {
onPlayerSpeed?: (properties: { speed: number }, prev: { speed: number }) => void;
onPlayerStatus?: (properties: { status: PlayerStatus }, prev: { status: PlayerStatus }) => void;
onPlayerVolume?: (properties: { volume: number }, prev: { volume: number }) => void;
onQueueCleared?: () => void;
onQueueRestored?: (properties: { data: Song[]; index: number; position: number }) => void;
onUserFavorite?: (properties: {
favorite: boolean;
@@ -99,6 +101,12 @@ function createPlayerEvents(callbacks: PlayerEventsCallbacks): PlayerEvents {
unsubscribers.push(unsubscribe);
}
// Subscribe to queue cleared events
if (callbacks.onQueueCleared) {
const unsubscribe = subscribeQueueCleared(callbacks.onQueueCleared);
unsubscribers.push(unsubscribe);
}
// Subscribe to seek events
if (callbacks.onPlayerSeekToTimestamp) {
const unsubscribe = subscribePlayerSeekToTimestamp(callbacks.onPlayerSeekToTimestamp);