177dc2e837be043adc5f993f71612053d8fd421d
[reactos.git] / modules / rostests / winetests / winmm / winmm_test.h
1 /*
2 * Copyright (c) 2002 Francois Gouget
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #ifndef WAVE_FORMAT_48M08
20 #define WAVE_FORMAT_48M08 0x00001000 /* 48 kHz, Mono, 8-bit */
21 #define WAVE_FORMAT_48S08 0x00002000 /* 48 kHz, Stereo, 8-bit */
22 #define WAVE_FORMAT_48M16 0x00004000 /* 48 kHz, Mono, 16-bit */
23 #define WAVE_FORMAT_48S16 0x00008000 /* 48 kHz, Stereo, 16-bit */
24 #define WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */
25 #define WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */
26 #define WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */
27 #define WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */
28 #endif
29
30 #ifndef DRV_QUERYDEVICEINTERFACE
31 #define DRV_QUERYDEVICEINTERFACE (DRV_RESERVED + 12)
32 #endif
33 #ifndef DRV_QUERYDEVICEINTERFACESIZE
34 #define DRV_QUERYDEVICEINTERFACESIZE (DRV_RESERVED + 13)
35 #endif
36
37 static const unsigned int win_formats[][4] = {
38 {0, 8000, 8, 1},
39 {0, 8000, 8, 2},
40 {0, 8000, 16, 1},
41 {0, 8000, 16, 2},
42 {WAVE_FORMAT_1M08, 11025, 8, 1},
43 {WAVE_FORMAT_1S08, 11025, 8, 2},
44 {WAVE_FORMAT_1M16, 11025, 16, 1},
45 {WAVE_FORMAT_1S16, 11025, 16, 2},
46 {0, 12000, 8, 1},
47 {0, 12000, 8, 2},
48 {0, 12000, 16, 1},
49 {0, 12000, 16, 2},
50 {0, 16000, 8, 1},
51 {0, 16000, 8, 2},
52 {0, 16000, 16, 1},
53 {0, 16000, 16, 2},
54 {WAVE_FORMAT_2M08, 22050, 8, 1},
55 {WAVE_FORMAT_2S08, 22050, 8, 2},
56 {WAVE_FORMAT_2M16, 22050, 16, 1},
57 {WAVE_FORMAT_2S16, 22050, 16, 2},
58 {WAVE_FORMAT_4M08, 44100, 8, 1},
59 {WAVE_FORMAT_4S08, 44100, 8, 2},
60 {WAVE_FORMAT_4M16, 44100, 16, 1},
61 {WAVE_FORMAT_4S16, 44100, 16, 2},
62 {WAVE_FORMAT_48M08, 48000, 8, 1},
63 {WAVE_FORMAT_48S08, 48000, 8, 2},
64 {WAVE_FORMAT_48M16, 48000, 16, 1},
65 {WAVE_FORMAT_48S16, 48000, 16, 2},
66 {WAVE_FORMAT_96M08, 96000, 8, 1},
67 {WAVE_FORMAT_96S08, 96000, 8, 2},
68 {WAVE_FORMAT_96M16, 96000, 16, 1},
69 {WAVE_FORMAT_96S16, 96000, 16, 2}
70 };
71 #define NB_WIN_FORMATS (sizeof(win_formats)/sizeof(*win_formats))
72
73 extern const char* dev_name(int);
74 extern const char* wave_open_flags(DWORD);
75 extern const char* mmsys_error(MMRESULT);
76 extern const char* wave_out_error(MMRESULT);
77 extern const char* get_format_str(WORD format);
78 extern const char* wave_time_format(UINT type);
79 extern DWORD bytes_to_samples(DWORD bytes, LPWAVEFORMATEX pwfx);
80 extern DWORD bytes_to_ms(DWORD bytes, LPWAVEFORMATEX pwfx);
81 extern DWORD time_to_bytes(LPMMTIME mmtime, LPWAVEFORMATEX pwfx);