#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;
#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)
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();
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);
}
#include "meter.h"
#include "wdsp.h"
-#ifdef FREEDV
#include "radio.h"
+#ifdef FREEDV
#include "mode.h"
#include "freedv.h"
#endif
}
}
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:
{
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;
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;
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;