1 /**
2  * This file is part of the mingw-w64 runtime package.
3  * No warranty is given; refer to the file DISCLAIMER within this package.
4  */
5 
6 #include <winapifamily.h>
7 
8 #ifndef __AUDIOSESSIONTYPES__
9 #define __AUDIOSESSIONTYPES__
10 
11 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
12 #if defined (__WIDL__)
13 #define MIDL_SIZE_IS(x) [size_is (x)]
14 #define MIDL_STRING [string]
15 #define MIDL_ANYSIZE_ARRAY
16 #else
17 #define MIDL_SIZE_IS(x)
18 #define MIDL_STRING
19 #define MIDL_ANYSIZE_ARRAY ANYSIZE_ARRAY
20 #endif
21 
22 typedef enum _AudioSessionState {
23   AudioSessionStateInactive = 0,
24   AudioSessionStateActive = 1,
25   AudioSessionStateExpired = 2
26 } AudioSessionState;
27 
28 typedef enum _AUDCLNT_SHAREMODE {
29   AUDCLNT_SHAREMODE_SHARED,
30   AUDCLNT_SHAREMODE_EXCLUSIVE
31 } AUDCLNT_SHAREMODE;
32 
33 typedef enum _AUDIO_STREAM_CATEGORY {
34   AudioCategory_Other = 0,
35   AudioCategory_ForegroundOnlyMedia,
36   AudioCategory_BackgroundCapableMedia,
37   AudioCategory_Communications,
38   AudioCategory_Alerts,
39   AudioCategory_SoundEffects,
40   AudioCategory_GameEffects,
41   AudioCategory_GameMedia,
42   AudioCategory_GameChat,
43   AudioCategory_Speech,
44   AudioCategory_Movie,
45   AudioCategory_Media
46 } AUDIO_STREAM_CATEGORY;
47 
48 #define AUDCLNT_STREAMFLAGS_CROSSPROCESS 0x00010000
49 #define AUDCLNT_STREAMFLAGS_LOOPBACK 0x00020000
50 #define AUDCLNT_STREAMFLAGS_EVENTCALLBACK 0x00040000
51 #define AUDCLNT_STREAMFLAGS_NOPERSIST 0x00080000
52 #define AUDCLNT_STREAMFLAGS_RATEADJUST 0x00100000
53 #define AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY 0x08000000
54 #define AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM 0x80000000
55 #define AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED 0x10000000
56 #define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE 0x20000000
57 #define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED 0x40000000
58 
59 #endif
60 #endif
61