From f99c41e3f9d5eccba3c3c2d817955809b81f584e Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Thu, 12 Jan 2012 05:51:36 -0800 Subject: [PATCH] Update to handle the completed AL_SOFT_buffer_samples --- alext.h | 64 +++++++++++ buffer.c | 336 +++++++++++++++++++++++++++---------------------------- dsound8.c | 4 +- dsound_private.h | 54 +-------- 4 files changed, 238 insertions(+), 220 deletions(-) diff --git a/alext.h b/alext.h index c78b8c3644b..72b25127947 100644 --- a/alext.h +++ b/alext.h @@ -153,6 +153,70 @@ AL_API ALvoid AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const #endif #endif +#ifndef AL_SOFT_buffer_samples +#define AL_SOFT_buffer_samples 1 +/* Channel configurations */ +#define AL_MONO_SOFT 0x1500 +#define AL_STEREO_SOFT 0x1501 +#define AL_REAR_SOFT 0x1502 +#define AL_QUAD_SOFT 0x1503 +#define AL_5POINT1_SOFT 0x1504 +#define AL_6POINT1_SOFT 0x1505 +#define AL_7POINT1_SOFT 0x1506 + +/* Sample types */ +#define AL_BYTE_SOFT 0x1400 +#define AL_UNSIGNED_BYTE_SOFT 0x1401 +#define AL_SHORT_SOFT 0x1402 +#define AL_UNSIGNED_SHORT_SOFT 0x1403 +#define AL_INT_SOFT 0x1404 +#define AL_UNSIGNED_INT_SOFT 0x1405 +#define AL_FLOAT_SOFT 0x1406 +#define AL_DOUBLE_SOFT 0x1407 +#define AL_BYTE3_SOFT 0x1408 +#define AL_UNSIGNED_BYTE3_SOFT 0x1409 + +/* Storage formats */ +#define AL_MONO8_SOFT 0x1100 +#define AL_MONO16_SOFT 0x1101 +#define AL_MONO32F_SOFT 0x10010 +#define AL_STEREO8_SOFT 0x1102 +#define AL_STEREO16_SOFT 0x1103 +#define AL_STEREO32F_SOFT 0x10011 +#define AL_QUAD8_SOFT 0x1204 +#define AL_QUAD16_SOFT 0x1205 +#define AL_QUAD32F_SOFT 0x1206 +#define AL_REAR8_SOFT 0x1207 +#define AL_REAR16_SOFT 0x1208 +#define AL_REAR32F_SOFT 0x1209 +#define AL_5POINT1_8_SOFT 0x120A +#define AL_5POINT1_16_SOFT 0x120B +#define AL_5POINT1_32F_SOFT 0x120C +#define AL_6POINT1_8_SOFT 0x120D +#define AL_6POINT1_16_SOFT 0x120E +#define AL_6POINT1_32F_SOFT 0x120F +#define AL_7POINT1_8_SOFT 0x1210 +#define AL_7POINT1_16_SOFT 0x1211 +#define AL_7POINT1_32F_SOFT 0x1212 + +/* Buffer attributes */ +#define AL_INTERNAL_FORMAT_SOFT 0x2008 +#define AL_BYTE_LENGTH_SOFT 0x2009 +#define AL_SAMPLE_LENGTH_SOFT 0x200A +#define AL_SEC_LENGTH_SOFT 0x200B + +typedef void (AL_APIENTRY*LPALBUFFERSAMPLESSOFT)(ALuint,ALuint,ALenum,ALsizei,ALenum,ALenum,const ALvoid*); +typedef void (AL_APIENTRY*LPALBUFFERSUBSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,const ALvoid*); +typedef void (AL_APIENTRY*LPALGETBUFFERSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,ALvoid*); +typedef ALboolean (AL_APIENTRY*LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum); +#ifdef AL_ALEXT_PROTOTYPES +AL_API void AL_APIENTRY alBufferSamplesSOFT(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); +AL_API void AL_APIENTRY alBufferSubSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data); +AL_API void AL_APIENTRY alGetBufferSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, ALvoid *data); +AL_API ALboolean AL_APIENTRY alIsBufferFormatSupportedSOFT(ALenum format); +#endif +#endif + #ifdef __cplusplus } #endif diff --git a/buffer.c b/buffer.c index 9e954b651b8..e9e68d354ed 100644 --- a/buffer.c +++ b/buffer.c @@ -183,80 +183,80 @@ static ALenum get_fmt_PCM(const WAVEFORMATEX *format, WAVEFORMATEXTENSIBLE *out, if(format->wBitsPerSample == 8) { - *in_type = AL_UNSIGNED_BYTE; + *in_type = AL_UNSIGNED_BYTE_SOFT; switch(format->nChannels) { - case 1: *in_chans = AL_MONO; - return AL_MONO8; - case 2: *in_chans = AL_STEREO; - return AL_STEREO8; - case 4: *in_chans = AL_QUAD; - return AL_QUAD8; - case 6: *in_chans = AL_5POINT1; - return AL_5POINT1_8; - case 7: *in_chans = AL_6POINT1; - return AL_6POINT1_8; - case 8: *in_chans = AL_7POINT1; - return AL_7POINT1_8; + case 1: *in_chans = AL_MONO_SOFT; + return AL_MONO8_SOFT; + case 2: *in_chans = AL_STEREO_SOFT; + return AL_STEREO8_SOFT; + case 4: *in_chans = AL_QUAD_SOFT; + return AL_QUAD8_SOFT; + case 6: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_8_SOFT; + case 7: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_8_SOFT; + case 8: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_8_SOFT; } } else if(format->wBitsPerSample == 16) { - *in_type = AL_SHORT; + *in_type = AL_SHORT_SOFT; switch(format->nChannels) { - case 1: *in_chans = AL_MONO; - return AL_MONO16; - case 2: *in_chans = AL_STEREO; - return AL_STEREO16; - case 4: *in_chans = AL_QUAD; - return AL_QUAD16; - case 6: *in_chans = AL_5POINT1; - return AL_5POINT1_16; - case 7: *in_chans = AL_6POINT1; - return AL_6POINT1_16; - case 8: *in_chans = AL_7POINT1; - return AL_7POINT1_16; + case 1: *in_chans = AL_MONO_SOFT; + return AL_MONO16_SOFT; + case 2: *in_chans = AL_STEREO_SOFT; + return AL_STEREO16_SOFT; + case 4: *in_chans = AL_QUAD_SOFT; + return AL_QUAD16_SOFT; + case 6: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_16_SOFT; + case 7: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_16_SOFT; + case 8: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_16_SOFT; } } #if 0 /* Will cause incorrect byte offsets */ else if(format->wBitsPerSample == 24) { - *in_type = AL_BYTE3; + *in_type = AL_BYTE3_SOFT; switch(format->nChannels) { - case 1: *in_chans = AL_MONO; - return AL_MONO32F; - case 2: *in_chans = AL_STEREO; - return AL_STEREO32F; - case 4: *in_chans = AL_QUAD; - return AL_QUAD32F; - case 6: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case 7: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case 8: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case 1: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case 2: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case 4: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case 6: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case 7: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case 8: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } #endif else if(format->wBitsPerSample == 32) { - *in_type = AL_INT; + *in_type = AL_INT_SOFT; switch(format->nChannels) { - case 1: *in_chans = AL_MONO; - return AL_MONO32F; - case 2: *in_chans = AL_STEREO; - return AL_STEREO32F; - case 4: *in_chans = AL_QUAD; - return AL_QUAD32F; - case 6: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case 7: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case 8: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case 1: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case 2: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case 4: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case 6: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case 7: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case 8: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } @@ -301,41 +301,41 @@ static ALenum get_fmt_FLOAT(const WAVEFORMATEX *format, WAVEFORMATEXTENSIBLE *ou if(format->wBitsPerSample == 32) { - *in_type = AL_FLOAT; + *in_type = AL_FLOAT_SOFT; switch(format->nChannels) { - case 1: *in_chans = AL_MONO; - return AL_MONO32F; - case 2: *in_chans = AL_STEREO; - return AL_STEREO32F; - case 4: *in_chans = AL_QUAD; - return AL_QUAD32F; - case 6: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case 7: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case 8: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case 1: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case 2: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case 4: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case 6: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case 7: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case 8: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } #if 0 /* Will cause incorrect byte offsets */ else if(format->wBitsPerSample == 64) { - *in_type = AL_DOUBLE; + *in_type = AL_DOUBLE_SOFT; switch(format->nChannels) { - case 1: *in_chans = AL_MONO; - return AL_MONO32F; - case 2: *in_chans = AL_STEREO; - return AL_STEREO32F; - case 4: *in_chans = AL_QUAD; - return AL_QUAD32F; - case 6: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case 7: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case 8: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case 1: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case 2: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case 4: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case 6: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case 7: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case 8: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } #endif @@ -454,88 +454,88 @@ static ALenum get_fmt_EXT(const WAVEFORMATEX *format, WAVEFORMATEXTENSIBLE *out, { if(out->Samples.wValidBitsPerSample == 8) { - *in_type = AL_UNSIGNED_BYTE; + *in_type = AL_UNSIGNED_BYTE_SOFT; switch(out->dwChannelMask) { - case MONO: *in_chans = AL_MONO; - return AL_MONO8; - case STEREO: *in_chans = AL_STEREO; - return AL_STEREO8; - case REAR: *in_chans = AL_REAR; - return AL_REAR8; - case QUAD: *in_chans = AL_QUAD; - return AL_QUAD8; - case X5DOT1: *in_chans = AL_5POINT1; - return AL_5POINT1_8; - case X6DOT1: *in_chans = AL_6POINT1; - return AL_6POINT1_8; - case X7DOT1: *in_chans = AL_7POINT1; - return AL_7POINT1_8; + case MONO: *in_chans = AL_MONO_SOFT; + return AL_MONO8_SOFT; + case STEREO: *in_chans = AL_STEREO_SOFT; + return AL_STEREO8_SOFT; + case REAR: *in_chans = AL_REAR_SOFT; + return AL_REAR8_SOFT; + case QUAD: *in_chans = AL_QUAD_SOFT; + return AL_QUAD8_SOFT; + case X5DOT1: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_8_SOFT; + case X6DOT1: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_8_SOFT; + case X7DOT1: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_8_SOFT; } } else if(out->Samples.wValidBitsPerSample == 16) { - *in_type = AL_SHORT; + *in_type = AL_SHORT_SOFT; switch(out->dwChannelMask) { - case MONO: *in_chans = AL_MONO; - return AL_MONO16; - case STEREO: *in_chans = AL_STEREO; - return AL_STEREO16; - case REAR: *in_chans = AL_REAR; - return AL_REAR16; - case QUAD: *in_chans = AL_QUAD; - return AL_QUAD16; - case X5DOT1: *in_chans = AL_5POINT1; - return AL_5POINT1_16; - case X6DOT1: *in_chans = AL_6POINT1; - return AL_6POINT1_16; - case X7DOT1: *in_chans = AL_7POINT1; - return AL_7POINT1_16; + case MONO: *in_chans = AL_MONO_SOFT; + return AL_MONO16_SOFT; + case STEREO: *in_chans = AL_STEREO_SOFT; + return AL_STEREO16_SOFT; + case REAR: *in_chans = AL_REAR_SOFT; + return AL_REAR16_SOFT; + case QUAD: *in_chans = AL_QUAD_SOFT; + return AL_QUAD16_SOFT; + case X5DOT1: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_16_SOFT; + case X6DOT1: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_16_SOFT; + case X7DOT1: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_16_SOFT; } } #if 0 else if(out->Samples.wValidBitsPerSample == 24) { - *in_type = AL_BYTE3; + *in_type = AL_BYTE3_SOFT; switch(out->dwChannelMask) { - case MONO: *in_chans = AL_MONO; - return AL_MONO32F; - case STEREO: *in_chans = AL_STEREO; - return AL_STEREO32F; - case REAR: *in_chans = AL_REAR; - return AL_REAR32F; - case QUAD: *in_chans = AL_QUAD; - return AL_QUAD32F; - case X5DOT1: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case X6DOT1: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case X7DOT1: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case MONO: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case STEREO: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case REAR: *in_chans = AL_REAR_SOFT; + return AL_REAR32F_SOFT; + case QUAD: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case X5DOT1: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case X6DOT1: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case X7DOT1: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } #endif else if(out->Samples.wValidBitsPerSample == 32) { - *in_type = AL_INT; + *in_type = AL_INT_SOFT; switch(out->dwChannelMask) { - case MONO: *in_chans = AL_MONO; - return AL_MONO32F; - case STEREO: *in_chans = AL_STEREO; - return AL_STEREO32F; - case REAR: *in_chans = AL_REAR; - return AL_REAR32F; - case QUAD: *in_chans = AL_QUAD; - return AL_QUAD32F; - case X5DOT1: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case X6DOT1: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case X7DOT1: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case MONO: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case STEREO: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case REAR: *in_chans = AL_REAR_SOFT; + return AL_REAR32F_SOFT; + case QUAD: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case X5DOT1: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case X6DOT1: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case X7DOT1: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } @@ -547,45 +547,45 @@ static ALenum get_fmt_EXT(const WAVEFORMATEX *format, WAVEFORMATEXTENSIBLE *out, { if(out->Samples.wValidBitsPerSample == 32) { - *in_type = AL_FLOAT; + *in_type = AL_FLOAT_SOFT; switch(out->dwChannelMask) { - case MONO: *in_chans = AL_MONO; - return AL_MONO32F; - case STEREO: *in_chans = AL_STEREO; - return AL_STEREO32F; - case REAR: *in_chans = AL_REAR; - return AL_REAR32F; - case QUAD: *in_chans = AL_QUAD; - return AL_QUAD32F; - case X5DOT1: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case X6DOT1: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case X7DOT1: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case MONO: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case STEREO: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case REAR: *in_chans = AL_REAR_SOFT; + return AL_REAR32F_SOFT; + case QUAD: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case X5DOT1: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case X6DOT1: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case X7DOT1: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } #if 0 else if(out->Samples.wValidBitsPerSample == 64) { - *in_type = AL_DOUBLE; + *in_type = AL_DOUBLE_SOFT; switch(out->dwChannelMask) { - case MONO: *in_chans = AL_MONO; - return AL_MONO32F; - case STEREO: *in_chans = AL_STEREO; - return AL_STEREO32F; - case REAR: *in_chans = AL_REAR; - return AL_REAR32F; - case QUAD: *in_chans = AL_QUAD; - return AL_QUAD32F; - case X5DOT1: *in_chans = AL_5POINT1; - return AL_5POINT1_32F; - case X6DOT1: *in_chans = AL_6POINT1; - return AL_6POINT1_32F; - case X7DOT1: *in_chans = AL_7POINT1; - return AL_7POINT1_32F; + case MONO: *in_chans = AL_MONO_SOFT; + return AL_MONO32F_SOFT; + case STEREO: *in_chans = AL_STEREO_SOFT; + return AL_STEREO32F_SOFT; + case REAR: *in_chans = AL_REAR_SOFT; + return AL_REAR32F_SOFT; + case QUAD: *in_chans = AL_QUAD_SOFT; + return AL_QUAD32F_SOFT; + case X5DOT1: *in_chans = AL_5POINT1_SOFT; + return AL_5POINT1_32F_SOFT; + case X6DOT1: *in_chans = AL_6POINT1_SOFT; + return AL_6POINT1_32F_SOFT; + case X7DOT1: *in_chans = AL_7POINT1_SOFT; + return AL_7POINT1_32F_SOFT; } } #endif diff --git a/dsound8.c b/dsound8.c index e40f65edc95..ea0cf6cf441 100644 --- a/dsound8.c +++ b/dsound8.c @@ -182,9 +182,9 @@ static HRESULT DSShare_Create(REFIID guid, DeviceShare **out) share->ExtAL.BufferDataStatic = alGetProcAddress("alBufferDataStatic"); share->SupportedExt[EXT_STATIC_BUFFER] = AL_TRUE; } - if(alIsExtensionPresent("AL_SOFTX_buffer_samples")) + if(alIsExtensionPresent("AL_SOFT_buffer_samples")) { - TRACE("Found AL_SOFTX_buffer_samples\n"); + TRACE("Found AL_SOFT_buffer_samples\n"); share->ExtAL.BufferSamplesSOFT = alGetProcAddress("alBufferSamplesSOFT"); share->ExtAL.BufferSubSamplesSOFT = alGetProcAddress("alBufferSubSamplesSOFT"); share->ExtAL.GetBufferSamplesSOFT = alGetProcAddress("alGetBufferSamplesSOFT"); diff --git a/dsound_private.h b/dsound_private.h index 1421d22de85..666b7a1f1de 100644 --- a/dsound_private.h +++ b/dsound_private.h @@ -297,52 +297,6 @@ typedef struct DS8Primary DS8Primary; typedef struct DS8Buffer DS8Buffer; -/* Sample types */ -#define AL_BYTE 0x1400 -#define AL_UNSIGNED_BYTE 0x1401 -#define AL_SHORT 0x1402 -#define AL_UNSIGNED_SHORT 0x1403 -#define AL_INT 0x1404 -#define AL_UNSIGNED_INT 0x1405 -#define AL_FLOAT 0x1406 -#define AL_DOUBLE 0x1407 -#define AL_BYTE3 0x1408 -#define AL_UNSIGNED_BYTE3 0x1409 -#define AL_MULAW 0x1410 -#define AL_IMA4 0x1411 - -/* Channel configurations */ -#define AL_MONO 0x1500 -#define AL_STEREO 0x1501 -#define AL_REAR 0x1502 -#define AL_QUAD 0x1503 -#define AL_5POINT1 0x1504 /* (WFX order) */ -#define AL_6POINT1 0x1505 /* (WFX order) */ -#define AL_7POINT1 0x1506 /* (WFX order) */ - -/* Storage formats */ -#define AL_MONO8 0x1100 -#define AL_MONO16 0x1101 -#define AL_MONO32F 0x10010 -#define AL_STEREO8 0x1102 -#define AL_STEREO16 0x1103 -#define AL_STEREO32F 0x10011 -#define AL_QUAD8 0x1204 -#define AL_QUAD16 0x1205 -#define AL_QUAD32F 0x1206 -#define AL_REAR8 0x1207 -#define AL_REAR16 0x1208 -#define AL_REAR32F 0x1209 -#define AL_5POINT1_8 0x120A -#define AL_5POINT1_16 0x120B -#define AL_5POINT1_32F 0x120C -#define AL_6POINT1_8 0x120D -#define AL_6POINT1_16 0x120E -#define AL_6POINT1_32F 0x120F -#define AL_7POINT1_8 0x1210 -#define AL_7POINT1_16 0x1211 -#define AL_7POINT1_32F 0x1212 - enum { EXT_EFX, EXT_FLOAT32, @@ -368,10 +322,10 @@ typedef struct ExtALFuncs { LPALDELETEAUXILIARYEFFECTSLOTS DeleteAuxiliaryEffectSlots; LPALAUXILIARYEFFECTSLOTI AuxiliaryEffectSloti; - void (AL_APIENTRY*BufferSamplesSOFT)(ALuint,ALuint,ALenum,ALsizei,ALenum,ALenum,const ALvoid*); - void (AL_APIENTRY*BufferSubSamplesSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,const ALvoid*); - void (AL_APIENTRY*GetBufferSamplesSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,ALvoid*); - ALboolean (AL_APIENTRY*IsBufferFormatSupportedSOFT)(ALenum); + LPALBUFFERSAMPLESSOFT BufferSamplesSOFT; + LPALBUFFERSUBSAMPLESSOFT BufferSubSamplesSOFT; + LPALGETBUFFERSAMPLESSOFT GetBufferSamplesSOFT; + LPALISBUFFERFORMATSUPPORTEDSOFT IsBufferFormatSupportedSOFT; void (AL_APIENTRY*DeferUpdatesSOFT)(void); void (AL_APIENTRY*ProcessUpdatesSOFT)(void); -- 2.11.4.GIT