PortAudio  2.0
Data Structures | Defines | Typedefs | Enumerations | Functions
pa_win_wasapi.h File Reference

WASAPI-specific PortAudio API extension header file. More...

#include "portaudio.h"
#include "pa_win_waveformat.h"

Go to the source code of this file.

Data Structures

struct  PaWasapiJackDescription
struct  PaWasapiStreamInfo

Defines

#define paWinWasapiExclusive   (paWinWasapiExclusive)
#define paWinWasapiRedirectHostProcessor   (paWinWasapiRedirectHostProcessor)
#define paWinWasapiUseChannelMask   (paWinWasapiUseChannelMask)
#define paWinWasapiPolling   (paWinWasapiPolling)
#define paWinWasapiThreadPriority   (paWinWasapiThreadPriority)

Typedefs

typedef enum PaWasapiFlags PaWasapiFlags
typedef void(* PaWasapiHostProcessorCallback )(void *inputBuffer, long inputFrames, void *outputBuffer, long outputFrames, void *userData)
typedef enum PaWasapiDeviceRole PaWasapiDeviceRole
typedef enum
PaWasapiJackConnectionType 
PaWasapiJackConnectionType
typedef enum
PaWasapiJackGeoLocation 
PaWasapiJackGeoLocation
typedef enum
PaWasapiJackGenLocation 
PaWasapiJackGenLocation
typedef enum
PaWasapiJackPortConnection 
PaWasapiJackPortConnection
typedef enum PaWasapiThreadPriority PaWasapiThreadPriority
typedef struct
PaWasapiJackDescription 
PaWasapiJackDescription
typedef struct PaWasapiStreamInfo PaWasapiStreamInfo

Enumerations

enum  PaWasapiFlags {
  paWinWasapiExclusive = (1 << 0), paWinWasapiRedirectHostProcessor = (1 << 1), paWinWasapiUseChannelMask = (1 << 2), paWinWasapiPolling = (1 << 3),
  paWinWasapiThreadPriority = (1 << 4)
}
enum  PaWasapiDeviceRole {
  eRoleRemoteNetworkDevice = 0, eRoleSpeakers, eRoleLineLevel, eRoleHeadphones,
  eRoleMicrophone, eRoleHeadset, eRoleHandset, eRoleUnknownDigitalPassthrough,
  eRoleSPDIF, eRoleHDMI, eRoleUnknownFormFactor
}
enum  PaWasapiJackConnectionType {
  eJackConnTypeUnknown, eJackConnType3Point5mm, eJackConnTypeQuarter, eJackConnTypeAtapiInternal,
  eJackConnTypeRCA, eJackConnTypeOptical, eJackConnTypeOtherDigital, eJackConnTypeOtherAnalog,
  eJackConnTypeMultichannelAnalogDIN, eJackConnTypeXlrProfessional, eJackConnTypeRJ11Modem, eJackConnTypeCombination
}
enum  PaWasapiJackGeoLocation {
  eJackGeoLocUnk = 0, eJackGeoLocRear = 0x1, eJackGeoLocFront, eJackGeoLocLeft,
  eJackGeoLocRight, eJackGeoLocTop, eJackGeoLocBottom, eJackGeoLocRearPanel,
  eJackGeoLocRiser, eJackGeoLocInsideMobileLid, eJackGeoLocDrivebay, eJackGeoLocHDMI,
  eJackGeoLocOutsideMobileLid, eJackGeoLocATAPI, eJackGeoLocReserved5, eJackGeoLocReserved6
}
enum  PaWasapiJackGenLocation { eJackGenLocPrimaryBox = 0, eJackGenLocInternal, eJackGenLocSeparate, eJackGenLocOther }
enum  PaWasapiJackPortConnection { eJackPortConnJack = 0, eJackPortConnIntegratedDevice, eJackPortConnBothIntegratedAndJack, eJackPortConnUnknown }
enum  PaWasapiThreadPriority {
  eThreadPriorityNone = 0, eThreadPriorityAudio, eThreadPriorityCapture, eThreadPriorityDistribution,
  eThreadPriorityGames, eThreadPriorityPlayback, eThreadPriorityProAudio, eThreadPriorityWindowManager
}

Functions

