Add ability to control/view volume on MPRIS

This commit is contained in:
Kendall Garner 2022-10-16 20:04:29 -04:00
parent 4b2513330c
commit 9714bc5a91
No known key found for this signature in database
GPG key ID: 18D2767419676C87
2 changed files with 8 additions and 0 deletions

View file

@ -71,6 +71,9 @@ export default class mpris {
player.on("position", (args: { position: any }) => mpris.utils.playback.seek(args.position / 1000 / 1000));
player.on("loopStatus", (status: string) => renderer.executeJavaScript(`app.mk.repeatMode = ${loopType[status.toLowerCase()]}`));
player.on("shuffle", () => renderer.executeJavaScript("app.mk.shuffleMode = (app.mk.shuffleMode === 0) ? 1 : 0"));
player.on("volume", (volume: string) => {
renderer.executeJavaScript(`app.mk.volume = ${parseFloat(volume)}`);
});
mpris.utils.getIPCMain().on("mpris:playbackTimeDidChange", (event: any, time: number) => {
player.getPosition = () => time;
@ -90,6 +93,10 @@ export default class mpris {
}
});
mpris.utils.getIPCMain().on("mpris:volumeChange", (_e: any, volume: number) => {
player.volume = volume;
})
mpris.utils.getIPCMain().on("shuffleModeDidChange", (_e: any, mode: number) => {
player.shuffle = mode === 1;
});

View file

@ -1233,6 +1233,7 @@ const app = new Vue({
this.mk.addEventListener(MusicKit.Events.playbackVolumeDidChange, (_a) => {
this.cfg.audio.volume = this.mk.volume;
ipcRenderer.send("mpris:volumeChange", this.mk.volume);
});
this.refreshPlaylists(this.isDev);