micro_games_kit/
audio.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use kira::{
    manager::{AudioManager, AudioManagerSettings},
    sound::static_sound::{StaticSoundData, StaticSoundHandle},
};
use std::collections::HashMap;

pub struct Audio {
    pub manager: AudioManager,
    pub sounds: HashMap<String, StaticSoundData>,
}

impl Default for Audio {
    fn default() -> Self {
        Self {
            manager: AudioManager::new(AudioManagerSettings::default()).unwrap(),
            sounds: Default::default(),
        }
    }
}

impl Audio {
    pub fn play(&mut self, id: &str) -> Option<StaticSoundHandle> {
        self.manager.play(self.sounds.get(id)?.clone()).ok()
    }
}