original buffer parameters stored for OpenAL compatibility
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@603 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -1187,6 +1187,10 @@ mixSDL_GenBuffers (uint32 n, mixSDL_Object *pbufobj)
|
||||
buf->size = 0;
|
||||
buf->next = 0;
|
||||
buf->orgdata = 0;
|
||||
buf->orgfreq = 0;
|
||||
buf->orgsize = 0;
|
||||
buf->orgchannels = 0;
|
||||
buf->orgchansize = 0;
|
||||
|
||||
*pbufobj = (mixSDL_Object) buf;
|
||||
}
|
||||
@@ -1322,22 +1326,21 @@ mixSDL_GetBufferi (mixSDL_Object bufobj, mixSDL_BufferProp pname,
|
||||
}
|
||||
else
|
||||
{
|
||||
/* All buffers are converted when filled
|
||||
* so we simply return mixer values
|
||||
/* Return original buffer values
|
||||
*/
|
||||
switch (pname)
|
||||
{
|
||||
case MIX_FREQUENCY:
|
||||
*value = mixer_spec.freq;
|
||||
*value = buf->orgfreq;
|
||||
break;
|
||||
case MIX_BITS:
|
||||
*value = mixer_chansize << 3;
|
||||
*value = buf->orgchansize << 3;
|
||||
break;
|
||||
case MIX_CHANNELS:
|
||||
*value = mixer_spec.channels;
|
||||
*value = buf->orgchannels;
|
||||
break;
|
||||
case MIX_SIZE:
|
||||
*value = buf->size;
|
||||
*value = buf->orgsize;
|
||||
break;
|
||||
case MIX_DATA:
|
||||
*value = (mixSDL_Object) buf->orgdata;
|
||||
@@ -1404,7 +1407,12 @@ mixSDL_BufferData (mixSDL_Object bufobj, uint32 format, void* data,
|
||||
HFree (buf->data);
|
||||
buf->data = 0;
|
||||
buf->size = 0;
|
||||
/* Store original buffer values for OpenAL compatibility */
|
||||
buf->orgdata = data;
|
||||
buf->orgfreq = freq;
|
||||
buf->orgsize = size;
|
||||
buf->orgchannels = MIX_FORMAT_CHANS (format);
|
||||
buf->orgchansize = MIX_FORMAT_BPC (format);
|
||||
|
||||
conv.srcsamples = size / MIX_FORMAT_SAMPSIZE (format);
|
||||
conv.dstsamples = (uint32)
|
||||
|
||||
@@ -144,7 +144,13 @@ typedef struct _mixSDL_Buffer
|
||||
mixSDL_BufferState state;
|
||||
uint8 *data;
|
||||
uint32 size;
|
||||
/* original buffer values for OpenAL compat */
|
||||
void* orgdata;
|
||||
uint32 orgfreq;
|
||||
uint32 orgsize;
|
||||
uint32 orgchannels;
|
||||
uint32 orgchansize;
|
||||
/* next buffer in chain */
|
||||
struct _mixSDL_Buffer *next;
|
||||
|
||||
} mixSDL_Buffer;
|
||||
|
||||
Reference in New Issue
Block a user