Browse Source

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.
master
Reece H. Dunn 9 years ago
parent
commit
94c5efe0b3

+ 1
- 3
src/libespeak-ng/speech.c View File

@@ -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
}
}

+ 0
- 26
src/libespeak-ng/wave.c View File

@@ -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

+ 0
- 5
src/libespeak-ng/wave.h View File

@@ -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);

+ 0
- 14
src/libespeak-ng/wave_pulse.c View File

@@ -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;

+ 0
- 21
src/libespeak-ng/wave_sada.c View File

@@ -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:

Loading…
Cancel
Save