mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-28 23:12:24 +00:00
Merge branch 'master' of https://github.com/rheit/zdoom
This commit is contained in:
commit
3778799f92
4 changed files with 43 additions and 6 deletions
|
@ -281,6 +281,10 @@ if( NOT NO_FMOD )
|
|||
if( FMOD_INCLUDE_DIR )
|
||||
message( STATUS "FMOD include files found at ${FMOD_INCLUDE_DIR}" )
|
||||
include_directories( "${FMOD_INCLUDE_DIR}" )
|
||||
|
||||
if( EXISTS "${FMOD_INCLUDE_DIR}/fmod_common.h" )
|
||||
set( FMOD_STUDIO YES )
|
||||
endif()
|
||||
else()
|
||||
message( STATUS "Could not find FMOD include files" )
|
||||
set( NO_FMOD ON )
|
||||
|
@ -1480,7 +1484,16 @@ endif()
|
|||
|
||||
if( MSVC )
|
||||
option( ZDOOM_GENERATE_MAPFILE "Generate .map file for debugging." OFF )
|
||||
set( LINKERSTUFF "/MANIFEST:NO /DELAYLOAD:\"fmodex${X64}.dll\"" )
|
||||
set( LINKERSTUFF "/MANIFEST:NO" )
|
||||
|
||||
if( NOT NO_FMOD )
|
||||
if( FMOD_STUDIO )
|
||||
set( LINKERSTUFF "${LINKERSTUFF} /DELAYLOAD:\"fmod${X64}.dll\"" )
|
||||
else()
|
||||
set( LINKERSTUFF "${LINKERSTUFF} /DELAYLOAD:\"fmodex${X64}.dll\"" )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if( ZDOOM_GENERATE_MAPFILE )
|
||||
set( LINKERSTUFF "${LINKERSTUFF} /MAP" )
|
||||
endif()
|
||||
|
@ -1520,17 +1533,23 @@ if( APPLE )
|
|||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/posix/osx/zdoom-info.plist" )
|
||||
|
||||
if( NOT NO_FMOD )
|
||||
if( FMOD_STUDIO )
|
||||
set( FMOD_DYLIB libfmod.dylib )
|
||||
else()
|
||||
set( FMOD_DYLIB libfmodex.dylib )
|
||||
endif()
|
||||
|
||||
# Fix fmod link so that it can be found in the app bundle.
|
||||
find_program( OTOOL otool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin" )
|
||||
find_program( INSTALL_NAME_TOOL install_name_tool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin" )
|
||||
execute_process( COMMAND "${OTOOL}" -L "${FMOD_LIBRARY}"
|
||||
COMMAND grep "libfmodex.dylib (compat"
|
||||
COMMAND grep "${FMOD_DYLIB} (compat"
|
||||
COMMAND head -n1
|
||||
COMMAND awk "{print $1}"
|
||||
OUTPUT_VARIABLE FMOD_LINK
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
add_custom_command( TARGET zdoom POST_BUILD
|
||||
COMMAND "${INSTALL_NAME_TOOL}" -change "${FMOD_LINK}" @executable_path/../Frameworks/libfmodex.dylib "$<TARGET_FILE:zdoom>"
|
||||
COMMAND "${INSTALL_NAME_TOOL}" -change "${FMOD_LINK}" @executable_path/../Frameworks/${FMOD_DYLIB} "$<TARGET_FILE:zdoom>"
|
||||
COMMENT "Relinking FMOD Ex" )
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -309,6 +309,11 @@ void FUDMFKeys::Sort()
|
|||
|
||||
FUDMFKey *FUDMFKeys::Find(FName key)
|
||||
{
|
||||
if (!mSorted)
|
||||
{
|
||||
mSorted = true;
|
||||
Sort();
|
||||
}
|
||||
int min = 0, max = Size()-1;
|
||||
|
||||
while (min <= max)
|
||||
|
|
|
@ -245,6 +245,7 @@ struct FUDMFKey
|
|||
|
||||
class FUDMFKeys : public TArray<FUDMFKey>
|
||||
{
|
||||
bool mSorted = false;
|
||||
public:
|
||||
void Sort();
|
||||
FUDMFKey *Find(FName key);
|
||||
|
|
|
@ -971,6 +971,7 @@ bool FMODSoundRenderer::Init()
|
|||
|
||||
#if FMOD_STUDIO
|
||||
FMOD_ADVANCEDSETTINGS advSettings = {};
|
||||
advSettings.cbSize = sizeof advSettings;
|
||||
advSettings.resamplerMethod = resampler;
|
||||
result = Sys->setAdvancedSettings(&advSettings);
|
||||
if (result != FMOD_OK)
|
||||
|
@ -1370,11 +1371,8 @@ void FMODSoundRenderer::PrintStatus()
|
|||
{
|
||||
FMOD_OUTPUTTYPE output;
|
||||
FMOD_SPEAKERMODE speakermode;
|
||||
FMOD_SOUND_FORMAT format;
|
||||
FMOD_DSP_RESAMPLER resampler;
|
||||
int driver;
|
||||
int samplerate;
|
||||
int numoutputchannels;
|
||||
unsigned int bufferlength;
|
||||
int numbuffers;
|
||||
|
||||
|
@ -1413,6 +1411,9 @@ void FMODSoundRenderer::PrintStatus()
|
|||
#endif
|
||||
}
|
||||
#if !FMOD_STUDIO
|
||||
FMOD_SOUND_FORMAT format;
|
||||
FMOD_DSP_RESAMPLER resampler;
|
||||
int numoutputchannels;
|
||||
if (FMOD_OK == Sys->getSoftwareFormat(&samplerate, &format, &numoutputchannels, NULL, &resampler, NULL))
|
||||
{
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer sample rate: " TEXTCOLOR_GREEN "%d\n", samplerate);
|
||||
|
@ -2758,6 +2759,16 @@ std::pair<SoundHandle,bool> FMODSoundRenderer::LoadSoundRaw(BYTE *sfxdata, int l
|
|||
exinfo.defaultfrequency = frequency;
|
||||
switch (bits)
|
||||
{
|
||||
#if FMOD_STUDIO
|
||||
case -8:
|
||||
// Need to convert sample data from signed to unsigned.
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
sfxdata[i] ^= 0x80;
|
||||
}
|
||||
|
||||
case 8:
|
||||
#else // !FMOD_STUDIO
|
||||
case 8:
|
||||
// Need to convert sample data from unsigned to signed.
|
||||
for (int i = 0; i < length; ++i)
|
||||
|
@ -2766,6 +2777,7 @@ std::pair<SoundHandle,bool> FMODSoundRenderer::LoadSoundRaw(BYTE *sfxdata, int l
|
|||
}
|
||||
|
||||
case -8:
|
||||
#endif // FMOD_STUDIO
|
||||
exinfo.format = FMOD_SOUND_FORMAT_PCM8;
|
||||
numsamples = length;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue