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