MCPcopy Create free account
hub / github.com/BillyDM/Firewheel / new

Method new

examples/custom_nodes/src/system.rs:28–71  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

26
27impl AudioSystem {
28 pub fn new() -> Self {
29 let mut cx = FirewheelContext::new(Default::default());
30 let stream = CpalStream::new(&mut cx, Default::default()).unwrap();
31
32 let noise_gen_node = NoiseGenNode::default();
33 let filter_node = FilterNode::default();
34 let rms_node = FastRmsNode::default();
35
36 let noise_gen_node_id = cx
37 .add_node(noise_gen_node, None)
38 .expect("Noise gen node should construct without error");
39 let filter_node_id = cx
40 .add_node(filter_node, None)
41 .expect("Filter node should construct without error");
42 let rms_node_id = cx
43 .add_node(rms_node, None)
44 .expect("RMS node should construct without error");
45
46 let graph_out_node_id = cx.graph_out_node_id();
47
48 cx.connect(noise_gen_node_id, filter_node_id, &[(0, 0)], false)
49 .unwrap();
50 cx.connect(filter_node_id, rms_node_id, &[(0, 0)], false)
51 .unwrap();
52 cx.connect(filter_node_id, graph_out_node_id, &[(0, 0), (0, 1)], false)
53 .unwrap();
54
55 let rms_node_state = cx.node_state::<FastRmsState>(rms_node_id).unwrap().clone();
56
57 Self {
58 cx,
59 stream,
60 noise_gen_node: Memo::new(noise_gen_node),
61 filter_node: Memo::new(filter_node),
62 rms_node: Memo::new(rms_node),
63 rms_node_state,
64 noise_gen_node_id,
65 filter_node_id,
66 rms_node_id,
67 noise_gen_bypassed: false,
68 filter_bypassed: false,
69 rms_bypassed: false,
70 }
71 }
72
73 pub fn update(&mut self) {
74 // Update the firewheel context.

Callers

nothing calls this directly

Calls 4

add_nodeMethod · 0.45
graph_out_node_idMethod · 0.45
connectMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected