From 5ea981c6b1ae38ecbb5418c420318d34b0055cf6 Mon Sep 17 00:00:00 2001 From: John Melton G0ORX Date: Fri, 15 Nov 2019 14:00:36 +0000 Subject: [PATCH] Changed SAT button to single button and radio menu to drop down list --- ext.c | 15 ++++++++++----- gpio.c | 6 +----- gpio.h | 1 - i2c.c | 5 +---- radio_menu.c | 36 +++++++++--------------------------- 5 files changed, 21 insertions(+), 42 deletions(-) diff --git a/ext.c b/ext.c index 58dfff5..12a2cd4 100644 --- a/ext.c +++ b/ext.c @@ -575,11 +575,16 @@ int ext_diversity_update(void *data) { } int ext_sat_update(void *data) { - int mode=GPOINTER_TO_INT(data); - if(sat_mode==mode) { - sat_mode=SAT_NONE; - } else { - sat_mode=mode; + switch(sat_mode) { + case SAT_NONE: + sat_mode=SAT_MODE; + break; + case SAT_MODE: + sat_mode=RSAT_MODE; + break; + case RSAT_MODE: + sat_mode=SAT_NONE; + break; } vfo_update(); return 0; diff --git a/gpio.c b/gpio.c index 70ce4e8..5ae0d6f 100644 --- a/gpio.c +++ b/gpio.c @@ -338,7 +338,6 @@ char *sw_string[SWITCH_ACTIONS] = { "SPLIT", "DIVERSITY", "SAT", - "RSAT", "BAND MENU", "BANDSTACK MENU", "MODE MENU", @@ -533,10 +532,7 @@ fprintf(stderr,"e_function_pressed: %d\n",action); g_idle_add(ext_diversity_update,GINT_TO_POINTER(0)); break; case SAT: - if(can_transmit) g_idle_add(ext_sat_update,GINT_TO_POINTER(SAT_MODE)); - break; - case RSAT: - if(can_transmit) g_idle_add(ext_sat_update,GINT_TO_POINTER(RSAT_MODE)); + if(can_transmit) g_idle_add(ext_sat_update,NULL); break; case MENU_BAND: g_idle_add(ext_band_update,NULL); diff --git a/gpio.h b/gpio.h index ca99052..c146579 100644 --- a/gpio.h +++ b/gpio.h @@ -79,7 +79,6 @@ enum { SPLIT, DIVERSITY, SAT, - RSAT, MENU_BAND, MENU_BANDSTACK, MENU_MODE, diff --git a/i2c.c b/i2c.c index d9333ad..4f99b9c 100644 --- a/i2c.c +++ b/i2c.c @@ -276,10 +276,7 @@ void i2c_interrupt() { g_idle_add(ext_diversity_update,GINT_TO_POINTER(0)); break; case SAT: - if(can_transmit) g_idle_add(ext_sat_update,GINT_TO_POINTER(SAT_MODE)); - break; - case RSAT: - if(can_transmit) g_idle_add(ext_sat_update,GINT_TO_POINTER(RSAT_MODE)); + if(can_transmit) g_idle_add(ext_sat_update,NULL); break; case MENU_BAND: g_idle_add(ext_band_update,NULL); diff --git a/radio_menu.c b/radio_menu.c index 0559c3a..59fcaa6 100644 --- a/radio_menu.c +++ b/radio_menu.c @@ -212,22 +212,7 @@ static void duplex_cb(GtkWidget *widget, gpointer data) { } static void sat_cb(GtkWidget *widget, gpointer data) { - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rsat_b), FALSE); - sat_mode=SAT_MODE; - } else { - sat_mode=SAT_NONE; - } - vfo_update(); -} - -static void rsat_cb(GtkWidget *widget, gpointer data) { - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sat_b), FALSE); - sat_mode=RSAT_MODE; - } else { - sat_mode=SAT_NONE; - } + sat_mode=gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); vfo_update(); } @@ -655,17 +640,14 @@ void radio_menu(GtkWidget *parent) { col++; - sat_b=gtk_check_button_new_with_label("SAT"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sat_b), sat_mode==SAT_MODE); - gtk_grid_attach(GTK_GRID(grid),sat_b,col,row,1,1); - g_signal_connect(sat_b,"toggled",G_CALLBACK(sat_cb),NULL); - - col++; - - rsat_b=gtk_check_button_new_with_label("RSAT"); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rsat_b), sat_mode==RSAT_MODE); - gtk_grid_attach(GTK_GRID(grid),rsat_b,col,row,1,1); - g_signal_connect(rsat_b,"toggled",G_CALLBACK(rsat_cb),NULL); + + GtkWidget *sat_combo=gtk_combo_box_text_new(); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(sat_combo),NULL,"SAT Off"); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(sat_combo),NULL,"SAT"); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(sat_combo),NULL,"RSAT"); + gtk_combo_box_set_active(GTK_COMBO_BOX(sat_combo),sat_mode); + gtk_grid_attach(GTK_GRID(grid),sat_combo,col,row,1,1); + g_signal_connect(sat_combo,"changed",G_CALLBACK(sat_cb),NULL); row++; if(row>temp_row) temp_row=row; -- 2.45.2