]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
moved display configuration to Menu->Display from Discovery
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Fri, 12 Aug 2016 06:38:12 +0000 (06:38 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Fri, 12 Aug 2016 06:38:12 +0000 (06:38 +0000)
14 files changed:
configure.c
configure.h
main.c
main.h
menu.c
meter.c
old_protocol.c
panadapter.c
pihpsdr
radio.h
release/pihpsdr.tar
release/pihpsdr/libwdsp.so
release/pihpsdr/pihpsdr
waterfall.c

index 763ff749c1c520a9d572a3a364a2d7809416387a..ecc36eefbbbe023b28b7a9ee20455081d4600941 100644 (file)
 #include "radio.h"
 #include "gpio.h"
 
-static void display_panadapter_cb(GtkWidget *widget, gpointer data) {
-  display_panadapter=display_panadapter==1?0:1;
-}
-
-static void display_waterfall_cb(GtkWidget *widget, gpointer data) {
-  display_waterfall=display_waterfall==1?0:1;
-}
-
-static void display_sliders_cb(GtkWidget *widget, gpointer data) {
-  display_sliders=display_sliders==1?0:1;
-}
-
-static void display_toolbar_cb(GtkWidget *widget, gpointer data) {
-  display_toolbar=display_toolbar==1?0:1;
-}
-
-/*
-static void toolbar_dialog_buttons_cb(GtkWidget *widget, gpointer data) {
-  toolbar_dialog_buttons=toolbar_dialog_buttons==1?0:1;
-}
-*/
-
 #ifdef GPIO
 void configure_gpio(GtkWidget *parent) {
   gpio_restore_state();
@@ -339,60 +317,3 @@ void configure_gpio(GtkWidget *parent) {
 }
 #endif
 
-void configure(DISCOVERED* d,GtkWidget *parent) {
-
-  GtkWidget *dialog=gtk_dialog_new_with_buttons("Configure",GTK_WINDOW(parent),GTK_DIALOG_DESTROY_WITH_PARENT,NULL,NULL);
-  GtkWidget *content=gtk_dialog_get_content_area(GTK_DIALOG(dialog));
-  GtkWidget *grid=gtk_grid_new();
-  gtk_grid_set_column_homogeneous(GTK_GRID(grid),FALSE);
-  gtk_grid_set_row_homogeneous(GTK_GRID(grid),FALSE);
-
-  GtkWidget *display_label=gtk_label_new("Display:");
-  //gtk_widget_override_font(display_label, pango_font_description_from_string("Arial 18"));
-  gtk_widget_show(display_label);
-  gtk_grid_attach(GTK_GRID(grid),display_label,0,0,1,1);
-
-  GtkWidget *b_display_panadapter=gtk_check_button_new_with_label("Display Panadapter");
-  //gtk_widget_override_font(b_display_panadapter, pango_font_description_from_string("Arial 18"));
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_panadapter), display_panadapter);
-  gtk_widget_show(b_display_panadapter);
-  gtk_grid_attach(GTK_GRID(grid),b_display_panadapter,0,1,1,1);
-  g_signal_connect(b_display_panadapter,"toggled",G_CALLBACK(display_panadapter_cb),(gpointer *)NULL);
-
-  GtkWidget *b_display_waterfall=gtk_check_button_new_with_label("Display Waterfall");
-  //gtk_widget_override_font(b_display_waterfall, pango_font_description_from_string("Arial 18"));
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_waterfall), display_waterfall);
-  gtk_widget_show(b_display_waterfall);
-  gtk_grid_attach(GTK_GRID(grid),b_display_waterfall,0,2,1,1);
-  g_signal_connect(b_display_waterfall,"toggled",G_CALLBACK(display_waterfall_cb),(gpointer *)NULL);
-
-  GtkWidget *b_display_sliders=gtk_check_button_new_with_label("Display Sliders");
-  //gtk_widget_override_font(b_display_sliders, pango_font_description_from_string("Arial 18"));
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_sliders), display_sliders);
-  gtk_widget_show(b_display_sliders);
-  gtk_grid_attach(GTK_GRID(grid),b_display_sliders,0,3,1,1);
-  g_signal_connect(b_display_sliders,"toggled",G_CALLBACK(display_sliders_cb),(gpointer *)NULL);
-
-  GtkWidget *b_display_toolbar=gtk_check_button_new_with_label("Display Toolbar");
-  //gtk_widget_override_font(b_display_toolbar, pango_font_description_from_string("Arial 18"));
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (b_display_toolbar), display_toolbar);
-  gtk_widget_show(b_display_toolbar);
-  gtk_grid_attach(GTK_GRID(grid),b_display_toolbar,0,4,1,1);
-  g_signal_connect(b_display_toolbar,"toggled",G_CALLBACK(display_toolbar_cb),(gpointer *)NULL);
-
-  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 20"));
-  gtk_widget_show_all(dialog);
-
-  g_signal_connect_swapped (dialog,
-                           "response",
-                           G_CALLBACK (gtk_widget_destroy),
-                           dialog);
-
-  int result=gtk_dialog_run(GTK_DIALOG(dialog));
-
-  radioSaveState();
-
-}
index 1efad1a0fd6971c85d253cd96ca29607d05bddfc..3750463ac773116264d8a1365bb1a251b968bbf1 100644 (file)
@@ -21,4 +21,3 @@
 #ifdef INCLUDE_GPIO
 void configure_gpio(GtkWidget *parent);
 #endif
