cannam@148
|
1 #ifndef PA_WIN_WDMKS_H
|
cannam@148
|
2 #define PA_WIN_WDMKS_H
|
cannam@148
|
3 /*
|
cannam@148
|
4 * $Id: pa_win_wdmks.h 1812 2012-02-14 09:32:57Z robiwan $
|
cannam@148
|
5 * PortAudio Portable Real-Time Audio Library
|
cannam@148
|
6 * WDM/KS specific extensions
|
cannam@148
|
7 *
|
cannam@148
|
8 * Copyright (c) 1999-2007 Ross Bencina and Phil Burk
|
cannam@148
|
9 *
|
cannam@148
|
10 * Permission is hereby granted, free of charge, to any person obtaining
|
cannam@148
|
11 * a copy of this software and associated documentation files
|
cannam@148
|
12 * (the "Software"), to deal in the Software without restriction,
|
cannam@148
|
13 * including without limitation the rights to use, copy, modify, merge,
|
cannam@148
|
14 * publish, distribute, sublicense, and/or sell copies of the Software,
|
cannam@148
|
15 * and to permit persons to whom the Software is furnished to do so,
|
cannam@148
|
16 * subject to the following conditions:
|
cannam@148
|
17 *
|
cannam@148
|
18 * The above copyright notice and this permission notice shall be
|
cannam@148
|
19 * included in all copies or substantial portions of the Software.
|
cannam@148
|
20 *
|
cannam@148
|
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
cannam@148
|
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
cannam@148
|
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
cannam@148
|
24 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
cannam@148
|
25 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
cannam@148
|
26 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
cannam@148
|
27 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
cannam@148
|
28 */
|
cannam@148
|
29
|
cannam@148
|
30 /*
|
cannam@148
|
31 * The text above constitutes the entire PortAudio license; however,
|
cannam@148
|
32 * the PortAudio community also makes the following non-binding requests:
|
cannam@148
|
33 *
|
cannam@148
|
34 * Any person wishing to distribute modifications to the Software is
|
cannam@148
|
35 * requested to send the modifications to the original developer so that
|
cannam@148
|
36 * they can be incorporated into the canonical version. It is also
|
cannam@148
|
37 * requested that these non-binding requests be included along with the
|
cannam@148
|
38 * license above.
|
cannam@148
|
39 */
|
cannam@148
|
40
|
cannam@148
|
41 /** @file
|
cannam@148
|
42 @ingroup public_header
|
cannam@148
|
43 @brief WDM Kernel Streaming-specific PortAudio API extension header file.
|
cannam@148
|
44 */
|
cannam@148
|
45
|
cannam@148
|
46
|
cannam@148
|
47 #include "portaudio.h"
|
cannam@148
|
48
|
cannam@148
|
49 #include <windows.h>
|
cannam@148
|
50
|
cannam@148
|
51 #ifdef __cplusplus
|
cannam@148
|
52 extern "C"
|
cannam@148
|
53 {
|
cannam@148
|
54 #endif /* __cplusplus */
|
cannam@148
|
55 typedef struct PaWinWDMKSInfo{
|
cannam@148
|
56 unsigned long size; /**< sizeof(PaWinWDMKSInfo) */
|
cannam@148
|
57 PaHostApiTypeId hostApiType; /**< paWDMKS */
|
cannam@148
|
58 unsigned long version; /**< 1 */
|
cannam@148
|
59
|
cannam@148
|
60 /* The number of packets to use for WaveCyclic devices, range is [2, 8]. Set to zero for default value of 2. */
|
cannam@148
|
61 unsigned noOfPackets;
|
cannam@148
|
62 } PaWinWDMKSInfo;
|
cannam@148
|
63
|
cannam@148
|
64 typedef enum PaWDMKSType
|
cannam@148
|
65 {
|
cannam@148
|
66 Type_kNotUsed,
|
cannam@148
|
67 Type_kWaveCyclic,
|
cannam@148
|
68 Type_kWaveRT,
|
cannam@148
|
69 Type_kCnt,
|
cannam@148
|
70 } PaWDMKSType;
|
cannam@148
|
71
|
cannam@148
|
72 typedef enum PaWDMKSSubType
|
cannam@148
|
73 {
|
cannam@148
|
74 SubType_kUnknown,
|
cannam@148
|
75 SubType_kNotification,
|
cannam@148
|
76 SubType_kPolled,
|
cannam@148
|
77 SubType_kCnt,
|
cannam@148
|
78 } PaWDMKSSubType;
|
cannam@148
|
79
|
cannam@148
|
80 typedef struct PaWinWDMKSDeviceInfo {
|
cannam@148
|
81 wchar_t filterPath[MAX_PATH]; /**< KS filter path in Unicode! */
|
cannam@148
|
82 wchar_t topologyPath[MAX_PATH]; /**< Topology filter path in Unicode! */
|
cannam@148
|
83 PaWDMKSType streamingType;
|
cannam@148
|
84 GUID deviceProductGuid; /**< The product GUID of the device (if supported) */
|
cannam@148
|
85 } PaWinWDMKSDeviceInfo;
|
cannam@148
|
86
|
cannam@148
|
87 typedef struct PaWDMKSDirectionSpecificStreamInfo
|
cannam@148
|
88 {
|
cannam@148
|
89 PaDeviceIndex device;
|
cannam@148
|
90 unsigned channels; /**< No of channels the device is opened with */
|
cannam@148
|
91 unsigned framesPerHostBuffer; /**< No of frames of the device buffer */
|
cannam@148
|
92 int endpointPinId; /**< Endpoint pin ID (on topology filter if topologyName is not empty) */
|
cannam@148
|
93 int muxNodeId; /**< Only valid for input */
|
cannam@148
|
94 PaWDMKSSubType streamingSubType; /**< Not known until device is opened for streaming */
|
cannam@148
|
95 } PaWDMKSDirectionSpecificStreamInfo;
|
cannam@148
|
96
|
cannam@148
|
97 typedef struct PaWDMKSSpecificStreamInfo {
|
cannam@148
|
98 PaWDMKSDirectionSpecificStreamInfo input;
|
cannam@148
|
99 PaWDMKSDirectionSpecificStreamInfo output;
|
cannam@148
|
100 } PaWDMKSSpecificStreamInfo;
|
cannam@148
|
101
|
cannam@148
|
102 #ifdef __cplusplus
|
cannam@148
|
103 }
|
cannam@148
|
104 #endif /* __cplusplus */
|
cannam@148
|
105
|
cannam@148
|
106 #endif /* PA_WIN_DS_H */
|