Minor player adjustments

This commit is contained in:
jeffvli 2023-02-09 00:36:55 -08:00
parent cdb5cdf442
commit 60219c2522
2 changed files with 17 additions and 2 deletions

View file

@ -41,6 +41,12 @@ ipcMain.on('player-seek-to', async (_event, time: number) => {
// Sets the queue in position 0 and 1 to the given data. Used when manually starting a song or using the next/prev buttons // Sets the queue in position 0 and 1 to the given data. Used when manually starting a song or using the next/prev buttons
ipcMain.on('player-set-queue', async (_event, data: PlayerData) => { ipcMain.on('player-set-queue', async (_event, data: PlayerData) => {
if (!data.queue.current && !data.queue.next) {
await mpv.clearPlaylist();
await mpv.pause();
return;
}
if (data.queue.current) { if (data.queue.current) {
await mpv.load(data.queue.current.streamUrl, 'replace'); await mpv.load(data.queue.current.streamUrl, 'replace');
} }
@ -48,6 +54,8 @@ ipcMain.on('player-set-queue', async (_event, data: PlayerData) => {
if (data.queue.next) { if (data.queue.next) {
await mpv.load(data.queue.next.streamUrl, 'append'); await mpv.load(data.queue.next.streamUrl, 'append');
} }
await mpv.play();
}); });
// Replaces the queue in position 1 to the given data // Replaces the queue in position 1 to the given data

View file

@ -12,9 +12,10 @@ import {
RiEraserLine, RiEraserLine,
} from 'react-icons/ri'; } from 'react-icons/ri';
import { Song } from '/@/renderer/api/types'; import { Song } from '/@/renderer/api/types';
import { useQueueControls } from '/@/renderer/store'; import { usePlayerControls, useQueueControls } from '/@/renderer/store';
import { PlaybackType, TableType } from '/@/renderer/types'; import { PlaybackType, TableType } from '/@/renderer/types';
import { usePlayerType } from '/@/renderer/store/settings.store'; import { usePlayerType } from '/@/renderer/store/settings.store';
import { useSetCurrentTime } from '../../../store/player.store';
const mpvPlayer = isElectron() ? window.electron.mpvPlayer : null; const mpvPlayer = isElectron() ? window.electron.mpvPlayer : null;
@ -27,7 +28,10 @@ export const PlayQueueListControls = ({ type, tableRef }: PlayQueueListOptionsPr
const { clearQueue, moveToBottomOfQueue, moveToTopOfQueue, shuffleQueue, removeFromQueue } = const { clearQueue, moveToBottomOfQueue, moveToTopOfQueue, shuffleQueue, removeFromQueue } =
useQueueControls(); useQueueControls();
const { pause } = usePlayerControls();
const playerType = usePlayerType(); const playerType = usePlayerType();
const setCurrentTime = useSetCurrentTime();
const handleMoveToBottom = () => { const handleMoveToBottom = () => {
const selectedRows = tableRef?.current?.grid.api.getSelectedRows(); const selectedRows = tableRef?.current?.grid.api.getSelectedRows();
@ -70,8 +74,11 @@ export const PlayQueueListControls = ({ type, tableRef }: PlayQueueListOptionsPr
if (playerType === PlaybackType.LOCAL) { if (playerType === PlaybackType.LOCAL) {
mpvPlayer.setQueue(playerData); mpvPlayer.setQueue(playerData);
mpvPlayer.stop(); mpvPlayer.pause();
} }
setCurrentTime(0);
pause();
}; };
const handleShuffleQueue = () => { const handleShuffleQueue = () => {