micro_games_kit/
audio.rs

1use kira::{
2    manager::{AudioManager, AudioManagerSettings},
3    sound::static_sound::{StaticSoundData, StaticSoundHandle},
4};
5use std::collections::HashMap;
6
7pub struct Audio {
8    pub manager: AudioManager,
9    pub sounds: HashMap<String, StaticSoundData>,
10}
11
12impl Default for Audio {
13    fn default() -> Self {
14        Self {
15            manager: AudioManager::new(AudioManagerSettings::default()).unwrap(),
16            sounds: Default::default(),
17        }
18    }
19}
20
21impl Audio {
22    pub fn play(&mut self, id: &str) -> Option<StaticSoundHandle> {
23        self.manager.play(self.sounds.get(id)?.clone()).ok()
24    }
25}