Add keyboard shortcuts for adjusting volume
* Ctrl + Down decreases, Ctrl + Up increases in 5 % increments. * The volume slider value gets rounded up / down to the nearest increment if it isn't exactly at one of the increments.
This commit is contained in:
@@ -69,6 +69,9 @@ _LMS_ supports lyrics in `lrc` files, `txt` files, and embedded track metadata.
|
|||||||
* Play/pause: <kbd>Space</kbd>
|
* Play/pause: <kbd>Space</kbd>
|
||||||
* Previous track: <kbd>Ctrl</kbd> + <kbd>Left</kbd>
|
* Previous track: <kbd>Ctrl</kbd> + <kbd>Left</kbd>
|
||||||
* Next track: <kbd>Ctrl</kbd> + <kbd>Right</kbd>
|
* Next track: <kbd>Ctrl</kbd> + <kbd>Right</kbd>
|
||||||
|
* Decrease volume: <kbd>Ctrl</kbd> + <kbd>Down</kbd>
|
||||||
|
* Increase volume: <kbd>Ctrl</kbd> + <kbd>Up</kbd>
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
See [INSTALL.md](INSTALL.md) file.
|
See [INSTALL.md](INSTALL.md) file.
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ const Mode = {
|
|||||||
}
|
}
|
||||||
Object.freeze(Mode);
|
Object.freeze(Mode);
|
||||||
|
|
||||||
|
// How much to increase / decrease volume when adjusting it with keyboard shortcuts
|
||||||
|
const volumeStepAmount = 0.05;
|
||||||
|
|
||||||
LMS.mediaplayer = function () {
|
LMS.mediaplayer = function () {
|
||||||
let _root = {};
|
let _root = {};
|
||||||
let _elems = {};
|
let _elems = {};
|
||||||
@@ -199,6 +202,20 @@ LMS.mediaplayer = function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let _stepVolumeDown = function() {
|
||||||
|
let currentVolume = _elems.audio.volume;
|
||||||
|
let remainder = (currentVolume * 10) % (volumeStepAmount * 10);
|
||||||
|
let newVolume = remainder === 0 ? currentVolume - volumeStepAmount : currentVolume - (remainder / 10);
|
||||||
|
_setVolume(Math.max(newVolume, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
let _stepVolumeUp = function() {
|
||||||
|
let currentVolume = _elems.audio.volume;
|
||||||
|
let remainder = (currentVolume * 10) % (volumeStepAmount * 10);
|
||||||
|
let newVolume = remainder === 0 ? currentVolume + volumeStepAmount : currentVolume + (volumeStepAmount - (remainder / 10));
|
||||||
|
_setVolume(Math.min(newVolume, 1));
|
||||||
|
}
|
||||||
|
|
||||||
let _setReplayGain = function (replayGain) {
|
let _setReplayGain = function (replayGain) {
|
||||||
_gainNode.gain.value = Math.pow(10, (_settings.replayGain.preAmpGain + replayGain) / 20);
|
_gainNode.gain.value = Math.pow(10, (_settings.replayGain.preAmpGain + replayGain) / 20);
|
||||||
}
|
}
|
||||||
@@ -337,6 +354,14 @@ LMS.mediaplayer = function () {
|
|||||||
_playNext();
|
_playNext();
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
|
else if (event.ctrlKey && event.keyCode == 40) {
|
||||||
|
_stepVolumeDown();
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
else if (event.ctrlKey && event.keyCode == 38) {
|
||||||
|
_stepVolumeUp();
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (handled)
|
if (handled)
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
Reference in New Issue
Block a user