3 node [shape=box,arrowhead=normal,arrowtail=normal]
5 Evoral_Control [label=<
7 <font face="inconsolata" color="#0000ff">ControlList</font>
9 Evoral_ControlSet [label=<
10 Evoral::ControlSet<br/>
11 <font face="inconsolata" color="#ff0000">_control_lock</font><br/>
12 <font face="inconsolata" color="#0000ff">map<Parameter, Control></font>
15 Evoral_Sequence [label=<
17 <font face="inconsolata" color="#ff0000">_lock</font><br/>
18 <font face="inconsolata" color="#aa0000">read_lock(): _lock</font><br/>
19 <font face="inconsolata" color="#aa000">write_lock(): _lock, _control_lock</font><br/>
20 <font face="inconsolata" color="#0000ff">Notes, Pitches, SysExes, PatchChanges</font>
23 Evoral_ControlList [label=<Evoral::ControlList<br/><font face="inconsolata" color="#ff0000">_lock</font>>]
25 ARDOUR_MidiModel [label=<
26 ARDOUR::MidiModel<br/>
27 <font face="inconsolata" color="#aa0000">edit_lock(): source mutex(), _lock, _control_lock</font><br/>
28 <font face="inconsolata" color="#aa0000">write_lock(): _lock, _control_lock</font><br/>
31 "ARDOUR::Automatable" -> Evoral_ControlSet;
32 "ARDOUR::AutomatableSequence" -> "ARDOUR::Automatable";
33 "ARDOUR::AutomatableSequence" -> Evoral_Sequence;
34 Evoral_Sequence -> Evoral_ControlSet;
35 ARDOUR_MidiModel -> "ARDOUR::AutomatableSequence";
37 rank=same {Evoral_ControlSet; Evoral_Control; Evoral_ControlList}
39 Evoral_Control -> Evoral_ControlList [arrowhead=box];
40 Evoral_ControlSet -> Evoral_Control [arrowhead=box];