summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-05-23 22:16:11 +0000
committerCarl Hetherington <carl@carlh.net>2011-05-23 22:16:11 +0000
commit70b0748fc71e0aad987e1d6f4f7c4dcadf398cbf (patch)
tree87b1ef826fdc4d8560d8765620ec2a0062263df7 /doc
parentb6587ad160aec275004ea875846112b8d4724d3d (diff)
Attempt #46 to understand MIDI data locking.
git-svn-id: svn://localhost/ardour2/branches/3.0@9576 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'doc')
-rw-r--r--doc/classes/make.sh1
-rw-r--r--doc/classes/midi.dot41
2 files changed, 42 insertions, 0 deletions
diff --git a/doc/classes/make.sh b/doc/classes/make.sh
new file mode 100644
index 0000000000..d875677c04
--- /dev/null
+++ b/doc/classes/make.sh
@@ -0,0 +1 @@
+dot -Tsvg midi.dot > midi.svg
diff --git a/doc/classes/midi.dot b/doc/classes/midi.dot
new file mode 100644
index 0000000000..b82a912f72
--- /dev/null
+++ b/doc/classes/midi.dot
@@ -0,0 +1,41 @@
+digraph Ardour {
+ rankdir = BT
+ node [shape=box,arrowhead=normal,arrowtail=normal]
+
+ Evoral_Control [label=<
+Evoral::Control<br/>
+<font face="inconsolata" color="#0000ff">ControlList</font>
+>]
+ Evoral_ControlSet [label=<
+Evoral::ControlSet<br/>
+<font face="inconsolata" color="#ff0000">_control_lock</font><br/>
+<font face="inconsolata" color="#0000ff">map&lt;Parameter, Control&gt;</font>
+>]
+
+ Evoral_Sequence [label=<
+Evoral::Sequence<br/>
+<font face="inconsolata" color="#ff0000">_lock</font><br/>
+<font face="inconsolata" color="#aa0000">read_lock(): _lock</font><br/>
+<font face="inconsolata" color="#aa000">write_lock(): _lock, _control_lock</font><br/>
+<font face="inconsolata" color="#0000ff">Notes, Pitches, SysExes, PatchChanges</font>
+>]
+
+ Evoral_ControlList [label=<Evoral::ControlList<br/><font face="inconsolata" color="#ff0000">_lock</font>>]
+
+ ARDOUR_MidiModel [label=<
+ARDOUR::MidiModel<br/>
+<font face="inconsolata" color="#aa0000">edit_lock(): source mutex(), _lock, _control_lock</font><br/>
+<font face="inconsolata" color="#aa0000">write_lock(): _lock, _control_lock</font><br/>
+>]
+
+ "ARDOUR::Automatable" -> Evoral_ControlSet;
+ "ARDOUR::AutomatableSequence" -> "ARDOUR::Automatable";
+ "ARDOUR::AutomatableSequence" -> Evoral_Sequence;
+ Evoral_Sequence -> Evoral_ControlSet;
+ ARDOUR_MidiModel -> "ARDOUR::AutomatableSequence";
+
+ rank=same {Evoral_ControlSet; Evoral_Control; Evoral_ControlList}
+
+ Evoral_Control -> Evoral_ControlList [arrowhead=box];
+ Evoral_ControlSet -> Evoral_Control [arrowhead=box];
+}