#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();
}
#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();
-
-}
#ifdef INCLUDE_GPIO
void configure_gpio(GtkWidget *parent);
#endif
-void configure(DISCOVERED *d,GtkWidget *parent);
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
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;
gint init(void* arg) {
- GtkWidget *window;
- GtkWidget *grid;
gint x;
gint y;
- GtkWidget *vfo;
- GtkWidget *menu;
- GtkWidget *meter;
- GtkWidget *sliders;
- GtkWidget *toolbar;
DISCOVERED* d;
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);
}
#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,
#include <sys/utsname.h>
extern struct utsname unameData;
+void reconfigure_display();
#ifdef PSK
void show_psk();
void show_waterfall();
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);
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),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);
}
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
#define C4 7
#define SCALE 4.6
+#ifdef FREEDV
+#define FREEDV_SCALE 8.5
+#endif
#define DATA_PORT 1024
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
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;
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;
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) {
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
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;
}
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 {
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
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);
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",
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);
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);
}
}
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
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);
}
}
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
}
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);
| GDK_POINTER_MOTION_MASK
| GDK_POINTER_MOTION_HINT_MASK);
- //return panadapter_frame;
return panadapter;
}
#define OLD_ORION_MIC_BIAS_DISABLED 0x00
#define OLD_ORION_MIC_BIAS_ENABLED 0x20
-
extern char property_path[];
#define NONE 0
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
GtkWidget* waterfall_init(int width,int height) {
display_width=width;
- waterfall_height=height;
hz_per_pixel=(double)getSampleRate()/(double)display_width;