Updated android audio device/buffers/souce to support creation of procedural data from a sound source. Tested with MOD replay in QA test level.
#codereview daniel.lamb, chris.babcock, dmitry.rekman
[CL 2276233 by Robert Jones in Main branch]
Changed the routine which decides which format so that it only does the compare once and then returns that value for the whole cook.
#codereview Daniel.Lamb, Chris.Babcock
[CL 2262575 by Robert Jones in Main branch]
Added support for ADPCM decoding.
Added 'sound type' information to USoundWave
- Android uses this to detect which type of asset it needs to deal with
Added support for selected encoding type via project settings
#codereview Daniel.Lamb, Chris.Babcock
[CL 2260750 by Robert Jones 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]
Moved most of the contents of FAudioDevice::FreeResource to USoundWave::FreeResources so that we can be sure that all memory is cleared up during teardown.
Removed FreeResource function from some subclasses of audio device, as they weren't doing anything different than the base one.
Also removed ListSounds function from these same classes as that seems to have fallen behind current base class version and isn't used anyway.
Removed platform specific audio buffer storage so that there isn't confusion about which is being used and ensured that casts are used when necessary.
Fixed compile issue with STAT_AudioResourceCreationTime for HTML5.
[CL 2109273 by Matthew Griffin in Main branch]
Followed pattern set out by texture streaming so that each chunk of audio data resides in its own bulkdata struct. It is currently possible to split audio into chunks when SoundWaves are marked for streaming but there is no way of doing this exposed at present.
Changed the parameters of FAudioDevice::GetRuntimeFormat so that the relevant SoundWave must be passed in, to allow for different formats for individual sounds/streaming options.
USoundWave::FreeResources no longer resets the NumChannels as it is unnecessary and causes sounds to be unable to play after the OGG data is flushed when attempting to switch to OPUS.
[CL 2099012 by Matthew Griffin in Main branch]
Fixes TTP #336826 where DTYPE_Realtime soundwaves were silently failing in OpenAL under Linux (and perhaps HTML5, too). May also help other platforms (IOS?) where DTYPE_Realtime is not implemented.
#codereview Matthew.Griffin, Marc.Audy
[CL 2088573 by Dmitry Rekman in Main branch]
Up until this change, project settings caused a lot of confusion amongst users, because they were changed to the user's local INI files. The local INI files, however, would be ignored when packaging a project, which means that local setting changes would not be applied to a packaged project and cause unexpected behavior. With this change the project settings will always save to the default INI file and will therefore be included in packaged projects. We will see how this works out for everyone, and we may change this behavior to something else if we can come up with a better, more intuitive workflow for project settings.
Upgrade Notes:
- If you have changes for Project Settings in your local INI files, you may want to 'Set as Default' in the Editor and then delete the local INI
- The default INI files (i.e. DefaultEngine.ini) of your project need to be writable. If you use source control, make sure you check out the corresponding files before changing project settings
[CL 2066019 by Max Preussner in Main branch]
Moved functions to check for and select Compressed Audio Info class to the audio device as the audio formats are not accessible in cooked builds (and shouldn't really need to be either).
[CL 2057758 by Matthew Griffin in Main branch]
Added ShowLeaderboardUI function to IOnlineExternalUI, blueprint-callable functions now use this to show UIs
Added ExternalUIInterface for iOS Game Center, blueprint-callable functions now use it instead of platform-specific hacks
Added leaderboard interface for Android/Google Play, blueprint-callable functions now use this instead of hacks
Expose the Google Play leaderboard ID mapping to the editor instead of being hidden in a random JSON file
Fix the TappyChicken leaderboard mapping and removed the JSON file
#codereview jj.hoesing
[CL 2056915 by Ryan Gerleve in Main branch]