int PaWasapi_GetDeviceDefaultFormat (void *pFormat, unsigned int nFormatSize, PaDeviceIndex nDevice)
int PaWasapi_GetDeviceRole (PaDeviceIndex nDevice)
PaError PaWasapi_ThreadPriorityBoost (void **hTask, PaWasapiThreadPriority nPriorityClass)
PaError PaWasapi_ThreadPriorityRevert (void *hTask)
PaError PaWasapi_GetFramesPerHostBuffer (PaStream *pStream, unsigned int *nInput, unsigned int *nOutput)
PaError PaWasapi_GetJackCount (PaDeviceIndex nDevice, int *jcount)
PaError PaWasapi_GetJackDescription (PaDeviceIndex nDevice, int jindex, PaWasapiJackDescription *pJackDescription)

Detailed Description

WASAPI-specific PortAudio API extension header file.


Define Documentation


Typedef Documentation

typedef void(* PaWasapiHostProcessorCallback)(void *inputBuffer, long inputFrames, void *outputBuffer, long outputFrames, void *userData)

Enumeration Type Documentation

Enumerator:
eRoleRemoteNetworkDevice 
eRoleSpeakers 
eRoleLineLevel 
eRoleHeadphones 
eRoleMicrophone 
eRoleHeadset 
eRoleHandset 
eRoleUnknownDigitalPassthrough 
eRoleSPDIF 
eRoleHDMI 
eRoleUnknownFormFactor 
Enumerator:
paWinWasapiExclusive 
paWinWasapiRedirectHostProcessor 
paWinWasapiUseChannelMask 
paWinWasapiPolling 
paWinWasapiThreadPriority 
Enumerator:
eJackConnTypeUnknown 
eJackConnType3Point5mm 
eJackConnTypeQuarter 
eJackConnTypeAtapiInternal 
eJackConnTypeRCA 
eJackConnTypeOptical 
eJackConnTypeOtherDigital 
eJackConnTypeOtherAnalog 
eJackConnTypeMultichannelAnalogDIN 
eJackConnTypeXlrProfessional 
eJackConnTypeRJ11Modem 
eJackConnTypeCombination 
Enumerator:
eJackGenLocPrimaryBox 
eJackGenLocInternal 
eJackGenLocSeparate 
eJackGenLocOther 
Enumerator:
eJackGeoLocUnk 
eJackGeoLocRear 
eJackGeoLocFront 
eJackGeoLocLeft 
eJackGeoLocRight 
eJackGeoLocTop 
eJackGeoLocBottom 
eJackGeoLocRearPanel 
eJackGeoLocRiser 
eJackGeoLocInsideMobileLid 
eJackGeoLocDrivebay 
eJackGeoLocHDMI 
eJackGeoLocOutsideMobileLid 
eJackGeoLocATAPI 
eJackGeoLocReserved5 
eJackGeoLocReserved6 
Enumerator:
eJackPortConnJack 
eJackPortConnIntegratedDevice 
eJackPortConnBothIntegratedAndJack 
eJackPortConnUnknown 
Enumerator:
eThreadPriorityNone 
eThreadPriorityAudio 

Default for Shared mode.

eThreadPriorityCapture 
eThreadPriorityDistribution 
eThreadPriorityGames 
eThreadPriorityPlayback 
eThreadPriorityProAudio 

Default for Exclusive mode.

eThreadPriorityWindowManager 

Function Documentation

int PaWasapi_GetDeviceDefaultFormat ( void *  pFormat,
unsigned int  nFormatSize,
PaDeviceIndex  nDevice 
)

Returns default sound format for device. Format is represented by PaWinWaveFormat or WAVEFORMATEXTENSIBLE structure.

Parameters:
pFormatPointer to PaWinWaveFormat or WAVEFORMATEXTENSIBLE structure.
nFormatSizeSize of PaWinWaveFormat or WAVEFORMATEXTENSIBLE structure in bytes.
nDeviceDevice index.
Returns:
Non-negative value indicating the number of bytes copied into format decriptor or, a PaErrorCode (which are always negative) if PortAudio is not initialized or an error is encountered.

References PaWasapiDeviceInfo::DefaultFormat, PaWasapiHostApiRepresentation::deviceCount, PaWasapiHostApiRepresentation::devInfo, PaWasapiHostApiRepresentation::inheritedHostApiRep, paBadBufferPtr, paBufferTooSmall, paInvalidDevice, paNoError, and PaUtil_DeviceIndexToHostApiDeviceIndex().

Returns device role (PaWasapiDeviceRole enum).

Parameters:
nDevicedevice index.
Returns:
Non-negative value indicating device role or, a PaErrorCode (which are always negative) if PortAudio is not initialized or an error is encountered.

References PaWasapiHostApiRepresentation::deviceCount, PaWasapiHostApiRepresentation::devInfo, PaWasapiDeviceInfo::formFactor, PaWasapiHostApiRepresentation::inheritedHostApiRep, paInvalidDevice, paNoError, paNotInitialized, and PaUtil_DeviceIndexToHostApiDeviceIndex().

