aboutsummaryrefslogtreecommitdiffstats
path: root/src/music.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/music.rs')
-rw-r--r--src/music.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/music.rs b/src/music.rs
index 0f0f7e7..fe48989 100644
--- a/src/music.rs
+++ b/src/music.rs
@@ -1,12 +1,16 @@
+#[cfg(all(feature = "music", not(feature = "32k")))]
use sdl2::audio::AudioCallback;
+#[cfg(all(feature = "music", not(feature = "32k")))]
use crate::vendored::micromod::MmC2r;
+#[cfg(all(feature = "music", not(feature = "32k")))]
pub struct Music {
pub pcm: Vec<i16>,
pub offset: usize,
}
+#[cfg(all(feature = "music", not(feature = "32k")))]
impl AudioCallback for Music {
type Channel = f32;
@@ -22,6 +26,7 @@ impl AudioCallback for Music {
}
}
+#[cfg(all(feature = "music", not(feature = "32k")))]
pub fn mmc2r_to_pcm(state: &mut MmC2r) -> Vec<i16> {
let mut destination = Vec::<i16>::new();
loop {
@@ -35,6 +40,8 @@ pub fn mmc2r_to_pcm(state: &mut MmC2r) -> Vec<i16> {
}
destination
}
+
+#[cfg(all(feature = "music", not(feature = "32k")))]
pub fn pcm_to_f32pcm(input: &[i16], output: &mut [f32], len: usize) {
for i in 0..len {
output[i] = f32::from(input[i]) / f32::from(0x7FFF as i16);