feishin/src/main/preload/mpris.ts

42 lines
1,001 B
TypeScript
Raw Normal View History

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