PaError PaWasapi_GetFramesPerHostBuffer ( PaStream pStream,
unsigned int *  nInput,
unsigned int *  nOutput 
)

Get number of frames per host buffer. This is maximal value of frames of WASAPI buffer which can be locked for operations. Use this method as helper to findout maximal values of inputFrames/outputFrames of PaWasapiHostProcessorCallback.

Parameters:
pStreamPointer to PaStream to query.
nInputPointer to variable to receive number of input frames. Can be NULL.
nOutputPointer to variable to receive number of output frames. Can be NULL.
Returns:
Error code indicating success or failure.
See also:
PaWasapiHostProcessorCallback

References PaWasapiSubStream::framesPerHostCallback, PaWasapiStream::in, PaWasapiStream::out, paBadStreamPtr, and paNoError.

PaError PaWasapi_GetJackCount ( PaDeviceIndex  nDevice,
int *  jcount 
)

Get number of jacks associated with a WASAPI device. Use this method to determine if there are any jacks associated with the provided WASAPI device. Not all audio devices will support this capability. This is valid for both input and output devices.

Parameters:
nDevicedevice index.
jcountNumber of jacks is returned in this variable
Returns:
Error code indicating success or failure
See also:
PaWasapi_GetJackDescription

References PaWasapiDeviceInfo::device, PaWasapiHostApiRepresentation::deviceCount, PaWasapiHostApiRepresentation::devInfo, IF_FAILED_JUMP, PaWasapiHostApiRepresentation::inheritedHostApiRep, LogHostError, paInvalidDevice, paNoError, paNotInitialized, PaUtil_DeviceIndexToHostApiDeviceIndex(), and SAFE_RELEASE.

PaError PaWasapi_GetJackDescription ( PaDeviceIndex  nDevice,
int  jindex,
PaWasapiJackDescription pJackDescription 
)

Get the jack description associated with a WASAPI device and jack number Before this function is called, use PaWasapi_GetJackCount to determine the number of jacks associated with device. If jcount is greater than zero, then each jack from 0 to jcount can be queried with this function to get the jack description.

Parameters:
nDevicedevice index.
jindexWhich jack to return information
KSJACK_DESCRIPTIONThis structure filled in on success.
Returns:
Error code indicating success or failure
See also:
PaWasapi_GetJackCount

References PaWasapiJackDescription::channelMapping, PaWasapiJackDescription::color, PaWasapiJackDescription::connectionType, PaWasapiDeviceInfo::device, PaWasapiHostApiRepresentation::deviceCount, PaWasapiHostApiRepresentation::devInfo, PaWasapiJackDescription::genLocation, PaWasapiJackDescription::geoLocation, IF_FAILED_JUMP, PaWasapiHostApiRepresentation::inheritedHostApiRep, PaWasapiJackDescription::isConnected, LogHostError, paInvalidDevice, paNoError, paNotInitialized, PaUtil_DeviceIndexToHostApiDeviceIndex(), PaWasapiJackDescription::portConnection, and SAFE_RELEASE.

PaError PaWasapi_ThreadPriorityBoost ( void **  hTask,
PaWasapiThreadPriority  nPriorityClass 
)

Boost thread priority of calling thread (MMCSS). Use it for Blocking Interface only for thread which makes calls to Pa_WriteStream/Pa_ReadStream.

Parameters:
hTaskHandle to pointer to priority task. Must be used with PaWasapi_RevertThreadPriority method to revert thread priority to initial state.
nPriorityClassId of thread priority of PaWasapiThreadPriority type. Specifying eThreadPriorityNone does nothing.
Returns:
Error code indicating success or failure.
See also:
PaWasapi_RevertThreadPriority

References MMCSS_activate(), paNoError, paUnanticipatedHostError, and STATIC_ARRAY_SIZE.

Referenced by ProcThreadEvent(), and ProcThreadPoll().

Boost thread priority of calling thread (MMCSS). Use it for Blocking Interface only for thread which makes calls to Pa_WriteStream/Pa_ReadStream.

Parameters:
hTaskTask handle obtained by PaWasapi_BoostThreadPriority method.
Returns:
Error code indicating success or failure.
See also:
PaWasapi_BoostThreadPriority

References MMCSS_deactivate(), paNoError, and paUnanticipatedHostError.

Referenced by _StreamOnStop().


Generated for PortAudio by  doxygen1.7.6.1