]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
Fixed Analog/Digital Meter switch. Fixed S-Meter readings for SoapySDR
authorJohn Melton G0ORX <john.d.melton@googlemail.com>
Mon, 16 Dec 2019 21:11:21 +0000 (21:11 +0000)
committerJohn Melton G0ORX <john.d.melton@googlemail.com>
Mon, 16 Dec 2019 21:11:21 +0000 (21:11 +0000)
meter.c
meter_menu.c

diff --git a/meter.c b/meter.c
index 3dd0858fcb75618f3b28335cac086ca8fd3f9992..c060e6c5dfb5e85aecb324aadd5c41040dc0dfc9 100644 (file)
--- 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;
index 9b11768a46aba9aaf57f819f9211b53556c07579..7552e39c908cd83f21bf34a2fbf61876b34f586d 100644 (file)
@@ -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));
 }