Attempting to add the controls, not working as well. Need to fix ultimatic keyer, possibly semaphore related?
This commit is contained in:
parent
4b1207c31f
commit
924dce5426
31
gpiokeyer.c
31
gpiokeyer.c
|
@ -479,4 +479,35 @@ int is_key_down_gpiokeyer(void)
|
|||
return retval;
|
||||
}
|
||||
|
||||
void quisk_set_gpio_keyer_mode(int mode)
|
||||
{
|
||||
if ((mode > -1) && (mode < NUM_KEYER_MODES))
|
||||
cw_keyer_mode = mode;
|
||||
}
|
||||
|
||||
|
||||
void quisk_set_gpio_keyer_speed(int wpm)
|
||||
{
|
||||
cw_keyer_speed = wpm;
|
||||
keyer_update();
|
||||
}
|
||||
|
||||
void quisk_set_gpio_keyer_weight(int weight)
|
||||
{
|
||||
if ((weight > 32) && (weight < 67))
|
||||
cw_keyer_weight = weight;
|
||||
keyer_update();
|
||||
}
|
||||
|
||||
void quisk_set_gpio_keyer_reversed(int flag)
|
||||
{
|
||||
cw_keys_reversed = (flag == 0 ? 0 : 1);
|
||||
keyer_update();
|
||||
}
|
||||
|
||||
void quisk_set_gpio_keyer_strict(int flag)
|
||||
{
|
||||
cw_keyer_spacing = (flag == 0 ? 0 : 1);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
64
quisk.c
64
quisk.c
|
@ -5176,6 +5176,63 @@ static PyObject * set_sample_bytes(PyObject * self, PyObject * args)
|
|||
return Py_None;
|
||||
}
|
||||
|
||||
#if defined(ENABLE_GPIO_KEYER)
|
||||
static PyObject * set_gpio_keyer_mode(PyObject * self, PyObject * args)
|
||||
{
|
||||
int mode;
|
||||
|
||||
if (!PyArg_ParseTuple (args, "i", &mode))
|
||||
return NULL;
|
||||
quisk_set_gpio_keyer_mode(mode);
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
static PyObject * set_gpio_keyer_speed(PyObject * self, PyObject * args)
|
||||
{
|
||||
int wpm;
|
||||
|
||||
if (!PyArg_ParseTuple (args, "i", &wpm))
|
||||
return NULL;
|
||||
quisk_set_gpio_keyer_speed(wpm);
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
static PyObject * set_gpio_keyer_weight(PyObject * self, PyObject * args)
|
||||
{
|
||||
int weight;
|
||||
|
||||
if (!PyArg_ParseTuple (args, "i", &weight))
|
||||
return NULL;
|
||||
quisk_set_gpio_keyer_weight(weight);
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
static PyObject * set_gpio_keyer_reversed(PyObject * self, PyObject * args)
|
||||
{
|
||||
int rev;
|
||||
|
||||
if (!PyArg_ParseTuple (args, "i", &rev))
|
||||
return NULL;
|
||||
quisk_set_gpio_keyer_reversed(rev);
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
static PyObject * set_gpio_keyer_strict(PyObject * self, PyObject * args)
|
||||
{
|
||||
int strict;
|
||||
|
||||
if (!PyArg_ParseTuple (args, "i", &strict))
|
||||
return NULL;
|
||||
quisk_set_gpio_keyer_strict(strict);
|
||||
Py_INCREF (Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
#endif
|
||||
|
||||
static PyMethodDef QuiskMethods[] = {
|
||||
{"add_tone", add_tone, METH_VARARGS, "Add a test tone to the data."},
|
||||
{"dft", dft, METH_VARARGS, "Calculate the discrete Fourier transform."},
|
||||
|
@ -5276,6 +5333,13 @@ static PyMethodDef QuiskMethods[] = {
|
|||
{"freedv_get_version", quisk_freedv_get_version, METH_VARARGS, "Return the codec2 API version."},
|
||||
{"freedv_get_rx_char", quisk_freedv_get_rx_char, METH_VARARGS, "Get text characters received from freedv."},
|
||||
{"freedv_set_options", (PyCFunction)quisk_freedv_set_options, METH_VARARGS|METH_KEYWORDS, "Set the freedv parameters."},
|
||||
#if defined(ENABLE_GPIO_KEYER)
|
||||
{"set_gpio_keyer_mode", set_gpio_keyer_mode, METH_VARARGS, "Change the CW keyer mode."},
|
||||
{"set_gpio_keyer_speed", set_gpio_keyer_mode, METH_VARARGS, "Change the CW keyer speed."},
|
||||
{"set_gpio_keyer_weight", set_gpio_keyer_mode, METH_VARARGS, "Change the CW keyer symbol weight."},
|
||||
{"set_gpio_keyer_reversed", set_gpio_keyer_mode, METH_VARARGS, "Enabled/disable reversed paddles."},
|
||||
{"set_gpio_keyer_strict", set_gpio_keyer_mode, METH_VARARGS, "Enable/disable strict character spacing."},
|
||||
#endif
|
||||
{NULL, NULL, 0, NULL} /* Sentinel */
|
||||
};
|
||||
|
||||
|
|
30
quisk.h
30
quisk.h
|
@ -282,6 +282,13 @@ void quisk_udp_mic_error(char *);
|
|||
void quisk_check_freedv_mode(void);
|
||||
void quisk_calc_audio_graph(double, complex double *, double *, int, int);
|
||||
int QuiskDeltaMsec(int);
|
||||
#if defined(ENABLE_GPIO_KEYER)
|
||||
void quisk_set_gpio_keyer_mode(int);
|
||||
void quisk_set_gpio_keyer_speed(int);
|
||||
void quisk_set_gpio_keyer_weight(int);
|
||||
void quisk_set_gpio_keyer_reversed(int);
|
||||
void quisk_set_gpio_keyer_strict(int);
|
||||
#endif
|
||||
|
||||
// Functions supporting digital voice codecs
|
||||
typedef int (* ty_dvoice_codec_rx)(complex double *, double *, int, int);
|
||||
|
@ -334,6 +341,13 @@ int import_quisk_api(void); // used to initialize Quisk_API
|
|||
#define quisk_dvoice_freedv (*( void (*) (ty_dvoice_codec_rx, ty_dvoice_codec_tx) )Quisk_API[8])
|
||||
#define quisk_is_key_down (*( int (*) (void) )Quisk_API[9])
|
||||
#define quisk_sample_source4 (*( void (*) (ty_sample_start, ty_sample_stop, ty_sample_read, ty_sample_write) )Quisk_API[10])
|
||||
//#if defined(ENABLE_GPIO_KEYER)
|
||||
//#define quisk_set_gpio_keyer_mode (*( void (*) (int) )Quisk_API[11])
|
||||
//#define quisk_set_gpio_keyer_speed (*( void (*) (int) )Quisk_API[12])
|
||||
//#define quisk_set_gpio_keyer_weight (*( void (*) (int) )Quisk_API[13])
|
||||
//#define quisk_set_gpio_keyer_reversed (*( void (*) (int) )Quisk_API[14])
|
||||
//#define quisk_set_gpio_keyer_strict (*( void (*) (int) )Quisk_API[15])
|
||||
//#endif
|
||||
|
||||
#else
|
||||
// Used to export symbols from _quisk in quisk.c
|
||||
|
@ -348,12 +362,28 @@ void quisk_sample_source(ty_sample_start, ty_sample_stop, ty_sample_read);
|
|||
void quisk_dvoice_freedv(ty_dvoice_codec_rx, ty_dvoice_codec_tx);
|
||||
int quisk_is_key_down(void);
|
||||
void quisk_sample_source4(ty_sample_start, ty_sample_stop, ty_sample_read, ty_sample_write);
|
||||
//#if defined(ENABLE_GPIO_KEYER)
|
||||
//void quisk_set_gpio_keyer_mode(int);
|
||||
//void quisk_set_gpio_keyer_speed(int);
|
||||
//void quisk_set_gpio_keyer_weight(int);
|
||||
//void quisk_set_gpio_keyer_reversed(int);
|
||||
//void quisk_set_gpio_keyer_strict(int);
|
||||
//#endif
|
||||
|
||||
//#if defined(ENABLE_GPIO_KEYER)
|
||||
//#define QUISK_API_INIT { \
|
||||
// &quisk_sound_state, &QuiskGetConfigInt, &QuiskGetConfigDouble, &QuiskGetConfigString, &QuiskTimeSec, \
|
||||
// &QuiskSleepMicrosec, &QuiskPrintTime, &quisk_sample_source, &quisk_dvoice_freedv, &quisk_is_key_down, \
|
||||
// &quisk_sample_source4, &quisk_set_gpio_keyer_mode, &quisk_set_gpio_keyer_speed, \
|
||||
// &quisk_set_gpio_keyer_weight, &quisk_set_gpio_keyer_reversed, &quisk_set_gpio_keyer_strict \
|
||||
// }
|
||||
//#else
|
||||
#define QUISK_API_INIT { \
|
||||
&quisk_sound_state, &QuiskGetConfigInt, &QuiskGetConfigDouble, &QuiskGetConfigString, &QuiskTimeSec, \
|
||||
&QuiskSleepMicrosec, &QuiskPrintTime, &quisk_sample_source, &quisk_dvoice_freedv, &quisk_is_key_down, \
|
||||
&quisk_sample_source4 \
|
||||
}
|
||||
//#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user