PortAudio
2.0
|
Portaudio WDM-KS host API. More...
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <wchar.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 "pa_memorybarrier.h"
#include "pa_ringbuffer.h"
#include "pa_trace.h"
#include "pa_win_waveformat.h"
#include "pa_win_version.h"
#include "pa_win_wdmks.h"
#include <windows.h>
#include <winioctl.h>
#include <process.h>
#include <math.h>
#include <setupapi.h>
#include <mmreg.h>
#include <ks.h>
#include <ksmedia.h>
Data Structures | |
struct | PaWinWDMKSAvRtEntryPoints |
struct | __PaWinWdmMuxedInput |
struct | __PaWinWdmPin |
struct | __PaWinWdmFilter |
struct | __PaWinWdmDeviceInfo |
struct | __PaWinWdmHostApiRepresentation |
struct | __DATAPACKET |
struct | __PaIOPacket |
struct | __PaWinWdmIOInfo |
struct | __PaWinWdmStream |
struct | __PaProcessThreadInfo |
struct | __PaWinWDMScanDeviceInfosResults |
struct | __PaUsbTerminalGUIDToName |
struct | PaNameHashIndex |
struct | PaNameHashObject |
Macros | |
#define | PA_LOGE_ |
#define | PA_LOGL_ |
#define | DRV_QUERYDEVICEINTERFACE (DRV_RESERVED + 12) |
#define | DRV_QUERYDEVICEINTERFACESIZE (DRV_RESERVED + 13) |
#define | PA_HP_TRACE(x) PaUtil_AddHighSpeedLogMessage x ; |
#define | PA_WDMKS_USE_CATEGORY_FOR_PIN_NAMES 1 |
#define | CREATE_THREAD_FUNCTION (HANDLE)_beginthreadex |
#define | PA_THREAD_FUNC static unsigned WINAPI |
#define | EXTERN_C extern |
#define | MAXIMUM_NUMBER_OF_CHANNELS 256 |
Enumerations | |
enum | _PA_AVRT_PRIORITY { PA_AVRT_PRIORITY_LOW = -1, PA_AVRT_PRIORITY_NORMAL, PA_AVRT_PRIORITY_HIGH, PA_AVRT_PRIORITY_CRITICAL } |
enum | __PaStreamStartEnum { StreamStart_kOk, StreamStart_kFailed, StreamStart_kCnt } |
enum | _tag_EAlias { Alias_kRender = (1<<0), Alias_kCapture = (1<<1), Alias_kRealtime = (1<<2) } |
Functions | |
PaError | PaWinWdm_Initialize (PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index) |
PA_THREAD_FUNC | ProcessingThread (void *) |
Variables | |
HMODULE | DllKsUser = NULL |
KSCREATEPIN * | FunctionKsCreatePin = NULL |
Portaudio WDM-KS host API.
#define CREATE_THREAD_FUNCTION (HANDLE)_beginthreadex |
#define DRV_QUERYDEVICEINTERFACE (DRV_RESERVED + 12) |
#define DRV_QUERYDEVICEINTERFACESIZE (DRV_RESERVED + 13) |
#define EXTERN_C extern |
#define MAXIMUM_NUMBER_OF_CHANNELS 256 |
#define PA_HP_TRACE | ( | x | ) | PaUtil_AddHighSpeedLogMessage x ; |
Referenced by ProcessingThread().
#define PA_LOGE_ |
Referenced by PaWinWdm_Initialize(), and ProcessingThread().
#define PA_LOGL_ |
Referenced by PaWinWdm_Initialize(), and ProcessingThread().
#define PA_THREAD_FUNC static unsigned WINAPI |
#define PA_WDMKS_USE_CATEGORY_FOR_PIN_NAMES 1 |
typedef struct __DATAPACKET DATAPACKET |
typedef enum _tag_EAlias EAlias |
typedef PaError(* FunctionGetPinAudioPosition)(PaWinWdmPin *, unsigned long *) |
typedef void(* FunctionMemoryBarrier)(void) |
typedef PaError(* FunctionPinHandler)(PaProcessThreadInfo *pInfo, unsigned eventIndex) |
typedef enum _PA_AVRT_PRIORITY PA_AVRT_PRIORITY |
typedef struct __PaIOPacket PaIOPacket |
typedef struct PaNameHashIndex PaNameHashIndex |
typedef struct PaNameHashObject PaNameHashObject |
typedef struct __PaProcessThreadInfo PaProcessThreadInfo |
typedef enum __PaStreamStartEnum PaStreamStartEnum |
typedef struct __PaUsbTerminalGUIDToName PaUsbTerminalGUIDToName |
typedef struct __PaWinWdmDeviceInfo PaWinWdmDeviceInfo |
typedef struct __PaWinWdmFilter PaWinWdmFilter |
typedef struct __PaWinWdmHostApiRepresentation PaWinWdmHostApiRepresentation |
typedef struct __PaWinWdmIOInfo PaWinWdmIOInfo |
typedef struct __PaWinWdmMuxedInput PaWinWdmMuxedInput |
typedef struct __PaWinWdmPin PaWinWdmPin |
typedef struct __PaWinWDMScanDeviceInfosResults PaWinWDMScanDeviceInfosResults |
typedef struct __PaWinWdmStream PaWinWdmStream |
typedef enum _PA_AVRT_PRIORITY * PPA_AVRT_PRIORITY |
typedef const KSTOPOLOGY_CONNECTION*(* TFnGetConnection)(const KSTOPOLOGY_CONNECTION *, PaWinWdmFilter *, int) |
typedef void(* TSetInputChannel)(PaUtilBufferProcessor *, unsigned int, void *, unsigned int) |
typedef void(* TSetInputFrameCount)(PaUtilBufferProcessor *, unsigned long) |
enum __PaStreamStartEnum |
enum _PA_AVRT_PRIORITY |
enum _tag_EAlias |
PaError PaWinWdm_Initialize | ( | PaUtilHostApiRepresentation ** | hostApi, |
PaHostApiIndex | index | ||
) |
References __PaWinWdmHostApiRepresentation::allocations, __PaWinWdmHostApiRepresentation::blockingStreamInterface, BOOL(), __PaWinWdmHostApiRepresentation::callbackStreamInterface, DllKsUser, FunctionKsCreatePin, GetStreamCpuLoad(), GetStreamReadAvailable(), GetStreamTime(), GetStreamWriteAvailable(), HANDLE(), PaWinWDMKSAvRtEntryPoints::hInstance, PaUtilHostApiRepresentation::info, __PaWinWdmHostApiRepresentation::inheritedHostApiRep, IsFormatSupported(), IsStreamActive(), IsStreamStopped(), LPDWORD, OpenStream(), PA_LOGE_, PA_LOGL_, paInsufficientMemory, paNoDevice, paNoError, PaUtil_AllocateZeroInitializedMemory(), PaUtil_CreateAllocationGroup(), PaUtil_DummyGetCpuLoad(), PaUtil_DummyGetReadAvailable(), PaUtil_DummyGetWriteAvailable(), PaUtil_DummyRead(), PaUtil_DummyWrite(), PaUtil_GetTime(), PaUtil_InitializeStreamInterface(), paWDMKS, ReadStream(), PaHostApiInfo::structVersion, Terminate(), WINAPI, and WriteStream().
PA_THREAD_FUNC ProcessingThread | ( | void * | pParam | ) |
References __PaWinWdmStream::capture, __PaProcessThreadInfo::captureTail, __PaProcessThreadInfo::cbResult, PaStreamCallbackTimeInfo::currentTime, __PaWinWdmFilter::devInfo, __PaWinWdmStream::eventAbort, __PaWinWdmIOInfo::events, __PaWinWdmStream::eventStreamStart, FALSE, __PaWinWdmPin::fnEventHandler, __PaWinWdmPin::fnSubmitHandler, __PaWinWdmIOInfo::framesPerBuffer, HANDLE(), PaStreamCallbackTimeInfo::inputBufferAdcTime, __PaWinWdmIOInfo::noOfPackets, PaStreamCallbackTimeInfo::outputBufferDacTime, PA_DEBUG, PA_HP_TRACE, PA_LOGE_, PA_LOGL_, paComplete, paContinue, paInputOverflow, paNoError, paOutputUnderflow, __PaWinWdmPin::parentFilter, paTimedOut, paUnanticipatedHostError, PaUtil_AllocateZeroInitializedMemory(), PaUtil_DiscardHighSpeedLog, PaUtil_DumpHighSpeedLog, PaUtil_FreeMemory(), PaUtil_GetRingBufferWriteAvailable(), PaUtil_InitializeHighSpeedLog, __PaProcessThreadInfo::pending, __PaWinWdmPin::pinKsSubType, __PaProcessThreadInfo::pinsStarted, __PaWinWdmIOInfo::pPin, __PaProcessThreadInfo::priming, __PaWinWdmStream::render, __PaProcessThreadInfo::renderHead, __PaProcessThreadInfo::renderTail, __PaWinWdmStream::ringBuffer, PaStreamInfo::sampleRate, __PaProcessThreadInfo::stream, __PaWinWdmStream::streamAbort, __PaWinWdmStream::streamActive, PaUtilStreamRepresentation::streamFinishedCallback, PaUtilStreamRepresentation::streamInfo, PaWinWDMKSDeviceInfo::streamingType, __PaWinWdmStream::streamRepresentation, StreamStart_kFailed, StreamStart_kOk, __PaWinWdmStream::streamStop, SubType_kPolled, __PaWinWdmStream::threadResult, __PaProcessThreadInfo::ti, __PaProcessThreadInfo::timeout, TRUE, Type_kWaveCyclic, __PaProcessThreadInfo::underover, PaUtilStreamRepresentation::userData, and __PaWinWdmStream::userOutputChannels.
HMODULE DllKsUser = NULL |
Referenced by PaWinWdm_Initialize().
KSCREATEPIN * FunctionKsCreatePin = NULL |
Referenced by PaWinWdm_Initialize().