static void rf_gain_value_changed_cb(GtkWidget *widget, gpointer data) {
ADC *adc=(ADC *)data;
adc->gain=gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget));
-
+
if(radio->device==SOAPYSDR_USB_DEVICE) {
soapy_protocol_set_gain(receiver[0]);
}
-
-/*
- for(int i=0;i<radio->info.soapy.rx_gains;i++) {
- int value=soapy_protocol_get_gain_element(active_receiver,radio->info.soapy.rx_gain[i]);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(rx_gains[i]),(double)value);
- }
-*/
-
}
static void rx_gain_value_changed_cb(GtkWidget *widget, gpointer data) {
ADC *adc=(ADC *)data;
- int gain;
if(radio->device==SOAPYSDR_USB_DEVICE) {
- gain=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
- soapy_protocol_set_gain_element(receiver[0],(char *)gtk_widget_get_name(widget),gain);
-
+ adc->gain=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
+ soapy_protocol_set_gain_element(receiver[0],(char *)gtk_widget_get_name(widget),adc->gain);
/*
for(int i=0;i<radio->info.soapy.rx_gains;i++) {
if(strcmp(radio->info.soapy.rx_gain[i],(char *)gtk_widget_get_name(widget))==0) {
adc[0].rx_gain[i]=gain;
+ soapy_protocol_set_gain_element(receiver[0],(char *)gtk_widget_get_name(widget),gain);
break;
}
}
*/
-
}
}
static void agc_changed_cb(GtkWidget *widget, gpointer data) {
ADC *adc=(ADC *)data;
gboolean agc=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
- soapy_protocol_set_automatic_gain(receiver[0],agc);
+ soapy_protocol_set_automatic_gain(active_receiver,agc);
+ if(!agc) {
+ soapy_protocol_set_gain(active_receiver);
+ }
}
/*
vfo_encoder_divisor=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
}
+#ifdef GPIO
static void gpio_settle_value_changed_cb(GtkWidget *widget, gpointer data) {
settle_time=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
}
+#endif
/*
static void toolbar_dialog_buttons_cb(GtkWidget *widget, gpointer data) {
row=1;
GtkWidget *rit_label=gtk_label_new(NULL);
- gtk_label_set_markup(GTK_LABEL(rit_label), "<b>RIT(XIT) step (Hz):</b>");
+ gtk_label_set_markup(GTK_LABEL(rit_label), "<b>RIT/XIT step (Hz):</b>");
gtk_grid_attach(GTK_GRID(grid),rit_label,col,row,1,1);
row++;
- GtkWidget *rit_1=gtk_radio_button_new_with_label(NULL,"1(10)");
+ GtkWidget *rit_1=gtk_radio_button_new_with_label(NULL,"1/10");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rit_1), rit_increment==1);
gtk_grid_attach(GTK_GRID(grid),rit_1,col,row,1,1);
g_signal_connect(rit_1,"pressed",G_CALLBACK(rit_cb),(gpointer *)1);
row++;
- GtkWidget *rit_10=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rit_1),"10(100)");
+ GtkWidget *rit_10=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rit_1),"10/100");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rit_10), rit_increment==10);
gtk_grid_attach(GTK_GRID(grid),rit_10,col,row,1,1);
g_signal_connect(rit_10,"pressed",G_CALLBACK(rit_cb),(gpointer *)10);
row++;
- GtkWidget *rit_100=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rit_10),"100(1000)");
+ GtkWidget *rit_100=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rit_10),"100/1000");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rit_100), rit_increment==100);
gtk_grid_attach(GTK_GRID(grid),rit_100,col,row,1,1);
g_signal_connect(rit_100,"pressed",G_CALLBACK(rit_cb),(gpointer *)100);
if (filter_board == CHARLY25) {
update_att_preamp();
} else {
- gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc[active_receiver->adc].attenuation);
- }
- char title[64];
- if (have_rx_gain) {
- sprintf(title,"RX GAIN");
- } else {
- sprintf(title,"ATT (dB)");
+ if(attenuation_scale!=NULL) gtk_range_set_value (GTK_RANGE(attenuation_scale),(double)adc[active_receiver->adc].attenuation);
}
- gtk_label_set_text(GTK_LABEL(attenuation_label),title);
sliders_update();
}
return FALSE;
}
static void attenuation_value_changed_cb(GtkWidget *widget, gpointer data) {
- adc[active_receiver->adc].gain=gtk_range_get_value(GTK_RANGE(attenuation_scale));
- adc[active_receiver->adc].attenuation=(int)adc[active_receiver->adc].gain;
+ adc[active_receiver->adc].attenuation=gtk_range_get_value(GTK_RANGE(attenuation_scale));
#ifdef CLIENT_SERVER
if(radio_is_remote) {
send_attenuation(client_socket,active_receiver->id,(int)adc[active_receiver->adc].attenuation);
}
void set_attenuation_value(double value) {
+ g_print("%s\n",__FUNCTION__);
adc[active_receiver->adc].attenuation=(int)value;
set_attenuation(adc[active_receiver->adc].attenuation);
if(display_sliders) {
}
void att_type_changed(void) {
+ g_print("%s\n",__FUNCTION__);
if (filter_board == CHARLY25) {
- gtk_widget_hide(attenuation_label);
- gtk_widget_hide(attenuation_scale);
+ if(attenuation_label!=NULL) gtk_widget_hide(attenuation_label);
+ if(attenuation_scale!=NULL) gtk_widget_hide(attenuation_scale);
gtk_widget_show(c25_att_preamp_label);
gtk_widget_show(c25_att_combobox);
gtk_widget_show(c25_preamp_combobox);
gtk_widget_hide(c25_att_preamp_label);
gtk_widget_hide(c25_att_combobox);
gtk_widget_hide(c25_preamp_combobox);
- gtk_widget_show(attenuation_label);
- gtk_widget_show(attenuation_scale);
+ if(attenuation_label!=NULL) gtk_widget_show(attenuation_label);
+ if(attenuation_scale!=NULL) gtk_widget_show(attenuation_scale);
}
}
}
void set_agc_gain(int rx,double value) {
+ g_print("%s\n",__FUNCTION__);
receiver[rx]->agc_gain=value;
SetRXAAGCTop(receiver[rx]->id, receiver[rx]->agc_gain);
GetRXAAGCHangLevel(receiver[rx]->id, &receiver[rx]->agc_hang);
}
void set_af_gain(int rx,double value) {
+ g_print("%s\n",__FUNCTION__);
receiver[rx]->volume=value;
SetRXAPanelGain1 (receiver[rx]->id, receiver[rx]->volume);
if(display_sliders) {
static void rf_gain_value_changed_cb(GtkWidget *widget, gpointer data) {
adc[active_receiver->adc].gain=gtk_range_get_value(GTK_RANGE(rf_gain_scale));
+ switch(protocol) {
#ifdef SOAPYSDR
- if(protocol==SOAPYSDR_PROTOCOL) {
- soapy_protocol_set_gain(active_receiver);
- }
+ case SOAPYSDR_PROTOCOL:
+ soapy_protocol_set_gain(active_receiver);
+ break;
#endif
+ default:
+ break;
+ }
}
void update_rf_gain() {
+ //set_rf_gain(active_receiver->id,active_receiver->rf_gain);
set_rf_gain(active_receiver->id,adc[active_receiver->id].gain);
}
void set_rf_gain(int rx,double value) {
+ g_print("%s\n",__FUNCTION__);
adc[receiver[rx]->adc].gain=value;
#ifdef SOAPYSDR
if(protocol==SOAPYSDR_PROTOCOL) {
- soapy_protocol_set_gain(active_receiver);
+ soapy_protocol_set_gain(receiver[rx]);
}
#endif
if(display_sliders) {
+ //gtk_range_set_value (GTK_RANGE(attenuation_scale),receiver[rx]->rf_gain);
gtk_range_set_value (GTK_RANGE(rf_gain_scale),adc[receiver[rx]->id].gain);
} else {
if(scale_status!=RF_GAIN || scale_rx!=rx) {
GtkWidget *content=gtk_dialog_get_content_area(GTK_DIALOG(scale_dialog));
rf_gain_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.00);
gtk_widget_set_size_request (rf_gain_scale, 400, 30);
+ //gtk_range_set_value (GTK_RANGE(rf_gain_scale),receiver[rx]->rf_gain);
gtk_range_set_value (GTK_RANGE(rf_gain_scale),adc[receiver[rx]->id].gain);
gtk_widget_show(rf_gain_scale);
gtk_container_add(GTK_CONTAINER(content),rf_gain_scale);
gtk_dialog_run(GTK_DIALOG(scale_dialog));
} else {
g_source_remove(scale_timer);
+ //gtk_range_set_value (GTK_RANGE(rf_gain_scale),receiver[rx]->rf_gain);
gtk_range_set_value (GTK_RANGE(rf_gain_scale),adc[receiver[rx]->id].gain);
scale_timer=g_timeout_add(2000,scale_timeout_cb,NULL);
}
}
void set_filter_width(int rx,int width) {
+ g_print("%s\n",__FUNCTION__);
if(scale_status!=FILTER_WIDTH || scale_rx!=rx) {
if(scale_status!=NO_FUNCTION) {
g_source_remove(scale_timer);
}
void set_filter_shift(int rx,int shift) {
+ g_print("%s\n",__FUNCTION__);
if(scale_status!=FILTER_SHIFT || scale_rx!=rx) {
if(scale_status!=NO_FUNCTION) {
g_source_remove(scale_timer);
}
void set_mic_gain(double value) {
+ g_print("%s\n",__FUNCTION__);
if(can_transmit) {
mic_gain=value;
SetTXAPanelGain1(transmitter->id,pow(10.0, mic_gain/20.0));
}
void set_linein_gain(int value) {
+ g_print("%s\n",__FUNCTION__);
linein_gain=value;
if(display_sliders) {
gtk_range_set_value (GTK_RANGE(mic_gain_scale),linein_gain);
}
void set_drive(double value) {
+ g_print("%s\n",__FUNCTION__);
setDrive(value);
if(display_sliders) {
gtk_range_set_value (GTK_RANGE(drive_scale),value);
}
void set_squelch() {
+ g_print("%s\n",__FUNCTION__);
setSquelch(active_receiver);
#ifndef COMPRESSION_SLIDER_INSTEAD_OF_SQUELCH
if(display_sliders) {
}
void set_compression(TRANSMITTER* tx) {
+ g_print("%s\n",__FUNCTION__);
// Update VFO panel to reflect changed value
g_idle_add(ext_vfo_update, NULL);
#ifdef COMPRESSION_SLIDER_INSTEAD_OF_SQUELCH
}
void show_diversity_gain() {
+ g_print("%s\n",__FUNCTION__);
if(scale_status!=DIVERSITY_GAIN) {
if(scale_status!=NO_FUNCTION) {
g_source_remove(scale_timer);
}
void show_diversity_phase() {
+ g_print("%s\n",__FUNCTION__);
if(scale_status!=DIVERSITY_PHASE) {
if(scale_status!=NO_FUNCTION) {
g_source_remove(scale_timer);
gtk_grid_attach(GTK_GRID(sliders),agc_scale,4,0,2,1);
g_signal_connect(G_OBJECT(agc_scale),"value_changed",G_CALLBACK(agcgain_value_changed_cb),NULL);
- char title[64];
- if (have_rx_gain) {
- sprintf(title,"RX-GAIN:");
- } else {
- sprintf(title,"ATT (dB):");
- }
- attenuation_label=gtk_label_new(title);
- gtk_widget_override_font(attenuation_label, pango_font_description_from_string(SLIDERS_FONT));
- gtk_widget_show(attenuation_label);
- gtk_grid_attach(GTK_GRID(sliders),attenuation_label,6,0,1,1);
-
- if (have_rx_gain) {
- attenuation_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,-12.0, 48.0, 1.0);
- gtk_range_set_value (GTK_RANGE(attenuation_scale),adc[active_receiver->adc].attenuation);
+
+ if(have_rx_gain) {
+ rf_gain_label=gtk_label_new("RX-GAIN:");
+ gtk_widget_override_font(rf_gain_label, pango_font_description_from_string(SLIDERS_FONT));
+ gtk_widget_show(rf_gain_label);
+ gtk_grid_attach(GTK_GRID(sliders),rf_gain_label,6,0,1,1);
+#ifdef SOAPYSDR
+ if(protocol==SOAPYSDR_PROTOCOL) {
+ rf_gain_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,adc[0].min_gain, adc[0].max_gain, 1.0);
+ gtk_range_set_value (GTK_RANGE(rf_gain_scale),adc[0].gain);
+ } 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[active_receiver->adc].attenuation);
+#ifdef SOAPYSDR
+ }
+#endif
+ gtk_widget_override_font(rf_gain_scale, pango_font_description_from_string(SLIDERS_FONT));
+ gtk_range_set_increments (GTK_RANGE(rf_gain_scale),1.0,1.0);
+ gtk_widget_show(rf_gain_scale);
+ gtk_grid_attach(GTK_GRID(sliders),rf_gain_scale,7,0,2,1);
+ g_signal_connect(G_OBJECT(rf_gain_scale),"value_changed",G_CALLBACK(rf_gain_value_changed_cb),NULL);
} else {
- attenuation_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 31.0, 1.0);
- gtk_range_set_value (GTK_RANGE(attenuation_scale),adc[active_receiver->adc].attenuation);
+ attenuation_label=gtk_label_new("ATT (dB):");
+ gtk_widget_override_font(attenuation_label, pango_font_description_from_string(SLIDERS_FONT));
+ gtk_widget_show(attenuation_label);
+ 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(SLIDERS_FONT));
+ 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);
+ g_signal_connect(G_OBJECT(attenuation_scale),"value_changed",G_CALLBACK(attenuation_value_changed_cb),NULL);
}
- gtk_range_set_increments (GTK_RANGE(attenuation_scale),1.0,1.0);
-
- gtk_widget_override_font(attenuation_scale, pango_font_description_from_string(SLIDERS_FONT));
-
- gtk_widget_show(attenuation_scale);
- gtk_grid_attach(GTK_GRID(sliders),attenuation_scale,7,0,2,1);
- g_signal_connect(G_OBJECT(attenuation_scale),"value_changed",G_CALLBACK(attenuation_value_changed_cb),NULL);
c25_att_preamp_label = gtk_label_new("Att/PreAmp");
gtk_widget_override_font(c25_att_preamp_label, pango_font_description_from_string(SLIDERS_FONT));