Browse Source

Remove calls to wave_get_write_position.

This call was used to update the written sample count used by
wave_get_remaining_time. As that function has been removed, this
code is no longer needed.
master
Reece H. Dunn 9 years ago
parent
commit
2a628e982f

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

return a_wave_can_be_played == 0; // 1 = stop synthesis, -1 = error return a_wave_can_be_played == 0; // 1 = stop synthesis, -1 = error
} }


static int create_events(short *outbuf, int length, espeak_EVENT *event_list, uint32_t the_write_pos)
static int create_events(short *outbuf, int length, espeak_EVENT *event_list)
{ {
int finished; int finished;
int i = 0; int i = 0;
espeak_EVENT *event; espeak_EVENT *event;
if (event_list_ix == 0) if (event_list_ix == 0)
event = NULL; event = NULL;
else {
else
event = event_list + i; event = event_list + i;
event->sample += the_write_pos;
}
finished = dispatch_audio((short *)outbuf, length, event); finished = dispatch_audio((short *)outbuf, length, event);
length = 0; // the wave data are played once. length = 0; // the wave data are played once.
i++; i++;
int length; int length;
int finished = 0; int finished = 0;
int count_buffers = 0; int count_buffers = 0;
uint32_t a_write_pos = 0;


if ((outbuf == NULL) || (event_list == NULL)) if ((outbuf == NULL) || (event_list == NULL))
return ENS_NOT_INITIALIZED; return ENS_NOT_INITIALIZED;


count_samples = 0; count_samples = 0;


if ((my_mode & ENOUTPUT_MODE_SPEAK_AUDIO) == ENOUTPUT_MODE_SPEAK_AUDIO)
a_write_pos = wave_get_write_position(my_audio);

if (translator == NULL) if (translator == NULL)
espeak_SetVoiceByName("default"); espeak_SetVoiceByName("default");




count_buffers++; count_buffers++;
if ((my_mode & ENOUTPUT_MODE_SPEAK_AUDIO) == ENOUTPUT_MODE_SPEAK_AUDIO) { if ((my_mode & ENOUTPUT_MODE_SPEAK_AUDIO) == ENOUTPUT_MODE_SPEAK_AUDIO) {
finished = create_events((short *)outbuf, length, event_list, a_write_pos);
finished = create_events((short *)outbuf, length, event_list);
if (finished < 0) if (finished < 0)
return ENS_AUDIO_ERROR; return ENS_AUDIO_ERROR;
} else if (synth_callback) } else if (synth_callback)

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

int wave_port_close(void *theHandler); int wave_port_close(void *theHandler);
int wave_port_is_busy(void *theHandler); int wave_port_is_busy(void *theHandler);
void wave_port_terminate(); void wave_port_terminate();
uint32_t wave_port_get_write_position(void *theHandler);
void wave_port_flush(void *theHandler); void wave_port_flush(void *theHandler);
void wave_port_set_callback_is_output_enabled(t_wave_callback *cb); void wave_port_set_callback_is_output_enabled(t_wave_callback *cb);
void *wave_port_test_get_write_buffer(); void *wave_port_test_get_write_buffer();
int wave_pulse_close(void *theHandler); int wave_pulse_close(void *theHandler);
int wave_pulse_is_busy(void *theHandler); int wave_pulse_is_busy(void *theHandler);
void wave_pulse_terminate(); void wave_pulse_terminate();
uint32_t wave_pulse_get_write_position(void *theHandler);
void wave_pulse_flush(void *theHandler); void wave_pulse_flush(void *theHandler);
void wave_pulse_set_callback_is_output_enabled(t_wave_callback *cb); void wave_pulse_set_callback_is_output_enabled(t_wave_callback *cb);
void *wave_pulse_test_get_write_buffer(); void *wave_pulse_test_get_write_buffer();
wave_port_terminate(); wave_port_terminate();
} }


