|
PortAudio
2.0
|
#include <assert.h>#include <stdio.h>#include <string.h>#include <initguid.h>#include <windows.h>#include <objbase.h>#include <dsound.h>#include <process.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 "pa_debugprint.h"#include "pa_win_ds.h"#include "pa_win_ds_dynlink.h"#include "pa_win_waveformat.h"#include "pa_win_wdmks_utils.h"#include "pa_win_coinitialize.h"Data Structures | |
| struct | PaWinDsDeviceInfo |
| struct | PaWinDsHostApiRepresentation |
| struct | PaWinDsStream |
| struct | DSDeviceNameAndGUID |
| struct | DSDeviceNameAndGUIDVector |
| struct | DSDeviceNamesAndGUIDs |
Macros | |
| #define | _WIN32_WINNT 0x0400 /* required to get waitable timer APIs */ |
| #define | DIRECTSOUND_VERSION 0x0300 |
| #define | CREATE_THREAD (HANDLE)_beginthreadex |
| #define | PA_THREAD_FUNC static unsigned WINAPI |
| #define | PA_THREAD_ID unsigned |
| #define | PA_WIN_DS_USE_WAITABLE_TIMER_OBJECT /* use waitable timer where possible, otherwise we use a WaitForSingleObject timeout */ |
| #define | DWORD_PTR unsigned long |
| #define | PRINT(x) PA_DEBUG(x); |
| #define | ERR_RPT(x) PRINT(x) |
| #define | DBUG(x) PRINT(x) |
| #define | DBUGX(x) PRINT(x) |
| #define | PA_USE_HIGH_LATENCY (0) |
| #define | PA_DS_WIN_9X_DEFAULT_LATENCY_ (.140) |
| #define | PA_DS_WIN_NT_DEFAULT_LATENCY_ (.280) |
| #define | PA_DS_WIN_WDM_DEFAULT_LATENCY_ (.120) |
| #define | PA_DS_MINIMUM_POLLING_PERIOD_SECONDS (0.001) /* 1ms */ |
| #define | PA_DS_MAXIMUM_POLLING_PERIOD_SECONDS (0.100) /* 100ms */ |
| #define | PA_DS_POLLING_JITTER_SECONDS (0.001) /* 1ms */ |
| #define | SECONDS_PER_MSEC (0.001) |
| #define | MSECS_PER_SECOND (1000) |
| #define | PA_DS_SET_LAST_DIRECTSOUND_ERROR(hr) PaUtil_SetLastHostErrorInfo( paDirectSound, hr, "DirectSound error" ) |
| #define | PA_LATENCY_ENV_NAME ("PA_MIN_LATENCY_MSEC") |
| #define | PA_ENV_BUF_SIZE (32) |
| #define | PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_ (13) /* must match array length below */ |
| #define | DSSPEAKER_7POINT1 0x00000007 |
| #define | DSSPEAKER_7POINT1_SURROUND 0x00000008 |
| #define | DSSPEAKER_5POINT1_SURROUND 0x00000009 |
| #define | WAVE_FORMAT_48M08 0x00001000 /* 48 kHz, Mono, 8-bit */ |
| #define | WAVE_FORMAT_48S08 0x00002000 /* 48 kHz, Stereo, 8-bit */ |
| #define | WAVE_FORMAT_48M16 0x00004000 /* 48 kHz, Mono, 16-bit */ |
| #define | WAVE_FORMAT_48S16 0x00008000 /* 48 kHz, Stereo, 16-bit */ |
| #define | WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */ |
| #define | WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */ |
| #define | WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */ |
| #define | WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */ |
Typedefs | |
| typedef struct PaWinDsDeviceInfo | PaWinDsDeviceInfo |
| typedef struct PaWinDsStream | PaWinDsStream |
| typedef struct DSDeviceNameAndGUID | DSDeviceNameAndGUID |
| typedef struct DSDeviceNameAndGUIDVector | DSDeviceNameAndGUIDVector |
| typedef struct DSDeviceNamesAndGUIDs | DSDeviceNamesAndGUIDs |
Functions | |
| PA_THREAD_FUNC | ProcessingThreadProc (void *pArg) |
| PaError | PaWinDs_Initialize (PaUtilHostApiRepresentation **hostApi, PaHostApiIndex index) |
Variables | |
| GUID | IID_IRolandVSCEmulated1 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x01} |
| GUID | IID_IRolandVSCEmulated2 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x02} |
| #define _WIN32_WINNT 0x0400 /* required to get waitable timer APIs */ |
| #define CREATE_THREAD (HANDLE)_beginthreadex |
| #define DBUG | ( | x | ) | PRINT(x) |
| #define DBUGX | ( | x | ) | PRINT(x) |
| #define DIRECTSOUND_VERSION 0x0300 |
| #define DSSPEAKER_5POINT1_SURROUND 0x00000009 |
| #define DSSPEAKER_7POINT1 0x00000007 |
| #define DSSPEAKER_7POINT1_SURROUND 0x00000008 |
| #define DWORD_PTR unsigned long |
Referenced by ProcessingThreadProc().
| #define ERR_RPT | ( | x | ) | PRINT(x) |
| #define MSECS_PER_SECOND (1000) |
Referenced by ProcessingThreadProc().
| #define PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_ (13) /* must match array length below */ |
| #define PA_DS_MAXIMUM_POLLING_PERIOD_SECONDS (0.100) /* 100ms */ |
| #define PA_DS_MINIMUM_POLLING_PERIOD_SECONDS (0.001) /* 1ms */ |
| #define PA_DS_POLLING_JITTER_SECONDS (0.001) /* 1ms */ |
| #define PA_DS_SET_LAST_DIRECTSOUND_ERROR | ( | hr | ) | PaUtil_SetLastHostErrorInfo( paDirectSound, hr, "DirectSound error" ) |
| #define PA_DS_WIN_9X_DEFAULT_LATENCY_ (.140) |
| #define PA_DS_WIN_NT_DEFAULT_LATENCY_ (.280) |
| #define PA_DS_WIN_WDM_DEFAULT_LATENCY_ (.120) |
| #define PA_ENV_BUF_SIZE (32) |
| #define PA_LATENCY_ENV_NAME ("PA_MIN_LATENCY_MSEC") |
| #define PA_THREAD_FUNC static unsigned WINAPI |
| #define PA_THREAD_ID unsigned |
| #define PA_USE_HIGH_LATENCY (0) |
| #define PA_WIN_DS_USE_WAITABLE_TIMER_OBJECT /* use waitable timer where possible, otherwise we use a WaitForSingleObject timeout */ |
| #define PRINT | ( | x | ) | PA_DEBUG(x); |
| #define SECONDS_PER_MSEC (0.001) |
| #define WAVE_FORMAT_48M08 0x00001000 /* 48 kHz, Mono, 8-bit */ |
| #define WAVE_FORMAT_48M16 0x00004000 /* 48 kHz, Mono, 16-bit */ |
| #define WAVE_FORMAT_48S08 0x00002000 /* 48 kHz, Stereo, 8-bit */ |
| #define WAVE_FORMAT_48S16 0x00008000 /* 48 kHz, Stereo, 16-bit */ |
| #define WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */ |
| #define WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */ |
| #define WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */ |
| #define WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */ |
| typedef struct DSDeviceNameAndGUID DSDeviceNameAndGUID |
| typedef struct DSDeviceNameAndGUIDVector DSDeviceNameAndGUIDVector |
| typedef struct DSDeviceNamesAndGUIDs DSDeviceNamesAndGUIDs |
| typedef struct PaWinDsDeviceInfo PaWinDsDeviceInfo |
| typedef struct PaWinDsStream PaWinDsStream |
| PaError PaWinDs_Initialize | ( | PaUtilHostApiRepresentation ** | hostApi, |
| PaHostApiIndex | index | ||
| ) |
References PaWinDsHostApiRepresentation::allocations, PaWinDsHostApiRepresentation::blockingStreamInterface, PaWinDsHostApiRepresentation::callbackStreamInterface, PaWinDsHostApiRepresentation::comInitializationResult, DSDeviceNameAndGUIDVector::count, DSDeviceNameAndGUIDVector::enumerationError, GetStreamReadAvailable(), GetStreamWriteAvailable(), PaDeviceInfo::hostApi, PaUtilHostApiRepresentation::info, PaWinDsDeviceInfo::inheritedDeviceInfo, PaWinDsHostApiRepresentation::inheritedHostApiRep, DSDeviceNamesAndGUIDs::inputNamesAndGUIDs, DSDeviceNameAndGUIDVector::items, DSDeviceNameAndGUID::lpGUID, DSDeviceNameAndGUID::name, PaDeviceInfo::name, DSDeviceNamesAndGUIDs::outputNamesAndGUIDs, paDirectSound, paInsufficientMemory, paNoDevice, paNoError, PaUtil_AllocateMemory(), PaUtil_CreateAllocationGroup(), PaUtil_DummyGetCpuLoad(), PaUtil_DummyGetReadAvailable(), PaUtil_DummyGetWriteAvailable(), PaUtil_DummyRead(), PaUtil_DummyWrite(), PaUtil_GroupAllocateMemory(), PaUtil_InitializeStreamInterface(), PaWinDs_InitializeDSoundEntryPoints(), paWinDsDSoundEntryPoints, PaWinUtil_CoInitialize(), DSDeviceNameAndGUID::pnpInterface, ReadStream(), PaHostApiInfo::structVersion, PaDeviceInfo::structVersion, DSDeviceNamesAndGUIDs::winDsHostApi, and WriteStream().
| PA_THREAD_FUNC ProcessingThreadProc | ( | void * | pArg | ) |
| GUID IID_IRolandVSCEmulated1 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x01} |
| GUID IID_IRolandVSCEmulated2 = {0xc2ad1800, 0xb243, 0x11ce, 0xa8, 0xa4, 0x00, 0xaa, 0x00, 0x6c, 0x45, 0x02} |
1.8.5