mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 20:26:42 +01:00
30 lines
789 B
Rust
30 lines
789 B
Rust
use super::*;
|
|
|
|
/// Trait for things that have a JACK process callback.
|
|
pub trait Process {
|
|
fn process (&mut self, _: &Client, _: &ProcessScope) -> Control {
|
|
Control::Continue
|
|
}
|
|
}
|
|
|
|
/// Define the JACK process callback associated with a struct.
|
|
#[macro_export] macro_rules! process {
|
|
($T:ty) => {
|
|
impl Process for $T {}
|
|
};
|
|
($T:ty |$self:ident, $c:ident, $s:ident|$block:tt) => {
|
|
impl Process for $T {
|
|
fn process (&mut $self, $c: &Client, $s: &ProcessScope) -> Control {
|
|
$block
|
|
}
|
|
}
|
|
};
|
|
($T:ty = $process:path) => {
|
|
impl Process for $T {
|
|
fn process (&mut self, c: &Client, s: &ProcessScope) -> Control {
|
|
$process(self, c, s)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|