-void configure(DISCOVERED *d,GtkWidget *parent);
diff --git a/main.c b/main.c
index 3cda268d7b7e81adb03bddb13063ba2d72138b54..df5448c51d7f9e692f6983cdf3070ec100052005 100644 (file)
--- a/main.c
+++ b/main.c
@@ -96,7 +96,14 @@ static sem_t wisdom_sem;
 static GdkCursor *cursor_arrow;
 static GdkCursor *cursor_watch;
 
+static GtkWidget *window;
+static GtkWidget *grid;
 static GtkWidget *fixed;
+static GtkWidget *vfo;
+static GtkWidget *menu;
+static GtkWidget *meter;
+static GtkWidget *sliders;
+static GtkWidget *toolbar;
 static GtkWidget *panadapter;
 static GtkWidget *waterfall;
 #ifdef PSK
@@ -269,31 +276,6 @@ fprintf(stderr,"start_cb: %d\n",selected_device);
     gtk_widget_destroy(discovery_dialog);
 }
 
-static void configure_cb(GtkWidget *widget, gpointer data) {
-  DISCOVERED* d;
-  d=&discovered[(int)data];
-  switch(d->protocol) {
-    case ORIGINAL_PROTOCOL:
-    case NEW_PROTOCOL:
-      sprintf(property_path,"%02X-%02X-%02X-%02X-%02X-%02X.props",
-                        d->info.network.mac_address[0],
-                        d->info.network.mac_address[1],
-                        d->info.network.mac_address[2],
-                        d->info.network.mac_address[3],
-                        d->info.network.mac_address[4],
-                        d->info.network.mac_address[5]);
-      break;
-#ifdef LIMESDR
-    case LIMESDR_PROTOCOL:
-      sprintf(property_path,"limesdr.props");
-      break;
-#endif
-  }
-  radioRestoreState();
-  
-  configure(d,splash_window);
-
-}
 
 static pthread_t wisdom_thread_id;
 
@@ -326,15 +308,8 @@ gboolean main_delete (GtkWidget *widget) {
 
 gint init(void* arg) {
 
-  GtkWidget *window;
-  GtkWidget *grid;
   gint x;
   gint y;
-  GtkWidget *vfo;
-  GtkWidget *menu;
-  GtkWidget *meter;
-  GtkWidget *sliders;
-  GtkWidget *toolbar;
 
   DISCOVERED* d;
 
@@ -486,11 +461,6 @@ fprintf(stderr,"protocol=%d name=%s\n",d->protocol,d->name);
                 gtk_widget_set_sensitive(start_button, FALSE);
               }
 
-              GtkWidget *configure_button=gtk_button_new_with_label("Configure");
-              gtk_widget_override_font(configure_button, pango_font_description_from_string("Arial 18"));
-              gtk_widget_show(configure_button);
-              gtk_grid_attach(GTK_GRID(grid),configure_button,4,i,1,1);
-              g_signal_connect(configure_button,"pressed",G_CALLBACK(configure_cb),(gpointer *)i);
           }
 
           gtk_container_add (GTK_CONTAINER (content), grid);
