mixer abstraction layer improvements
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@609 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
@@ -406,7 +406,7 @@ mixSDL_IsSource (mixSDL_Object srcobj)
|
|||||||
/* set source integer property */
|
/* set source integer property */
|
||||||
void
|
void
|
||||||
mixSDL_Sourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
mixSDL_Sourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
||||||
mixSDL_Object value)
|
mixSDL_IntVal value)
|
||||||
{
|
{
|
||||||
mixSDL_Source *src = (mixSDL_Source *) srcobj;
|
mixSDL_Source *src = (mixSDL_Source *) srcobj;
|
||||||
|
|
||||||
@@ -504,7 +504,7 @@ mixSDL_Sourcef (mixSDL_Object srcobj, mixSDL_SourceProp pname, float value)
|
|||||||
/* get source integer property */
|
/* get source integer property */
|
||||||
void
|
void
|
||||||
mixSDL_GetSourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
mixSDL_GetSourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
||||||
mixSDL_Object *value)
|
mixSDL_IntVal *value)
|
||||||
{
|
{
|
||||||
mixSDL_Source *src = (mixSDL_Source *) srcobj;
|
mixSDL_Source *src = (mixSDL_Source *) srcobj;
|
||||||
|
|
||||||
@@ -534,7 +534,7 @@ mixSDL_GetSourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
|||||||
*value = src->looping;
|
*value = src->looping;
|
||||||
break;
|
break;
|
||||||
case MIX_BUFFER:
|
case MIX_BUFFER:
|
||||||
*value = (mixSDL_Object) src->firstqueued;
|
*value = (mixSDL_IntVal) src->firstqueued;
|
||||||
break;
|
break;
|
||||||
case MIX_SOURCE_STATE:
|
case MIX_SOURCE_STATE:
|
||||||
*value = src->state;
|
*value = src->state;
|
||||||
@@ -1292,7 +1292,7 @@ mixSDL_IsBuffer (mixSDL_Object bufobj)
|
|||||||
/* get buffer property */
|
/* get buffer property */
|
||||||
void
|
void
|
||||||
mixSDL_GetBufferi (mixSDL_Object bufobj, mixSDL_BufferProp pname,
|
mixSDL_GetBufferi (mixSDL_Object bufobj, mixSDL_BufferProp pname,
|
||||||
mixSDL_Object *value)
|
mixSDL_IntVal *value)
|
||||||
{
|
{
|
||||||
mixSDL_Buffer *buf = (mixSDL_Buffer *) bufobj;
|
mixSDL_Buffer *buf = (mixSDL_Buffer *) bufobj;
|
||||||
|
|
||||||
@@ -1343,7 +1343,7 @@ mixSDL_GetBufferi (mixSDL_Object bufobj, mixSDL_BufferProp pname,
|
|||||||
*value = buf->orgsize;
|
*value = buf->orgsize;
|
||||||
break;
|
break;
|
||||||
case MIX_DATA:
|
case MIX_DATA:
|
||||||
*value = (mixSDL_Object) buf->orgdata;
|
*value = (mixSDL_IntVal) buf->orgdata;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mixSDL_SetError (MIX_INVALID_ENUM);
|
mixSDL_SetError (MIX_INVALID_ENUM);
|
||||||
|
|||||||
@@ -134,8 +134,12 @@ typedef enum
|
|||||||
|
|
||||||
} mixSDL_Format;
|
} mixSDL_Format;
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
* Interface Types
|
||||||
|
*/
|
||||||
|
|
||||||
typedef int mixSDL_Object;
|
typedef unsigned int mixSDL_Object;
|
||||||
|
typedef int mixSDL_IntVal;
|
||||||
|
|
||||||
typedef struct _mixSDL_Buffer
|
typedef struct _mixSDL_Buffer
|
||||||
{
|
{
|
||||||
@@ -191,11 +195,11 @@ void mixSDL_GenSources (uint32 n, mixSDL_Object *psrcobj);
|
|||||||
void mixSDL_DeleteSources (uint32 n, mixSDL_Object *psrcobj);
|
void mixSDL_DeleteSources (uint32 n, mixSDL_Object *psrcobj);
|
||||||
bool mixSDL_IsSource (mixSDL_Object srcobj);
|
bool mixSDL_IsSource (mixSDL_Object srcobj);
|
||||||
void mixSDL_Sourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
void mixSDL_Sourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
||||||
mixSDL_Object value);
|
mixSDL_IntVal value);
|
||||||
void mixSDL_Sourcef (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
void mixSDL_Sourcef (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
||||||
float value);
|
float value);
|
||||||
void mixSDL_GetSourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
void mixSDL_GetSourcei (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
||||||
mixSDL_Object *value);
|
mixSDL_IntVal *value);
|
||||||
void mixSDL_GetSourcef (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
void mixSDL_GetSourcef (mixSDL_Object srcobj, mixSDL_SourceProp pname,
|
||||||
float *value);
|
float *value);
|
||||||
void mixSDL_SourceRewind (mixSDL_Object srcobj);
|
void mixSDL_SourceRewind (mixSDL_Object srcobj);
|
||||||
@@ -214,7 +218,7 @@ void mixSDL_GenBuffers (uint32 n, mixSDL_Object *pbufobj);
|
|||||||
void mixSDL_DeleteBuffers (uint32 n, mixSDL_Object *pbufobj);
|
void mixSDL_DeleteBuffers (uint32 n, mixSDL_Object *pbufobj);
|
||||||
bool mixSDL_IsBuffer (mixSDL_Object bufobj);
|
bool mixSDL_IsBuffer (mixSDL_Object bufobj);
|
||||||
void mixSDL_GetBufferi (mixSDL_Object bufobj, mixSDL_BufferProp pname,
|
void mixSDL_GetBufferi (mixSDL_Object bufobj, mixSDL_BufferProp pname,
|
||||||
mixSDL_Object *value);
|
mixSDL_IntVal *value);
|
||||||
void mixSDL_BufferData (mixSDL_Object bufobj, uint32 format, void* data,
|
void mixSDL_BufferData (mixSDL_Object bufobj, uint32 format, void* data,
|
||||||
uint32 size, uint32 freq);
|
uint32 size, uint32 freq);
|
||||||
|
|
||||||
|
|||||||
@@ -14,11 +14,15 @@
|
|||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* OpenAL specific code by Mika Kolehmainen, 2002-10-23
|
/* Mixer abstraction layer for MixSDL
|
||||||
*/
|
*/
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
* Interface Types
|
||||||
|
*/
|
||||||
#define TFBSound_Object mixSDL_Object
|
#define TFBSound_Object mixSDL_Object
|
||||||
|
#define TFBSound_IntVal mixSDL_IntVal
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
* General interface
|
* General interface
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ TFB_InitSound (int driver, int flags)
|
|||||||
|
|
||||||
SetSFXVolume (sfxVolumeScale);
|
SetSFXVolume (sfxVolumeScale);
|
||||||
SetSpeechVolume (speechVolumeScale);
|
SetSpeechVolume (speechVolumeScale);
|
||||||
SetMusicVolume (musicVolume);
|
SetMusicVolume ((COUNT) musicVolume);
|
||||||
|
|
||||||
// NOTE: change this if implementing 3D sound stuff
|
// NOTE: change this if implementing 3D sound stuff
|
||||||
alDistanceModel (AL_NONE);
|
alDistanceModel (AL_NONE);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* OpenAL specific code by Mika Kolehmainen, 2002-10-23
|
/* Mixer abstraction layer for OpenAL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
@@ -28,7 +28,11 @@
|
|||||||
|
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
* Interface Types
|
||||||
|
*/
|
||||||
#define TFBSound_Object ALuint
|
#define TFBSound_Object ALuint
|
||||||
|
#define TFBSound_IntVal ALint
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
* General interface
|
* General interface
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ StopChannel(COUNT channel, unsigned char Priority)
|
|||||||
BOOLEAN
|
BOOLEAN
|
||||||
ChannelPlaying (COUNT WhichChannel)
|
ChannelPlaying (COUNT WhichChannel)
|
||||||
{
|
{
|
||||||
TFBSound_Object state;
|
TFBSound_IntVal state;
|
||||||
|
|
||||||
TFBSound_GetSourcei (soundSource[WhichChannel].handle, TFBSOUND_SOURCE_STATE, &state);
|
TFBSound_GetSourcei (soundSource[WhichChannel].handle, TFBSOUND_SOURCE_STATE, &state);
|
||||||
if (state == TFBSOUND_PLAYING)
|
if (state == TFBSOUND_PLAYING)
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ SoundPlaying (void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint32 state;
|
TFBSound_IntVal state;
|
||||||
TFBSound_GetSourcei (soundSource[i].handle, TFBSOUND_SOURCE_STATE, &state);
|
TFBSound_GetSourcei (soundSource[i].handle, TFBSOUND_SOURCE_STATE, &state);
|
||||||
if (state == TFBSOUND_PLAYING)
|
if (state == TFBSOUND_PLAYING)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
#elif defined SOUNDMODULE_OPENAL
|
#elif defined SOUNDMODULE_OPENAL
|
||||||
#include "openal/sound_openal.h"
|
#include "openal/sound_openal.h"
|
||||||
#endif
|
#endif
|
||||||
#include "libs/sound/decoders/decoder.h"
|
#include "decoders/decoder.h"
|
||||||
|
|
||||||
|
|
||||||
#define FIRST_SFX_SOURCE 0
|
#define FIRST_SFX_SOURCE 0
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ PlayStream (TFB_SoundSample *sample, uint32 source, bool looping, bool scope, bo
|
|||||||
void
|
void
|
||||||
StopStream (uint32 source)
|
StopStream (uint32 source)
|
||||||
{
|
{
|
||||||
uint32 queued, processed;
|
TFBSound_IntVal queued, processed;
|
||||||
uint32 *buffer;
|
uint32 *buffer;
|
||||||
|
|
||||||
soundSource[source].stream_should_be_playing = FALSE;
|
soundSource[source].stream_should_be_playing = FALSE;
|
||||||
@@ -188,8 +188,8 @@ StreamDecoderTaskFunc (void *data)
|
|||||||
|
|
||||||
for (i = MUSIC_SOURCE; i < NUM_SOUNDSOURCES; ++i)
|
for (i = MUSIC_SOURCE; i < NUM_SOUNDSOURCES; ++i)
|
||||||
{
|
{
|
||||||
uint32 processed, queued;
|
TFBSound_IntVal processed, queued;
|
||||||
TFBSound_Object state;
|
TFBSound_IntVal state;
|
||||||
bool do_speech_advancetrack = false;
|
bool do_speech_advancetrack = false;
|
||||||
|
|
||||||
LockMutex (soundSource[i].stream_mutex);
|
LockMutex (soundSource[i].stream_mutex);
|
||||||
@@ -268,7 +268,7 @@ StreamDecoderTaskFunc (void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
uint32 buf_size;
|
TFBSound_IntVal buf_size;
|
||||||
soundSource[i].sbuf_lasttime = GetTimeCounter ();
|
soundSource[i].sbuf_lasttime = GetTimeCounter ();
|
||||||
TFBSound_GetBufferi(buffer, TFBSOUND_SIZE, &buf_size);
|
TFBSound_GetBufferi(buffer, TFBSOUND_SIZE, &buf_size);
|
||||||
soundSource[i].sbuf_offset += buf_size;
|
soundSource[i].sbuf_offset += buf_size;
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ ResumeTrack ()
|
|||||||
{
|
{
|
||||||
if (sound_sample && sound_sample->read_chain_ptr)
|
if (sound_sample && sound_sample->read_chain_ptr)
|
||||||
{
|
{
|
||||||
uint32 state;
|
TFBSound_IntVal state;
|
||||||
|
|
||||||
LockMutex (soundSource[SPEECH_SOURCE].stream_mutex);
|
LockMutex (soundSource[SPEECH_SOURCE].stream_mutex);
|
||||||
TFBSound_GetSourcei (soundSource[SPEECH_SOURCE].handle, TFBSOUND_SOURCE_STATE, &state);
|
TFBSound_GetSourcei (soundSource[SPEECH_SOURCE].handle, TFBSOUND_SOURCE_STATE, &state);
|
||||||
|
|||||||
Reference in New Issue
Block a user