]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
Applied patches from Rick N1GP
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Sat, 10 Dec 2016 17:45:47 +0000 (17:45 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Sat, 10 Dec 2016 17:45:47 +0000 (17:45 +0000)
Makefile
cw_menu.c
freqent_menu.c
main.c
new_protocol.c
radio.c

index f88bbf5277719ac17aa2b55bdb25b8a78521f48c..8383099a254b3d51a1cfd1a0305ec80ec8f1b730 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -109,6 +109,7 @@ else
   GPIO_LIBS=-lwiringPi
   endif
   ifeq ($(SX1509_INCLUDE),sx1509)
+  GPIO_OPTIONS=-D GPIO
   GPIO_OPTIONS+=-D sx1509
   GPIO_LIBS+=-lsx1509
   endif
index 5350e89563ab16740997515e160a5a595311c1bc..aa77907593c5fb4fb644f50d82758db99a5518e4 100644 (file)
--- a/cw_menu.c
+++ b/cw_menu.c
@@ -49,6 +49,11 @@ static void cw_keyer_internal_cb(GtkWidget *widget, gpointer data) {
   cw_changed();
 }
 
+static void cw_active_level_cb(GtkWidget *widget, gpointer data) {
+  cw_active_level=cw_active_level==1?0:1;
+  cw_changed();
+}
+
 static void cw_keyer_speed_value_changed_cb(GtkWidget *widget, gpointer data) {
   cw_keyer_speed=gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
   cw_changed();
@@ -220,6 +225,13 @@ void cw_menu(GtkWidget *parent) {
   gtk_grid_attach(GTK_GRID(grid),cw_keyer_internal_b,0,10,1,1);
   g_signal_connect(cw_keyer_internal_b,"toggled",G_CALLBACK(cw_keyer_internal_cb),NULL);
 
+  GtkWidget *cw_active_level_b=gtk_check_button_new_with_label("CW Local Active_Low");
+  //gtk_widget_override_font(cw_active_level_b, pango_font_description_from_string("Arial 18"));
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw_active_level_b), cw_active_level==0);
+  gtk_widget_show(cw_active_level_b);
+  gtk_grid_attach(GTK_GRID(grid),cw_active_level_b,1,10,1,1);
+  g_signal_connect(cw_active_level_b,"toggled",G_CALLBACK(cw_active_level_cb),NULL);
+
   gtk_container_add(GTK_CONTAINER(content),grid);
 
   sub_menu=dialog;
index 739b8835d8927cd132d8b63b12b3a13dd38a2850..0b34ff0fdd9c0731bcdc7ad3df8747019698d7b8 100644 (file)
@@ -94,7 +94,7 @@ static gboolean freqent_select_cb (GtkWidget *widget, gpointer data) {
         } else if (strcmp (str, "CR") == 0) {
             strcpy (buffer, "0");
             sprintf(output, "<big>%s</big>", buffer);
-            gtk_label_set_markup (GTK_LABEL (label), buffer);
+            gtk_label_set_markup (GTK_LABEL (label), output);
         } else if (str[1] == 'Z') {
             switch(str[0]) {
             case 'M':
@@ -106,9 +106,7 @@ static gboolean freqent_select_cb (GtkWidget *widget, gpointer data) {
             default :
                 mult = 10.0;
             }
-            //f = (long long)atof(buffer)*mult;
             f = ((long long)(atof(buffer)*mult)+5)/10;
-fprintf(stderr, "BUFFER=%s\n", buffer);
             sprintf(output, "<big>%lld</big>", f);
             gtk_label_set_markup (GTK_LABEL (label), output);
             int b=get_band_from_frequency(f);
diff --git a/main.c b/main.c
index 0d14aff46eead7a77ded8dfa3553578189c498cd..858defdafe6eae80e74cf51265191d2f6e26b3fc 100644 (file)
--- a/main.c
+++ b/main.c
@@ -606,6 +606,11 @@ fprintf(stderr,"start: selected radio=%p device=%d\n",radio,radio->device);
   splash_status("Initializing GPIO ...");
   if(gpio_init()<0) {
   }
+#ifdef LOCALCW
+  // init local keyer if enabled
+  else if (cw_keyer_internal == 0)
+    keyer_update();
+#endif
 #endif
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
index f108d940c6a66650242c3d8620c37d753b79c5bc..d689d79d1456383e7d073c052e9045d23d432314 100644 (file)
@@ -56,6 +56,9 @@
 #ifdef FREEDV
 #include "freedv.h"
 #endif
+#ifdef LOCALCW
+#include "iambic.h"
+#endif
 #include "vox.h"
 
 #define min(x,y) (x<y?x:y)
@@ -215,6 +218,11 @@ void tuner_changed() {
 */
 
 void cw_changed() {
+#ifdef LOCALCW
+    // update the iambic keyer params
+    if (cw_keyer_internal == 0)
+        keyer_update();
+#endif
 }
 
 void new_protocol_init(int pixels) {
@@ -315,6 +323,13 @@ static void new_protocol_high_priority(int run) {
       if(tune) {
         buffer[4]|=0x02;
       }
+#ifdef LOCALCW
+      if (cw_keyer_internal == 0) {
+        // set the ptt if we're not in breakin mode and mox is on
+        if(cw_breakin == 0 && getMox()) buffer[4]|=0x02;
+        buffer[5]|=(keyer_out) ? 0x01 : 0;
+      }
+#endif
     } else {
       if(isTransmitting()) {
         buffer[4]|=0x02;
@@ -538,7 +553,8 @@ static void new_protocol_transmit_specific() {
 
     buffer[4]=1; // 1 DAC
     buffer[5]=0; //  default no CW
-    if(cw_keyer_internal && (mode==modeCWU || mode==modeCWL)) {
+    // may be using local pihpsdr OR hpsdr CW
+    if(mode==modeCWU || mode==modeCWL) {
         buffer[5]|=0x02;
     }
     if(cw_keys_reversed) {
diff --git a/radio.c b/radio.c
index 5bb28ec3054dabe51382cd0c79a27cdb8c154276..30717ab48e4296ea5b9313c648bbcc8ed8882835 100644 (file)
--- a/radio.c
+++ b/radio.c
@@ -618,6 +618,8 @@ fprintf(stderr,"radioRestoreState: %s\n",property_path);
     if(value) cw_keyer_spacing=atoi(value);
     value=getProperty("cw_keyer_internal");
     if(value) cw_keyer_internal=atoi(value);
+    value=getProperty("cw_active_level");
+    if(value) cw_active_level=atoi(value);
     value=getProperty("cw_keyer_sidetone_volume");
     if(value) cw_keyer_sidetone_volume=atoi(value);
     value=getProperty("cw_keyer_ptt_delay");
@@ -815,6 +817,8 @@ void radioSaveState() {
     setProperty("cw_keyer_spacing",value);
     sprintf(value,"%d",cw_keyer_internal);
     setProperty("cw_keyer_internal",value);
+    sprintf(value,"%d",cw_active_level);
+    setProperty("cw_active_level",value);
     sprintf(value,"%d",cw_keyer_sidetone_volume);
     setProperty("cw_keyer_sidetone_volume",value);
     sprintf(value,"%d",cw_keyer_ptt_delay);