uint32_t wave_get_write_position(void *theHandler)
{
if (pulse_running)
return wave_pulse_get_write_position(theHandler);
else
return wave_port_get_write_position(theHandler);
}

void wave_flush(void *theHandler) void wave_flush(void *theHandler)
{ {
if (pulse_running) if (pulse_running)
#define wave_close wave_port_close #define wave_close wave_port_close
#define wave_is_busy wave_port_is_busy #define wave_is_busy wave_port_is_busy
#define wave_terminate wave_port_terminate #define wave_terminate wave_port_terminate
#define wave_get_write_position wave_port_get_write_position
#define wave_flush wave_port_flush #define wave_flush wave_port_flush
#define wave_set_callback_is_output_enabled wave_port_set_callback_is_output_enabled #define wave_set_callback_is_output_enabled wave_port_set_callback_is_output_enabled


Pa_Terminate(); Pa_Terminate();
} }


uint32_t wave_get_write_position(void *theHandler)
{
(void)theHandler; // unused

return myWritePosition;
}

#else #else


void *wave_open(int srate, const char *device) void *wave_open(int srate, const char *device)
{ {
} }


uint32_t wave_get_write_position(void *theHandler)
{
(void)theHandler; // unused

return 0;
}

void wave_flush(void *theHandler) void wave_flush(void *theHandler)
{ {
(void)theHandler; // unused (void)theHandler; // unused

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

extern void wave_flush(void *theHandler); extern void wave_flush(void *theHandler);
extern int wave_is_busy(void *theHandler); extern int wave_is_busy(void *theHandler);
extern void wave_terminate(); extern void wave_terminate();
extern uint32_t wave_get_write_position(void *theHandler);


// set the callback which informs if the output is still enabled. // 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. // Helpful if a new sample is waiting for free space whereas sound must be stopped.

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

#define wave_close wave_pulse_close #define wave_close wave_pulse_close
#define wave_is_busy wave_pulse_is_busy #define wave_is_busy wave_pulse_is_busy
#define wave_terminate wave_pulse_terminate #define wave_terminate wave_pulse_terminate
#define wave_get_write_position wave_pulse_get_write_position
#define wave_flush wave_pulse_flush #define wave_flush wave_pulse_flush
#define wave_set_callback_is_output_enabled wave_pulse_set_callback_is_output_enabled #define wave_set_callback_is_output_enabled wave_pulse_set_callback_is_output_enabled


pthread_mutex_destroy(a_mutex); pthread_mutex_destroy(a_mutex);
} }


uint32_t wave_get_write_position(void *theHandler)
{
(void)theHandler; // unused

pa_timing_info a_timing_info = {0};
pulse_playing(&a_timing_info);
return a_timing_info.write_index;
}

#endif #endif

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

my_callback_is_output_enabled = cb; my_callback_is_output_enabled = cb;
} }


// wave_get_write_position
//
// DESCRIPTION:
//
// Returns an identifier for a new sample, where 'sample' is a small
// buffer of synthesized wave data, identified so that the user
// callback could be called when the 'sample' is really played. This
// implementation views the audio as one long continuous stream of
// 16-bit samples.
//
// PARAMETERS:
//
// theHandler: the audio device file descriptor
//
// GLOBALS USED/MODIFIED:
//
// total_samples_sent: used as the return value
//
// RETURNS:
//
// total_samples_sent, which is the index for the end of this long
// continuous stream. [[[WDW: with a unit32_t managing 16-bit
// samples at 22050Hz, we have about 54 hours of play time before
// the index wraps back to 0. We don't handle that wrapping, so
// the behavior after 54 hours of play time is undefined.]]]
//
uint32_t wave_get_write_position(void *theHandler)
{
(void)theHandler; // unused

return total_samples_sent;
}

// wave_get_remaining_time // wave_get_remaining_time
// //
// DESCRIPTION: // DESCRIPTION:

Loading…
Cancel
Save