From db261fc151cec5950e33cbb581d72c9426a9cd8b Mon Sep 17 00:00:00 2001 From: John Melton - G0ORX/N6LYT Date: Fri, 15 Jul 2016 08:29:47 +0000 Subject: [PATCH] Changed audio buffer size for portaudio. Changed Drive and Tune scale to 0..255 rather than 0..100. --- audio.c | 3 ++- gpio.c | 18 ++++++++++++------ old_protocol.c | 6 +++++- radio.c | 13 ++++++++----- sliders.c | 42 ++++++++++++++++++++++++++++-------------- 5 files changed, 55 insertions(+), 27 deletions(-) diff --git a/audio.c b/audio.c index 431b5b3..07249a4 100644 --- a/audio.c +++ b/audio.c @@ -35,7 +35,8 @@ #include "radio.h" int audio = 0; -int audio_buffer_size = 2016; // samples (both left and right) +//int audio_buffer_size = 2016; // samples (both left and right) +int audio_buffer_size = 256; // samples (both left and right) static pa_simple *stream; diff --git a/gpio.c b/gpio.c index b00e740..9d69865 100644 --- a/gpio.c +++ b/gpio.c @@ -760,21 +760,27 @@ static int rf_encoder_changed(void *data) { if(function || tune) { // tune drive double d=getTuneDrive(); - d+=(double)pos/100.0; + //d+=(double)pos/100.0; + d+=(double)pos; if(d<0.0) { d=0.0; - } else if(d>1.0) { - d=1.0; + //} else if(d>1.0) { + // d=1.0; + } else if(d>255.0) { + d=255.0; } set_tune(d); } else { // drive double d=getDrive(); - d+=(double)pos/100.0; + //d+=(double)pos/100.0; + d+=(double)pos; if(d<0.0) { d=0.0; - } else if(d>1.0) { - d=1.0; + //} else if(d>1.0) { + // d=1.0; + } else if(d>255.0) { + d=255.0; } set_drive(d); } diff --git a/old_protocol.c b/old_protocol.c index e7f8476..5bfe753 100644 --- a/old_protocol.c +++ b/old_protocol.c @@ -465,6 +465,8 @@ static void process_ozy_input_buffer(char *buffer) { if(mode==modeFREEDV) { if(freedv_samples==0) { int modem_samples=mod_sample_freedv(mic_sample); + //short micinput=(short)(((double)mic_sample_float*mic_gain)*32767.0); + //int modem_samples=mod_sample_freedv(micinput); if(modem_samples!=0) { int s; for(s=0;spa_calibration; + d=(d*(float)band->pa_calibration)/100.0F; output_buffer[C0]=0x12; output_buffer[C1]=(int)d; diff --git a/radio.c b/radio.c index 3fd8c7a..7931e8d 100644 --- a/radio.c +++ b/radio.c @@ -316,23 +316,26 @@ long long getFrequency() { } double getDrive() { - return (double)drive/255.0; + //return (double)drive/255.0; + return (double)drive; } void setDrive(double value) { - drive=(int)(value*255.0); + //drive=(int)(value*255.0); + drive=(int)(value); if(protocol==NEW_PROTOCOL) { schedule_high_priority(6); } } double getTuneDrive() { - return (double)tune_drive/255.0; + //return (double)tune_drive/255.0; + return (double)tune_drive; } void setTuneDrive(double value) { -fprintf(stderr,"setTuneDrive: protocol=%d\n", protocol); - tune_drive=(int)(value*255.0); + //tune_drive=(int)(value*255.0); + tune_drive=(int)(value); if(protocol==NEW_PROTOCOL) { schedule_high_priority(7); } diff --git a/sliders.c b/sliders.c index 4a76e19..8e98474 100644 --- a/sliders.c +++ b/sliders.c @@ -234,7 +234,8 @@ fprintf(stderr,"set_mic_gain: %f\n",mic_gain); void set_drive(double value) { setDrive(value); if(display_sliders) { - gtk_range_set_value (GTK_RANGE(drive_scale),value*100.0); + //gtk_range_set_value (GTK_RANGE(drive_scale),value*100.0); + gtk_range_set_value (GTK_RANGE(drive_scale),value); } else { if(scale_status!=DRIVE) { if(scale_status!=NONE) { @@ -247,9 +248,11 @@ void set_drive(double value) { scale_status=DRIVE; scale_dialog=gtk_dialog_new_with_buttons("Drive",GTK_WINDOW(parent_window),GTK_DIALOG_DESTROY_WITH_PARENT,NULL,NULL); GtkWidget *content=gtk_dialog_get_content_area(GTK_DIALOG(scale_dialog)); - drive_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.00); + //drive_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.00); + drive_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 255.0, 1.00); gtk_widget_set_size_request (drive_scale, 400, 30); - gtk_range_set_value (GTK_RANGE(drive_scale),value*100.0); + //gtk_range_set_value (GTK_RANGE(drive_scale),value*100.0); + gtk_range_set_value (GTK_RANGE(drive_scale),value); gtk_widget_show(drive_scale); gtk_container_add(GTK_CONTAINER(content),drive_scale); scale_timer=g_timeout_add(2000,scale_timeout_cb,NULL); @@ -257,20 +260,23 @@ void set_drive(double value) { int result=gtk_dialog_run(GTK_DIALOG(scale_dialog)); } else { g_source_remove(scale_timer); - gtk_range_set_value (GTK_RANGE(drive_scale),value*100.0); + //gtk_range_set_value (GTK_RANGE(drive_scale),value*100.0); + gtk_range_set_value (GTK_RANGE(drive_scale),value); scale_timer=g_timeout_add(2000,scale_timeout_cb,NULL); } } } static void drive_value_changed_cb(GtkWidget *widget, gpointer data) { - setDrive(gtk_range_get_value(GTK_RANGE(drive_scale))/100.0); + //setDrive(gtk_range_get_value(GTK_RANGE(drive_scale))/100.0); + setDrive(gtk_range_get_value(GTK_RANGE(drive_scale))); } void set_tune(double value) { setTuneDrive(value); if(display_sliders) { - gtk_range_set_value (GTK_RANGE(tune_scale),value*100.0); + //gtk_range_set_value (GTK_RANGE(tune_scale),value*100.0); + gtk_range_set_value (GTK_RANGE(tune_scale),value); } else { if(scale_status!=TUNE_DRIVE) { if(scale_status!=NONE) { @@ -283,9 +289,11 @@ void set_tune(double value) { scale_status=TUNE_DRIVE; scale_dialog=gtk_dialog_new_with_buttons("Tune Drive",GTK_WINDOW(parent_window),GTK_DIALOG_DESTROY_WITH_PARENT,NULL,NULL); GtkWidget *content=gtk_dialog_get_content_area(GTK_DIALOG(scale_dialog)); - tune_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.00); + //tune_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.00); + tune_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 255.0, 1.00); gtk_widget_set_size_request (tune_scale, 400, 30); - gtk_range_set_value (GTK_RANGE(tune_scale),value*100.0); + //gtk_range_set_value (GTK_RANGE(tune_scale),value*100.0); + gtk_range_set_value (GTK_RANGE(tune_scale),value); gtk_widget_show(tune_scale); gtk_container_add(GTK_CONTAINER(content),tune_scale); scale_timer=g_timeout_add(2000,scale_timeout_cb,NULL); @@ -293,14 +301,16 @@ void set_tune(double value) { int result=gtk_dialog_run(GTK_DIALOG(scale_dialog)); } else { g_source_remove(scale_timer); - gtk_range_set_value (GTK_RANGE(tune_scale),value*100.0); + //gtk_range_set_value (GTK_RANGE(tune_scale),value*100.0); + gtk_range_set_value (GTK_RANGE(tune_scale),value); scale_timer=g_timeout_add(2000,scale_timeout_cb,NULL); } } } static void tune_value_changed_cb(GtkWidget *widget, gpointer data) { - setTuneDrive(gtk_range_get_value(GTK_RANGE(tune_scale))/100.0); + //setTuneDrive(gtk_range_get_value(GTK_RANGE(tune_scale))/100.0); + setTuneDrive(gtk_range_get_value(GTK_RANGE(tune_scale))); } GtkWidget *sliders_init(int my_width, int my_height, GtkWidget* parent) { @@ -366,8 +376,10 @@ GtkWidget *sliders_init(int my_width, int my_height, GtkWidget* parent) { gtk_widget_show(drive_label); gtk_grid_attach(GTK_GRID(sliders),drive_label,3,1,1,1); - drive_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.0); - gtk_range_set_value (GTK_RANGE(drive_scale),getDrive()*100.0); + //drive_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.0); + drive_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 255.0, 1.0); + //gtk_range_set_value (GTK_RANGE(drive_scale),getDrive()*100.0); + gtk_range_set_value (GTK_RANGE(drive_scale),getDrive()); gtk_widget_show(drive_scale); gtk_grid_attach(GTK_GRID(sliders),drive_scale,4,1,2,1); g_signal_connect(G_OBJECT(drive_scale),"value_changed",G_CALLBACK(drive_value_changed_cb),NULL); @@ -377,8 +389,10 @@ GtkWidget *sliders_init(int my_width, int my_height, GtkWidget* parent) { gtk_widget_show(tune_label); gtk_grid_attach(GTK_GRID(sliders),tune_label,6,1,1,1); - tune_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.0); - gtk_range_set_value (GTK_RANGE(tune_scale),getTuneDrive()*100.0); + //tune_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 100.0, 1.0); + tune_scale=gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL,0.0, 255.0, 1.0); + //gtk_range_set_value (GTK_RANGE(tune_scale),getTuneDrive()*100.0); + gtk_range_set_value (GTK_RANGE(tune_scale),getTuneDrive()); gtk_widget_show(tune_scale); gtk_grid_attach(GTK_GRID(sliders),tune_scale,7,1,2,1); g_signal_connect(G_OBJECT(tune_scale),"value_changed",G_CALLBACK(tune_value_changed_cb),NULL); -- 2.45.2