|
From: Keiichiro O. <ur...@us...> - 2014-11-12 02:21:37
|
Update of /cvsroot/hts-engine/hts_engine_API/src/lib In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28485/lib Modified Files: HTS_audio.c Log Message: support 64bit windows audio Index: HTS_audio.c =================================================================== RCS file: /cvsroot/hts-engine/hts_engine_API/src/lib/HTS_audio.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** HTS_audio.c 24 Dec 2013 03:34:51 -0000 1.15 --- HTS_audio.c 12 Nov 2014 02:21:35 -0000 1.16 *************** *** 72,76 **** #include <mmsystem.h> #define AUDIO_WAIT_BUFF_MS 10 /* wait time (0.01 sec) */ ! #define AUDIO_CHANNEL 1 /* monoral */ /* HTS_Audio: audio interface for Windows */ --- 72,81 ---- #include <mmsystem.h> #define AUDIO_WAIT_BUFF_MS 10 /* wait time (0.01 sec) */ ! #define AUDIO_CHANNEL 1 /* monaural */ ! #ifdef _M_X64 ! #define AUDIO_POINTER_TYPE DWORD_PTR ! #else ! #define AUDIO_POINTER_TYPE DWORD ! #endif /* HTS_Audio: audio interface for Windows */ *************** *** 86,90 **** /* HTS_AudioInterface_callback_function: callback function from audio device */ ! static void CALLBACK HTS_AudioInterface_callback_function(HWAVEOUT hwaveout, UINT msg, DWORD user_data, DWORD param1, DWORD param2) { WAVEHDR *wavehdr = (WAVEHDR *) param1; --- 91,95 ---- /* HTS_AudioInterface_callback_function: callback function from audio device */ ! static void CALLBACK HTS_AudioInterface_callback_function(HWAVEOUT hwaveout, UINT msg, AUDIO_POINTER_TYPE user_data, AUDIO_POINTER_TYPE param1, AUDIO_POINTER_TYPE param2) { WAVEHDR *wavehdr = (WAVEHDR *) param1; *************** *** 111,115 **** audio_interface->which_buff = 2; memcpy(audio_interface->buff_1.lpData, buff, buff_size * sizeof(short)); ! audio_interface->buff_1.dwBufferLength = buff_size * sizeof(short); result = waveOutWrite(audio_interface->hwaveout, &(audio_interface->buff_1), sizeof(WAVEHDR)); } else { --- 116,120 ---- audio_interface->which_buff = 2; memcpy(audio_interface->buff_1.lpData, buff, buff_size * sizeof(short)); ! audio_interface->buff_1.dwBufferLength = (DWORD) buff_size *sizeof(short); result = waveOutWrite(audio_interface->hwaveout, &(audio_interface->buff_1), sizeof(WAVEHDR)); } else { *************** *** 119,123 **** audio_interface->which_buff = 1; memcpy(audio_interface->buff_2.lpData, buff, buff_size * sizeof(short)); ! audio_interface->buff_2.dwBufferLength = buff_size * sizeof(short); result = waveOutWrite(audio_interface->hwaveout, &(audio_interface->buff_2), sizeof(WAVEHDR)); } --- 124,128 ---- audio_interface->which_buff = 1; memcpy(audio_interface->buff_2.lpData, buff, buff_size * sizeof(short)); ! audio_interface->buff_2.dwBufferLength = (DWORD) buff_size *sizeof(short); result = waveOutWrite(audio_interface->hwaveout, &(audio_interface->buff_2), sizeof(WAVEHDR)); } *************** *** 173,182 **** audio_interface->waveformatex.wFormatTag = WAVE_FORMAT_PCM; audio_interface->waveformatex.nChannels = AUDIO_CHANNEL; ! audio_interface->waveformatex.nSamplesPerSec = sampling_frequency; audio_interface->waveformatex.wBitsPerSample = sizeof(short) * 8; audio_interface->waveformatex.nBlockAlign = AUDIO_CHANNEL * audio_interface->waveformatex.wBitsPerSample / 8; ! audio_interface->waveformatex.nAvgBytesPerSec = sampling_frequency * audio_interface->waveformatex.nBlockAlign; /* open */ ! result = waveOutOpen(&audio_interface->hwaveout, WAVE_MAPPER, &audio_interface->waveformatex, (DWORD) HTS_AudioInterface_callback_function, (DWORD) audio_interface, CALLBACK_FUNCTION); if (result != MMSYSERR_NOERROR) { HTS_error(0, "hts_engine: Failed to open your output audio_interface device to play waveform.\n"); --- 178,187 ---- audio_interface->waveformatex.wFormatTag = WAVE_FORMAT_PCM; audio_interface->waveformatex.nChannels = AUDIO_CHANNEL; ! audio_interface->waveformatex.nSamplesPerSec = (DWORD) sampling_frequency; audio_interface->waveformatex.wBitsPerSample = sizeof(short) * 8; audio_interface->waveformatex.nBlockAlign = AUDIO_CHANNEL * audio_interface->waveformatex.wBitsPerSample / 8; ! audio_interface->waveformatex.nAvgBytesPerSec = (DWORD) sampling_frequency *audio_interface->waveformatex.nBlockAlign; /* open */ ! result = waveOutOpen(&audio_interface->hwaveout, WAVE_MAPPER, &audio_interface->waveformatex, (AUDIO_POINTER_TYPE) HTS_AudioInterface_callback_function, (AUDIO_POINTER_TYPE) audio_interface, CALLBACK_FUNCTION); if (result != MMSYSERR_NOERROR) { HTS_error(0, "hts_engine: Failed to open your output audio_interface device to play waveform.\n"); *************** *** 187,191 **** /* prepare */ audio_interface->buff_1.lpData = (LPSTR) HTS_calloc(max_buff_size, sizeof(short)); ! audio_interface->buff_1.dwBufferLength = max_buff_size * sizeof(short); audio_interface->buff_1.dwFlags = WHDR_BEGINLOOP | WHDR_ENDLOOP; audio_interface->buff_1.dwLoops = 1; --- 192,196 ---- /* prepare */ audio_interface->buff_1.lpData = (LPSTR) HTS_calloc(max_buff_size, sizeof(short)); ! audio_interface->buff_1.dwBufferLength = (DWORD) max_buff_size *sizeof(short); audio_interface->buff_1.dwFlags = WHDR_BEGINLOOP | WHDR_ENDLOOP; audio_interface->buff_1.dwLoops = 1; *************** *** 200,204 **** } audio_interface->buff_2.lpData = (LPSTR) HTS_calloc(max_buff_size, sizeof(short)); ! audio_interface->buff_2.dwBufferLength = max_buff_size * sizeof(short); audio_interface->buff_2.dwFlags = WHDR_BEGINLOOP | WHDR_ENDLOOP; audio_interface->buff_2.dwLoops = 1; --- 205,209 ---- } audio_interface->buff_2.lpData = (LPSTR) HTS_calloc(max_buff_size, sizeof(short)); ! audio_interface->buff_2.dwBufferLength = (DWORD) max_buff_size *sizeof(short); audio_interface->buff_2.dwFlags = WHDR_BEGINLOOP | WHDR_ENDLOOP; audio_interface->buff_2.dwLoops = 1; |