2023-02-08 23:57:06 -08:00
|
|
|
import { IpcRendererEvent, ipcRenderer } from 'electron';
|
2023-07-23 12:23:18 +00:00
|
|
|
import type { PlayerRepeat } from '/@/renderer/types';
|
2023-02-08 23:57:06 -08:00
|
|
|
|
|
|
|
|
const updatePosition = (timeSec: number) => {
|
2023-07-01 19:10:05 -07:00
|
|
|
ipcRenderer.send('mpris-update-position', timeSec);
|
2023-02-08 23:57:06 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const updateSeek = (timeSec: number) => {
|
2023-07-01 19:10:05 -07:00
|
|
|
ipcRenderer.send('mpris-update-seek', timeSec);
|
2023-02-08 23:57:06 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const toggleRepeat = () => {
|
2023-07-01 19:10:05 -07:00
|
|
|
ipcRenderer.send('mpris-toggle-repeat');
|
2023-02-08 23:57:06 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const toggleShuffle = () => {
|
2023-07-01 19:10:05 -07:00
|
|
|
ipcRenderer.send('mpris-toggle-shuffle');
|
2023-02-08 23:57:06 -08:00
|
|
|
};
|
|
|
|
|
|
2023-07-23 12:23:18 +00:00
|
|
|
const requestToggleRepeat = (
|
|
|
|
|
cb: (event: IpcRendererEvent, data: { repeat: PlayerRepeat }) => void,
|
|
|
|
|
) => {
|
2023-07-01 19:10:05 -07:00
|
|
|
ipcRenderer.on('mpris-request-toggle-repeat', cb);
|
2023-02-08 23:57:06 -08:00
|
|
|
};
|
|
|
|
|
|
2023-07-23 12:23:18 +00:00
|
|
|
const requestToggleShuffle = (
|
|
|
|
|
cb: (event: IpcRendererEvent, data: { shuffle: boolean }) => void,
|
|
|
|
|
) => {
|
2023-07-01 19:10:05 -07:00
|
|
|
ipcRenderer.on('mpris-request-toggle-shuffle', cb);
|
2023-02-08 23:57:06 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const mpris = {
|
2023-07-01 19:10:05 -07:00
|
|
|
requestToggleRepeat,
|
|
|
|
|
requestToggleShuffle,
|
|
|
|
|
toggleRepeat,
|
|
|
|
|
toggleShuffle,
|
|
|
|
|
updatePosition,
|
|
|
|
|
updateSeek,
|
2023-02-08 23:57:06 -08:00
|
|
|
};
|
2023-07-23 12:23:18 +00:00
|
|
|
|
|
|
|
|
export type Mpris = typeof mpris;
|