| 8523 | } |
| 8524 | |
| 8525 | static int morse_data_handler_start(RIG *rig) |
| 8526 | { |
| 8527 | struct rig_state *rs = STATE(rig); |
| 8528 | morse_data_handler_priv_data *morse_data_handler_priv; |
| 8529 | |
| 8530 | ENTERFUNC; |
| 8531 | |
| 8532 | rs->morse_data_handler_thread_run = 1; |
| 8533 | rs->morse_data_handler_priv_data = calloc(1, |
| 8534 | sizeof(morse_data_handler_priv_data)); |
| 8535 | |
| 8536 | if (rs->morse_data_handler_priv_data == NULL) |
| 8537 | { |
| 8538 | RETURNFUNC(-RIG_ENOMEM); |
| 8539 | } |
| 8540 | |
| 8541 | morse_data_handler_priv = (morse_data_handler_priv_data *) |
| 8542 | rs->morse_data_handler_priv_data; |
| 8543 | morse_data_handler_priv->args.rig = rig; |
| 8544 | value_t keyspd; |
| 8545 | keyspd.i = 25; // default value if KEYSPD doesn't work |
| 8546 | rig_get_level(rig, RIG_VFO_CURR, RIG_LEVEL_KEYSPD, &keyspd); |
| 8547 | morse_data_handler_priv->keyspd = keyspd.i; |
| 8548 | rig_debug(RIG_DEBUG_VERBOSE, "%s(%d): keyspd=%d\n", __func__, __LINE__, |
| 8549 | keyspd.i); |
| 8550 | int err = pthread_create(&morse_data_handler_priv->thread_id, NULL, |
| 8551 | morse_data_handler, &morse_data_handler_priv->args); |
| 8552 | |
| 8553 | if (err) |
| 8554 | { |
| 8555 | rig_debug(RIG_DEBUG_ERR, "%s: pthread_create error: %s\n", __func__, |
| 8556 | strerror(errno)); |
| 8557 | RETURNFUNC(-RIG_EINTERNAL); |
| 8558 | } |
| 8559 | |
| 8560 | RETURNFUNC(RIG_OK); |
| 8561 | } |
| 8562 | |
| 8563 | |
| 8564 | static int async_data_handler_stop(RIG *rig) |
no test coverage detected