]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
save/restor panadapter fill. save/restore agc hang time. changed layout of discovery.
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Tue, 22 Nov 2016 17:47:55 +0000 (17:47 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Tue, 22 Nov 2016 17:47:55 +0000 (17:47 +0000)
15 files changed:
band.c
band.h
main.c
menu.c [deleted file]
menu.h [deleted file]
pihpsdr
radio.c
release/pihpsdr.tar
release/pihpsdr/pihpsdr
rit.c
splash.c
splash.h
toolbar.c
vfo.c
xvtr.h

diff --git a/band.c b/band.c
index 4d7d2b41197a14720a0456f5551cd0a8b9281a4d..7b00195779e127b120b92f530e014eecacfc1940 100644 (file)
--- 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 65125042066122980d2725e7d92e92a4fc2e0744..cf2884505b04f28ee8932e8afdcc6ccbe17166ae 100644 (file)
--- a/band.h
+++ b/band.h
@@ -22,6 +22,7 @@
 
 #include <gtk/gtk.h>
 #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 e585fc7f6fa522c463eec6e14789e3b96166c986..fbcb6388c076053b1df09e2cc3b46778395ac148 100644 (file)
--- 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 (file)
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 <gtk/gtk.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <string.h>
-
-#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<<oc;
-  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
-    band->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<<oc;
-  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
-    band->OCtx|=mask;
-  } else {
-    band->OCtx&=~mask;
-  }
-}
-
-static void oc_tune_cb(GtkWidget *widget, gpointer data) {
-  int oc=((int)data)&0xF;
-  int mask=0x01<<oc;
-  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
-    OCtune|=mask;
-  } else {
-    OCtune&=~mask;
-  }
-}
-
-static void detector_mode_cb(GtkWidget *widget, gpointer data) {
-  display_detector_mode=(int)data;
-  SetDisplayDetectorMode(CHANNEL_RX0, 0, display_detector_mode);
-}
-
-static void average_mode_cb(GtkWidget *widget, gpointer data) {
-  display_average_mode=(int)data;
-  SetDisplayAverageMode(CHANNEL_RX0, 0, display_average_mode);
-}
-
-static void time_value_changed_cb(GtkWidget *widget, gpointer data) {
-  display_average_time=gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget));
-  calculate_display_average();
-  //SetDisplayAvBackmult(CHANNEL_RX0, 0, display_avb);
-  //SetDisplayNumAverage(CHANNEL_RX0, 0, display_average);
-}
-
-static void filled_cb(GtkWidget *widget, gpointer data) {
-  display_filled=display_filled==1?0:1;
-}
-
-static void frames_per_second_value_changed_cb(GtkWidget *widget, gpointer data) {
-  updates_per_second=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
-  calculate_display_average();
-}
-
-static void oc_full_tune_time_cb(GtkWidget *widget, gpointer data) {
-  OCfull_tune_time=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
-}
-
-static void oc_memory_tune_time_cb(GtkWidget *widget, gpointer data) {
-  OCmemory_tune_time=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
-}
-
-static void pre_post_agc_cb(GtkWidget *widget, gpointer data) {
-  nr_agc=(int)data;
-  SetRXAEMNRPosition(CHANNEL_RX0, nr_agc);
-
-}
-
-static void nr2_gain_cb(GtkWidget *widget, gpointer data) {
-  nr2_gain_method==(int)data;
-  SetRXAEMNRgainMethod(CHANNEL_RX0, nr2_gain_method);
-}
-
-static void nr2_npe_method_cb(GtkWidget *widget, gpointer data) {
-  nr2_npe_method=(int)data;
-  SetRXAEMNRnpeMethod(CHANNEL_RX0, nr2_npe_method);
-}
-
-static void ae_cb(GtkWidget *widget, gpointer data) {
-  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
-    nr2_ae=1;
-  } else {
-    nr2_ae=0;
-  }
-  SetRXAEMNRaeRun(CHANNEL_RX0, nr2_ae);
-}
-
-static void rx_ant_cb(GtkWidget *widget, gpointer data) {
-  int b=((int)data)>>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;i<HAM_BANDS;i++) {
-            for(j=0;j<11;j++) {
-              child=gtk_grid_get_child_at(GTK_GRID(ant_grid),j,i+1);
-              gtk_widget_set_sensitive(child,TRUE);
-            }
-          }
-        } else {
-          for(i=0;i<HAM_BANDS;i++) {
-            for(j=0;j<11;j++) {
-              child=gtk_grid_get_child_at(GTK_GRID(ant_grid),j,i+1);
-              gtk_widget_set_sensitive(child,FALSE);
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-static gboolean menu_pressed_event_cb (GtkWidget *widget,
-               GdkEventButton *event,
-               gpointer        data)
-{
-  int i, j, id;
-
-  GtkWidget *dialog=gtk_dialog_new_with_buttons("Menu",GTK_WINDOW(parent_window),GTK_DIALOG_DESTROY_WITH_PARENT,NULL,NULL);
-
-  GtkWidget *content=gtk_dialog_get_content_area(GTK_DIALOG(dialog));
-
-
-
-  GtkWidget *notebook=gtk_notebook_new();
-  g_signal_connect(notebook,"switch_page",G_CALLBACK(switch_page_cb),NULL);
-
-  GtkWidget *general_label=gtk_label_new("General");
-  GtkWidget *general_grid=gtk_grid_new();
-  gtk_grid_set_column_spacing (GTK_GRID(general_grid),10);
-  //gtk_grid_set_row_homogeneous(GTK_GRID(general_grid),TRUE);
-  //gtk_grid_set_column_homogeneous(GTK_GRID(general_grid),TRUE);
-
-
-  GtkWidget *vfo_divisor_label=gtk_label_new("VFO Encoder Divisor: ");
-  //gtk_widget_override_font(vfo_divisor_label, pango_font_description_from_string("Arial 18"));
-  gtk_widget_show(vfo_divisor_label);
-  gtk_grid_attach(GTK_GRID(general_grid),vfo_divisor_label,0,0,1,1);
-
-  GtkWidget *vfo_divisor=gtk_spin_button_new_with_range(1.0,60.0,1.0);
-  //gtk_widget_override_font(vfo_divisor, pango_font_description_from_string("Arial 18"));
-  gtk_spin_button_set_value(GTK_SPIN_BUTTON(vfo_divisor),(double)vfo_encoder_divisor);
-  gtk_widget_show(vfo_divisor);
-  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,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,3,1,1);
-    g_signal_connect(rx_random_b,"toggled",G_CALLBACK(rx_random_cb),NULL);
-
-
-/*
-    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,4,1,1);
-    g_signal_connect(rx_preamp_b,"toggled",G_CALLBACK(rx_preamp_cb),NULL);
-*/
-
-    if((protocol==NEW_PROTOCOL && device==NEW_DEVICE_ORION) ||
-       (protocol==NEW_PROTOCOL && device==NEW_DEVICE_ORION2) ||
-       (protocol==ORIGINAL_PROTOCOL && device==DEVICE_ORION)) {
-
-      GtkWidget *ptt_ring_b=gtk_radio_button_new_with_label(NULL,"PTT On Ring, Mic and Bias on Tip");
-      //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);
-      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);
-      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);
-      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);
-      g_signal_connect(bias_b,"toggled",G_CALLBACK(bias_cb),NULL);
-    }
-
-
-    GtkWidget *alex_b=gtk_check_button_new_with_label("ALEX");
-    //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,1,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,1,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);
-  
-/*
-    GtkWidget *apollo_tuner_b=gtk_check_button_new_with_label("Auto Tuner");
-    //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,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,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 raspberrypi
-      gtk_widget_set_sensitive(sample_rate_768,FALSE);
-      gtk_widget_set_sensitive(sample_rate_1536,FALSE);
-#endif
-    }
-
-  }
-  
-#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);
-
-
-
-  GtkWidget *audio_label=gtk_label_new("Audio");
-  GtkWidget *audio_grid=gtk_grid_new();
-  //gtk_grid_set_row_homogeneous(GTK_GRID(audio_grid),TRUE);
-  gtk_grid_set_column_spacing (GTK_GRID(audio_grid),10);
-
-  if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) {
-    GtkWidget *linein_b=gtk_check_button_new_with_label("Mic Line In");
-    //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(audio_grid),linein_b,0,0,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(audio_grid),micboost_b,0,1,1,1);
-    g_signal_connect(micboost_b,"toggled",G_CALLBACK(micboost_cb),NULL);
-  }
-
-
-  if(n_output_devices>0) {
-    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;i<n_output_devices;i++) {
-      GtkWidget *output;
-      if(i==0) {
-        output=gtk_radio_button_new_with_label(NULL,output_devices[i]);
-      } else {
-        output=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(output),output_devices[i]);
-      }
-      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (output), n_selected_output_device==i);
-      gtk_widget_show(output);
-      gtk_grid_attach(GTK_GRID(audio_grid),output,1,i+1,1,1);
-      g_signal_connect(output,"pressed",G_CALLBACK(local_output_changed_cb),(gpointer *)i);
-    }
-  }
-
-  if(n_input_devices>0) {
-    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;i<n_input_devices;i++) {
-      GtkWidget *input;
-      if(i==0) {
-        input=gtk_radio_button_new_with_label(NULL,input_devices[i]);
-      } else {
-        input=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(input),input_devices[i]);
-      }
-      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (input), n_selected_input_device==i);
-      gtk_widget_show(input);
-      gtk_grid_attach(GTK_GRID(audio_grid),input,2,i+1,1,1);
-      g_signal_connect(input,"pressed",G_CALLBACK(local_input_changed_cb),(gpointer *)i);
-    }
-  }
-
-  id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),audio_grid,audio_label);
-
-
-  GtkWidget *ant_label=gtk_label_new("Ant");
-  ant_grid=gtk_grid_new();
-  gtk_grid_set_row_homogeneous(GTK_GRID(ant_grid),TRUE);
-  gtk_grid_set_column_spacing (GTK_GRID(ant_grid),10);
-
-  if(protocol==ORIGINAL_PROTOCOL || protocol==NEW_PROTOCOL) {
-    GtkWidget *rx_ant_label=gtk_label_new("Receive");
-    //gtk_widget_override_font(rx_ant_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(rx_ant_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),rx_ant_label,0,0,1,1);
-
-    GtkWidget *rx1_label=gtk_label_new("1");
-    //gtk_widget_override_font(rx1_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(rx1_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),rx1_label,1,0,1,1);
-
-    GtkWidget *rx2_label=gtk_label_new("2");
-    //gtk_widget_override_font(rx2_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(rx2_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),rx2_label,2,0,1,1);
-
-    GtkWidget *rx3_label=gtk_label_new("3");
-    //gtk_widget_override_font(rx3_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(rx3_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),rx3_label,3,0,1,1);
-
-    GtkWidget *ext1_label=gtk_label_new("EXT1");
-    //gtk_widget_override_font(ext1_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(ext1_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),ext1_label,4,0,1,1);
-
-    GtkWidget *ext2_label=gtk_label_new("EXT2");
-    //gtk_widget_override_font(ext2_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(ext2_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),ext2_label,5,0,1,1);
-
-    GtkWidget *xvtr_label=gtk_label_new("XVTR");
-    //gtk_widget_override_font(xvtr_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(xvtr_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),xvtr_label,6,0,1,1);
-
-    GtkWidget *tx_ant_label=gtk_label_new("Transmit");
-    //gtk_widget_override_font(tx_ant_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(tx_ant_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),tx_ant_label,7,0,1,1);
-
-    GtkWidget *tx1_label=gtk_label_new("1");
-    //gtk_widget_override_font(tx1_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(tx1_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),tx1_label,8,0,1,1);
-
-    GtkWidget *tx2_label=gtk_label_new("2");
-    //gtk_widget_override_font(tx2_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(tx2_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),tx2_label,9,0,1,1);
-
-    GtkWidget *tx3_label=gtk_label_new("3");
-    //gtk_widget_override_font(tx3_label, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(tx3_label);
-    gtk_grid_attach(GTK_GRID(ant_grid),tx3_label,10,0,1,1);
-
-
-  
-    for(i=0;i<HAM_BANDS;i++) {
-      BAND *band=band_get_band(i);
-  
-      GtkWidget *band_label=gtk_label_new(band->title);
-      //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;i<HAM_BANDS;i++) {
-      BAND *band=band_get_band(i);
-
-      GtkWidget *band_label=gtk_label_new(band->title);
-      //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;i<HAM_BANDS;i++) {
-      BAND *band=band_get_band(i);
-  
-      GtkWidget *band_label=gtk_label_new(band->title);
-      //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<<j;
-        GtkWidget *oc_rx_b=gtk_check_button_new();
-        //gtk_widget_override_font(oc_rx_b, pango_font_description_from_string("Arial 18"));
-        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (oc_rx_b), (band->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<<j;
-      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), (OCtune&mask)==mask);
-      gtk_widget_show(oc_tune_b);
-      gtk_grid_attach(GTK_GRID(oc_grid),oc_tune_b,19,j,1,1);
-      g_signal_connect(oc_tune_b,"toggled",G_CALLBACK(oc_tune_cb),(gpointer)j);
-    }
-
-    GtkWidget *oc_full_tune_time_title=gtk_label_new("Full Tune(ms):");
-    //gtk_widget_override_font(oc_full_tune_time_title, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(oc_full_tune_time_title);
-    gtk_grid_attach(GTK_GRID(oc_grid),oc_full_tune_time_title,18,j,2,1);
-    j++;
-  
-    GtkWidget *oc_full_tune_time_b=gtk_spin_button_new_with_range(0.0,9999.0,1.0);
-    //gtk_widget_override_font(oc_full_tune_time_b, pango_font_description_from_string("Arial 18"));
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(oc_full_tune_time_b),(double)OCfull_tune_time);
-    gtk_widget_show(oc_full_tune_time_b);
-    gtk_grid_attach(GTK_GRID(oc_grid),oc_full_tune_time_b,18,j,2,1);
-    g_signal_connect(oc_full_tune_time_b,"value_changed",G_CALLBACK(oc_full_tune_time_cb),NULL);
-    j++;
-  
-    GtkWidget *oc_memory_tune_time_title=gtk_label_new("Memory Tune(ms):");
-    //gtk_widget_override_font(oc_memory_tune_time_title, pango_font_description_from_string("Arial 18"));
-    gtk_widget_show(oc_memory_tune_time_title);
-    gtk_grid_attach(GTK_GRID(oc_grid),oc_memory_tune_time_title,18,j,2,1);
-    j++;
-
-    GtkWidget *oc_memory_tune_time_b=gtk_spin_button_new_with_range(0.0,9999.0,1.0);
-    //gtk_widget_override_font(oc_memory_tune_time_b, pango_font_description_from_string("Arial 18"));
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(oc_memory_tune_time_b),(double)OCmemory_tune_time);
-    gtk_widget_show(oc_memory_tune_time_b);
-    gtk_grid_attach(GTK_GRID(oc_grid),oc_memory_tune_time_b,18,j,2,1);
-    g_signal_connect(oc_memory_tune_time_b,"value_changed",G_CALLBACK(oc_memory_tune_time_cb),NULL);
-    j++;
-  
-    id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),oc_grid,oc_label);
-  }
-
-
-
-
-
-  GtkWidget *exit_label=gtk_label_new("Exit");
-  GtkWidget *exit_grid=gtk_grid_new();
-  //gtk_grid_set_row_homogeneous(GTK_GRID(exit_grid),TRUE);
-  gtk_grid_set_row_spacing (GTK_GRID(exit_grid),20);
-
-  GtkWidget *exit_button=gtk_button_new_with_label("Exit PiHPSDR");
-  g_signal_connect (exit_button, "pressed", G_CALLBACK(exit_pressed_event_cb), NULL);
-  gtk_grid_attach(GTK_GRID(exit_grid),exit_button,0,0,1,1);
-
-  GtkWidget *reboot_button=gtk_button_new_with_label("Reboot");
-  g_signal_connect (reboot_button, "pressed", G_CALLBACK(reboot_pressed_event_cb), NULL);
-  gtk_grid_attach(GTK_GRID(exit_grid),reboot_button,0,1,1,1);
-
-  GtkWidget *shutdown_button=gtk_button_new_with_label("Shutdown");
-  g_signal_connect (shutdown_button, "pressed", G_CALLBACK(shutdown_pressed_event_cb), NULL);
-  gtk_grid_attach(GTK_GRID(exit_grid),shutdown_button,0,2,1,1);
-
-  id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),exit_grid,exit_label);
-
-  gtk_container_add(GTK_CONTAINER(content),notebook);
-
-  GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close Dialog",GTK_RESPONSE_OK);
- // gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 18"));
-
-  gtk_widget_show_all(dialog);
-
-  int result=gtk_dialog_run(GTK_DIALOG(dialog));
-
-  radioSaveState();
-
-  gtk_widget_destroy (dialog);
-
-  return TRUE;
-
-}
-
-static gboolean ctun_pressed_event_cb (GtkWidget *widget, GdkEventButton *event, gpointer        data) {
-  ctun=ctun==1?0:1;
-  
-  if(ctun) {
-    set_button_text_color(ctun_b,"red");
-  } else {
-    set_button_text_color(ctun_b,"black");
-    if(ddsOffset!=0) {
-      ddsOffset=0;
-      wdsp_set_offset(ddsOffset);
-      vfo_update(NULL);
-    }
-  }
-  return TRUE;
-}
-
-static gboolean rit_timer_cb(gpointer data) {
-  if((GtkWidget*)data==rit_plus_b) {
-    rit++;
-  } else {
-    rit--;
-  }
-  if(rit>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 (file)
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 23dc59a6df3185bf5460544b1345bef5a00a782e..a1aca144aa280b90ea0829372254f453fe8733cf 100755 (executable)
Binary files a/pihpsdr and b/pihpsdr differ
diff --git a/radio.c b/radio.c
index 985086fe7e62100eb1417c84c1dffbb116666df9..11aeba1d9c6b851261084a455639479981bcf576 100644 (file)
--- 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);
index 901e40a63772e3ee04fcdc749ea8f873700e630f..12f688f772f03b19ed27a021930edf628c650db2 100644 (file)
Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ
index 23dc59a6df3185bf5460544b1345bef5a00a782e..a1aca144aa280b90ea0829372254f453fe8733cf 100755 (executable)
Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ
diff --git a/rit.c b/rit.c
index 02523e408f0ac76ba127f7871b7ecc1d3f711d76..412e1e4476d6ac4225ce61a589c9fa7ea0630890 100644 (file)
--- 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);
index b465a8687305bac2611cdfcd141679d6378e540b..c021c992b225c8c98876a596054b9ef01d014e57 100644 (file)
--- a/splash.c
+++ b/splash.c
 #include <gtk/gtk.h>
 #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) {
index a6be1fc3396cffa04cfa9c572d98b8aa803b14b2..8c6e1ad0e750f00f7888fa73bcb6639832d498bd 100644 (file)
--- 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);
index 3d6e3d68bdf59b8f4248df70c0b4501cf015c2c8..b68713468f6a9509cff79415e3eafddc7a031f36 100644 (file)
--- a/toolbar.c
+++ b/toolbar.c
@@ -20,6 +20,7 @@
 #include <gtk/gtk.h>
 #include <semaphore.h>
 #include <stdio.h>
+#include <string.h>
 #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<BANDS;i++) {
+    for(i=0;i<BANDS+XVTRS;i++) {
 #ifdef LIMESDR
       if(protocol!=LIMESDR_PROTOCOL) {
         if(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(i<BANDS) {
+        band=band_get_band(i);
+      } else {
+        band=(BAND*)band_get_xvtr(i-BANDS);
+      }
+      if(strlen(band->title)>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 454265e5ac20d3fed29d7b219ed1f006f631d855..70289fc09293218e7d8086613da7fed41c59d51d 100644 (file)
--- 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 f94ab491bf57cd35041bf8eaf1cd5f0b5988e23a..4e2930725954de447bd078ed05e218dcb565b34e 100644 (file)
--- 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