mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 05:35:35 +00:00
Remove calls to wave_set_callback_is_output_enabled.
These calls are used to pre-emptively exit when writing audio data. This is also handled within dispatch_audio. The difference is that this callback could allow espeak to cancel quicker. In practice it does not make much difference.
This commit is contained in:
@@ -119,10 +119,8 @@ static int dispatch_audio(short *outbuf, int length, espeak_EVENT *event)
|
||||
return -1;
|
||||
}
|
||||
#ifdef USE_ASYNC
|
||||
if ((my_mode & ENOUTPUT_MODE_SYNCHRONOUS) == 0) {
|
||||
wave_set_callback_is_output_enabled(fifo_is_command_enabled);
|
||||
if ((my_mode & ENOUTPUT_MODE_SYNCHRONOUS) == 0)
|
||||
event_init();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,6 @@ int wave_port_close(void *theHandler);
|
||||
int wave_port_is_busy(void *theHandler);
|
||||
void wave_port_terminate();
|
||||
void wave_port_flush(void *theHandler);
|
||||
void wave_port_set_callback_is_output_enabled(t_wave_callback *cb);
|
||||
void *wave_port_test_get_write_buffer();
|
||||
|
||||
// wave_pulse.cpp
|
||||
@@ -74,7 +73,6 @@ int wave_pulse_close(void *theHandler);
|
||||
int wave_pulse_is_busy(void *theHandler);
|
||||
void wave_pulse_terminate();
|
||||
void wave_pulse_flush(void *theHandler);
|
||||
void wave_pulse_set_callback_is_output_enabled(t_wave_callback *cb);
|
||||
void *wave_pulse_test_get_write_buffer();
|
||||
|
||||
// wrappers
|
||||
@@ -127,14 +125,6 @@ void wave_flush(void *theHandler)
|
||||
wave_port_flush(theHandler);
|
||||
}
|
||||
|
||||
void wave_set_callback_is_output_enabled(t_wave_callback *cb)
|
||||
{
|
||||
if (pulse_running)
|
||||
wave_pulse_set_callback_is_output_enabled(cb);
|
||||
else
|
||||
wave_port_set_callback_is_output_enabled(cb);
|
||||
}
|
||||
|
||||
// rename functions to be wrapped
|
||||
#define wave_open wave_port_open
|
||||
#define wave_write wave_port_write
|
||||
@@ -142,12 +132,9 @@ void wave_set_callback_is_output_enabled(t_wave_callback *cb)
|
||||
#define wave_is_busy wave_port_is_busy
|
||||
#define wave_terminate wave_port_terminate
|
||||
#define wave_flush wave_port_flush
|
||||
#define wave_set_callback_is_output_enabled wave_port_set_callback_is_output_enabled
|
||||
|
||||
#endif
|
||||
|
||||
static t_wave_callback *my_callback_is_output_enabled = NULL;
|
||||
|
||||
#define MAX_SAMPLE_RATE 22050
|
||||
#define FRAMES_PER_BUFFER 512
|
||||
#define BUFFER_LENGTH (MAX_SAMPLE_RATE*2*sizeof(uint16_t))
|
||||
@@ -494,11 +481,6 @@ static const PaDeviceInfo *select_device(const char *device)
|
||||
return selectedDeviceInfo;
|
||||
}
|
||||
|
||||
void wave_set_callback_is_output_enabled(t_wave_callback *cb)
|
||||
{
|
||||
my_callback_is_output_enabled = cb;
|
||||
}
|
||||
|
||||
void *wave_open(int srate, const char *device)
|
||||
{
|
||||
PaError err;
|
||||
@@ -576,9 +558,6 @@ size_t wave_write(void *theHandler, char *theMono16BitsWaveBuffer, size_t theSiz
|
||||
char *aRead;
|
||||
|
||||
while (1) {
|
||||
if (my_callback_is_output_enabled && (0 == my_callback_is_output_enabled()))
|
||||
return 0;
|
||||
|
||||
aRead = myRead;
|
||||
|
||||
// write pointer is before read pointer?
|
||||
@@ -780,9 +759,4 @@ void wave_flush(void *theHandler)
|
||||
(void)theHandler; // unused
|
||||
}
|
||||
|
||||
void wave_set_callback_is_output_enabled(t_wave_callback *cb)
|
||||
{
|
||||
(void)cb; // unused
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -34,11 +34,6 @@ extern void wave_flush(void *theHandler);
|
||||
extern int wave_is_busy(void *theHandler);
|
||||
extern void wave_terminate();
|
||||
|
||||
// set the callback which informs if the output is still enabled.
|
||||
// Helpful if a new sample is waiting for free space whereas sound must be stopped.
|
||||
typedef int (t_wave_callback)(void);
|
||||
extern void wave_set_callback_is_output_enabled(t_wave_callback *cb);
|
||||
|
||||
// general functions
|
||||
extern void clock_gettime2(struct timespec *ts);
|
||||
extern void add_time_in_ms(struct timespec *ts, int time_in_ms);
|
||||
|
||||
@@ -52,8 +52,6 @@ enum {
|
||||
|
||||
#ifdef USE_PULSEAUDIO
|
||||
|
||||
static t_wave_callback *my_callback_is_output_enabled = NULL;
|
||||
|
||||
#define SAMPLE_RATE 22050
|
||||
#define ESPEAK_FORMAT PA_SAMPLE_S16LE
|
||||
#define ESPEAK_CHANNEL 1
|
||||
@@ -71,7 +69,6 @@ static t_wave_callback *my_callback_is_output_enabled = NULL;
|
||||
#define wave_is_busy wave_pulse_is_busy
|
||||
#define wave_terminate wave_pulse_terminate
|
||||
#define wave_flush wave_pulse_flush
|
||||
#define wave_set_callback_is_output_enabled wave_pulse_set_callback_is_output_enabled
|
||||
|
||||
// check whether we can connect to PulseAudio
|
||||
#include <pulse/simple.h>
|
||||
@@ -501,11 +498,6 @@ void wave_flush(void *theHandler)
|
||||
(void)theHandler; // unused
|
||||
}
|
||||
|
||||
void wave_set_callback_is_output_enabled(t_wave_callback *cb)
|
||||
{
|
||||
my_callback_is_output_enabled = cb;
|
||||
}
|
||||
|
||||
void *wave_open(int srate, const char *device)
|
||||
{
|
||||
stream = NULL;
|
||||
@@ -531,12 +523,6 @@ size_t wave_write(void *theHandler, char *theMono16BitsWaveBuffer, size_t theSiz
|
||||
pthread_mutex_lock(&pulse_mutex);
|
||||
|
||||
while (1) {
|
||||
if (my_callback_is_output_enabled
|
||||
&& (0 == my_callback_is_output_enabled())) {
|
||||
theSize = 0;
|
||||
goto terminate;
|
||||
}
|
||||
|
||||
aTotalFreeMem = pulse_free();
|
||||
if (aTotalFreeMem >= bytes_to_write)
|
||||
break;
|
||||
|
||||
@@ -40,8 +40,6 @@
|
||||
|
||||
#ifdef USE_SADA
|
||||
|
||||
static t_wave_callback *my_callback_is_output_enabled = NULL;
|
||||
|
||||
static const char *sun_audio_device = "/dev/audio";
|
||||
static int sun_audio_fd = -1;
|
||||
|
||||
@@ -135,8 +133,6 @@ size_t wave_write(void *theHandler,
|
||||
size_t theSize)
|
||||
{
|
||||
size_t num;
|
||||
if (my_callback_is_output_enabled && (0 == my_callback_is_output_enabled()))
|
||||
return 0;
|
||||
|
||||
#if defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN
|
||||
// BIG-ENDIAN, swap the order of bytes in each sound sample
|
||||
@@ -281,23 +277,6 @@ void wave_flush(void *theHandler)
|
||||
(void)theHandler; // unused
|
||||
}
|
||||
|
||||
// wave_set_callback_is_output_enabled
|
||||
//
|
||||
// DESCRIPTION:
|
||||
//
|
||||
// Sets the callback to call from wave_write before it sends data to
|
||||
// be played. It helps wave_write determine if the data should be
|
||||
// thrown away or not.
|
||||
//
|
||||
// PARAMETERS:
|
||||
//
|
||||
// cb: the callback to call from wave_write
|
||||
//
|
||||
void wave_set_callback_is_output_enabled(t_wave_callback *cb)
|
||||
{
|
||||
my_callback_is_output_enabled = cb;
|
||||
}
|
||||
|
||||
// wave_get_remaining_time
|
||||
//
|
||||
// DESCRIPTION:
|
||||
|
||||
Reference in New Issue
Block a user