mmdevapi/tests: Produce audible 16bit output too.
This commit is contained in:
parent
ee9689b4d0
commit
c771fe9231
|
@ -75,8 +75,10 @@ static DWORD wave_generate_tone(PWAVEFORMATEX pwfx, BYTE* data, UINT32 frames)
|
||||||
DWORD cn, i;
|
DWORD cn, i;
|
||||||
double delta, y;
|
double delta, y;
|
||||||
|
|
||||||
if(!winetest_interactive || wfxe->Format.wFormatTag != WAVE_FORMAT_EXTENSIBLE ||
|
if(!winetest_interactive)
|
||||||
!IsEqualGUID(&wfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT))
|
return AUDCLNT_BUFFERFLAGS_SILENT;
|
||||||
|
if(wfxe->Format.wBitsPerSample != ((wfxe->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE &&
|
||||||
|
IsEqualGUID(&wfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) ? 8 * sizeof(float) : 16))
|
||||||
return AUDCLNT_BUFFERFLAGS_SILENT;
|
return AUDCLNT_BUFFERFLAGS_SILENT;
|
||||||
|
|
||||||
for(delta = phase, cn = 0; cn < wfxe->Format.nChannels;
|
for(delta = phase, cn = 0; cn < wfxe->Format.nChannels;
|
||||||
|
@ -84,8 +86,10 @@ static DWORD wave_generate_tone(PWAVEFORMATEX pwfx, BYTE* data, UINT32 frames)
|
||||||
for(i = 0; i < frames; i++){
|
for(i = 0; i < frames; i++){
|
||||||
y = sin(2*PI*(440.* i / wfxe->Format.nSamplesPerSec + delta));
|
y = sin(2*PI*(440.* i / wfxe->Format.nSamplesPerSec + delta));
|
||||||
/* assume alignment is granted */
|
/* assume alignment is granted */
|
||||||
((float*)data)[cn+i*wfxe->Format.nChannels] = y;
|
if(wfxe->Format.wBitsPerSample == 16)
|
||||||
/* fixme: 16bit for exclusive mode */
|
((short*)data)[cn+i*wfxe->Format.nChannels] = y * 32767.9;
|
||||||
|
else
|
||||||
|
((float*)data)[cn+i*wfxe->Format.nChannels] = y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
phase += 440.* frames / wfxe->Format.nSamplesPerSec;
|
phase += 440.* frames / wfxe->Format.nSamplesPerSec;
|
||||||
|
|
Loading…
Reference in New Issue