From: John Melton - G0ORX/N6LYT <john.d.melton@googlemail.com> Date: Sat, 10 Dec 2016 17:45:47 +0000 (+0000) Subject: Applied patches from Rick N1GP X-Git-Url: https://git.rkrishnan.org/pf/components//%22file:/%22?a=commitdiff_plain;h=c4f1c447dd8ba304cfd0852aecf6866705bd6c0f;p=pihpsdr.git Applied patches from Rick N1GP --- diff --git a/Makefile b/Makefile index f88bbf5..8383099 100644 --- 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 diff --git a/cw_menu.c b/cw_menu.c index 5350e89..aa77907 100644 --- 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; diff --git a/freqent_menu.c b/freqent_menu.c index 739b883..0b34ff0 100644 --- a/freqent_menu.c +++ b/freqent_menu.c @@ -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 0d14aff..858defd 100644 --- 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); diff --git a/new_protocol.c b/new_protocol.c index f108d94..d689d79 100644 --- a/new_protocol.c +++ b/new_protocol.c @@ -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 5bb28ec..30717ab 100644 --- 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);