aboutsummaryrefslogtreecommitdiffstats
path: root/doc/parts
diff options
context:
space:
mode:
Diffstat (limited to 'doc/parts')
-rw-r--r--doc/parts/am-component.pngbin0 -> 90431 bytes
-rw-r--r--doc/parts/seq_changevolume.svg117
-rw-r--r--doc/parts/seq_connectsoundroute.svg145
-rw-r--r--doc/parts/seq_disconnectsoundroute.svg110
-rw-r--r--doc/parts/seq_initialization.svg129
-rw-r--r--doc/parts/seq_registration.svg235
-rw-r--r--doc/parts/seq_releasesoundmode.svg119
-rw-r--r--doc/parts/seq_requestsoundmode.svg165
-rw-r--r--doc/parts/seq_setmutestate.svg115
-rw-r--r--doc/parts/seq_startsoundstreaming.svg129
-rw-r--r--doc/parts/seq_startup.svg68
-rw-r--r--doc/parts/seq_stopsoundstreaming.svg129
-rw-r--r--doc/parts/software-stack.pngbin0 -> 41677 bytes
-rw-r--r--doc/parts/software-stack2.pngbin0 -> 26849 bytes
-rw-r--r--doc/parts/typical-usecase.pngbin0 -> 256665 bytes
-rw-r--r--doc/parts/typical-usecase2.pngbin0 -> 230655 bytes
16 files changed, 1461 insertions, 0 deletions
diff --git a/doc/parts/am-component.png b/doc/parts/am-component.png
new file mode 100644
index 0000000..bf068bb
--- /dev/null
+++ b/doc/parts/am-component.png
Binary files differ
diff --git a/doc/parts/seq_changevolume.svg b/doc/parts/seq_changevolume.svg
new file mode 100644
index 0000000..9f60795
--- /dev/null
+++ b/doc/parts/seq_changevolume.svg
@@ -0,0 +1,117 @@
+<?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="788px" preserveAspectRatio="none" style="width:1211px;height:788px;background:#EEEBDC;" version="1.1" viewBox="0 0 1211 788" width="1211px" zoomAndPan="magnify"><defs><filter height="300%" id="fh0kb20fxhbpa" 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="766.2969" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="347.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="362" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="766.2969" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="491.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="620.5" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="766.2969" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="963.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="978" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="185.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="93.9688"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="728.1641"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="223.5" y="114.9688"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="101.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="223.5" y="657.0313"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="121.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="413.5" y="144.1016"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="413.5" y="627.8984"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="568" y="198.2344"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="189.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="709.5" y="237.3672"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="111.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="709.5" y="573.8984"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="841.5" y="534.7656"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1022.5" y="358.3672"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="193.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1022.5" y="505.6328"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="93.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1154.5" y="412.5"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="45" x2="45" y1="83.9688" y2="776.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="228" x2="228" y1="83.9688" y2="776.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="418.5" x2="418.5" y1="83.9688" y2="776.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="572.5" x2="572.5" y1="83.9688" y2="776.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="714.5" x2="714.5" y1="83.9688" y2="776.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="846.5" x2="846.5" y1="83.9688" y2="776.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1027.5" x2="1027.5" y1="83.9688" y2="776.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1159.5" x2="1159.5" y1="83.9688" y2="776.2969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="8" y="81.1387">Application</text><ellipse cx="45.5" cy="13" fill="#FFFACD" filter="url(#fh0kb20fxhbpa)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M45.5,21 L45.5,48 M32.5,29 L58.5,29 M45.5,48 L32.5,63 M45.5,48 L58.5,63 " fill="#FFFACD" filter="url(#fh0kb20fxhbpa)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="172" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="179" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="351.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="358.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="495.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="502.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="660.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="667.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="778.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="785.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="967.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="974.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1113.5" y="81.1387">Audio Domain</text><ellipse cx="1159.5" cy="13" fill="#FFFACD" filter="url(#fh0kb20fxhbpa)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1159.5,21 L1159.5,48 M1146.5,29 L1172.5,29 M1159.5,48 L1146.5,63 M1159.5,48 L1172.5,63 " fill="#FFFACD" filter="url(#fh0kb20fxhbpa)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="185.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="93.9688"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="728.1641"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="223.5" y="114.9688"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="101.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="223.5" y="657.0313"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="121.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="413.5" y="144.1016"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="413.5" y="627.8984"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="568" y="198.2344"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="189.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="709.5" y="237.3672"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="111.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="709.5" y="573.8984"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="841.5" y="534.7656"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1022.5" y="358.3672"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="193.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1022.5" y="505.6328"/><rect fill="#00FF00" filter="url(#fh0kb20fxhbpa)" height="93.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1154.5" y="412.5"/><polygon fill="#000000" points="211.5,110.9688,221.5,114.9688,211.5,118.9688,215.5,114.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="50.5" x2="217.5" y1="114.9688" y2="114.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="57.5" y="110.0356">SetVolume()</text><polygon fill="#000000" points="401.5,140.1016,411.5,144.1016,401.5,148.1016,405.5,144.1016" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="233.5" x2="407.5" y1="144.1016" y2="144.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="240.5" y="139.1685">SetVolume()</text><polygon fill="#000000" points="556,194.2344,566,198.2344,556,202.2344,560,198.2344" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="423.5" x2="562" y1="198.2344" y2="198.2344"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="430.5" y="193.3013">SetVolume()</text><polygon fill="#000000" points="697.5,233.3672,707.5,237.3672,697.5,241.3672,701.5,237.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="578" x2="703.5" y1="237.3672" y2="237.3672"/><polygon fill="#000000" points="434.5,247.3672,424.5,251.3672,434.5,255.3672,430.5,251.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="428.5" x2="572" y1="251.3672" y2="251.3672"/><polygon fill="#000000" points="244.5,261.3672,234.5,265.3672,244.5,269.3672,240.5,265.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="238.5" x2="417.5" y1="265.3672" y2="265.3672"/><polygon fill="#000000" points="56.5,275.3672,46.5,279.3672,56.5,283.3672,52.5,279.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="50.5" x2="227.5" y1="279.3672" y2="279.3672"/><polygon fill="#000000" points="1010.5,354.3672,1020.5,358.3672,1010.5,362.3672,1014.5,358.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="719.5" x2="1016.5" y1="358.3672" y2="358.3672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="145" x="726.5" y="353.4341">asyncSetSinkVolume()</text><polygon fill="#000000" points="1142.5,408.5,1152.5,412.5,1142.5,416.5,1146.5,412.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1032.5" x2="1148.5" y1="412.5" y2="412.5"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="1039.5" y="407.5669">SetVolume()</text><polygon fill="#000000" points="725.5,422.6328,715.5,426.6328,725.5,430.6328,721.5,426.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="719.5" x2="1026.5" y1="426.6328" y2="426.6328"/><polygon fill="#000000" points="1043.5,501.6328,1033.5,505.6328,1043.5,509.6328,1039.5,505.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1037.5" x2="1158.5" y1="505.6328" y2="505.6328"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="1049.5" y="500.6997">ackSetVolume()</text><polygon fill="#000000" points="862.5,530.7656,852.5,534.7656,862.5,538.7656,858.5,534.7656" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="856.5" x2="1021.5" y1="534.7656" y2="534.7656"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="868.5" y="529.8325">ackSetVolumeChange()</text><polygon fill="#000000" points="730.5,569.8984,720.5,573.8984,730.5,577.8984,726.5,573.8984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="724.5" x2="840.5" y1="573.8984" y2="573.8984"/><polygon fill="#000000" points="434.5,623.8984,424.5,627.8984,434.5,631.8984,430.5,627.8984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="428.5" x2="708.5" y1="627.8984" y2="627.8984"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="440.5" y="622.9653">cbVolumeChanged</text><polygon fill="#000000" points="244.5,653.0313,234.5,657.0313,244.5,661.0313,240.5,657.0313" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="238.5" x2="412.5" y1="657.0313" y2="657.0313"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="161" x="250.5" y="652.0981">signal("volumeChanged")</text><polygon fill="#000000" points="697.5,667.1641,707.5,671.1641,697.5,675.1641,701.5,671.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="418.5" x2="703.5" y1="671.1641" y2="671.1641"/><polygon fill="#000000" points="829.5,681.1641,839.5,685.1641,829.5,689.1641,833.5,685.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="714.5" x2="835.5" y1="685.1641" y2="685.1641"/><polygon fill="#000000" points="1015.5,695.1641,1025.5,699.1641,1015.5,703.1641,1019.5,699.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="846.5" x2="1021.5" y1="699.1641" y2="699.1641"/><polygon fill="#000000" points="61.5,724.1641,51.5,728.1641,61.5,732.1641,57.5,728.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="55.5" x2="222.5" y1="728.1641" y2="728.1641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="154" x="67.5" y="723.231">event [volumeChanged]</text><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+
+activate AP #00ff00
+AP -> SM : SetVolume()
+activate SM #00ff00
+SM -> CS : SetVolume()
+activate CS #00ff00
+|||
+CS -> CR : SetVolume()
+activate CR #00ff00
+|||
+CR -> AM
+activate AM #00ff00
+
+CR - -> CS
+deactivate CR
+CS- ->SM
+deactivate CS
+SM- ->AP
+deactivate SM
+deactivate AP
+
+|||
+|||
+AM -> RS : asyncSetSinkVolume()
+activate RS #00ff00
+|||
+RS -> AD : SetVolume()
+activate AD #00ff00
+RS - -> AM
+deactivate RS
+deactivate AM
+|||
+|||
+AD -> RS : ackSetVolume()
+deactivate AD
+activate RS #00ff00
+
+RS -> RR : ackSetVolumeChange()
+activate RR #00ff00
+|||
+RR -> AM
+activate AM #00ff00
+|||
+AM -> CS : cbVolumeChanged
+activate CS #00ff00
+CS -> SM : signal("volumeChanged")
+activate SM #00ff00
+CS- ->AM
+deactivate CS
+AM- ->RR
+deactivate AM
+RR- ->RS
+deactivate RR
+deactivate RS
+SM -> AP : event [volumeChanged]
+activate AP #00ff00
+deactivate SM
+deactivate AP
+@enduml
+
+PlantUML version 1.2017.18beta10(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
diff --git a/doc/parts/seq_connectsoundroute.svg b/doc/parts/seq_connectsoundroute.svg
new file mode 100644
index 0000000..a3c392a
--- /dev/null
+++ b/doc/parts/seq_connectsoundroute.svg
@@ -0,0 +1,145 @@
+<?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="1126px" preserveAspectRatio="none" style="width:1371px;height:1126px;background:#EEEBDC;" version="1.1" viewBox="0 0 1371 1126" width="1371px" zoomAndPan="magnify"><defs><filter height="300%" id="f1jw437lb3978k" 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="1104.0859" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="475.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="490" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="1104.0859" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="619.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="748.5" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="1104.0859" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="1048.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="1063" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="232.5"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="925.5547"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="284.5" y="174.2344"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="199.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="284.5" y="896.4219"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="541.5" y="129.9688"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="39.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="541.5" y="1042.8203"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="349.8594" style="stroke: #404040; stroke-width: 1.0;" width="10" x="837.5" y="129.9688"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="402.8594" style="stroke: #404040; stroke-width: 1.0;" width="10" x="837.5" y="679.2266"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="969.5" y="640.0938"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="73.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="406.5625"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="112.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="580.9609"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="247.4609" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="722.2266"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="97.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="998.6875"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1236.5" y="435.6953"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="131.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1236.5" y="479.8281"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1241.5" y="516.8281"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="45" x2="45" y1="83.9688" y2="1114.0859"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="289" x2="289" y1="83.9688" y2="1114.0859"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="546.5" x2="546.5" y1="83.9688" y2="1114.0859"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="700.5" x2="700.5" y1="83.9688" y2="1114.0859"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="842.5" x2="842.5" y1="83.9688" y2="1114.0859"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="974.5" x2="974.5" y1="83.9688" y2="1114.0859"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1112.5" x2="1112.5" y1="83.9688" y2="1114.0859"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1241.5" x2="1241.5" y1="83.9688" y2="1114.0859"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="8" y="81.1387">Application</text><ellipse cx="45.5" cy="13" fill="#FFFACD" filter="url(#f1jw437lb3978k)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M45.5,21 L45.5,48 M32.5,29 L58.5,29 M45.5,48 L32.5,63 M45.5,48 L58.5,63 " fill="#FFFACD" filter="url(#f1jw437lb3978k)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="233" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="240" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="479.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="486.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="623.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="630.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="788.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="795.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="906.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="913.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="1052.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1059.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1195.5" y="81.1387">Audio Domain</text><ellipse cx="1241.5" cy="13" fill="#FFFACD" filter="url(#f1jw437lb3978k)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1241.5,21 L1241.5,48 M1228.5,29 L1254.5,29 M1241.5,48 L1228.5,63 M1241.5,48 L1254.5,63 " fill="#FFFACD" filter="url(#f1jw437lb3978k)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="232.5"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="925.5547"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="284.5" y="174.2344"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="199.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="284.5" y="896.4219"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="541.5" y="129.9688"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="39.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="541.5" y="1042.8203"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="349.8594" style="stroke: #404040; stroke-width: 1.0;" width="10" x="837.5" y="129.9688"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="402.8594" style="stroke: #404040; stroke-width: 1.0;" width="10" x="837.5" y="679.2266"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="969.5" y="640.0938"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="73.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="406.5625"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="112.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="580.9609"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="247.4609" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="722.2266"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="97.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1107.5" y="998.6875"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1236.5" y="435.6953"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="131.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1236.5" y="479.8281"/><rect fill="#00FF00" filter="url(#f1jw437lb3978k)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1241.5" y="516.8281"/><polygon fill="#000000" points="562.5,125.9688,552.5,129.9688,562.5,133.9688,558.5,129.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="556.5" x2="836.5" y1="129.9688" y2="129.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="568.5" y="110.0356">cbMainConnectionStateChanged(</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="592.5" y="125.1685">CS_CONNECTING)</text><polygon fill="#000000" points="305.5,170.2344,295.5,174.2344,305.5,178.2344,301.5,174.2344" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="299.5" x2="540.5" y1="174.2344" y2="174.2344"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="228" x="311.5" y="154.3013">signal("MmainConnectionChanged (</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="331.5" y="169.4341">CS_CONECTING)")</text><polygon fill="#000000" points="825.5,184.5,835.5,188.5,825.5,192.5,829.5,188.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="546.5" x2="831.5" y1="188.5" y2="188.5"/><polygon fill="#000000" points="61.5,228.5,51.5,232.5,61.5,236.5,57.5,232.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="55.5" x2="283.5" y1="232.5" y2="232.5"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="215" x="67.5" y="212.5669">event [mainConnectionChanged (</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="87.5" y="227.6997">CS_CONECTING)]</text><polygon fill="#FBFB77" filter="url(#f1jw437lb3978k)" points="979,275.7656,979,375.7656,1303,375.7656,1303,285.7656,1293,275.7656,979,275.7656" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1293" x2="1293" y1="275.7656" y2="285.7656"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1303" x2="1293" y1="285.7656" y2="285.7656"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="985" y="292.8325">Audio Manager Policy decides this main</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="223" x="985" y="307.9653">connection have to be established.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="287" x="985" y="323.0981">At the beginning of sequence Audio Manager</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="300" x="985" y="338.231">should inform cbMainConnectionStateChanged</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="303" x="985" y="353.3638">(CS_CONNECTING) to indicated pre-information</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="985" y="368.4966">of establishment.</text><polygon fill="#000000" points="1095.5,402.5625,1105.5,406.5625,1095.5,410.5625,1099.5,406.5625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="847.5" x2="1101.5" y1="406.5625" y2="406.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="854.5" y="401.6294">asyncConnect()</text><polygon fill="#000000" points="1224.5,431.6953,1234.5,435.6953,1224.5,439.6953,1228.5,435.6953" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1117.5" x2="1230.5" y1="435.6953" y2="435.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="1124.5" y="430.7622">asyncConnect()</text><polygon fill="#000000" points="853.5,475.8281,843.5,479.8281,853.5,483.8281,849.5,479.8281" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="847.5" x2="1111.5" y1="479.8281" y2="479.8281"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1251.5" x2="1293.5" y1="508.9609" y2="508.9609"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1293.5" x2="1293.5" y1="508.9609" y2="521.9609"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1252.5" x2="1293.5" y1="521.9609" y2="521.9609"/><polygon fill="#000000" points="1262.5,517.9609,1252.5,521.9609,1262.5,525.9609,1258.5,521.9609" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="101" x="1258.5" y="503.895">setAudioMode()</text><polygon fill="#000000" points="1128.5,576.9609,1118.5,580.9609,1128.5,584.9609,1124.5,580.9609" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1122.5" x2="1235.5" y1="580.9609" y2="580.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="1134.5" y="576.0278">ackConnect()</text><polygon fill="#000000" points="990.5,636.0938,980.5,640.0938,990.5,644.0938,986.5,640.0938" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="984.5" x2="1106.5" y1="640.0938" y2="640.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="996.5" y="635.1606">ackConnect()</text><polygon fill="#000000" points="858.5,675.2266,848.5,679.2266,858.5,683.2266,854.5,679.2266" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="852.5" x2="968.5" y1="679.2266" y2="679.2266"/><polygon fill="#000000" points="1100.5,689.2266,1110.5,693.2266,1100.5,697.2266,1104.5,693.2266" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="974.5" x2="1106.5" y1="693.2266" y2="693.2266"/><polygon fill="#000000" points="1095.5,718.2266,1105.5,722.2266,1095.5,726.2266,1099.5,722.2266" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="847.5" x2="1101.5" y1="722.2266" y2="722.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="854.5" y="717.2935">asyncConnect()</text><polygon fill="#FBFB77" filter="url(#f1jw437lb3978k)" points="335,735.3594,335,866.3594,692,866.3594,692,745.3594,682,735.3594,335,735.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="682" x2="682" y1="735.3594" y2="745.3594"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="692" x2="682" y1="745.3594" y2="745.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="288" x="341" y="752.4263">Audio Manager have to know that Application</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="295" x="341" y="767.5591">certainly start preparing sound route, and wait</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="285" x="341" y="782.6919">proceeding until Application return feedback.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="333" x="341" y="797.8247">Main reason is to make sure that entire sound route</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="313" x="341" y="812.9575">is established before connection state transite to</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="336" x="341" y="828.0903">next phase. Otherwise it is possible for Application to</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="333" x="341" y="843.2231">face the problem that ALSA virtual device cannot be</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="270" x="341" y="858.356">opened after connection state is changed.</text><polygon fill="#000000" points="305.5,892.4219,295.5,896.4219,305.5,900.4219,301.5,896.4219" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="299.5" x2="1106.5" y1="896.4219" y2="896.4219"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="100" x="311.5" y="891.4888">asyncConnect()</text><polygon fill="#000000" points="61.5,921.5547,51.5,925.5547,61.5,929.5547,57.5,925.5547" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="55.5" x2="283.5" y1="925.5547" y2="925.5547"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="140" x="67.5" y="920.6216">event [asyncConnect]</text><polygon fill="#000000" points="858.5,965.6875,848.5,969.6875,858.5,973.6875,854.5,969.6875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="852.5" x2="1111.5" y1="969.6875" y2="969.6875"/><polygon fill="#000000" points="1095.5,994.6875,1105.5,998.6875,1095.5,1002.6875,1099.5,998.6875" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="294.5" x2="1101.5" y1="998.6875" y2="998.6875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="301.5" y="993.7544">ackConnect()</text><polygon fill="#000000" points="562.5,1038.8203,552.5,1042.8203,562.5,1046.8203,558.5,1042.8203" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="556.5" x2="836.5" y1="1042.8203" y2="1042.8203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="568.5" y="1022.8872">cbMainConnectionStateChanged(</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="584.5" y="1038.02">CS_SUSPENDED)</text><polygon fill="#000000" points="830.5,1078.0859,840.5,1082.0859,830.5,1086.0859,834.5,1082.0859" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="546.5" x2="836.5" y1="1082.0859" y2="1082.0859"/><polygon fill="#000000" points="300.5,1092.0859,290.5,1096.0859,300.5,1100.0859,296.5,1096.0859" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="294.5" x2="1111.5" y1="1096.0859" y2="1096.0859"/><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+AM -> CS : cbMainConnectionStateChanged(\n CS_CONNECTING)
+activate AM #00FF00
+activate CS #00FF00
+
+CS -> SM : signal("MmainConnectionChanged (\n CS_CONECTING)")
+activate SM #00FF00
+CS - -> AM
+deactivate CS
+SM -> AP : event [mainConnectionChanged (\n CS_CONECTING)]
+activate AP #00FF00
+deactivate SM
+
+deactivate AP
+
+
+note right of RR
+ Audio Manager Policy decides this main
+ connection have to be established.
+ At the beginning of sequence Audio Manager
+ should inform cbMainConnectionStateChanged
+ (CS_CONNECTING) to indicated pre-information
+ of establishment.
+end note
+
+AM -> RS : asyncConnect()
+activate RS #00FF00
+
+RS-> AD : asyncConnect()
+
+activate AD #00FF00
+deactivate AD
+RS - -> AM
+deactivate RS
+deactivate AM
+
+activate AD #00FF00
+AD -> AD : setAudioMode()
+activate AD #00FF00
+deactivate AD
+AD -> RS : ackConnect()
+activate RS #00FF00
+deactivate AD
+
+RS -> RR : ackConnect()
+activate RR #00FF00
+|||
+RR -> AM
+activate AM #00FF00
+
+RR - -> RS
+deactivate RR
+deactivate RS
+
+AM -> RS : asyncConnect()
+activate RS #00FF00
+
+note left of CR
+ Audio Manager have to know that Application
+ certainly start preparing sound route, and wait
+ proceeding until Application return feedback.
+ Main reason is to make sure that entire sound route
+ is established before connection state transite to
+ next phase. Otherwise it is possible for Application to
+ face the problem that ALSA virtual device cannot be
+ opened after connection state is changed.
+end note
+
+RS -> SM : asyncConnect()
+activate SM #00FF00
+SM -> AP : event [asyncConnect]
+activate AP #00FF00
+deactivate AP
+RS - -> AM
+deactivate RS
+SM -> RS : ackConnect()
+activate RS #00FF00
+
+AM -> CS : cbMainConnectionStateChanged(\n CS_SUSPENDED)
+activate CS #00FF00
+|||
+CS - -> AM
+deactivate CS
+deactivate AM
+RS- ->SM
+deactivate RS
+deactivate SM
+@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
diff --git a/doc/parts/seq_disconnectsoundroute.svg b/doc/parts/seq_disconnectsoundroute.svg
new file mode 100644
index 0000000..9036aca
--- /dev/null
+++ b/doc/parts/seq_disconnectsoundroute.svg
@@ -0,0 +1,110 @@
+<?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="843px" preserveAspectRatio="none" style="width:1187px;height:843px;background:#EEEBDC;" version="1.1" viewBox="0 0 1187 843" width="1187px" zoomAndPan="magnify"><defs><filter height="300%" id="f190eucmp65hi5" 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="821.4297" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="295" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="309.5" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="821.4297" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="439" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="568" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="821.4297" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="868" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="882.5" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="198.2344"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="227.5" y="169.1016"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="39.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="361" y="774.1641"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="396.9297" style="stroke: #404040; stroke-width: 1.0;" width="10" x="657" y="114.9688"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="122.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="657" y="691.1641"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="789" y="311.5"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="789" y="652.0313"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="396.9297" style="stroke: #404040; stroke-width: 1.0;" width="10" x="927" y="114.9688"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="107.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="927" y="598.0313"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="100.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1074" y="497.7656"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1079" y="548.8984"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="45" x2="45" y1="83.9688" y2="831.4297"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="232" x2="232" y1="83.9688" y2="831.4297"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="366" x2="366" y1="83.9688" y2="831.4297"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="520" x2="520" y1="83.9688" y2="831.4297"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="662" x2="662" y1="83.9688" y2="831.4297"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="794" x2="794" y1="83.9688" y2="831.4297"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="932" x2="932" y1="83.9688" y2="831.4297"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1079" x2="1079" y1="83.9688" y2="831.4297"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="8" y="81.1387">Application</text><ellipse cx="45.5" cy="13" fill="#FFFACD" filter="url(#f190eucmp65hi5)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M45.5,21 L45.5,48 M32.5,29 L58.5,29 M45.5,48 L32.5,63 M45.5,48 L58.5,63 " fill="#FFFACD" filter="url(#f190eucmp65hi5)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="176" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="183" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="299" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="306" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="443" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="450" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="608" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="615" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="726" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="733" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="872" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="879" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1033" y="81.1387">Audio Domain</text><ellipse cx="1079" cy="13" fill="#FFFACD" filter="url(#f190eucmp65hi5)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1079,21 L1079,48 M1066,29 L1092,29 M1079,48 L1066,63 M1079,48 L1092,63 " fill="#FFFACD" filter="url(#f190eucmp65hi5)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="198.2344"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="227.5" y="169.1016"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="39.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="361" y="774.1641"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="396.9297" style="stroke: #404040; stroke-width: 1.0;" width="10" x="657" y="114.9688"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="122.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="657" y="691.1641"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="789" y="311.5"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="789" y="652.0313"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="396.9297" style="stroke: #404040; stroke-width: 1.0;" width="10" x="927" y="114.9688"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="107.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="927" y="598.0313"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="100.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1074" y="497.7656"/><rect fill="#00FF00" filter="url(#f190eucmp65hi5)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1079" y="548.8984"/><polygon fill="#000000" points="915,110.9688,925,114.9688,915,118.9688,919,114.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="667" x2="921" y1="114.9688" y2="114.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="674" y="110.0356">asyncDisconnect()</text><polygon fill="#000000" points="248.5,165.1016,238.5,169.1016,248.5,173.1016,244.5,169.1016" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="242.5" x2="926" y1="169.1016" y2="169.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="254.5" y="164.1685">asyncDisconnect()</text><polygon fill="#000000" points="61.5,194.2344,51.5,198.2344,61.5,202.2344,57.5,198.2344" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="55.5" x2="226.5" y1="198.2344" y2="198.2344"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="158" x="67.5" y="193.3013">event [asyncDisconnect]</text><polygon fill="#000000" points="915,253.3672,925,257.3672,915,261.3672,919,257.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="232.5" x2="921" y1="257.3672" y2="257.3672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="239.5" y="252.4341">ackDisconnect()</text><polygon fill="#000000" points="810,307.5,800,311.5,810,315.5,806,311.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="804" x2="926" y1="311.5" y2="311.5"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="816" y="306.5669">ackDisconnect()</text><polygon fill="#000000" points="678,346.6328,668,350.6328,678,354.6328,674,350.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="672" x2="788" y1="350.6328" y2="350.6328"/><polygon fill="#000000" points="915,360.6328,925,364.6328,915,368.6328,919,364.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="794" x2="921" y1="364.6328" y2="364.6328"/><polygon fill="#000000" points="915,439.6328,925,443.6328,915,447.6328,919,443.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="667" x2="921" y1="443.6328" y2="443.6328"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="674" y="438.6997">asyncDisconnect()</text><polygon fill="#000000" points="1062,493.7656,1072,497.7656,1062,501.7656,1066,497.7656" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="937" x2="1068" y1="497.7656" y2="497.7656"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="118" x="944" y="492.8325">asyncDisconnect()</text><polygon fill="#000000" points="673,507.8984,663,511.8984,673,515.8984,669,511.8984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="667" x2="931" y1="511.8984" y2="511.8984"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1089" x2="1131" y1="541.0313" y2="541.0313"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1131" x2="1131" y1="541.0313" y2="554.0313"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1090" x2="1131" y1="554.0313" y2="554.0313"/><polygon fill="#000000" points="1100,550.0313,1090,554.0313,1100,558.0313,1096,554.0313" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="1096" y="535.9653">disconnect()</text><polygon fill="#000000" points="948,594.0313,938,598.0313,948,602.0313,944,598.0313" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="942" x2="1078" y1="598.0313" y2="598.0313"/><polygon fill="#000000" points="810,648.0313,800,652.0313,810,656.0313,806,652.0313" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="804" x2="926" y1="652.0313" y2="652.0313"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="816" y="647.0981">ackDisconnect()</text><polygon fill="#000000" points="678,687.1641,668,691.1641,678,695.1641,674,691.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="672" x2="788" y1="691.1641" y2="691.1641"/><polygon fill="#000000" points="920,701.1641,930,705.1641,920,709.1641,924,705.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="794" x2="926" y1="705.1641" y2="705.1641"/><polygon fill="#000000" points="382,770.1641,372,774.1641,382,778.1641,378,774.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="376" x2="656" y1="774.1641" y2="774.1641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="388" y="754.231">cbMainConnectionStateChanged(</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="133" x="480" y="769.3638">CS_DISCONNECTED)</text><polygon fill="#000000" points="650,809.4297,660,813.4297,650,817.4297,654,813.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="366" x2="656" y1="813.4297" y2="813.4297"/><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+
+AM -> RS : asyncDisconnect()
+activate AM #00ff00
+activate RS #00ff00
+|||
+RS -> SM : asyncDisconnect()
+activate SM #00ff00
+SM -> AP : event [asyncDisconnect]
+activate AP #00ff00
+deactivate AP
+SM -> RS : ackDisconnect()
+deactivate SM
+|||
+RS -> RR : ackDisconnect()
+activate RR #00ff00
+|||
+RR -> AM
+RR- ->RS
+deactivate RR
+|||
+|||
+AM -> RS : asyncDisconnect()
+|||
+RS -> AD : asyncDisconnect()
+activate AD #00ff00
+RS - -> AM
+deactivate RS
+deactivate AM
+
+AD -> AD : disconnect()
+activate AD #00ff00
+deactivate AD
+AD -> RS
+deactivate AD
+activate RS #00ff00
+|||
+RS -> RR : ackDisconnect()
+activate RR #00ff00
+|||
+RR->AM
+activate AM #00ff00
+RR - -> RS
+deactivate RR
+deactivate RS
+|||
+AM->CS : cbMainConnectionStateChanged(\n CS_DISCONNECTED)
+activate CS #00ff00
+|||
+CS - -> AM
+deactivate CS
+deactivate AM
+@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
diff --git a/doc/parts/seq_initialization.svg b/doc/parts/seq_initialization.svg
new file mode 100644
index 0000000..18cc0bb
--- /dev/null
+++ b/doc/parts/seq_initialization.svg
@@ -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
diff --git a/doc/parts/seq_registration.svg b/doc/parts/seq_registration.svg
new file mode 100644
index 0000000..9bff665
--- /dev/null
+++ b/doc/parts/seq_registration.svg
@@ -0,0 +1,235 @@
+<?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="1957px" preserveAspectRatio="none" style="width:1380px;height:1957px;background:#EEEBDC;" version="1.1" viewBox="0 0 1380 1957" width="1380px" zoomAndPan="magnify"><defs><filter height="300%" id="f65nhzdhunqvj" 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="1935.9844" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="296.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="311" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="1935.9844" style="stroke: #DEB887; stroke-width: 1.0;" width="428" x="440.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="570" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="1935.9844" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="990.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="1005" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="114.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="593.2422"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="973.8438"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="1418.4141"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="333.0078"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="114.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="593.2422"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="930.7109"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="1375.2813"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="362.5" y="901.5781"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="362.5" y="1346.1484"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="206.2031"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="401.2734"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="279.2031" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="665.6406"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="226.2031" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="1163.2109"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="121.9375" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="1607.7813"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="1883.9844"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="167.0703"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="362.1406"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="28.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="651.5078"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="39.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="776.4453"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="42.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1135.0781"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="39.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1221.0156"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="42.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1579.6484"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="39.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1690.5859"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="58.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1869.8516"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="333.0078"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="85.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="622.375"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="71.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="1105.9453"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="71.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="1550.5156"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="87.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="1840.7188"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1307.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="763.9063" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1307.5" y="1105.9453"/><rect fill="#EEEBDC" filter="url(#f65nhzdhunqvj)" height="391.3047" style="stroke: #000000; stroke-width: 2.0;" width="1225.5" x="143" y="100.9688"/><rect fill="#EEEBDC" height="195.0703" style="stroke: none; stroke-width: 1.0;" width="1225.5" x="143" y="297.2031"/><rect fill="#EEEBDC" filter="url(#f65nhzdhunqvj)" height="292.3047" style="stroke: #000000; stroke-width: 2.0;" width="1111.5" x="13" y="556.2734"/><rect fill="#EEEBDC" height="107.9375" style="stroke: none; stroke-width: 1.0;" width="1111.5" x="13" y="740.6406"/><rect fill="#EEEBDC" filter="url(#f65nhzdhunqvj)" height="224.1719" style="stroke: #000000; stroke-width: 2.0;" width="769" x="599.5" y="1068.9766"/><rect fill="#EEEBDC" height="107.9375" style="stroke: none; stroke-width: 1.0;" width="769" x="599.5" y="1185.2109"/><rect fill="#EEEBDC" filter="url(#f65nhzdhunqvj)" height="249.1719" style="stroke: #000000; stroke-width: 2.0;" width="769" x="599.5" y="1513.5469"/><rect fill="#EEEBDC" height="107.9375" style="stroke: none; stroke-width: 1.0;" width="769" x="599.5" y="1654.7813"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="60" x2="60" y1="83.9688" y2="1945.9844"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="209" x2="209" y1="83.9688" y2="1945.9844"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="367.5" x2="367.5" y1="83.9688" y2="1945.9844"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="521.5" x2="521.5" y1="83.9688" y2="1945.9844"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="663.5" x2="663.5" y1="83.9688" y2="1945.9844"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="796.5" x2="796.5" y1="83.9688" y2="1945.9844"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1054.5" x2="1054.5" y1="83.9688" y2="1945.9844"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1312.5" x2="1312.5" y1="83.9688" y2="1945.9844"/><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(#f65nhzdhunqvj)" 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(#f65nhzdhunqvj)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="153" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="160" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="300.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="307.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="444.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="451.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="609.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="616.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="728.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="735.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="994.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1001.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1266.5" y="81.1387">Audio Domain</text><ellipse cx="1312.5" cy="13" fill="#FFFACD" filter="url(#f65nhzdhunqvj)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1312.5,21 L1312.5,48 M1299.5,29 L1325.5,29 M1312.5,48 L1299.5,63 M1312.5,48 L1325.5,63 " fill="#FFFACD" filter="url(#f65nhzdhunqvj)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="114.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="593.2422"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="973.8438"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="1418.4141"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="333.0078"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="114.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="593.2422"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="930.7109"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="204.5" y="1375.2813"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="362.5" y="901.5781"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="362.5" y="1346.1484"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="206.2031"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="401.2734"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="279.2031" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="665.6406"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="226.2031" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="1163.2109"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="121.9375" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="1607.7813"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="1883.9844"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="167.0703"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="108.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="362.1406"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="28.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="651.5078"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="39.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="776.4453"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="42.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1135.0781"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="39.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1221.0156"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="42.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1579.6484"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="39.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1690.5859"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="58.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="791.5" y="1869.8516"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="333.0078"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="85.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="622.375"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="71.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="1105.9453"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="71.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="1550.5156"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="87.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1049.5" y="1840.7188"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="151.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1307.5" y="137.9375"/><rect fill="#00FF00" filter="url(#f65nhzdhunqvj)" height="763.9063" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1307.5" y="1105.9453"/><rect fill="none" height="391.3047" style="stroke: #000000; stroke-width: 2.0;" width="1225.5" x="143" y="100.9688"/><polygon fill="#EEEEEE" points="143,100.9688,207,100.9688,207,105.9688,197,115.9688,143,115.9688,143,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="158" y="113.1074">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="196" x="222" y="113.1792">[Domain Type = DSP/Amplifier]</text><polygon fill="#000000" points="1070.5,133.9375,1060.5,137.9375,1070.5,141.9375,1066.5,137.9375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1064.5" x2="1306.5" y1="137.9375" y2="137.9375"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="109" x="1076.5" y="133.0044">registerDomain()</text><polygon fill="#000000" points="812.5,163.0703,802.5,167.0703,812.5,171.0703,808.5,167.0703" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="806.5" x2="1048.5" y1="167.0703" y2="167.0703"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="109" x="818.5" y="162.1372">registerDomain()</text><polygon fill="#000000" points="679.5,202.2031,669.5,206.2031,679.5,210.2031,675.5,206.2031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="673.5" x2="790.5" y1="206.2031" y2="206.2031"/><polygon fill="#000000" points="1037.5,271.2031,1047.5,275.2031,1037.5,279.2031,1041.5,275.2031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="796.5" x2="1043.5" y1="275.2031" y2="275.2031"/><polygon fill="#000000" points="1300.5,285.2031,1310.5,289.2031,1300.5,293.2031,1304.5,289.2031" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="1054.5" x2="1306.5" y1="289.2031" y2="289.2031"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="143" x2="1368.5" y1="298.2031" y2="298.2031"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="206" x="148" y="308.4136">[Domain Type = SoundManager]</text><polygon fill="#000000" points="1037.5,329.0078,1047.5,333.0078,1037.5,337.0078,1041.5,333.0078" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="214.5" x2="1043.5" y1="333.0078" y2="333.0078"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="109" x="221.5" y="328.0747">registerDomain()</text><polygon fill="#000000" points="812.5,358.1406,802.5,362.1406,812.5,366.1406,808.5,362.1406" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="806.5" x2="1048.5" y1="362.1406" y2="362.1406"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="109" x="818.5" y="357.2075">registerDomain()</text><polygon fill="#000000" points="679.5,397.2734,669.5,401.2734,679.5,405.2734,675.5,401.2734" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="673.5" x2="790.5" y1="401.2734" y2="401.2734"/><polygon fill="#000000" points="1037.5,466.2734,1047.5,470.2734,1037.5,474.2734,1041.5,470.2734" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="796.5" x2="1043.5" y1="470.2734" y2="470.2734"/><polygon fill="#000000" points="220.5,480.2734,210.5,484.2734,220.5,488.2734,216.5,484.2734" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="214.5" x2="1053.5" y1="484.2734" y2="484.2734"/><rect fill="none" height="292.3047" style="stroke: #000000; stroke-width: 2.0;" width="1111.5" x="13" y="556.2734"/><polygon fill="#EEEEEE" points="13,556.2734,77,556.2734,77,561.2734,67,571.2734,13,571.2734,13,556.2734" 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="568.4121">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="92" y="568.4839">[Register Type = Dynamic]</text><polygon fill="#000000" points="192.5,589.2422,202.5,593.2422,192.5,597.2422,196.5,593.2422" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="65.5" x2="198.5" y1="593.2422" y2="593.2422"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="72.5" y="588.3091">registerSource()</text><polygon fill="#000000" points="1037.5,618.375,1047.5,622.375,1037.5,626.375,1041.5,622.375" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="214.5" x2="1043.5" y1="622.375" y2="622.375"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="221.5" y="617.4419">registerSource()</text><polygon fill="#000000" points="812.5,647.5078,802.5,651.5078,812.5,655.5078,808.5,651.5078" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="806.5" x2="1048.5" y1="651.5078" y2="651.5078"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="818.5" y="646.5747">registerSource()</text><polygon fill="#000000" points="679.5,661.6406,669.5,665.6406,679.5,669.6406,675.5,665.6406" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="673.5" x2="790.5" y1="665.6406" y2="665.6406"/><polygon fill="#000000" points="1037.5,675.6406,1047.5,679.6406,1037.5,683.6406,1041.5,679.6406" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="796.5" x2="1043.5" y1="679.6406" y2="679.6406"/><polygon fill="#000000" points="225.5,689.6406,215.5,693.6406,225.5,697.6406,221.5,693.6406" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="219.5" x2="1048.5" y1="693.6406" y2="693.6406"/><polygon fill="#000000" points="71.5,703.6406,61.5,707.6406,71.5,711.6406,67.5,707.6406" 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="208.5" y1="707.6406" y2="707.6406"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="13" x2="1124.5" y1="741.6406" y2="741.6406"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="152" x="18" y="751.8511">[Register Type = Static]</text><polygon fill="#000000" points="779.5,772.4453,789.5,776.4453,779.5,780.4453,783.5,776.4453" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="668.5" x2="785.5" y1="776.4453" y2="776.4453"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="675.5" y="771.5122">registerSource</text><polygon fill="#000000" points="679.5,811.5781,669.5,815.5781,679.5,819.5781,675.5,815.5781" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="673.5" x2="795.5" y1="815.5781" y2="815.5781"/><polygon fill="#000000" points="383.5,897.5781,373.5,901.5781,383.5,905.5781,379.5,901.5781" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="377.5" x2="657.5" y1="901.5781" y2="901.5781"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="97" x="389.5" y="896.645">cbNewSource()</text><polygon fill="#000000" points="225.5,926.7109,215.5,930.7109,225.5,934.7109,221.5,930.7109" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="219.5" x2="361.5" y1="930.7109" y2="930.7109"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="129" x="231.5" y="925.7778">signal("NewSource")</text><polygon fill="#000000" points="651.5,940.8438,661.5,944.8438,651.5,948.8438,655.5,944.8438" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="367.5" x2="657.5" y1="944.8438" y2="944.8438"/><polygon fill="#000000" points="76.5,969.8438,66.5,973.8438,76.5,977.8438,72.5,973.8438" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="70.5" x2="203.5" y1="973.8438" y2="973.8438"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="120" x="82.5" y="968.9106">event [newSource]</text><rect fill="none" height="224.1719" style="stroke: #000000; stroke-width: 2.0;" width="769" x="599.5" y="1068.9766"/><polygon fill="#EEEEEE" points="599.5,1068.9766,663.5,1068.9766,663.5,1073.9766,653.5,1083.9766,599.5,1083.9766,599.5,1068.9766" 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="614.5" y="1081.1152">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="678.5" y="1081.187">[Register Type = Dynamic]</text><polygon fill="#000000" points="1070.5,1101.9453,1060.5,1105.9453,1070.5,1109.9453,1066.5,1105.9453" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1064.5" x2="1306.5" y1="1105.9453" y2="1105.9453"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1076.5" y="1101.0122">registerSink()</text><polygon fill="#000000" points="812.5,1131.0781,802.5,1135.0781,812.5,1139.0781,808.5,1135.0781" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="806.5" x2="1048.5" y1="1135.0781" y2="1135.0781"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="818.5" y="1130.145">registerSink()</text><polygon fill="#000000" points="1295.5,1145.2109,1305.5,1149.2109,1295.5,1153.2109,1299.5,1149.2109" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="1059.5" x2="1301.5" y1="1149.2109" y2="1149.2109"/><polygon fill="#000000" points="679.5,1159.2109,669.5,1163.2109,679.5,1167.2109,675.5,1163.2109" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="673.5" x2="790.5" y1="1163.2109" y2="1163.2109"/><polygon fill="#000000" points="1042.5,1173.2109,1052.5,1177.2109,1042.5,1181.2109,1046.5,1177.2109" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="796.5" x2="1048.5" y1="1177.2109" y2="1177.2109"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="599.5" x2="1368.5" y1="1186.2109" y2="1186.2109"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="152" x="604.5" y="1196.4214">[Register Type = Static]</text><polygon fill="#000000" points="779.5,1217.0156,789.5,1221.0156,779.5,1225.0156,783.5,1221.0156" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="668.5" x2="785.5" y1="1221.0156" y2="1221.0156"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="675.5" y="1216.0825">registerSink</text><polygon fill="#000000" points="679.5,1256.1484,669.5,1260.1484,679.5,1264.1484,675.5,1260.1484" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="673.5" x2="795.5" y1="1260.1484" y2="1260.1484"/><polygon fill="#000000" points="383.5,1342.1484,373.5,1346.1484,383.5,1350.1484,379.5,1346.1484" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="377.5" x2="657.5" y1="1346.1484" y2="1346.1484"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="389.5" y="1341.2153">cbNewSink()</text><polygon fill="#000000" points="225.5,1371.2813,215.5,1375.2813,225.5,1379.2813,221.5,1375.2813" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="219.5" x2="361.5" y1="1375.2813" y2="1375.2813"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="231.5" y="1370.3481">signal("NewSink")</text><polygon fill="#000000" points="651.5,1385.4141,661.5,1389.4141,651.5,1393.4141,655.5,1389.4141" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="367.5" x2="657.5" y1="1389.4141" y2="1389.4141"/><polygon fill="#000000" points="76.5,1414.4141,66.5,1418.4141,76.5,1422.4141,72.5,1418.4141" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="70.5" x2="203.5" y1="1418.4141" y2="1418.4141"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="102" x="82.5" y="1413.481">event [newSink]</text><rect fill="none" height="249.1719" style="stroke: #000000; stroke-width: 2.0;" width="769" x="599.5" y="1513.5469"/><polygon fill="#EEEEEE" points="599.5,1513.5469,663.5,1513.5469,663.5,1518.5469,653.5,1528.5469,599.5,1528.5469,599.5,1513.5469" 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="614.5" y="1525.6855">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="678.5" y="1525.7573">[Register Type = Dynamic]</text><polygon fill="#000000" points="1070.5,1546.5156,1060.5,1550.5156,1070.5,1554.5156,1066.5,1550.5156" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1064.5" x2="1306.5" y1="1550.5156" y2="1550.5156"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="114" x="1076.5" y="1545.5825">registerGateway()</text><polygon fill="#000000" points="812.5,1575.6484,802.5,1579.6484,812.5,1583.6484,808.5,1579.6484" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="806.5" x2="1048.5" y1="1579.6484" y2="1579.6484"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="114" x="818.5" y="1574.7153">registerGateway()</text><polygon fill="#000000" points="1295.5,1589.7813,1305.5,1593.7813,1295.5,1597.7813,1299.5,1593.7813" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="1059.5" x2="1301.5" y1="1593.7813" y2="1593.7813"/><polygon fill="#000000" points="679.5,1603.7813,669.5,1607.7813,679.5,1611.7813,675.5,1607.7813" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="673.5" x2="790.5" y1="1607.7813" y2="1607.7813"/><polygon fill="#000000" points="1042.5,1617.7813,1052.5,1621.7813,1042.5,1625.7813,1046.5,1621.7813" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="796.5" x2="1048.5" y1="1621.7813" y2="1621.7813"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="599.5" x2="1368.5" y1="1655.7813" y2="1655.7813"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="152" x="604.5" y="1665.9917">[Register Type = Static]</text><polygon fill="#000000" points="779.5,1686.5859,789.5,1690.5859,779.5,1694.5859,783.5,1690.5859" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="668.5" x2="785.5" y1="1690.5859" y2="1690.5859"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="675.5" y="1685.6528">registerGateway</text><polygon fill="#000000" points="674.5,1725.7188,664.5,1729.7188,674.5,1733.7188,670.5,1729.7188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="668.5" x2="795.5" y1="1729.7188" y2="1729.7188"/><polygon fill="#000000" points="1070.5,1836.7188,1060.5,1840.7188,1070.5,1844.7188,1066.5,1840.7188" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1064.5" x2="1306.5" y1="1840.7188" y2="1840.7188"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="229" x="1076.5" y="1835.7856">hookDomainRegistrationCompelte()</text><polygon fill="#000000" points="812.5,1865.8516,802.5,1869.8516,812.5,1873.8516,808.5,1869.8516" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="806.5" x2="1048.5" y1="1869.8516" y2="1869.8516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="229" x="818.5" y="1864.9185">hookDomainRegistrationCompelte()</text><polygon fill="#000000" points="679.5,1879.9844,669.5,1883.9844,679.5,1887.9844,675.5,1883.9844" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="673.5" x2="790.5" y1="1883.9844" y2="1883.9844"/><polygon fill="#000000" points="1042.5,1923.9844,1052.5,1927.9844,1042.5,1931.9844,1046.5,1927.9844" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="796.5" x2="1048.5" y1="1927.9844" y2="1927.9844"/><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+alt Domain Type = DSP/Amplifier
+ RS <- AD : registerDomain()
+ activate AD #00FF00
+
+ activate RS #00FF00
+ RR <- RS : registerDomain()
+
+ activate RR #00FF00
+ |||
+ AM <- RR
+ activate AM #00ff00
+ deactivate AM
+ |||
+ RR - -> RS
+ deactivate RR
+
+ RS - -> AD
+ deactivate RS
+
+ deactivate AD
+else Domain Type = SoundManager
+ RS <- SM : registerDomain()
+ activate SM #00FF00
+ activate RS #00FF00
+
+ RR <- RS : registerDomain()
+
+ activate RR #00FF00
+ |||
+ AM <- RR
+ activate AM #00ff00
+ deactivate AM
+ |||
+ RR - -> RS
+ deactivate RR
+
+ RS - -> SM
+ deactivate RS
+ deactivate SM
+end
+|||
+|||
+alt Register Type = Dynamic
+ SM <- AP : registerSource()
+ activate AP #00FF00
+
+ activate SM #00FF00
+ RS <- SM : registerSource()
+
+ activate RS #00FF00
+ RS -> RR : registerSource()
+ activate RR #00FF00
+
+ RR -> AM
+ activate AM #00FF00
+ RR - -> RS
+ deactivate RR
+
+ RS - -> SM
+ SM - -> AP
+ deactivate RS
+ deactivate SM
+ deactivate AP
+ |||
+
+else Register Type = Static
+ AM -> RR : registerSource
+ activate RR #00FF00
+ |||
+ RR - -> AM
+ deactivate RR
+ |||
+end
+|||
+AM -> CS : cbNewSource()
+activate CS #00FF00
+CS -> SM : signal("NewSource")
+activate SM #00FF00
+
+CS - -> AM
+deactivate CS
+deactivate AM
+
+SM -> AP : event [newSource]
+activate AP #00FF00
+deactivate SM
+
+deactivate AP
+|||
+|||
+alt Register Type = Dynamic
+ RS <- AD : registerSink()
+ activate AD #00FF00
+
+ activate RS #00FF00
+ RR <- RS : registerSink()
+ activate RR #00FF00
+
+ RS - -> AD
+' deactivate AD
+
+ RR -> AM
+ activate AM #00FF00
+ RR - -> RS
+ deactivate RS
+ deactivate RR
+
+
+else Register Type = Static
+ AM -> RR : registerSink
+ activate RR #00FF00
+ |||
+ RR - -> AM
+ deactivate RR
+ |||
+end
+|||
+AM -> CS : cbNewSink()
+
+activate CS #00FF00
+CS -> SM : signal("NewSink")
+activate SM #00FF00
+
+CS - -> AM
+deactivate CS
+deactivate AM
+
+SM -> AP : event [newSink]
+activate AP #00FF00
+deactivate SM
+deactivate AP
+|||
+|||
+alt Register Type = Dynamic
+ RS <- AD : registerGateway()
+' activate AD #00FF00
+
+ activate RS #00FF00
+ RR <- RS : registerGateway()
+ activate RR #00FF00
+
+ RS - -> AD
+' deactivate AD
+
+ RR -> AM
+ activate AM #00FF00
+ RR - -> RS
+ deactivate RS
+ deactivate RR
+ |||
+else Register Type = Static
+ AM -> RR : registerGateway
+ activate RR #00FF00
+ |||
+ RR - -> AM
+ deactivate RR
+ deactivate AM
+ |||
+end
+
+|||
+|||
+AD -> RS : hookDomainRegistrationCompelte()
+'activate AD #00FF00
+activate RS #00FF00
+RS -> RR : hookDomainRegistrationCompelte()
+deactivate AD
+activate RR #00FF00
+RR -> AM
+activate AM #00FF00
+deactivate AM
+
+RR - -> RS
+deactivate RR
+deactivate RS
+deactivate AD
+@enduml
+
+PlantUML version 1.2017.18beta10(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
diff --git a/doc/parts/seq_releasesoundmode.svg b/doc/parts/seq_releasesoundmode.svg
new file mode 100644
index 0000000..cbe1fa0
--- /dev/null
+++ b/doc/parts/seq_releasesoundmode.svg
@@ -0,0 +1,119 @@
+<?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="1079px" preserveAspectRatio="none" style="width:1374px;height:1079px;background:#EEEBDC;" version="1.1" viewBox="0 0 1374 1079" width="1374px" zoomAndPan="magnify"><defs><filter height="300%" id="fcbo85lr89mzm" 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="1057.2109" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="544.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="559" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="1057.2109" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="688.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="817.5" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="1057.2109" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="1117.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="1132" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="185.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="93.9688"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="830.6797"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="1012.0781"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="330.5" y="114.9688"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="330.5" y="787.5469"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="330.5" y="968.9453"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="121.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="610.5" y="144.1016"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="610.5" y="733.4141"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="610.5" y="914.8125"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="765" y="198.2344"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="820.8438" style="stroke: #404040; stroke-width: 1.0;" width="10" x="906.5" y="237.3672"/><rect fill="#EEEBDC" filter="url(#fcbo85lr89mzm)" height="705.8438" style="stroke: #000000; stroke-width: 2.0;" width="1350.5" x="13" y="344.3672"/><rect fill="#EEEBDC" filter="url(#fcbo85lr89mzm)" height="288.0781" style="stroke: #000000; stroke-width: 2.0;" width="815" x="538.5" y="392.3359"/><rect fill="#EEEBDC" height="178.0078" style="stroke: none; stroke-width: 1.0;" width="815" x="538.5" y="502.4063"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="60" x2="60" y1="83.9688" y2="1067.2109"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="335" x2="335" y1="83.9688" y2="1067.2109"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="615.5" x2="615.5" y1="83.9688" y2="1067.2109"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="769.5" x2="769.5" y1="83.9688" y2="1067.2109"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="911.5" x2="911.5" y1="83.9688" y2="1067.2109"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1043.5" x2="1043.5" y1="83.9688" y2="1067.2109"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1181.5" x2="1181.5" y1="83.9688" y2="1067.2109"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1297.5" x2="1297.5" y1="83.9688" y2="1067.2109"/><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(#fcbo85lr89mzm)" 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(#fcbo85lr89mzm)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="279" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="286" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="548.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="555.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="692.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="699.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="857.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="864.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="975.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="982.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="1121.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1128.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1251.5" y="81.1387">Audio Domain</text><ellipse cx="1297.5" cy="13" fill="#FFFACD" filter="url(#fcbo85lr89mzm)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1297.5,21 L1297.5,48 M1284.5,29 L1310.5,29 M1297.5,48 L1284.5,63 M1297.5,48 L1310.5,63 " fill="#FFFACD" filter="url(#fcbo85lr89mzm)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="185.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="93.9688"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="830.6797"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="55.5" y="1012.0781"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="330.5" y="114.9688"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="330.5" y="787.5469"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="330.5" y="968.9453"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="121.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="610.5" y="144.1016"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="610.5" y="733.4141"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="610.5" y="914.8125"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="765" y="198.2344"/><rect fill="#00FF00" filter="url(#fcbo85lr89mzm)" height="820.8438" style="stroke: #404040; stroke-width: 1.0;" width="10" x="906.5" y="237.3672"/><polygon fill="#000000" points="318.5,110.9688,328.5,114.9688,318.5,118.9688,322.5,114.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="65.5" x2="324.5" y1="114.9688" y2="114.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="72.5" y="110.0356">disconnect()</text><polygon fill="#000000" points="598.5,140.1016,608.5,144.1016,598.5,148.1016,602.5,144.1016" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="340.5" x2="604.5" y1="144.1016" y2="144.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="347.5" y="139.1685">disconnect()</text><polygon fill="#000000" points="753,194.2344,763,198.2344,753,202.2344,757,198.2344" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="620.5" x2="759" y1="198.2344" y2="198.2344"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="79" x="627.5" y="193.3013">disconnect()</text><polygon fill="#000000" points="894.5,233.3672,904.5,237.3672,894.5,241.3672,898.5,237.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="775" x2="900.5" y1="237.3672" y2="237.3672"/><polygon fill="#000000" points="631.5,247.3672,621.5,251.3672,631.5,255.3672,627.5,251.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="625.5" x2="769" y1="251.3672" y2="251.3672"/><polygon fill="#000000" points="351.5,261.3672,341.5,265.3672,351.5,269.3672,347.5,265.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="345.5" x2="614.5" y1="265.3672" y2="265.3672"/><polygon fill="#000000" points="71.5,275.3672,61.5,279.3672,71.5,283.3672,67.5,279.3672" 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="334.5" y1="279.3672" y2="279.3672"/><rect fill="none" height="705.8438" style="stroke: #000000; stroke-width: 2.0;" width="1350.5" x="13" y="344.3672"/><polygon fill="#EEEEEE" points="13,344.3672,82,344.3672,82,349.3672,72,359.3672,13,359.3672,13,344.3672" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="24" x="28" y="356.5059">opt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="186" x="97" y="356.5776">[Main connection is existing]</text><rect fill="none" height="288.0781" style="stroke: #000000; stroke-width: 2.0;" width="815" x="538.5" y="392.3359"/><polygon fill="#EEEEEE" points="538.5,392.3359,602.5,392.3359,602.5,397.3359,592.5,407.3359,538.5,407.3359,538.5,392.3359" 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="553.5" y="404.4746">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="256" x="617.5" y="404.5464">[MainConnectioState = CS_SUSPENDED]</text><rect fill="#FFFFFF" filter="url(#fcbo85lr89mzm)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="797" x="545.5" y="433.3047"/><polygon fill="#EEEEEE" points="545.5,433.3047,610.5,433.3047,610.5,438.3047,600.5,448.3047,545.5,448.3047,545.5,433.3047" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="558.5" y="446.4434">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="157" x="867.5" y="464.3716">Disconnect Sound Route</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="538.5" x2="1353.5" y1="503.4063" y2="503.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="112" x="543.5" y="513.6167">[CS_CONNECTED]</text><rect fill="#FFFFFF" filter="url(#fcbo85lr89mzm)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="797" x="545.5" y="542.2109"/><polygon fill="#EEEEEE" points="545.5,542.2109,610.5,542.2109,610.5,547.2109,600.5,557.2109,545.5,557.2109,545.5,542.2109" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="558.5" y="555.3496">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="146" x="873" y="573.2778">Stop Sound Streaming</text><rect fill="#FFFFFF" filter="url(#fcbo85lr89mzm)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="797" x="545.5" y="611.3125"/><polygon fill="#EEEEEE" points="545.5,611.3125,610.5,611.3125,610.5,616.3125,600.5,626.3125,545.5,626.3125,545.5,611.3125" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="558.5" y="624.4512">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="157" x="867.5" y="642.3794">Disconnect Sound Route</text><polygon fill="#000000" points="631.5,729.4141,621.5,733.4141,631.5,737.4141,627.5,733.4141" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="625.5" x2="905.5" y1="733.4141" y2="733.4141"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="219" x="637.5" y="728.481">cbMainConnectionStateChanged()</text><polygon fill="#000000" points="351.5,783.5469,341.5,787.5469,351.5,791.5469,347.5,787.5469" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="345.5" x2="609.5" y1="787.5469" y2="787.5469"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="251" x="357.5" y="782.6138">signal("MainConnectionStateChanged")</text><polygon fill="#000000" points="894.5,797.6797,904.5,801.6797,894.5,805.6797,898.5,801.6797" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="615.5" x2="900.5" y1="801.6797" y2="801.6797"/><polygon fill="#000000" points="76.5,826.6797,66.5,830.6797,76.5,834.6797,72.5,830.6797" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="70.5" x2="329.5" y1="830.6797" y2="830.6797"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="246" x="82.5" y="825.7466">event [mainConnectionStateChanged]</text><polygon fill="#000000" points="631.5,910.8125,621.5,914.8125,631.5,918.8125,627.5,914.8125" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="625.5" x2="905.5" y1="914.8125" y2="914.8125"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="179" x="637.5" y="909.8794">cbRemoveMainConnection()</text><polygon fill="#000000" points="351.5,964.9453,341.5,968.9453,351.5,972.9453,347.5,968.9453" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="345.5" x2="609.5" y1="968.9453" y2="968.9453"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="357.5" y="964.0122">signal("RemoveMainConnection")</text><polygon fill="#000000" points="894.5,979.0781,904.5,983.0781,894.5,987.0781,898.5,983.0781" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="615.5" x2="900.5" y1="983.0781" y2="983.0781"/><polygon fill="#000000" points="76.5,1008.0781,66.5,1012.0781,76.5,1016.0781,72.5,1012.0781" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="70.5" x2="329.5" y1="1012.0781" y2="1012.0781"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="201" x="82.5" y="1007.145">event [removeMainConnection]</text><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+
+activate AP #00ff00
+AP -> SM : disconnect()
+activate SM #00ff00
+SM -> CS : disconnect()
+activate CS #00ff00
+|||
+CS -> CR : disconnect()
+activate CR #00ff00
+|||
+CR -> AM
+activate AM #00ff00
+CR - -> CS
+deactivate CR
+CS- ->SM
+deactivate CS
+SM- ->AP
+deactivate SM
+deactivate AP
+|||
+|||
+opt Main connection is existing
+ |||
+ alt MainConnectioState = CS_SUSPENDED
+ |||
+ ref over CS,AD : Disconnect Sound Route
+ |||
+ else CS_CONNECTED
+ |||
+ ref over CS,AD : Stop Sound Streaming
+ |||
+ ref over CS,AD : Disconnect Sound Route
+ |||
+ end
+ |||
+ AM -> CS : cbMainConnectionStateChanged()
+ activate CS #00ff00
+ |||
+ CS -> SM : signal("MainConnectionStateChanged")
+ activate SM #00ff00
+ CS - -> AM
+ deactivate CS
+ SM -> AP : event [mainConnectionStateChanged]
+ activate AP #00ff00
+ deactivate SM
+ deactivate AP
+ |||
+ AM -> CS : cbRemoveMainConnection()
+ activate CS #00ff00
+ |||
+ CS -> SM : signal("RemoveMainConnection")
+ activate SM #00ff00
+ CS - -> AM
+ deactivate CS
+ SM -> AP : event [removeMainConnection]
+ activate AP #00ff00
+ deactivate SM
+ deactivate AP
+
+end
+@enduml
+
+PlantUML version 1.2017.18beta10(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
diff --git a/doc/parts/seq_requestsoundmode.svg b/doc/parts/seq_requestsoundmode.svg
new file mode 100644
index 0000000..5ea9616
--- /dev/null
+++ b/doc/parts/seq_requestsoundmode.svg
@@ -0,0 +1,165 @@
+<?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="1701px" preserveAspectRatio="none" style="width:1368px;height:1701px;background:#EEEBDC;" version="1.1" viewBox="0 0 1368 1701" width="1368px" zoomAndPan="magnify"><defs><filter height="300%" id="f1lx8mwkk69qwd" 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="1679.4453" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="538.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="553" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="1679.4453" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="682.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="811.5" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="1679.4453" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="1111.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="1126" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="135.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="93.9688"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="503.1328"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="699.6641"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="1459.9141"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="1641.3125"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="114.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="88.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="445"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="88.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="641.5313"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="1416.7813"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="1598.1797"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="71.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="144.1016"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="415.8672"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="612.3984"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="1387.6484"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="1569.0469"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="28.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="759" y="173.2344"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="1493.0781" style="stroke: #404040; stroke-width: 1.0;" width="10" x="900.5" y="187.3672"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="905.5" y="954.3984"/><rect fill="#EEEBDC" filter="url(#f1lx8mwkk69qwd)" height="359.0313" style="stroke: #000000; stroke-width: 2.0;" width="946.5" x="23" y="378.8984"/><rect fill="#EEEBDC" filter="url(#f1lx8mwkk69qwd)" height="498.1875" style="stroke: #000000; stroke-width: 2.0;" width="1344.5" x="13" y="861.4609"/><rect fill="#EEEBDC" filter="url(#f1lx8mwkk69qwd)" height="418.2188" style="stroke: #000000; stroke-width: 2.0;" width="1324.5" x="23" y="909.4297"/><rect fill="#EEEBDC" height="133.0078" style="stroke: none; stroke-width: 1.0;" width="1324.5" x="23" y="1115.7344"/><rect fill="#EEEBDC" height="78.9063" style="stroke: none; stroke-width: 1.0;" width="1324.5" x="23" y="1248.7422"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="70" x2="70" y1="83.9688" y2="1689.4453"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="337" x2="337" y1="83.9688" y2="1689.4453"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="609.5" x2="609.5" y1="83.9688" y2="1689.4453"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="763.5" x2="763.5" y1="83.9688" y2="1689.4453"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="905.5" x2="905.5" y1="83.9688" y2="1689.4453"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1037.5" x2="1037.5" y1="83.9688" y2="1689.4453"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1175.5" x2="1175.5" y1="83.9688" y2="1689.4453"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1291.5" x2="1291.5" y1="83.9688" y2="1689.4453"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="33" y="81.1387">Application</text><ellipse cx="70.5" cy="13" fill="#FFFACD" filter="url(#f1lx8mwkk69qwd)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M70.5,21 L70.5,48 M57.5,29 L83.5,29 M70.5,48 L57.5,63 M70.5,48 L83.5,63 " fill="#FFFACD" filter="url(#f1lx8mwkk69qwd)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="281" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="288" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="542.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="549.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="686.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="693.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="851.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="858.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="969.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="976.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="1115.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1122.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1245.5" y="81.1387">Audio Domain</text><ellipse cx="1291.5" cy="13" fill="#FFFACD" filter="url(#f1lx8mwkk69qwd)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1291.5,21 L1291.5,48 M1278.5,29 L1304.5,29 M1291.5,48 L1278.5,63 M1291.5,48 L1304.5,63 " fill="#FFFACD" filter="url(#f1lx8mwkk69qwd)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="135.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="93.9688"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="503.1328"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="699.6641"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="1459.9141"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="65.5" y="1641.3125"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="114.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="88.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="445"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="88.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="641.5313"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="1416.7813"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="73.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="332.5" y="1598.1797"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="71.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="144.1016"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="415.8672"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="612.3984"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="1387.6484"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="604.5" y="1569.0469"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="28.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="759" y="173.2344"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="1493.0781" style="stroke: #404040; stroke-width: 1.0;" width="10" x="900.5" y="187.3672"/><rect fill="#00FF00" filter="url(#f1lx8mwkk69qwd)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="905.5" y="954.3984"/><polygon fill="#000000" points="320.5,110.9688,330.5,114.9688,320.5,118.9688,324.5,114.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="75.5" x2="326.5" y1="114.9688" y2="114.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="82.5" y="110.0356">connect()</text><polygon fill="#000000" points="592.5,140.1016,602.5,144.1016,592.5,148.1016,596.5,144.1016" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="342.5" x2="598.5" y1="144.1016" y2="144.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="349.5" y="139.1685">connect()</text><polygon fill="#000000" points="747,169.2344,757,173.2344,747,177.2344,751,173.2344" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="614.5" x2="753" y1="173.2344" y2="173.2344"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="621.5" y="168.3013">connect()</text><polygon fill="#000000" points="888.5,183.3672,898.5,187.3672,888.5,191.3672,892.5,187.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="769" x2="894.5" y1="187.3672" y2="187.3672"/><polygon fill="#000000" points="625.5,197.3672,615.5,201.3672,625.5,205.3672,621.5,201.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="619.5" x2="763" y1="201.3672" y2="201.3672"/><polygon fill="#000000" points="353.5,211.3672,343.5,215.3672,353.5,219.3672,349.5,215.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="347.5" x2="608.5" y1="215.3672" y2="215.3672"/><polygon fill="#000000" points="81.5,225.3672,71.5,229.3672,81.5,233.3672,77.5,229.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="75.5" x2="336.5" y1="229.3672" y2="229.3672"/><polygon fill="#FBFB77" filter="url(#f1lx8mwkk69qwd)" points="915,292.3672,915,362.3672,1195,362.3672,1195,302.3672,1185,292.3672,915,292.3672" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1185" x2="1185" y1="292.3672" y2="302.3672"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1195" x2="1185" y1="302.3672" y2="302.3672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="230" x="921" y="309.4341">Please note that if same connection</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="249" x="921" y="324.5669">(source and sink are completely same)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="259" x="921" y="339.6997">has bee created already, Audio Manager</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="253" x="921" y="354.8325">does not notify cbNewMainConnection()</text><rect fill="none" height="359.0313" style="stroke: #000000; stroke-width: 2.0;" width="946.5" x="23" y="378.8984"/><polygon fill="#EEEEEE" points="23,378.8984,92,378.8984,92,383.8984,82,393.8984,23,393.8984,23,378.8984" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="24" x="38" y="391.0371">opt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="211" x="107" y="391.1089">[main connection is not existing]</text><polygon fill="#000000" points="625.5,411.8672,615.5,415.8672,625.5,419.8672,621.5,415.8672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="619.5" x2="899.5" y1="415.8672" y2="415.8672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="631.5" y="410.9341">cbNewMainConnection</text><polygon fill="#000000" points="353.5,441,343.5,445,353.5,449,349.5,445" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="347.5" x2="603.5" y1="445" y2="445"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="359.5" y="440.0669">signal("NewMainConnection")</text><polygon fill="#000000" points="888.5,455.1328,898.5,459.1328,888.5,463.1328,892.5,459.1328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="609.5" x2="894.5" y1="459.1328" y2="459.1328"/><polygon fill="#000000" points="86.5,499.1328,76.5,503.1328,86.5,507.1328,82.5,503.1328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="80.5" x2="331.5" y1="503.1328" y2="503.1328"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="172" x="92.5" y="483.1997">event [newMainConnection</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="132" x="148.5" y="498.3325">(mainConnectionID)]</text><polygon fill="#000000" points="625.5,608.3984,615.5,612.3984,625.5,616.3984,621.5,612.3984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="619.5" x2="899.5" y1="612.3984" y2="612.3984"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="201" x="631.5" y="607.4653">cbMainConnectionStateChange</text><polygon fill="#000000" points="353.5,637.5313,343.5,641.5313,353.5,645.5313,349.5,641.5313" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="347.5" x2="603.5" y1="641.5313" y2="641.5313"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="243" x="359.5" y="636.5981">signal("MainConnectionStateChange")</text><polygon fill="#000000" points="888.5,651.6641,898.5,655.6641,888.5,659.6641,892.5,655.6641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="609.5" x2="894.5" y1="655.6641" y2="655.6641"/><polygon fill="#000000" points="86.5,695.6641,76.5,699.6641,86.5,703.6641,82.5,699.6641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="80.5" x2="331.5" y1="699.6641" y2="699.6641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="233" x="92.5" y="679.731">event [mainConnectionStateChange</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="143" x="148.5" y="694.8638">(CS_DISCONNECTED)]</text><polygon fill="#FBFB77" filter="url(#f1lx8mwkk69qwd)" points="915,774.9297,915,844.9297,1161,844.9297,1161,784.9297,1151,774.9297,915,774.9297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1151" x2="1151" y1="774.9297" y2="784.9297"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1161" x2="1151" y1="784.9297" y2="784.9297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="218" x="921" y="791.9966">Once connection is requested and</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="200" x="921" y="807.1294">created in AudioManager, main</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="209" x="921" y="822.2622">connection continuously perform</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="921" y="837.395">transition caused by policy decision</text><rect fill="none" height="498.1875" style="stroke: #000000; stroke-width: 2.0;" width="1344.5" x="13" y="861.4609"/><polygon fill="#EEEEEE" points="13,861.4609,89,861.4609,89,866.4609,79,876.4609,13,876.4609,13,861.4609" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="31" x="28" y="873.5996">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="206" x="104" y="873.6714">[Lifecycle of a main connection]</text><rect fill="none" height="418.2188" style="stroke: #000000; stroke-width: 2.0;" width="1324.5" x="23" y="909.4297"/><polygon fill="#EEEEEE" points="23,909.4297,87,909.4297,87,914.4297,77,924.4297,23,924.4297,23,909.4297" 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="38" y="921.5684">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="102" y="921.6401">[Transition of sound mode = Connect]</text><line style="stroke: #000000; stroke-width: 1.0;" x1="915.5" x2="957.5" y1="946.5313" y2="946.5313"/><line style="stroke: #000000; stroke-width: 1.0;" x1="957.5" x2="957.5" y1="946.5313" y2="959.5313"/><line style="stroke: #000000; stroke-width: 1.0;" x1="916.5" x2="957.5" y1="959.5313" y2="959.5313"/><polygon fill="#000000" points="926.5,955.5313,916.5,959.5313,926.5,963.5313,922.5,959.5313" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="107" x="922.5" y="941.4653">Policy_Decision()</text><rect fill="#FFFFFF" filter="url(#f1lx8mwkk69qwd)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="1306.5" x="30" y="1007.5313"/><polygon fill="#EEEEEE" points="30,1007.5313,95,1007.5313,95,1012.5313,85,1022.5313,30,1022.5313,30,1007.5313" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="43" y="1020.6699">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="139" x="615.75" y="1038.5981">Connect Sound Route</text><rect fill="#FFFFFF" filter="url(#f1lx8mwkk69qwd)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="1306.5" x="30" y="1061.6328"/><polygon fill="#EEEEEE" points="30,1061.6328,95,1061.6328,95,1066.6328,85,1076.6328,30,1076.6328,30,1061.6328" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="43" y="1074.7715">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="611.25" y="1092.6997">Start Sound Streaming</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="23" x2="1347.5" y1="1116.7344" y2="1116.7344"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="81" x="28" y="1126.9448">[Disconnect]</text><rect fill="#FFFFFF" filter="url(#f1lx8mwkk69qwd)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="1306.5" x="30" y="1140.5391"/><polygon fill="#EEEEEE" points="30,1140.5391,95,1140.5391,95,1145.5391,85,1155.5391,30,1155.5391,30,1140.5391" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="43" y="1153.6777">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="146" x="612.25" y="1171.606">Stop Sound Streaming</text><rect fill="#FFFFFF" filter="url(#f1lx8mwkk69qwd)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="1306.5" x="30" y="1194.6406"/><polygon fill="#EEEEEE" points="30,1194.6406,95,1194.6406,95,1199.6406,85,1209.6406,30,1209.6406,30,1194.6406" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="43" y="1207.7793">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="157" x="606.75" y="1225.7075">Disconnect Sound Route</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="23" x2="1347.5" y1="1249.7422" y2="1249.7422"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="65" x="28" y="1259.9526">[Suspend]</text><rect fill="#FFFFFF" filter="url(#f1lx8mwkk69qwd)" height="39.1016" style="stroke: #000000; stroke-width: 2.0;" width="1306.5" x="30" y="1273.5469"/><polygon fill="#EEEEEE" points="30,1273.5469,95,1273.5469,95,1278.5469,85,1288.5469,30,1288.5469,30,1273.5469" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="20" x="43" y="1286.6855">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="146" x="612.25" y="1304.6138">Stop Sound Streaming</text><polygon fill="#000000" points="625.5,1383.6484,615.5,1387.6484,625.5,1391.6484,621.5,1387.6484" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="619.5" x2="899.5" y1="1387.6484" y2="1387.6484"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="152" x="631.5" y="1382.7153">cbMainConnectionState</text><polygon fill="#000000" points="353.5,1412.7813,343.5,1416.7813,353.5,1420.7813,349.5,1416.7813" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="347.5" x2="603.5" y1="1416.7813" y2="1416.7813"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="194" x="359.5" y="1411.8481">signal("MainConnectionState")</text><polygon fill="#000000" points="888.5,1426.9141,898.5,1430.9141,888.5,1434.9141,892.5,1430.9141" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="609.5" x2="894.5" y1="1430.9141" y2="1430.9141"/><polygon fill="#000000" points="86.5,1455.9141,76.5,1459.9141,86.5,1463.9141,82.5,1459.9141" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="80.5" x2="331.5" y1="1459.9141" y2="1459.9141"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="92.5" y="1454.981">event [mainConnectionStateChange]</text><polygon fill="#000000" points="625.5,1565.0469,615.5,1569.0469,625.5,1573.0469,621.5,1569.0469" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="619.5" x2="899.5" y1="1569.0469" y2="1569.0469"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="169" x="631.5" y="1564.1138">cbRemoveMainConnection</text><polygon fill="#000000" points="353.5,1594.1797,343.5,1598.1797,353.5,1602.1797,349.5,1598.1797" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="347.5" x2="603.5" y1="1598.1797" y2="1598.1797"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="359.5" y="1593.2466">signal("RemoveMainConnection")</text><polygon fill="#000000" points="888.5,1608.3125,898.5,1612.3125,888.5,1616.3125,892.5,1612.3125" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="609.5" x2="894.5" y1="1612.3125" y2="1612.3125"/><polygon fill="#000000" points="86.5,1637.3125,76.5,1641.3125,86.5,1645.3125,82.5,1641.3125" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="80.5" x2="331.5" y1="1641.3125" y2="1641.3125"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="203" x="92.5" y="1636.3794">event [removemainConnection]</text><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+activate AP #00FF00
+AP -> SM : connect()
+activate SM #00FF00
+SM -> CS : connect()
+activate CS #00FF00
+
+CS ->CR : connect()
+activate CR #00FF00
+
+CR->AM
+activate AM #00FF00
+CR - -> CS
+deactivate CR
+
+CS - -> SM
+deactivate CS
+SM - -> AP
+deactivate SM
+deactivate AP
+|||
+|||
+note right of AM
+ Please note that if same connection
+ (source and sink are completely same)
+ has bee created already, Audio Manager
+ does not notify cbNewMainConnection()
+end note
+opt main connection is not existing
+ AM -> CS : cbNewMainConnection
+ activate CS #00FF00
+ CS -> SM : signal("NewMainConnection")
+ activate SM #00FF00
+ CS - -> AM
+ deactivate CS
+ SM -> AP : event [newMainConnection\n (mainConnectionID)]
+ activate AP #00ff00
+ deactivate SM
+ deactivate AP
+ |||
+ |||
+ AM -> CS : cbMainConnectionStateChange
+ activate CS #00FF00
+ CS -> SM : signal("MainConnectionStateChange")
+ activate SM #00FF00
+ CS - -> AM
+ deactivate CS
+ SM -> AP : event [mainConnectionStateChange\n (CS_DISCONNECTED)]
+ activate AP #00ff00
+ deactivate SM
+ deactivate AP
+end
+|||
+note right of AM
+ Once connection is requested and
+ created in AudioManager, main
+ connection continuously perform
+ transition caused by policy decision
+end note
+
+loop Lifecycle of a main connection
+ |||
+ alt Transition of sound mode = Connect
+ AM -> AM : Policy_Decision()
+ activate AM #00ff00
+ deactivate AM
+ ||10||
+ ref over AP,AD : Connect Sound Route
+ ||10||
+ ref over AP,AD : Start Sound Streaming
+ ||10||
+ else Disconnect
+ ||10||
+ ref over AP,AD : Stop Sound Streaming
+ ||10||
+ ref over AP,AD : Disconnect Sound Route
+ ||10||
+ else Suspend
+ ||10||
+ ref over AP,AD : Stop Sound Streaming
+ ||10||
+ end
+ |||
+end
+
+AM -> CS : cbMainConnectionState
+activate CS #00FF00
+CS -> SM : signal("MainConnectionState")
+activate SM #00FF00
+CS - -> AM
+deactivate CS
+SM -> AP : event [mainConnectionStateChange]
+activate AP #00ff00
+deactivate SM
+deactivate AP
+|||
+|||
+AM -> CS : cbRemoveMainConnection
+activate CS #00FF00
+CS -> SM : signal("RemoveMainConnection")
+activate SM #00FF00
+CS - -> AM
+deactivate CS
+SM -> AP : event [removemainConnection]
+activate AP #00ff00
+deactivate SM
+deactivate AP
+@enduml
+
+PlantUML version 1.2017.18beta10(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
diff --git a/doc/parts/seq_setmutestate.svg b/doc/parts/seq_setmutestate.svg
new file mode 100644
index 0000000..8d39775
--- /dev/null
+++ b/doc/parts/seq_setmutestate.svg
@@ -0,0 +1,115 @@
+<?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="738px" preserveAspectRatio="none" style="width:1313px;height:738px;background:#EEEBDC;" version="1.1" viewBox="0 0 1313 738" width="1313px" zoomAndPan="magnify"><defs><filter height="300%" id="f13x6ysrvu2fjr" 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="716.2969" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="437.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="452" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="716.2969" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="582" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="711" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="716.2969" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="1081" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="1095.5" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="160.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="93.9688"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="678.1641"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="139.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="268.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="101.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="268.5" y="607.0313"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="96.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="503.5" y="144.1016"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="503.5" y="552.8984"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="173.2344"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="139.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="800" y="212.3672"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="136.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="800" y="498.8984"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="189.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="932" y="459.7656"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1140" y="283.3672"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="218.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1140" y="430.6328"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="93.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1256" y="337.5"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="45" x2="45" y1="83.9688" y2="726.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="273" x2="273" y1="83.9688" y2="726.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="508.5" x2="508.5" y1="83.9688" y2="726.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="663" x2="663" y1="83.9688" y2="726.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="805" x2="805" y1="83.9688" y2="726.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="937" x2="937" y1="83.9688" y2="726.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1145" x2="1145" y1="83.9688" y2="726.2969"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1261" x2="1261" y1="83.9688" y2="726.2969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="8" y="81.1387">Application</text><ellipse cx="45.5" cy="13" fill="#FFFACD" filter="url(#f13x6ysrvu2fjr)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M45.5,21 L45.5,48 M32.5,29 L58.5,29 M45.5,48 L32.5,63 M45.5,48 L58.5,63 " fill="#FFFACD" filter="url(#f13x6ysrvu2fjr)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="217" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="224" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="441.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="448.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="586" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="593" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="751" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="758" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="869" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="876" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="1085" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1092" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1215" y="81.1387">Audio Domain</text><ellipse cx="1261" cy="13" fill="#FFFACD" filter="url(#f13x6ysrvu2fjr)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1261,21 L1261,48 M1248,29 L1274,29 M1261,48 L1248,63 M1261,48 L1274,63 " fill="#FFFACD" filter="url(#f13x6ysrvu2fjr)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="160.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="93.9688"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="40.5" y="678.1641"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="139.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="268.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="101.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="268.5" y="607.0313"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="96.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="503.5" y="144.1016"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="503.5" y="552.8984"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="658.5" y="173.2344"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="139.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="800" y="212.3672"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="136.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="800" y="498.8984"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="189.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="932" y="459.7656"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1140" y="283.3672"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="218.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1140" y="430.6328"/><rect fill="#00FF00" filter="url(#f13x6ysrvu2fjr)" height="93.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1256" y="337.5"/><polygon fill="#000000" points="256.5,110.9688,266.5,114.9688,256.5,118.9688,260.5,114.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="50.5" x2="262.5" y1="114.9688" y2="114.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="126" x="57.5" y="110.0356">SetSinkMuteState()</text><polygon fill="#000000" points="491.5,140.1016,501.5,144.1016,491.5,148.1016,495.5,144.1016" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="278.5" x2="497.5" y1="144.1016" y2="144.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="126" x="285.5" y="139.1685">SetSinkMuteState()</text><polygon fill="#000000" points="646.5,169.2344,656.5,173.2344,646.5,177.2344,650.5,173.2344" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="513.5" x2="652.5" y1="173.2344" y2="173.2344"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="126" x="520.5" y="168.3013">SetSinkMuteState()</text><polygon fill="#000000" points="788,208.3672,798,212.3672,788,216.3672,792,212.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="668.5" x2="794" y1="212.3672" y2="212.3672"/><polygon fill="#000000" points="524.5,222.3672,514.5,226.3672,524.5,230.3672,520.5,226.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="518.5" x2="662.5" y1="226.3672" y2="226.3672"/><polygon fill="#000000" points="289.5,236.3672,279.5,240.3672,289.5,244.3672,285.5,240.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="283.5" x2="507.5" y1="240.3672" y2="240.3672"/><polygon fill="#000000" points="56.5,250.3672,46.5,254.3672,56.5,258.3672,52.5,254.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="50.5" x2="272.5" y1="254.3672" y2="254.3672"/><polygon fill="#000000" points="1128,279.3672,1138,283.3672,1128,287.3672,1132,283.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="810" x2="1134" y1="283.3672" y2="283.3672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="145" x="817" y="278.4341">asyncSetSinkVolume()</text><polygon fill="#000000" points="1244,333.5,1254,337.5,1244,341.5,1248,337.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1150" x2="1250" y1="337.5" y2="337.5"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="1157" y="332.5669">SetMute()</text><polygon fill="#000000" points="816,347.6328,806,351.6328,816,355.6328,812,351.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="810" x2="1144" y1="351.6328" y2="351.6328"/><polygon fill="#000000" points="1161,426.6328,1151,430.6328,1161,434.6328,1157,430.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1155" x2="1260" y1="430.6328" y2="430.6328"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="1167" y="425.6997">ackSetMute()</text><polygon fill="#000000" points="953,455.7656,943,459.7656,953,463.7656,949,459.7656" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="947" x2="1139" y1="459.7656" y2="459.7656"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="179" x="959" y="454.8325">ackSetSinkVolumeChange()</text><polygon fill="#000000" points="821,494.8984,811,498.8984,821,502.8984,817,498.8984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="815" x2="931" y1="498.8984" y2="498.8984"/><polygon fill="#000000" points="524.5,548.8984,514.5,552.8984,524.5,556.8984,520.5,552.8984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="518.5" x2="799" y1="552.8984" y2="552.8984"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="166" x="530.5" y="547.9653">cbSinkMuteStateChanged</text><polygon fill="#000000" points="289.5,603.0313,279.5,607.0313,289.5,611.0313,285.5,607.0313" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="283.5" x2="502.5" y1="607.0313" y2="607.0313"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="206" x="295.5" y="602.0981">signal("sinkMuteStateChanged")</text><polygon fill="#000000" points="788,617.1641,798,621.1641,788,625.1641,792,621.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="508.5" x2="794" y1="621.1641" y2="621.1641"/><polygon fill="#000000" points="920,631.1641,930,635.1641,920,639.1641,924,635.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="805" x2="926" y1="635.1641" y2="635.1641"/><polygon fill="#000000" points="1133,645.1641,1143,649.1641,1133,653.1641,1137,649.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="937" x2="1139" y1="649.1641" y2="649.1641"/><polygon fill="#000000" points="61.5,674.1641,51.5,678.1641,61.5,682.1641,57.5,678.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="55.5" x2="267.5" y1="678.1641" y2="678.1641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="199" x="67.5" y="673.231">event [sinkMuteStateChanged]</text><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+
+activate AP #00ff00
+AP -> SM : SetSinkMuteState()
+activate SM #00ff00
+SM -> CS : SetSinkMuteState()
+activate CS #00ff00
+CS -> CR : SetSinkMuteState()
+activate CR #00ff00
+|||
+CR -> AM
+activate AM #00ff00
+CR - -> CS
+deactivate CR
+CS- ->SM
+deactivate CS
+SM- ->AP
+deactivate SM
+deactivate AP
+
+AM -> RS : asyncSetSinkVolume()
+activate RS #00ff00
+|||
+RS -> AD : SetMute()
+activate AD #00ff00
+RS - -> AM
+deactivate RS
+deactivate AM
+|||
+|||
+AD -> RS : ackSetMute()
+deactivate AD
+activate RS #00ff00
+
+RS -> RR : ackSetSinkVolumeChange()
+activate RR #00ff00
+|||
+RR -> AM
+activate AM #00ff00
+|||
+AM -> CS : cbSinkMuteStateChanged
+activate CS #00ff00
+|||
+CS -> SM : signal("sinkMuteStateChanged")
+activate SM #00ff00
+CS- ->AM
+deactivate CS
+AM- ->RR
+deactivate AM
+RR- ->RS
+deactivate RR
+deactivate RS
+
+SM -> AP : event [sinkMuteStateChanged]
+activate AP #00ff00
+deactivate SM
+deactivate AP
+@enduml
+
+PlantUML version 1.2017.18beta10(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
diff --git a/doc/parts/seq_startsoundstreaming.svg b/doc/parts/seq_startsoundstreaming.svg
new file mode 100644
index 0000000..108cfa0
--- /dev/null
+++ b/doc/parts/seq_startsoundstreaming.svg
@@ -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="1017px" preserveAspectRatio="none" style="width:1501px;height:1017px;background:#EEEBDC;" version="1.1" viewBox="0 0 1501 1017" width="1501px" zoomAndPan="magnify"><defs><filter height="300%" id="f1f8zzovgj1d8a" 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="995.3594" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="582.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="597" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="995.3594" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="726.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="855.5" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="995.3594" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="1180.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="1195" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="316.7969" style="stroke: #404040; stroke-width: 1.0;" width="10" x="88.5" y="493.7656"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="88.5" y="957.0938"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="59.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="367.5" y="464.6328"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="367.5" y="646.1641"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="367.5" y="898.8281"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="648.5" y="854.5625"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="944.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="224.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="944.5" y="367.5"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="144.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="944.5" y="768.5625"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1076.5" y="328.3672"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1076.5" y="729.4297"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="112.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="269.3672"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="156.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="435.5"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="121.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="675.2969"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="130.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1375.5" y="169.1016"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1380.5" y="220.2344"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="93" x2="93" y1="83.9688" y2="1005.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="372" x2="372" y1="83.9688" y2="1005.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="653.5" x2="653.5" y1="83.9688" y2="1005.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="807.5" x2="807.5" y1="83.9688" y2="1005.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="949.5" x2="949.5" y1="83.9688" y2="1005.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1081.5" x2="1081.5" y1="83.9688" y2="1005.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1244.5" x2="1244.5" y1="83.9688" y2="1005.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1380.5" x2="1380.5" y1="83.9688" y2="1005.3594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="56" y="81.1387">Application</text><ellipse cx="93.5" cy="13" fill="#FFFACD" filter="url(#f1f8zzovgj1d8a)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M93.5,21 L93.5,48 M80.5,29 L106.5,29 M93.5,48 L80.5,63 M93.5,48 L106.5,63 " fill="#FFFACD" filter="url(#f1f8zzovgj1d8a)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="316" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="323" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="586.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="593.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="730.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="737.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="895.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="902.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="1013.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1020.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="1184.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1191.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1334.5" y="81.1387">Audio Domain</text><ellipse cx="1380.5" cy="13" fill="#FFFACD" filter="url(#f1f8zzovgj1d8a)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1380.5,21 L1380.5,48 M1367.5,29 L1393.5,29 M1380.5,48 L1367.5,63 M1380.5,48 L1393.5,63 " fill="#FFFACD" filter="url(#f1f8zzovgj1d8a)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="316.7969" style="stroke: #404040; stroke-width: 1.0;" width="10" x="88.5" y="493.7656"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="88.5" y="957.0938"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="59.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="367.5" y="464.6328"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="164.3984" style="stroke: #404040; stroke-width: 1.0;" width="10" x="367.5" y="646.1641"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="367.5" y="898.8281"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="648.5" y="854.5625"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="944.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="224.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="944.5" y="367.5"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="144.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="944.5" y="768.5625"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1076.5" y="328.3672"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1076.5" y="729.4297"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="68.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="112.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="269.3672"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="156.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="435.5"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="121.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1239.5" y="675.2969"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="130.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1375.5" y="169.1016"/><rect fill="#00FF00" filter="url(#f1f8zzovgj1d8a)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1380.5" y="220.2344"/><polygon fill="#000000" points="1227.5,110.9688,1237.5,114.9688,1227.5,118.9688,1231.5,114.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="954.5" x2="1233.5" y1="114.9688" y2="114.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="198" x="961.5" y="110.0356">asyncSetSourceState (SS_ON)</text><polygon fill="#000000" points="1363.5,165.1016,1373.5,169.1016,1363.5,173.1016,1367.5,169.1016" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1249.5" x2="1369.5" y1="169.1016" y2="169.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="107" x="1256.5" y="164.1685">setMute(SS_ON)</text><polygon fill="#000000" points="960.5,179.2344,950.5,183.2344,960.5,187.2344,956.5,183.2344" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="954.5" x2="1243.5" y1="183.2344" y2="183.2344"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1390.5" x2="1432.5" y1="212.3672" y2="212.3672"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1432.5" x2="1432.5" y1="212.3672" y2="225.3672"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1391.5" x2="1432.5" y1="225.3672" y2="225.3672"/><polygon fill="#000000" points="1401.5,221.3672,1391.5,225.3672,1401.5,229.3672,1397.5,225.3672" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="92" x="1397.5" y="207.3013">Mute(UnMute)</text><polygon fill="#000000" points="1260.5,265.3672,1250.5,269.3672,1260.5,273.3672,1256.5,269.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1254.5" x2="1374.5" y1="269.3672" y2="269.3672"/><polygon fill="#000000" points="1097.5,324.3672,1087.5,328.3672,1097.5,332.3672,1093.5,328.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1091.5" x2="1238.5" y1="328.3672" y2="328.3672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="1103.5" y="323.4341">ackSetSourceState()</text><polygon fill="#000000" points="965.5,363.5,955.5,367.5,965.5,371.5,961.5,367.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="959.5" x2="1075.5" y1="367.5" y2="367.5"/><polygon fill="#000000" points="1232.5,377.5,1242.5,381.5,1232.5,385.5,1236.5,381.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="1081.5" x2="1238.5" y1="381.5" y2="381.5"/><polygon fill="#000000" points="1227.5,431.5,1237.5,435.5,1227.5,439.5,1231.5,435.5" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="954.5" x2="1233.5" y1="435.5" y2="435.5"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="149" x="961.5" y="430.5669">asyncSetSourceState()</text><polygon fill="#000000" points="388.5,460.6328,378.5,464.6328,388.5,468.6328,384.5,464.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="382.5" x2="1238.5" y1="464.6328" y2="464.6328"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="251" x="394.5" y="459.6997">signal("asyncSetSourceState(SS_ON)")</text><polygon fill="#000000" points="109.5,489.7656,99.5,493.7656,109.5,497.7656,105.5,493.7656" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="103.5" x2="366.5" y1="493.7656" y2="493.7656"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="225" x="115.5" y="488.8325">event [asyncSetSourceState("on")]</text><polygon fill="#FBFB77" filter="url(#f1f8zzovgj1d8a)" points="8,536.8984,8,576.8984,176,576.8984,176,546.8984,166,536.8984,8,536.8984" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="166" x2="166" y1="536.8984" y2="546.8984"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="176" x2="166" y1="546.8984" y2="546.8984"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="138" x="14" y="553.9653">Prepare audio device.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="147" x="14" y="569.0981">And start audio playing</text><polygon fill="#000000" points="960.5,588.1641,950.5,592.1641,960.5,596.1641,956.5,592.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="954.5" x2="1243.5" y1="592.1641" y2="592.1641"/><polygon fill="#000000" points="355.5,642.1641,365.5,646.1641,355.5,650.1641,359.5,646.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="98.5" x2="361.5" y1="646.1641" y2="646.1641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="105.5" y="641.231">ackSetSourceState()</text><polygon fill="#000000" points="1227.5,671.2969,1237.5,675.2969,1227.5,679.2969,1231.5,675.2969" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="377.5" x2="1233.5" y1="675.2969" y2="675.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="384.5" y="670.3638">ackSetSourceState()</text><polygon fill="#000000" points="1097.5,725.4297,1087.5,729.4297,1097.5,733.4297,1093.5,729.4297" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1091.5" x2="1238.5" y1="729.4297" y2="729.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="99" x="1103.5" y="724.4966">ackSetSource()</text><polygon fill="#000000" points="965.5,764.5625,955.5,768.5625,965.5,772.5625,961.5,768.5625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="959.5" x2="1075.5" y1="768.5625" y2="768.5625"/><polygon fill="#000000" points="1227.5,778.5625,1237.5,782.5625,1227.5,786.5625,1231.5,782.5625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="1081.5" x2="1233.5" y1="782.5625" y2="782.5625"/><polygon fill="#000000" points="388.5,792.5625,378.5,796.5625,388.5,800.5625,384.5,796.5625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="382.5" x2="1243.5" y1="796.5625" y2="796.5625"/><polygon fill="#000000" points="104.5,806.5625,94.5,810.5625,104.5,814.5625,100.5,810.5625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="98.5" x2="371.5" y1="810.5625" y2="810.5625"/><polygon fill="#000000" points="669.5,850.5625,659.5,854.5625,669.5,858.5625,665.5,854.5625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="663.5" x2="943.5" y1="854.5625" y2="854.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="214" x="675.5" y="834.6294">cbMainConnectionStateChanged(</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="111" x="715.5" y="849.7622">CS_CONNECTED)</text><polygon fill="#000000" points="388.5,894.8281,378.5,898.8281,388.5,902.8281,384.5,898.8281" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="382.5" x2="647.5" y1="898.8281" y2="898.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="252" x="394.5" y="878.895">signal("mainConnectionStateChanged (</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="434.5" y="894.0278">CS_CONNECTED)")</text><polygon fill="#000000" points="937.5,909.0938,947.5,913.0938,937.5,917.0938,941.5,913.0938" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="653.5" x2="943.5" y1="913.0938" y2="913.0938"/><polygon fill="#000000" points="109.5,953.0938,99.5,957.0938,109.5,961.0938,105.5,957.0938" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="103.5" x2="366.5" y1="957.0938" y2="957.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="250" x="115.5" y="937.1606">event [mainConnectionStateChanged (</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="155.5" y="952.2935">CS_CONNECTED)]</text><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+
+AM -> RS : asyncSetSourceState (SS_ON)
+activate AM #00FF00
+activate RS #00ff00
+|||
+RS -> AD : setMute(SS_ON)
+activate AD #00ff00
+RS - -> AM
+deactivate RS
+deactivate AM
+
+AD -> AD : Mute(UnMute)
+activate AD #00ff00
+deactivate AD
+
+AD -> RS
+activate RS #00ff00
+deactivate AD
+
+RS -> RR : ackSetSourceState()
+activate RR #00ff00
+|||
+RR -> AM
+activate AM #00ff00
+RR - -> RS
+deactivate RR
+deactivate RS
+|||
+AM -> RS : asyncSetSourceState()
+activate RS #00ff00
+
+RS -> SM : signal("asyncSetSourceState(SS_ON)")
+activate SM #00ff00
+SM -> AP : event [asyncSetSourceState("on")]
+activate AP #00ff00
+deactivate SM
+note over AP: Prepare audio device.\nAnd start audio playing
+RS - -> AM
+|||
+deactivate RS
+deactivate AM
+AP -> SM : ackSetSourceState()
+activate SM #00ff00
+SM -> RS : ackSetSourceState()
+activate RS #00ff00
+|||
+RS -> RR : ackSetSource()
+activate RR #00ff00
+|||
+RR -> AM
+activate AM #00ff00
+RR - -> RS
+deactivate RR
+RS- ->SM
+deactivate RS
+SM- ->AP
+deactivate SM
+deactivate AP
+
+AM -> CS : cbMainConnectionStateChanged(\n CS_CONNECTED)
+activate CS #00ff00
+CS -> SM : signal("mainConnectionStateChanged (\n CS_CONNECTED)")
+activate SM #00ff00
+CS - -> AM
+deactivate CS
+deactivate AM
+SM -> AP : event [mainConnectionStateChanged (\n CS_CONNECTED)]
+activate AP #00ff00
+deactivate SM
+deactivate AP
+@enduml
+
+PlantUML version 1.2017.18beta10(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
diff --git a/doc/parts/seq_startup.svg b/doc/parts/seq_startup.svg
new file mode 100644
index 0000000..27f0ab0
--- /dev/null
+++ b/doc/parts/seq_startup.svg
@@ -0,0 +1,68 @@
+<?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="356px" preserveAspectRatio="none" style="width:1047px;height:356px;background:#EEEBDC;" version="1.1" viewBox="0 0 1047 356" width="1047px" zoomAndPan="magnify"><defs><filter height="300%" id="f5gmqbksvd81r" 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="334.6328" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="227" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="121" x="237.5" y="16.0669">CommandPlugIn</text><rect fill="#EEEBDC" height="334.6328" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="371" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="178" x="495.5" y="16.0669">Audio Manager Daemon</text><rect fill="#EEEBDC" height="334.6328" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="800" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="103" x="812.5" y="16.0669">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="241.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="589" y="93.9688"/><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="594" y="122.9688"/><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="594" y="291.5"/><rect fill="#EEEBDC" filter="url(#f5gmqbksvd81r)" height="82.3984" style="stroke: #000000; stroke-width: 2.0;" width="1023" x="13" y="173.1016"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="60" x2="60" y1="83.9688" y2="344.6328"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="164" x2="164" y1="83.9688" y2="344.6328"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="298" x2="298" y1="83.9688" y2="344.6328"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="452" x2="452" y1="83.9688" y2="344.6328"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="594" x2="594" y1="83.9688" y2="344.6328"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="726" x2="726" y1="83.9688" y2="344.6328"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="864" x2="864" y1="83.9688" y2="344.6328"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="980" x2="980" y1="83.9688" y2="344.6328"/><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="23" y="81.1387">Application</text><ellipse cx="60.5" cy="13" fill="#FFFACD" filter="url(#f5gmqbksvd81r)" 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(#f5gmqbksvd81r)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="108" y="51"/><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="115" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="231" y="51"/><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="238" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="375" y="51"/><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="382" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="540" y="51"/><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="547" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="658" y="51"/><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="665" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="804" y="51"/><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="811" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="Yu Gothic UI" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="934" y="81.1387">Audio Domain</text><ellipse cx="980" cy="13" fill="#FFFACD" filter="url(#f5gmqbksvd81r)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M980,21 L980,48 M967,29 L993,29 M980,48 L967,63 M980,48 L993,63 " fill="#FFFACD" filter="url(#f5gmqbksvd81r)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="241.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="589" y="93.9688"/><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="594" y="122.9688"/><rect fill="#00FF00" filter="url(#f5gmqbksvd81r)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="594" y="291.5"/><line style="stroke: #000000; stroke-width: 1.0;" x1="604" x2="646" y1="115.1016" y2="115.1016"/><line style="stroke: #000000; stroke-width: 1.0;" x1="646" x2="646" y1="115.1016" y2="128.1016"/><line style="stroke: #000000; stroke-width: 1.0;" x1="605" x2="646" y1="128.1016" y2="128.1016"/><polygon fill="#000000" points="615,124.1016,605,128.1016,615,132.1016,611,128.1016" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="58" x="611" y="110.0356">Startup()</text><rect fill="none" height="82.3984" style="stroke: #000000; stroke-width: 2.0;" width="1023" x="13" y="173.1016"/><polygon fill="#EEEEEE" points="13,173.1016,90,173.1016,90,180.1016,80,190.1016,13,190.1016,13,173.1016" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="28" y="186.1685">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="135" x="105" y="185.312">[Number of Domains]</text><rect fill="#FFFFFF" filter="url(#f5gmqbksvd81r)" height="40.2656" style="stroke: #000000; stroke-width: 2.0;" width="1005" x="20" y="200.2344"/><polygon fill="#EEEEEE" points="20,200.2344,86,200.2344,86,207.2344,76,217.2344,20,217.2344,20,200.2344" style="stroke: #000000; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="21" x="33" y="214.3013">ref</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="486.5" y="233.3013">Registration</text><line style="stroke: #000000; stroke-width: 1.0;" x1="604" x2="646" y1="283.6328" y2="283.6328"/><line style="stroke: #000000; stroke-width: 1.0;" x1="646" x2="646" y1="283.6328" y2="296.6328"/><line style="stroke: #000000; stroke-width: 1.0;" x1="605" x2="646" y1="296.6328" y2="296.6328"/><polygon fill="#000000" points="615,292.6328,605,296.6328,615,300.6328,611,296.6328" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="78" x="611" y="278.5669">wait_event()</text><!--
+@startuml
+hide footbox
+
+skinparam backgroundColor #EEEBDC
+skinparam sequence {
+ ArrowColor black
+ ActorBorderColor black
+ LifeLineBorderColor #404040
+ LifeLineBackgroundColor #404040
+
+ ParticipantBorderColor black
+ ParticipantBackgroundColor #00FF00
+ ParticipantFontName Yu Gothic UI
+ ParticipantFontSize 12
+ ParticipantFontColor black
+
+ ActorBackgroundColor #FFFACD
+ ActorFontColor black
+ ActorFontSize 12
+ ActorFontName Yu Gothic UI
+
+ BoxBorderColor #deb887
+}
+
+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"
+
+activate AudioManager #00FF00
+AudioManager -> AudioManager: Startup()
+activate AudioManager #00FF00
+deactivate AudioManager
+
+loop Number of Domains
+||10||
+ref over Application, "Audio Domain" : Registration
+||10||
+end
+
+AudioManager -> AudioManager: wait_event()
+activate AudioManager #00FF00
+
+deactivate AudioManager
+@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
diff --git a/doc/parts/seq_stopsoundstreaming.svg b/doc/parts/seq_stopsoundstreaming.svg
new file mode 100644
index 0000000..41a2e41
--- /dev/null
+++ b/doc/parts/seq_stopsoundstreaming.svg
@@ -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="1108px" preserveAspectRatio="none" style="width:1478px;height:1108px;background:#EEEBDC;" version="1.1" viewBox="0 0 1478 1108" width="1478px" zoomAndPan="magnify"><defs><filter height="300%" id="f148ll50d7lbg7" 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="1086.625" style="stroke: #DEB887; stroke-width: 1.0;" width="142" x="589.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="113" x="604" y="15.1387">CommandPlugIn</text><rect fill="#EEEBDC" height="1086.625" style="stroke: #DEB887; stroke-width: 1.0;" width="427" x="733.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="169" x="862.5" y="15.1387">Audio Manager Daemon</text><rect fill="#EEEBDC" height="1086.625" style="stroke: #DEB887; stroke-width: 1.0;" width="128" x="1187.5" y="4"/><text fill="#000000" font-family="sans-serif" font-size="12" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="99" x="1202" y="15.1387">RoutingPlugIn</text><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="166.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="97.5" y="228.3672"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="97.5" y="727.8281"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="376.5" y="184.1016"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="59.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="376.5" y="364.8984"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="376.5" y="669.5625"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="655.5" y="625.2969"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="166.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="951.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="338.0625" style="stroke: #404040; stroke-width: 1.0;" width="10" x="951.5" y="517.2969"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="951.5" y="1034.625"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1083.5" y="478.1641"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="83.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1083.5" y="995.4922"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="166.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="107.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="424.0313"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="812.0938"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="137.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="941.4922"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="100.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1362.5" y="841.2266"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1367.5" y="892.3594"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="102" x2="102" y1="83.9688" y2="1096.625"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="381" x2="381" y1="83.9688" y2="1096.625"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="660.5" x2="660.5" y1="83.9688" y2="1096.625"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="814.5" x2="814.5" y1="83.9688" y2="1096.625"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="956.5" x2="956.5" y1="83.9688" y2="1096.625"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1088.5" x2="1088.5" y1="83.9688" y2="1096.625"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1251.5" x2="1251.5" y1="83.9688" y2="1096.625"/><line style="stroke: #404040; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="1367.5" x2="1367.5" y1="83.9688" y2="1096.625"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="65" y="81.1387">Application</text><ellipse cx="102.5" cy="13" fill="#FFFACD" filter="url(#f148ll50d7lbg7)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M102.5,21 L102.5,48 M89.5,29 L115.5,29 M102.5,48 L89.5,63 M102.5,48 L115.5,63 " fill="#FFFACD" filter="url(#f148ll50d7lbg7)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="109" x="325" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="332" y="69.1387">SoundManager</text><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="130" x="593.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="116" x="600.5" y="69.1387">IAmCommandSend</text><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="151" x="737.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="137" x="744.5" y="69.1387">IAmCommandReceiver</text><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="104" x="902.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="90" x="909.5" y="69.1387">AudioManager</text><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="132" x="1020.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1027.5" y="69.1387">IAmRoutingReceive</text><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="27.9688" style="stroke: #000000; stroke-width: 1.5;" width="116" x="1191.5" y="51"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="102" x="1198.5" y="69.1387">IAmRoutingSend</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="1321.5" y="81.1387">Audio Domain</text><ellipse cx="1367.5" cy="13" fill="#FFFACD" filter="url(#f148ll50d7lbg7)" rx="8" ry="8" style="stroke: #000000; stroke-width: 2.0;"/><path d="M1367.5,21 L1367.5,48 M1354.5,29 L1380.5,29 M1367.5,48 L1354.5,63 M1367.5,48 L1380.5,63 " fill="#FFFACD" filter="url(#f148ll50d7lbg7)" style="stroke: #000000; stroke-width: 2.0;"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="166.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="97.5" y="228.3672"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="97.5" y="727.8281"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="376.5" y="184.1016"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="59.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="376.5" y="364.8984"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="88.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="376.5" y="669.5625"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="58.5313" style="stroke: #404040; stroke-width: 1.0;" width="10" x="655.5" y="625.2969"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="166.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="951.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="338.0625" style="stroke: #404040; stroke-width: 1.0;" width="10" x="951.5" y="517.2969"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="30" style="stroke: #404040; stroke-width: 1.0;" width="10" x="951.5" y="1034.625"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="53.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1083.5" y="478.1641"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="83.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1083.5" y="995.4922"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="166.6641" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="114.9688"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="107.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="424.0313"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="43.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="812.0938"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="137.1328" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1246.5" y="941.4922"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="100.2656" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1362.5" y="841.2266"/><rect fill="#00FF00" filter="url(#f148ll50d7lbg7)" height="28" style="stroke: #404040; stroke-width: 1.0;" width="10" x="1367.5" y="892.3594"/><polygon fill="#000000" points="1234.5,110.9688,1244.5,114.9688,1234.5,118.9688,1238.5,114.9688" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="961.5" x2="1240.5" y1="114.9688" y2="114.9688"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="968.5" y="110.0356">asyncSetSourceState ()</text><polygon fill="#000000" points="397.5,180.1016,387.5,184.1016,397.5,188.1016,393.5,184.1016" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="391.5" x2="1245.5" y1="184.1016" y2="184.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="403.5" y="164.1685">asyncSetSourceState(</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="419.5" y="179.3013">SS_PAUSED)</text><polygon fill="#000000" points="118.5,224.3672,108.5,228.3672,118.5,232.3672,114.5,228.3672" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="112.5" x2="375.5" y1="228.3672" y2="228.3672"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="189" x="124.5" y="208.4341">event [asyncSetSourceState(</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="67" x="140.5" y="223.5669">"paused")]</text><polygon fill="#000000" points="1234.5,238.6328,1244.5,242.6328,1234.5,246.6328,1238.5,242.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="381.5" x2="1240.5" y1="242.6328" y2="242.6328"/><polygon fill="#000000" points="967.5,277.6328,957.5,281.6328,967.5,285.6328,963.5,281.6328" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="961.5" x2="1250.5" y1="281.6328" y2="281.6328"/><polygon fill="#FBFB77" filter="url(#f148ll50d7lbg7)" points="8,294.6328,8,334.6328,193,334.6328,193,304.6328,183,294.6328,8,294.6328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="183" x2="183" y1="294.6328" y2="304.6328"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="193" x2="183" y1="304.6328" y2="304.6328"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="122" x="14" y="311.6997">Stop audio playing.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="14" y="326.8325">And release audio device.</text><polygon fill="#000000" points="364.5,360.8984,374.5,364.8984,364.5,368.8984,368.5,364.8984" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="107.5" x2="370.5" y1="364.8984" y2="364.8984"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="114.5" y="359.9653">ackSetSourceState()</text><polygon fill="#000000" points="1234.5,420.0313,1244.5,424.0313,1234.5,428.0313,1238.5,424.0313" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="381.5" x2="1240.5" y1="424.0313" y2="424.0313"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="388.5" y="419.0981">ackSetSourceState()</text><polygon fill="#000000" points="1104.5,474.1641,1094.5,478.1641,1104.5,482.1641,1100.5,478.1641" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1098.5" x2="1245.5" y1="478.1641" y2="478.1641"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="1110.5" y="473.231">ackSetSourceState()</text><polygon fill="#000000" points="972.5,513.2969,962.5,517.2969,972.5,521.2969,968.5,517.2969" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="966.5" x2="1082.5" y1="517.2969" y2="517.2969"/><polygon fill="#000000" points="1239.5,527.2969,1249.5,531.2969,1239.5,535.2969,1243.5,531.2969" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="1088.5" x2="1245.5" y1="531.2969" y2="531.2969"/><polygon fill="#000000" points="676.5,621.2969,666.5,625.2969,676.5,629.2969,672.5,625.2969" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="670.5" x2="950.5" y1="625.2969" y2="625.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="218" x="682.5" y="605.3638">cbMainConnectionStateChanged (</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="706.5" y="620.4966">CS_SUSPENDED)]</text><polygon fill="#000000" points="397.5,665.5625,387.5,669.5625,397.5,673.5625,393.5,669.5625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="391.5" x2="654.5" y1="669.5625" y2="669.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="250" x="403.5" y="649.6294">signal("MainConnectionStateChanged (</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="122" x="419.5" y="664.7622">CS_SUSPENDED)")</text><polygon fill="#000000" points="939.5,679.8281,949.5,683.8281,939.5,687.8281,943.5,683.8281" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="660.5" x2="945.5" y1="683.8281" y2="683.8281"/><polygon fill="#000000" points="118.5,723.8281,108.5,727.8281,118.5,731.8281,114.5,727.8281" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="112.5" x2="375.5" y1="727.8281" y2="727.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="250" x="124.5" y="707.895">event [mainConnectionStateChanged (</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="117" x="140.5" y="723.0278">CS_SUSPENDED)]</text><polygon fill="#000000" points="1234.5,808.0938,1244.5,812.0938,1234.5,816.0938,1238.5,812.0938" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="961.5" x2="1240.5" y1="812.0938" y2="812.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="149" x="968.5" y="807.1606">asyncSetSourceState()</text><polygon fill="#000000" points="1350.5,837.2266,1360.5,841.2266,1350.5,845.2266,1354.5,841.2266" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1256.5" x2="1356.5" y1="841.2266" y2="841.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="64" x="1263.5" y="836.2935">SetMute()</text><polygon fill="#000000" points="967.5,851.3594,957.5,855.3594,967.5,859.3594,963.5,855.3594" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="961.5" x2="1250.5" y1="855.3594" y2="855.3594"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1377.5" x2="1419.5" y1="884.4922" y2="884.4922"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1419.5" x2="1419.5" y1="884.4922" y2="897.4922"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1378.5" x2="1419.5" y1="897.4922" y2="897.4922"/><polygon fill="#000000" points="1388.5,893.4922,1378.5,897.4922,1388.5,901.4922,1384.5,897.4922" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="1384.5" y="879.4263">Mute (MUTE)</text><polygon fill="#000000" points="1267.5,937.4922,1257.5,941.4922,1267.5,945.4922,1263.5,941.4922" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1261.5" x2="1366.5" y1="941.4922" y2="941.4922"/><polygon fill="#000000" points="1104.5,991.4922,1094.5,995.4922,1104.5,999.4922,1100.5,995.4922" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="1098.5" x2="1245.5" y1="995.4922" y2="995.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="134" x="1110.5" y="990.5591">ackSetSourceState()</text><polygon fill="#000000" points="972.5,1030.625,962.5,1034.625,972.5,1038.625,968.5,1034.625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0;" x1="966.5" x2="1082.5" y1="1034.625" y2="1034.625"/><polygon fill="#000000" points="1239.5,1074.625,1249.5,1078.625,1239.5,1082.625,1243.5,1078.625" style="stroke: #000000; stroke-width: 1.0;"/><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="1088.5" x2="1245.5" y1="1078.625" y2="1078.625"/><!--
+@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 as AP
+participant SoundManager as SM
+box "CommandPlugIn" #EEEBDC
+ participant IAmCommandSend as CS
+end box
+box "Audio Manager Daemon" #EEEBDC
+ participant IAmCommandReceiver as CR
+ participant AudioManager as AM
+ participant IAmRoutingReceive as RR
+end box
+box "RoutingPlugIn" #EEEBDC
+ participant IAmRoutingSend as RS
+end box
+actor "Audio Domain" as AD
+
+
+AM -> RS : asyncSetSourceState ()
+activate AM #00FF00
+activate RS #00ff00
+|||
+RS -> SM : asyncSetSourceState(\n SS_PAUSED)
+activate SM #00ff00
+SM -> AP : event [asyncSetSourceState(\n "paused")]
+activate AP #00ff00
+SM- ->RS
+deactivate SM
+|||
+RS - -> AM
+deactivate RS
+deactivate AM
+note over AP: Stop audio playing.\nAnd release audio device.
+AP -> SM : ackSetSourceState()
+activate SM #00ff00
+deactivate AP
+SM -> RS : ackSetSourceState()
+deactivate SM
+activate RS #00ff00
+|||
+RS -> RR : ackSetSourceState()
+activate RR #00ff00
+|||
+RR -> AM
+activate AM #00ff00
+RR - -> RS
+deactivate RR
+deactivate RS
+
+|||
+|||
+AM -> CS : cbMainConnectionStateChanged (\n CS_SUSPENDED)]
+activate CS #00ff00
+
+CS -> SM : signal("MainConnectionStateChanged (\n CS_SUSPENDED)")
+activate SM #00ff00
+CS - -> AM
+deactivate CS
+SM -> AP : event [mainConnectionStateChanged (\n CS_SUSPENDED)]
+activate AP #00ff00
+deactivate SM
+deactivate AP
+|||
+AM -> RS : asyncSetSourceState()
+activate RS #00ff00
+RS -> AD : SetMute()
+activate AD #00ff00
+RS - -> AM
+deactivate RS
+deactivate AM
+
+AD -> AD : Mute (MUTE)
+activate AD #00ff00
+deactivate AD
+AD -> RS
+deactivate AD
+activate RS #00ff00
+|||
+RS -> RR : ackSetSourceState()
+activate RR #00ff00
+|||
+RR -> AM
+activate AM #00ff00
+deactivate AM
+RR - -> RS
+deactivate RR
+deactivate RS
+@enduml
+
+PlantUML version 1.2017.18beta10(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
diff --git a/doc/parts/software-stack.png b/doc/parts/software-stack.png
new file mode 100644
index 0000000..cdca6ce
--- /dev/null
+++ b/doc/parts/software-stack.png
Binary files differ
diff --git a/doc/parts/software-stack2.png b/doc/parts/software-stack2.png
new file mode 100644
index 0000000..870c22f
--- /dev/null
+++ b/doc/parts/software-stack2.png
Binary files differ
diff --git a/doc/parts/typical-usecase.png b/doc/parts/typical-usecase.png
new file mode 100644
index 0000000..47a2d33
--- /dev/null
+++ b/doc/parts/typical-usecase.png
Binary files differ
diff --git a/doc/parts/typical-usecase2.png b/doc/parts/typical-usecase2.png
new file mode 100644
index 0000000..4d05304
--- /dev/null
+++ b/doc/parts/typical-usecase2.png
Binary files differ