@@ -718,6 +688,117 @@ void show_waterfall() {
 }
 #endif
 
+void reconfigure_display() {
+  int y=VFO_HEIGHT;
+
+  // configure panadapter
+  if(display_panadapter) {
+    int height=PANADAPTER_HEIGHT;
+    if(!display_waterfall) {
+      height+=WATERFALL_HEIGHT;
+      if(!display_sliders) {
+        height+=SLIDERS_HEIGHT;
+      }
+      if(!display_toolbar) {
+        height+=TOOLBAR_HEIGHT;
+      }
+    } else {
+      if(!display_sliders) {
+        height+=SLIDERS_HEIGHT/2;
+      }
+      if(!display_toolbar) {
+        height+=TOOLBAR_HEIGHT/2;
+      }
+    }
+fprintf(stderr,"panadapter_height=%d\n",height);
+    if(panadapter==NULL) {
+fprintf(stderr,"reconfigure_display: panadapter_init: width:%d height:%d\n",display_width,height);
+      panadapter = panadapter_init(display_width,height);
+      gtk_fixed_put(GTK_FIXED(fixed),panadapter,0,y);
+    } else {
+      // set the size
+fprintf(stderr,"reconfigure_display: panadapter set_size_request: width:%d height:%d\n",display_width,height);
+      gtk_widget_set_size_request(panadapter, display_width, height);
+      // move the current one
+      gtk_fixed_move(GTK_FIXED(fixed),panadapter,0,y);
+    }
+    gtk_widget_show_all(panadapter);
+    y+=height;
+  } else {
+    gtk_widget_hide(panadapter);
+  }
+
+  // configure waterfall
+  if(display_waterfall) {
+    int height=WATERFALL_HEIGHT;
+
+    if(!display_panadapter) {
+      height+=PANADAPTER_HEIGHT;
+      if(!display_sliders) {
+        height+=SLIDERS_HEIGHT;
+      }
+      if(!display_toolbar) {
+        height+=TOOLBAR_HEIGHT;
+      }
+    } else {
+      if(!display_sliders) {
+        height+=SLIDERS_HEIGHT/2;
+      }
+      if(!display_toolbar) {
+        height+=TOOLBAR_HEIGHT/2;
+      }
+    }
+fprintf(stderr,"waterfall_height=%d\n",height);
+    if(waterfall==NULL) {
+fprintf(stderr,"reconfigure_display: waterfall_init: width:%d height:%d\n",display_width,height);
+      waterfall = waterfall_init(display_width,height);
+      gtk_fixed_put(GTK_FIXED(fixed),waterfall,0,y);
+    } else {
+      // set the size
+fprintf(stderr,"reconfigure_display: waterfall set_size_request: width:%d height:%d\n",display_width,height);
+      gtk_widget_set_size_request (waterfall, display_width, height);
+      // move the current one
+      gtk_fixed_move(GTK_FIXED(fixed),waterfall,0,y);
+    }
+    gtk_widget_show_all(waterfall);
+    y+=height;
+  } else {
+    gtk_widget_hide(waterfall);
+  }
+
+  if(display_sliders) {
+fprintf(stderr,"sliders_height=%d\n",SLIDERS_HEIGHT);
+    if(sliders==NULL) {
+fprintf(stderr,"reconfigure_display: sliders_init: width:%d height:%d\n",display_width,SLIDERS_HEIGHT);
+      sliders = sliders_init(display_width,SLIDERS_HEIGHT,window);
+      gtk_fixed_put(GTK_FIXED(fixed),sliders,0,y);
+    } else {
+      gtk_fixed_move(GTK_FIXED(fixed),sliders,0,y);
+      gtk_widget_show(sliders);
+    }
+    gtk_widget_show_all(sliders);
+    y+=SLIDERS_HEIGHT;
+  } else {
+    gtk_widget_hide(sliders);
+  }
+
+  if(display_toolbar) {
+fprintf(stderr,"toolbar_height=%d\n",TOOLBAR_HEIGHT);
+    if(toolbar==NULL) {
+fprintf(stderr,"reconfigure_display: toolbar_init: width:%d height:%d\n",display_width,TOOLBAR_HEIGHT);
+      toolbar = toolbar_init(display_width,TOOLBAR_HEIGHT,window);
+      gtk_fixed_put(GTK_FIXED(fixed),toolbar,0,y);
+    } else {
+      gtk_fixed_move(GTK_FIXED(fixed),toolbar,0,y);
+      gtk_widget_show(toolbar);
+    }
+    gtk_widget_show_all(toolbar);
+    y+=TOOLBAR_HEIGHT;
+  } else {
+    gtk_widget_hide(toolbar);
+  }
+
+}
 
 int
 main (int   argc,
diff --git a/main.h b/main.h
index e2455207a3118813f05cb83e7a583141abab072d..125036220b885469a241fb39f6ca1ce1f38f2c81 100644 (file)
--- a/main.h
+++ b/main.h
@@ -19,6 +19,7 @@
 
 #include <sys/utsname.h>
 extern struct utsname unameData;
+void reconfigure_display();
 #ifdef PSK
 void show_psk();
 void show_waterfall();
diff --git a/menu.c b/menu.c
index 4368da59c56ca235fb4d09375ca2eef938765d8b..51eee5ee4128e8629786c1f85bc72502a0460fc1 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -46,6 +46,26 @@ static GtkWidget *menu;
 static GtkWidget *ant_grid;
 static gint ant_id=-1;
 
+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);
@@ -986,6 +1006,7 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
   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);
