Skip to content

Commit

Permalink
Add ugly persistent volume option
Browse files Browse the repository at this point in the history
  • Loading branch information
sergystepanov committed Feb 16, 2024
1 parent 3459c7e commit e7e2810
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 7 deletions.
8 changes: 4 additions & 4 deletions web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,16 +118,16 @@ <h1>Options</h1>

<script src="js/gui/gui.js?v=1"></script>
<script src="js/utils.js?v1"></script>
<script src="js/gui/message.js?v=1"></script>
<script src="js/gui/message.js?v=2"></script>
<script src="js/log.js?v=5"></script>
<script src="js/event/event.js?v=5"></script>
<script src="js/input/keys.js?v=3"></script>
<script src="js/settings/opts.js?v=1"></script>
<script src="js/settings/settings.js?v=3"></script>
<script src="js/settings/opts.js?v=2"></script>
<script src="js/settings/settings.js?v=4"></script>
<script src="js/env.js?v=5"></script>
<script src="js/input/input.js?v=3"></script>
<script src="js/gameList.js?v=3"></script>
<script src="js/stream/stream.js?v=3"></script>
<script src="js/stream/stream.js?v=4"></script>
<script src="js/room.js?v=3"></script>
<script src="js/network/ajax.js?v=3"></script>
<script src="js/network/socket.js?v=4"></script>
Expand Down
11 changes: 11 additions & 0 deletions web/js/gui/gui.js
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,16 @@ const gui = (() => {
el.classList.remove('hidden');
}

const inputN = (key = '', cb = () => ({}), current = 0) => {
const el = _create();
const input = _create('input');
input.type = 'number';
input.value = current;
input.onchange = event => cb(key, event.target.value);
el.append(input);
return el;
}

const hide = (el) => {
el.classList.add('hidden');
}
Expand Down Expand Up @@ -208,6 +218,7 @@ const gui = (() => {
create: _create,
fragment,
hide,
inputN,
panel,
select,
show,
Expand Down
3 changes: 2 additions & 1 deletion web/js/settings/opts.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ const opts = Object.freeze({
_VERSION: '_version',
LOG_LEVEL: 'log.level',
INPUT_KEYBOARD_MAP: 'input.keyboard.map',
MIRROR_SCREEN: 'mirror.screen'
MIRROR_SCREEN: 'mirror.screen',
VOLUME: 'volume'
});
21 changes: 19 additions & 2 deletions web/js/settings/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/
const settings = (() => {
// internal structure version
const revision = 1.2;
const revision = 1.3;

// default settings
// keep them for revert to defaults option
Expand Down Expand Up @@ -347,6 +347,13 @@ settings._renderrer = (() => {
// the main display data holder element
const data = document.getElementById('settings-data');

let sx, sy = 0;

data.addEventListener("scroll", event => {
sx = data.scrollTop;
sy = data.scrollLeft;
}, {passive: true});

// a fast way to clear data holder.
const clearData = () => {
while (data.firstChild) data.removeChild(data.firstChild)
Expand Down Expand Up @@ -428,7 +435,11 @@ settings._renderrer = (() => {
* @param newValue A new value to set.
* @param oldValue An old value to use somehow if needed.
*/
const onChange = (key, newValue, oldValue) => settings.set(key, newValue);
const onChange = (key, newValue, oldValue) => {
settings.set(key, newValue);
data.scrollTop = sx;
data.scrollLeft = sy;
}

const onKeyBindingChange = (key, oldValue) => {
clearData();
Expand Down Expand Up @@ -467,6 +478,12 @@ settings._renderrer = (() => {
.add(gui.select(k, onChange, {values: ['mirror']}, value))
.build();
break;
case opts.VOLUME:
_option(data).withName('Volume (%)')
.add(gui.inputN(k, onChange, value))
.restartNeeded()
.build()
break;
default:
_option(data).withName(k).add(value).build();
}
Expand Down
1 change: 1 addition & 0 deletions web/js/stream/stream.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ const stream = (() => {

const init = () => {
options.mirrorMode = settings.loadOr(opts.MIRROR_SCREEN, 'none');
options.volume = settings.loadOr(opts.VOLUME, 50) / 100;
}

event.sub(SETTINGS_CHANGED, () => {
Expand Down

0 comments on commit e7e2810

Please sign in to comment.