diff --git a/src/libespeak-ng/wavegen.c b/src/libespeak-ng/wavegen.c index 4d6c3748..126e6f71 100644 --- a/src/libespeak-ng/wavegen.c +++ b/src/libespeak-ng/wavegen.c @@ -51,6 +51,8 @@ #define N_WAV_BUF 10 +static void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t *v); + voice_t *wvoice = NULL; FILE *f_log = NULL; @@ -679,8 +681,11 @@ static int ApplyBreath(void) return value; } -static int Wavegen() +static int Wavegen(int length, int modulation, bool resume, frame_t *fr1, frame_t *fr2) { + if (resume == false) + SetSynth(length, modulation, fr1, fr2, wvoice); + if (wvoice == NULL) return 0; @@ -1244,14 +1249,6 @@ static void SetSynth(int length, int modn, frame_t *fr1, frame_t *fr2, voice_t * } } -static int Wavegen2(int length, int modulation, bool resume, frame_t *fr1, frame_t *fr2) -{ - if (resume == false) - SetSynth(length, modulation, fr1, fr2, wvoice); - - return Wavegen(); -} - void Write4Bytes(FILE *f, int value) { // Write 4 bytes to a file, least significant first @@ -1338,7 +1335,7 @@ static int WavegenFill2() wdata.n_mix_wavefile = 0; // ... and drop through to WCMD_SPECT case case WCMD_SPECT: echo_complete = echo_length; - result = Wavegen2(length & 0xffff, q[1] >> 16, resume, (frame_t *)q[2], (frame_t *)q[3]); + result = Wavegen(length & 0xffff, q[1] >> 16, resume, (frame_t *)q[2], (frame_t *)q[3]); break; #ifdef INCLUDE_KLATT case WCMD_KLATT2: // as WCMD_SPECT but stop any concurrent wave file