]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
CW Configuration - added weight adjustment, TX frequency offset by Sidetone frequency...
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Tue, 19 Jul 2016 07:42:08 +0000 (07:42 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Tue, 19 Jul 2016 07:42:08 +0000 (07:42 +0000)
configure.c
main.c
menu.c
meter.c
old_protocol.c
radio.c
radio.h
wdsp_init.c

index 2ec820f5b735ab87caadc522ad456cb125a6b5d0..7a708d8c16e800fae9959e5e90deb8e824df120e 100644 (file)
@@ -39,9 +39,6 @@
 #ifdef odroid
 #define INCLUDE_GPIO
 #endif
-#ifdef up
-#define INCLUDE_GPIO
-#endif
 
 static void display_panadapter_cb(GtkWidget *widget, gpointer data) {
   display_panadapter=display_panadapter==1?0:1;
diff --git a/main.c b/main.c
index d96e15c2f80193260181193f221a765ccb687bd5..d25a44eee9466b8d9978d46267ce6a5a41d4bee9 100644 (file)
--- a/main.c
+++ b/main.c
@@ -64,9 +64,6 @@
 #ifdef odroid
 #define INCLUDE_GPIO
 #endif
-#ifdef up
-#define INCLUDE_GPIO
-#endif
 
 #define VFO_HEIGHT ((display_height/32)*4)
 #define VFO_WIDTH ((display_width/32)*16)
diff --git a/menu.c b/menu.c
index 7536cc4b7c5378ee6f3ffb516ccb553a1d5884c2..4282b592c223c12cd8c465ed0d100d2d5ad119e6 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -78,6 +78,11 @@ static void cw_keyer_hang_time_value_changed_cb(GtkWidget *widget, gpointer data
   cw_changed();
 }
 
+static void cw_keyer_weight_value_changed_cb(GtkWidget *widget, gpointer data) {
+  cw_keyer_weight=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
+  cw_changed();
+}
+
 static void cw_keys_reversed_cb(GtkWidget *widget, gpointer data) {
   cw_keys_reversed=cw_keys_reversed==1?0:1;
   cw_changed();
@@ -1217,6 +1222,18 @@ static gboolean menu_pressed_event_cb (GtkWidget *widget,
     gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_sidetone_frequency_b,1,7,1,1);
     g_signal_connect(cw_keyer_sidetone_frequency_b,"value_changed",G_CALLBACK(cw_keyer_sidetone_frequency_value_changed_cb),NULL);
   
+    GtkWidget *cw_keyer_weight_label=gtk_label_new("Weight:");
+    //gtk_widget_override_font(cw_keyer_weight_label, pango_font_description_from_string("Arial 18"));
+    gtk_widget_show(cw_keyer_weight_label);
+    gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_weight_label,0,8,1,1);
+
+    GtkWidget *cw_keyer_weight_b=gtk_spin_button_new_with_range(0.0,100.0,1.0);
+    //gtk_widget_override_font(cw_keyer_weight_b, pango_font_description_from_string("Arial 18"));
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(cw_keyer_weight_b),(double)cw_keyer_weight);
+    gtk_widget_show(cw_keyer_weight_b);
+    gtk_grid_attach(GTK_GRID(cw_grid),cw_keyer_weight_b,1,8,1,1);
+    g_signal_connect(cw_keyer_weight_b,"value_changed",G_CALLBACK(cw_keyer_weight_value_changed_cb),NULL);
     id=gtk_notebook_append_page(GTK_NOTEBOOK(notebook),cw_grid,cw_label);
   }
 
diff --git a/meter.c b/meter.c
index 40da458c26822529c0ac43ef1dac0baf1cd8cd7e..c2b667677a00ad5afdcbd6c1d6169df8092fbb53 100644 (file)
--- a/meter.c
+++ b/meter.c
@@ -25,8 +25,8 @@
 
 #include "meter.h"
 #include "wdsp.h"
-#ifdef FREEDV
 #include "radio.h"
+#ifdef FREEDV
 #include "mode.h"
 #include "freedv.h"
 #endif
index a64e8123fcf5a191fe25ae1288be34ae281adff7..23e3a9c95f916e7c3f8cf05e15a68cbf30d4ba38 100644 (file)
@@ -804,19 +804,25 @@ void ozy_send_buffer() {
       }
       }
       break;
-    case 1:
+    case 1: // rx frequency
       output_buffer[C0]=0x04;
       output_buffer[C1]=ddsFrequency>>24;
       output_buffer[C2]=ddsFrequency>>16;
       output_buffer[C3]=ddsFrequency>>8;
       output_buffer[C4]=ddsFrequency;
       break;
-    case 2:
+    case 2: // tx frequency
       output_buffer[C0]=0x02;
-      output_buffer[C1]=ddsFrequency>>24;
-      output_buffer[C2]=ddsFrequency>>16;
-      output_buffer[C3]=ddsFrequency>>8;
-      output_buffer[C4]=ddsFrequency;
+      long txFrequency=ddsFrequency;
+      if(mode==modeCWU) {
+        txFrequency+=cw_keyer_sidetone_frequency;
+      } else if(mode==modeCWL) {
+        txFrequency-=cw_keyer_sidetone_frequency;
+      }
+      output_buffer[C1]=txFrequency>>24;
+      output_buffer[C2]=txFrequency>>16;
+      output_buffer[C3]=txFrequency>>8;
+      output_buffer[C4]=txFrequency;
       break;
     case 3:
       {
diff --git a/radio.c b/radio.c
index 7931e8daec8f308598c06e9bd4154c5d8b418fd1..c013e53a561f2979b031df8e88f95dc7045968d5 100644 (file)
--- a/radio.c
+++ b/radio.c
@@ -111,8 +111,6 @@ int nr2_gain_method=2; // 0=Linear 1=Log 2=gamma
 int nr2_npe_method=0; // 0=OSMS 1=MMSE
 int nr2_ae=1; // 0=disable 1=enable
 
-int cwPitch=600;
-
 int tune_drive=6;
 int drive=60;
 
diff --git a/radio.h b/radio.h
index 1b6eadf8749385c5a097c2cc61cbc2bc62140e38..fd17af956f904aef9bb4b2706b7cc3e7af1d9228 100644 (file)
--- a/radio.h
+++ b/radio.h
@@ -112,8 +112,6 @@ extern int nr2_gain_method;
 extern int nr2_npe_method;
 extern int nr2_ae;
 
-extern int cwPitch;
-
 extern int mic_linein;
 extern int mic_boost;
 extern int mic_bias_enabled;
index 76d84c4cc302b19b3126b571733f5f0d2f1f9c9c..6279a38b1dc4a98c6cb456e4b205f2958b810e4b 100644 (file)
@@ -109,11 +109,11 @@ int getMode() {
 void setFilter(int low,int high) {
 fprintf(stderr,"setFilter: %d %d\n",low,high);
     if(mode==modeCWL) {
-        filterLow=-cwPitch-low;
-        filterHigh=-cwPitch+high;
+        filterLow=-cw_keyer_sidetone_frequency-low;
+        filterHigh=-cw_keyer_sidetone_frequency+high;
     } else if(mode==modeCWU) {
-        filterLow=cwPitch-low;
-        filterHigh=cwPitch+high;
+        filterLow=cw_keyer_sidetone_frequency-low;
+        filterHigh=cw_keyer_sidetone_frequency+high;
     } else {
         filterLow=low;
         filterHigh=high;