fix profile switching

This commit is contained in:
Jakob Ketterl 2020-05-02 15:07:47 +02:00
parent 6ff1b7d20a
commit 3405bc485b
3 changed files with 12 additions and 13 deletions

View File

@ -140,7 +140,8 @@ DemodulatorPanel.prototype.getDemodulator = function() {
}; };
DemodulatorPanel.prototype.startDemodulator = function() { DemodulatorPanel.prototype.startDemodulator = function() {
var params = $.extend(this.initialParams || {}, this.transformHashParams(validateHash())); if (!Modes.initComplete()) return;
var params = $.extend({}, this.initialParams || {}, this.transformHashParams(validateHash()));
this._apply(params); this._apply(params);
}; };
@ -197,14 +198,11 @@ DemodulatorPanel.prototype.updateButtons = function() {
DemodulatorPanel.prototype.setCenterFrequency = function(center_freq) { DemodulatorPanel.prototype.setCenterFrequency = function(center_freq) {
if (this.center_freq === center_freq) { if (this.center_freq === center_freq) {
return ; return;
} }
this.stopDemodulator();
this.center_freq = center_freq; this.center_freq = center_freq;
var demod = this.getDemodulator(); this.startDemodulator();
if (demod) {
this.tuneableFrequencyDisplay.setFrequency(center_freq + demod.get_offset_frequency());
}
updateHash();
}; };
$.fn.demodulatorPanel = function(){ $.fn.demodulatorPanel = function(){

View File

@ -20,13 +20,13 @@ var Modes = {
registerModePanel: function(el) { registerModePanel: function(el) {
this.panels.push(el); this.panels.push(el);
}, },
initComplete: function() {
return this.modes.length && Object.keys(this.features).length;
},
updatePanels: function() { updatePanels: function() {
var init_complete = this.modes.length && Object.keys(this.features).length;
this.panels.forEach(function(p) { this.panels.forEach(function(p) {
p.render(); p.render();
if (init_complete) { p.startDemodulator();
p.startDemodulator();
}
}); });
} }
}; };

View File

@ -745,7 +745,6 @@ function on_ws_recv(evt) {
bandwidth = config['samp_rate']; bandwidth = config['samp_rate'];
center_freq = config['center_freq']; center_freq = config['center_freq'];
$('#openwebrx-panel-receiver').demodulatorPanel().setCenterFrequency(center_freq);
fft_size = config['fft_size']; fft_size = config['fft_size'];
var audio_compression = config['audio_compression']; var audio_compression = config['audio_compression'];
audioEngine.setCompression(audio_compression); audioEngine.setCompression(audio_compression);
@ -758,7 +757,9 @@ function on_ws_recv(evt) {
updateSquelch(); updateSquelch();
waterfall_init(); waterfall_init();
$('#openwebrx-panel-receiver').demodulatorPanel().setInitialParams(initial_demodulator_params); var demodulatorPanel = $('#openwebrx-panel-receiver').demodulatorPanel();
demodulatorPanel.setInitialParams(initial_demodulator_params);
demodulatorPanel.setCenterFrequency(center_freq);
bookmarks.loadLocalBookmarks(); bookmarks.loadLocalBookmarks();
waterfall_clear(); waterfall_clear();