use crate::node::ChannelConfig;
use crate::param::AudioParamEvent;
use crate::render::graph::Graph;
use crate::render::AudioProcessor;
use crate::context::AudioNodeId;
use crossbeam_channel::Sender;
pub(crate) enum ControlMessage {
RegisterNode {
id: AudioNodeId,
node: Box<dyn AudioProcessor>,
inputs: usize,
outputs: usize,
channel_config: ChannelConfig,
},
ConnectNode {
from: AudioNodeId,
to: AudioNodeId,
input: usize,
output: usize,
},
DisconnectNode { from: AudioNodeId, to: AudioNodeId },
DisconnectAll { from: AudioNodeId },
FreeWhenFinished { id: AudioNodeId },
AudioParamEvent {
to: Sender<AudioParamEvent>,
event: AudioParamEvent,
},
MarkCycleBreaker { id: AudioNodeId },
Shutdown { sender: Sender<Graph> },
Startup { graph: Graph },
}