mirror of
https://codeberg.org/unspeaker/tek.git
synced 2026-02-21 16:29:04 +01:00
27 lines
892 B
Rust
27 lines
892 B
Rust
use crate::*;
|
|
|
|
/// Running JACK [AsyncClient] with maximum type erasure.
|
|
///
|
|
/// One [Box] contains function that handles [JackEvent]s.
|
|
///
|
|
/// Another [Box] containing a function that handles realtime IO.
|
|
///
|
|
/// That's all it knows about them.
|
|
pub type DynamicAsyncClient<'j>
|
|
= AsyncClient<DynamicNotifications<'j>, DynamicAudioHandler<'j>>;
|
|
|
|
/// Notification handler wrapper for [BoxedAudioHandler].
|
|
pub type DynamicAudioHandler<'j> =
|
|
ClosureProcessHandler<(), BoxedAudioHandler<'j>>;
|
|
|
|
/// Boxed realtime callback.
|
|
pub type BoxedAudioHandler<'j> =
|
|
Box<dyn FnMut(&Client, &ProcessScope) -> Control + Send + Sync + 'j>;
|
|
|
|
/// Notification handler wrapper for [BoxedJackEventHandler].
|
|
pub type DynamicNotifications<'j> =
|
|
JackNotify<BoxedJackEventHandler<'j>>;
|
|
|
|
/// Boxed [JackEvent] callback.
|
|
pub type BoxedJackEventHandler<'j> =
|
|
Box<dyn Fn(JackEvent) + Send + Sync + 'j>;
|