// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #pragma once #include #include class AbstractSoundsPlayer { public: enum class State { Playing, Paused, Stopped }; using AudioStoppedCallback = std::function; virtual bool play(const std::string &path, AudioStoppedCallback cb = nullptr) = 0; virtual bool pause() = 0; virtual bool resume() = 0; virtual bool stop() = 0; virtual bool stop(audio::Token token) = 0; virtual bool isInState(State state) const noexcept = 0; virtual bool previouslyPlayed(const std::string &filePath) const = 0; };