/* Standard MME driver entry-point for messages relating to mixers. */ DWORD APIENTRY mxdMessage( UINT DeviceId, UINT Message, DWORD_PTR PrivateHandle, DWORD_PTR Parameter1, DWORD_PTR Parameter2) { MMRESULT Result = MMSYSERR_NOTSUPPORTED; AcquireEntrypointMutex(MIXER_DEVICE_TYPE); //SND_TRACE(L"mxdMessage - Message type %d\n", Message); switch ( Message ) { case MXDM_GETNUMDEVS : { Result = GetSoundDeviceCount(MIXER_DEVICE_TYPE); break; } case MXDM_GETDEVCAPS : { Result = MmeGetSoundDeviceCapabilities(MIXER_DEVICE_TYPE, DeviceId, (PVOID) Parameter1, Parameter2); break; } case MXDM_INIT : { Result = MMSYSERR_NOERROR; break; } case MXDM_OPEN : { Result = MmeOpenDevice(MIXER_DEVICE_TYPE, DeviceId, (LPWAVEOPENDESC) Parameter1, /* unused */ Parameter2, (DWORD*) PrivateHandle); VALIDATE_MMSYS_PARAMETER(*(DWORD_PTR*)PrivateHandle); break; } case MXDM_CLOSE : { Result = MmeCloseDevice(PrivateHandle); break; } case MXDM_GETCONTROLDETAILS : { Result = MmeGetLineInfo(DeviceId, Message, PrivateHandle, Parameter1, Parameter2); break; } case MXDM_SETCONTROLDETAILS : { Result = MmeGetLineInfo(DeviceId, Message, PrivateHandle, Parameter1, Parameter2); break; } case MXDM_GETLINECONTROLS : { Result = MmeGetLineInfo(DeviceId, Message, PrivateHandle, Parameter1, Parameter2); break; } case MXDM_GETLINEINFO : { Result = MmeGetLineInfo(DeviceId, Message, PrivateHandle, Parameter1, Parameter2); break; } case DRV_QUERYDEVICEINTERFACESIZE : { Result = MmeGetDeviceInterfaceString(MIXER_DEVICE_TYPE, DeviceId, NULL, 0, (DWORD*)Parameter1); //FIXME DWORD_PTR break; } case DRV_QUERYDEVICEINTERFACE : { Result = MmeGetDeviceInterfaceString(MIXER_DEVICE_TYPE, DeviceId, (LPWSTR)Parameter1, Parameter2, NULL); //FIXME DWORD_PTR break; } } //SND_TRACE(L"mxdMessage returning MMRESULT %d\n", Result); ReleaseEntrypointMutex(MIXER_DEVICE_TYPE); return Result; }
/* Standard MME driver entry-point for messages relating to MIDI output. */ DWORD APIENTRY modMessage( UINT DeviceId, UINT Message, DWORD_PTR PrivateHandle, DWORD_PTR Parameter1, DWORD_PTR Parameter2) { MMRESULT Result = MMSYSERR_NOTSUPPORTED; AcquireEntrypointMutex(MIDI_OUT_DEVICE_TYPE); SND_TRACE(L"modMessage - Message type %d\n", Message); switch ( Message ) { case MODM_GETNUMDEVS : { Result = GetSoundDeviceCount(MIDI_OUT_DEVICE_TYPE); break; } case MODM_GETDEVCAPS : { Result = MmeGetSoundDeviceCapabilities(MIDI_OUT_DEVICE_TYPE, DeviceId, (PVOID) Parameter1, Parameter2); break; } case DRV_QUERYDEVICEINTERFACESIZE : { Result = MmeGetDeviceInterfaceString(MIDI_OUT_DEVICE_TYPE, DeviceId, NULL, 0, (DWORD*)Parameter1); //FIXME DWORD_PTR break; } case DRV_QUERYDEVICEINTERFACE : { Result = MmeGetDeviceInterfaceString(MIDI_OUT_DEVICE_TYPE, DeviceId, (LPWSTR)Parameter1, Parameter2, NULL); //FIXME DWORD_PTR break; } case MODM_OPEN : { Result = MmeOpenDevice(MIDI_OUT_DEVICE_TYPE, DeviceId, (LPWAVEOPENDESC) Parameter1, /* unused */ Parameter2, (DWORD_PTR*)PrivateHandle); break; } case MODM_CLOSE : { Result = MmeCloseDevice(PrivateHandle); break; } } SND_TRACE(L"modMessage returning MMRESULT %d\n", Result); ReleaseEntrypointMutex(MIDI_OUT_DEVICE_TYPE); return Result; }