From ec4db5c6cbf52ffd6424a3f58ef78f109297e6d3 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Mon, 21 Sep 2020 12:10:22 +0300 Subject: [PATCH] Support auto-starting streams --- libs/audio/include/psemek/audio/engine.hpp | 2 +- libs/audio/source/engine.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) 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; } }