- Mostly coming from MatthewL with changes.
- UE-19705 (getting MAC) - reworked to use ioctl
- UE-14633: IsFirstInstance is now a function on Linux
- UE-16061:dummy windows shouldn't be visible in the task bar.
- UE-18217 fixed.
- Unnecessary printf() removed.
- Set output to non-cached if running under debugger.
#platformnotify Josh.Adams
[CL 2698549 by Dmitry Rekman in Main branch]
- The code that handles initial setup (command line processing, rlimits and debugger) is now shared between engine, UFE and SlateViewer.
[CL 2679796 by Dmitry Rekman in Main branch]
- Added stubs per platform in their ini file that doesn't change volume, except for mac which this bug is about and for which I reduced the volume by -6 dB. This can be changed by designers as per needed for their game per platform. The final headroom should be set by designers.
- Removed the hard-coded headroom constant used in OpenAL recently added.
[CL 2611741 by Aaron McLeran in Main branch]
- 3d audio was fundamnetally broken in HTML5 and Linux for a long time (probably since original port from UE3)
- Fix is to do 3d spatialization math the same way we do it on XAudio2 (i.e. transform to listener-space then do relative source position from there)
- Since HTML5 and Linux *both* use nearly identical OpenAL implementations (and Linux has been fixed by users for a few issues), I decided to nuke the HTML5 implementation and instead link to the Linux implementation. Not sure if we should move the linux OpenAL implementation to a different folder, but it turned out not to matter for packing and testing HTML5
- Also went ahead and added a -3dB headroom factor to reduce volume overall with OpenAL implementation since it was louder than the XAudio2 implementation. I didn't do any technical measurements to come up with this headroom factor, just ear-balled it. We can do something more precise if needed.
- Tested this fix using a simple test-map of a single looping sound source. It was obviously broken (i.e. not panning) and is now obviously fixed.
[CL 2611557 by Aaron McLeran in Main branch]
- Contributed by slonopotamus.
- HardwareDevice can be null if the initialization (e.g. alcOpenDevice()) fails.
#codereview Aaron.McLeran
[CL 2581755 by Dmitry Rekman in Main branch]
- Created audio device manager which manages weak ref handles to audio devices
- Audio device handles are created with WorldContexts and accessed through UWorld objects
- All access to audio devices are now through audio device handles
- There is a main/default audio device for GEngine for use with the Editor and single worldcontext games
#codereview marc.audy, matthew.griffin
[CL 2477046 by Aaron McLeran in Main branch]
Removed GVolumeMultiplier and added an equivalent to FApp to contain the code to load the unfocused volume multiplier from config.
UE-4449 - Allow users to choose whether audio can be heard when focus is lost
#codereview Robert.Manuszewski
[CL 2341022 by Matthew Griffin in Main branch]
New files added to contain FVorbisAudioInfo and FOpusAudioInfo, added all necessary includes
Added a few more checks for whether the target platform supports audio streaming where appropriate
Moved #define to .h file as it was being used in two .cpp files (working because of unity build)
[CL 2137973 by Matthew Griffin in Main branch]
Duplicate ResourceID would have caused the same problems in HTML5 and Linux as Android. Other duplications are errors waiting to happen, there are a couple of stats functions that could be using the base class versions and not displaying the correct information.
[CL 2119229 by Matthew Griffin in Main branch]