PortAudio  2.0
Data Structures | Macros | Typedefs | Functions | Variables
pa_win_wdmks.c File Reference

Portaudio WDM-KS host API. More...

#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "pa_util.h"
#include "pa_allocation.h"
#include "pa_hostapi.h"
#include "pa_stream.h"
#include "pa_cpuload.h"
#include "pa_process.h"
#include "portaudio.h"
#include "pa_debugprint.h"
#include <windows.h>
#include <winioctl.h>
#include <process.h>
#include <mmreg.h>
#include <ks.h>
#include <ksmedia.h>
#include <tchar.h>
#include <setupapi.h>

Data Structures

struct  __PaWinWdmPin
 
struct  __PaWinWdmFilter
 
struct  __PaWinWdmHostApiRepresentation
 
struct  __PaWinWdmDeviceInfo
 
struct  __DATAPACKET
 
struct  __PaWinWdmStream
 

Macros

#define PA_LOGE_
 
#define PA_LOGL_
 
#define CREATE_THREAD   (HANDLE)_beginthreadex( 0, 0, ProcessingThreadProc, stream, 0, &stream->processingThreadId )
 
#define EXIT_THREAD   _endthreadex(0)
 

Typedefs

typedef KSDDKAPI DWORD WINAPI KSCREATEPIN (HANDLE, PKSPIN_CONNECT, ACCESS_MASK, PHANDLE)
 
typedef struct __PaWinWdmFilter PaWinWdmFilter
 
typedef struct __PaWinWdmPin PaWinWdmPin
 
typedef struct
__PaWinWdmHostApiRepresentation 
PaWinWdmHostApiRepresentation
 
typedef struct __PaWinWdmDeviceInfo PaWinWdmDeviceInfo
 
typedef struct __DATAPACKET DATAPACKET
 
typedef struct __PaWinWdmStream PaWinWdmStream
 

Functions

PaError PaWinWdm_Initialize (PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index)
 

Variables

HMODULE DllKsUser = NULL
 
KSCREATEPINFunctionKsCreatePin = NULL
 

Detailed Description

Portaudio WDM-KS host API.

Note
This is the implementation of the Portaudio host API using the Windows WDM/Kernel Streaming API in order to enable very low latency playback and recording on all modern Windows platforms (e.g. 2K, XP) Note: This API accesses the device drivers below the usual KMIXER component which is normally used to enable multi-client mixing and format conversion. That means that it will lock out all other users of a device for the duration of active stream using those devices

Macro Definition Documentation

#define CREATE_THREAD   (HANDLE)_beginthreadex( 0, 0, ProcessingThreadProc, stream, 0, &stream->processingThreadId )
#define EXIT_THREAD   _endthreadex(0)
#define PA_LOGE_

Referenced by PaWinWdm_Initialize().

#define PA_LOGL_

Referenced by PaWinWdm_Initialize().

Typedef Documentation

typedef struct __DATAPACKET DATAPACKET
typedef KSDDKAPI DWORD WINAPI KSCREATEPIN(HANDLE, PKSPIN_CONNECT, ACCESS_MASK, PHANDLE)
typedef struct __PaWinWdmPin PaWinWdmPin

Function Documentation

PaError PaWinWdm_Initialize ( PaUtilHostApiRepresentation **  hostApi,
PaHostApiIndex  index 
)

Variable Documentation

HMODULE DllKsUser = NULL

Referenced by PaWinWdm_Initialize().

KSCREATEPIN * FunctionKsCreatePin = NULL

Referenced by PaWinWdm_Initialize().