~aleteoryx/muditaos

muditaos/module-bluetooth/flowchart.svg -rw-r--r-- 16.8 KiB
a405cad6Aleteoryx trim readme 5 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?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="977px" preserveAspectRatio="none" style="width:1063px;height:977px;background:#F0F0F0;" version="1.1" viewBox="0 0 1063 977" width="1063px" zoomAndPan="magnify"><defs><filter height="300%" id="f1280ze4d8wjk1" 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><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="151" x2="151" y1="38.2969" y2="937.1484"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="451.5" x2="451.5" y1="38.2969" y2="937.1484"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="695" x2="695" y1="38.2969" y2="937.1484"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="903" x2="903" y1="38.2969" y2="937.1484"/><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="33" x="133" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="19" x="140" y="22.9951">BT</text><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="33" x="133" y="936.1484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="19" x="140" y="956.1436">BT</text><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="44" x="427.5" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="434.5" y="22.9951">EVM</text><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="44" x="427.5" y="936.1484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="30" x="434.5" y="956.1436">EVM</text><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="673" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="27" x="680" y="22.9951">App</text><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="673" y="936.1484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="27" x="680" y="956.1436">App</text><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="875" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="882" y="22.9951">Audio</text><rect fill="#FEFECE" filter="url(#f1280ze4d8wjk1)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="875" y="936.1484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="39" x="882" y="956.1436">Audio</text><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="1048" x="3" y="68.8633"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="68.8633" y2="68.8633"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="71.8633" y2="71.8633"/><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="176" x="439" y="58.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="157" x="445" y="74.3638">Vol Change - from BT</text><polygon fill="#A80036" points="439.5,108.5625,449.5,112.5625,439.5,116.5625,443.5,112.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="151.5" x2="445.5" y1="112.5625" y2="112.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="276" x="158.5" y="107.4966">Vol Change request (same key symualtion)</text><polygon fill="#A80036" points="683.5,137.6953,693.5,141.6953,683.5,145.6953,687.5,141.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="451.5" x2="689.5" y1="141.6953" y2="141.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="220" x="458.5" y="136.6294">Vol Change request process Audio</text><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="1048" x="3" y="170.2617"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="170.2617" y2="170.2617"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="173.2617" y2="173.2617"/><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="166" x="444" y="159.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="147" x="450" y="175.7622">Vol Up/Down - to BT</text><polygon fill="#A80036" points="683.5,209.9609,693.5,213.9609,683.5,217.9609,687.5,213.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="451.5" x2="689.5" y1="213.9609" y2="213.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="191" x="458.5" y="208.895">process Up/Down key (popup)</text><polygon fill="#A80036" points="891.5,239.0938,901.5,243.0938,891.5,247.0938,895.5,243.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="695.5" x2="897.5" y1="243.0938" y2="243.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="702.5" y="238.0278">request Vol Up/Down (finally)</text><polygon fill="#FBFB77" filter="url(#f1280ze4d8wjk1)" points="812,256.0938,994,256.0938,1004,267.0938,994,279.0938,812,279.0938,802,267.0938,812,256.0938" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="178" x="814" y="272.1606">Software codec applies gain</text><polygon fill="#A80036" points="462.5,301.3594,452.5,305.3594,462.5,309.3594,458.5,305.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="456.5" x2="902.5" y1="305.3594" y2="305.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="131" x="468.5" y="300.2935">Notify sound change</text><polygon fill="#A80036" points="683.5,330.4922,693.5,334.4922,683.5,338.4922,687.5,334.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="451.5" x2="689.5" y1="334.4922" y2="334.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="126" x="458.5" y="329.4263">show sound change</text><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="1048" x="3" y="363.0586"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="363.0586" y2="363.0586"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="366.0586" y2="366.0586"/><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="237" x="408.5" y="352.4922"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="218" x="414.5" y="368.5591">BT device registration - audio</text><polygon fill="#A80036" points="439.5,402.7578,449.5,406.7578,439.5,410.7578,443.5,406.7578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="151.5" x2="445.5" y1="406.7578" y2="406.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="274" x="158.5" y="401.6919">Event: BTA2DPOn (connection established)</text><polygon fill="#A80036" points="891.5,431.8906,901.5,435.8906,891.5,439.8906,895.5,435.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="451.5" x2="897.5" y1="435.8906" y2="435.8906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="458.5" y="430.8247">Event: BTA2DPOn</text><polygon fill="#FBFB77" filter="url(#f1280ze4d8wjk1)" points="771,448.8906,1036,448.8906,1046,459.8906,1036,471.8906,771,471.8906,761,459.8906,771,448.8906" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="261" x="773" y="464.9575">Audio notified about new BT A2DP device</text><polygon fill="#A80036" points="162.5,494.1563,152.5,498.1563,162.5,502.1563,158.5,498.1563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="156.5" x2="902.5" y1="498.1563" y2="498.1563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="481" x="168.5" y="493.0903">BluetoothStreamRequestMessage (requesting metadata &amp; queue handles)</text><polygon fill="#A80036" points="891.5,523.2891,901.5,527.2891,891.5,531.2891,895.5,527.2891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="151.5" x2="897.5" y1="527.2891" y2="527.2891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="448" x="158.5" y="522.2231">BluetoothStreamRequestMessageResult (metadata &amp; queue handles)</text><polygon fill="#FBFB77" filter="url(#f1280ze4d8wjk1)" points="834,540.2891,973,540.2891,983,559.2891,973,578.2891,834,578.2891,824,559.2891,834,540.2891" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="836" y="556.356">BT A2DP setup done,</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="836" y="571.4888">ready to playback</text><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="1048" x="3" y="604.1211"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="604.1211" y2="604.1211"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="607.1211" y2="607.1211"/><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="263" x="395.5" y="593.5547"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="244" x="401.5" y="609.6216">BT device registration - COM:WIP</text><polygon fill="#A80036" points="439.5,643.8203,449.5,647.8203,439.5,651.8203,443.5,647.8203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="151.5" x2="445.5" y1="647.8203" y2="647.8203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="109" x="158.5" y="642.7544">notify new device</text><polygon fill="#FBFB77" filter="url(#f1280ze4d8wjk1)" points="309,660.8203,593,660.8203,603,679.8203,593,698.8203,309,698.8203,299,679.8203,309,660.8203" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="311" y="676.8872">do whatever whoever wants with COM port</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="280" x="311" y="692.02">same as with audio device (open handles...)</text><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="1048" x="3" y="724.6523"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="724.6523" y2="724.6523"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="1051" y1="727.6523" y2="727.6523"/><rect fill="#EEEEEE" filter="url(#f1280ze4d8wjk1)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="143" x="455.5" y="714.0859"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="124" x="461.5" y="730.1528">BT device - close</text><polygon fill="#A80036" points="439.5,764.3516,449.5,768.3516,439.5,772.3516,443.5,768.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="151.5" x2="445.5" y1="768.3516" y2="768.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="158.5" y="763.2856">Event: BTA2DPOff</text><polygon fill="#A80036" points="891.5,793.4844,901.5,797.4844,891.5,801.4844,895.5,797.4844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="451.5" x2="897.5" y1="797.4844" y2="797.4844"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="458.5" y="792.4185">Event: BTA2DPOff</text><polygon fill="#A80036" points="462.5,822.6172,452.5,826.6172,462.5,830.6172,458.5,826.6172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="456.5" x2="902.5" y1="826.6172" y2="826.6172"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="468.5" y="821.5513">Inform that bt audio ended (?)</text><polygon fill="#A80036" points="683.5,851.75,693.5,855.75,683.5,859.75,687.5,855.75" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="451.5" x2="689.5" y1="855.75" y2="855.75"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="458.5" y="850.6841">Show bt change (?)</text><polygon fill="#FBFB77" filter="url(#f1280ze4d8wjk1)" points="18,868.75,285,868.75,295,894.75,285,921.75,18,921.75,8,894.75,18,868.75" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="263" x="20" y="884.8169">BT closes handles to streams ( i.e. pipes)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="193" x="20" y="899.9497">and closes it's device handling</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="210" x="20" y="915.0825">don't pass callback : pass handle</text><!--MD5=[755fd3abb8a19e625661c2f0b0c9f404]
@startuml
skinparam BackgroundColor F0F0F0
== Vol Change - from BT ==
BT ->  EVM: Vol Change request (same key symualtion)
EVM -> App: Vol Change request process Audio
== Vol Up/Down - to BT ==
EVM ->  App: process Up/Down key (popup)
        App -> Audio: request Vol Up/Down (finally)
        hnote over Audio
            Software codec applies gain
        endhnote
        EVM <- Audio: Notify sound change
        EVM -> App: show sound change
== BT device registration - audio ==
BT ->   EVM: Event: BTA2DPOn (connection established)
EVM -> Audio: Event: BTA2DPOn
hnote over Audio
            Audio notified about new BT A2DP device
        endhnote
BT <- Audio: BluetoothStreamRequestMessage (requesting metadata & queue handles)
BT -> Audio: BluetoothStreamRequestMessageResult (metadata & queue handles)
hnote over Audio
            BT A2DP setup done,
            ready to playback
        endhnote
== BT device registration - COM:WIP ==
BT -> EVM: notify new device
hnote over EVM
    do whatever whoever wants with COM port
    same as with audio device (open handles...)
endhnote
== BT device - close ==
BT -> EVM: Event: BTA2DPOff
EVM -> Audio: Event: BTA2DPOff
      EVM <- Audio: Inform that bt audio ended (?)
      EVM -> App: Show bt change (?)
hnote over BT
    BT closes handles to streams ( i.e. pipes)
    and closes it's device handling
    don't pass callback : pass handle
endhnote
@enduml

PlantUML version 1.2020.02(Sun Mar 01 05:22:07 EST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.12+7-post-Debian-2
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>