PortAudio  2.0
pa_win_wdmks.h
Go to the documentation of this file.
1 #ifndef PA_WIN_WDMKS_H
2 #define PA_WIN_WDMKS_H
3 /*
4  * $Id$
5  * PortAudio Portable Real-Time Audio Library
6  * WDM/KS specific extensions
7  *
8  * Copyright (c) 1999-2007 Ross Bencina and Phil Burk
9  *
10  * Permission is hereby granted, free of charge, to any person obtaining
11  * a copy of this software and associated documentation files
12  * (the "Software"), to deal in the Software without restriction,
13  * including without limitation the rights to use, copy, modify, merge,
14  * publish, distribute, sublicense, and/or sell copies of the Software,
15  * and to permit persons to whom the Software is furnished to do so,
16  * subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be
19  * included in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
25  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
26  * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28  */
29 
30 /*
31  * The text above constitutes the entire PortAudio license; however,
32  * the PortAudio community also makes the following non-binding requests:
33  *
34  * Any person wishing to distribute modifications to the Software is
35  * requested to send the modifications to the original developer so that
36  * they can be incorporated into the canonical version. It is also
37  * requested that these non-binding requests be included along with the
38  * license above.
39  */
40 
47 #include "portaudio.h"
48 
49 #include <windows.h>
50 
51 #ifdef __cplusplus
52 extern "C"
53 {
54 #endif /* __cplusplus */
55 
60  typedef enum PaWinWDMKSFlags
61  {
66 
71 
73 
74  typedef struct PaWinWDMKSInfo{
75  unsigned long size;
77  unsigned long version;
83  unsigned long flags;
84 
86  unsigned noOfPackets;
87 
92  unsigned channelMask;
94 
95  typedef enum PaWDMKSType
96  {
97  Type_kNotUsed,
98  Type_kWaveCyclic,
99  Type_kWaveRT,
100  Type_kCnt,
101  } PaWDMKSType;
102 
103  typedef enum PaWDMKSSubType
104  {
105  SubType_kUnknown,
106  SubType_kNotification,
107  SubType_kPolled,
108  SubType_kCnt,
109  } PaWDMKSSubType;
110 
111  typedef struct PaWinWDMKSDeviceInfo {
112  wchar_t filterPath[MAX_PATH];
113  wchar_t topologyPath[MAX_PATH];
114  PaWDMKSType streamingType;
117 
119  {
120  PaDeviceIndex device;
121  unsigned channels;
124  int muxNodeId;
125  PaWDMKSSubType streamingSubType;
127 
128  typedef struct PaWDMKSSpecificStreamInfo {
132 
133 #ifdef __cplusplus
134 }
135 #endif /* __cplusplus */
136 
137 #endif /* PA_WIN_DS_H */