| if (out_samplerate != 0) { | if (out_samplerate != 0) { | ||||
| // sound was previously open with a different sample rate | // sound was previously open with a different sample rate | ||||
| audio_object_close(my_audio); | audio_object_close(my_audio); | ||||
| out_samplerate = 0; | |||||
| #ifdef HAVE_SLEEP | #ifdef HAVE_SLEEP | ||||
| sleep(1); | sleep(1); | ||||
| #endif | #endif | ||||
| } | } | ||||
| #endif | #endif | ||||
| out_samplerate = voice_samplerate; | |||||
| #ifdef HAVE_PCAUDIOLIB_AUDIO_H | #ifdef HAVE_PCAUDIOLIB_AUDIO_H | ||||
| int error = audio_object_open(my_audio, AUDIO_OBJECT_FORMAT_S16LE, voice_samplerate, 1); | int error = audio_object_open(my_audio, AUDIO_OBJECT_FORMAT_S16LE, voice_samplerate, 1); | ||||
| if (error != 0) { | if (error != 0) { | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| #endif | #endif | ||||
| out_samplerate = voice_samplerate; | |||||
| #ifdef USE_ASYNC | #ifdef USE_ASYNC | ||||
| if ((my_mode & ENOUTPUT_MODE_SYNCHRONOUS) == 0) | if ((my_mode & ENOUTPUT_MODE_SYNCHRONOUS) == 0) | ||||
| event_init(); | event_init(); | ||||
| } | } | ||||
| } | } | ||||
| #ifdef HAVE_PCAUDIOLIB_AUDIO_H | |||||
| if (out_samplerate == 0) { | |||||
| int error = audio_object_open(my_audio, AUDIO_OBJECT_FORMAT_S16LE, voice_samplerate, 1); | |||||
| if (error != 0) { | |||||
| fprintf(stderr, "error: %s\n", audio_object_strerror(my_audio, error)); | |||||
| err = ENS_AUDIO_ERROR; | |||||
| return -1; | |||||
| } | |||||
| out_samplerate = voice_samplerate; | |||||
| } | |||||
| #endif | |||||
| #ifdef HAVE_PCAUDIOLIB_AUDIO_H | #ifdef HAVE_PCAUDIOLIB_AUDIO_H | ||||
| if (outbuf && length && a_wave_can_be_played) { | if (outbuf && length && a_wave_can_be_played) { | ||||
| int error = audio_object_write(my_audio, (char *)outbuf, 2*length); | int error = audio_object_write(my_audio, (char *)outbuf, 2*length); |