YesPlayMusic/packages/web/ipcRenderer.ts
2022-05-12 02:45:43 +08:00

40 lines
736 B
TypeScript

import { player } from '@/web/store'
import {
IpcChannels,
IpcChannelsReturns,
IpcChannelsParams,
} from '@/shared/IpcChannels'
const on = <T extends keyof IpcChannelsParams>(
channel: T,
listener: (event: any, params: IpcChannelsReturns[T]) => void
) => {
window.ipcRenderer?.on(channel, listener)
}
export function ipcRenderer() {
on(IpcChannels.Play, () => {
player.play(true)
})
on(IpcChannels.Pause, () => {
player.pause(true)
})
on(IpcChannels.PlayOrPause, () => {
player.playOrPause()
})
on(IpcChannels.Next, () => {
player.nextTrack()
})
on(IpcChannels.Previous, () => {
player.prevTrack()
})
on(IpcChannels.Repeat, (e, mode) => {
player.repeatMode = mode
})
}