diff --git a/engine/Cargo.toml b/engine/Cargo.toml index 3e2f71e..9c1f29d 100644 --- a/engine/Cargo.toml +++ b/engine/Cargo.toml @@ -4,5 +4,10 @@ version = "0.1.0" edition = "2024" [dependencies] -jack = "0.13.3" +coreaudio-rs = { version = "0.13.0", optional = true } +jack = {version = "0.13.3", optional = true } lib = { path = "../lib/" } + +[features] +jack = ["dep:jack"] +coreaudio = ["dep:coreaudio-rs"] diff --git a/engine/src/audio_engine/coreaudio.rs b/engine/src/audio_engine/coreaudio.rs new file mode 100644 index 0000000..e69de29 diff --git a/engine/src/audio_engine/jack.rs b/engine/src/audio_engine/jack.rs new file mode 100644 index 0000000..e69de29 diff --git a/engine/src/audio_engine/mod.rs b/engine/src/audio_engine/mod.rs new file mode 100644 index 0000000..69b27b7 --- /dev/null +++ b/engine/src/audio_engine/mod.rs @@ -0,0 +1,12 @@ +mod jack; +mod coreaudio; + +trait AudioBackend { + // Start a audio backend client + // It should be executed either on the startup, + // or when the audio backend is switched + fn start_client(); + // Initialization of the client should happen + // when a project is opened. + fn init_client(); +} diff --git a/engine/src/main.rs b/engine/src/main.rs index 0946363..4a0abbb 100644 --- a/engine/src/main.rs +++ b/engine/src/main.rs @@ -1,3 +1,5 @@ +mod audio_engine; + use lib::{self, metadata::Metadata, track::Track}; fn main() {