]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
Added CTUN. Changed RIT interface. Fixed TX overdrive. Additional small fixes.
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Sat, 5 Nov 2016 08:50:16 +0000 (08:50 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Sat, 5 Nov 2016 08:50:16 +0000 (08:50 +0000)
21 files changed:
Makefile
gpio.c
main.c
menu.c
meter.c
new_protocol.c
new_protocol.h
old_protocol.c
panadapter.c
pihpsdr
property.c
property.h
radio.c
radio.h
release/pihpsdr.tar
release/pihpsdr/pihpsdr
splash.c
version.c
version.h
vfo.c
wdsp_init.c

index f34fa6808c6f17c4d7efa913fc5d6a909614d82b..0bc1ad77b0b4723e19acfa711e932263f04baf08 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -93,13 +93,15 @@ else
   gpio.o
 endif
 
+#uncomment if build for SHORT FRAMES (MIC and Audio)
+SHORT_FRAMES="-D SHORT_FRAMES"
 
 GTKINCLUDES=`pkg-config --cflags gtk+-3.0`
 GTKLIBS=`pkg-config --libs gtk+-3.0`
 
 AUDIO_LIBS=-lasound
 
-OPTIONS=-g -D $(UNAME_N) $(GPIO_OPTIONS) $(LIMESDR_OPTIONS) $(FREEDV_OPTIONS) $(PSK_OPTIONS) -D GIT_DATE='"$(GIT_DATE)"' -D GIT_VERSION='"$(GIT_VERSION)"' $(DEBUG_OPTION) -O3
+OPTIONS=-g -D $(UNAME_N) $(GPIO_OPTIONS) $(LIMESDR_OPTIONS) $(FREEDV_OPTIONS) $(PSK_OPTIONS) $(SHORT_FRAMES) -D GIT_DATE='"$(GIT_DATE)"' -D GIT_VERSION='"$(GIT_VERSION)"' $(DEBUG_OPTION) -O3
 
 LIBS=-lrt -lm -lwdsp -lpthread $(AUDIO_LIBS) -lpulse $(PSKLIBS) $(GTKLIBS) $(GPIO_LIBS) $(SOAPYSDRLIBS) $(FREEDVLIBS)
 INCLUDES=$(GTKINCLUDES)
diff --git a/gpio.c b/gpio.c
index da56eae6ffa527c6411cce83f76f1bba6b01da47..86a3a6a7ab93edf11a188c073079bcc16f1cdd08 100644 (file)
--- a/gpio.c
+++ b/gpio.c
@@ -450,8 +450,12 @@ fprintf(stderr,"encoder_init\n");
   }
 
   if(ENABLE_VFO_ENCODER) {
-    gpioSetMode(VFO_ENCODER_A, PI_INPUT);
-    gpioSetMode(VFO_ENCODER_B, PI_INPUT);
+    if(gpioSetMode(VFO_ENCODER_A, PI_INPUT)!=0) {
+      fprintf(stderr,"gpioSetMode for VFO_ENCODER_A failed\n");
+    }
+    if(gpioSetMode(VFO_ENCODER_B, PI_INPUT)!=0) {
+      fprintf(stderr,"gpioSetMode for VFO_ENCODER_B failed\n");
+    }
     if(ENABLE_VFO_PULLUP) {
       gpioSetPullUpDown(VFO_ENCODER_A, PI_PUD_UP);
       gpioSetPullUpDown(VFO_ENCODER_B, PI_PUD_UP);
@@ -459,8 +463,12 @@ fprintf(stderr,"encoder_init\n");
       gpioSetPullUpDown(VFO_ENCODER_A, PI_PUD_OFF);
       gpioSetPullUpDown(VFO_ENCODER_B, PI_PUD_OFF);
     }
-    gpioSetAlertFunc(VFO_ENCODER_A, vfoEncoderPulse);
-    gpioSetAlertFunc(VFO_ENCODER_B, vfoEncoderPulse);
+    if(gpioSetAlertFunc(VFO_ENCODER_A, vfoEncoderPulse)!=0) {
+      fprintf(stderr,"gpioSetAlertFunc for VFO_ENCODER_A failed\n");
+    }
+    if(gpioSetAlertFunc(VFO_ENCODER_B, vfoEncoderPulse)!=0) {
+      fprintf(stderr,"gpioSetAlertFunc for VFO_ENCODER_B failed\n");
+    }
     vfoEncoderPos=0;
   }
 
@@ -588,7 +596,7 @@ fprintf(stderr,"encoder_init\n");
     fprintf(stderr,"wiringPiSetup\n");
     if (wiringPiSetup () < 0) {
       printf ("Unable to setup wiringPi: %s\n", strerror (errno));
-      return 1;
+      return -1;
     }
 
     FILE *fp;
@@ -609,12 +617,12 @@ fprintf(stderr,"encoder_init\n");
 
     if ( wiringPiISR (0, INT_EDGE_BOTH, &interruptB) < 0 ) {
       printf ("Unable to setup ISR: %s\n", strerror (errno));
-      return 1;
+      return -1;
     }
 
     if ( wiringPiISR (1, INT_EDGE_BOTH, &interruptA) < 0 ) {
       printf ("Unable to setup ISR: %s\n", strerror (errno));
-      return 1;
+      return -1;
     }
 #endif
 