@@ -1027,6 +1048,35 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
   gtk_grid_attach(GTK_GRID(display_grid),time_r,5,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,6,0,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,6,1,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,6,2,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,6,3,1,1);
+  g_signal_connect(b_display_toolbar,"toggled",G_CALLBACK(display_toolbar_cb),(gpointer *)NULL);
+
+
   id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),display_grid,display_label);
 
 
diff --git a/meter.c b/meter.c
index 4cd5f776c6e0bf4bd51bd57bf9c9e0d019247036..2d4aae54a7886f4308d676202778475d898e9830 100644 (file)
--- a/meter.c
+++ b/meter.c
@@ -315,7 +315,7 @@ void meter_update(int meter_type,double value,double reverse,double exciter,doub
         }
         cairo_set_font_size(cr, 16);
         sprintf(sf,"SNR: %3.2f",freedv_snr);
-        cairo_move_to(cr, text_location, 20);
+        cairo_move_to(cr, text_location, 30);
         cairo_show_text(cr, sf);
       }
 #endif
index 67515a2aa989648c0d89dcce9cb9964c87131257..6e35ef86451c2d5e81e4f2a259e348a3414828ec 100644 (file)
@@ -64,6 +64,9 @@
 #define C4 7
 
 #define SCALE 4.6
+#ifdef FREEDV
+#define FREEDV_SCALE 8.5
+#endif
 
 #define DATA_PORT 1024
 
