Ctrl K
ComunidadGuías…

src/preload/mpris.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { ipcRenderer, IpcRendererEvent } from 'electron';

import { subscribe } from './subscribe';

import { QueueSong } from '/@/shared/types/domain-types';
import { PlayerRepeat, PlayerStatus } from '/@/shared/types/types';

const updatePosition = (timeSec: number) => {
    ipcRenderer.send('update-position', timeSec);
};

const updateSeek = (timeSec: number) => {
    ipcRenderer.send('update-seek', timeSec);
};

const updateVolume = (volume: number) => {
    ipcRenderer.send('update-volume', volume);
};

const updateStatus = (status: PlayerStatus) => {
    ipcRenderer.send('update-playback', status);
};

const updateRepeat = (repeat: PlayerRepeat) => {
    ipcRenderer.send('update-repeat', repeat);
};

const updateShuffle = (shuffle: boolean) => {
    ipcRenderer.send('update-shuffle', shuffle);
};

const updateSong = (song: QueueSong | undefined, imageUrl?: null | string) => {
    ipcRenderer.send('update-song', song, imageUrl);
};

const requestSeek = (cb: (event: IpcRendererEvent, data: { offset: number }) => void) =>
    subscribe('request-seek', cb);

const requestPosition = (cb: (event: IpcRendererEvent, data: { position: number }) => void) =>
    subscribe('request-position', cb);

const requestToggleRepeat = (
    cb: (event: IpcRendererEvent, data: { repeat: PlayerRepeat }) => void,
) => subscribe('mpris-request-toggle-repeat', cb);

const requestToggleShuffle = (cb: (event: IpcRendererEvent, data: { shuffle: boolean }) => void) =>
    subscribe('mpris-request-toggle-shuffle', cb);

const requestVolume = (cb: (event: IpcRendererEvent, data: { volume: number }) => void) =>
    subscribe('request-volume', cb);

export const mpris = {
    requestPosition,
    requestSeek,
    requestToggleRepeat,
    requestToggleShuffle,
    requestVolume,
    updatePosition,
    updateRepeat,
    updateSeek,
    updateShuffle,
    updateSong,
    updateStatus,
    updateVolume,
};

export type Mpris = typeof mpris;