@@ -796,31 +804,24 @@ static int rf_encoder_changed(void *data) {
 static int agc_encoder_changed(void *data) {
   int pos=*(int*)data;
   if(pos!=0) {
-    if(agcFunction) {
-      rit-=pos;
-      if(rit>1000) rit=1000;
-      if(rit<-1000) rit=-1000;
-      vfo_update(NULL);
+    if(function) {
+      int att=attenuation;
+      att+=pos;
+      if(att<0) {
+        att=0;
+      } else if (att>31) {
+        att=31;
+      }
+      set_attenuation_value((double)att);
     } else {
-      if(function) {
-        int att=attenuation;
-        att+=pos;
-        if(att<0) {
-          att=0;
-        } else if (att>31) {
-          att=31;
-        }
-        set_attenuation_value((double)att);
-      } else {
-        double gain=agc_gain;
-        gain+=(double)pos;
-        if(gain<-20.0) {
-          gain=-20.0;
-        } else if(gain>120.0) {
-          gain=120.0;
-        }
-        set_agc_gain(gain);
+      double gain=agc_gain;
+      gain+=(double)pos;
+      if(gain<-20.0) {
+        gain=-20.0;
+      } else if(gain>120.0) {
+        gain=120.0;
       }
+      set_agc_gain(gain);
     }
   }
   return 0;
diff --git a/main.c b/main.c
index dad0605705a93a40146a911344d6f16a46f1602c..6c95e0a38e7ac6efcb7d3d0f84d85425fee81474 100644 (file)
--- a/main.c
+++ b/main.c
 #define VFO_HEIGHT ((display_height/32)*4)
 #define VFO_WIDTH ((display_width/32)*16)
 #define MENU_HEIGHT VFO_HEIGHT
-#define MENU_WIDTH ((display_width/32)*3)
+//#define MENU_WIDTH ((display_width/32)*3)
+#define MENU_WIDTH ((display_width/32)*8)
 #define METER_HEIGHT VFO_HEIGHT
-#define METER_WIDTH ((display_width/32)*13)
+//#define METER_WIDTH ((display_width/32)*13)
+#define METER_WIDTH ((display_width/32)*8)
 #define PANADAPTER_HEIGHT ((display_height/32)*8)
 #define SLIDERS_HEIGHT ((display_height/32)*6)
 #define TOOLBAR_HEIGHT ((display_height/32)*2)
@@ -384,7 +386,7 @@ gint init(void* arg) {
                                  GTK_MESSAGE_ERROR,
                                  GTK_BUTTONS_OK_CANCEL,
                                  "No devices found! Retry Discovery?");
-          gtk_widget_override_font(discovery_dialog, pango_font_description_from_string("Arial 18"));
+          gtk_widget_override_font(discovery_dialog, pango_font_description_from_string("FreeMono 18"));
           gint result=gtk_dialog_run (GTK_DIALOG (discovery_dialog));
           gtk_widget_destroy(discovery_dialog);
           if(result==GTK_RESPONSE_CANCEL) {
@@ -407,7 +409,7 @@ gint init(void* arg) {
                                       GTK_RESPONSE_CLOSE,
                                       NULL);
 
-          gtk_widget_override_font(discovery_dialog, pango_font_description_from_string("Arial 18"));
+          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));
@@ -463,12 +465,12 @@ fprintf(stderr,"%p protocol=%d name=%s\n",d,d->protocol,d->name);
               }
 
               GtkWidget *label=gtk_label_new(text);
-              gtk_widget_override_font(label, pango_font_description_from_string("Arial 12"));
+              gtk_widget_override_font(label, pango_font_description_from_string("FreeMono 12"));
               gtk_widget_show(label);
               gtk_grid_attach(GTK_GRID(grid),label,0,i,3,1);
 
               GtkWidget *start_button=gtk_button_new_with_label("Start");
-              gtk_widget_override_font(start_button, pango_font_description_from_string("Arial 18"));
+              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);
@@ -543,7 +545,7 @@ fprintf(stderr,"selected radio=%p device=%d\n",radio,radio->device);
   }
 
   //splash_status("Initializing wdsp ...");
-  wdsp_init(0,display_width,d->protocol);
+  wdsp_init(0,display_width,radio->protocol);
 
   switch(radio->protocol) {
     case ORIGINAL_PROTOCOL:
@@ -564,7 +566,8 @@ fprintf(stderr,"selected radio=%p device=%d\n",radio,radio->device);
 
   splash_status("Initializing GPIO ...");
 #ifdef GPIO
-  gpio_init();
+  if(gpio_init()<0) {
+  }
 #endif
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
diff --git a/menu.c b/menu.c
index 9a1e4f23e4142f447f59c99f65938a6a16d6ad66..c2f3f98468f26e6647c08a53cc381872e13491bd 100644 (file)
--- a/menu.c
+++ b/menu.c
 
 static GtkWidget *parent_window;
 
-static GtkWidget *box;
-static GtkWidget *menu;
+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;
 
-#ifdef DEBUG
-static void scale_value_changed_cb(GtkWidget *widget, gpointer data) {
-  scale=(int)gtk_range_get_value(GTK_RANGE(widget));
-}
-
-#ifdef PSK
-static void psk_scale_value_changed_cb(GtkWidget *widget, gpointer data) {
-  psk_scale=(int)gtk_range_get_value(GTK_RANGE(widget));
-}
-#endif
+static gboolean rit_enabled=FALSE;
 
-#ifdef FREEDV
-static void freedv_scale_value_changed_cb(GtkWidget *widget, gpointer data) {
-  freedv_scale=(int)gtk_range_get_value(GTK_RANGE(widget));
+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);
 }
