Add documentation about Sound Manager and Audio Manager architecture
[staging/soundmanager.git] / doc / parts / seq_initialization.svg
diff --git a/doc/parts/seq_initialization.svg b/doc/parts/seq_initialization.svg
new file mode 100644 (file)
index 0000000..18cc0bb
--- /dev/null
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="992px" preserveAspectRatio="none" style="width:1276px;height:992px;background:#EEEBDC;" version="1.1" viewBox="0 0 1276 992" width="1276px" zoomAndPan="magnify"><defs><filter height="300%" id="f1dii61ex93pkt" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#EEEBDC" height="970.2031" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="328" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="342.5" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="970.2031" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="505.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="634.5" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="970.2031" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="970.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="985" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="264.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="442.4063"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="29.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="260.5" y="413.2734"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="196.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="260.5" y="510.5391"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="64.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="394" y="735.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="394" y="854.0703"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="582" y="854.0703"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="343.6016" style="stroke: #404040; stroke-width: 1.0;" width="10" x="723.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="135.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="723.5" y="664.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="723.5" y="893.2031"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="855.5" y="625.8047"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="93.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="260.2031"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="122.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="359.1406"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="153.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="539.6719"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="98.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1203.5" y="192.0703"/><rect fill="#EEEBDC" filter="url(#f1dii61ex93pkt)" height="471.8359" style="stroke: #000000; stroke-width: 2.0;" width="1251.5" x="13" y="100.9688"/><rect fill="#EEEBDC" height="249.4688" style="stroke: none; stroke-width: 1.0;" width="1251.5" x="13" y="323.3359"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="60" x2="60" y1="83.9688" y2="980.2031"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="265" x2="265" y1="83.9688" y2="980.2031"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="399" x2="399" y1="83.9688" y2="980.2031"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="586.5" x2="586.5" y1="83.9688" y2="980.2031"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="728.5" x2="728.5" y1="83.9688" y2="980.2031"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="860.5" x2="860.5" y1="83.9688" y2="980.2031"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1034.5" x2="1034.5" y1="83.9688" y2="980.2031"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1208.5" x2="1208.5" y1="83.9688" y2="980.2031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="23" y="81.1387">Application</text><ellipse cx="60.5" cy="13" fill="#FFFACD" filter="url(#f1dii61ex93pkt)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M60.5,21 L60.5,48 M47.5,29 L73.5,29 M60.5,48 L47.5,63 M60.5,48 L73.5,63 " fill="#FFFACD" filter="url(#f1dii61ex93pkt)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="209" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="216" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="332" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="339" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="509.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="516.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="674.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="681.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="792.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="799.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="974.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="981.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1162.5" y="81.1387">Audio Domain</text><ellipse cx="1208.5" cy="13" fill="#FFFACD" filter="url(#f1dii61ex93pkt)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1208.5,21 L1208.5,48 M1195.5,29 L1221.5,29 M1208.5,48 L1195.5,63 M1208.5,48 L1221.5,63 " fill="#FFFACD" filter="url(#f1dii61ex93pkt)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="264.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="442.4063"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="29.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="260.5" y="413.2734"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="196.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="260.5" y="510.5391"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="64.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="394" y="735.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="394" y="854.0703"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="582" y="854.0703"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="343.6016" style="stroke: #404040; stroke-width: 1.0;" width="10" x="723.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="135.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="723.5" y="664.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="723.5" y="893.2031"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="855.5" y="625.8047"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="93.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="260.2031"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="122.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="359.1406"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="153.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1029.5" y="539.6719"/><rect fill="#00FF00" filter="url(#f1dii61ex93pkt)" height="98.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1203.5" y="192.0703"/><rect fill="none" height="471.8359" style="stroke: #000000; stroke-width: 2.0;" width="1251.5" x="13" y="100.9688"/><polygon fill="#EEEEEE" points="13,100.9688,77,100.9688,77,105.9688,67,115.9688,13,115.9688,13,100.9688" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="28" y="113.1074">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="196" x="92" y="113.1792">[Domain Type = DSP/Amplifier]</text><polygon fill="#000000" points="1017.5,133.9375,1027.5,137.9375,1017.5,141.9375,1021.5,137.9375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="733.5" x2="1023.5" y1="137.9375" y2="137.9375"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="740.5" y="133.0044">setRoutingReady()</text><polygon fill="#000000" points="1191.5,188.0703,1201.5,192.0703,1191.5,196.0703,1195.5,192.0703" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1039.5" x2="1197.5" y1="192.0703" y2="192.0703"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="1046.5" y="187.1372">setRoutingReady()</text><polygon fill="#000000" points="744.5,227.2031,734.5,231.2031,744.5,235.2031,740.5,231.2031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="738.5" x2="1033.5" y1="231.2031" y2="231.2031"/><polygon fill="#000000" points="1050.5,256.2031,1040.5,260.2031,1050.5,264.2031,1046.5,260.2031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1044.5" x2="1202.5" y1="260.2031" y2="260.2031"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="145" x="1056.5" y="255.27">confirmRoutingReady()</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="13" x2="1264.5" y1="324.3359" y2="324.3359"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="182" x="18" y="334.5464">[Domain Type = Application]</text><polygon fill="#000000" points="1017.5,355.1406,1027.5,359.1406,1017.5,363.1406,1021.5,359.1406" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="733.5" x2="1023.5" y1="359.1406" y2="359.1406"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="740.5" y="354.2075">setRoutingReady()</text><polygon fill="#000000" points="281.5,409.2734,271.5,413.2734,281.5,417.2734,277.5,413.2734" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="275.5" x2="1028.5" y1="413.2734" y2="413.2734"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="287.5" y="408.3403">signal("setRoutingReady")</text><polygon fill="#000000" points="76.5,438.4063,66.5,442.4063,76.5,446.4063,72.5,442.4063" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="70.5" x2="264.5" y1="442.4063" y2="442.4063"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="157" x="82.5" y="437.4731">event [setRoutingReady]</text><polygon fill="#000000" points="739.5,477.5391,729.5,481.5391,739.5,485.5391,735.5,481.5391" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="733.5" x2="1033.5" y1="481.5391" y2="481.5391"/><polygon fill="#000000" points="248.5,506.5391,258.5,510.5391,248.5,514.5391,252.5,510.5391" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="65.5" x2="254.5" y1="510.5391" y2="510.5391"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="72.5" y="505.606">call("confirmRoutingReady")</text><polygon fill="#000000" points="1017.5,535.6719,1027.5,539.6719,1017.5,543.6719,1021.5,539.6719" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="270.5" x2="1023.5" y1="539.6719" y2="539.6719"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="145" x="277.5" y="534.7388">confirmRoutingReady()</text><polygon fill="#000000" points="876.5,621.8047,866.5,625.8047,876.5,629.8047,872.5,625.8047" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="870.5" x2="1028.5" y1="625.8047" y2="625.8047"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="145" x="882.5" y="620.8716">confirmRoutingReady()</text><polygon fill="#000000" points="744.5,660.9375,734.5,664.9375,744.5,668.9375,740.5,664.9375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="738.5" x2="854.5" y1="664.9375" y2="664.9375"/><polygon fill="#000000" points="1017.5,674.9375,1027.5,678.9375,1017.5,682.9375,1021.5,678.9375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="860.5" x2="1023.5" y1="678.9375" y2="678.9375"/><polygon fill="#000000" points="281.5,688.9375,271.5,692.9375,281.5,696.9375,277.5,692.9375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="275.5" x2="1033.5" y1="692.9375" y2="692.9375"/><polygon fill="#000000" points="71.5,702.9375,61.5,706.9375,71.5,710.9375,67.5,706.9375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="65.5" x2="264.5" y1="706.9375" y2="706.9375"/><polygon fill="#000000" points="415,731.9375,405,735.9375,415,739.9375,411,735.9375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="409" x2="722.5" y1="735.9375" y2="735.9375"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="136" x="421" y="731.0044">setCommandReady()</text><polygon fill="#000000" points="716.5,796.0703,726.5,800.0703,716.5,804.0703,720.5,800.0703" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="399" x2="722.5" y1="800.0703" y2="800.0703"/><polygon fill="#000000" points="570,850.0703,580,854.0703,570,858.0703,574,854.0703" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="404" x2="576" y1="854.0703" y2="854.0703"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="411" y="849.1372">confirmCommandReady()</text><polygon fill="#000000" points="711.5,889.2031,721.5,893.2031,711.5,897.2031,715.5,893.2031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="592" x2="717.5" y1="893.2031" y2="893.2031"/><polygon fill="#000000" points="410,958.2031,400,962.2031,410,966.2031,406,962.2031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="404" x2="586" y1="962.2031" y2="962.2031"/><!--
+@startuml
+hide footbox
+
+'skinparam defaultFontSize 10
+skinparam backgroundColor #EEEBDC
+skinparam sequenceGroupHeaderFontSize 12
+
+skinparam sequence {
+    ArrowColor black
+
+    ActorBorderColor black
+
+    LifeLineBorderColor #404040
+    LifeLineBackgroundColor #404040
+       
+    ParticipantBorderColor black
+    ParticipantBackgroundColor #00FF00
+    ParticipantFontSize 12
+    ParticipantFontColor black
+
+    ActorBackgroundColor #FFFACD
+    ActorFontColor black
+    ActorFontSize 12
+
+
+    BoxBorderColor #deb887
+    BoxFontSize 12
+    TitleFontSize 20
+}
+
+
+actor Application
+participant SoundManager
+box "CommandPlugIn" #EEEBDC
+    participant IAmCommandSend
+end box
+box "Audio Manager Daemon" #EEEBDC
+    participant IAmCommandReceiver
+    participant AudioManager
+    participant IAmRoutingReceive
+end box
+box "RoutingPlugIn" #EEEBDC
+    participant IAmRoutingSend
+end box
+actor "Audio Domain"
+
+alt Domain Type = DSP/Amplifier
+    AudioManager -> IAmRoutingSend : setRoutingReady()
+    activate AudioManager #00FF00
+    activate IAmRoutingSend #00FF00
+    |||
+    IAmRoutingSend -> "Audio Domain" : setRoutingReady()
+    activate "Audio Domain" #00FF00
+    |||
+    AudioManager <- - IAmRoutingSend
+    deactivate IAmRoutingSend
+    IAmRoutingSend <- "Audio Domain" : confirmRoutingReady()
+    activate IAmRoutingSend #00ff00
+    deactivate IAmRoutingSend
+    deactivate "Audio Domain"
+    |||
+else Domain Type = Application
+    AudioManager -> IAmRoutingSend : setRoutingReady()
+    activate IAmRoutingSend #00FF00
+    |||
+    SoundManager <- IAmRoutingSend : signal("setRoutingReady")
+    activate SoundManager #00FF00
+    Application <- SoundManager : event [setRoutingReady]
+    deactivate SoundManager
+    activate Application #00FF00
+    |||
+    AudioManager <- - IAmRoutingSend
+    deactivate IAmRoutingSend
+    deactivate AudioManager
+    Application -> SoundManager : call("confirmRoutingReady")
+    activate SoundManager #00FF00
+    SoundManager -> IAmRoutingSend : confirmRoutingReady()
+    activate IAmRoutingSend #00FF00
+    |||
+end
+
+|||
+IAmRoutingReceive <- IAmRoutingSend : confirmRoutingReady()
+activate IAmRoutingReceive #00FF00
+|||
+AudioManager <- IAmRoutingReceive
+activate AudioManager #00FF00
+IAmRoutingReceive - -> IAmRoutingSend
+deactivate IAmRoutingReceive
+
+IAmRoutingSend- ->SoundManager
+deactivate IAmRoutingSend
+SoundManager- ->Application
+deactivate SoundManager
+deactivate Application
+
+IAmCommandSend <- AudioManager : setCommandReady()
+activate IAmCommandSend #00FF00
+|||
+|||
+IAmCommandSend - -> AudioManager
+deactivate IAmCommandSend
+deactivate AudioManager
+|||
+IAmCommandSend -> IAmCommandReceiver : confirmCommandReady()
+activate IAmCommandSend #00FF00
+activate IAmCommandReceiver #00FF00
+|||
+IAmCommandReceiver -> AudioManager
+activate AudioManager #00ff00
+deactivate AudioManager
+|||
+IAmCommandSend <- - IAmCommandReceiver
+deactivate IAmCommandReceiver
+deactivate IAmCommandSend
+@enduml
+
+PlantUML version 1.2017.16beta5(Unknown compile time)
+(GPL source distribution)
+Java Runtime: Java(TM) SE Runtime Environment
+JVM: Java HotSpot(TM) 64-Bit Server VM
+Java Version: 1.7.0_25-b15
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg>
\ No newline at end of file