Fixed the thumbar and added icons and thumbar to build resources

Big brain me forgot it was status not state.
This commit is contained in:
Core 2022-02-02 11:11:30 +00:00
parent 1587b2fc26
commit 8da0ebed97
8 changed files with 30 additions and 35 deletions

View file

@ -119,8 +119,8 @@
"extends": null, "extends": null,
"files": [ "files": [
"./build/**/*", "./build/**/*",
"./resources/icons/icon.*", "./src/**/*",
"./src/**/*" "./resources/icons/**/*"
], ],
"linux": { "linux": {
"target": [ "target": [

View file

@ -85,19 +85,19 @@ export class utils {
*/ */
static playback = { static playback = {
pause: () => { pause: () => {
bw.win.webContents.send("MusicKitInterop.pause()") bw.win.webContents.executeJavaScript("MusicKitInterop.pause()")
}, },
play: () => { play: () => {
bw.win.webContents.send("MusicKitInterop.play()") bw.win.webContents.executeJavaScript("MusicKitInterop.play()")
}, },
playPause: () => { playPause: () => {
bw.win.webContents.send("MusicKitInterop.playPause()") bw.win.webContents.executeJavaScript("MusicKitInterop.playPause()")
}, },
next: () => { next: () => {
bw.win.webContents.send("MusicKitInterop.next()") bw.win.webContents.executeJavaScript("MusicKitInterop.next()")
}, },
previous: () => { previous: () => {
bw.win.webContents.send("MusicKitInterop.previous()") bw.win.webContents.executeJavaScript("MusicKitInterop.previous()")
} }
} }
} }

View file

@ -41,7 +41,7 @@ export default class ExamplePlugin {
/** /**
* Runs on playback State Change * Runs on playback State Change
* @param attributes Music Attributes (attributes.state = current state) * @param attributes Music Attributes (attributes.status = current state)
*/ */
onPlaybackStateDidChange(attributes: object): void { onPlaybackStateDidChange(attributes: object): void {
console.log('onPlaybackStateDidChange has been called ' + i + ' times'); console.log('onPlaybackStateDidChange has been called ' + i + ' times');

View file

@ -24,7 +24,7 @@ export default class sendSongToTitlebar {
onBeforeQuit(): void {} onBeforeQuit(): void {}
/** /**
* Runs on playback State Change * Runs on playback State Change
* @param attributes Music Attributes (attributes.state = current state) * @param attributes Music Attributes (attributes.status = current state)
*/ */
onPlaybackStateDidChange(attributes: any): void { onPlaybackStateDidChange(attributes: any): void {
this._win.setTitle(`${(attributes != null && attributes.name != null && attributes.name.length > 0) ? (attributes.name + " - ") : ''}Cider`) this._win.setTitle(`${(attributes != null && attributes.name != null && attributes.name.length > 0) ? (attributes.name + " - ") : ''}Cider`)

View file

@ -183,7 +183,7 @@ export default class DiscordRichPresence {
/** /**
* Runs on playback State Change * Runs on playback State Change
* @param attributes Music Attributes (attributes.state = current state) * @param attributes Music Attributes (attributes.status = current state)
*/ */
onPlaybackStateDidChange(attributes: object): void { onPlaybackStateDidChange(attributes: object): void {
this.updateActivity(attributes) this.updateActivity(attributes)

View file

@ -231,7 +231,7 @@ export default class LastFMPlugin {
/** /**
* Runs on playback State Change * Runs on playback State Change
* @param attributes Music Attributes (attributes.state = current state) * @param attributes Music Attributes (attributes.status = current state)
*/ */
onPlaybackStateDidChange(attributes: object): void { onPlaybackStateDidChange(attributes: object): void {
this.scrobbleSong(attributes) this.scrobbleSong(attributes)

View file

@ -179,7 +179,7 @@ export default class MPRIS {
/** /**
* Runs on playback State Change * Runs on playback State Change
* @param attributes Music Attributes (attributes.state = current state) * @param attributes Music Attributes (attributes.status = current state)
*/ */
onPlaybackStateDidChange(attributes: object): void { onPlaybackStateDidChange(attributes: object): void {
this.updatePlayerState(attributes) this.updatePlayerState(attributes)

View file

@ -21,27 +21,16 @@ export default class Thumbar {
* Thumbnail Toolbar Assets * Thumbnail Toolbar Assets
*/ */
private icons: { pause: Electron.NativeImage, play: Electron.NativeImage, next: Electron.NativeImage, previous: Electron.NativeImage } = { private icons: { pause: Electron.NativeImage, play: Electron.NativeImage, next: Electron.NativeImage, previous: Electron.NativeImage } = {
pause: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'dark' : 'light'}_pause.png`)).resize({width: 32, height: 32}), pause: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_pause.png`)),
play: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'dark' : 'light'}_play.png`)).resize({width: 32, height: 32}), play: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_play.png`)),
next: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'dark' : 'light'}_next.png`)).resize({width: 32, height: 32}), next: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_next.png`)),
previous: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'dark' : 'light'}_previous.png`)).resize({width: 32, height: 32}), previous: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_previous.png`)),
} }
/******************************************************************************************* /*******************************************************************************************
* Private Methods * Private Methods
* ****************************************************************************************/ * ****************************************************************************************/
/**
* Runs a media event
* @param type - pausePlay, nextTrack, PreviousTrack
* @private
*/
private runMediaEvent(type: string) {
if (this._win) {
this._win.webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error)
}
}
/** /**
* Blocks non-windows systems from running this plugin * Blocks non-windows systems from running this plugin
* @private * @private
@ -60,28 +49,33 @@ export default class Thumbar {
*/ */
@Thumbar.windowsOnly @Thumbar.windowsOnly
private updateButtons(attributes: any) { private updateButtons(attributes: any) {
const runMediaEvent = this.runMediaEvent;
console.log(attributes)
if (!attributes) {
return
}
const buttons = [ const buttons = [
{ {
tooltip: 'Previous', tooltip: 'Previous',
icon: this.icons.previous, icon: this.icons.previous,
click() { click() {
runMediaEvent('previous') utils.playback.previous()
} }
}, },
{ {
tooltip: this._app.media.status ? 'Pause' : 'Play', tooltip: attributes.status ? 'Pause' : 'Play',
icon: attributes.state ? this.icons.pause : this.icons.play, icon: attributes.status ? this.icons.pause : this.icons.play,
click() { click() {
runMediaEvent('playPause') utils.playback.playPause()
} }
}, },
{ {
tooltip: 'Next', tooltip: 'Next',
icon: this.icons.next, icon: this.icons.next,
click() { click() {
runMediaEvent('nextTrack') utils.playback.next()
} }
} }
]; ];
@ -108,7 +102,7 @@ export default class Thumbar {
/** /**
* Runs on app ready * Runs on app ready
*/ */
onReady(win: any): void { onReady(win: Electron.BrowserWindow): void {
this._win = win; this._win = win;
console.debug(`[Plugin][${this.name}] Ready.`); console.debug(`[Plugin][${this.name}] Ready.`);
} }
@ -122,7 +116,7 @@ export default class Thumbar {
/** /**
* Runs on playback State Change * Runs on playback State Change
* @param attributes Music Attributes (attributes.state = current state) * @param attributes Music Attributes (attributes.status = current state)
*/ */
onPlaybackStateDidChange(attributes: object): void { onPlaybackStateDidChange(attributes: object): void {
this.updateButtons(attributes) this.updateButtons(attributes)
@ -133,6 +127,7 @@ export default class Thumbar {
* @param attributes Music Attributes * @param attributes Music Attributes
*/ */
onNowPlayingItemDidChange(attributes: object): void { onNowPlayingItemDidChange(attributes: object): void {
this.updateButtons(attributes)
} }
} }