From 91b319055f4cdbdd5c0670076ac0c0f9bb751c19 Mon Sep 17 00:00:00 2001 From: John Melton G0ORX Date: Fri, 12 Mar 2021 16:14:01 +0000 Subject: [PATCH] Consildate adc_attenuation into adc structure --- actions.c | 2 +- meter.c | 8 +- midi3.c | 2 +- new_protocol.c | 6 +- old_protocol.c | 4 +- radio.c | 198 ++++++++++++++++++++++++++++++++++++++---------- radio.h | 2 +- rigctl.c | 4 +- rx_panadapter.c | 12 +-- sliders.c | 32 ++++---- waterfall.c | 4 +- 11 files changed, 196 insertions(+), 78 deletions(-) diff --git a/actions.c b/actions.c index 9bf4ee3..4614b72 100644 --- a/actions.c +++ b/actions.c @@ -322,7 +322,7 @@ int encoder_action(void *data) { filter_shift_changed(1,a->val); break; case ENCODER_ATTENUATION: - value=(double)adc_attenuation[active_receiver->adc]; + value=(double)adc[active_receiver->adc].attenuation; value+=(double)a->val; if(have_rx_gain) { if(value<-12.0) { diff --git a/meter.c b/meter.c index dbea87a..fd48176 100644 --- a/meter.c +++ b/meter.c @@ -193,9 +193,9 @@ if(analog_meter) { case SMETER: { if(have_rx_gain) { - level=value+rx_gain_calibration-adc_attenuation[rx->adc]; + level=value+rx_gain_calibration-adc[rx->adc].attenuation; } else { - level=value+(double)adc_attenuation[rx->adc]; + level=value+(double)adc[rx->adc].attenuation; } #ifdef SOAPYSDR if(protocol==SOAPYSDR_PROTOCOL) { @@ -563,9 +563,9 @@ if(analog_meter) { text_location=10; offset=5.0; if(have_rx_gain) { - level=value+rx_gain_calibration-adc_attenuation[rx->adc]; + level=value+rx_gain_calibration-adc[rx->adc].attenuation; } else { - level=value+(double)adc_attenuation[rx->adc]; + level=value+(double)adc[rx->adc].attenuation; } #ifdef SOAPYSDR if(protocol==SOAPYSDR_PROTOCOL) { diff --git a/midi3.c b/midi3.c index 8c0f214..d7b2dd8 100644 --- a/midi3.c +++ b/midi3.c @@ -109,7 +109,7 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) { } break; case MIDI_WHEEL: - new=adc_attenuation[active_receiver->adc] + val; + new=adc[active_receiver->adc].attenuation + val; dp=malloc(sizeof(double)); *dp=(double) new; if(have_rx_gain) { diff --git a/new_protocol.c b/new_protocol.c index dfcb00e..0f8bd7d 100644 --- a/new_protocol.c +++ b/new_protocol.c @@ -1101,11 +1101,11 @@ static void new_protocol_high_priority() { high_priority_buffer_to_radio[1443]=transmitter->attenuation; high_priority_buffer_to_radio[1442]=31; } else { - high_priority_buffer_to_radio[1443]=adc_attenuation[0]; + high_priority_buffer_to_radio[1443]=adc[0].attenuation; if (diversity_enabled) { - high_priority_buffer_to_radio[1442]=adc_attenuation[0]; // DIVERSITY: ADC0 att value for ADC1 as well + high_priority_buffer_to_radio[1442]=adc[0].attenuation; // DIVERSITY: ADC0 att value for ADC1 as well } else { - high_priority_buffer_to_radio[1442]=adc_attenuation[1]; + high_priority_buffer_to_radio[1442]=adc[1].attenuation; } } diff --git a/old_protocol.c b/old_protocol.c index d8f9310..0dfa768 100644 --- a/old_protocol.c +++ b/old_protocol.c @@ -1816,9 +1816,9 @@ static int last_power=0; } else { // if diversity is enabled, use RX1 att value for RX2 if (diversity_enabled) { - output_buffer[C1]=0x20 | (adc_attenuation[receiver[0]->adc] & 0x1F); + output_buffer[C1]=0x20 | (adc[receiver[0]->adc].attenuation & 0x1F); } else { - output_buffer[C1]=0x20 | (adc_attenuation[receiver[1]->adc] & 0x1F); + output_buffer[C1]=0x20 | (adc[receiver[1]->adc].attenuation & 0x1F); } } } diff --git a/radio.c b/radio.c index 430ec31..194a038 100644 --- a/radio.c +++ b/radio.c @@ -218,7 +218,7 @@ int receivers; ADC adc[2]; DAC dac[2]; -int adc_attenuation[2]; +//int adc_attenuation[2]; int locked=0; @@ -1093,6 +1093,7 @@ void start_radio() { } #endif + /* adc_attenuation[0]=0; adc_attenuation[1]=0; @@ -1100,7 +1101,7 @@ void start_radio() { adc_attenuation[0]=14; adc_attenuation[1]=14; } - +*/ adc[0].antenna=ANTENNA_1; adc[0].filters=AUTOMATIC; adc[0].hpf=HPF_13; @@ -1108,7 +1109,11 @@ void start_radio() { adc[0].dither=FALSE; adc[0].random=FALSE; adc[0].preamp=FALSE; - adc[0].attenuation=0; + if(have_rx_gain) { + adc[0].attenuation=14; + } else { + adc[0].attenuation=0; + } #ifdef SOAPYSDR adc[0].antenna=0; if(device==SOAPYSDR_USB_DEVICE) { @@ -1133,7 +1138,11 @@ void start_radio() { adc[1].dither=FALSE; adc[1].random=FALSE; adc[1].preamp=FALSE; - adc[1].attenuation=0; + if(have_rx_gain) { + adc[0].attenuation=14; + } else { + adc[1].attenuation=0; + } #ifdef SOAPYSDR adc[1].antenna=0; if(device==SOAPYSDR_USB_DEVICE) { @@ -2099,10 +2108,12 @@ g_print("radioRestoreState: %s\n",property_path); value=getProperty("rigctl_port_base"); if(value) rigctl_port_base=atoi(value); + /* value=getProperty("adc_0_attenuation"); if(value) adc_attenuation[0]=atoi(value); value=getProperty("adc_1_attenuation"); if(value) adc_attenuation[1]=atoi(value); + */ value=getProperty("split"); if(value) split=atoi(value); @@ -2113,22 +2124,85 @@ g_print("radioRestoreState: %s\n",property_path); value=getProperty("mute_rx_while_transmitting"); if(value) mute_rx_while_transmitting=atoi(value); -#ifdef SOAPYSDR + value=getProperty("radio.adc[0].filters"); + if(value) adc[0].filters=atoi(value); + value=getProperty("radio.adc[0].hpf"); + if(value) adc[0].hpf=atoi(value); + value=getProperty("radio.adc[0].lpf"); + if(value) adc[0].lpf=atoi(value); + value=getProperty("radio.adc[0].antenna"); + if(value) adc[0].antenna=atoi(value); + value=getProperty("radio.adc[0].dither"); + if(value) adc[0].dither=atoi(value); + value=getProperty("radio.adc[0].random"); + if(value) adc[0].random=atoi(value); + value=getProperty("radio.adc[0].preamp"); + if(value) adc[0].preamp=atoi(value); + value=getProperty("radio.adc[0].attenuation"); + if(value) adc[0].attenuation=atoi(value); + value=getProperty("radio.adc[0].enable_step_attenuation"); + if(value) adc[0].enable_step_attenuation=atoi(value); + value=getProperty("radio.adc[0].gain"); + if(value) adc[0].gain=atof(value); + value=getProperty("radio.adc[0].min_gain"); + if(value) adc[0].min_gain=atof(value); + value=getProperty("radio.adc[0].max_gain"); + if(value) adc[0].max_gain=atof(value); + + +#ifdef SOAPYSDR if(device==SOAPYSDR_USB_DEVICE) { - value=getProperty("radio.adc[0].gain"); - if(value!=NULL) adc[0].gain=atoi(value); value=getProperty("radio.adc[0].agc"); - if(value!=NULL) adc[0].agc=atoi(value); - value=getProperty("radio.adc[0].antenna"); - if(value!=NULL) adc[0].antenna=atoi(value); - - value=getProperty("radio.dac[0].antenna"); - if(value!=NULL) dac[0].antenna=atoi(value); - value=getProperty("radio.dac[0].gain"); - if(value!=NULL) dac[0].gain=atoi(value); + if(value) soapy_protocol_set_automatic_gain(atoi(value)); } #endif + value=getProperty("radio.dac[0].antenna"); + if(value) dac[0].antenna=atoi(value); + value=getProperty("radio.dac[0].gain"); + if(value) dac[0].gain=atof(value); + + if(receivers>1) { + value=getProperty("radio.adc[1].filters"); + if(value) adc[1].filters=atoi(value); + value=getProperty("radio.adc[1].hpf"); + if(value) adc[1].hpf=atoi(value); + value=getProperty("radio.adc[1].lpf"); + if(value) adc[1].lpf=atoi(value); + value=getProperty("radio.adc[1].antenna"); + if(value) adc[1].antenna=atoi(value); + value=getProperty("radio.adc[1].dither"); + if(value) adc[1].dither=atoi(value); + value=getProperty("radio.adc[1].random"); + if(value) adc[1].random=atoi(value); + value=getProperty("radio.adc[1].preamp"); + if(value) adc[1].preamp=atoi(value); + value=getProperty("radio.adc[1].attenuation"); + if(value) adc[1].attenuation=atoi(value); + value=getProperty("radio.adc[1].enable_step_attenuation"); + if(value) adc[1].enable_step_attenuation=atoi(value); + value=getProperty("radio.adc[1].gain"); + if(value) adc[1].gain=atof(value); + value=getProperty("radio.adc[1].min_gain"); + if(value) adc[1].min_gain=atof(value); + value=getProperty("radio.adc[1].max_gain"); + if(value) adc[1].max_gain=atof(value); + + +#ifdef SOAPYSDR + if(device==SOAPYSDR_USB_DEVICE) { + value=getProperty("radio.adc[1].agc"); + if(value) soapy_protocol_set_automatic_gain(atoi(value)); + } +#endif + + value=getProperty("radio.dac[1].antenna"); + if(value) dac[1].antenna=atoi(value); + value=getProperty("radio.dac[1].gain"); + if(value) dac[1].gain=atof(value); + + } + #ifdef MIDI midi_restore_state(); value=getProperty("radio.midi_enabled"); @@ -2363,46 +2437,92 @@ g_print("radioSaveState: %s\n",property_path); sprintf(value,"%f",tone_level); setProperty("tone_level",value); + /* sprintf(value,"%d",adc_attenuation[0]); setProperty("adc_0_attenuation",value); sprintf(value,"%d",adc_attenuation[1]); setProperty("adc_1_attenuation",value); + */ sprintf(value,"%d",rx_gain_calibration); setProperty("rx_gain_calibration",value); -#ifdef SOAPYSDR + sprintf(value,"%d", adc[0].filters); + setProperty("radio.adc[0].filters",value); + sprintf(value,"%d", adc[0].hpf); + setProperty("radio.adc[0].hpf",value); + sprintf(value,"%d", adc[0].lpf); + setProperty("radio.adc[0].lpf",value); + sprintf(value,"%d", adc[0].antenna); + setProperty("radio.adc[0].antenna",value); + sprintf(value,"%d", adc[0].dither); + setProperty("radio.adc[0].dither",value); + sprintf(value,"%d", adc[0].random); + setProperty("radio.adc[0].random",value); + sprintf(value,"%d", adc[0].preamp); + setProperty("radio.adc[0].preamp",value); + sprintf(value,"%d", adc[0].attenuation); + setProperty("radio.adc[0].attenuation",value); + sprintf(value,"%d", adc[0].enable_step_attenuation); + setProperty("radio.adc[0].enable_step_attenuation",value); + sprintf(value,"%f", adc[0].gain); + setProperty("radio.adc[0].gain",value); + sprintf(value,"%f", adc[0].min_gain); + setProperty("radio.adc[0].min_gain",value); + sprintf(value,"%f", adc[0].max_gain); + setProperty("radio.adc[0].max_gain",value); + + +#ifdef SOAPYSDR if(device==SOAPYSDR_USB_DEVICE) { - sprintf(value,"%f", adc[0].gain); - setProperty("radio.adc[0].gain",value); sprintf(value,"%d", soapy_protocol_get_automatic_gain(receiver[0])); setProperty("radio.adc[0].agc",value); - sprintf(value,"%d", adc[0].antenna); - setProperty("radio.adc[0].antenna",value); - - sprintf(value,"%d", dac[0].antenna); - setProperty("radio.dac[0].antenna",value); - - sprintf(value,"%f", dac[0].gain); - setProperty("radio.dac[0].gain",value); + } +#endif - if(receivers>1) { - sprintf(value,"%f", adc[1].gain); - setProperty("radio.adc[1].gain",value); + sprintf(value,"%d", dac[0].antenna); + setProperty("radio.dac[0].antenna",value); + sprintf(value,"%f", dac[0].gain); + setProperty("radio.dac[0].gain",value); + + if(receivers>1) { + sprintf(value,"%d", adc[1].filters); + setProperty("radio.adc[1].filters",value); + sprintf(value,"%d", adc[1].hpf); + setProperty("radio.adc[1].hpf",value); + sprintf(value,"%d", adc[1].lpf); + setProperty("radio.adc[1].lpf",value); + sprintf(value,"%d", adc[1].antenna); + setProperty("radio.adc[1].antenna",value); + sprintf(value,"%d", adc[1].dither); + setProperty("radio.adc[1].dither",value); + sprintf(value,"%d", adc[1].random); + setProperty("radio.adc[1].random",value); + sprintf(value,"%d", adc[1].preamp); + setProperty("radio.adc[1].preamp",value); + sprintf(value,"%d", adc[1].attenuation); + setProperty("radio.adc[1].attenuation",value); + sprintf(value,"%d", adc[1].enable_step_attenuation); + setProperty("radio.adc[1].enable_step_attenuation",value); + sprintf(value,"%f", adc[1].gain); + setProperty("radio.adc[1].gain",value); + sprintf(value,"%f", adc[1].min_gain); + setProperty("radio.adc[1].min_gain",value); + sprintf(value,"%f", adc[1].max_gain); + setProperty("radio.adc[1].max_gain",value); + +#ifdef SOAPYSDR + if(device==SOAPYSDR_USB_DEVICE) { sprintf(value,"%d", soapy_protocol_get_automatic_gain(receiver[1])); setProperty("radio.adc[1].agc",value); - sprintf(value,"%d", adc[1].antenna); - setProperty("radio.adc[1].antenna",value); - - sprintf(value,"%d", dac[1].antenna); - setProperty("radio.dac[1].antenna",value); - - sprintf(value,"%f", dac[1].gain); - setProperty("radio.dac[1].gain",value); } - } #endif - + + sprintf(value,"%d", dac[1].antenna); + setProperty("radio.dac[1].antenna",value); + sprintf(value,"%f", dac[1].gain); + setProperty("radio.dac[1].gain",value); + } sprintf(value,"%d",receivers); setProperty("receivers",value); diff --git a/radio.h b/radio.h index 0f02ecb..de56307 100644 --- a/radio.h +++ b/radio.h @@ -191,7 +191,7 @@ extern int receivers; extern ADC adc[2]; extern DAC dac[2]; -extern int adc_attenuation[2]; +//extern int adc_attenuation[2]; extern int locked; diff --git a/rigctl.c b/rigctl.c index c2098bd..3cc2695 100644 --- a/rigctl.c +++ b/rigctl.c @@ -3250,10 +3250,10 @@ int parse_cmd(void *data) { if(command[2]==';') { int att=0; if(have_rx_gain) { - att=(int)(adc_attenuation[active_receiver->adc]+12); + att=(int)(adc[active_receiver->adc].attenuation+12); att=(int)(((double)att/60.0)*99.0); } else { - att=(int)(adc_attenuation[active_receiver->adc]); + att=(int)(adc[active_receiver->adc].attenuation); att=(int)(((double)att/31.0)*99.0); } sprintf(reply,"RA%02d00;",att); diff --git a/rx_panadapter.c b/rx_panadapter.c index e37141e..a0cbeaa 100644 --- a/rx_panadapter.c +++ b/rx_panadapter.c @@ -420,13 +420,13 @@ void rx_panadapter_update(RECEIVER *rx) { // agc if(rx->agc!=AGC_OFF) { - double knee_y=rx->agc_thresh+(double)adc_attenuation[rx->adc]; + double knee_y=rx->agc_thresh+(double)adc[rx->adc].attenuation; if (filter_board == ALEX && rx->adc == 0) knee_y += (double)(10*rx->alex_attenuation); knee_y = floor((rx->panadapter_high - knee_y) * (double) display_height / (rx->panadapter_high - rx->panadapter_low)); - double hang_y=rx->agc_hang+(double)adc_attenuation[rx->adc]; + double hang_y=rx->agc_hang+(double)adc[rx->adc].attenuation; if (filter_board == ALEX && rx->adc == 0) hang_y += (double)(10*rx->alex_attenuation); hang_y = floor((rx->panadapter_high - hang_y) * (double) display_height @@ -488,9 +488,9 @@ void rx_panadapter_update(RECEIVER *rx) { samples[pan]=-200.0; samples[display_width-1+pan]=-200.0; if(have_rx_gain) { - s1=(double)samples[pan]+rx_gain_calibration-adc_attenuation[rx->adc]; + s1=(double)samples[pan]+rx_gain_calibration-adc[rx->adc].attenuation; } else { - s1=(double)samples[pan]+(double)adc_attenuation[rx->adc]; + s1=(double)samples[pan]+(double)adc[rx->adc].attenuation; } cairo_move_to(cr, 0.0, s1); if (filter_board == ALEX && rx->adc == 0) s1 += (double)(10*rx->alex_attenuation); @@ -511,9 +511,9 @@ void rx_panadapter_update(RECEIVER *rx) { cairo_move_to(cr, 0.0, s1); for(i=1;iadc]; + s2=(double)samples[i+pan]+rx_gain_calibration-adc[rx->adc].attenuation; } else { - s2=(double)samples[i+pan]+(double)adc_attenuation[rx->adc]; + s2=(double)samples[i+pan]+(double)adc[rx->adc].attenuation; } if (filter_board == ALEX && rx->adc == 0) s2 += (double)(10*rx->alex_attenuation); if (filter_board == CHARLY25) { diff --git a/sliders.c b/sliders.c index 0ffef50..b8ab243 100644 --- a/sliders.c +++ b/sliders.c @@ -123,7 +123,7 @@ int sliders_active_receiver_changed(void *data) { if (filter_board == CHARLY25) { update_att_preamp(); } else { - if(attenuation_scale!=NULL) gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc_attenuation[active_receiver->adc]); + if(attenuation_scale!=NULL) gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc[active_receiver->adc].attenuation); } sliders_update(); } @@ -138,13 +138,13 @@ int scale_timeout_cb(gpointer data) { static void attenuation_value_changed_cb(GtkWidget *widget, gpointer data) { adc[active_receiver->adc].gain=gtk_range_get_value(GTK_RANGE(attenuation_scale)); - adc_attenuation[active_receiver->adc]=(int)adc[active_receiver->adc].gain; + adc[active_receiver->adc].attenuation=(int)adc[active_receiver->adc].gain; #ifdef CLIENT_SERVER if(radio_is_remote) { - send_attenuation(client_socket,active_receiver->id,(int)adc_attenuation[active_receiver->adc]); + send_attenuation(client_socket,active_receiver->id,(int)adc[active_receiver->adc].attenuation); } else { #endif - set_attenuation(adc_attenuation[active_receiver->adc]); + set_attenuation(adc[active_receiver->adc].attenuation); #ifdef CLIENT_SERVER } #endif @@ -152,13 +152,13 @@ static void attenuation_value_changed_cb(GtkWidget *widget, gpointer data) { void set_attenuation_value(double value) { g_print("%s\n",__FUNCTION__); - adc_attenuation[active_receiver->adc]=(int)value; - set_attenuation(adc_attenuation[active_receiver->adc]); + adc[active_receiver->adc].attenuation=(int)value; + set_attenuation(adc[active_receiver->adc].attenuation); if(display_sliders) { if (have_rx_gain) { - gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc_attenuation[active_receiver->adc]); + gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc[active_receiver->adc].attenuation); } else { - gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc_attenuation[active_receiver->adc]); + gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc[active_receiver->adc].attenuation); } } else { if(scale_status!=ATTENUATION) { @@ -184,7 +184,7 @@ void set_attenuation_value(double value) { attenuation_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 31.0, 1.00); } gtk_widget_set_size_request (attenuation_scale, 400, 30); - gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc_attenuation[active_receiver->adc]); + gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc[active_receiver->adc].attenuation); gtk_widget_show(attenuation_scale); gtk_container_add(GTK_CONTAINER(content),attenuation_scale); scale_timer=g_timeout_add(2000,scale_timeout_cb,NULL); @@ -192,7 +192,7 @@ void set_attenuation_value(double value) { gtk_dialog_run(GTK_DIALOG(scale_dialog)); } else { g_source_remove(scale_timer); - gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc_attenuation[active_receiver->adc]); + gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc[active_receiver->adc].attenuation); scale_timer=g_timeout_add(2000,scale_timeout_cb,NULL); } } @@ -207,10 +207,10 @@ void update_att_preamp(void) { active_receiver->alex_attenuation=0; active_receiver->preamp=0; active_receiver->dither=0; - adc_attenuation[active_receiver->adc] = 0; + adc[active_receiver->adc].attenuation = 0; } sprintf(id, "%d", active_receiver->alex_attenuation); - adc_attenuation[active_receiver->adc] = 12*active_receiver->alex_attenuation; + adc[active_receiver->adc].attenuation = 12*active_receiver->alex_attenuation; gtk_combo_box_set_active_id(GTK_COMBO_BOX(c25_att_combobox), id); sprintf(id, "%d", active_receiver->preamp + active_receiver->dither); gtk_combo_box_set_active_id(GTK_COMBO_BOX(c25_preamp_combobox), id); @@ -245,7 +245,7 @@ static void c25_att_combobox_changed(GtkWidget *widget, gpointer data) { if (active_receiver->adc == 0) { // this button is only valid for the first receiver // store attenuation, such that in meter.c the correct level is displayed - adc_attenuation[active_receiver->adc] = 12*val; + adc[active_receiver->adc].attenuation = 12*val; set_alex_attenuation(val); } else { // always show "0 dB" on the button if the second RX is active @@ -394,8 +394,6 @@ static void rf_gain_value_changed_cb(GtkWidget *widget, gpointer data) { break; #endif default: - //adc_attenuation[active_receiver->adc]=(int)adc[active_receiver->adc].gain; - //set_attenuation(adc_attenuation[active_receiver->adc]); break; } } @@ -862,7 +860,7 @@ fprintf(stderr,"sliders_init: width=%d height=%d\n", width,height); } else { #endif rf_gain_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,-12.0, 48.0, 1.0); - gtk_range_set_value (GTK_RANGE(rf_gain_scale),adc_attenuation[active_receiver->adc]); + gtk_range_set_value (GTK_RANGE(rf_gain_scale),adc[active_receiver->adc].attenuation); #ifdef SOAPYSDR } #endif @@ -878,7 +876,7 @@ fprintf(stderr,"sliders_init: width=%d height=%d\n", width,height); gtk_grid_attach(GTK_GRID(sliders),attenuation_label,6,0,1,1); attenuation_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 31.0, 1.0); gtk_widget_override_font(attenuation_scale, pango_font_description_from_string("Sans 10")); - gtk_range_set_value (GTK_RANGE(attenuation_scale),adc_attenuation[active_receiver->adc]); + gtk_range_set_value (GTK_RANGE(attenuation_scale),adc[active_receiver->adc].attenuation); gtk_range_set_increments (GTK_RANGE(attenuation_scale),1.0,1.0); gtk_widget_show(attenuation_scale); gtk_grid_attach(GTK_GRID(sliders),attenuation_scale,7,0,2,1); diff --git a/waterfall.c b/waterfall.c index 479398c..01bb5b7 100644 --- a/waterfall.c +++ b/waterfall.c @@ -183,9 +183,9 @@ void waterfall_update(RECEIVER *rx) { for(i=0;iadc]); + sample=samples[i+pan]+(float)(rx_gain_calibration-adc[rx->adc].attenuation); } else { - sample=samples[i+pan]+(float)adc_attenuation[rx->adc]; + sample=samples[i+pan]+(float)adc[rx->adc].attenuation; } average+=(int)sample; if(sample<(float)rx->waterfall_low) { -- 2.45.2