diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-06-25 07:51:48 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-06-26 07:55:51 +0200 |
| commit | 9d67e3a6e1304062ba40993077ce0617565b9df9 (patch) | |
| tree | 1c450778a244d90b0f9b82a6be402ed299eced79 | |
| parent | 48430e85aaafe341f8bf00a90b4723c332322201 (diff) | |
| download | mum-9d67e3a6e1304062ba40993077ce0617565b9df9.tar.gz | |
store num channels on sound effects
| -rw-r--r-- | mumd/src/audio/sound_effects.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/mumd/src/audio/sound_effects.rs b/mumd/src/audio/sound_effects.rs index 34a7b84..14727f3 100644 --- a/mumd/src/audio/sound_effects.rs +++ b/mumd/src/audio/sound_effects.rs @@ -20,6 +20,8 @@ use crate::audio::SAMPLE_RATE; pub struct SoundEffects { data: Vec<Vec<f32>>, loaded_paths: HashMap<PathBuf, usize>, + + num_channels: usize, } impl fmt::Debug for SoundEffects { @@ -31,10 +33,11 @@ impl fmt::Debug for SoundEffects { } impl SoundEffects { - pub fn new() -> Self { + pub fn new(num_channels: usize) -> Self { SoundEffects { - data: Vec::new(), + data: vec![unpack_audio(get_default_sfx(), AudioFileKind::Wav).unwrap().0], loaded_paths: HashMap::new(), + num_channels, } } @@ -42,7 +45,7 @@ impl SoundEffects { let idx = match self.loaded_paths.entry(path.as_ref().to_owned()) { Entry::Occupied(o) => *o.get(), Entry::Vacant(v) => { - if let Ok(samples) = open_and_unpack_audio(v.key(), 2) { + if let Ok(samples) = open_and_unpack_audio(v.key(), self.num_channels) { let idx = self.data.len(); self.data.push(samples); v.insert(idx); |
