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->size = 0;
|
||||||
buf->next = 0;
|
buf->next = 0;
|
||||||
buf->orgdata = 0;
|
buf->orgdata = 0;
|
||||||
|
buf->orgfreq = 0;
|
||||||
|
buf->orgsize = 0;
|
||||||
|
buf->orgchannels = 0;
|
||||||
|
buf->orgchansize = 0;
|
||||||
|
|
||||||
*pbufobj = (mixSDL_Object) buf;
|
*pbufobj = (mixSDL_Object) buf;
|
||||||
}
|
}
|
||||||
@@ -1322,22 +1326,21 @@ mixSDL_GetBufferi (mixSDL_Object bufobj, mixSDL_BufferProp pname,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* All buffers are converted when filled
|
/* Return original buffer values
|
||||||
* so we simply return mixer values
|
|
||||||
*/
|
*/
|
||||||
switch (pname)
|
switch (pname)
|
||||||
{
|
{
|
||||||
case MIX_FREQUENCY:
|
case MIX_FREQUENCY:
|
||||||
*value = mixer_spec.freq;
|
*value = buf->orgfreq;
|
||||||
break;
|
break;
|
||||||
case MIX_BITS:
|
case MIX_BITS:
|
||||||
*value = mixer_chansize << 3;
|
*value = buf->orgchansize << 3;
|
||||||
break;
|
break;
|
||||||
case MIX_CHANNELS:
|
case MIX_CHANNELS:
|
||||||
*value = mixer_spec.channels;
|
*value = buf->orgchannels;
|
||||||
break;
|
break;
|
||||||
case MIX_SIZE:
|
case MIX_SIZE:
|
||||||
*value = buf->size;
|
*value = buf->orgsize;
|
||||||
break;
|
break;
|
||||||
case MIX_DATA:
|
case MIX_DATA:
|
||||||
*value = (mixSDL_Object) buf->orgdata;
|
*value = (mixSDL_Object) buf->orgdata;
|
||||||
@@ -1404,7 +1407,12 @@ mixSDL_BufferData (mixSDL_Object bufobj, uint32 format, void* data,
|
|||||||
HFree (buf->data);
|
HFree (buf->data);
|
||||||
buf->data = 0;
|
buf->data = 0;
|
||||||
buf->size = 0;
|
buf->size = 0;
|
||||||
|
/* Store original buffer values for OpenAL compatibility */
|
||||||
buf->orgdata = data;
|
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.srcsamples = size / MIX_FORMAT_SAMPSIZE (format);
|
||||||
conv.dstsamples = (uint32)
|
conv.dstsamples = (uint32)
|
||||||
|
|||||||
@@ -144,7 +144,13 @@ typedef struct _mixSDL_Buffer
|
|||||||
mixSDL_BufferState state;
|
mixSDL_BufferState state;
|
||||||
uint8 *data;
|
uint8 *data;
|
||||||
uint32 size;
|
uint32 size;
|
||||||
|
/* original buffer values for OpenAL compat */
|
||||||
void* orgdata;
|
void* orgdata;
|
||||||
|
uint32 orgfreq;
|
||||||
|
uint32 orgsize;
|
||||||
|
uint32 orgchannels;
|
||||||
|
uint32 orgchansize;
|
||||||
|
/* next buffer in chain */
|
||||||
struct _mixSDL_Buffer *next;
|
struct _mixSDL_Buffer *next;
|
||||||
|
|
||||||
} mixSDL_Buffer;
|
} mixSDL_Buffer;
|
||||||
|
|||||||
Reference in New Issue
Block a user