diff --git a/libs/audio/include/psemek/audio/engine.hpp b/libs/audio/include/psemek/audio/engine.hpp index 73128876..cdccc966 100644 --- a/libs/audio/include/psemek/audio/engine.hpp +++ b/libs/audio/include/psemek/audio/engine.hpp @@ -21,7 +21,7 @@ namespace psemek::audio std::shared_ptr load_raw(std::int16_t const * data, std::size_t sample_count, bool copy = true); std::shared_ptr load_wav(char const * data, std::size_t size); - std::shared_ptr play(std::shared_ptr s, bool loop = false); + std::shared_ptr play(std::shared_ptr s, bool start = true, bool loop = false); private: struct impl; diff --git a/libs/audio/source/engine.cpp b/libs/audio/source/engine.cpp index c5f2cc19..93bcee3e 100644 --- a/libs/audio/source/engine.cpp +++ b/libs/audio/source/engine.cpp @@ -274,9 +274,11 @@ namespace psemek::audio return std::make_shared(chunk); } - std::shared_ptr engine::play(std::shared_ptr s, bool loop) + std::shared_ptr engine::play(std::shared_ptr s, bool start, bool loop) { - return impl().play(std::move(s), loop); + auto str = impl().play(std::move(s), loop); + if (start) str->start(); + return str; } }