ADC adc[2];
DAC dac[2];
-int adc_attenuation[2];
+//int adc_attenuation[2];
int locked=0;
}
#endif
+ /*
adc_attenuation[0]=0;
adc_attenuation[1]=0;
adc_attenuation[0]=14;
adc_attenuation[1]=14;
}
-
+*/
adc[0].antenna=ANTENNA_1;
adc[0].filters=AUTOMATIC;
adc[0].hpf=HPF_13;
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) {
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) {
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);
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");
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);
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();
}
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
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) {
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);
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);
}
}
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);
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
break;
#endif
default:
- //adc_attenuation[active_receiver->adc]=(int)adc[active_receiver->adc].gain;
- //set_attenuation(adc_attenuation[active_receiver->adc]);
break;
}
}
} 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
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);