Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer

# Conflicts:
#	autobuild.xml
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/FMODSTUDIO.cmake
#	indra/llaudio/llaudioengine_fmodstudio.cpp
#	indra/llaudio/llaudioengine_fmodstudio.h
#	indra/llaudio/llstreamingaudio_fmodstudio.cpp
#	indra/llaudio/llstreamingaudio_fmodstudio.h
#	indra/newview/CMakeLists.txt
#	indra/newview/app_settings/settings.xml
#	indra/newview/llstartup.cpp
#	indra/newview/llvieweraudio.cpp
#	indra/newview/viewer_manifest.py
master
Ansariel 2024-02-09 01:42:36 +01:00
commit 9921407875
8 changed files with 39 additions and 17 deletions

View File

@ -217,6 +217,10 @@ elseif(DARWIN)
set(release_files ${release_files} libfmod.dylib)
endif ()
if (TARGET ll::openal)
list(APPEND release_files libalut.dylib libopenal.dylib)
endif ()
elseif(LINUX)
# linux is weird, multiple side by side configurations aren't supported
# and we don't seem to have any debug shared libs built yet anyways...

View File

@ -39,6 +39,9 @@ if (USE_OPENAL)
alut
)
else()
message(FATAL_ERROR "OpenAL is not available for this platform")
target_link_libraries( ll::openal INTERFACE
openal
alut
)
endif()
endif ()

View File

@ -528,7 +528,7 @@ void LLAudioEngine_OpenAL::updateWind(LLVector3 wind_vec, F32 camera_altitude)
}
alBufferData(buffer,
AL_FORMAT_STEREO16,
AL_FORMAT_STEREO_FLOAT32,
mWindGen->windGenerate(mWindBuf,
mWindBufSamples),
mWindBufBytes,

View File

@ -57,9 +57,9 @@ class LLAudioEngine_OpenAL : public LLAudioEngine
/*virtual*/ void updateWind(LLVector3 direction, F32 camera_altitude);
private:
typedef S16 WIND_SAMPLE_T;
typedef F32 WIND_SAMPLE_T;
LLWindGen<WIND_SAMPLE_T> *mWindGen;
S16 *mWindBuf;
F32 *mWindBuf;
U32 mWindBufFreq;
U32 mWindBufSamples;
U32 mWindBufBytes;

View File

@ -32,6 +32,7 @@
#include "AL/al.h"
#include "AL/alut.h"
#include "AL/alext.h"
class LLListener_OpenAL : public LLListener
{

View File

@ -415,7 +415,7 @@ public:
GetUserNameA(szUserName, &dwSize);
this->m_parent->OnSymInit(buf, symOptions, szUserName);
return false;
return true;
}
StackWalker *m_parent;

View File

@ -667,18 +667,13 @@ void audio_update_wind(bool force_update)
// don't use the setter setMaxWindGain() because we don't
// want to screw up the fade-in on startup by setting actual source gain
// outside the fade-in.
// <FS:Ansariel> Use faster LLCachedControls for frequently visited locations
//F32 master_volume = gSavedSettings.getBOOL("MuteAudio") ? 0.f : gSavedSettings.getF32("AudioLevelMaster");
//F32 ambient_volume = gSavedSettings.getBOOL("MuteAmbient") ? 0.f : gSavedSettings.getF32("AudioLevelAmbient");
static LLCachedControl<bool> muteAudio(gSavedSettings, "MuteAudio");
static LLCachedControl<bool> muteAmbient(gSavedSettings, "MuteAmbient");
static LLCachedControl<F32> audioLevelMaster(gSavedSettings, "AudioLevelMaster");
static LLCachedControl<F32> audioLevelAmbient(gSavedSettings, "AudioLevelAmbient");
static LLCachedControl<bool> mute_audio(gSavedSettings, "MuteAudio");
static LLCachedControl<bool> mute_ambient(gSavedSettings, "MuteAmbient");
static LLCachedControl<F32> level_master(gSavedSettings, "AudioLevelMaster");
static LLCachedControl<F32> level_ambient(gSavedSettings, "AudioLevelAmbient");
F32 master_volume = muteAudio ? 0.f : (F32)audioLevelMaster;
F32 ambient_volume = muteAmbient ? 0.f : (F32)audioLevelAmbient;
// </FS:Ansariel>
F32 master_volume = mute_audio() ? 0.f : level_master();
F32 ambient_volume = mute_ambient() ? 0.f : level_ambient();
F32 max_wind_volume = master_volume * ambient_volume;
const F32 WIND_SOUND_TRANSITION_TIME = 2.f;

View File

@ -1245,6 +1245,14 @@ class Darwin_x86_64_Manifest(ViewerManifest):
# ):
# dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
# # OpenAL dylibs
# if self.args['openal'] == 'ON':
# for libfile in (
# "libopenal.dylib",
# "libalut.dylib",
# ):
# dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
# # our apps
# executable_path = {}
# embedded_apps = [ (os.path.join("llplugin", "slplugin"), "SLPlugin.app") ]
@ -1549,9 +1557,20 @@ class Darwin_x86_64_Manifest(ViewerManifest):
for libfile in (
"libfmod.dylib",
):
print("debug: adding {} to dylibs for fmodstudio".format(path_optional(os.path.join(relpkgdir, libfile), libfile)))
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
# OpenAL dylibs
useopenal = self.args['openal'].lower()
print(f"debug: openal={useopenal}")
if useopenal == 'on':
for libfile in (
"libopenal.dylib",
"libalut.dylib",
):
print("debug: adding {} to dylibs for openal".format(path_optional(os.path.join(relpkgdir, libfile), libfile)))
dylibs += path_optional(os.path.join(relpkgdir, libfile), libfile)
print(f"debug: dylibs = {dylibs}")
# our apps