| #include "config.h" | #include "config.h" | ||||
| #include <ctype.h> | #include <ctype.h> | ||||
| #include <errno.h> | |||||
| #include <math.h> | #include <math.h> | ||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include <stdio.h> | #include <stdio.h> | ||||
| } | } | ||||
| #endif | #endif | ||||
| void DoVoiceChange(voice_t *v) | |||||
| espeak_ng_STATUS DoVoiceChange(voice_t *v) | |||||
| { | { | ||||
| // allocate memory for a copy of the voice data, and free it in wavegenfill() | // allocate memory for a copy of the voice data, and free it in wavegenfill() | ||||
| voice_t *v2; | voice_t *v2; | ||||
| v2 = (voice_t *)malloc(sizeof(voice_t)); | |||||
| if ((v2 = (voice_t *)malloc(sizeof(voice_t))) == NULL) | |||||
| return ENOMEM; | |||||
| memcpy(v2, v, sizeof(voice_t)); | memcpy(v2, v, sizeof(voice_t)); | ||||
| wcmdq[wcmdq_tail][0] = WCMD_VOICE; | wcmdq[wcmdq_tail][0] = WCMD_VOICE; | ||||
| wcmdq[wcmdq_tail][2] = (intptr_t)v2; | wcmdq[wcmdq_tail][2] = (intptr_t)v2; | ||||
| WcmdqInc(); | WcmdqInc(); | ||||
| return ENS_OK; | |||||
| } | } | ||||
| void DoEmbedded(int *embix, int sourceix) | void DoEmbedded(int *embix, int sourceix) |
| espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name); | espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name); | ||||
| voice_t *LoadVoice(const char *voice_name, int control); | voice_t *LoadVoice(const char *voice_name, int control); | ||||
| voice_t *LoadVoiceVariant(const char *voice_name, int variant); | voice_t *LoadVoiceVariant(const char *voice_name, int variant); | ||||
| void DoVoiceChange(voice_t *v); | |||||
| espeak_ng_STATUS DoVoiceChange(voice_t *v); | |||||
| void WVoiceChanged(voice_t *wvoice); | void WVoiceChanged(voice_t *wvoice); | ||||
| void WavegenSetVoice(voice_t *v); | void WavegenSetVoice(voice_t *v); | ||||
| void ReadTonePoints(char *string, int *tone_pts); | void ReadTonePoints(char *string, int *tone_pts); |