From 52cbf0d1a6b6ff0c7712d4290bd914757566cd01 Mon Sep 17 00:00:00 2001 From: Nomango Date: Sun, 24 Sep 2023 17:11:51 +0800 Subject: [PATCH] feat(sound): sound player release function --- src/kiwano-audio/SoundPlayer.cpp | 5 +++++ src/kiwano-audio/SoundPlayer.h | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/kiwano-audio/SoundPlayer.cpp b/src/kiwano-audio/SoundPlayer.cpp index db48a810..3cd35d3d 100644 --- a/src/kiwano-audio/SoundPlayer.cpp +++ b/src/kiwano-audio/SoundPlayer.cpp @@ -155,6 +155,11 @@ void SoundPlayer::StopAll() } } +void SoundPlayer::ReleaseSound(size_t id) +{ + sound_cache_.erase(id); +} + void SoundPlayer::ClearCache() { sound_cache_.clear(); diff --git a/src/kiwano-audio/SoundPlayer.h b/src/kiwano-audio/SoundPlayer.h index 6ed8d8f6..1f9acf79 100644 --- a/src/kiwano-audio/SoundPlayer.h +++ b/src/kiwano-audio/SoundPlayer.h @@ -40,6 +40,8 @@ KGE_DECLARE_SMART_PTR(SoundPlayer); class KGE_API SoundPlayer : public ObjectBase { public: + using SoundMap = Map; + SoundPlayer(); ~SoundPlayer(); @@ -120,6 +122,15 @@ public: /// @brief Í£Ö¹ËùÓÐÒôƵ void StopAll(); + /// \~chinese + /// @brief ÊÍ·ÅÒôÀÖ¶ÔÏ󻺴æ + /// @param id ÒôƵ±êʶ·û + void ReleaseSound(size_t id); + + /// \~chinese + /// @brief »ñÈ¡»º´æ + const SoundMap& GetCache() const; + /// \~chinese /// @brief Çå³ý»º´æ void ClearCache(); @@ -127,10 +138,15 @@ public: private: float volume_; - using SoundMap = Map; SoundMap sound_cache_; }; /** @} */ + +inline const SoundPlayer::SoundMap& SoundPlayer::GetCache() const +{ + return sound_cache_; +} + } // namespace audio } // namespace kiwano