From 1019ed5793d495f8316217a08f408ef8aa46ca01 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Sun, 31 May 2020 21:24:07 +0200 Subject: [PATCH] fill gain input with values --- htdocs/lib/settings/Input.js | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/htdocs/lib/settings/Input.js b/htdocs/lib/settings/Input.js index 4686aac..f638257 100644 --- a/htdocs/lib/settings/Input.js +++ b/htdocs/lib/settings/Input.js @@ -75,13 +75,14 @@ SoapyGainInput.prototype.render = function(){ return '
' + '
' + g + '
' + '
' + - '' + + '' + '
' + '
'; }).join('') ); var el = $(this.bootstrapify(markup)) var setMode = function(mode){ + el.find('select').val(mode); el.find('.option').hide(); el.find('.gain-mode-' + mode).show(); }; @@ -89,7 +90,30 @@ SoapyGainInput.prototype.render = function(){ var mode = $(this).val(); setMode(mode); }); - setMode('auto'); + if (typeof(this.value) === 'number') { + setMode('single'); + el.find('.gain-mode-single input').val(this.value); + } else if (typeof(this.value) === 'string') { + if (this.value === 'auto') { + setMode('auto'); + } else { + setMode('separate'); + values = $.extend.apply($, this.value.split(',').map(function(seg){ + var split = seg.split('='); + if (split.length < 2) return; + var res = {}; + res[split[0]] = parseInt(split[1]); + return res; + })); + el.find('.gain-mode-separate input').each(function(){ + var $input = $(this); + var g = $input.data('gain'); + $input.val(g in values ? values[g] : 0); + }); + } + } else { + setMode('auto'); + } return el; };