-#endif
-
-#endif
 
 static void agc_hang_threshold_value_changed_cb(GtkWidget *widget, gpointer data) {
   agc_hang_threshold=(int)gtk_range_get_value(GTK_RANGE(widget));
@@ -264,6 +265,19 @@ static void alex_cb(GtkWidget *widget, gpointer data) {
   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) {
@@ -279,6 +293,16 @@ static void apollo_cb(GtkWidget *widget, gpointer data) {
   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) {
@@ -1306,38 +1330,6 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
     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);
 
-
-#ifdef DEBUG
-    int column=((i/6)*2)+2;
-
-    GtkWidget *scale_label=gtk_label_new("Mic Scale:");
-    gtk_widget_show(scale_label);
-    gtk_grid_attach(GTK_GRID(tx_grid),scale_label,column,0,1,1);
-    GtkWidget *scale_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 20.0, 0.1);
-    gtk_range_set_value (GTK_RANGE(scale_scale),scale);
-    gtk_widget_show(scale_scale);
-    gtk_grid_attach(GTK_GRID(tx_grid),scale_scale,column+1,0,30,1);
-    g_signal_connect(G_OBJECT(scale_scale),"value_changed",G_CALLBACK(scale_value_changed_cb),NULL);
-
-    GtkWidget *psk_scale_label=gtk_label_new("PSK Scale:");
-    gtk_widget_show(psk_scale_label);
-    gtk_grid_attach(GTK_GRID(tx_grid),psk_scale_label,column,1,1,1);
-    GtkWidget *psk_scale_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 20.0, 0.1);
-    gtk_range_set_value (GTK_RANGE(psk_scale_scale),psk_scale);
-    gtk_widget_show(psk_scale_scale);
-    gtk_grid_attach(GTK_GRID(tx_grid),psk_scale_scale,column+1,1,30,1);
-    g_signal_connect(G_OBJECT(psk_scale_scale),"value_changed",G_CALLBACK(psk_scale_value_changed_cb),NULL);
-
-    GtkWidget *freedv_scale_label=gtk_label_new("FREEDV Scale:");
-    gtk_widget_show(freedv_scale_label);
-    gtk_grid_attach(GTK_GRID(tx_grid),freedv_scale_label,column,2,1,1);
-    GtkWidget *freedv_scale_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 20.0, 0.1);
-    gtk_range_set_value (GTK_RANGE(freedv_scale_scale),freedv_scale);
-    gtk_widget_show(freedv_scale_scale);
-    gtk_grid_attach(GTK_GRID(tx_grid),freedv_scale_scale,column+1,2,30,1);
-    g_signal_connect(G_OBJECT(freedv_scale_scale),"value_changed",G_CALLBACK(freedv_scale_value_changed_cb),NULL);
-#endif
-
     id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),tx_grid,tx_label);
   }
 
@@ -1618,6 +1610,70 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
 
 }
 
+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;
@@ -1633,16 +1689,52 @@ GtkWidget* menu_init(int width,int height,GtkWidget *parent) {
 
   parent_window=parent;
 
-  box=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0);
-  gtk_widget_set_size_request (box, width, height);
-  gtk_widget_override_background_color(box, GTK_STATE_NORMAL, &black);
+  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=gtk_button_new_with_label("Menu");
- // gtk_widget_set_size_request (menu, width, height);
-  g_signal_connect (menu, "pressed", G_CALLBACK(menu_pressed_event_cb), NULL);
-  gtk_box_pack_start (GTK_BOX(box),menu,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(box);
+  gtk_widget_show_all(h_box);
 
-  return box;
+  return h_box;
 }
diff --git a/meter.c b/meter.c
index 2d4aae54a7886f4308d676202778475d898e9830..3f7fb7e49d109475d42155acf21fbcf49463521a 100644 (file)
--- a/meter.c
+++ b/meter.c
@@ -154,7 +154,7 @@ meter_press_event_cb (GtkWidget *widget,
   gtk_container_add(GTK_CONTAINER(content),grid);
 
   GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK);
