From 2274d33e469aca544a7aeb899a10769b973ae374 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sat, 22 Nov 2025 13:29:10 -0500 Subject: audio: refactor into seperate crate --- audio/src/data.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 audio/src/data.rs (limited to 'audio/src/data.rs') diff --git a/audio/src/data.rs b/audio/src/data.rs new file mode 100644 index 0000000..2d1bdc5 --- /dev/null +++ b/audio/src/data.rs @@ -0,0 +1,30 @@ +use crate::program::Program; +use std::fs; + +macro_rules! load_asm { + ($path:tt) => {{ + if cfg!(any(feature = "static", target_arch = "wasm32")) { + let src = include_str!(concat!("../../", $path)); + Program::parse(src, true)? + } else { + let src = fs::read_to_string($path)?; + Program::parse(&src, true)? + } + }}; + ($first:tt, $($arg:tt)*) => { + load_asm!($first)$(.merge(load_asm!($arg)))* + }; +} + +pub struct Data { + pub megalovania: Program, +} +impl Data { + pub fn load() -> crate::Result { + let megalovania = load_asm!( + "assets/asm/megalovania_melody.asm", + "assets/asm/megalovania_base.asm" + ); + Ok(Self { megalovania }) + } +} -- cgit v1.2.3-freya