Commit fd92ebdb authored by Ove Kaaven's avatar Ove Kaaven Committed by Alexandre Julliard

Implemented the DirectSound HAL in winmm's wineoss (Open Sound System)

driver, and winmm's interface for DirectSound to access it. It requires the ability to mmap /dev/dsp, to trigger playback, and sample-accurate position readouts. (If the soundcard's device driver does not report these capabilities, wineoss will report the HAL as unavailable and force DirectSound to use its HEL instead.)
parent 849c9304
......@@ -2143,6 +2143,10 @@ UINT MMDRV_PhysicalFeatures(LPWINE_MLD mld, UINT uMsg, DWORD dwParam1,
break;
case 0x805: /* DRV_QUERYMAPPABLE */
return (lpDrv->bIsMapper) ? 2 : 0;
case 0x810: /* Wine-specific: Retrieve DirectSound interface */
return MMDRV_Message(mld, uMsg, dwParam1, dwParam2, TRUE);
default:
WARN("Unknown call %04x\n", uMsg);
return MMSYSERR_INVALPARAM;
......
......@@ -4135,13 +4135,17 @@ DWORD WINAPI waveOutMessage(HWAVEOUT hWaveOut, UINT uMessage,
TRACE("(%04x, %u, %ld, %ld)\n", hWaveOut, uMessage, dwParam1, dwParam2);
if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, FALSE)) == NULL) {
if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, TRUE)) != NULL) {
return MMDRV_PhysicalFeatures(wmld, uMessage, dwParam1, dwParam2);
}
return MMSYSERR_INVALHANDLE;
}
/* from M$ KB */
if (uMessage < DRVM_IOCTL || (uMessage >= DRVM_IOCTL_LAST && uMessage < DRVM_MAPPER))
return MMSYSERR_INVALPARAM;
if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, FALSE)) == NULL)
return MMSYSERR_INVALHANDLE;
return MMDRV_Message(wmld, uMessage, dwParam1, dwParam2, TRUE);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment