|
Toast Engine
|
Central FMOD system manager. More...
#include <audio_system.hpp>
Public Member Functions | |
| void | tick () noexcept |
| auto | loadBank (assets::Handle< assets::AudioBank > bank) const -> std::pair< FMOD_STUDIO_BANK *, std::vector< std::string > > |
| void | unloadBank (FMOD_STUDIO_BANK *) const |
| void | updateListenerAttributes (int id, glm::vec3 pos, glm::vec3 velocity, glm::vec3 forward, glm::vec3 up, std::optional< glm::vec3 > attenuation_override) |
| void | updateListenerWeight (int id, float weight) |
| void | setListenerPosition (int index, glm::vec3 pos) |
| auto | listenerPositions () const -> const std::vector< glm::vec3 > & |
| void | registerListener (toast::AudioListener &listener) |
| void | unregisterListener (toast::AudioListener &listener) |
| void | registerVolume (toast::AudioVolume &volume) |
| void | unregisterVolume (toast::AudioVolume &volume) |
| void | playEvent (std::string_view guid_str) |
| void | stopEvent (std::string_view guid_str, bool allow_fadeout) |
| void | pauseEvent (std::string_view guid_str, bool value) |
| void | setParameter (std::string_view guid_str, std::string_view name, float value) |
| void | setParameter (std::string_view guid_str, std::string_view name, bool value) |
| void | setVolume (std::string_view guid_str, float volume) |
| void | setPitch (std::string_view guid_str, float pitch) |
| auto | isEventPlaying (std::string_view guid_str) -> bool |
| void | setVcaVolume (std::string_view guid_str, float volume) |
| void | setBusVolume (std::string_view guid_str, float volume) |
| void | setPortVolume (std::string_view guid_str, float volume) |
| void | setSnapshotIntensity (std::string_view guid_str, float intensity) |
| void | setSnapshotEnabled (std::string_view guid_str, bool enabled) |
| auto | playEvent3D (std::string_view guid_str) -> uint64_t |
| void | stopEvent3D (uint64_t instance_id, bool allow_fadeout) |
| void | set3DAttributes (uint64_t instance_id, const glm::vec3 &pos, const glm::vec3 &vel, const glm::vec3 &fwd, const glm::vec3 &up) |
| void | set3DMinMaxDistance (uint64_t instance_id, float min_distance, float max_distance) |
| void | pauseEvent (uint64_t instance_id, bool value) |
| void | setParameter (uint64_t instance_id, std::string_view name, float value) |
| void | setParameter (uint64_t instance_id, std::string_view name, bool value) |
| void | setVolume (uint64_t instance_id, float volume) |
| void | setPitch (uint64_t instance_id, float pitch) |
| auto | isEventPlaying (uint64_t instance_id) -> bool |
| void | set3DOverrideAttenuation (uint64_t instance_id, float min_distance, float max_distance) |
| void | keyOffEvent (uint64_t instance_id) |
| auto | getTimelinePosition (uint64_t instance_id) -> int |
| void | setTimelinePosition (uint64_t instance_id, int ms) |
| void | setParameterByID (uint64_t instance_id, FMOD_STUDIO_PARAMETER_ID id, float value) |
| auto | getPlaybackState (uint64_t instance_id) -> FMOD_STUDIO_PLAYBACK_STATE |
| auto | getRawInstance (uint64_t instance_id) -> FMOD_STUDIO_EVENTINSTANCE * |
Static Public Member Functions | |
| static auto | get () noexcept -> AudioSystem & |
| static void | generateIntermediates (const std::filesystem::path &path) |
| Reads a strings bank's GUID/path table into cache://fmod/audio.json for the editor's importer. | |
Central FMOD system manager.
Maintains two instance models: 2D events share one FMOD instance per GUID (since you rarely play the same 2D event multiple times overlapping), while 3D events get a unique uint64 handle returned per play() call so you can track them independently. Listeners and volumes register themselves to coordinate spatial audio state each frame
|
static |
Reads a strings bank's GUID/path table into cache://fmod/audio.json for the editor's importer.