wine/dlls/winmm/tests/winmm_test.h
Robert Reif 2b3247a424 winmm: Always check for open and close enents in wave test.
Always check for open and close events.
Send WM_APP message to thread to terminate it rather than TerminateThread.
Fix CreateThread/waveOutOpen race by waiting for background thread to
run before waveOutOpen is called.
Add more non-hardware supported formats.  There is a bug in wave
mapper GetPosition when multiple headers are used and this helps
trigger it.
2006-05-31 11:45:22 +02:00

81 lines
3.4 KiB
C

/*
* Copyright (c) 2002 Francois Gouget
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef WAVE_FORMAT_48M08
#define WAVE_FORMAT_48M08 0x00001000 /* 48 kHz, Mono, 8-bit */
#define WAVE_FORMAT_48S08 0x00002000 /* 48 kHz, Stereo, 8-bit */
#define WAVE_FORMAT_48M16 0x00004000 /* 48 kHz, Mono, 16-bit */
#define WAVE_FORMAT_48S16 0x00008000 /* 48 kHz, Stereo, 16-bit */
#define WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */
#define WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */
#define WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */
#define WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */
#endif
#ifndef DRV_QUERYDEVICEINTERFACE
#define DRV_QUERYDEVICEINTERFACE (DRV_RESERVED + 12)
#endif
#ifndef DRV_QUERYDEVICEINTERFACESIZE
#define DRV_QUERYDEVICEINTERFACESIZE (DRV_RESERVED + 13)
#endif
static const unsigned int win_formats[][4] = {
{0, 8000, 8, 1},
{0, 8000, 8, 2},
{0, 8000, 16, 1},
{0, 8000, 16, 2},
{WAVE_FORMAT_1M08, 11025, 8, 1},
{WAVE_FORMAT_1S08, 11025, 8, 2},
{WAVE_FORMAT_1M16, 11025, 16, 1},
{WAVE_FORMAT_1S16, 11025, 16, 2},
{0, 12000, 8, 1},
{0, 12000, 8, 2},
{0, 12000, 16, 1},
{0, 12000, 16, 2},
{0, 16000, 8, 1},
{0, 16000, 8, 2},
{0, 16000, 16, 1},
{0, 16000, 16, 2},
{WAVE_FORMAT_2M08, 22050, 8, 1},
{WAVE_FORMAT_2S08, 22050, 8, 2},
{WAVE_FORMAT_2M16, 22050, 16, 1},
{WAVE_FORMAT_2S16, 22050, 16, 2},
{WAVE_FORMAT_4M08, 44100, 8, 1},
{WAVE_FORMAT_4S08, 44100, 8, 2},
{WAVE_FORMAT_4M16, 44100, 16, 1},
{WAVE_FORMAT_4S16, 44100, 16, 2},
{WAVE_FORMAT_48M08, 48000, 8, 1},
{WAVE_FORMAT_48S08, 48000, 8, 2},
{WAVE_FORMAT_48M16, 48000, 16, 1},
{WAVE_FORMAT_48S16, 48000, 16, 2},
{WAVE_FORMAT_96M08, 96000, 8, 1},
{WAVE_FORMAT_96S08, 96000, 8, 2},
{WAVE_FORMAT_96M16, 96000, 16, 1},
{WAVE_FORMAT_96S16, 96000, 16, 2}
};
#define NB_WIN_FORMATS (sizeof(win_formats)/sizeof(*win_formats))
extern const char* dev_name(int);
extern const char* wave_open_flags(DWORD);
extern const char* mmsys_error(MMRESULT);
extern const char* wave_out_error(MMRESULT);
extern const char* get_format_str(WORD format);
extern const char* wave_time_format(UINT type);
extern DWORD bytes_to_samples(DWORD bytes, LPWAVEFORMATEX pwfx);
extern DWORD bytes_to_ms(DWORD bytes, LPWAVEFORMATEX pwfx);
extern DWORD time_to_bytes(LPMMTIME mmtime, LPWAVEFORMATEX pwfx);