switch(meter_type) {
case SMETER:
{
- if(have_rx_gain) {
- level=value+rx_gain_calibration-adc[rx->adc].attenuation;
- } else {
- level=value+(double)adc[rx->adc].attenuation;
- }
+ double offset = with_gain ? 0 : adc[rx->adc].gain;
+ if(have_rx_gain) {
+ level = value + rx_gain_calibration - adc[rx->adc].attenuation - offset;
+ } else {
+ level=value + (double)adc[rx->adc].attenuation;
+ }
#ifdef SOAPYSDR
if(protocol==SOAPYSDR_PROTOCOL) {
//level-=rx->rf_gain;
analog_meter=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
}
+static void with_gain_cb(GtkToggleButton *widget, gpointer data) {
+ with_gain = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+}
+
void meter_menu (GtkWidget *parent) {
parent_window=parent;
row++;
col=0;
+ GtkWidget *with_gain_b=gtk_check_button_new_with_label("With Gain");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (with_gain_b), with_gain);
+ gtk_grid_attach(GTK_GRID(grid),with_gain_b,col,row,1,1);
+ g_signal_connect(with_gain_b,"toggled",G_CALLBACK(with_gain_cb),NULL);
+
col++;
GtkWidget *alc_gain=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(alc_peak),"ALC Gain");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (alc_gain), alc==TXA_ALC_GAIN);