mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-25 13:31:37 +00:00
- Backported FMOD Ex 4.34 fixes from gzdoom-macosx. (With changes to continue to allow compilation with 4.22-4.28.)
SVN r3278 (trunk)
This commit is contained in:
parent
ba4630f0df
commit
f42358ad08
3 changed files with 23 additions and 3 deletions
|
@ -1,3 +1,3 @@
|
|||
This version of ZDoom must be compiled with any version between 4.22 and 4.28 inclusive.
|
||||
This version of ZDoom must be compiled with any version between 4.22 and 4.28 inclusive or 4.34.
|
||||
Use of the latest 4.26 is recommended though due to technical issues with 4.28.
|
||||
|
||||
|
|
|
@ -75,6 +75,10 @@ extern HWND Window;
|
|||
|
||||
#define SPECTRUM_SIZE 256
|
||||
|
||||
#if FMOD_VERSION < 0x43400
|
||||
#define FMOD_OPENSTATE_PLAYING FMOD_OPENSTATE_STREAMING
|
||||
#endif
|
||||
|
||||
// TYPES -------------------------------------------------------------------
|
||||
|
||||
struct FEnumList
|
||||
|
@ -157,7 +161,9 @@ static const FEnumList OutputNames[] =
|
|||
{ "Windows Multimedia", FMOD_OUTPUTTYPE_WINMM },
|
||||
{ "WinMM", FMOD_OUTPUTTYPE_WINMM },
|
||||
{ "WaveOut", FMOD_OUTPUTTYPE_WINMM },
|
||||
#if FMOD_VERSION < 0x43400
|
||||
{ "OpenAL", FMOD_OUTPUTTYPE_OPENAL },
|
||||
#endif
|
||||
{ "WASAPI", FMOD_OUTPUTTYPE_WASAPI },
|
||||
{ "ASIO", FMOD_OUTPUTTYPE_ASIO },
|
||||
|
||||
|
@ -165,6 +171,9 @@ static const FEnumList OutputNames[] =
|
|||
{ "OSS", FMOD_OUTPUTTYPE_OSS },
|
||||
{ "ALSA", FMOD_OUTPUTTYPE_ALSA },
|
||||
{ "ESD", FMOD_OUTPUTTYPE_ESD },
|
||||
#if FMOD_VERSION >= 0x43400
|
||||
{ "PulseAudio", FMOD_OUTPUTTYPE_PULSEAUDIO },
|
||||
#endif
|
||||
{ "SDL", 666 },
|
||||
|
||||
// Mac
|
||||
|
@ -388,12 +397,17 @@ public:
|
|||
bool is;
|
||||
FMOD_OPENSTATE openstate = FMOD_OPENSTATE_MAX;
|
||||
bool starving;
|
||||
bool diskbusy;
|
||||
|
||||
if (Stream == NULL)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#if FMOD_VERSION < 0x43400
|
||||
if (FMOD_OK != Stream->getOpenState(&openstate, NULL, &starving))
|
||||
#else
|
||||
if (FMOD_OK != Stream->getOpenState(&openstate, NULL, &starving, &diskbusy))
|
||||
#endif
|
||||
{
|
||||
openstate = FMOD_OPENSTATE_ERROR;
|
||||
}
|
||||
|
@ -436,7 +450,7 @@ public:
|
|||
Owner->Sys->setStreamBufferSize(16*1024, FMOD_TIMEUNIT_RAWBYTES);
|
||||
return result != FMOD_OK;
|
||||
}
|
||||
if (JustStarted && openstate == FMOD_OPENSTATE_STREAMING)
|
||||
if (JustStarted && openstate == FMOD_OPENSTATE_PLAYING)
|
||||
{
|
||||
JustStarted = false;
|
||||
}
|
||||
|
@ -480,14 +494,19 @@ public:
|
|||
unsigned int percentbuffered;
|
||||
unsigned int position;
|
||||
bool starving;
|
||||
bool diskbusy;
|
||||
float volume;
|
||||
float frequency;
|
||||
bool paused;
|
||||
bool isplaying;
|
||||
|
||||
#if FMOD_VERSION < 0x43400
|
||||
if (FMOD_OK == Stream->getOpenState(&openstate, &percentbuffered, &starving))
|
||||
#else
|
||||
if (FMOD_OK == Stream->getOpenState(&openstate, &percentbuffered, &starving, &diskbusy))
|
||||
#endif
|
||||
{
|
||||
stats = (openstate <= FMOD_OPENSTATE_STREAMING ? OpenStateNames[openstate] : "Unknown state");
|
||||
stats = (openstate <= FMOD_OPENSTATE_PLAYING ? OpenStateNames[openstate] : "Unknown state");
|
||||
stats.AppendFormat(",%3d%% buffered, %s", percentbuffered, starving ? "Starving" : "Well-fed");
|
||||
}
|
||||
if (Channel == NULL)
|
||||
|
|
|
@ -1266,6 +1266,7 @@ OptionString SoundOutputsUnix
|
|||
"ALSA", "ALSA"
|
||||
"SDL", "SDL"
|
||||
"ESD", "ESD"
|
||||
"PulseAudio", "PulseAudio"
|
||||
"No sound", "No sound"
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue