From: John Melton - G0ORX/N6LYT Date: Tue, 12 Jul 2016 15:37:17 +0000 (+0000) Subject: removed sample rate from configuration and moved to menu X-Git-Url: https://git.rkrishnan.org/pf/content/en/(%5B%5E?a=commitdiff_plain;h=a7dc29b39eb21f1d36c3659457bd0181c03a4df2;p=pihpsdr.git removed sample rate from configuration and moved to menu --- diff --git a/configure.c b/configure.c index aecdb4e..2ec820f 100644 --- a/configure.c +++ b/configure.c @@ -43,10 +43,6 @@ #define INCLUDE_GPIO #endif -static void sample_rate_cb(GtkWidget *widget, gpointer data) { - sample_rate=(int)data; -} - static void display_panadapter_cb(GtkWidget *widget, gpointer data) { display_panadapter=display_panadapter==1?0:1; } @@ -361,116 +357,37 @@ void configure(DISCOVERED* d,GtkWidget *parent) { gtk_grid_set_column_homogeneous(GTK_GRID(grid),FALSE); gtk_grid_set_row_homogeneous(GTK_GRID(grid),FALSE); - GtkWidget *sample_rate_label=gtk_label_new("Sample Rate:"); - //gtk_widget_override_font(sample_rate_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(sample_rate_label); - gtk_grid_attach(GTK_GRID(grid),sample_rate_label,0,0,1,1); - - GtkWidget *sample_rate_48=gtk_radio_button_new_with_label(NULL,"48000"); - //gtk_widget_override_font(sample_rate_48, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_48), sample_rate==48000); - gtk_widget_show(sample_rate_48); - gtk_grid_attach(GTK_GRID(grid),sample_rate_48,0,1,1,1); - g_signal_connect(sample_rate_48,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)48000); - - GtkWidget *sample_rate_96=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_48),"96000"); - //gtk_widget_override_font(sample_rate_96, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_96), sample_rate==96000); - gtk_widget_show(sample_rate_96); - gtk_grid_attach(GTK_GRID(grid),sample_rate_96,0,2,1,1); - g_signal_connect(sample_rate_96,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)96000); - - GtkWidget *sample_rate_192=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_96),"192000"); - //gtk_widget_override_font(sample_rate_192, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_192), sample_rate==192000); - gtk_widget_show(sample_rate_192); - gtk_grid_attach(GTK_GRID(grid),sample_rate_192,0,3,1,1); - g_signal_connect(sample_rate_192,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)192000); - - GtkWidget *sample_rate_384=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_192),"384000"); - //gtk_widget_override_font(sample_rate_384, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_384), sample_rate==384000); - gtk_widget_show(sample_rate_384); - gtk_grid_attach(GTK_GRID(grid),sample_rate_384,0,4,1,1); - g_signal_connect(sample_rate_384,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)384000); - - if(d->protocol==NEW_PROTOCOL -#ifdef LIMESDR - || d->protocol==LIMESDR_PROTOCOL -#endif - ) { - GtkWidget *sample_rate_768=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_384),"768000"); - //gtk_widget_override_font(sample_rate_768, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_768), sample_rate==768000); - gtk_widget_show(sample_rate_768); - gtk_grid_attach(GTK_GRID(grid),sample_rate_768,0,5,1,1); - g_signal_connect(sample_rate_768,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)768000); - - GtkWidget *sample_rate_921=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_768),"921180"); - //gtk_widget_override_font(sample_rate_921, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_921), sample_rate==921180); - gtk_widget_show(sample_rate_921); - gtk_grid_attach(GTK_GRID(grid),sample_rate_921,0,6,1,1); - g_signal_connect(sample_rate_921,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)921180); - - GtkWidget *sample_rate_1536=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_921),"1536000"); - //gtk_widget_override_font(sample_rate_1536, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_1536), sample_rate==1536000); - gtk_widget_show(sample_rate_1536); - gtk_grid_attach(GTK_GRID(grid),sample_rate_1536,0,7,1,1); - g_signal_connect(sample_rate_1536,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)1536000); - -#ifdef LIMESDR - if(d->protocol==LIMESDR_PROTOCOL) { - GtkWidget *sample_rate_1M=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_1536),"1048576"); - //gtk_widget_override_font(sample_rate_1M, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_1M), sample_rate==1048576); - gtk_widget_show(sample_rate_1M); - gtk_grid_attach(GTK_GRID(grid),sample_rate_1M,0,8,1,1); - g_signal_connect(sample_rate_1M,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)1048576); - - GtkWidget *sample_rate_2M=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_1M),"2097152"); - //gtk_widget_override_font(sample_rate_2M, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_2M), sample_rate==2097152); - gtk_widget_show(sample_rate_2M); - gtk_grid_attach(GTK_GRID(grid),sample_rate_2M,0,9,1,1); - g_signal_connect(sample_rate_2M,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)2097152); - } -#endif - } - - GtkWidget *display_label=gtk_label_new("Display:"); //gtk_widget_override_font(display_label, pango_font_description_from_string("Arial 18")); gtk_widget_show(display_label); - gtk_grid_attach(GTK_GRID(grid),display_label,0,9,1,1); + gtk_grid_attach(GTK_GRID(grid),display_label,0,0,1,1); GtkWidget *b_display_panadapter=gtk_check_button_new_with_label("Display Panadapter"); //gtk_widget_override_font(b_display_panadapter, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_panadapter), display_panadapter); gtk_widget_show(b_display_panadapter); - gtk_grid_attach(GTK_GRID(grid),b_display_panadapter,0,10,1,1); + gtk_grid_attach(GTK_GRID(grid),b_display_panadapter,0,1,1,1); g_signal_connect(b_display_panadapter,"toggled",G_CALLBACK(display_panadapter_cb),(gpointer *)NULL); GtkWidget *b_display_waterfall=gtk_check_button_new_with_label("Display Waterfall"); //gtk_widget_override_font(b_display_waterfall, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_waterfall), display_waterfall); gtk_widget_show(b_display_waterfall); - gtk_grid_attach(GTK_GRID(grid),b_display_waterfall,0,11,1,1); + gtk_grid_attach(GTK_GRID(grid),b_display_waterfall,0,2,1,1); g_signal_connect(b_display_waterfall,"toggled",G_CALLBACK(display_waterfall_cb),(gpointer *)NULL); GtkWidget *b_display_sliders=gtk_check_button_new_with_label("Display Sliders"); //gtk_widget_override_font(b_display_sliders, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_sliders), display_sliders); gtk_widget_show(b_display_sliders); - gtk_grid_attach(GTK_GRID(grid),b_display_sliders,0,12,1,1); + gtk_grid_attach(GTK_GRID(grid),b_display_sliders,0,3,1,1); g_signal_connect(b_display_sliders,"toggled",G_CALLBACK(display_sliders_cb),(gpointer *)NULL); GtkWidget *b_display_toolbar=gtk_check_button_new_with_label("Display Toolbar"); //gtk_widget_override_font(b_display_toolbar, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_toolbar), display_toolbar); gtk_widget_show(b_display_toolbar); - gtk_grid_attach(GTK_GRID(grid),b_display_toolbar,0,13,1,1); + gtk_grid_attach(GTK_GRID(grid),b_display_toolbar,0,4,1,1); g_signal_connect(b_display_toolbar,"toggled",G_CALLBACK(display_toolbar_cb),(gpointer *)NULL); gtk_container_add(GTK_CONTAINER(content),grid); diff --git a/menu.c b/menu.c index 0476888..ca88427 100644 --- a/menu.c +++ b/menu.c @@ -50,6 +50,14 @@ static GtkWidget *menu; static GtkWidget *ant_grid; static gint ant_id; +static void sample_rate_cb(GtkWidget *widget, gpointer data) { + if(protocol==ORIGINAL_PROTOCOL) { + old_protocol_new_sample_rate((int)data); + } else { + sample_rate=(int)data; + } +} + static void cw_keyer_internal_cb(GtkWidget *widget, gpointer data) { cw_keyer_internal=cw_keyer_internal==1?0:1; cw_changed(); @@ -487,38 +495,38 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, gtk_grid_attach(GTK_GRID(general_grid),vfo_divisor,1,0,1,1); g_signal_connect(vfo_divisor,"value_changed",G_CALLBACK(vfo_divisor_value_changed_cb),NULL); +#ifdef FREEDV + GtkWidget *freedv_text_label=gtk_label_new("FreeDV Text Message: "); + gtk_grid_attach(GTK_GRID(general_grid),freedv_text_label,0,1,1,1); + + GtkWidget *freedv_text=gtk_entry_new(); + gtk_entry_set_text(GTK_ENTRY(freedv_text),freedv_tx_text_data); + gtk_grid_attach(GTK_GRID(general_grid),freedv_text,1,1,1,1); + g_signal_connect(freedv_text,"changed",G_CALLBACK(freedv_text_changed_cb),NULL); +#endif if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) { GtkWidget *rx_dither_b=gtk_check_button_new_with_label("Dither"); //gtk_widget_override_font(rx_dither_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx_dither_b), rx_dither); gtk_widget_show(rx_dither_b); - gtk_grid_attach(GTK_GRID(general_grid),rx_dither_b,0,1,1,1); + gtk_grid_attach(GTK_GRID(general_grid),rx_dither_b,0,2,1,1); g_signal_connect(rx_dither_b,"toggled",G_CALLBACK(rx_dither_cb),NULL); GtkWidget *rx_random_b=gtk_check_button_new_with_label("Random"); //gtk_widget_override_font(rx_random_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx_random_b), rx_random); gtk_widget_show(rx_random_b); - gtk_grid_attach(GTK_GRID(general_grid),rx_random_b,0,2,1,1); + gtk_grid_attach(GTK_GRID(general_grid),rx_random_b,0,3,1,1); g_signal_connect(rx_random_b,"toggled",G_CALLBACK(rx_random_cb),NULL); -#ifdef FREEDV - GtkWidget *freedv_text_label=gtk_label_new("FreeDV Text Message: "); - gtk_grid_attach(GTK_GRID(general_grid),freedv_text_label,0,3,1,1); - - GtkWidget *freedv_text=gtk_entry_new(); - gtk_entry_set_text(GTK_ENTRY(freedv_text),freedv_tx_text_data); - gtk_grid_attach(GTK_GRID(general_grid),freedv_text,0,4,1,1); - g_signal_connect(freedv_text,"changed",G_CALLBACK(freedv_text_changed_cb),NULL); -#endif /* GtkWidget *rx_preamp_b=gtk_check_button_new_with_label("Preamp"); //gtk_widget_override_font(rx_preamp_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx_preamp_b), rx_preamp); gtk_widget_show(rx_preamp_b); - gtk_grid_attach(GTK_GRID(general_grid),rx_preamp_b,0,3,1,1); + gtk_grid_attach(GTK_GRID(general_grid),rx_preamp_b,0,4,1,1); g_signal_connect(rx_preamp_b,"toggled",G_CALLBACK(rx_preamp_cb),NULL); */ @@ -526,28 +534,28 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, //gtk_widget_override_font(linein_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (linein_b), mic_linein); gtk_widget_show(linein_b); - gtk_grid_attach(GTK_GRID(general_grid),linein_b,1,1,1,1); + gtk_grid_attach(GTK_GRID(general_grid),linein_b,1,2,1,1); g_signal_connect(linein_b,"toggled",G_CALLBACK(linein_cb),NULL); GtkWidget *micboost_b=gtk_check_button_new_with_label("Mic Boost"); //gtk_widget_override_font(micboost_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (micboost_b), mic_boost); gtk_widget_show(micboost_b); - gtk_grid_attach(GTK_GRID(general_grid),micboost_b,1,2,1,1); + gtk_grid_attach(GTK_GRID(general_grid),micboost_b,1,3,1,1); g_signal_connect(micboost_b,"toggled",G_CALLBACK(micboost_cb),NULL); GtkWidget *local_audio_b=gtk_check_button_new_with_label("Local Audio"); //gtk_widget_override_font(local_audio_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (local_audio_b), local_audio); gtk_widget_show(local_audio_b); - gtk_grid_attach(GTK_GRID(general_grid),local_audio_b,1,3,1,1); + gtk_grid_attach(GTK_GRID(general_grid),local_audio_b,1,4,1,1); g_signal_connect(local_audio_b,"toggled",G_CALLBACK(local_audio_cb),NULL); GtkWidget *b_toolbar_dialog_buttons=gtk_check_button_new_with_label("Buttons Display Dialog"); //gtk_widget_override_font(b_toolbar_dialog_buttons, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_toolbar_dialog_buttons), toolbar_dialog_buttons); gtk_widget_show(b_toolbar_dialog_buttons); - gtk_grid_attach(GTK_GRID(general_grid),b_toolbar_dialog_buttons,1,4,1,1); + gtk_grid_attach(GTK_GRID(general_grid),b_toolbar_dialog_buttons,1,5,1,1); g_signal_connect(b_toolbar_dialog_buttons,"toggled",G_CALLBACK(toolbar_dialog_buttons_cb),(gpointer *)NULL); if((protocol==NEW_PROTOCOL && device==NEW_DEVICE_ORION) || @@ -558,28 +566,28 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, //gtk_widget_override_font(ptt_ring_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ptt_ring_b), mic_ptt_tip_bias_ring==0); gtk_widget_show(ptt_ring_b); - gtk_grid_attach(GTK_GRID(general_grid),ptt_ring_b,1,5,1,1); + gtk_grid_attach(GTK_GRID(general_grid),ptt_ring_b,1,6,1,1); g_signal_connect(ptt_ring_b,"pressed",G_CALLBACK(ptt_ring_cb),NULL); GtkWidget *ptt_tip_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(ptt_ring_b),"PTT On Tip, Mic and Bias on Ring"); //gtk_widget_override_font(ptt_tip_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ptt_tip_b), mic_ptt_tip_bias_ring==1); gtk_widget_show(ptt_tip_b); - gtk_grid_attach(GTK_GRID(general_grid),ptt_tip_b,1,6,1,1); + gtk_grid_attach(GTK_GRID(general_grid),ptt_tip_b,1,7,1,1); g_signal_connect(ptt_tip_b,"pressed",G_CALLBACK(ptt_tip_cb),NULL); GtkWidget *ptt_b=gtk_check_button_new_with_label("PTT Enabled"); //gtk_widget_override_font(ptt_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ptt_b), mic_ptt_enabled); gtk_widget_show(ptt_b); - gtk_grid_attach(GTK_GRID(general_grid),ptt_b,1,7,1,1); + gtk_grid_attach(GTK_GRID(general_grid),ptt_b,1,8,1,1); g_signal_connect(ptt_b,"toggled",G_CALLBACK(ptt_cb),NULL); GtkWidget *bias_b=gtk_check_button_new_with_label("BIAS Enabled"); //gtk_widget_override_font(bias_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bias_b), mic_bias_enabled); gtk_widget_show(bias_b); - gtk_grid_attach(GTK_GRID(general_grid),bias_b,1,8,1,1); + gtk_grid_attach(GTK_GRID(general_grid),bias_b,1,9,1,1); g_signal_connect(bias_b,"toggled",G_CALLBACK(bias_cb),NULL); } @@ -588,13 +596,13 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, //gtk_widget_override_font(alex_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (alex_b), filter_board==ALEX); gtk_widget_show(alex_b); - gtk_grid_attach(GTK_GRID(general_grid),alex_b,2,1,1,1); + gtk_grid_attach(GTK_GRID(general_grid),alex_b,2,2,1,1); GtkWidget *apollo_b=gtk_check_button_new_with_label("APOLLO"); //gtk_widget_override_font(apollo_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (apollo_b), filter_board==APOLLO); gtk_widget_show(apollo_b); - gtk_grid_attach(GTK_GRID(general_grid),apollo_b,2,2,1,1); + gtk_grid_attach(GTK_GRID(general_grid),apollo_b,2,3,1,1); g_signal_connect(alex_b,"toggled",G_CALLBACK(alex_cb),apollo_b); g_signal_connect(apollo_b,"toggled",G_CALLBACK(apollo_cb),alex_b); @@ -603,18 +611,87 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget, //gtk_widget_override_font(apollo_tuner_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (apollo_tuner_b), apollo_tuner); gtk_widget_show(apollo_tuner_b); - gtk_grid_attach(GTK_GRID(general_grid),apollo_tuner_b,2,3,1,1); + gtk_grid_attach(GTK_GRID(general_grid),apollo_tuner_b,2,4,1,1); g_signal_connect(apollo_tuner_b,"toggled",G_CALLBACK(apollo_tuner_cb),NULL); GtkWidget *pa_b=gtk_check_button_new_with_label("PA"); //gtk_widget_override_font(pa_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pa_b), pa); gtk_widget_show(pa_b); - gtk_grid_attach(GTK_GRID(general_grid),pa_b,2,4,1,1); + gtk_grid_attach(GTK_GRID(general_grid),pa_b,2,5,1,1); g_signal_connect(pa_b,"toggled",G_CALLBACK(pa_cb),NULL); } + GtkWidget *sample_rate_label=gtk_label_new("Sample Rate:"); + //gtk_widget_override_font(sample_rate_label, pango_font_description_from_string("Arial 18")); + gtk_widget_show(sample_rate_label); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_label,0,4,1,1); + + if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) { + GtkWidget *sample_rate_48=gtk_radio_button_new_with_label(NULL,"48000"); + //gtk_widget_override_font(sample_rate_48, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_48), sample_rate==48000); + gtk_widget_show(sample_rate_48); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_48,0,5,1,1); + g_signal_connect(sample_rate_48,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)48000); + + GtkWidget *sample_rate_96=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_48),"96000"); + //gtk_widget_override_font(sample_rate_96, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_96), sample_rate==96000); + gtk_widget_show(sample_rate_96); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_96,0,6,1,1); + g_signal_connect(sample_rate_96,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)96000); + + GtkWidget *sample_rate_192=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_96),"192000"); + //gtk_widget_override_font(sample_rate_192, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_192), sample_rate==192000); + gtk_widget_show(sample_rate_192); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_192,0,7,1,1); + g_signal_connect(sample_rate_192,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)192000); + + GtkWidget *sample_rate_384=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_192),"384000"); + //gtk_widget_override_font(sample_rate_384, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_384), sample_rate==384000); + gtk_widget_show(sample_rate_384); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_384,0,8,1,1); + g_signal_connect(sample_rate_384,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)384000); + + if(protocol==NEW_PROTOCOL) { + GtkWidget *sample_rate_768=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_384),"768000"); + //gtk_widget_override_font(sample_rate_768, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_768), sample_rate==768000); + gtk_widget_show(sample_rate_768); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_768,0,9,1,1); + g_signal_connect(sample_rate_768,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)768000); + + GtkWidget *sample_rate_1536=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_768),"1536000"); + //gtk_widget_override_font(sample_rate_1536, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_1536), sample_rate==1536000); + gtk_widget_show(sample_rate_1536); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_1536,0,10,1,1); + g_signal_connect(sample_rate_1536,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)1536000); + } + } + +#ifdef LIMESDR + if(protocol==LIMESDR_PROTOCOL) { + GtkWidget *sample_rate_1M=gtk_radio_button_new_with_label(NULL,"1000000"); + //gtk_widget_override_font(sample_rate_1M, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_1M), sample_rate==1000000); + gtk_widget_show(sample_rate_1M); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_1M,0,5,1,1); + g_signal_connect(sample_rate_1M,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)1000000); + + GtkWidget *sample_rate_2M=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(sample_rate_1M),"2000000"); + //gtk_widget_override_font(sample_rate_2M, pango_font_description_from_string("Arial 18")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_rate_2M), sample_rate==2000000); + gtk_widget_show(sample_rate_2M); + gtk_grid_attach(GTK_GRID(general_grid),sample_rate_2M,0,6,1,1); + g_signal_connect(sample_rate_2M,"pressed",G_CALLBACK(sample_rate_cb),(gpointer *)2000000); + + } +#endif id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),general_grid,general_label); diff --git a/old_protocol.c b/old_protocol.c index 9da941f..38d794f 100644 --- a/old_protocol.c +++ b/old_protocol.c @@ -172,6 +172,7 @@ static int frequencyChanged=0; static sem_t frequency_changed_sem; static int metis_write(unsigned char ep,char* buffer,int length); +static void metis_restart(); static void metis_start_stop(int command); static void metis_send_buffer(char* buffer,int length); static void full_rx_buffer(); @@ -199,25 +200,7 @@ void old_protocol_stop() { running=FALSE; } -void old_protocol_init(int rx,int pixels) { - int i; - - fprintf(stderr,"old_protocol_init\n"); - - d=&discovered[selected_device]; - - //int result=sem_init(&frequency_changed_sem, 0, 1); - - if(local_audio) { - if(audio_init()!=0) { - fprintf(stderr,"audio_init failed\n"); - local_audio=0; - } - } - - receiver=rx; - display_width=pixels; - +void old_protocol_calc_buffers() { switch(sample_rate) { case 48000: output_buffer_size=OUTPUT_BUFFER_SIZE; @@ -239,6 +222,35 @@ void old_protocol_init(int rx,int pixels) { fprintf(stderr,"Invalid sample rate: %d. Defaulting to 48K.\n",sample_rate); break; } +} + +void old_protocol_new_sample_rate(int rate) { + metis_start_stop(0); + sample_rate=rate; + old_protocol_calc_buffers(); + metis_restart(); +} + +void old_protocol_init(int rx,int pixels) { + int i; + + fprintf(stderr,"old_protocol_init\n"); + + d=&discovered[selected_device]; + + //int result=sem_init(&frequency_changed_sem, 0, 1); + + if(local_audio) { + if(audio_init()!=0) { + fprintf(stderr,"audio_init failed\n"); + local_audio=0; + } + } + + receiver=rx; + display_width=pixels; + + old_protocol_calc_buffers(); start_receive_thread(); @@ -247,18 +259,7 @@ void old_protocol_init(int rx,int pixels) { output_buffer[i]=0; } - - // send commands twice - do { - ozy_send_buffer(); - } while (command!=0); - - do { - ozy_send_buffer(); - } while (command!=0); - - // start the data flowing - metis_start_stop(1); + metis_restart(); } @@ -509,9 +510,12 @@ static void process_ozy_input_buffer(char *buffer) { time(&t); gmt=gmtime(&t); - fprintf(stderr,"%s: process_ozy_input_buffer: did not find sync\n", + fprintf(stderr,"%s: process_ozy_input_buffer: did not find sync: restarting\n", asctime(gmt)); - exit(1); + + + metis_start_stop(0); + metis_restart(); } } @@ -946,6 +950,21 @@ static int metis_write(unsigned char ep,char* buffer,int length) { return length; } +static void metis_restart() { + // send commands twice + command=0; + do { + ozy_send_buffer(); + } while (command!=0); + + do { + ozy_send_buffer(); + } while (command!=0); + + // start the data flowing + metis_start_stop(1); +} + static void metis_start_stop(int command) { int i; unsigned char buffer[64]; diff --git a/old_protocol.h b/old_protocol.h index 633006b..a4f3ac6 100644 --- a/old_protocol.h +++ b/old_protocol.h @@ -20,4 +20,5 @@ #define BUFFER_SIZE 1024 void old_protocol_stop(); void old_protocol_init(int rx,int pixels); +void old_protocol_new_sample_rate(int rate); void schedule_frequency_changed(); diff --git a/pihpsdr b/pihpsdr index d3c8422..a251ed9 100755 Binary files a/pihpsdr and b/pihpsdr differ diff --git a/release/pihpsdr.tar b/release/pihpsdr.tar index 9119a1a..df79fb2 100644 Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ diff --git a/release/pihpsdr/pihpsdr b/release/pihpsdr/pihpsdr index d3c8422..a251ed9 100755 Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