From: John Melton - G0ORX/N6LYT Date: Tue, 22 Nov 2016 17:47:55 +0000 (+0000) Subject: save/restor panadapter fill. save/restore agc hang time. changed layout of discovery. X-Git-Url: https://git.rkrishnan.org/pf/frontends/...?a=commitdiff_plain;h=376371f7d1e4db3c789fb6b381a94c785967bc1b;p=pihpsdr.git save/restor panadapter fill. save/restore agc hang time. changed layout of discovery. --- diff --git a/band.c b/band.c index 4d7d2b4..7b00195 100644 --- a/band.c +++ b/band.c @@ -246,9 +246,9 @@ BAND_LIMITS bandLimits[NUM_BAND_LIMITS] = { /* ----------------------------------------------------------------------------*/ BANDSTACK_ENTRY bandstack_entries_xvtr_0[] = - {{0LL,modeUSB,filterF6,150,2550,150,2550}}; + {{144000000LL,modeUSB,filterF6,150,2550,150,2550}}; BANDSTACK_ENTRY bandstack_entries_xvtr_1[] = - {{0LL,modeUSB,filterF6,150,2550,150,2550}}; + {{430000000LL,modeUSB,filterF6,150,2550,150,2550}}; BANDSTACK_ENTRY bandstack_entries_xvtr_2[] = {{0LL,modeUSB,filterF6,150,2550,150,2550}}; BANDSTACK_ENTRY bandstack_entries_xvtr_3[] = @@ -271,9 +271,9 @@ BANDSTACK bandstack_xvtr_5={1,1,bandstack_entries_xvtr_5}; BANDSTACK bandstack_xvtr_6={1,1,bandstack_entries_xvtr_6}; BANDSTACK bandstack_xvtr_7={1,1,bandstack_entries_xvtr_7}; -static XVTR_ENTRY xvtr[XVTRS]= - {{"",&bandstack_xvtr_0,0x00,0x00,0,0,0,0,0.0,0LL,0LL,0LL}, - {"",&bandstack_xvtr_1,0x00,0x00,0,0,0,0,0.0,0LL,0LL,0LL}, +static XVTR xvtrs[XVTRS]= + {{"144",&bandstack_xvtr_0,0x00,0x00,0,0,0,0,0.0,144000000LL,146000000LL,116000000LL}, + {"430",&bandstack_xvtr_1,0x00,0x00,0,0,0,0,0.0,430000000LL,432000000LL,402000000LL}, {"",&bandstack_xvtr_2,0x00,0x00,0,0,0,0,0.0,0LL,0LL,0LL}, {"",&bandstack_xvtr_3,0x00,0x00,0,0,0,0,0.0,0LL,0LL,0LL}, {"",&bandstack_xvtr_4,0x00,0x00,0,0,0,0,0.0,0LL,0LL,0LL}, @@ -328,6 +328,10 @@ BAND *band_set_current(int b) { return &bands[b]; } +XVTR* band_get_xvtr(int b) { + XVTR* xvtr=&xvtrs[b]; + return xvtr; +} void bandSaveState() { char name[128]; diff --git a/band.h b/band.h index 6512504..cf28845 100644 --- a/band.h +++ b/band.h @@ -22,6 +22,7 @@ #include #include "bandstack.h" +#include "xvtr.h" #define band160 0 #define band80 1 @@ -84,7 +85,6 @@ struct _BAND { typedef struct _BAND BAND; int band; -int xvtr_band; gboolean displayHF; int band_get_current(); @@ -98,8 +98,6 @@ BANDSTACK_ENTRY *bandstack_entry_get_current(); BAND_LIMITS* getBandLimits(long long minDisplay,long long maxDisplay); -/* -XVTR_ENTRY* getXvtrEntry(int i); -*/ +XVTR* getXvtr(int i); #endif diff --git a/main.c b/main.c index e585fc7..fbcb638 100644 --- a/main.c +++ b/main.c @@ -94,8 +94,6 @@ static gint save_timer_id; static float *samples; -static int start=0; - static GtkWidget *discovery_dialog; static sem_t wisdom_sem; @@ -103,6 +101,8 @@ static sem_t wisdom_sem; static GdkCursor *cursor_arrow; static GdkCursor *cursor_watch; +static GdkWindow *splash_window; + static GtkWidget *window; static GtkWidget *grid; static GtkWidget *fixed; @@ -119,6 +119,11 @@ static GtkWidget *psk; static GtkWidget *psk_waterfall; #endif +static DISCOVERED* d; + +static void start_radio(); +static void discover_devices(); + gint update(gpointer data) { int result; double fwd; @@ -275,10 +280,6 @@ gint update(gpointer data) { } } -/* -fprintf(stderr,"alex_forward_power=%d alex_reverse_power=%d exciter_power=%d fwd=%f rev=%f exciter=%f\n", - alex_forward_power, alex_reverse_power, exciter_power, fwd, rev, exciter); -*/ meter_update(POWER,fwd,rev,exciter,alc); } @@ -290,14 +291,6 @@ static gint save_cb(gpointer data) { return TRUE; } -static void start_cb(GtkWidget *widget, gpointer data) { -fprintf(stderr,"start_cb: %p\n",data); - radio=(DISCOVERED *)data; - start=1; - gtk_widget_destroy(discovery_dialog); -} - - static pthread_t wisdom_thread_id; static void* wisdom_thread(void *arg) { @@ -327,49 +320,34 @@ gboolean main_delete (GtkWidget *widget) { _exit(0); } -gint init(void* arg) { - - gint x; - gint y; - - DISCOVERED* d; - - char *res; - char wisdom_directory[1024]; - char wisdom_file[1024]; - - fprintf(stderr,"init\n"); - - audio_get_cards(0); - audio_get_cards(1); +static gboolean start_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { +fprintf(stderr,"start_cb: %p\n",data); + radio=(DISCOVERED *)data; + gtk_widget_destroy(discovery_dialog); + start_radio(); + return TRUE; +} - cursor_arrow=gdk_cursor_new(GDK_ARROW); - cursor_watch=gdk_cursor_new(GDK_WATCH); +static gboolean gpio_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { + configure_gpio(discovery_dialog); + return TRUE; +} - GdkWindow *gdk_splash_window = gtk_widget_get_window(splash_window); - gdk_window_set_cursor(gdk_splash_window,cursor_watch); +static gboolean discover_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { + gtk_widget_destroy(discovery_dialog); + discover_devices(); + return TRUE; +} - init_radio(); +static gboolean exit_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { + gtk_widget_destroy(discovery_dialog); + _exit(0); + return TRUE; +} - // check if wisdom file exists - res=getcwd(wisdom_directory, sizeof(wisdom_directory)); - strcpy(&wisdom_directory[strlen(wisdom_directory)],"/"); - strcpy(wisdom_file,wisdom_directory); - strcpy(&wisdom_file[strlen(wisdom_file)],"wdspWisdom"); - splash_status("Checking FFTW Wisdom file ..."); - if(access(wisdom_file,F_OK)<0) { - int rc=sem_init(&wisdom_sem, 0, 0); - rc=pthread_create(&wisdom_thread_id, NULL, wisdom_thread, (void *)wisdom_directory); - while(sem_trywait(&wisdom_sem)<0) { - splash_status(wisdom_get_status()); - while (gtk_events_pending ()) - gtk_main_iteration (); - usleep(100000); // 100ms - } - } +static void discover_devices() { - while(!start) { - gdk_window_set_cursor(gdk_splash_window,cursor_watch); + gdk_window_set_cursor(splash_window,cursor_watch); selected_device=0; devices=0; splash_status("Old Protocol ... Discovering Devices"); @@ -382,10 +360,10 @@ gint init(void* arg) { #endif splash_status("Discovery"); if(devices==0) { - gdk_window_set_cursor(gdk_splash_window,cursor_arrow); + gdk_window_set_cursor(splash_window,cursor_arrow); fprintf(stderr,"No devices found!\n"); GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT; - discovery_dialog = gtk_message_dialog_new (GTK_WINDOW(splash_window), + discovery_dialog = gtk_message_dialog_new (GTK_WINDOW(splash_screen), flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK_CANCEL, @@ -397,8 +375,9 @@ gint init(void* arg) { _exit(0); } } else { - fprintf(stderr,"%s: found %d devices.\n", (char *)arg, devices); - gdk_window_set_cursor(gdk_splash_window,cursor_arrow); + //fprintf(stderr,"%s: found %d devices.\n", (char *)arg, devices); + gdk_window_set_cursor(splash_window,cursor_arrow); +/* GtkDialogFlags flags=GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT; discovery_dialog = gtk_dialog_new_with_buttons ("Discovered", GTK_WINDOW(splash_window), @@ -412,8 +391,21 @@ gint init(void* arg) { "Exit", GTK_RESPONSE_CLOSE, NULL); +*/ + + discovery_dialog = gtk_dialog_new(); + gtk_window_set_transient_for(GTK_WINDOW(discovery_dialog),GTK_WINDOW(splash_screen)); + gtk_window_set_decorated(GTK_WINDOW(discovery_dialog),FALSE); + + gtk_widget_override_font(discovery_dialog, pango_font_description_from_string("FreeMono 16")); + + GdkRGBA color; + color.red = 1.0; + color.green = 1.0; + color.blue = 1.0; + color.alpha = 1.0; + gtk_widget_override_background_color(discovery_dialog,GTK_STATE_FLAG_NORMAL,&color); - gtk_widget_override_font(discovery_dialog, pango_font_description_from_string("FreeMono 18")); GtkWidget *content; content=gtk_dialog_get_content_area(GTK_DIALOG(discovery_dialog)); @@ -478,7 +470,7 @@ fprintf(stderr,"%p protocol=%d name=%s\n",d,d->protocol,d->name); gtk_widget_override_font(start_button, pango_font_description_from_string("FreeMono 18")); gtk_widget_show(start_button); gtk_grid_attach(GTK_GRID(grid),start_button,3,i,1,1); - g_signal_connect(start_button,"pressed",G_CALLBACK(start_cb),(gpointer)d); + g_signal_connect(start_button,"button_press_event",G_CALLBACK(start_cb),(gpointer)d); // if not available then cannot start it if(d->status!=STATE_AVAILABLE) { @@ -494,35 +486,33 @@ fprintf(stderr,"%p protocol=%d name=%s\n",d,d->protocol,d->name); } + GtkWidget *gpio_b=gtk_button_new_with_label("Config GPIO"); + g_signal_connect (gpio_b, "button-press-event", G_CALLBACK(gpio_cb), NULL); + gtk_grid_attach(GTK_GRID(grid),gpio_b,0,i,1,1); + + GtkWidget *discover_b=gtk_button_new_with_label("Discover"); + g_signal_connect (discover_b, "button-press-event", G_CALLBACK(discover_cb), NULL); + gtk_grid_attach(GTK_GRID(grid),discover_b,1,i,1,1); + + GtkWidget *exit_b=gtk_button_new_with_label("Exit"); + g_signal_connect (exit_b, "button-press-event", G_CALLBACK(exit_cb), NULL); + gtk_grid_attach(GTK_GRID(grid),exit_b,2,i,1,1); + + gtk_container_add (GTK_CONTAINER (content), grid); gtk_widget_show_all(discovery_dialog); - gint result=gtk_dialog_run(GTK_DIALOG(discovery_dialog)); - - if(result==GTK_RESPONSE_CLOSE) { - _exit(0); - } - - if(!start) { - gtk_widget_destroy(discovery_dialog); - } -#ifdef GPIO - if(result==GTK_RESPONSE_YES) { - configure_gpio(splash_window); - } -#endif } - } +} - gdk_window_set_cursor(gdk_splash_window,cursor_watch); +static void start_radio() { + int y; +fprintf(stderr,"start: selected radio=%p device=%d\n",radio,radio->device); + gdk_window_set_cursor(splash_window,cursor_watch); splash_status("Initializing wdsp ..."); - -fprintf(stderr,"selected radio=%p device=%d\n",radio,radio->device); - protocol=radio->protocol; device=radio->device; - switch(radio->protocol) { case ORIGINAL_PROTOCOL: case NEW_PROTOCOL: @@ -715,7 +705,6 @@ fprintf(stderr,"toolbar_height=%d\n",TOOLBAR_HEIGHT); g_idle_add(vfo_update,(gpointer)NULL); - return 0; } #ifdef PSK @@ -854,10 +843,47 @@ fprintf(stderr,"reconfigure_display: toolbar_init: width:%d height:%d\n",display } -int -main (int argc, - char *argv[]) -{ +gint init(void* arg) { + char *res; + char wisdom_directory[1024]; + char wisdom_file[1024]; + + fprintf(stderr,"init\n"); + + audio_get_cards(0); + audio_get_cards(1); + + cursor_arrow=gdk_cursor_new(GDK_ARROW); + cursor_watch=gdk_cursor_new(GDK_WATCH); + + splash_window = gtk_widget_get_window(splash_screen); + gdk_window_set_cursor(splash_window,cursor_watch); + + init_radio(); + + // check if wisdom file exists + res=getcwd(wisdom_directory, sizeof(wisdom_directory)); + strcpy(&wisdom_directory[strlen(wisdom_directory)],"/"); + strcpy(wisdom_file,wisdom_directory); + strcpy(&wisdom_file[strlen(wisdom_file)],"wdspWisdom"); + splash_status("Checking FFTW Wisdom file ..."); + if(access(wisdom_file,F_OK)<0) { + int rc=sem_init(&wisdom_sem, 0, 0); + rc=pthread_create(&wisdom_thread_id, NULL, wisdom_thread, (void *)wisdom_directory); + while(sem_trywait(&wisdom_sem)<0) { + splash_status(wisdom_get_status()); + while (gtk_events_pending ()) + gtk_main_iteration (); + usleep(100000); // 100ms + } + } + + discover_devices(); + + return 0; +} + +int main (int argc, char *argv[]) { gtk_init (&argc, &argv); fprintf(stderr,"Build: %s %s\n",build_date,build_version); diff --git a/menu.c b/menu.c deleted file mode 100644 index 376ba58..0000000 --- a/menu.c +++ /dev/null @@ -1,1804 +0,0 @@ -/* Copyright (C) -* 2015 - John Melton, G0ORX/N6LYT -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* -*/ - -#include -#include -#include -#include - -#include "agc.h" -#include "audio.h" -#include "band.h" -#include "bandstack.h" -#include "channel.h" -#include "discovered.h" -#include "filter.h" -#include "mode.h" -#include "new_protocol.h" -#include "radio.h" -#include "toolbar.h" -#include "version.h" -#include "wdsp.h" -#ifdef FREEDV -#include "freedv.h" -#endif - -static GtkWidget *parent_window; - -static GtkWidget *h_box; -static GtkWidget *v_box_1; -static GtkWidget *v_box_2; -static GtkWidget *menu_b; -static GtkWidget *ctun_b; -static GtkWidget *rit_b; -static GtkWidget *rit_plus_b; -static GtkWidget *rit_minus_b; -static gint rit_timer; - -static GtkWidget *ant_grid; -static gint ant_id=-1; - -static gboolean rit_enabled=FALSE; - -static void set_button_text_color(GtkWidget *widget,char *color) { - GtkStyleContext *style_context; - GtkCssProvider *provider = gtk_css_provider_new (); - gchar tmp[64]; - style_context = gtk_widget_get_style_context(widget); - gtk_style_context_add_provider(style_context, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - g_snprintf(tmp, sizeof tmp, "GtkButton, GtkLabel { color: %s; }", color); - gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(provider), tmp, -1, NULL); - g_object_unref (provider); -} - -static void agc_hang_threshold_value_changed_cb(GtkWidget *widget, gpointer data) { - agc_hang_threshold=(int)gtk_range_get_value(GTK_RANGE(widget)); - if(agc==AGC_LONG || agc==AGC_SLOW) { - SetRXAAGCHangThreshold(CHANNEL_RX0, (int)agc_hang_threshold); - } -} - -static void display_panadapter_cb(GtkWidget *widget, gpointer data) { - display_panadapter=display_panadapter==1?0:1; - reconfigure_display(); -} - -static void display_waterfall_cb(GtkWidget *widget, gpointer data) { - display_waterfall=display_waterfall==1?0:1; - reconfigure_display(); -} - -static void display_sliders_cb(GtkWidget *widget, gpointer data) { - display_sliders=display_sliders==1?0:1; - reconfigure_display(); -} - -static void display_toolbar_cb(GtkWidget *widget, gpointer data) { - display_toolbar=display_toolbar==1?0:1; - reconfigure_display(); -} - -static void sample_rate_cb(GtkWidget *widget, gpointer data) { - if(protocol==ORIGINAL_PROTOCOL) { - old_protocol_new_sample_rate((int)data); - } else { - new_protocol_new_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(); -} - -static void cw_keyer_speed_value_changed_cb(GtkWidget *widget, gpointer data) { - cw_keyer_speed=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); - cw_changed(); -} - -static void cw_breakin_cb(GtkWidget *widget, gpointer data) { - cw_breakin=cw_breakin==1?0:1; - cw_changed(); -} - -static void cw_keyer_hang_time_value_changed_cb(GtkWidget *widget, gpointer data) { - cw_keyer_hang_time=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); - cw_changed(); -} - -static void cw_keyer_weight_value_changed_cb(GtkWidget *widget, gpointer data) { - cw_keyer_weight=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); - cw_changed(); -} - -static void cw_keys_reversed_cb(GtkWidget *widget, gpointer data) { - cw_keys_reversed=cw_keys_reversed==1?0:1; - cw_changed(); -} - -static void cw_keyer_mode_cb(GtkWidget *widget, gpointer data) { - cw_keyer_mode=(int)data; - cw_changed(); -} - -static void cw_keyer_sidetone_level_value_changed_cb(GtkWidget *widget, gpointer data) { - cw_keyer_sidetone_volume=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); - cw_changed(); -} - -static void cw_keyer_sidetone_frequency_value_changed_cb(GtkWidget *widget, gpointer data) { - cw_keyer_sidetone_frequency=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); - if(mode==modeCWL || mode==modeCWU) { - BANDSTACK_ENTRY *entry=bandstack_entry_get_current(); - FILTER* band_filters=filters[entry->mode]; - FILTER* band_filter=&band_filters[entry->filter]; - setFilter(band_filter->low,band_filter->high); - } - cw_changed(); -} - -static void vfo_divisor_value_changed_cb(GtkWidget *widget, gpointer data) { - vfo_encoder_divisor=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); -} - -static void panadapter_high_value_changed_cb(GtkWidget *widget, gpointer data) { - panadapter_high=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); -} - -static void panadapter_low_value_changed_cb(GtkWidget *widget, gpointer data) { - panadapter_low=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); -} - -static void waterfall_high_value_changed_cb(GtkWidget *widget, gpointer data) { - waterfall_high=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); -} - -static void waterfall_low_value_changed_cb(GtkWidget *widget, gpointer data) { - waterfall_low=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); -} - -static void waterfall_automatic_cb(GtkWidget *widget, gpointer data) { - waterfall_automatic=waterfall_automatic==1?0:1; -} - -static void linein_cb(GtkWidget *widget, gpointer data) { - mic_linein=mic_linein==1?0:1; -} - -static void micboost_cb(GtkWidget *widget, gpointer data) { - mic_boost=mic_boost==1?0:1; -} - -static void local_audio_cb(GtkWidget *widget, gpointer data) { - if(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { - if(audio_open_output()==0) { - local_audio=1; - } else { - local_audio=0; - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); - } - } else { - if(local_audio) { - local_audio=0; - audio_close_output(); - } - } -} - -static void local_output_changed_cb(GtkWidget *widget, gpointer data) { - n_selected_output_device=(int)(long)data; - - if(local_audio) { - audio_close_output(); - if(audio_open_output()==0) { - local_audio=1; - } - } -} - -static void local_microphone_cb(GtkWidget *widget, gpointer data) { -fprintf(stderr,"local_microphone_cb: %d\n",local_microphone); - if(gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { - if(audio_open_input()==0) { - local_microphone=1; - } else { - local_microphone=0; - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE); - } - } else { - if(local_microphone) { - local_microphone=0; - audio_close_input(); - } - } -} - -static void local_input_changed_cb(GtkWidget *widget, gpointer data) { - n_selected_input_device=(int)(long)data; -fprintf(stderr,"local_input_changed_cb: %d selected=%d\n",local_microphone,n_selected_input_device); - if(local_microphone) { - audio_close_input(); - if(audio_open_input()==0) { - local_microphone=1; - } else { - local_microphone=0; - } - } -} - -static void toolbar_dialog_buttons_cb(GtkWidget *widget, gpointer data) { - toolbar_dialog_buttons=toolbar_dialog_buttons==1?0:1; - update_toolbar_labels(); -} - -static void ptt_cb(GtkWidget *widget, gpointer data) { - mic_ptt_enabled=mic_ptt_enabled==1?0:1; -} - -static void ptt_ring_cb(GtkWidget *widget, gpointer data) { - mic_ptt_tip_bias_ring=0; -} - -static void ptt_tip_cb(GtkWidget *widget, gpointer data) { - mic_ptt_tip_bias_ring=1; -} - -static void bias_cb(GtkWidget *widget, gpointer data) { - mic_bias_enabled=mic_bias_enabled==1?0:1; -} - -static void apollo_cb(GtkWidget *widget, gpointer data); - -static void alex_cb(GtkWidget *widget, gpointer data) { - if(filter_board==ALEX) { - filter_board=NONE; - } else if(filter_board==NONE) { - filter_board=ALEX; - } else if(filter_board==APOLLO) { - GtkWidget *w=(GtkWidget *)data; - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), FALSE); - filter_board=ALEX; - } - - if(protocol==NEW_PROTOCOL) { - filter_board_changed(); - } - - if(filter_board==ALEX) { - BAND *band=band_get_current_band(); - BANDSTACK_ENTRY* entry=bandstack_entry_get_current(); - setFrequency(entry->frequencyA); - setMode(entry->mode); - FILTER* band_filters=filters[entry->mode]; - FILTER* band_filter=&band_filters[entry->filter]; - setFilter(band_filter->low,band_filter->high); - set_alex_rx_antenna(band->alexRxAntenna); - set_alex_tx_antenna(band->alexTxAntenna); - set_alex_attenuation(band->alexAttenuation); - } -} - -static void apollo_cb(GtkWidget *widget, gpointer data) { - if(filter_board==APOLLO) { - filter_board=NONE; - } else if(filter_board==NONE) { - filter_board=APOLLO; - } else if(filter_board==ALEX) { - GtkWidget *w=(GtkWidget *)data; - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), FALSE); - filter_board=APOLLO; - } - if(protocol==NEW_PROTOCOL) { - filter_board_changed(); - } - - if(filter_board==APOLLO) { - BAND *band=band_get_current_band(); - BANDSTACK_ENTRY* entry=bandstack_entry_get_current(); - setFrequency(entry->frequencyA); - setMode(entry->mode); - FILTER* band_filters=filters[entry->mode]; - FILTER* band_filter=&band_filters[entry->filter]; - setFilter(band_filter->low,band_filter->high); - } -} -/* -static void apollo_tuner_cb(GtkWidget *widget, gpointer data) { - apollo_tuner=apollo_tuner==1?0:1; - if(protocol==NEW_PROTOCOL) { - tuner_changed(); - } -} - -static void pa_cb(GtkWidget *widget, gpointer data) { - pa=pa==1?0:1; - if(protocol==NEW_PROTOCOL) { - pa_changed(); - } -} -*/ - -static void rx_dither_cb(GtkWidget *widget, gpointer data) { - rx_dither=rx_dither==1?0:1; - if(protocol==NEW_PROTOCOL) { - } -} - -static void rx_random_cb(GtkWidget *widget, gpointer data) { - rx_random=rx_random==1?0:1; - if(protocol==NEW_PROTOCOL) { - } -} - -static void rx_preamp_cb(GtkWidget *widget, gpointer data) { - rx_preamp=rx_preamp==1?0:1; - if(protocol==NEW_PROTOCOL) { - } -} - - -static void tx_out_of_band_cb(GtkWidget *widget, gpointer data) { - tx_out_of_band=tx_out_of_band==1?0:1; -} - -static void tone_value_changed_cb(GtkWidget *widget, gpointer data) { - tone_level=gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)); - SetTXAPostGenToneMag(CHANNEL_TX,tone_level); -} - -static void tx_cfir_cb(GtkWidget *widget, gpointer data) { - tx_cfir=tx_cfir==1?0:1; - SetTXACFIRRun(CHANNEL_TX, tx_cfir); -} - -static void tx_alc_cb(GtkWidget *widget, gpointer data) { - tx_alc=tx_alc==1?0:1; - SetTXAALCSt(CHANNEL_TX, tx_alc); -} - -static void tx_leveler_cb(GtkWidget *widget, gpointer data) { - tx_leveler=tx_leveler==1?0:1; - SetTXALevelerSt(CHANNEL_TX, tx_leveler); -} - -static void pa_value_changed_cb(GtkWidget *widget, gpointer data) { - BAND *band=(BAND *)data; - band->pa_calibration=gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)); - calcDriveLevel(); - calcTuneDriveLevel(); -} - -static gboolean exit_pressed_event_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer data) -{ -#ifdef GPIO - gpio_close(); -#endif - switch(protocol) { - case ORIGINAL_PROTOCOL: - old_protocol_stop(); - break; - case NEW_PROTOCOL: - new_protocol_stop(); - break; -#ifdef LIMESDR - case LIMESDR_PROTOCOL: - lime_protocol_stop(); - break; -#endif - } - radioSaveState(); - _exit(0); -} - -static gboolean reboot_pressed_event_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer data) -{ -#ifdef GPIO - gpio_close(); -#endif - switch(protocol) { - case ORIGINAL_PROTOCOL: - old_protocol_stop(); - break; - case NEW_PROTOCOL: - new_protocol_stop(); - break; -#ifdef LIMESDR - case LIMESDR_PROTOCOL: - lime_protocol_stop(); - break; -#endif - } - radioSaveState(); - system("reboot"); - _exit(0); -} - -static gboolean shutdown_pressed_event_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer data) -{ -#ifdef GPIO - gpio_close(); -#endif - switch(protocol) { - case ORIGINAL_PROTOCOL: - old_protocol_stop(); - break; - case NEW_PROTOCOL: - new_protocol_stop(); - break; -#ifdef LIMESDR - case LIMESDR_PROTOCOL: - lime_protocol_stop(); - break; -#endif - } - radioSaveState(); - system("shutdown -h -P now"); - _exit(0); -} - -static void oc_rx_cb(GtkWidget *widget, gpointer data) { - int b=((int)data)>>4; - int oc=((int)data)&0xF; - BAND *band=band_get_band(b); - int mask=0x01<OCrx|=mask; - } else { - band->OCrx&=~mask; - } -} - -static void oc_tx_cb(GtkWidget *widget, gpointer data) { - int b=((int)data)>>4; - int oc=((int)data)&0xF; - BAND *band=band_get_band(b); - int mask=0x01<OCtx|=mask; - } else { - band->OCtx&=~mask; - } -} - -static void oc_tune_cb(GtkWidget *widget, gpointer data) { - int oc=((int)data)&0xF; - int mask=0x01<>4; - int ant=((int)data)&0xF; - BAND *band=band_get_band(b); - band->alexRxAntenna=ant; - set_alex_rx_antenna(ant); -} - -static void rx_lime_ant_cb(GtkWidget *widget, gpointer data) { - int ant=((int)data)&0xF; - BAND *band=band_get_current_band(); - band->alexRxAntenna=ant; - set_alex_rx_antenna(ant); -} - -static void tx_ant_cb(GtkWidget *widget, gpointer data) { - int b=((int)data)>>4; - int ant=((int)data)&0xF; - BAND *band=band_get_band(b); - band->alexTxAntenna=ant; - set_alex_tx_antenna(ant); -} - -#ifdef FREEDV -static void freedv_text_changed_cb(GtkWidget *widget, gpointer data) { - strcpy(freedv_tx_text_data,gtk_entry_get_text(GTK_ENTRY(widget))); -} -#endif - -static void switch_page_cb(GtkNotebook *notebook, - GtkWidget *page, - guint page_num, - gpointer user_data) -{ - int i, j; - GtkWidget *child; - if(ant_id!=-1) { - if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) { - if(page_num==ant_id) { - if(filter_board==ALEX) { - for(i=0;i0) { - 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(audio_grid),local_audio_b,1,0,1,1); - g_signal_connect(local_audio_b,"toggled",G_CALLBACK(local_audio_cb),NULL); - - for(i=0;i0) { - GtkWidget *local_microphone_b=gtk_check_button_new_with_label("Microphone Audio"); - //gtk_widget_override_font(local_microphone_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (local_microphone_b), local_microphone); - gtk_widget_show(local_microphone_b); - gtk_grid_attach(GTK_GRID(audio_grid),local_microphone_b,2,0,1,1); - g_signal_connect(local_microphone_b,"toggled",G_CALLBACK(local_microphone_cb),NULL); - - for(i=0;ititle); - //gtk_widget_override_font(band_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(band_label); - gtk_grid_attach(GTK_GRID(ant_grid),band_label,0,i+1,1,1); - - GtkWidget *rx1_b=gtk_radio_button_new(NULL); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx1_b), band->alexRxAntenna==0); - gtk_widget_show(rx1_b); - gtk_grid_attach(GTK_GRID(ant_grid),rx1_b,1,i+1,1,1); - g_signal_connect(rx1_b,"pressed",G_CALLBACK(rx_ant_cb),(gpointer)((i<<4)+0)); - - GtkWidget *rx2_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(rx1_b)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx2_b), band->alexRxAntenna==1); - gtk_widget_show(rx2_b); - gtk_grid_attach(GTK_GRID(ant_grid),rx2_b,2,i+1,1,1); - g_signal_connect(rx2_b,"pressed",G_CALLBACK(rx_ant_cb),(gpointer)((i<<4)+1)); - - GtkWidget *rx3_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(rx2_b)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx3_b), band->alexRxAntenna==2); - gtk_widget_show(rx3_b); - gtk_grid_attach(GTK_GRID(ant_grid),rx3_b,3,i+1,1,1); - g_signal_connect(rx3_b,"pressed",G_CALLBACK(rx_ant_cb),(gpointer)((i<<4)+2)); - - GtkWidget *ext1_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(rx3_b)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ext1_b), band->alexRxAntenna==3); - gtk_widget_show(ext1_b); - gtk_grid_attach(GTK_GRID(ant_grid),ext1_b,4,i+1,1,1); - g_signal_connect(ext1_b,"pressed",G_CALLBACK(rx_ant_cb),(gpointer)((i<<4)+3)); - - GtkWidget *ext2_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(ext1_b)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ext2_b), band->alexRxAntenna==4); - gtk_widget_show(ext2_b); - gtk_grid_attach(GTK_GRID(ant_grid),ext2_b,5,i+1,1,1); - g_signal_connect(ext2_b,"pressed",G_CALLBACK(rx_ant_cb),(gpointer)((i<<4)+4)); - - GtkWidget *xvtr_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(ext2_b)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (xvtr_b), band->alexRxAntenna==5); - gtk_widget_show(xvtr_b); - gtk_grid_attach(GTK_GRID(ant_grid),xvtr_b,6,i+1,1,1); - g_signal_connect(xvtr_b,"pressed",G_CALLBACK(rx_ant_cb),(gpointer)((i<<4)+5)); - - GtkWidget *ant_band_label=gtk_label_new(band->title); - //gtk_widget_override_font(ant_band_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(ant_band_label); - gtk_grid_attach(GTK_GRID(ant_grid),ant_band_label,7,i+1,1,1); - - GtkWidget *tx1_b=gtk_radio_button_new(NULL); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx1_b), band->alexTxAntenna==0); - gtk_widget_show(tx1_b); - gtk_grid_attach(GTK_GRID(ant_grid),tx1_b,8,i+1,1,1); - g_signal_connect(tx1_b,"pressed",G_CALLBACK(tx_ant_cb),(gpointer)((i<<4)+0)); - - GtkWidget *tx2_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(tx1_b)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx2_b), band->alexTxAntenna==1); - gtk_widget_show(tx2_b); - gtk_grid_attach(GTK_GRID(ant_grid),tx2_b,9,i+1,1,1); - g_signal_connect(tx2_b,"pressed",G_CALLBACK(tx_ant_cb),(gpointer)((i<<4)+1)); - - GtkWidget *tx3_b=gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(tx2_b)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx3_b), band->alexTxAntenna==2); - gtk_widget_show(tx3_b); - gtk_grid_attach(GTK_GRID(ant_grid),tx3_b,10,i+1,1,1); - g_signal_connect(tx3_b,"pressed",G_CALLBACK(tx_ant_cb),(gpointer)((i<<4)+2)); - - } - } - -#ifdef LIMESDR - if(protocol==LIMESDR_PROTOCOL) { - BAND *band=band_get_current_band(); - - GtkWidget *rx1_none=gtk_radio_button_new_with_label(NULL,"RX 1: NONE"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx1_none), band->alexRxAntenna==0); - gtk_widget_show(rx1_none); - gtk_grid_attach(GTK_GRID(ant_grid),rx1_none,0,0,1,1); - g_signal_connect(rx1_none,"pressed",G_CALLBACK(rx_lime_ant_cb),(gpointer)0); - - GtkWidget *rx1_lnah=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rx1_none),"RX1: LNAH"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx1_lnah), band->alexRxAntenna==1); - gtk_widget_show(rx1_lnah); - gtk_grid_attach(GTK_GRID(ant_grid),rx1_lnah,0,1,1,1); - g_signal_connect(rx1_lnah,"pressed",G_CALLBACK(rx_lime_ant_cb),(gpointer)+1); - - GtkWidget *rx1_lnal=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rx1_lnah),"RX1: LNAL"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx1_lnal), band->alexRxAntenna==2); - gtk_widget_show(rx1_lnal); - gtk_grid_attach(GTK_GRID(ant_grid),rx1_lnal,0,2,1,1); - g_signal_connect(rx1_lnal,"pressed",G_CALLBACK(rx_lime_ant_cb),(gpointer)2); - - GtkWidget *rx1_lnaw=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(rx1_lnal),"RX1: LNAW"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rx1_lnaw), band->alexRxAntenna==3); - gtk_widget_show(rx1_lnaw); - gtk_grid_attach(GTK_GRID(ant_grid),rx1_lnaw,0,3,1,1); - g_signal_connect(rx1_lnaw,"pressed",G_CALLBACK(rx_lime_ant_cb),(gpointer)3); - } -#endif - - ant_id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),ant_grid,ant_label); - - - GtkWidget *display_label=gtk_label_new("Display"); - GtkWidget *display_grid=gtk_grid_new(); - gtk_grid_set_row_homogeneous(GTK_GRID(display_grid),TRUE); - gtk_grid_set_column_spacing (GTK_GRID(display_grid),10); - - GtkWidget *filled_b=gtk_check_button_new_with_label("Fill Panadapter"); - //gtk_widget_override_font(filled_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (filled_b), display_filled); - gtk_widget_show(filled_b); - gtk_grid_attach(GTK_GRID(display_grid),filled_b,0,0,1,1); - g_signal_connect(filled_b,"toggled",G_CALLBACK(filled_cb),NULL); - - GtkWidget *frames_per_second_label=gtk_label_new("Frames Per Second: "); - //gtk_widget_override_font(frames_per_second_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(frames_per_second_label); - gtk_grid_attach(GTK_GRID(display_grid),frames_per_second_label,0,1,1,1); - - GtkWidget *frames_per_second_r=gtk_spin_button_new_with_range(1.0,100.0,1.0); - //gtk_widget_override_font(frames_per_second_r, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(frames_per_second_r),(double)updates_per_second); - gtk_widget_show(frames_per_second_r); - gtk_grid_attach(GTK_GRID(display_grid),frames_per_second_r,1,1,1,1); - g_signal_connect(frames_per_second_r,"value_changed",G_CALLBACK(frames_per_second_value_changed_cb),NULL); - - - GtkWidget *panadapter_high_label=gtk_label_new("Panadapter High: "); - //gtk_widget_override_font(panadapter_high_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(panadapter_high_label); - gtk_grid_attach(GTK_GRID(display_grid),panadapter_high_label,0,2,1,1); - - GtkWidget *panadapter_high_r=gtk_spin_button_new_with_range(-220.0,100.0,1.0); - //gtk_widget_override_font(panadapter_high_r, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(panadapter_high_r),(double)panadapter_high); - gtk_widget_show(panadapter_high_r); - gtk_grid_attach(GTK_GRID(display_grid),panadapter_high_r,1,2,1,1); - g_signal_connect(panadapter_high_r,"value_changed",G_CALLBACK(panadapter_high_value_changed_cb),NULL); - - GtkWidget *panadapter_low_label=gtk_label_new("Panadapter Low: "); - //gtk_widget_override_font(panadapter_low_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(panadapter_low_label); - gtk_grid_attach(GTK_GRID(display_grid),panadapter_low_label,0,3,1,1); - - GtkWidget *panadapter_low_r=gtk_spin_button_new_with_range(-220.0,100.0,1.0); - //gtk_widget_override_font(panadapter_low_r, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(panadapter_low_r),(double)panadapter_low); - gtk_widget_show(panadapter_low_r); - gtk_grid_attach(GTK_GRID(display_grid),panadapter_low_r,1,3,1,1); - g_signal_connect(panadapter_low_r,"value_changed",G_CALLBACK(panadapter_low_value_changed_cb),NULL); - - GtkWidget *waterfall_automatic_label=gtk_label_new("Waterfall Automatic: "); - //gtk_widget_override_font(waterfall_automatic_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(waterfall_automatic_label); - gtk_grid_attach(GTK_GRID(display_grid),waterfall_automatic_label,0,4,1,1); - - GtkWidget *waterfall_automatic_b=gtk_check_button_new(); - //gtk_widget_override_font(waterfall_automatic_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (waterfall_automatic_b), waterfall_automatic); - gtk_widget_show(waterfall_automatic_b); - gtk_grid_attach(GTK_GRID(display_grid),waterfall_automatic_b,1,4,1,1); - g_signal_connect(waterfall_automatic_b,"toggled",G_CALLBACK(waterfall_automatic_cb),NULL); - - GtkWidget *waterfall_high_label=gtk_label_new("Waterfall High: "); - //gtk_widget_override_font(waterfall_high_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(waterfall_high_label); - gtk_grid_attach(GTK_GRID(display_grid),waterfall_high_label,0,5,1,1); - - GtkWidget *waterfall_high_r=gtk_spin_button_new_with_range(-220.0,100.0,1.0); - //gtk_widget_override_font(waterfall_high_r, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(waterfall_high_r),(double)waterfall_high); - gtk_widget_show(waterfall_high_r); - gtk_grid_attach(GTK_GRID(display_grid),waterfall_high_r,1,5,1,1); - g_signal_connect(waterfall_high_r,"value_changed",G_CALLBACK(waterfall_high_value_changed_cb),NULL); - - GtkWidget *waterfall_low_label=gtk_label_new("Waterfall Low: "); - //gtk_widget_override_font(waterfall_low_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(waterfall_low_label); - gtk_grid_attach(GTK_GRID(display_grid),waterfall_low_label,0,6,1,1); - - GtkWidget *waterfall_low_r=gtk_spin_button_new_with_range(-220.0,100.0,1.0); - //gtk_widget_override_font(waterfall_low_r, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(waterfall_low_r),(double)waterfall_low); - gtk_widget_show(waterfall_low_r); - gtk_grid_attach(GTK_GRID(display_grid),waterfall_low_r,1,6,1,1); - g_signal_connect(waterfall_low_r,"value_changed",G_CALLBACK(waterfall_low_value_changed_cb),NULL); - - GtkWidget *detector_mode_label=gtk_label_new("Detector: "); - //gtk_widget_override_font(detector_mode_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(detector_mode_label); - gtk_grid_attach(GTK_GRID(display_grid),detector_mode_label,2,0,1,1); - - GtkWidget *detector_mode_peak=gtk_radio_button_new_with_label(NULL,"Peak"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (detector_mode_peak), display_detector_mode==DETECTOR_MODE_PEAK); - gtk_widget_show(detector_mode_peak); - gtk_grid_attach(GTK_GRID(display_grid),detector_mode_peak,2,1,1,1); - g_signal_connect(detector_mode_peak,"pressed",G_CALLBACK(detector_mode_cb),(gpointer *)DETECTOR_MODE_PEAK); - - GtkWidget *detector_mode_rosenfell=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(detector_mode_peak),"Rosenfell"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (detector_mode_rosenfell), display_detector_mode==DETECTOR_MODE_ROSENFELL); - gtk_widget_show(detector_mode_rosenfell); - gtk_grid_attach(GTK_GRID(display_grid),detector_mode_rosenfell,2,2,1,1); - g_signal_connect(detector_mode_rosenfell,"pressed",G_CALLBACK(detector_mode_cb),(gpointer *)DETECTOR_MODE_ROSENFELL); - - GtkWidget *detector_mode_average=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(detector_mode_rosenfell),"Average"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (detector_mode_average), display_detector_mode==DETECTOR_MODE_AVERAGE); - gtk_widget_show(detector_mode_average); - gtk_grid_attach(GTK_GRID(display_grid),detector_mode_average,2,3,1,1); - g_signal_connect(detector_mode_average,"pressed",G_CALLBACK(detector_mode_cb),(gpointer *)DETECTOR_MODE_AVERAGE); - - GtkWidget *detector_mode_sample=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(detector_mode_average),"Sample"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (detector_mode_sample), display_detector_mode==DETECTOR_MODE_SAMPLE); - gtk_widget_show(detector_mode_sample); - gtk_grid_attach(GTK_GRID(display_grid),detector_mode_sample,2,4,1,1); - g_signal_connect(detector_mode_sample,"pressed",G_CALLBACK(detector_mode_cb),(gpointer *)DETECTOR_MODE_SAMPLE); - - - - GtkWidget *average_mode_label=gtk_label_new("Averaging: "); - //gtk_widget_override_font(average_mode_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(average_mode_label); - gtk_grid_attach(GTK_GRID(display_grid),average_mode_label,3,0,1,1); - - GtkWidget *average_mode_none=gtk_radio_button_new_with_label(NULL,"None"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (average_mode_none), display_detector_mode==AVERAGE_MODE_NONE); - gtk_widget_show(average_mode_none); - gtk_grid_attach(GTK_GRID(display_grid),average_mode_none,3,1,1,1); - g_signal_connect(average_mode_none,"pressed",G_CALLBACK(average_mode_cb),(gpointer *)AVERAGE_MODE_NONE); - - GtkWidget *average_mode_recursive=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(average_mode_none),"Recursive"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (average_mode_recursive), display_average_mode==AVERAGE_MODE_RECURSIVE); - gtk_widget_show(average_mode_recursive); - gtk_grid_attach(GTK_GRID(display_grid),average_mode_recursive,3,2,1,1); - g_signal_connect(average_mode_recursive,"pressed",G_CALLBACK(average_mode_cb),(gpointer *)AVERAGE_MODE_RECURSIVE); - - GtkWidget *average_mode_time_window=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(average_mode_recursive),"Time Window"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (average_mode_time_window), display_average_mode==AVERAGE_MODE_TIME_WINDOW); - gtk_widget_show(average_mode_time_window); - gtk_grid_attach(GTK_GRID(display_grid),average_mode_time_window,3,3,1,1); - g_signal_connect(average_mode_time_window,"pressed",G_CALLBACK(average_mode_cb),(gpointer *)AVERAGE_MODE_TIME_WINDOW); - - GtkWidget *average_mode_log_recursive=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(average_mode_time_window),"Log Recursive"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (average_mode_log_recursive), display_average_mode==AVERAGE_MODE_LOG_RECURSIVE); - gtk_widget_show(average_mode_log_recursive); - gtk_grid_attach(GTK_GRID(display_grid),average_mode_log_recursive,3,4,1,1); - g_signal_connect(average_mode_log_recursive,"pressed",G_CALLBACK(average_mode_cb),(gpointer *)AVERAGE_MODE_LOG_RECURSIVE); - - - GtkWidget *time_label=gtk_label_new("Time (ms): "); - //gtk_widget_override_font(average_mode_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(time_label); - gtk_grid_attach(GTK_GRID(display_grid),time_label,3,5,1,1); - - GtkWidget *time_r=gtk_spin_button_new_with_range(1.0,9999.0,1.0); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(time_r),(double)display_average_time); - gtk_widget_show(time_r); - gtk_grid_attach(GTK_GRID(display_grid),time_r,4,5,1,1); - g_signal_connect(time_r,"value_changed",G_CALLBACK(time_value_changed_cb),NULL); - - 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(display_grid),b_display_panadapter,0,7,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(display_grid),b_display_waterfall,1,7,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(display_grid),b_display_sliders,2,7,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(display_grid),b_display_toolbar,3,7,1,1); - g_signal_connect(b_display_toolbar,"toggled",G_CALLBACK(display_toolbar_cb),(gpointer *)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(display_grid),b_toolbar_dialog_buttons,0,8,1,1); - g_signal_connect(b_toolbar_dialog_buttons,"toggled",G_CALLBACK(toolbar_dialog_buttons_cb),(gpointer *)NULL); - - id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),display_grid,display_label); - - - - - GtkWidget *dsp_label=gtk_label_new("DSP"); - GtkWidget *dsp_grid=gtk_grid_new(); - gtk_grid_set_row_homogeneous(GTK_GRID(dsp_grid),TRUE); - gtk_grid_set_column_spacing (GTK_GRID(dsp_grid),10); - - GtkWidget *agc_hang_threshold_label=gtk_label_new("AGC Hang Threshold:"); - gtk_widget_show(agc_hang_threshold_label); - gtk_grid_attach(GTK_GRID(dsp_grid),agc_hang_threshold_label,0,0,1,1); - GtkWidget *agc_hang_threshold_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0.0, 100.0, 1.0); - gtk_range_set_value (GTK_RANGE(agc_hang_threshold_scale),agc_hang_threshold); - gtk_widget_show(agc_hang_threshold_scale); - gtk_grid_attach(GTK_GRID(dsp_grid),agc_hang_threshold_scale,1,0,2,1); - g_signal_connect(G_OBJECT(agc_hang_threshold_scale),"value_changed",G_CALLBACK(agc_hang_threshold_value_changed_cb),NULL); - - GtkWidget *pre_post_agc_label=gtk_label_new("NR/NR2/ANF"); - //gtk_widget_override_font(pre_post_agc_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(pre_post_agc_label); - gtk_grid_attach(GTK_GRID(dsp_grid),pre_post_agc_label,0,1,1,1); - - GtkWidget *pre_agc_b=gtk_radio_button_new_with_label(NULL,"Pre AGC"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pre_agc_b),nr_agc==0); - gtk_widget_show(pre_agc_b); - gtk_grid_attach(GTK_GRID(dsp_grid),pre_agc_b,1,1,1,1); - g_signal_connect(pre_agc_b,"pressed",G_CALLBACK(pre_post_agc_cb),(gpointer *)0); - - GtkWidget *post_agc_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(pre_agc_b),"Post AGC"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (post_agc_b), nr_agc==1); - gtk_widget_show(post_agc_b); - gtk_grid_attach(GTK_GRID(dsp_grid),post_agc_b,2,1,1,1); - g_signal_connect(post_agc_b,"pressed",G_CALLBACK(pre_post_agc_cb),(gpointer *)1); - - GtkWidget *nr2_gain_label=gtk_label_new("NR2 Gain Method"); - //gtk_widget_override_font(nr2_gain_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(nr2_gain_label); - gtk_grid_attach(GTK_GRID(dsp_grid),nr2_gain_label,0,2,1,1); - - GtkWidget *linear_b=gtk_radio_button_new_with_label(NULL,"Linear"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (linear_b),nr2_gain_method==0); - gtk_widget_show(linear_b); - gtk_grid_attach(GTK_GRID(dsp_grid),linear_b,1,2,1,1); - g_signal_connect(linear_b,"pressed",G_CALLBACK(nr2_gain_cb),(gpointer *)0); - - GtkWidget *log_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(linear_b),"Log"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (log_b), nr2_gain_method==1); - gtk_widget_show(log_b); - gtk_grid_attach(GTK_GRID(dsp_grid),log_b,2,2,1,1); - g_signal_connect(log_b,"pressed",G_CALLBACK(nr2_gain_cb),(gpointer *)1); - - GtkWidget *gamma_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(log_b),"Gamma"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gamma_b), nr2_gain_method==2); - gtk_widget_show(gamma_b); - gtk_grid_attach(GTK_GRID(dsp_grid),gamma_b,3,2,1,1); - g_signal_connect(gamma_b,"pressed",G_CALLBACK(nr2_gain_cb),(gpointer *)2); - - GtkWidget *nr2_npe_method_label=gtk_label_new("NR2 NPE Method"); - //gtk_widget_override_font(nr2_npe_method_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(nr2_npe_method_label); - gtk_grid_attach(GTK_GRID(dsp_grid),nr2_npe_method_label,0,3,1,1); - - GtkWidget *osms_b=gtk_radio_button_new_with_label(NULL,"OSMS"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (osms_b),nr2_npe_method==0); - gtk_widget_show(osms_b); - gtk_grid_attach(GTK_GRID(dsp_grid),osms_b,1,3,1,1); - g_signal_connect(osms_b,"pressed",G_CALLBACK(nr2_npe_method_cb),(gpointer *)0); - - GtkWidget *mmse_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(osms_b),"MMSE"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mmse_b), nr2_npe_method==1); - gtk_widget_show(mmse_b); - gtk_grid_attach(GTK_GRID(dsp_grid),mmse_b,2,3,1,1); - g_signal_connect(mmse_b,"pressed",G_CALLBACK(nr2_npe_method_cb),(gpointer *)1); - - GtkWidget *ae_b=gtk_check_button_new_with_label("NR2 AE Filter"); - //gtk_widget_override_font(ae_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ae_b), nr2_ae); - gtk_widget_show(ae_b); - gtk_grid_attach(GTK_GRID(dsp_grid),ae_b,0,4,1,1); - g_signal_connect(ae_b,"toggled",G_CALLBACK(ae_cb),NULL); - - id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),dsp_grid,dsp_label); - - if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) { - GtkWidget *tx_label=gtk_label_new("PA Gain (dB)"); - GtkWidget *tx_grid=gtk_grid_new(); - gtk_grid_set_row_homogeneous(GTK_GRID(tx_grid),TRUE); - gtk_grid_set_column_spacing (GTK_GRID(tx_grid),10); - - for(i=0;ititle); - //gtk_widget_override_font(band_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(band_label); - gtk_grid_attach(GTK_GRID(tx_grid),band_label,(i/6)*2,i%6,1,1); - - GtkWidget *pa_r=gtk_spin_button_new_with_range(38.8,100.0,0.1); - //gtk_widget_override_font(pa_r, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(pa_r),(double)band->pa_calibration); - gtk_widget_show(pa_r); - gtk_grid_attach(GTK_GRID(tx_grid),pa_r,((i/6)*2)+1,i%6,1,1); - g_signal_connect(pa_r,"value_changed",G_CALLBACK(pa_value_changed_cb),band); - } - - GtkWidget *tx_out_of_band_b=gtk_check_button_new_with_label("Transmit out of band"); - //gtk_widget_override_font(tx_out_of_band_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx_out_of_band_b), tx_out_of_band); - gtk_widget_show(tx_out_of_band_b); - gtk_grid_attach(GTK_GRID(tx_grid),tx_out_of_band_b,0,7,4,1); - g_signal_connect(tx_out_of_band_b,"toggled",G_CALLBACK(tx_out_of_band_cb),NULL); - -/* - GtkWidget *tx_cfir_b=gtk_check_button_new_with_label("TX CFIR"); - //gtk_widget_override_font(tx_out_of_band_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx_cfir_b), tx_cfir); - gtk_widget_show(tx_cfir_b); - gtk_grid_attach(GTK_GRID(tx_grid),tx_cfir_b,4,7,4,1); - g_signal_connect(tx_cfir_b,"toggled",G_CALLBACK(tx_cfir_cb),NULL); - - GtkWidget *tx_alc_b=gtk_check_button_new_with_label("TX ALC"); - //gtk_widget_override_font(tx_out_of_band_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx_alc_b), tx_alc); - gtk_widget_show(tx_alc_b); - gtk_grid_attach(GTK_GRID(tx_grid),tx_alc_b,8,7,4,1); - g_signal_connect(tx_alc_b,"toggled",G_CALLBACK(tx_alc_cb),NULL); - - GtkWidget *tx_leveler_b=gtk_check_button_new_with_label("TX Leveler"); - //gtk_widget_override_font(tx_out_of_band_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tx_leveler_b), tx_leveler); - gtk_widget_show(tx_leveler_b); - gtk_grid_attach(GTK_GRID(tx_grid),tx_leveler_b,12,7,4,1); - g_signal_connect(tx_leveler_b,"toggled",G_CALLBACK(tx_leveler_cb),NULL); - - GtkWidget *tone_r=gtk_spin_button_new_with_range(0.0,1.0,0.01); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(tone_r),tone_level); - gtk_widget_show(tone_r); - gtk_grid_attach(GTK_GRID(tx_grid),tone_r,4,6,4,1); - g_signal_connect(tone_r,"value_changed",G_CALLBACK(tone_value_changed_cb),NULL); -*/ - id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),tx_grid,tx_label); - } - - if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) { - GtkWidget *cw_label=gtk_label_new("CW"); - GtkWidget *cw_grid=gtk_grid_new(); - gtk_grid_set_row_homogeneous(GTK_GRID(cw_grid),TRUE); - -/* - GtkWidget *cw_keyer_internal_b=gtk_check_button_new_with_label("CW Internal - Speed (WPM)"); - //gtk_widget_override_font(cw_keyer_internal_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keyer_internal_b), cw_keyer_internal); - gtk_widget_show(cw_keyer_internal_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_internal_b,0,0,1,1); - g_signal_connect(cw_keyer_internal_b,"toggled",G_CALLBACK(cw_keyer_internal_cb),NULL); -*/ - GtkWidget *cw_speed_label=gtk_label_new("CW Speed (WPM)"); - //gtk_widget_override_font(cw_speed_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(cw_speed_label); - gtk_grid_attach(GTK_GRID(cw_grid),cw_speed_label,0,0,1,1); - - GtkWidget *cw_keyer_speed_b=gtk_spin_button_new_with_range(1.0,60.0,1.0); - //gtk_widget_override_font(cw_keyer_speed_b, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(cw_keyer_speed_b),(double)cw_keyer_speed); - gtk_widget_show(cw_keyer_speed_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_speed_b,1,0,1,1); - g_signal_connect(cw_keyer_speed_b,"value_changed",G_CALLBACK(cw_keyer_speed_value_changed_cb),NULL); - - GtkWidget *cw_breakin_b=gtk_check_button_new_with_label("CW Break In - Delay (ms)"); - //gtk_widget_override_font(cw_breakin_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_breakin_b), cw_breakin); - gtk_widget_show(cw_breakin_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_breakin_b,0,1,1,1); - g_signal_connect(cw_breakin_b,"toggled",G_CALLBACK(cw_breakin_cb),NULL); - - GtkWidget *cw_keyer_hang_time_b=gtk_spin_button_new_with_range(0.0,1000.0,1.0); - //gtk_widget_override_font(cw_keyer_hang_time_b, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(cw_keyer_hang_time_b),(double)cw_keyer_hang_time); - gtk_widget_show(cw_keyer_hang_time_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_hang_time_b,1,1,1,1); - g_signal_connect(cw_keyer_hang_time_b,"value_changed",G_CALLBACK(cw_keyer_hang_time_value_changed_cb),NULL); - - GtkWidget *cw_keyer_straight=gtk_radio_button_new_with_label(NULL,"CW KEYER STRAIGHT"); - //gtk_widget_override_font(cw_keyer_straight, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keyer_straight), cw_keyer_mode==KEYER_STRAIGHT); - gtk_widget_show(cw_keyer_straight); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_straight,0,2,1,1); - g_signal_connect(cw_keyer_straight,"pressed",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_STRAIGHT); - - GtkWidget *cw_keyer_mode_a=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(cw_keyer_straight),"CW KEYER MODE A"); - //gtk_widget_override_font(cw_keyer_mode_a, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keyer_mode_a), cw_keyer_mode==KEYER_MODE_A); - gtk_widget_show(cw_keyer_mode_a); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_mode_a,0,3,1,1); - g_signal_connect(cw_keyer_mode_a,"pressed",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_MODE_A); - - GtkWidget *cw_keyer_mode_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(cw_keyer_mode_a),"CW KEYER MODE B"); - //gtk_widget_override_font(cw_keyer_mode_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keyer_mode_b), cw_keyer_mode==KEYER_MODE_B); - gtk_widget_show(cw_keyer_mode_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_mode_b,0,4,1,1); - g_signal_connect(cw_keyer_mode_b,"pressed",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_MODE_B); - - GtkWidget *cw_keys_reversed_b=gtk_check_button_new_with_label("Keys reversed"); - //gtk_widget_override_font(cw_keys_reversed_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keys_reversed_b), cw_keys_reversed); - gtk_widget_show(cw_keys_reversed_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keys_reversed_b,0,5,1,1); - g_signal_connect(cw_keys_reversed_b,"toggled",G_CALLBACK(cw_keys_reversed_cb),NULL); - - GtkWidget *cw_keyer_sidetone_level_label=gtk_label_new("Sidetone Level:"); - //gtk_widget_override_font(cw_keyer_sidetone_level_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(cw_keyer_sidetone_level_label); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_sidetone_level_label,0,6,1,1); - - GtkWidget *cw_keyer_sidetone_level_b=gtk_spin_button_new_with_range(1.0,protocol==NEW_PROTOCOL?255.0:127.0,1.0); - //gtk_widget_override_font(cw_keyer_sidetone_level_b, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(cw_keyer_sidetone_level_b),(double)cw_keyer_sidetone_volume); - gtk_widget_show(cw_keyer_sidetone_level_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_sidetone_level_b,1,6,1,1); - g_signal_connect(cw_keyer_sidetone_level_b,"value_changed",G_CALLBACK(cw_keyer_sidetone_level_value_changed_cb),NULL); - - GtkWidget *cw_keyer_sidetone_frequency_label=gtk_label_new("Sidetone Freq:"); - //gtk_widget_override_font(cw_keyer_sidetone_frequency_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(cw_keyer_sidetone_frequency_label); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_sidetone_frequency_label,0,7,1,1); - - GtkWidget *cw_keyer_sidetone_frequency_b=gtk_spin_button_new_with_range(100.0,1000.0,1.0); - //gtk_widget_override_font(cw_keyer_sidetone_frequency_b, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(cw_keyer_sidetone_frequency_b),(double)cw_keyer_sidetone_frequency); - gtk_widget_show(cw_keyer_sidetone_frequency_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_sidetone_frequency_b,1,7,1,1); - g_signal_connect(cw_keyer_sidetone_frequency_b,"value_changed",G_CALLBACK(cw_keyer_sidetone_frequency_value_changed_cb),NULL); - - GtkWidget *cw_keyer_weight_label=gtk_label_new("Weight:"); - //gtk_widget_override_font(cw_keyer_weight_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(cw_keyer_weight_label); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_weight_label,0,8,1,1); - - GtkWidget *cw_keyer_weight_b=gtk_spin_button_new_with_range(0.0,100.0,1.0); - //gtk_widget_override_font(cw_keyer_weight_b, pango_font_description_from_string("Arial 18")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(cw_keyer_weight_b),(double)cw_keyer_weight); - gtk_widget_show(cw_keyer_weight_b); - gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_weight_b,1,8,1,1); - g_signal_connect(cw_keyer_weight_b,"value_changed",G_CALLBACK(cw_keyer_weight_value_changed_cb),NULL); - - id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),cw_grid,cw_label); - } - - if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) { - GtkWidget *oc_label=gtk_label_new("OC"); - GtkWidget *oc_grid=gtk_grid_new(); - //gtk_grid_set_row_homogeneous(GTK_GRID(oc_grid),TRUE); - gtk_grid_set_column_spacing (GTK_GRID(oc_grid),10); - - GtkWidget *band_title=gtk_label_new("Band"); - //gtk_widget_override_font(band_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(band_title); - gtk_grid_attach(GTK_GRID(oc_grid),band_title,0,0,1,1); - - GtkWidget *rx_title=gtk_label_new("Rx"); - //gtk_widget_override_font(rx_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(rx_title); - gtk_grid_attach(GTK_GRID(oc_grid),rx_title,4,0,1,1); - - GtkWidget *tx_title=gtk_label_new("Tx"); - //gtk_widget_override_font(tx_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(tx_title); - gtk_grid_attach(GTK_GRID(oc_grid),tx_title,11,0,1,1); - - GtkWidget *tune_title=gtk_label_new("Tune (ORed with TX)"); - //gtk_widget_override_font(tune_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(tune_title); - gtk_grid_attach(GTK_GRID(oc_grid),tune_title,18,0,2,1); - - for(i=1;i<8;i++) { - char oc_id[8]; - sprintf(oc_id,"%d",i); - GtkWidget *oc_rx_title=gtk_label_new(oc_id); - //gtk_widget_override_font(oc_rx_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(oc_rx_title); - gtk_grid_attach(GTK_GRID(oc_grid),oc_rx_title,i,1,1,1); - GtkWidget *oc_tx_title=gtk_label_new(oc_id); - //gtk_widget_override_font(oc_tx_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(oc_tx_title); - gtk_grid_attach(GTK_GRID(oc_grid),oc_tx_title,i+7,1,1,1); -/* - GtkWidget *oc_tune_title=gtk_label_new(oc_id); - //gtk_widget_override_font(oc_tune_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(oc_tune_title); - gtk_grid_attach(GTK_GRID(oc_grid),oc_tune_title,i+14,1,1,1); -*/ - } - - for(i=0;ititle); - //gtk_widget_override_font(band_label, pango_font_description_from_string("Arial 18")); - gtk_widget_show(band_label); - gtk_grid_attach(GTK_GRID(oc_grid),band_label,0,i+2,1,1); - - int mask; - for(j=1;j<8;j++) { - mask=0x01<OCrx&mask)==mask); - gtk_widget_show(oc_rx_b); - gtk_grid_attach(GTK_GRID(oc_grid),oc_rx_b,j,i+2,1,1); - g_signal_connect(oc_rx_b,"toggled",G_CALLBACK(oc_rx_cb),(gpointer)(j+(i<<4))); - - GtkWidget *oc_tx_b=gtk_check_button_new(); - //gtk_widget_override_font(oc_tx_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (oc_tx_b), (band->OCtx&mask)==mask); - gtk_widget_show(oc_tx_b); - gtk_grid_attach(GTK_GRID(oc_grid),oc_tx_b,j+7,i+2,1,1); - g_signal_connect(oc_tx_b,"toggled",G_CALLBACK(oc_tx_cb),(gpointer)(j+(i<<4))); - -/* - GtkWidget *oc_tune_b=gtk_check_button_new(); - //gtk_widget_override_font(oc_tune_b, pango_font_description_from_string("Arial 18")); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (oc_tune_b), (band->OCtune&mask)==mask); - gtk_widget_show(oc_tune_b); - gtk_grid_attach(GTK_GRID(oc_grid),oc_tune_b,j+14,i+2,1,1); - g_signal_connect(oc_tune_b,"toggled",G_CALLBACK(oc_tune_cb),(gpointer)(j+(i<<4))); -*/ - } - } - - - int mask; - for(j=1;j<8;j++) { - char oc_id[8]; - sprintf(oc_id,"%d",j); - GtkWidget *oc_tune_title=gtk_label_new(oc_id); - //gtk_widget_override_font(oc_tune_title, pango_font_description_from_string("Arial 18")); - gtk_widget_show(oc_tune_title); - gtk_grid_attach(GTK_GRID(oc_grid),oc_tune_title,18,j,1,1); - - mask=0x01<1000) rit=1000; - if(rit<-1000) rit=-1000; - vfo_update(NULL); - return TRUE; -} - -static gboolean rit_pressed_event_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { - if(rit_enabled) { - rit_enabled=FALSE; - set_button_text_color(rit_b,"black"); - rit=0; - gtk_widget_set_sensitive(rit_plus_b,FALSE); - gtk_widget_set_sensitive(rit_minus_b,FALSE); - } else { - rit_enabled=TRUE; - set_button_text_color(rit_b,"red"); - gtk_widget_set_sensitive(rit_plus_b,TRUE); - gtk_widget_set_sensitive(rit_minus_b,TRUE); - } - vfo_update(NULL); -} - -static gboolean rit_step_pressed_event_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { - if(widget==rit_plus_b) { - rit++; - } else { - rit--; - } - if(rit>1000) rit=1000; - if(rit<-1000) rit=-1000; - vfo_update(NULL); - rit_timer=g_timeout_add(200,rit_timer_cb,widget); - return TRUE; -} - - -static gboolean rit_step_released_event_cb (GtkWidget *widget, GdkEventButton *event, gpointer data) { - g_source_remove(rit_timer); - return TRUE; -} - - -GtkWidget* menu_init(int width,int height,GtkWidget *parent) { - - GdkRGBA black; - black.red=0.0; - black.green=0.0; - black.blue=0.0; - black.alpha=0.0; - - fprintf(stderr,"menu_init: width=%d height=%d\n",width,height); - - audio_get_cards(1); // input - audio_get_cards(0); // output - - parent_window=parent; - - h_box=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); - gtk_widget_set_size_request (h_box, width, height); - gtk_widget_override_background_color(h_box, GTK_STATE_NORMAL, &black); - - v_box_2=gtk_box_new(GTK_ORIENTATION_VERTICAL,0); - gtk_widget_override_background_color(v_box_2, GTK_STATE_NORMAL, &black); - - rit_plus_b=gtk_button_new_with_label("RIT+"); - gtk_widget_override_font(rit_plus_b, pango_font_description_from_string("FreeMono Bold 10")); - g_signal_connect (rit_plus_b, "pressed", G_CALLBACK(rit_step_pressed_event_cb), NULL); - g_signal_connect (rit_plus_b, "released", G_CALLBACK(rit_step_released_event_cb), NULL); - gtk_box_pack_start (GTK_BOX(v_box_2),rit_plus_b,TRUE,TRUE,0); - - rit_minus_b=gtk_button_new_with_label("RIT-"); - gtk_widget_override_font(rit_minus_b, pango_font_description_from_string("FreeMono Bold 10")); - g_signal_connect (rit_minus_b, "pressed", G_CALLBACK(rit_step_pressed_event_cb), NULL); - g_signal_connect (rit_minus_b, "released", G_CALLBACK(rit_step_released_event_cb), NULL); - gtk_box_pack_start (GTK_BOX(v_box_2),rit_minus_b,TRUE,TRUE,0); - - gtk_widget_set_sensitive(rit_plus_b,FALSE); - gtk_widget_set_sensitive(rit_minus_b,FALSE); - - gtk_box_pack_start (GTK_BOX(h_box),v_box_2,TRUE,TRUE,0); - - v_box_1=gtk_box_new(GTK_ORIENTATION_VERTICAL,0); - gtk_widget_override_background_color(v_box_1, GTK_STATE_NORMAL, &black); - - ctun_b=gtk_button_new_with_label("CTUN"); - gtk_widget_override_font(ctun_b, pango_font_description_from_string("FreeMono Bold 10")); - g_signal_connect (ctun_b, "pressed", G_CALLBACK(ctun_pressed_event_cb), NULL); - gtk_box_pack_start (GTK_BOX(v_box_1),ctun_b,TRUE,TRUE,0); - - rit_b=gtk_button_new_with_label("RIT"); - gtk_widget_override_font(rit_b, pango_font_description_from_string("FreeMono Bold 10")); - g_signal_connect (rit_b, "pressed", G_CALLBACK(rit_pressed_event_cb), NULL); - gtk_box_pack_start (GTK_BOX(v_box_1),rit_b,TRUE,TRUE,0); - - gtk_box_pack_start (GTK_BOX(h_box),v_box_1,TRUE,TRUE,0); - - menu_b=gtk_button_new_with_label("Menu"); - // gtk_widget_set_size_request (menu_b, width, height); - gtk_widget_override_font(menu_b, pango_font_description_from_string("FreeMono Bold 10")); - g_signal_connect (menu_b, "pressed", G_CALLBACK(menu_pressed_event_cb), NULL); - gtk_box_pack_start (GTK_BOX(h_box),menu_b,TRUE,TRUE,0); - - gtk_widget_show_all(h_box); - - return h_box; -} diff --git a/menu.h b/menu.h deleted file mode 100644 index 52c3e6f..0000000 --- a/menu.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) -* 2015 - John Melton, G0ORX/N6LYT -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* -*/ - - -#ifndef _MENU_H -#define _MENU_H - -GtkWidget* menu_init(int width,int height,GtkWidget *parent); - -#endif diff --git a/pihpsdr b/pihpsdr index 23dc59a..a1aca14 100755 Binary files a/pihpsdr and b/pihpsdr differ diff --git a/radio.c b/radio.c index 985086f..11aeba1 100644 --- a/radio.c +++ b/radio.c @@ -509,6 +509,8 @@ fprintf(stderr,"radioRestoreState: %s\n",property_path); if(value) updates_per_second=atoi(value); value=getProperty("display_panadapter"); if(value) display_panadapter=atoi(value); + value=getProperty("display_filled"); + if(value) display_filled=atoi(value); value=getProperty("display_detector_mode"); if(value) display_detector_mode=atoi(value); value=getProperty("display_average_mode"); @@ -579,6 +581,8 @@ fprintf(stderr,"radioRestoreState: %s\n",property_path); if(value) agc_gain=atof(value); value=getProperty("agc_slope"); if(value) agc_slope=atof(value); + value=getProperty("agc_hang_threshold"); + if(value) agc_hang_threshold=atof(value); value=getProperty("step"); if(value) step=atoi(value); value=getProperty("cw_keys_reversed"); @@ -661,6 +665,8 @@ void radioSaveState() { setProperty("updates_per_second",value); sprintf(value,"%d",display_panadapter); setProperty("display_panadapter",value); + sprintf(value,"%d",display_filled); + setProperty("display_filled",value); sprintf(value,"%d",display_detector_mode); setProperty("display_detector_mode",value); sprintf(value,"%d",display_average_mode); @@ -731,6 +737,8 @@ void radioSaveState() { setProperty("agc_gain",value); sprintf(value,"%f",agc_slope); setProperty("agc_slope",value); + sprintf(value,"%f",agc_hang_threshold); + setProperty("agc_hang_threshold",value); sprintf(value,"%d",step); setProperty("step",value); sprintf(value,"%d",cw_keys_reversed); diff --git a/release/pihpsdr.tar b/release/pihpsdr.tar index 901e40a..12f688f 100644 Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ diff --git a/release/pihpsdr/pihpsdr b/release/pihpsdr/pihpsdr index 23dc59a..a1aca14 100755 Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ diff --git a/rit.c b/rit.c index 02523e4..412e1e4 100644 --- a/rit.c +++ b/rit.c @@ -155,12 +155,12 @@ GtkWidget* rit_init(int width,int height,GtkWidget *parent) { ctun_b=gtk_button_new_with_label("CTUN"); gtk_widget_override_font(ctun_b, pango_font_description_from_string("FreeMono Bold 10")); - g_signal_connect (ctun_b, "pressed", G_CALLBACK(ctun_pressed_event_cb), NULL); + g_signal_connect (ctun_b, "button_press_event", G_CALLBACK(ctun_pressed_event_cb), NULL); gtk_box_pack_start (GTK_BOX(v_box_1),ctun_b,TRUE,TRUE,0); rit_b=gtk_button_new_with_label("RIT"); gtk_widget_override_font(rit_b, pango_font_description_from_string("FreeMono Bold 10")); - g_signal_connect (rit_b, "pressed", G_CALLBACK(rit_pressed_event_cb), NULL); + g_signal_connect (rit_b, "button_press_event", G_CALLBACK(rit_pressed_event_cb), NULL); gtk_box_pack_start (GTK_BOX(v_box_1),rit_b,TRUE,TRUE,0); gtk_box_pack_start (GTK_BOX(h_box),v_box_1,TRUE,TRUE,0); diff --git a/splash.c b/splash.c index b465a86..c021c99 100644 --- a/splash.c +++ b/splash.c @@ -20,14 +20,14 @@ #include #include "version.h" -GtkWidget *splash_window; +GtkWidget *splash_screen; GtkWidget *status; static cairo_surface_t *splash_surface = NULL; /* Close the splash screen */ void splash_close() { - gtk_widget_destroy(splash_window); + gtk_widget_destroy(splash_screen); } static gboolean splash_configure_event_cb (GtkWidget *widget, @@ -49,13 +49,13 @@ static gboolean splash_configure_event_cb (GtkWidget *widget, void splash_show(char* image_name,int width,int height,int full_screen) { GtkWidget *image; - splash_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + splash_screen = gtk_window_new (GTK_WINDOW_TOPLEVEL); if(full_screen) { - gtk_window_fullscreen(GTK_WINDOW(splash_window)); + gtk_window_fullscreen(GTK_WINDOW(splash_screen)); } - gtk_widget_set_size_request(splash_window, width, height); - gtk_window_set_position(GTK_WINDOW(splash_window),GTK_WIN_POS_CENTER_ALWAYS); - gtk_window_set_resizable(GTK_WINDOW(splash_window), FALSE); + gtk_widget_set_size_request(splash_screen, width, height); + gtk_window_set_position(GTK_WINDOW(splash_screen),GTK_WIN_POS_CENTER_ALWAYS); + gtk_window_set_resizable(GTK_WINDOW(splash_screen), FALSE); GtkWidget *grid = gtk_grid_new(); @@ -63,9 +63,9 @@ void splash_show(char* image_name,int width,int height,int full_screen) gtk_grid_set_column_homogeneous(GTK_GRID(grid),FALSE); image=gtk_image_new_from_file(image_name); - //gtk_container_add(GTK_CONTAINER(splash_window), image); + //gtk_container_add(GTK_CONTAINER(splash_screen), image); gtk_grid_attach(GTK_GRID(grid), image, 0, 0, 1, 4); - g_signal_connect (splash_window,"configure-event", + g_signal_connect (splash_screen,"configure-event", G_CALLBACK (splash_configure_event_cb), NULL); char build[64]; @@ -84,11 +84,11 @@ void splash_show(char* image_name,int width,int height,int full_screen) gtk_label_set_justify(GTK_LABEL(status),GTK_JUSTIFY_LEFT); gtk_widget_override_font(status, pango_font_description_from_string("FreeMono 18")); gtk_widget_show(status); - //gtk_container_add(GTK_CONTAINER(splash_window), status); + //gtk_container_add(GTK_CONTAINER(splash_screen), status); gtk_grid_attach(GTK_GRID(grid), status, 1, 3, 1, 1); - gtk_container_add(GTK_CONTAINER(splash_window), grid); - gtk_widget_show_all (splash_window); + gtk_container_add(GTK_CONTAINER(splash_screen), grid); + gtk_widget_show_all (splash_screen); } void splash_status(char *text) { diff --git a/splash.h b/splash.h index a6be1fc..8c6e1ad 100644 --- a/splash.h +++ b/splash.h @@ -21,7 +21,7 @@ #ifndef _SPLASH_H #define _SPLASH_H -extern GtkWidget* splash_window; +extern GtkWidget* splash_screen; void splash_close(void); void splash_show(char *image_name,int time,int width,int height); diff --git a/toolbar.c b/toolbar.c index 3d6e3d6..b687134 100644 --- a/toolbar.c +++ b/toolbar.c @@ -20,6 +20,7 @@ #include #include #include +#include #ifdef GPIO #include "gpio.h" #endif @@ -28,6 +29,7 @@ #include "filter.h" #include "frequency.h" #include "bandstack.h" +#include "xvtr.h" #include "band.h" #include "discovered.h" #include "new_protocol.h" @@ -150,6 +152,7 @@ static void band_select_cb(GtkWidget *widget, gpointer data) { } void band_cb(GtkWidget *widget, gpointer data) { + BAND* band; int show=1; if(last_dialog!=NULL) { if(strcmp(gtk_window_get_title(GTK_WINDOW(last_dialog)),"Band")==0) { @@ -166,7 +169,7 @@ void band_cb(GtkWidget *widget, gpointer data) { gtk_grid_set_row_homogeneous(GTK_GRID(grid),TRUE); GtkWidget *b; int i; - for(i=0;i=band70 && i<=band3400) { @@ -174,19 +177,26 @@ void band_cb(GtkWidget *widget, gpointer data) { } } #endif - BAND* band=band_get_band(i); - GtkWidget *b=gtk_button_new_with_label(band->title); - set_button_text_color(b,"black"); - //gtk_widget_override_font(b, pango_font_description_from_string("Arial 20")); - if(i==band_get_current()) { - set_button_text_color(b,"orange"); - last_band=b; + + if(ititle)>0) { + GtkWidget *b=gtk_button_new_with_label(band->title); + set_button_text_color(b,"black"); + //gtk_widget_override_font(b, pango_font_description_from_string("Arial 20")); + if(i==band_get_current()) { + set_button_text_color(b,"orange"); + last_band=b; + } + gtk_widget_show(b); + gtk_grid_attach(GTK_GRID(grid),b,i%5,i/5,1,1); + g_signal_connect(b,"clicked",G_CALLBACK(band_select_cb),(gpointer *)i); } - gtk_widget_show(b); - gtk_grid_attach(GTK_GRID(grid),b,i%5,i/5,1,1); - g_signal_connect(b,"clicked",G_CALLBACK(band_select_cb),(gpointer *)i); } - + gtk_container_add(GTK_CONTAINER(content),grid); GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); @@ -342,7 +352,7 @@ void mode_cb(GtkWidget *widget, gpointer data) { //gtk_widget_override_font(b, pango_font_description_from_string("Arial 20")); gtk_widget_show(b); gtk_grid_attach(GTK_GRID(grid),b,i%5,i/5,1,1); - g_signal_connect(b,"pressed",G_CALLBACK(mode_select_cb),(gpointer *)i); + g_signal_connect(b,"button_press_event",G_CALLBACK(mode_select_cb),(gpointer *)i); } gtk_container_add(GTK_CONTAINER(content),grid); GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); @@ -408,7 +418,7 @@ void filter_cb(GtkWidget *widget, gpointer data) { } gtk_widget_show(b); gtk_grid_attach(GTK_GRID(grid),b,i%5,i/5,1,1); - g_signal_connect(b,"pressed",G_CALLBACK(filter_select_cb),(gpointer *)i); + g_signal_connect(b,"button_press_event",G_CALLBACK(filter_select_cb),(gpointer *)i); } gtk_container_add(GTK_CONTAINER(content),grid); GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); @@ -536,35 +546,35 @@ void agc_cb(GtkWidget *widget, gpointer data) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_off), agc==AGC_OFF); gtk_widget_show(b_off); gtk_grid_attach(GTK_GRID(grid),b_off,0,0,2,1); - g_signal_connect(b_off,"pressed",G_CALLBACK(agc_select_cb),(gpointer *)AGC_OFF); + g_signal_connect(b_off,"button_press_event",G_CALLBACK(agc_select_cb),(gpointer *)AGC_OFF); GtkWidget *b_long=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_off),"Long"); //gtk_widget_override_font(b_long, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_long), agc==AGC_LONG); gtk_widget_show(b_long); gtk_grid_attach(GTK_GRID(grid),b_long,0,1,2,1); - g_signal_connect(b_long,"pressed",G_CALLBACK(agc_select_cb),(gpointer *)AGC_LONG); + g_signal_connect(b_long,"button_press_event",G_CALLBACK(agc_select_cb),(gpointer *)AGC_LONG); GtkWidget *b_slow=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_long),"Slow"); //gtk_widget_override_font(b_slow, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_slow), agc==AGC_SLOW); gtk_widget_show(b_slow); gtk_grid_attach(GTK_GRID(grid),b_slow,0,2,2,1); - g_signal_connect(b_slow,"pressed",G_CALLBACK(agc_select_cb),(gpointer *)AGC_SLOW); + g_signal_connect(b_slow,"button_press_event",G_CALLBACK(agc_select_cb),(gpointer *)AGC_SLOW); GtkWidget *b_medium=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_slow),"Medium"); //gtk_widget_override_font(b_medium, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_medium), agc==AGC_MEDIUM); gtk_widget_show(b_medium); gtk_grid_attach(GTK_GRID(grid),b_medium,0,3,2,1); - g_signal_connect(b_medium,"pressed",G_CALLBACK(agc_select_cb),(gpointer *)AGC_MEDIUM); + g_signal_connect(b_medium,"button_press_event",G_CALLBACK(agc_select_cb),(gpointer *)AGC_MEDIUM); GtkWidget *b_fast=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_medium),"Fast"); //gtk_widget_override_font(b_fast, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_fast), agc==AGC_FAST); gtk_widget_show(b_fast); gtk_grid_attach(GTK_GRID(grid),b_fast,0,4,2,1); - g_signal_connect(b_fast,"pressed",G_CALLBACK(agc_select_cb),(gpointer *)AGC_FAST); + g_signal_connect(b_fast,"button_press_event",G_CALLBACK(agc_select_cb),(gpointer *)AGC_FAST); gtk_container_add(GTK_CONTAINER(content),grid); @@ -606,21 +616,21 @@ void noise_cb(GtkWidget *widget, gpointer data) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_nr_none), nr_none==1); gtk_widget_show(b_nr_none); gtk_grid_attach(GTK_GRID(grid),b_nr_none,0,0,2,1); - g_signal_connect(b_nr_none,"pressed",G_CALLBACK(nr_none_cb),NULL); + g_signal_connect(b_nr_none,"button_press_event",G_CALLBACK(nr_none_cb),NULL); GtkWidget *b_nr=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_nr_none),"NR"); //gtk_widget_override_font(b_nr, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_nr), nr==1); gtk_widget_show(b_nr); gtk_grid_attach(GTK_GRID(grid),b_nr,0,1,2,1); - g_signal_connect(b_nr,"pressed",G_CALLBACK(nr_cb),NULL); + g_signal_connect(b_nr,"button_press_event",G_CALLBACK(nr_cb),NULL); GtkWidget *b_nr2=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_nr),"NR2"); //gtk_widget_override_font(b_nr2, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_nr2), nr2==1); gtk_widget_show(b_nr2); gtk_grid_attach(GTK_GRID(grid),b_nr2,0,2,2,1); - g_signal_connect(b_nr2,"pressed",G_CALLBACK(nr2_cb),NULL); + g_signal_connect(b_nr2,"button_press_event",G_CALLBACK(nr2_cb),NULL); /* GtkWidget *b_nb=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_nr2),"NB"); @@ -628,14 +638,14 @@ void noise_cb(GtkWidget *widget, gpointer data) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_nb), nb==1); gtk_widget_show(b_nb); gtk_grid_attach(GTK_GRID(grid),b_nb,0,3,2,1); - g_signal_connect(b_nb,"pressed",G_CALLBACK(nb_cb),NULL); + g_signal_connect(b_nb,"button_press_event",G_CALLBACK(nb_cb),NULL); GtkWidget *b_nb2=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_nb),"NB2"); //gtk_widget_override_font(b_nb2, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_nb2), nb2==1); gtk_widget_show(b_nb2); gtk_grid_attach(GTK_GRID(grid),b_nb2,0,4,2,1); - g_signal_connect(b_nb2,"pressed",G_CALLBACK(nb2_cb),NULL); + g_signal_connect(b_nb2,"button_press_event",G_CALLBACK(nb2_cb),NULL); */ GtkWidget *b_anf=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_nr2),"ANF"); @@ -643,14 +653,14 @@ void noise_cb(GtkWidget *widget, gpointer data) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_anf), anf==1); gtk_widget_show(b_anf); gtk_grid_attach(GTK_GRID(grid),b_anf,0,3,2,1); - g_signal_connect(b_anf,"pressed",G_CALLBACK(anf_cb),NULL); + g_signal_connect(b_anf,"button_press_event",G_CALLBACK(anf_cb),NULL); GtkWidget *b_snb=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(b_anf),"SNB"); //gtk_widget_override_font(b_snb, pango_font_description_from_string("Arial 16")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_snb), snb==1); gtk_widget_show(b_snb); gtk_grid_attach(GTK_GRID(grid),b_snb,0,4,2,1); - g_signal_connect(b_snb,"pressed",G_CALLBACK(snb_cb),NULL); + g_signal_connect(b_snb,"button_press_event",G_CALLBACK(snb_cb),NULL); gtk_container_add(GTK_CONTAINER(content),grid); @@ -714,13 +724,13 @@ static void exit_cb(GtkWidget *widget, gpointer data) { //gtk_widget_override_font(b_yes, pango_font_description_from_string("Arial 18")); gtk_widget_show(b_yes); gtk_grid_attach(GTK_GRID(grid),b_yes,0,1,1,1); - g_signal_connect(b_yes,"pressed",G_CALLBACK(yes_cb),NULL); + g_signal_connect(b_yes,"button_press_event",G_CALLBACK(yes_cb),NULL); GtkWidget *b_halt=gtk_button_new_with_label("Halt System"); //gtk_widget_override_font(b_halt, pango_font_description_from_string("Arial 18")); gtk_widget_show(b_halt); gtk_grid_attach(GTK_GRID(grid),b_halt,2,1,1,1); - g_signal_connect(b_halt,"pressed",G_CALLBACK(halt_cb),NULL); + g_signal_connect(b_halt,"button_press_event",G_CALLBACK(halt_cb),NULL); gtk_container_add(GTK_CONTAINER(content),grid); GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Cancel",GTK_RESPONSE_OK); @@ -934,21 +944,21 @@ static void cw_cb(GtkWidget *widget, gpointer data) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keyer_straight), cw_keyer_mode==KEYER_STRAIGHT); gtk_widget_show(cw_keyer_straight); gtk_grid_attach(GTK_GRID(grid),cw_keyer_straight,0,2,1,1); - g_signal_connect(cw_keyer_straight,"pressed",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_STRAIGHT); + g_signal_connect(cw_keyer_straight,"button_press_event",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_STRAIGHT); GtkWidget *cw_keyer_mode_a=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(cw_keyer_straight),"CW KEYER MODE A"); //gtk_widget_override_font(cw_keyer_mode_a, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keyer_mode_a), cw_keyer_mode==KEYER_MODE_A); gtk_widget_show(cw_keyer_mode_a); gtk_grid_attach(GTK_GRID(grid),cw_keyer_mode_a,0,3,1,1); - g_signal_connect(cw_keyer_mode_a,"pressed",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_MODE_A); + g_signal_connect(cw_keyer_mode_a,"button_press_event",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_MODE_A); GtkWidget *cw_keyer_mode_b=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(cw_keyer_mode_a),"CW KEYER MODE B"); //gtk_widget_override_font(cw_keyer_mode_b, pango_font_description_from_string("Arial 18")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_keyer_mode_b), cw_keyer_mode==KEYER_MODE_B); gtk_widget_show(cw_keyer_mode_b); gtk_grid_attach(GTK_GRID(grid),cw_keyer_mode_b,0,4,1,1); - g_signal_connect(cw_keyer_mode_b,"pressed",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_MODE_B); + g_signal_connect(cw_keyer_mode_b,"button_press_event",G_CALLBACK(cw_keyer_mode_cb),(gpointer *)KEYER_MODE_B); gtk_container_add(GTK_CONTAINER(content),grid); GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK); diff --git a/vfo.c b/vfo.c index 454265e..70289fc 100644 --- a/vfo.c +++ b/vfo.c @@ -371,7 +371,7 @@ vfo_press_event_cb (GtkWidget *widget, gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (step_rb), steps[i]==step); gtk_widget_show(step_rb); gtk_grid_attach(GTK_GRID(grid),step_rb,i%5,i/5,1,1); - g_signal_connect(step_rb,"pressed",G_CALLBACK(vfo_step_select_cb),(gpointer *)i); + g_signal_connect(step_rb,"button_press_event",G_CALLBACK(vfo_step_select_cb),(gpointer *)i); i++; } diff --git a/xvtr.h b/xvtr.h index f94ab49..4e29307 100644 --- a/xvtr.h +++ b/xvtr.h @@ -28,7 +28,7 @@ /** * @brief XVTR definition */ -struct _XVTR_ENTRY { +struct _XVTR { char title[16]; BANDSTACK *bandstack; unsigned char OCrx; @@ -43,6 +43,6 @@ struct _XVTR_ENTRY { long long frequencyLO; }; -typedef struct _XVTR_ENTRY XVTR_ENTRY; +typedef struct _XVTR XVTR; #endif