From 56dd78d734cab0b9b2b303115d4674f05cb52f9f Mon Sep 17 00:00:00 2001 From: Kendall Garner <17521368+kgarner7@users.noreply.github.com> Date: Mon, 17 Oct 2022 05:10:49 +0000 Subject: [PATCH] Add ability to control/view volume on MPRIS (#1519) --- src/main/plugins/mpris.ts | 7 +++++++ src/renderer/main/vueapp.js | 1 + 2 files changed, 8 insertions(+) diff --git a/src/main/plugins/mpris.ts b/src/main/plugins/mpris.ts index 15e08cdf..bfc0f6ef 100644 --- a/src/main/plugins/mpris.ts +++ b/src/main/plugins/mpris.ts @@ -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; }); diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index a2bf4327..dd83dd5e 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -1246,6 +1246,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);