53 static std::unordered_map<types::sound_id_t, types::sound_t>
sounds;
62 static std::unordered_map<types::stream_id_t, types::stream_t>
streams;
64 static const std::string subsystem_name;
76 std::expected<void, subsystem::error>
initialize()
override;
84 std::expected<void, subsystem::error>
terminate()
override;
86 std::string
name()
override;
96 static audio &instance();
103 static std::expected<void, audio::error>
104 load(
const types::sound_id_t &sound_id,
105 const std::string &path,
106 const types::stream_id_t &stream_id =
"default");
111 static std::expected<void, audio::error>
112 play(
const types::sound_id_t &
id);
118 static std::expected<void, audio::error>
119 create_stream(
const types::stream_id_t &
id);
120 static types::stream_t *get_stream(
const types::stream_id_t &
id);
122 static std::expected<void, audio::error>
123 stream_stop(
const types::stream_id_t &
id);
124 static std::expected<void, audio::error>
125 stream_start(
const types::stream_id_t &
id);
131 static std::expected<void, audio::error>
140 static std::vector<std::pair<types::stream_id_t, float>> init_streams;
146 static std::vector<std::tuple<types::sound_id_t,
148 types::stream_id_t>> init_sounds;
150 static bool initialized;
161 std::vector<std::tuple<types::sound_id_t, std::string,
162 types::stream_id_t>> init_sounds;
163 std::vector<std::pair<types::stream_id_t, float>> init_streams;
171 builder &sound(
const types::sound_id_t &sound_id,
172 const std::string &path,
173 const types::stream_id_t &stream_id =
"default");
174 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.