Data Structures |
| struct | WaveOverlapInfo |
| union | MediaHeader |
| struct | ThreadInfo |
| struct | LoopInfo |
| struct | SessionInfo |
Defines |
| #define | MAX_DEVICES 256 |
| #define | MAX_DEVICE_NAME_LENGTH 256 |
| #define | MAX_BUFFER_SIZE 1048576 |
| #define | MAX_WAVE_BYTES 1048576 |
| #define | WHDR_COMPLETE 0x80000000 |
| #define | IsWaveDevice(devicetype) ( ( devicetype == WaveOutDevice ) || ( devicetype == WaveInDevice ) ) |
| #define | IsMidiDevice(devicetype) ( ( devicetype == MidiOutDevice ) || ( devicetype == MidiInDevice ) ) |
| #define | IsAuxDevice(devicetype) ( devicetype == AuxDevice ) |
| #define | DRVM_TERMINATE 0xFFFFFFFE |
| #define | DRVM_INVALID 0xFFFFFFFF |
| #define | ASSERT(condition) |
Typedefs |
| typedef DWORD | ThreadFunction |
Enumerations |
| enum | DeviceType {
WaveOutDevice,
WaveInDevice,
MidiOutDevice,
MidiInDevice,
AuxDevice
} |
| enum | WaveState { WavePlaying,
WaveStopped,
WaveReset,
WaveRestart
} |
Functions |
| BOOL | NotifyClient (SessionInfo *session_info, DWORD message, DWORD_PTR parameter1, DWORD_PTR parameter2) |
| MMRESULT | ErrorToMmResult (UINT error_code) |
| MMRESULT | CobbleDeviceName (DeviceType device_type, UINT device_id, PWCHAR out_device_name) |
| MMRESULT | OpenKernelDevice (DeviceType device_type, UINT device_id, DWORD access, HANDLE *handle) |
| VOID | CloseKernelDevice (HANDLE device_handle) |
| MMRESULT | SetDeviceData (HANDLE device_handle, DWORD ioctl, PBYTE input_buffer, DWORD buffer_size) |
| MMRESULT | GetDeviceData (HANDLE device_handle, DWORD ioctl, PBYTE output_buffer, DWORD buffer_size) |
| MMRESULT | CreateSession (DeviceType device_type, UINT device_id, SessionInfo **session_info) |
| VOID | DestroySession (SessionInfo *session) |
| SessionInfo * | GetSession (DeviceType device_type, UINT device_id) |
| MMRESULT | StartSessionThread (SessionInfo *session_info) |
| MMRESULT | CallSessionThread (SessionInfo *session_info, ThreadFunction function, PVOID thread_parameter) |
| DWORD | HandleBySessionThread (DWORD_PTR private_handle, DWORD_PTR message, DWORD_PTR parameter) |
| DWORD | GetDeviceCount (DeviceType device_type) |
| DWORD | GetDeviceCapabilities (DeviceType device_type, UINT device_id, DWORD_PTR capabilities, DWORD capabilities_size) |
| DWORD | OpenDevice (DeviceType device_type, UINT device_id, PVOID open_descriptor, DWORD flags, DWORD_PTR private_handle) |
| DWORD | CloseDevice (DWORD_PTR private_handle) |
| DWORD | PauseDevice (DWORD private_handle) |
| DWORD | RestartDevice (DWORD private_handle) |
| DWORD | ResetDevice (DWORD private_handle) |
| DWORD | GetPosition (DWORD private_handle, PMMTIME time, DWORD time_size) |
| DWORD | BreakLoop (DWORD private_handle) |
| DWORD | QueryWaveFormat (DeviceType device_type, PVOID lpFormat) |
| DWORD | WriteWaveBuffer (DWORD_PTR private_handle, PWAVEHDR wave_header, DWORD wave_header_size) |
| DWORD | WaveThread (LPVOID parameter) |
| VOID | PerformWaveIO (SessionInfo *session_info) |
Variables |
| CRITICAL_SECTION | critical_section |