kopia lustrzana https://github.com/Hamlib/Hamlib
Fix stop_morse to work with new send_morse
rodzic
e9fd0fba40
commit
d22653a69d
|
@ -136,6 +136,7 @@ typedef struct
|
|||
char data[HAMLIB_FIFO_SIZE];
|
||||
int head;
|
||||
int tail;
|
||||
int flush; // flush flag for stop_morse
|
||||
} FIFO;
|
||||
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ void initFIFO(FIFO *fifo)
|
|||
void resetFIFO(FIFO *fifo)
|
||||
{
|
||||
fifo->head = fifo->tail;
|
||||
fifo->flush = 1;
|
||||
}
|
||||
|
||||
// returns RIG_OK if added
|
||||
|
|
|
@ -6912,6 +6912,7 @@ int HAMLIB_API rig_stop_morse(RIG *rig, vfo_t vfo)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
resetFIFO(rig->state.fifo); // clear out the CW queue
|
||||
if (vfo == RIG_VFO_CURR
|
||||
|| vfo == rig->state.current_vfo)
|
||||
{
|
||||
|
@ -7999,7 +8000,6 @@ void *morse_data_handler(void *arg)
|
|||
//while((c[0]=pop(rig->state.fifo))!=-1)
|
||||
if (n > 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: c=%d\n", __func__, c[0]);
|
||||
do
|
||||
{
|
||||
result = rig->caps->send_morse(rig, RIG_VFO_CURR, c);
|
||||
|
@ -8008,8 +8008,9 @@ void *morse_data_handler(void *arg)
|
|||
rig_debug(RIG_DEBUG_ERR, "%s: error: %s\n", __func__, rigerror(result));
|
||||
hl_usleep(100*1000);
|
||||
}
|
||||
} while (result != RIG_OK);
|
||||
} while (result != RIG_OK && rig->state.fifo->flush==0);
|
||||
}
|
||||
rig->state.fifo->flush = 0; // reset flush flag
|
||||
}
|
||||
free(rig->state.fifo);
|
||||
pthread_exit(NULL);
|
||||
|
|
Ładowanie…
Reference in New Issue