Added various controls to menubar, changed volumewheel function

This commit is contained in:
Core 2022-02-07 14:31:18 +00:00
parent 0e5ecc1656
commit e468b1fa83
4 changed files with 58 additions and 27 deletions

View file

@ -26,6 +26,7 @@ export class Store {
}, },
"audio": { "audio": {
"volume": 1, "volume": 1,
"volumeStep": 0.02,
"lastVolume": 1, "lastVolume": 1,
"muted": false, "muted": false,
"quality": "HIGH", "quality": "HIGH",
@ -34,10 +35,6 @@ export class Store {
"ciderPPE": false, "ciderPPE": false,
"ciderPPE_value": 0.5, "ciderPPE_value": 0.5,
"spatial": false, "spatial": false,
"maxVolume": 1,
"volumePrecision": 0.1,
"volumeRoundMax": 0.9,
"volumeRoundMin": 0.1,
"spatial_properties": { "spatial_properties": {
"presets": [], "presets": [],
"gain": 0.8, "gain": 0.8,

View file

@ -95,6 +95,37 @@ export default class Thumbar {
} }
] ]
}, },
{
label: 'Controls',
submenu: [
{
label: 'Pause / Play',
accelerator: 'Space',
click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.playPause()`)
},
{
label: 'Next',
accelerator: 'CommandOrControl+Right',
click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.next()`)
},
{
label: 'Previous',
accelerator: 'CommandOrControl+Left',
click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`)
},
{ type: 'separator' },
{
label: 'Volume Up',
accelerator: 'CommandOrControl+Up',
click: () => this._win.webContents.executeJavaScript(`app.volumeUp()`)
},
{
label: 'Volume Down',
accelerator: 'CommandOrControl+Down',
click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`)
}
]
},
{ {
label: 'Account', label: 'Account',
submenu: [ submenu: [

View file

@ -3307,29 +3307,32 @@ const app = new Vue({
} }
}) })
}, },
checkScrollDirectionIsUp(event) {
if (event.wheelDelta) {
return event.wheelDelta > 0;
}
return event.deltaY < 0;
},
volumeUp() {
if ((app.mk.volume + app.cfg.audio.volumeStep) > 1) {
app.mk.volume = 1;
console.log('setting to 1')
} else {
console.log('volume up')
app.mk.volume += app.cfg.audio.volumeStep;
}
},
volumeDown() {
if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) {
app.mk.volume = 0;
console.log('settings to 0')
} else {
console.log('volume down')
app.mk.volume -= app.cfg.audio.volumeStep;
}
},
volumeWheel(event) { volumeWheel(event) {
if (this.cfg.audio.maxVolume < 1.0 && this.cfg.audio.maxVolume > 0.01) { app.checkScrollDirectionIsUp(event) ? app.volumeUp() : app.volumeDown()
this.cfg.audio.volumePrecision = 0.01
this.cfg.audio.volumeRoundMax = this.cfg.audio.maxVolume - 0.01
this.cfg.audio.volumeRoundMin = 0.01
}
if (event.deltaY < 0) {
if (this.mk.volume < this.cfg.audio.maxVolume) {
if (this.mk.volume <= this.cfg.audio.volumeRoundMax) {
this.mk.volume += this.cfg.audio.volumePrecision
} else {
this.mk.volume = this.cfg.audio.maxVolume
}
}
} else if (event.deltaY > 0) {
if (this.mk.volume > 0) {
if (this.mk.volume >= this.cfg.audio.volumeRoundMin) {
this.mk.volume -= this.cfg.audio.volumePrecision
} else {
this.mk.volume = 0
}
}
}
}, },
muteButtonPressed() { muteButtonPressed() {
if (this.cfg.audio.muted) { if (this.cfg.audio.muted) {

View file

@ -108,7 +108,7 @@
<div class="app-chrome-item volume display--large"> <div class="app-chrome-item volume display--large">
<button class="volume-button--small volume" @click="muteButtonPressed()" <button class="volume-button--small volume" @click="muteButtonPressed()"
:class="{'active': this.cfg.audio.volume == 0}"></button> :class="{'active': this.cfg.audio.volume == 0}"></button>
<input type="range" class="" @wheel="volumeWheel" step="0.01" min="0" :max="cfg.audio.maxVolume" <input type="range" @wheel="volumeWheel" :step="cfg.audio.volumeStep" min="0" max="1"
v-model="mk.volume" v-if="typeof mk.volume != 'undefined'" @change="checkMuteChange()"> v-model="mk.volume" v-if="typeof mk.volume != 'undefined'" @change="checkMuteChange()">
</div> </div>
<div class="app-chrome-item generic"> <div class="app-chrome-item generic">