51 static std::unordered_map<types::sound_id_t, types::sound_t>
sounds;
60 static std::unordered_map<types::stream_id_t, types::stream_t>
streams;
62 static const std::string subsystem_name;
74 std::expected<void, subsystem::error>
initialize()
override;
82 std::expected<void, subsystem::error>
terminate()
override;
84 std::string
name()
override;
94 static audio &instance();
101 static std::expected<void, audio::error>
102 load(
const types::sound_id_t &sound_id,
103 const std::string &path,
104 const types::stream_id_t &stream_id =
"default");
109 static std::expected<void, audio::error>
110 play(
const types::sound_id_t &
id);
116 static std::expected<void, audio::error>
117 create_stream(
const types::stream_id_t &
id);
118 static types::stream_t *get_stream(
const types::stream_id_t &
id);
120 static std::expected<void, audio::error>
121 stream_stop(
const types::stream_id_t &
id);
123 static std::expected<void, audio::error>
124 stream_start(
const types::stream_id_t &
id);
130 static std::expected<void, audio::error>
139 static std::vector<std::pair<types::stream_id_t, float>> init_streams;
145 static std::vector<std::tuple<types::sound_id_t,
147 types::stream_id_t>> init_sounds;
149 static bool initialized;
160 std::vector<std::tuple<types::sound_id_t, std::string,
161 types::stream_id_t>> init_sounds;
162 std::vector<std::pair<types::stream_id_t, float>> init_streams;
170 builder &sound(
const types::sound_id_t &sound_id,
171 const std::string &path,
172 const types::stream_id_t &stream_id =
"default");
173 builder &stream(
const types::stream_id_t &
id,
static std::expected< void, audio::error > load(const types::sound_id_t &sound_id, const std::string &path, const types::stream_id_t &stream_id="default")
Load a sound from path on a stream.