mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-09 20:29:36 +02:00
Merge pull request #566 from kgarner7/fix-mpv-race-and-make-consistent
[bugfix]: Resolve MPV next/prev race condition
This commit is contained in:
@@ -311,7 +311,6 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
const playerData = next();
|
const playerData = next();
|
||||||
mprisUpdateSong({ song: playerData.current.song, status: PlayerStatus.PLAYING });
|
mprisUpdateSong({ song: playerData.current.song, status: PlayerStatus.PLAYING });
|
||||||
mpvPlayer!.setQueue(playerData);
|
mpvPlayer!.setQueue(playerData);
|
||||||
mpvPlayer!.next();
|
|
||||||
},
|
},
|
||||||
web: () => {
|
web: () => {
|
||||||
const playerData = next();
|
const playerData = next();
|
||||||
@@ -324,8 +323,7 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
if (isLastTrack) {
|
if (isLastTrack) {
|
||||||
const playerData = setCurrentIndex(0);
|
const playerData = setCurrentIndex(0);
|
||||||
mprisUpdateSong({ song: playerData.current.song, status: PlayerStatus.PAUSED });
|
mprisUpdateSong({ song: playerData.current.song, status: PlayerStatus.PAUSED });
|
||||||
mpvPlayer!.setQueue(playerData);
|
mpvPlayer!.setQueue(playerData, true);
|
||||||
mpvPlayer!.pause();
|
|
||||||
pause();
|
pause();
|
||||||
} else {
|
} else {
|
||||||
const playerData = next();
|
const playerData = next();
|
||||||
@@ -334,7 +332,6 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
status: PlayerStatus.PLAYING,
|
status: PlayerStatus.PLAYING,
|
||||||
});
|
});
|
||||||
mpvPlayer!.setQueue(playerData);
|
mpvPlayer!.setQueue(playerData);
|
||||||
mpvPlayer!.next();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
web: () => {
|
web: () => {
|
||||||
@@ -359,10 +356,14 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
|
|
||||||
const handleRepeatOne = {
|
const handleRepeatOne = {
|
||||||
local: () => {
|
local: () => {
|
||||||
const playerData = next();
|
if (!isLastTrack) {
|
||||||
mprisUpdateSong({ song: playerData.current.song, status: PlayerStatus.PLAYING });
|
const playerData = next();
|
||||||
mpvPlayer!.setQueue(playerData);
|
mprisUpdateSong({
|
||||||
mpvPlayer!.next();
|
song: playerData.current.song,
|
||||||
|
status: PlayerStatus.PLAYING,
|
||||||
|
});
|
||||||
|
mpvPlayer!.setQueue(playerData);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
web: () => {
|
web: () => {
|
||||||
if (!isLastTrack) {
|
if (!isLastTrack) {
|
||||||
@@ -429,7 +430,6 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
status: PlayerStatus.PLAYING,
|
status: PlayerStatus.PLAYING,
|
||||||
});
|
});
|
||||||
mpvPlayer!.setQueue(playerData);
|
mpvPlayer!.setQueue(playerData);
|
||||||
mpvPlayer!.previous();
|
|
||||||
} else {
|
} else {
|
||||||
const playerData = setCurrentIndex(queue.length - 1);
|
const playerData = setCurrentIndex(queue.length - 1);
|
||||||
mprisUpdateSong({
|
mprisUpdateSong({
|
||||||
@@ -437,7 +437,6 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
status: PlayerStatus.PLAYING,
|
status: PlayerStatus.PLAYING,
|
||||||
});
|
});
|
||||||
mpvPlayer!.setQueue(playerData);
|
mpvPlayer!.setQueue(playerData);
|
||||||
mpvPlayer!.previous();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
web: () => {
|
web: () => {
|
||||||
@@ -461,13 +460,19 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
|
|
||||||
const handleRepeatNone = {
|
const handleRepeatNone = {
|
||||||
local: () => {
|
local: () => {
|
||||||
const playerData = previous();
|
if (isFirstTrack) {
|
||||||
remote?.updateSong({
|
const playerData = setCurrentIndex(0);
|
||||||
currentTime: usePlayerStore.getState().current.time,
|
mprisUpdateSong({ song: playerData.current.song, status: PlayerStatus.PAUSED });
|
||||||
song: playerData.current.song,
|
mpvPlayer!.setQueue(playerData, true);
|
||||||
});
|
pause();
|
||||||
mpvPlayer!.setQueue(playerData);
|
} else {
|
||||||
mpvPlayer!.previous();
|
const playerData = previous();
|
||||||
|
remote?.updateSong({
|
||||||
|
currentTime: usePlayerStore.getState().current.time,
|
||||||
|
song: playerData.current.song,
|
||||||
|
});
|
||||||
|
mpvPlayer!.setQueue(playerData);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
web: () => {
|
web: () => {
|
||||||
if (isFirstTrack) {
|
if (isFirstTrack) {
|
||||||
@@ -487,17 +492,12 @@ export const useCenterControls = (args: { playersRef: any }) => {
|
|||||||
|
|
||||||
const handleRepeatOne = {
|
const handleRepeatOne = {
|
||||||
local: () => {
|
local: () => {
|
||||||
if (!isFirstTrack) {
|
const playerData = previous();
|
||||||
const playerData = previous();
|
mprisUpdateSong({
|
||||||
mprisUpdateSong({
|
song: playerData.current.song,
|
||||||
song: playerData.current.song,
|
status: PlayerStatus.PLAYING,
|
||||||
status: PlayerStatus.PLAYING,
|
});
|
||||||
});
|
mpvPlayer!.setQueue(playerData);
|
||||||
mpvPlayer!.setQueue(playerData);
|
|
||||||
mpvPlayer!.previous();
|
|
||||||
} else {
|
|
||||||
mpvPlayer!.stop();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
web: () => {
|
web: () => {
|
||||||
const playerData = previous();
|
const playerData = previous();
|
||||||
|
|||||||
Reference in New Issue
Block a user