-  gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 18"));
+  gtk_widget_override_font(close_button, pango_font_description_from_string("FreeMono 18"));
   gtk_widget_show_all(dialog);
 
   g_signal_connect_swapped (dialog,
@@ -207,10 +207,13 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
   cairo_set_source_rgb (cr, 0, 0, 0);
   cairo_paint (cr);
 
-
-  sprintf(text,"Version: %s %s", build_date, build_version);
+  //sprintf(text,"Version: %s %s", build_date, build_version);
+  sprintf(text,"Version: %s", version);
+  cairo_select_font_face(cr, "FreeMono",
+                CAIRO_FONT_SLANT_NORMAL,
+                CAIRO_FONT_WEIGHT_BOLD);
   cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
-  cairo_set_font_size(cr, 12);
+  cairo_set_font_size(cr, 10);
   cairo_move_to(cr, 5, 15);
   cairo_show_text(cr, text);
 
@@ -231,13 +234,11 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
       // value is dBm
       text_location=10;
       offset=5.0;
-      cairo_select_font_face(cr, "Arial",
-                    CAIRO_FONT_SLANT_NORMAL,
-                    CAIRO_FONT_WEIGHT_BOLD);
       double level=value+(double)get_attenuation();
       if(meter_width>=114) {
-        int db=meter_width/114; // S9+60 (9*6)+60
-        if(db>2) db=2;
+        //int db=meter_width/114; // S9+60 (9*6)+60
+        //if(db>2) db=2;
+        int db=1;
         int i;
         cairo_set_line_width(cr, 1.0);
         cairo_set_source_rgb(cr, 1, 1, 1);
@@ -354,7 +355,7 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
 #endif
     case POWER:
       // value is Watts
-      cairo_select_font_face(cr, "Arial",
+      cairo_select_font_face(cr, "FreeMono",
             CAIRO_FONT_SLANT_NORMAL,
             CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr, 18);
@@ -370,7 +371,7 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
       cairo_show_text(cr, sf);
 
       double swr=(max_level+reverse)/(max_level-reverse);
-      cairo_select_font_face(cr, "Arial",
+      cairo_select_font_face(cr, "FreeMono",
             CAIRO_FONT_SLANT_NORMAL,
             CAIRO_FONT_WEIGHT_BOLD);
       cairo_set_font_size(cr, 18);
index 4e4ee03d70ae3fd9ea220e48d99774dc161aaf99..804fc6c16367fddc3fcbb730d862f05efb6ca1e2 100644 (file)
@@ -137,7 +137,11 @@ static double audiooutputbuffer[BUFFER_SIZE*2];
 static int leftaudiosample;
 static int rightaudiosample;
 static long audiosequence;
+#ifdef SHORT_FRAMES
 static unsigned char audiobuffer[260]; // was 1444
+#else
+static unsigned char audiobuffer[1444]; // was 1444
+#endif
 static int audioindex;
 
 #ifdef FREEDV
@@ -327,7 +331,10 @@ static void new_protocol_high_priority(int run) {
     buffer[12]=phase;
 
 // tx (no split yet)
-    long txFrequency=ddsFrequency;
+    long long txFrequency=ddsFrequency;
+    if(ctun) {
+      txFrequency+=ddsOffset;
+    }
     phase=(long)((4294967296.0*(double)txFrequency)/122880000.0);
 
     buffer[329]=phase>>24;
@@ -501,7 +508,7 @@ else LPF <= 7'b0001000;             // < 2.4MHz so use 160m LPF^M
     //buffer[1442]=attenuation;
     buffer[1443]=attenuation;
 
-//fprintf(stderr,"[4]=%02X\n", buffer[4]);
+//fprintf(stderr,"high_priority[4]=0x%02X\n", buffer[4]);
 //fprintf(stderr,"filters=%04X\n", filters);
 
     if(sendto(data_socket,buffer,sizeof(buffer),0,(struct sockaddr*)&high_priority_addr,high_priority_addr_length)<0) {
@@ -884,8 +891,8 @@ static void process_mic_data(unsigned char *buffer) {
                         for(j=0;j<freedv_resample;j++) {  // 8K to 48K
                           micsample=mod_out[s];
                           micsampledouble=(double)micsample/32767.0; // 16 bit sample 2^16-1
-                          micinputbuffer[micsamples*2]=micsampledouble*mic_gain;
-                          micinputbuffer[(micsamples*2)+1]=micsampledouble*mic_gain;
+                          micinputbuffer[micsamples*2]=micsampledouble*(mic_gain*1.0);
+                          micinputbuffer[(micsamples*2)+1]=micsampledouble*(mic_gain*1.0);
                           micsamples++;
                           if(micsamples==BUFFER_SIZE) {
                             full_tx_buffer();
@@ -906,8 +913,8 @@ static void process_mic_data(unsigned char *buffer) {
                    micinputbuffer[micsamples*2]=0.0;
                    micinputbuffer[(micsamples*2)+1]=0.0;
                } else {
-                   micinputbuffer[micsamples*2]=micsampledouble*mic_gain;
-                   micinputbuffer[(micsamples*2)+1]=micsampledouble*mic_gain;
+                   micinputbuffer[micsamples*2]=micsampledouble*(mic_gain*1.0);
+                   micinputbuffer[(micsamples*2)+1]=micsampledouble*(mic_gain*1.0);
                }
 
                micsamples++;
@@ -1054,7 +1061,7 @@ static void full_rx_buffer() {
 static void full_tx_buffer() {
   long isample;
   long qsample;
-  double gain=8388607.0*scale;;
+  double gain=8388607.0;
   int j;
   int error;
 
@@ -1063,15 +1070,15 @@ static void full_tx_buffer() {
 
 #ifdef FREEDV
   if(mode==modeFREEDV) {
-    gain=8388607.0*freedv_scale;
+    gain=8388607.0;
   }
 #endif
 
-  if(radio->device==DEVICE_METIS && atlas_penelope) {
+  if(radio->device==NEW_DEVICE_ATLAS && atlas_penelope) {
     if(tune) {
-      gain=8388607.0*(double)tune_drive;
+      gain=gain*tune_drive;
     } else {
-      gain=8388607.0*(double)drive;
+      gain=gain*(double)drive;
     }
   }
 
index 807d992dacf8f85b636c898399836d4b4ed47bf9..e53710cb3ef12761eaed23555a0cfb2b632e21e2 100644 (file)
 
 #define BUFFER_SIZE 1024
 
+#ifdef SHORT_FRAMES
 #define MIC_SAMPLES 64
+#else
+#define MIC_SAMPLES 720
+#endif
 
 extern int data_socket;
 extern sem_t response_sem;
index b46a1b67eda054294d36e20808d98b347fe4b924..e8600aac91a7d6631f252103f2bdddaf5d4a4315 100644 (file)
@@ -160,7 +160,7 @@ static int left_tx_sample;
 static int right_tx_sample;
 
 static unsigned char output_buffer[OZY_BUFFER_SIZE];
-static int output_buffer_index=0;
+static int output_buffer_index=8;
 
 static int command=0;
 
@@ -460,8 +460,8 @@ static void process_ozy_input_buffer(char  *buffer) {
                 for(j=0;j<freedv_divisor;j++) {
                   mic_sample=mod_out[s];
                   mic_sample_double=(double)mic_sample/32767.0f; // 16 bit sample 2^16-1
-                  micinputbuffer[samples*2]=mic_sample_double*mic_gain;
-                  micinputbuffer[(samples*2)+1]=mic_sample_double*mic_gain;
+                  micinputbuffer[samples*2]=mic_sample_double*(mic_gain*1);
+                  micinputbuffer[(samples*2)+1]=mic_sample_double*(mic_gain*1);
                   iqinputbuffer[samples*2]=0.0;
                   iqinputbuffer[(samples*2)+1]=0.0;
                   samples++;
@@ -483,8 +483,8 @@ static void process_ozy_input_buffer(char  *buffer) {
             micinputbuffer[samples*2]=0.0;
             micinputbuffer[(samples*2)+1]=0.0;
           } else {
-            micinputbuffer[samples*2]=mic_sample_double*mic_gain;
-            micinputbuffer[(samples*2)+1]=mic_sample_double*mic_gain;
+            micinputbuffer[samples*2]=mic_sample_double*(mic_gain*1);
+            micinputbuffer[(samples*2)+1]=mic_sample_double*(mic_gain*1);
           }
           iqinputbuffer[samples*2]=0.0;
           iqinputbuffer[(samples*2)+1]=0.0;
@@ -635,7 +635,7 @@ static void full_rx_buffer() {
 static void full_tx_buffer() {
   int j;
   int error;
-  double gain=32767.0*scale; // 2^16-1
+  double gain=32767.0; // 2^16-1
 
   // debug
   //int min_sample=0;
@@ -646,19 +646,14 @@ static void full_tx_buffer() {
   fexchange0(CHANNEL_TX, micinputbuffer, iqoutputbuffer, &error);
   Spectrum0(1, CHANNEL_TX, 0, 0, iqoutputbuffer);
 
-#ifdef FREEDV
-  if(mode==modeFREEDV) {
-    gain=32767.0*freedv_scale;
-  }
-#endif
-
   if(radio->device==DEVICE_METIS && atlas_penelope) {
     if(tune) {
-      gain=32767.0*tune_drive;
+      gain=gain*tune_drive;
     } else {
-      gain=32767.0*drive;
+      gain=gain*drive;
     }
   }
+fprintf(stderr,"full_tx_buffer: gain=%f\n",gain);
   for(j=0;j<output_buffer_size;j++) {
     left_rx_sample=0;
     right_rx_sample=0;
@@ -733,8 +728,8 @@ void *old_protocol_process_local_mic(unsigned char *buffer,int le) {
               for(j=0;j<freedv_divisor;j++) {  // 8K to 48K
                 leftmicsample=mod_out[s];
                 leftmicsampledouble=(double)leftmicsample/32767.0; // 16 bit sample 2^16-1
-                micinputbuffer[samples*2]=leftmicsampledouble*mic_gain;
-                micinputbuffer[(samples*2)+1]=leftmicsampledouble*mic_gain;
+                micinputbuffer[samples*2]=leftmicsampledouble*(mic_gain*1);
+                micinputbuffer[(samples*2)+1]=leftmicsampledouble*(mic_gain*1);
                 iqinputbuffer[samples*2]=0.0;
                 iqinputbuffer[(samples*2)+1]=0.0;
                 samples++;
@@ -756,8 +751,8 @@ void *old_protocol_process_local_mic(unsigned char *buffer,int le) {
             micinputbuffer[samples*2]=0.0;
             micinputbuffer[(samples*2)+1]=0.0;
           } else {
-            micinputbuffer[samples*2]=leftmicsampledouble*mic_gain;
-            micinputbuffer[(samples*2)+1]=leftmicsampledouble*mic_gain;
+            micinputbuffer[samples*2]=leftmicsampledouble*(mic_gain*1);
+            micinputbuffer[(samples*2)+1]=leftmicsampledouble*(mic_gain*1);
           }
           iqinputbuffer[samples*2]=0.0;
           iqinputbuffer[(samples*2)+1]=0.0;
@@ -923,6 +918,9 @@ void ozy_send_buffer() {
     case 1: // tx frequency
       output_buffer[C0]=0x02;
       long long txFrequency=ddsFrequency;
+      if(ctun) {
+        txFrequency+=ddsOffset;
+      }
       output_buffer[C1]=txFrequency>>24;
       output_buffer[C2]=txFrequency>>16;
       output_buffer[C3]=txFrequency>>8;
@@ -947,11 +945,13 @@ void ozy_send_buffer() {
       if(tune) {
         d=(float)tune_drive;
       }
-      BAND *band=band_get_current_band();
-      d=d*((float)band->pa_calibration/100.0F);
-      int power=(int)(d*255.0);
 
-//fprintf(stderr,"power=%d\n", power);
+      int power=0;
+      if(isTransmitting()) {
+        BAND *band=band_get_current_band();
+        d=d*((float)band->pa_calibration/100.0F);
+        power=(int)(d*255.0);
+      }
 
       output_buffer[C0]=0x12;
       output_buffer[C1]=power&0xFF;
index 33f08b801a2e83c2ccbb0848d30442998ef06bb9..2ac9faa880a8f7ea90eb96f244ec4146b0f6308f 100644 (file)
@@ -209,8 +209,13 @@ void panadapter_update(float *data,int tx) {
 
             // filter
             cairo_set_source_rgb (cr, 0.25, 0.25, 0.25);
-            filter_left=(double)display_width/2.0+(((double)getFilterLow()+ddsOffset)/hz_per_pixel);
-            filter_right=(double)display_width/2.0+(((double)getFilterHigh()+ddsOffset)/hz_per_pixel);
+            if(ctun && isTransmitting()) {
+              filter_left=(double)display_width/2.0+((double)getFilterLow()/hz_per_pixel);
+              filter_right=(double)display_width/2.0+((double)getFilterHigh()/hz_per_pixel);
+            } else {
+              filter_left=(double)display_width/2.0+(((double)getFilterLow()+ddsOffset)/hz_per_pixel);
+              filter_right=(double)display_width/2.0+(((double)getFilterHigh()+ddsOffset)/hz_per_pixel);
+            }
             cairo_rectangle(cr, filter_left, 0.0, filter_right-filter_left, (double)display_height);
             cairo_fill(cr);
 
@@ -227,7 +232,7 @@ void panadapter_update(float *data,int tx) {
                 cairo_line_to(cr,(double)display_width,(double)y);
 
                 cairo_set_source_rgb (cr, 0, 1, 1);
-                cairo_select_font_face(cr, "Arial",
+                cairo_select_font_face(cr, "FreeMono",
                     CAIRO_FONT_SLANT_NORMAL,
                     CAIRO_FONT_WEIGHT_BOLD);
                 cairo_set_font_size(cr, 12);
@@ -243,6 +248,9 @@ void panadapter_update(float *data,int tx) {
             long divisor=20000;
             long half=(long)getSampleRate()/2L;
             long frequency=getFrequency();
+            if(ctun && isTransmitting()) {
+              frequency+=ddsOffset;
+            }
             switch(sample_rate) {
               case 48000:
                 divisor=5000L;
@@ -277,7 +285,7 @@ void panadapter_update(float *data,int tx) {
                         cairo_line_to(cr,(double)i,(double)display_height);
 
                         cairo_set_source_rgb (cr, 0, 1, 1);
-                        cairo_select_font_face(cr, "Arial",
+                        cairo_select_font_face(cr, "FreeMono",
                             CAIRO_FONT_SLANT_NORMAL,
                             CAIRO_FONT_WEIGHT_BOLD);
                         cairo_set_font_size(cr, 12);
@@ -357,8 +365,8 @@ void panadapter_update(float *data,int tx) {
             // cursor
             cairo_set_source_rgb (cr, 1, 0, 0);
             cairo_set_line_width(cr, 1.0);
-            cairo_move_to(cr,(double)display_width/2.0,0.0);
-            cairo_line_to(cr,(double)display_width/2.0,(double)display_height);
+            cairo_move_to(cr,(double)(display_width/2.0)+(ddsOffset/hz_per_pixel),0.0);
+            cairo_line_to(cr,(double)(display_width/2.0)+(ddsOffset/hz_per_pixel),(double)display_height);
             cairo_stroke(cr);
 
             // signal
diff --git a/pihpsdr b/pihpsdr
index 30ef735d4484ad2a51bcb74945576ef6df8a9d95..d3fbb4dc0f17590ae19f547099a31dab55a90d92 100755 (executable)
Binary files a/pihpsdr and b/pihpsdr differ
index 32a7f07c0d2178c42841f92a93a7045682696e11..8e3c60d38f57598f4dffdea9895f236f0c42e03e 100644 (file)
@@ -68,10 +68,14 @@ void saveProperties(char* filename) {
     PROPERTY* property=properties;
     FILE* f=fopen(filename,"w+");
     char line[512];
+    char version[32];
     if(!f) {
         fprintf(stderr,"can't open %s\n",filename);
         exit(1);
     }
+
+    sprintf(version,"%0.2f", PROPERTY_VERSION);
+    setProperty("property_version",version);
     while(property) {
         sprintf(line,"%s=%s\n",property->name,property->value);
         fwrite(line,1,strlen(line),f);
index 7cccaeaa884550f6d7c23a447ea47c46663cf7b5..883025b55f693d38026db4e69725cd4d9a2e38d7 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef _PROPERTY_H
 #define _PROPERTY_H
 
+#define PROPERTY_VERSION 1.0
+
 typedef struct _PROPERTY PROPERTY;
 
 /* --------------------------------------------------------------------------*/
diff --git a/radio.c b/radio.c
index 964ac4a2eed59b9be5acbadf21ec5c915978a820..7afd0d3043c3dca745d3cf850ed9c627be739db9 100644 (file)
--- a/radio.c
+++ b/radio.c
@@ -49,14 +49,6 @@ DISCOVERED *radio;
 char property_path[128];
 sem_t property_sem;
 
-double scale=4.6;
-#ifdef FREEDV
-double freedv_scale=4.6;
-#endif
-#ifdef PSK
-double psk_scale=8.5;
-#endif
-
 int atlas_penelope=0;
 int atlas_clock_source_10mhz=0;
 int atlas_clock_source_128mhz=0;
@@ -206,6 +198,8 @@ char freedv_tx_text_data[64];
 
 static int pre_tune_mode;
 
+int ctun=0;
+
 void init_radio() {
   int rc;
   rc=sem_init(&property_sem, 0, 0);
@@ -225,7 +219,6 @@ int getSampleRate() {
 }
 
 void setMox(int state) {
-fprintf(stderr,"setMox: protocol=%d\n", protocol);
   if(mox!=state) {
     mox=state;
     if(protocol==NEW_PROTOCOL) {
@@ -251,7 +244,6 @@ int getMox() {
 }
 
 void setTune(int state) {
-fprintf(stderr,"setTune: protocol=%d\n", protocol);
   if(tune!=state) {
     tune=state;
     if(tune) {
@@ -279,6 +271,7 @@ fprintf(stderr,"setTune: protocol=%d\n", protocol);
       } else {
         SetTXAPostGenToneFreq(CHANNEL_TX,(double)cw_keyer_sidetone_frequency);
       }
+      //SetTXAPostGenToneMag(CHANNEL_TX,0.99999);
       SetTXAPostGenToneMag(CHANNEL_TX,1.0);
       SetTXAPostGenRun(CHANNEL_TX,1);
       SetChannelState(CHANNEL_RX0,0,1);
@@ -309,7 +302,17 @@ void setFrequency(long long f) {
     switch(protocol) {
       case NEW_PROTOCOL:
       case ORIGINAL_PROTOCOL:
-        entry->frequencyA=f;
+        if(ctun) {
+          long long minf=entry->frequencyA-(long long)(sample_rate/2);
+          long long maxf=entry->frequencyA+(long long)(sample_rate/2);
+          if(f<minf) f=minf;
+          if(f>maxf) f=maxf;
+          ddsOffset=f-entry->frequencyA;
+          wdsp_set_offset(ddsOffset);
+          return;
+        } else {
+          entry->frequencyA=f;
+        }
         break;
 #ifdef LIMESDR
       case LIMESDR_PROTOCOL:
@@ -319,7 +322,6 @@ void setFrequency(long long f) {
         if(f<minf) f=minf;
         if(f>maxf) f=maxf;
         ddsOffset=f-entry->frequencyA;
-fprintf(stderr,"radio.c: setFrequency: ddsOffset=%lld\n",ddsOffset);
         wdsp_set_offset(ddsOffset);
         return;
         }
@@ -328,7 +330,6 @@ fprintf(stderr,"radio.c: setFrequency: ddsOffset=%lld\n",ddsOffset);
     }
   }
 
-//fprintf(stderr,"setFrequency: protocol=%d f=%lld\n", protocol, f);
   ddsFrequency=f;
   switch(protocol) {
     case NEW_PROTOCOL:
diff --git a/radio.h b/radio.h
index b158ab1b43f9e9a0ec034efc4beca92718753ab0..4326f017a436bbd886c618361a642ad191e386b1 100644 (file)
--- a/radio.h
+++ b/radio.h
@@ -46,15 +46,6 @@ extern DISCOVERED *radio;
 
 extern char property_path[];
 
-extern double scale;
-#ifdef FREEDV
-extern double freedv_scale;
-#endif
-#ifdef PSK
-extern double psk_scale;
-#endif
-
-
 #define NONE 0
 
 #define ALEX 1
@@ -214,6 +205,8 @@ extern int eer_pwm_max;
 extern int tx_filter_low;
 extern int tx_filter_high;
 
+extern int ctun;
+
 extern void init_radio();
 extern void setSampleRate(int rate);
 extern int getSampleRate();
index da67cba8855d54fccd050848529001b6f2ad9f66..c5530ca044073e5136e4274ede7700109cabf313 100644 (file)
Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ
index 30ef735d4484ad2a51bcb74945576ef6df8a9d95..d3fbb4dc0f17590ae19f547099a31dab55a90d92 100755 (executable)
Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ
index 59b48be455ccd698c1d1798c28b61395a741d949..b465a8687305bac2611cdfcd141679d6378e540b 100644 (file)
--- a/splash.c
+++ b/splash.c
@@ -82,7 +82,7 @@ void splash_show(char* image_name,int width,int height,int full_screen)
 
   status=gtk_label_new("");
   gtk_label_set_justify(GTK_LABEL(status),GTK_JUSTIFY_LEFT);
-  gtk_widget_override_font(status, pango_font_description_from_string("Arial 18"));
+  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_grid_attach(GTK_GRID(grid), status, 1, 3, 1, 1);
index 54d090c9d51ea92fad844cc1b4fd997a89d564bd..6d60f92cb7dc9ffe8e4c6013ca93a210b12019ae 100644 (file)
--- a/version.c
+++ b/version.c
@@ -20,3 +20,4 @@
 char build_date[]=GIT_DATE;
 char build_version[]=GIT_VERSION;
 
+char version[]="1.0 rc1";
index 694d25db00a7fd6cdea562d97b013201ec3a141e..714f98a63f748cc098a28b2e1b280f58b574fcd3 100644 (file)
--- a/version.h
+++ b/version.h
@@ -22,5 +22,6 @@
 
 extern char build_version[];
 extern char build_date[];
+extern char version[];
 
 #endif
diff --git a/vfo.c b/vfo.c
index 2f55319f366e3e52aad64878a0884059e9c8207a..454265e5ac20d3fed29d7b219ed1f006f631d855 100644 (file)
--- a/vfo.c
+++ b/vfo.c
@@ -82,28 +82,34 @@ void vfo_move(int hz) {
       setFrequency((entry->frequencyA+ddsOffset-hz)/step*step);
     else 
 #endif
-      setFrequency((entry->frequencyA+ddsOffset+hz)/step*step);
+      if(ctun) {
+        setFrequency((entry->frequencyA+ddsOffset-hz)/step*step);
+      } else {
+        setFrequency((entry->frequencyA+ddsOffset+hz)/step*step);
+      }
     vfo_update(NULL);
   }
 }
 void vfo_move_to(int hz) {
   if(!locked) {
     BANDSTACK_ENTRY* entry=bandstack_entry_get_current();
-    //entry->frequencyA=(entry->frequencyA+hz)/step*step;
-    //setFrequency(entry->frequencyA);
 
 #ifdef LIMESDR
     if(protocol==LIMESDR_PROTOCOL) {
       setFrequency((entry->frequencyA+ddsOffset-hz)/step*step);
     } else {
 #endif
-      long f=(entry->frequencyA+ddsOffset+hz)/step*step;
-      if(mode==modeCWL) {
-        f+=cw_keyer_sidetone_frequency;
-      } else if(mode==modeCWU) {
-        f-=cw_keyer_sidetone_frequency;
+      if(ctun) {
+        setFrequency((entry->frequencyA+hz)/step*step);
+      } else {
+        long f=(entry->frequencyA+ddsOffset+hz)/step*step;
+        if(mode==modeCWL) {
+          f+=cw_keyer_sidetone_frequency;
+        } else if(mode==modeCWU) {
+          f-=cw_keyer_sidetone_frequency;
+        }
+        setFrequency(f);
       }
-      setFrequency(f);
 #ifdef LIMESDR
     }
 #endif
@@ -189,7 +195,7 @@ int vfo_update(void *data) {
         cairo_set_source_rgb (cr, 0, 0, 0);
         cairo_paint (cr);
 
-        cairo_select_font_face(cr, "Arial",
+        cairo_select_font_face(cr, "FreeMono",
             CAIRO_FONT_SLANT_NORMAL,
             CAIRO_FONT_WEIGHT_BOLD);
 
@@ -209,9 +215,8 @@ int vfo_update(void *data) {
         switch(radio->protocol) {
             case ORIGINAL_PROTOCOL:
             case NEW_PROTOCOL:
-              sprintf(text,"%s (%s %s) %s",
+              sprintf(text,"%s %s %s",
                     radio->name,
-                    radio->protocol==ORIGINAL_PROTOCOL?"old":"new",
                     version,
                     inet_ntoa(radio->info.network.address.sin_addr));
               break;
@@ -223,7 +228,7 @@ int vfo_update(void *data) {
 #endif
         }
         cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
-        cairo_set_font_size(cr, 12);
+        cairo_set_font_size(cr, 10);
         cairo_move_to(cr, 5, 15);  
         cairo_show_text(cr, text);
 
@@ -362,7 +367,7 @@ vfo_press_event_cb (GtkWidget *widget,
       } else {
           step_rb=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(step_rb),step_labels[i]);
       }
-      gtk_widget_override_font(step_rb, pango_font_description_from_string("Arial 18"));
+      gtk_widget_override_font(step_rb, pango_font_description_from_string("FreeMono 18"));
       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);
@@ -373,7 +378,7 @@ vfo_press_event_cb (GtkWidget *widget,
     gtk_container_add(GTK_CONTAINER(content),grid);
   
     GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close",GTK_RESPONSE_OK);
-    gtk_widget_override_font(close_button, pango_font_description_from_string("Arial 18"));
+    gtk_widget_override_font(close_button, pango_font_description_from_string("FreeMono 18"));
     gtk_widget_show_all(dialog);
 
     g_signal_connect_swapped (dialog,
index 34040e213813a61b5b0db5b321966bdde9ed284f..77496b737990fccb6921dd6901872a01c8d2e7d2 100644 (file)
@@ -155,6 +155,8 @@ fprintf(stderr,"setFilter: %d %d\n",low,high);
         filterHigh=high;
     }
 
+fprintf(stderr,"setFilter: filterLow=%d filterHigh=%d\n",filterLow,filterHigh);
+
     double fl=filterLow+ddsOffset;
     double fh=filterHigh+ddsOffset;
 
@@ -313,7 +315,7 @@ void wdsp_init(int rx,int pixels,int protocol) {
     receiver=rx;
     spectrumWIDTH=pixels;
 
-    fprintf(stderr,"wdsp_init: %d\n",rx);
+    fprintf(stderr,"wdsp_init: rx=%d pixels=%d protocol=%d\n",rx,pixels,protocol);
    
     if(protocol==ORIGINAL_PROTOCOL) {
         micSampleRate=sample_rate;