From 8ccde4e7c0b0884d32aded2a98d2187f19682c36 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Mon, 24 Nov 2025 10:14:22 -0500 Subject: audio: add scheduling, and optimize atomic operations --- audio/src/data.rs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'audio/src/data.rs') diff --git a/audio/src/data.rs b/audio/src/data.rs index 9ed8019..f130c2d 100644 --- a/audio/src/data.rs +++ b/audio/src/data.rs @@ -1,43 +1,48 @@ -use crate::program::Program; +use crate::program::Track; use std::fs; macro_rules! load_asm { - ($path:tt) => {{ + ($looping:tt, $path:tt) => {{ let res = if cfg!(any(feature = "static", target_arch = "wasm32")) { let src = include_str!(concat!("../../", $path)); - Program::parse(src, true) + Track::parse(src, $looping) } else { let src = fs::read_to_string($path)?; - Program::parse(&src, true) + Track::parse(&src, $looping) }; res.map_err(|mut err| { err.file = Some(String::from($path)); err })? }}; - ($first:tt, $($arg:tt),*) => { - load_asm!($first)$(.merge(load_asm!($arg)))* + ($looping:tt, $first:tt, $($arg:tt),*) => { + load_asm!($looping, $first)$(.merge(load_asm!($looping, $arg)))* }; } pub struct Data { - pub explore: Program, - pub megalovania: Program, + pub explore: Track, + pub megalovania: Track, + pub test: Track, } impl Data { pub fn load() -> crate::Result { let explore = load_asm!( + true, "assets/asm/explore_melody.asm", "assets/asm/explore_harmony1.asm", "assets/asm/explore_harmony2.asm" ); let megalovania = load_asm!( + true, "assets/asm/megalovania_melody.asm", "assets/asm/megalovania_base.asm" ); + let test = load_asm!(false, "assets/asm/test.asm"); Ok(Self { explore, megalovania, + test, }) } } -- cgit v1.2.3-freya