Class System

Inheritance Relationships

Derived Type

Class Documentation

class System

Application-owned audio output and voice lifetime, independent of graphics.

Play/stream/control/maintenance/close are synchronized across producers. Playback progresses on the backend clock, without update or render admission. Device opening, decode and initial stream opening may block; prepare them outside latency-sensitive simulation work. Stream paths remain required until playback ends. No game callback runs from the native mixing thread. Destroy/close stops output and retires voices before native output state. The application settles producers before destroying this object. Surviving Voice handles remain safe. Subsequent system operations throw, except closed/close.

Subclassed by CE::Audio::Miniaudio::System

Public Functions

virtual ~System() = default
virtual std::shared_ptr<::CE::Audio::Voice> play(const ::CE::Audio::Clip &clip, ::CE::Audio::PlaybackOptions options = {}) = 0

Declaration: [[nodiscard]]

virtual std::shared_ptr<::CE::Audio::Voice> stream(const std::filesystem::path &file, ::CE::Audio::PlaybackOptions options = {}) = 0

Declaration: [[nodiscard]]

virtual void set_volume(float volume) = 0
virtual float volume() const = 0

Declaration: [[nodiscard]]

virtual void maintain() = 0
virtual void close() noexcept = 0
virtual bool closed() const = 0

Declaration: [[nodiscard]]