remove waterfall queueing
This commit is contained in:
parent
b80fd9c023
commit
2e394dc2cb
@ -49,8 +49,6 @@ var fft_compression="none";
|
|||||||
var fft_codec=new sdrjs.ImaAdpcm();
|
var fft_codec=new sdrjs.ImaAdpcm();
|
||||||
var audio_compression="none";
|
var audio_compression="none";
|
||||||
var waterfall_setup_done=0;
|
var waterfall_setup_done=0;
|
||||||
var waterfall_queue = [];
|
|
||||||
var waterfall_timer;
|
|
||||||
var secondary_fft_size;
|
var secondary_fft_size;
|
||||||
var audio_allowed;
|
var audio_allowed;
|
||||||
|
|
||||||
@ -1289,14 +1287,14 @@ function on_ws_recv(evt)
|
|||||||
case 1:
|
case 1:
|
||||||
// FFT data
|
// FFT data
|
||||||
if (fft_compression=="none") {
|
if (fft_compression=="none") {
|
||||||
waterfall_add_queue(new Float32Array(data));
|
waterfall_add(new Float32Array(data));
|
||||||
} else if (fft_compression == "adpcm") {
|
} else if (fft_compression == "adpcm") {
|
||||||
fft_codec.reset();
|
fft_codec.reset();
|
||||||
|
|
||||||
var waterfall_i16=fft_codec.decode(new Uint8Array(data));
|
var waterfall_i16=fft_codec.decode(new Uint8Array(data));
|
||||||
var waterfall_f32=new Float32Array(waterfall_i16.length-COMPRESS_FFT_PAD_N);
|
var waterfall_f32=new Float32Array(waterfall_i16.length-COMPRESS_FFT_PAD_N);
|
||||||
for(var i=0;i<waterfall_i16.length;i++) waterfall_f32[i]=waterfall_i16[i+COMPRESS_FFT_PAD_N]/100;
|
for(var i=0;i<waterfall_i16.length;i++) waterfall_f32[i]=waterfall_i16[i+COMPRESS_FFT_PAD_N]/100;
|
||||||
waterfall_add_queue(waterfall_f32);
|
waterfall_add(waterfall_f32);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@ -1315,14 +1313,14 @@ function on_ws_recv(evt)
|
|||||||
case 3:
|
case 3:
|
||||||
// secondary FFT
|
// secondary FFT
|
||||||
if (fft_compression == "none") {
|
if (fft_compression == "none") {
|
||||||
secondary_demod_waterfall_add_queue(new Float32Array(data));
|
secondary_demod_waterfall_add(new Float32Array(data));
|
||||||
} else if (fft_compression == "adpcm") {
|
} else if (fft_compression == "adpcm") {
|
||||||
fft_codec.reset();
|
fft_codec.reset();
|
||||||
|
|
||||||
var waterfall_i16=fft_codec.decode(new Uint8Array(data));
|
var waterfall_i16=fft_codec.decode(new Uint8Array(data));
|
||||||
var waterfall_f32=new Float32Array(waterfall_i16.length-COMPRESS_FFT_PAD_N);
|
var waterfall_f32=new Float32Array(waterfall_i16.length-COMPRESS_FFT_PAD_N);
|
||||||
for(var i=0;i<waterfall_i16.length;i++) waterfall_f32[i]=waterfall_i16[i+COMPRESS_FFT_PAD_N]/100;
|
for(var i=0;i<waterfall_i16.length;i++) waterfall_f32[i]=waterfall_i16[i+COMPRESS_FFT_PAD_N]/100;
|
||||||
secondary_demod_waterfall_add_queue(waterfall_f32); //TODO digimodes
|
secondary_demod_waterfall_add(waterfall_f32); //TODO digimodes
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@ -1726,24 +1724,6 @@ function waterfall_measure_minmax_print()
|
|||||||
console.log("Waterfall | min = "+waterfall_measure_minmax_min.toString()+" dB | max = "+waterfall_measure_minmax_max.toString()+" dB");
|
console.log("Waterfall | min = "+waterfall_measure_minmax_min.toString()+" dB | max = "+waterfall_measure_minmax_max.toString()+" dB");
|
||||||
}
|
}
|
||||||
|
|
||||||
function waterfall_add_queue(what)
|
|
||||||
{
|
|
||||||
if(waterfall_measure_minmax) waterfall_measure_minmax_do(what);
|
|
||||||
if(waterfall_measure_minmax_now) { waterfall_measure_minmax_do(what); waterfall_measure_minmax_now=false; waterfallColorsAuto(); }
|
|
||||||
waterfall_queue.push(what);
|
|
||||||
}
|
|
||||||
|
|
||||||
function waterfall_dequeue()
|
|
||||||
{
|
|
||||||
if(waterfall_queue.length) waterfall_add(waterfall_queue.shift());
|
|
||||||
if(waterfall_queue.length>Math.max(fft_fps/2,20)) //in case of emergency
|
|
||||||
{
|
|
||||||
console.log("waterfall queue length:", waterfall_queue.length);
|
|
||||||
add_problem("fft overflow");
|
|
||||||
while(waterfall_queue.length) waterfall_add(waterfall_queue.shift());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function on_ws_opened()
|
function on_ws_opened()
|
||||||
{
|
{
|
||||||
ws.send("SERVER DE CLIENT client=openwebrx.js type=receiver");
|
ws.send("SERVER DE CLIENT client=openwebrx.js type=receiver");
|
||||||
@ -2278,7 +2258,6 @@ function resize_canvases(zoom)
|
|||||||
function waterfall_init()
|
function waterfall_init()
|
||||||
{
|
{
|
||||||
init_canvas_container();
|
init_canvas_container();
|
||||||
waterfall_timer = window.setInterval(()=>{waterfall_dequeue(); secondary_demod_waterfall_dequeue();},900/fft_fps);
|
|
||||||
resize_waterfall_container(false); /* then */ resize_canvases();
|
resize_waterfall_container(false); /* then */ resize_canvases();
|
||||||
scale_setup();
|
scale_setup();
|
||||||
mkzoomlevels();
|
mkzoomlevels();
|
||||||
@ -2328,6 +2307,13 @@ function waterfall_add(data)
|
|||||||
if(!waterfall_setup_done) return;
|
if(!waterfall_setup_done) return;
|
||||||
var w=fft_size;
|
var w=fft_size;
|
||||||
|
|
||||||
|
if(waterfall_measure_minmax) waterfall_measure_minmax_do(data);
|
||||||
|
if(waterfall_measure_minmax_now) {
|
||||||
|
waterfall_measure_minmax_do(data);
|
||||||
|
waterfall_measure_minmax_now=false;
|
||||||
|
waterfallColorsAuto();
|
||||||
|
}
|
||||||
|
|
||||||
//waterfall_shift();
|
//waterfall_shift();
|
||||||
// ==== do scaling if required ====
|
// ==== do scaling if required ====
|
||||||
/*if(waterfall_dont_scale)
|
/*if(waterfall_dont_scale)
|
||||||
@ -2937,7 +2923,6 @@ function demodulator_analog_replace_last() { demodulator_analog_replace(last_ana
|
|||||||
|
|
||||||
secondary_demod = false;
|
secondary_demod = false;
|
||||||
secondary_demod_offset_freq = 0;
|
secondary_demod_offset_freq = 0;
|
||||||
secondary_demod_waterfall_queue = [];
|
|
||||||
|
|
||||||
function demodulator_digital_replace_last()
|
function demodulator_digital_replace_last()
|
||||||
{
|
{
|
||||||
@ -3057,12 +3042,6 @@ function secondary_demod_stop()
|
|||||||
{
|
{
|
||||||
ws.send(JSON.stringify({"type":"dspcontrol","params":{"secondary_mod":false}}));
|
ws.send(JSON.stringify({"type":"dspcontrol","params":{"secondary_mod":false}}));
|
||||||
secondary_demod = false;
|
secondary_demod = false;
|
||||||
secondary_demod_waterfall_queue = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
function secondary_demod_waterfall_add_queue(x)
|
|
||||||
{
|
|
||||||
secondary_demod_waterfall_queue.push(x);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function secondary_demod_push_binary_data(x)
|
function secondary_demod_push_binary_data(x)
|
||||||
@ -3125,17 +3104,6 @@ function secondary_demod_waterfall_add(data)
|
|||||||
|
|
||||||
var secondary_demod_canvases_initialized = false;
|
var secondary_demod_canvases_initialized = false;
|
||||||
|
|
||||||
function secondary_demod_waterfall_dequeue()
|
|
||||||
{
|
|
||||||
if(!secondary_demod || !secondary_demod_canvases_initialized) return;
|
|
||||||
if(secondary_demod_waterfall_queue.length) secondary_demod_waterfall_add(secondary_demod_waterfall_queue.shift());
|
|
||||||
if(secondary_demod_waterfall_queue.length>Math.max(fft_fps/2,20)) //in case of fft overflow
|
|
||||||
{
|
|
||||||
console.log("secondary waterfall overflow, queue length:", secondary_demod_waterfall_queue.length);
|
|
||||||
while(secondary_demod_waterfall_queue.length) secondary_demod_waterfall_add(secondary_demod_waterfall_queue.shift());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
secondary_demod_listbox_updating = false;
|
secondary_demod_listbox_updating = false;
|
||||||
function secondary_demod_listbox_changed()
|
function secondary_demod_listbox_changed()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user