#include <stdio.h>#include <stdlib.h>#include <math.h>#include <windows.h>#include <mmsystem.h>#include <process.h>#include <assert.h>#include <malloc.h>#include <memory.h>#include "portaudio.h"#include "pa_trace.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_win_wmme.h"
| #define DWORD_PTR DWORD |
| #define PA_CIRCULAR_DECREMENT_ | ( | current, | |||
| max | ) | ( ((current) == 0) ? ((max)-1) : (current-1) ) |
| #define PA_CIRCULAR_INCREMENT_ | ( | current, | |||
| max | ) | ( (((current) + 1) >= (max)) ? (0) : (current+1) ) |
| #define PA_DEFAULTSAMPLERATESEARCHORDER_COUNT_ (13) |
| #define PA_ENV_BUF_SIZE_ (32) |
| #define PA_IS_FULL_DUPLEX_STREAM_ | ( | stream | ) | ( stream ->input.waveHandles && stream ->output.waveHandles ) |
| #define PA_IS_HALF_DUPLEX_STREAM_ | ( | stream | ) | ( !(stream ->input.waveHandles && stream ->output.waveHandles) ) |
| #define PA_IS_INPUT_STREAM_ | ( | stream | ) | ( stream ->input.waveHandles ) |
| #define PA_IS_OUTPUT_STREAM_ | ( | stream | ) | ( stream ->output.waveHandles ) |
| #define PA_MME_MAX_HOST_BUFFER_BYTES_ (32 * 1024) |
| #define PA_MME_MAX_HOST_BUFFER_SECS_ (0.1) |
| #define PA_MME_MIN_HOST_BUFFER_FRAMES_WHEN_UNSPECIFIED_ (16) |
| #define PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_FULL_DUPLEX_ (3) |
| #define PA_MME_MIN_HOST_INPUT_BUFFER_COUNT_HALF_DUPLEX_ (2) |
| #define PA_MME_MIN_HOST_OUTPUT_BUFFER_COUNT_ (2) |
| #define PA_MME_MIN_TIMEOUT_MSEC_ (1000) |
| #define PA_MME_SET_LAST_SYSTEM_ERROR | ( | errorCode | ) | PaMme_SetLastSystemError( errorCode ) |
| #define PA_MME_SET_LAST_WAVEIN_ERROR | ( | mmresult | ) |
Value:
{ \
char mmeErrorText[ MAXERRORLENGTH ]; \
waveInGetErrorText( mmresult, mmeErrorText, MAXERRORLENGTH ); \
PaUtil_SetLastHostErrorInfo( paMME, mmresult, mmeErrorText ); \
}
| #define PA_MME_SET_LAST_WAVEOUT_ERROR | ( | mmresult | ) |
Value:
{ \
char mmeErrorText[ MAXERRORLENGTH ]; \
waveOutGetErrorText( mmresult, mmeErrorText, MAXERRORLENGTH ); \
PaUtil_SetLastHostErrorInfo( paMME, mmresult, mmeErrorText ); \
}
| #define PA_MME_USE_HIGH_DEFAULT_LATENCY_ (0) |
| #define PA_MME_WIN_9X_DEFAULT_LATENCY_ (0.2) |
| #define PA_MME_WIN_NT_DEFAULT_LATENCY_ (PA_MME_WIN_9X_DEFAULT_LATENCY_ * 2) |
| #define PA_MME_WIN_WDM_DEFAULT_LATENCY_ (PA_MME_WIN_9X_DEFAULT_LATENCY_) |
| #define PA_REC_IN_DEV_ENV_NAME_ ("PA_RECOMMENDED_INPUT_DEVICE") |
| #define PA_REC_OUT_DEV_ENV_NAME_ ("PA_RECOMMENDED_OUTPUT_DEVICE") |
| typedef struct PaWinMmeStream PaWinMmeStream |
| HWAVEIN PaWinMME_GetStreamInputHandle | ( | PaStream * | stream, | |
| int | handleIndex | |||
| ) |
Retrieve a wave in handle used by a PortAudio WinMME stream.
| stream | The stream to query. | |
| handleIndex | The zero based index of the wave in handle to retrieve. This should be in the range [0, PaWinMME_GetStreamInputHandle(stream)-1]. |
| int PaWinMME_GetStreamInputHandleCount | ( | PaStream * | stream | ) |
Retrieve the number of wave in handles used by a PortAudio WinMME stream. Returns zero if the stream is output only.
| HWAVEOUT PaWinMME_GetStreamOutputHandle | ( | PaStream * | stream, | |
| int | handleIndex | |||
| ) |
Retrieve a wave out handle used by a PortAudio WinMME stream.
| stream | The stream to query. | |
| handleIndex | The zero based index of the wave out handle to retrieve. This should be in the range [0, PaWinMME_GetStreamOutputHandleCount(stream)-1]. |
| int PaWinMME_GetStreamOutputHandleCount | ( | PaStream * | stream | ) |
Retrieve the number of wave out handles used by a PortAudio WinMME stream. Returns zero if the stream is input only.
| PaError PaWinMme_Initialize | ( | PaUtilHostApiRepresentation ** | hostApi, | |
| PaHostApiIndex | index | |||
| ) |
1.4.7