From 2a9a5c68ff7a0cf84270d2ae85ae6fd23b8d52c0 Mon Sep 17 00:00:00 2001 From: Core <64542347+coredev-uk@users.noreply.github.com> Date: Wed, 13 Jul 2022 15:08:54 +0100 Subject: [PATCH] linux is cooollll --- src/main/index.ts | 4 ---- src/main/plugins/mpris.ts | 14 ++++---------- src/preload/cider-preload.js | 5 ++++- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index be6aadce..dcb407c2 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -76,10 +76,6 @@ ipcMain.on("nowPlayingItemDidChange", (_event, attributes) => { CiderPlug.callPlugins("onNowPlayingItemDidChange", attributes); }); -ipcMain.on("updatePlaybackProgress", (_event, attributes) => { - CiderPlug.callPlugins("updatePlaybackProgress", attributes); -}) - app.on("before-quit", () => { CiderPlug.callPlugins("onBeforeQuit"); console.warn(`${app.getName()} exited.`); diff --git a/src/main/plugins/mpris.ts b/src/main/plugins/mpris.ts index 1f2100d5..2dcfa64d 100644 --- a/src/main/plugins/mpris.ts +++ b/src/main/plugins/mpris.ts @@ -10,8 +10,6 @@ export default class mpris { * MPRIS Service */ private static player: Player.Player; - private static globalAttributes: any = {} - /** * Base Plugin Details (Eventually implemented into a GUI in settings) */ @@ -76,6 +74,10 @@ export default class mpris { 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')) + mpris.utils.getIPCMain().on('mpris:playbackTimeDidChange', (event: any, time: number) => { + player.getPosition = () => time; + }) + mpris.utils.getIPCMain().on('repeatModeDidChange', (_e: any, mode: number) => { switch (mode) { case 0: @@ -160,7 +162,6 @@ export default class mpris { */ @mpris.linuxOnly onPlaybackStateDidChange(attributes: any): void { - mpris.globalAttributes = attributes mpris.player.playbackStatus = attributes?.status ? Player.PLAYBACK_STATUS_PLAYING : Player.PLAYBACK_STATUS_PAUSED } @@ -170,14 +171,7 @@ export default class mpris { */ @mpris.linuxOnly onNowPlayingItemDidChange(attributes: object): void { - mpris.globalAttributes = attributes mpris.updateMetaData(attributes); } - @mpris.linuxOnly - updatePlaybackProgress(attributes: any): void { - mpris.globalAttributes = attributes - mpris.player.getPosition = () => attributes.currentPlaybackTime * 1000 * 1000; - } - } diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 54e0e26b..8afae876 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -17,10 +17,13 @@ const MusicKitInterop = { /** wsapi */ MusicKit.getInstance().addEventListener(MusicKit.Events.playbackProgressDidChange, () => { ipcRenderer.send('wsapi-updatePlaybackState', MusicKitInterop.getAttributes()); - ipcRenderer.send('updatePlaybackProgress', MusicKitInterop.getAttributes()); }); /** wsapi */ + MusicKit.getInstance().addEventListener(MusicKit.Events.playbackTimeDidChange, () => { + ipcRenderer.send('mpris:playbackTimeDidChange', (MusicKit.getInstance()?.currentPlaybackTime * 1000 * 1000 ) ?? 0); + }) + MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => { console.debug('[cider:preload] nowPlayingItemDidChange') const attributes = MusicKitInterop.getAttributes()