aboutsummaryrefslogtreecommitdiffstats
path: root/src/music.rs
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar /dev/urandom <johnfkennedymaili2p>2025-02-15 04:43:43 +0100
committerLibravatarLarge Libravatar /dev/urandom <johnfkennedymaili2p>2025-02-15 04:43:43 +0100
commit612349572f728c82dec3983d71020f98eb09d648 (patch)
treeb46d3daf0e3dedfad6c4cf35a1c3dbf2a6480209 /src/music.rs
parenta62d11357cca3b5063532f797f801cd002aff8bd (diff)
downloadcosin25-invite-mountainbytes-612349572f728c82dec3983d71020f98eb09d648.tar.gz
cosin25-invite-mountainbytes-612349572f728c82dec3983d71020f98eb09d648.tar.bz2
cosin25-invite-mountainbytes-612349572f728c82dec3983d71020f98eb09d648.tar.lz
cosin25-invite-mountainbytes-612349572f728c82dec3983d71020f98eb09d648.zip

feat: 32k no music

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);