]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
Changed to support short audio/microphone packets in new protocol
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Tue, 20 Sep 2016 13:39:38 +0000 (13:39 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Tue, 20 Sep 2016 13:39:38 +0000 (13:39 +0000)
audio.c
menu.c
new_protocol.c
new_protocol.h
pihpsdr
radio.c
release/pihpsdr.tar
release/pihpsdr/pihpsdr
wdsp_init.c

diff --git a/audio.c b/audio.c
index 87ec58bc7f056fefaf0f750b45c1d6c661904f7f..8e3c92fc7dcf9c14962ed73f5e0bbd4fdecf990d 100644 (file)
--- a/audio.c
+++ b/audio.c
@@ -171,6 +171,17 @@ int audio_open_input() {
   char *selected=input_devices[n_selected_input_device];
   fprintf(stderr,"audio_open_input: selected=%d:%s\n",n_selected_input_device,selected);
   
+  switch(protocol) {
+    case ORIGINAL_PROTOCOL:
+      mic_buffer_size = 720;
+      break;
+    case NEW_PROTOCOL:
+      mic_buffer_size = 64;
+      break;
+    default:
+      break;
+  }
+  
   i=0;
   while(selected[i]!=' ') {
     hw[i]=selected[i];
diff --git a/menu.c b/menu.c
index 0fe4fc5bd501e476071c1d069d30d17396a7dd8d..9a1e4f23e4142f447f59c99f65938a6a16d6ad66 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -1306,6 +1306,38 @@ 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);
   }
 
@@ -1569,44 +1601,6 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
 
   id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),exit_grid,exit_label);
 
-
-#ifdef DEBUG
-
-  GtkWidget *debug_label=gtk_label_new("Debug");
-  GtkWidget *debug_grid=gtk_grid_new();
-  gtk_grid_set_column_homogeneous(GTK_GRID(debug_grid),TRUE);
-
-  GtkWidget *scale_label=gtk_label_new("Scale:");
-  gtk_widget_show(scale_label);
-  gtk_grid_attach(GTK_GRID(debug_grid),scale_label,0,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(debug_grid),scale_scale,1,0,1,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(debug_grid),psk_scale_label,0,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(debug_grid),psk_scale_scale,1,1,1,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(debug_grid),freedv_scale_label,0,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(debug_grid),freedv_scale_scale,1,2,1,1);
-  g_signal_connect(G_OBJECT(freedv_scale_scale),"value_changed",G_CALLBACK(freedv_scale_value_changed_cb),NULL);
-
-  id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),debug_grid,debug_label);
-
-#endif
-
   gtk_container_add(GTK_CONTAINER(content),notebook);
 
   GtkWidget *close_button=gtk_dialog_add_button(GTK_DIALOG(dialog),"Close Dialog",GTK_RESPONSE_OK);
index 443b4911fe58f48b4f2eb7f9de3332dcab1922bb..4e4ee03d70ae3fd9ea220e48d99774dc161aaf99 100644 (file)
@@ -137,7 +137,7 @@ static double audiooutputbuffer[BUFFER_SIZE*2];
 static int leftaudiosample;
 static int rightaudiosample;
 static long audiosequence;
-static unsigned char audiobuffer[1444];
+static unsigned char audiobuffer[260]; // was 1444
 static int audioindex;
 
 #ifdef FREEDV
@@ -872,7 +872,7 @@ static void process_mic_data(unsigned char *buffer) {
 //    if(isTransmitting()) {
         b=4;
         int i,j,s;
-        for(i=0;i<720;i++) {
+        for(i=0;i<MIC_SAMPLES;i++) {
             micsample  = (int)((signed char) buffer[b++]) << 8;
             micsample  |= (int)((unsigned char)buffer[b++] & 0xFF);
 #ifdef FREEDV
@@ -1115,7 +1115,7 @@ void *new_protocol_process_local_mic(unsigned char *buffer,int le) {
 //    if(isTransmitting()) {
         b=0;
         int i,j,s;
-        for(i=0;i<720;i++) {
+        for(i=0;i<MIC_SAMPLES;i++) {
             if(le) {
               leftmicsample  = (int)((unsigned char)buffer[b++] & 0xFF);
               leftmicsample  |= (int)((signed char) buffer[b++]) << 8;
index b1e714d74db0ab2ff23f0d60620b3952b6c77a7c..807d992dacf8f85b636c898399836d4b4ed47bf9 100644 (file)
@@ -38,6 +38,8 @@
 
 #define BUFFER_SIZE 1024
 
+#define MIC_SAMPLES 64
+
 extern int data_socket;
 extern sem_t response_sem;
 
diff --git a/pihpsdr b/pihpsdr
index 0bad97e4a309c48d98efcf04f1dd5e703080e471..3c9734f64e56dbee4fd87df230e3dab02caf9fd9 100755 (executable)
Binary files a/pihpsdr and b/pihpsdr differ
diff --git a/radio.c b/radio.c
index 2328d45de0970ebdadde2826b5432bfb3efb767d..964ac4a2eed59b9be5acbadf21ec5c915978a820 100644 (file)
--- a/radio.c
+++ b/radio.c
@@ -76,7 +76,7 @@ int updates_per_second=10;
 
 int display_panadapter=1;
 int panadapter_high=-60;
-int panadapter_low=-160;
+int panadapter_low=-140;
 
 int display_filled=1;
 int display_detector_mode=DETECTOR_MODE_AVERAGE;
index 417f7bd3f850db12062413d4935edbc554482bab..e95ac16895cf6425ff83b5f9c9b2ad6566dd8f9a 100644 (file)
Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ
index 0bad97e4a309c48d98efcf04f1dd5e703080e471..3c9734f64e56dbee4fd87df230e3dab02caf9fd9 100755 (executable)
Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ
index 9fb853bcee74679060c025761babd61550e71425..34040e213813a61b5b0db5b321966bdde9ed284f 100644 (file)
@@ -290,6 +290,11 @@ static void setupTX(int tx) {
     SetTXACompressorRun(tx, 0);
     SetTXAosctrlRun(tx, 0);
 
+    SetTXAALCDecay(tx, 10);
+    SetTXALevelerTop(tx, 15.0);
+    SetTXALevelerDecay(tx, 500);
+    SetTXALevelerSt(tx, 1);
+
     SetTXAPreGenMode(tx, 0);
     SetTXAPreGenToneMag(tx, 0.0);
     SetTXAPreGenToneFreq(tx, 0.0);