@@ -609,11 +612,9 @@ static void full_rx_buffer() {
   int j;
   int error;
 
-  // process the input
   fexchange0(CHANNEL_RX0, iqinputbuffer, audiooutputbuffer, &error);
-  if(error!=0) {
-    fprintf(stderr,"fexchange2 (CHANNEL_RX0) returned error: %d\n", error);
-  }
+  fexchange0(CHANNEL_TX, micinputbuffer, iqoutputbuffer, &error);
+
 #ifdef PSK
   if(mode!=modePSK) {
 #endif
@@ -636,10 +637,21 @@ static void full_tx_buffer() {
   int error;
   double gain=32767.0*SCALE; // 2^16-1
 
-  // process the output
+  // debug
+  //int min_sample=0;
+  //int max_sample=0;
+  //int overflow=0;
+
   fexchange0(CHANNEL_RX0, iqinputbuffer, audiooutputbuffer, &error);
   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(d->device==DEVICE_METIS && atlas_penelope) {
     if(tune) {
       gain=32767.0*tune_drive;
@@ -652,15 +664,26 @@ static void full_tx_buffer() {
     right_rx_sample=0;
     left_tx_sample=(int)(iqoutputbuffer[j*2]*gain);
     right_tx_sample=(int)(iqoutputbuffer[(j*2)+1]*gain);
+
+// debug
+    //if(left_tx_sample<min_sample) min_sample=left_tx_sample;
+    //if(left_tx_sample>max_sample) max_sample=left_tx_sample;
+    //if(right_tx_sample<min_sample) min_sample=right_tx_sample;
+    //if(right_tx_sample>max_sample) max_sample=right_tx_sample;
+    
     if(left_tx_sample>32767) {
       left_tx_sample=32767;
+//      overflow++;
     } else if(left_tx_sample<-32767) {
-      left_tx_sample=-2767;
+      left_tx_sample=-32767;
+//      overflow++;
     }
     if(right_tx_sample>32767) {
       right_tx_sample=32767;
+//      overflow++;
     } else if(right_tx_sample<-32767) {
       right_tx_sample=-32767;
+//      overflow++;
     }
     output_buffer[output_buffer_index++]=left_rx_sample>>8;
     output_buffer[output_buffer_index++]=left_rx_sample;
@@ -675,6 +698,10 @@ static void full_tx_buffer() {
       output_buffer_index=8;
     }
   }
+
+  //fprintf(stderr,"scale=%f min_sample=%d max_sample=%d\n",scale, min_sample,max_sample);
+  //fprintf(stderr,"scale=%f overflow=%d\n",scale,overflow);
+
 }
 /*
 static void process_bandscope_buffer(char  *buffer) {
index c2d3c3e8aab30d65a6cb73876162fecc67106095..ac81e889670c0be95bb3c03a8df7ef832eb3f77f 100644 (file)
@@ -51,20 +51,7 @@ static gfloat filter_left;
 static gfloat filter_right;
 
 static int display_width;
-static int panadapter_height;
-
-static void
-panadapter_clear_surface (void)
-{
-  cairo_t *cr;
-
-  cr = cairo_create (panadapter_surface);
-
-  cairo_set_source_rgb (cr, 0, 0, 0);
-  cairo_paint (cr);
-
-  cairo_destroy (cr);
-}
+static int display_height;
 
 /* Create a new surface of the appropriate size to store our scribbles */
 static gboolean
@@ -72,18 +59,23 @@ panadapter_configure_event_cb (GtkWidget         *widget,
             GdkEventConfigure *event,
             gpointer           data)
 {
+  display_width=gtk_widget_get_allocated_width (widget);
+  display_height=gtk_widget_get_allocated_height (widget);
+
+fprintf(stderr,"panadapter_configure_event_cb: width:%d height:%d\n",display_width,display_height);
   if (panadapter_surface)
     cairo_surface_destroy (panadapter_surface);
 
   panadapter_surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
                                        CAIRO_CONTENT_COLOR,
-                                       gtk_widget_get_allocated_width (widget),
-                                       gtk_widget_get_allocated_height (widget));
+                                       display_width,
+                                       display_height);
 
-  /* Initialize the surface to white */
-  panadapter_clear_surface ();
+  cairo_t *cr=cairo_create(panadapter_surface);
+  cairo_set_source_rgb(cr, 0, 0, 0);
+  cairo_paint(cr);
+  cairo_destroy(cr);
 
-  /* We've handled the configure event, no need for further processing. */
   return TRUE;
 }
 
@@ -199,7 +191,7 @@ void panadapter_update(float *data,int tx) {
                 saved_hz_per_pixel=hz_per_pixel;
 
                 panadapter_high=20;
-                panadapter_low=-140;
+                panadapter_low=-80;
                 if(protocol==ORIGINAL_PROTOCOL) {
                     hz_per_pixel=48000.0/(double)display_width;
                 } else {
@@ -217,7 +209,7 @@ void panadapter_update(float *data,int tx) {
             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);
-            cairo_rectangle(cr, filter_left, 0.0, filter_right-filter_left, (double)panadapter_height);
+            cairo_rectangle(cr, filter_left, 0.0, filter_right-filter_left, (double)display_height);
             cairo_fill(cr);
 
             // plot the levels
@@ -225,7 +217,7 @@ void panadapter_update(float *data,int tx) {
             int numSteps = V / 20;
             for (i = 1; i < numSteps; i++) {
                 int num = panadapter_high - i * 20;
-                int y = (int)floor((panadapter_high - num) * panadapter_height / V);
+                int y = (int)floor((panadapter_high - num) * display_height / V);
 
                 cairo_set_source_rgb (cr, 0, 1, 1);
                 cairo_set_line_width(cr, 1.0);
@@ -280,7 +272,7 @@ void panadapter_update(float *data,int tx) {
                         cairo_set_line_width(cr, 1.0);
                         //cairo_move_to(cr,(double)i,0.0);
                         cairo_move_to(cr,(double)i,10.0);
-                        cairo_line_to(cr,(double)i,(double)panadapter_height);
+                        cairo_line_to(cr,(double)i,(double)display_height);
 
                         cairo_set_source_rgb (cr, 0, 1, 1);
                         cairo_select_font_face(cr, "Arial",
@@ -289,7 +281,7 @@ void panadapter_update(float *data,int tx) {
                         cairo_set_font_size(cr, 12);
                         char v[32];
                         sprintf(v,"%0ld.%03ld",f/1000000,(f%1000000)/1000);
-                        //cairo_move_to(cr, (double)i, (double)(panadapter_height-10));  
+                        //cairo_move_to(cr, (double)i, (double)(display_height-10));  
                         cairo_text_extents(cr, v, &extents);
                         cairo_move_to(cr, (double)i-(extents.width/2.0), 10.0);  
                         cairo_show_text(cr, v);
@@ -308,12 +300,12 @@ void panadapter_update(float *data,int tx) {
                 if((min_display<bandLimits->minFrequency)&&(max_display>bandLimits->minFrequency)) {
                     i=(bandLimits->minFrequency-min_display)/(long long)hz_per_pixel;
                     cairo_move_to(cr,(double)i,0.0);
-                    cairo_line_to(cr,(double)i,(double)panadapter_height);
+                    cairo_line_to(cr,(double)i,(double)display_height);
                 }
                 if((min_display<bandLimits->maxFrequency)&&(max_display>bandLimits->maxFrequency)) {
                     i=(bandLimits->maxFrequency-min_display)/(long long)hz_per_pixel;
                     cairo_move_to(cr,(double)i,0.0);
-                    cairo_line_to(cr,(double)i,(double)panadapter_height);
+                    cairo_line_to(cr,(double)i,(double)display_height);
                 }
             }
             
@@ -321,7 +313,7 @@ void panadapter_update(float *data,int tx) {
             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)panadapter_height);
+            cairo_line_to(cr,(double)display_width/2.0,(double)display_height);
             cairo_stroke(cr);
 
             // signal
@@ -330,13 +322,13 @@ void panadapter_update(float *data,int tx) {
             samples[display_width-1]=-200.0;
             s1=(double)samples[0]+(double)get_attenuation()-20.0;
             s1 = floor((panadapter_high - s1)
-                        * (double) panadapter_height
+                        * (double) display_height
                         / (panadapter_high - panadapter_low));
             cairo_move_to(cr, 0.0, s1);
             for(i=1;i<display_width;i++) {
                 s2=(double)samples[i]+(double)get_attenuation()-20.0;
                 s2 = floor((panadapter_high - s2)
-                            * (double) panadapter_height
+                            * (double) display_height
                             / (panadapter_high - panadapter_low));
                 cairo_line_to(cr, (double)i, s2);
             }
@@ -358,7 +350,7 @@ void panadapter_update(float *data,int tx) {
               }
               cairo_set_font_size(cr, 16);
               cairo_text_extents(cr, freedv_text_data, &extents);
-              cairo_move_to(cr, (double)display_width/2.0-(extents.width/2.0),(double)panadapter_height-2.0);
+              cairo_move_to(cr, (double)display_width/2.0-(extents.width/2.0),(double)display_height-2.0);
               cairo_show_text(cr, freedv_text_data);
             }
 #endif
@@ -380,20 +372,16 @@ void panadapter_update(float *data,int tx) {
 }
 
 GtkWidget* panadapter_init(int width,int height) {
-  //GtkWidget *panadapter_frame;
 
   display_width=width;
-  panadapter_height=height;
+  display_height=height;
 
   samples=malloc(display_width*sizeof(float));
   hz_per_pixel=(double)getSampleRate()/(double)display_width;
 
-  //panadapter_frame = gtk_frame_new (NULL);
   panadapter = gtk_drawing_area_new ();
   gtk_widget_set_size_request (panadapter, width, height);
 
-  //gtk_container_add (GTK_CONTAINER (panadapter_frame), panadapter);
-
   /* Signals used to handle the backing surface */
   g_signal_connect (panadapter, "draw",
             G_CALLBACK (panadapter_draw_cb), NULL);
@@ -422,6 +410,5 @@ GtkWidget* panadapter_init(int width,int height) {
                      | GDK_POINTER_MOTION_MASK
                      | GDK_POINTER_MOTION_HINT_MASK);
 
-  //return panadapter_frame;
   return panadapter;
 }
diff --git a/pihpsdr b/pihpsdr
index 08c65a47ff2cc814a716a61bcf00d46ac7f35363..32177c03a2d45b239032d47ff6b04b0238e80be8 100755 (executable)
Binary files a/pihpsdr and b/pihpsdr differ
diff --git a/radio.h b/radio.h
index b6af033c97cb1ece426a9764a1e9e6bd288c3f2f..e127cb41c6aa00519d0da853b789f50a040af373 100644 (file)
--- a/radio.h
+++ b/radio.h
@@ -38,7 +38,6 @@
 #define OLD_ORION_MIC_BIAS_DISABLED 0x00
 #define OLD_ORION_MIC_BIAS_ENABLED 0x20
 
-
 extern char property_path[];
 
 #define NONE 0
index c1ae98537603ef46980b99766784283cfa65f279..1bcf1c7e14476ad779b041884a7c10570bef2a6a 100644 (file)
Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ
index b092eeca02562e5ed0ab1e740e3b6e88c6045f87..174eba4a22f245a5b702e75a8b59ad90bd62d67d 100755 (executable)
Binary files a/release/pihpsdr/libwdsp.so and b/release/pihpsdr/libwdsp.so differ
index 9e737b8c5f97a2f34dde6ec78de8ac55b5b56311..32177c03a2d45b239032d47ff6b04b0238e80be8 100755 (executable)
Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ
index 7f55503293a9b293c2dac5a2f4f4e037492775df..7d39210ea1d2d465cc1279f8d28510b590401ca9 100644 (file)
@@ -58,7 +58,6 @@ static gint mode[BANDS];
 static gint band=4;
 
 static int display_width;
-static int waterfall_height;
 
 /* Create a new surface of the appropriate size to store our scribbles */
 static gboolean
@@ -244,7 +243,6 @@ void waterfall_update(float *data) {
 
 GtkWidget* waterfall_init(int width,int height) {
   display_width=width;
-  waterfall_height=height;
 
   hz_per_pixel=(double)getSampleRate()/(double)display_width;