説明を見る。 1
2
3
4
5
6
7
8
9
10
11
16
17
18 #ifndef CRI_INCL_CRI_ATOM_WASAPI_H
19 #define CRI_INCL_CRI_ATOM_WASAPI_H
20
21
22
23
24
25 #include <Windows.h>
26 #include <sdkddkver.h>
27 #include <Audioclient.h>
28 #include <AudioSessionTypes.h>
29 #include <mmdeviceapi.h>
30 #include <cri_le_xpt.h>
31 #include <cri_le_atom.h>
32 #include <cri_le_atom_ex.h>
33 #include <cri_le_atom_asr.h>
34
35
36
37
38
39
40
41
42
43
44
45
46
60 #define criAtom_SetDefaultConfig_WASAPI(p_config) \
61 { \
62 criAtom_SetDefaultConfig(&(p_config)->atom); \
63 criAtomAsr_SetDefaultConfig(&(p_config)->asr); \
64 criAtomHcaMx_SetDefaultConfig(&(p_config)->hca_mx); \
65 }
66
67
68
69
79 #define criAtomEx_SetDefaultConfig_WASAPI(p_config) \
80 { \
81 criAtomEx_SetDefaultConfig(&(p_config)->atom_ex); \
82 criAtomExAsr_SetDefaultConfig(&(p_config)->asr); \
83 criAtomExHcaMx_SetDefaultConfig(&(p_config)->hca_mx); \
84 }
85
86
87
88
89
90
91
92
104 typedef struct CriAtomConfigTag_WASAPI {
105 CriAtomConfig atom;
106 CriAtomAsrConfig asr;
107 CriAtomHcaMxConfig hca_mx;
108 } CriAtomConfig_WASAPI;
109
123 typedef void (CRIAPI *CriAtomAudioEndpointCbFunc_WASAPI)(void *object, IMMDevice *device);
124
135 typedef void (CRIAPI *CriAtomDeviceUpdateCbFunc_WASAPI)(void *object);
136
137
138
139
147 typedef struct CriAtomExConfigTag_WASAPI {
148 CriAtomExConfig atom_ex;
149 CriAtomExAsrConfig asr;
150 CriAtomExHcaMxConfig hca_mx;
151 } CriAtomExConfig_WASAPI;
152
153
154
155
156
157
158
159
160
161
162 #ifdef __cplusplus
163 extern "C" {
164 #endif
165
166
167
168
189 CriSint32 CRIAPI criAtom_CalculateWorkSize_WASAPI(const CriAtomConfig_WASAPI *config);
190
235 void CRIAPI criAtom_Initialize_WASAPI(
236 const CriAtomConfig_WASAPI *config, void *work, CriSint32 work_size);
237
258 void CRIAPI criAtom_Finalize_WASAPI(void);
259
277 CriBool CRIAPI criAtom_GetAudioClientMixFormat_WASAPI(WAVEFORMATEXTENSIBLE *format);
278
297 CriBool CRIAPI criAtom_GetAudioClientIsFormatSupported_WASAPI(const WAVEFORMATEX *format);
298
317 void CRIAPI criAtom_SetAudioClientShareMode_WASAPI(AUDCLNT_SHAREMODE mode);
318
335 void CRIAPI criAtom_SetAudioClientFormat_WASAPI(const WAVEFORMATEX *format);
336
365 void CRIAPI criAtom_SetAudioClientBufferDuration_WASAPI(REFERENCE_TIME ref_time);
366
379 IAudioClient * CRIAPI criAtom_GetAudioClient_WASAPI(void);
380
393 CriBool CRIAPI criAtom_IsDeviceInvalidated_WASAPI(void);
394
423 void CRIAPI criAtom_SetDeviceId_WASAPI(CriAtomSoundRendererType type, LPCWSTR device_id);
424
449 CriSint32 CRIAPI criAtom_EnumAudioEndpoints_WASAPI(CriAtomAudioEndpointCbFunc_WASAPI callback, void *object);
450
465 void CRIAPI criAtom_SetDeviceUpdateCallback_WASAPI(CriAtomDeviceUpdateCbFunc_WASAPI callback, void *object);
466
467
468
469
490 CriSint32 CRIAPI criAtomEx_CalculateWorkSize_WASAPI(const CriAtomExConfig_WASAPI *config);
491
532 void CRIAPI criAtomEx_Initialize_WASAPI(
533 const CriAtomExConfig_WASAPI *config, void *work, CriSint32 work_size);
534
551 void CRIAPI criAtomEx_Finalize_WASAPI(void);
552
553 #ifdef __cplusplus
554 }
555 #endif
556
557 #endif
558
559 -stdin