2 * Copyright (c) 2007-2010 SlimDX Group
\r
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
\r
5 * of this software and associated documentation files (the "Software"), to deal
\r
6 * in the Software without restriction, including without limitation the rights
\r
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
\r
8 * copies of the Software, and to permit persons to whom the Software is
\r
9 * furnished to do so, subject to the following conditions:
\r
11 * The above copyright notice and this permission notice shall be included in
\r
12 * all copies or substantial portions of the Software.
\r
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
\r
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
\r
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
\r
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
\r
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
\r
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
\r
26 namespace DirectSound
\r
29 /// Describes the capabilities of a DirectSound device.
\r
31 /// <unmanaged>DSCAPS</unmanaged>
\r
32 public ref class Capabilities
\r
35 Capabilities( const DSCAPS& caps );
\r
39 /// The driver has been tested and certified by Microsoft. This flag is always set for WDM drivers.
\r
41 property bool Certified;
\r
44 /// The device supports all sample rates between the MinSecondarySampleRate and MaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency.
\r
46 property bool ContinuousRate;
\r
49 /// The device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.
\r
51 property bool EmulatedDriver;
\r
54 /// Number of unallocated 3-D buffers.
\r
56 property int FreeHardware3DAllBuffers;
\r
59 /// Number of unallocated static 3-D buffers.
\r
61 property int FreeHardware3DStaticBuffers;
\r
64 /// Number of unallocated streaming 3-D buffers.
\r
66 property int FreeHardware3DStreamingBuffers;
\r
69 /// Size, in bytes, of the free memory on the sound card.
\r
71 property int FreeHardwareMemory;
\r
74 /// Number of unallocated buffers. On WDM drivers, this includes FreeHardware3DAllBuffers.
\r
76 property int FreeHardwareMixingAllBuffers;
\r
79 /// Number of unallocated static buffers.
\r
81 property int FreeHardwareMixingStaticBuffers;
\r
84 /// Number of unallocated streaming buffers.
\r
86 property int FreeHardwareMixingStreamingBuffers;
\r
89 /// Size, in bytes, of the largest contiguous block of free memory on the sound card.
\r
91 property int MaxContiguousFreeHardwareMemoryBytes;
\r
94 /// Maximum number of 3-D buffers.
\r
96 property int MaxHardware3DAllBuffers;
\r
99 /// Maximum number of static 3-D buffers.
\r
101 property int MaxHardware3DStaticBuffers;
\r
104 /// Maximum number of streaming 3-D buffers.
\r
106 property int MaxHardware3DStreamingBuffers;
\r
109 /// Number of buffers that can be mixed in hardware. This member can be less than the sum of MaxHardwareMixingStaticBuffers and MaxHardwareMixingStreamingBuffers. Resource tradeoffs frequently occur.
\r
111 property int MaxHardwareMixingAllBuffers;
\r
114 /// Maximum number of static buffers.
\r
116 property int MaxHardwareMixingStaticBuffers;
\r
119 /// Maximum number of streaming sound buffers.
\r
121 property int MaxHardwareMixingStreamingBuffers;
\r
124 /// Maximum sample rate specifications that are supported by this device's hardware secondary sound buffers.
\r
126 property int MaxSecondarySampleRate;
\r
129 /// Minimum sample rate specifications that are supported by this device's hardware secondary sound buffers.
\r
131 property int MinSecondarySampleRate;
\r
134 /// The processing overhead, as a percentage of main processor cycles, needed to mix software buffers. This varies according to the bus type, the processor type, and the clock speed.
\r
136 property int PlayCpuOverheadSoftwareBuffers;
\r
139 /// The device supports a primary buffer with 16-bit samples.
\r
141 property bool Primary16Bit;
\r
144 /// The device supports primary buffers with 8-bit samples.
\r
146 property bool Primary8Bit;
\r
149 /// Number of primary buffers supported. This value will always be 1.
\r
151 property int PrimaryBuffers;
\r
154 /// The device supports monophonic primary buffers.
\r
156 property bool PrimaryMono;
\r
159 /// The device supports stereo primary buffers.
\r
161 property bool PrimaryStereo;
\r
164 /// The device supports hardware-mixed secondary sound buffers with 16-bit samples.
\r
166 property bool Secondary16Bit;
\r
169 /// The device supports hardware-mixed secondary sound buffers with 8-bit samples.
\r
171 property bool Secondary8Bit;
\r
174 /// The device supports hardware-mixed monophonic secondary buffers.
\r
176 property bool SecondaryMono;
\r
179 /// The device supports hardware-mixed stereo secondary buffers.
\r
181 property bool SecondaryStereo;
\r
184 /// Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.
\r
186 property int TotalHardwareMemory;
\r
189 /// The rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the Buffer.Read or Buffer.Write method.
\r
191 property int UnlockTransferRateHardwareBuffers;
\r