Add ability to control/view volume on MPRIS (#1519)

This commit is contained in:
Kendall Garner 2022-10-17 05:10:49 +00:00 committed by GitHub
parent 577bdb2458
commit 56dd78d734
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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("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("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("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) => { mpris.utils.getIPCMain().on("mpris:playbackTimeDidChange", (event: any, time: number) => {
player.getPosition = () => time; 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) => { mpris.utils.getIPCMain().on("shuffleModeDidChange", (_e: any, mode: number) => {
player.shuffle = mode === 1; player.shuffle = mode === 1;
}); });

View file

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