From a8bea8c7aa5aaa02fc9d6650ee7fbe51b882c2b4 Mon Sep 17 00:00:00 2001 From: John Melton G0ORX Date: Mon, 16 Dec 2019 21:11:21 +0000 Subject: [PATCH] Fixed Analog/Digital Meter switch. Fixed S-Meter readings for SoapySDR --- meter.c | 11 ++++++++++- meter_menu.c | 4 +--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/meter.c b/meter.c index 3dd0858..c060e6c 100644 --- a/meter.c +++ b/meter.c @@ -217,7 +217,6 @@ void meter_update(RECEIVER *rx,int meter_type,double value,double reverse,double double offset; cairo_t *cr; cr = cairo_create (meter_surface); - if(analog_meter) { cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_paint (cr); @@ -228,6 +227,11 @@ if(analog_meter) { case SMETER: { double level=value+(double)adc_attenuation[rx->adc]; +#ifdef SOAPYSDR + if(protocol==SOAPYSDR_PROTOCOL) { + level-=rx->rf_gain; + } +#endif if (filter_board == CHARLY25) { // preamp/dither encodes the preamp level if (rx->preamp) level -= 18.0; @@ -543,6 +547,11 @@ if(analog_meter) { text_location=10; offset=5.0; double level=value+(double)adc_attenuation[rx->adc]; +#ifdef SOAPYSDR + if(protocol==SOAPYSDR_PROTOCOL) { + level-=rx->rf_gain; + } +#endif if (filter_board == CHARLY25) { // preamp/dither encodes the preamp level if (rx->preamp) level -= 18.0; diff --git a/meter_menu.c b/meter_menu.c index 9b11768..7552e39 100644 --- a/meter_menu.c +++ b/meter_menu.c @@ -63,9 +63,7 @@ static void alc_meter_select_cb (GtkToggleButton *widget, gpointer data) } static void analog_cb(GtkToggleButton *widget, gpointer data) { - if(gtk_toggle_button_get_active(widget)) { - analog_meter=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); - } + analog_meter=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); } -- 2.45.2