cannam@89: #ifndef PA_WIN_DS_H cannam@89: #define PA_WIN_DS_H cannam@89: /* cannam@89: * $Id: $ cannam@89: * PortAudio Portable Real-Time Audio Library cannam@89: * DirectSound specific extensions cannam@89: * cannam@89: * Copyright (c) 1999-2007 Ross Bencina and Phil Burk cannam@89: * cannam@89: * Permission is hereby granted, free of charge, to any person obtaining cannam@89: * a copy of this software and associated documentation files cannam@89: * (the "Software"), to deal in the Software without restriction, cannam@89: * including without limitation the rights to use, copy, modify, merge, cannam@89: * publish, distribute, sublicense, and/or sell copies of the Software, cannam@89: * and to permit persons to whom the Software is furnished to do so, cannam@89: * subject to the following conditions: cannam@89: * cannam@89: * The above copyright notice and this permission notice shall be cannam@89: * included in all copies or substantial portions of the Software. cannam@89: * cannam@89: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, cannam@89: * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF cannam@89: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. cannam@89: * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR cannam@89: * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF cannam@89: * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION cannam@89: * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. cannam@89: */ cannam@89: cannam@89: /* cannam@89: * The text above constitutes the entire PortAudio license; however, cannam@89: * the PortAudio community also makes the following non-binding requests: cannam@89: * cannam@89: * Any person wishing to distribute modifications to the Software is cannam@89: * requested to send the modifications to the original developer so that cannam@89: * they can be incorporated into the canonical version. It is also cannam@89: * requested that these non-binding requests be included along with the cannam@89: * license above. cannam@89: */ cannam@89: cannam@89: /** @file cannam@89: @ingroup public_header cannam@89: @brief DirectSound-specific PortAudio API extension header file. cannam@89: */ cannam@89: cannam@89: #include "portaudio.h" cannam@89: #include "pa_win_waveformat.h" cannam@89: cannam@89: #ifdef __cplusplus cannam@89: extern "C" cannam@89: { cannam@89: #endif /* __cplusplus */ cannam@89: cannam@89: cannam@89: #define paWinDirectSoundUseLowLevelLatencyParameters (0x01) cannam@89: #define paWinDirectSoundUseChannelMask (0x04) cannam@89: cannam@89: cannam@89: typedef struct PaWinDirectSoundStreamInfo{ cannam@89: unsigned long size; /**< sizeof(PaWinDirectSoundStreamInfo) */ cannam@89: PaHostApiTypeId hostApiType; /**< paDirectSound */ cannam@89: unsigned long version; /**< 2 */ cannam@89: cannam@89: unsigned long flags; cannam@89: cannam@89: /* low-level latency setting support cannam@89: Control the size of host buffers in order to set latency. They will cannam@89: be used instead of the generic parameters to Pa_OpenStream() if cannam@89: flags contains the paWinDirectSoundUseLowLevelLatencyParameters cannam@89: flag. cannam@89: cannam@89: If PaWinDirectSoundStreamInfo structures with paWinDirectSoundUseLowLevelLatencyParameters cannam@89: are supplied for both input and output in a full duplex stream, then the cannam@89: input and output framesPerBuffer must be the same, or the larger of the cannam@89: two must be a multiple of the smaller, otherwise a cannam@89: paIncompatibleHostApiSpecificStreamInfo error will be returned from cannam@89: Pa_OpenStream(). cannam@89: */ cannam@89: unsigned long framesPerBuffer; /* NOT IMPLEMENTED see http://www.portaudio.com/trac/ticket/129 */ cannam@89: cannam@89: /* cannam@89: support for WAVEFORMATEXTENSIBLE channel masks. If flags contains cannam@89: paWinDirectSoundUseChannelMask this allows you to specify which speakers cannam@89: to address in a multichannel stream. Constants for channelMask cannam@89: are specified in pa_win_waveformat.h cannam@89: cannam@89: */ cannam@89: PaWinWaveFormatChannelMask channelMask; cannam@89: cannam@89: }PaWinDirectSoundStreamInfo; cannam@89: cannam@89: cannam@89: cannam@89: #ifdef __cplusplus cannam@89: } cannam@89: #endif /* __cplusplus */ cannam@89: cannam@89: #endif /* PA_WIN_DS_H */