diff options
author | Eddy Pedroni <epedroni@pm.me> | 2025-07-29 23:04:23 +0200 |
---|---|---|
committer | Eddy Pedroni <epedroni@pm.me> | 2025-07-29 23:04:23 +0200 |
commit | c4a0bc0f82d7e774ab4f76bb019d588776cd40f1 (patch) | |
tree | f805fcc2e6236badbe298378aeebf213f2d0e1c7 | |
parent | 5f93cc8a653e47dd8c426101567f2b91c4e3482d (diff) |
Raw architecture diagram
-rw-r--r-- | doc/architecture.drawio | 104 |
1 files changed, 96 insertions, 8 deletions
diff --git a/doc/architecture.drawio b/doc/architecture.drawio index da8d093..3efdd34 100644 --- a/doc/architecture.drawio +++ b/doc/architecture.drawio @@ -1,4 +1,4 @@ -<mxfile host="Electron" modified="2025-07-21T16:24:00.333Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.2 Chrome/114.0.5735.289 Electron/25.9.4 Safari/537.36" etag="_IwkXMvgGTjRfqPQ7Xbc" version="22.1.2" type="device" pages="2"> +<mxfile host="Electron" modified="2025-07-29T20:05:59.411Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.2 Chrome/114.0.5735.289 Electron/25.9.4 Safari/537.36" etag="MsQsDfPaMesEJPuZEGDE" version="22.1.2" type="device" pages="3"> <diagram name="Page-1" id="X3IhXaZUrfH3xSkZTgMi"> <mxGraphModel dx="1561" dy="962" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> @@ -144,7 +144,7 @@ </mxGraphModel> </diagram> <diagram id="eDi6a6V0f_dNDtGviYes" name="Page-2"> - <mxGraphModel dx="1561" dy="946" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <mxGraphModel dx="1562" dy="963" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> @@ -154,7 +154,7 @@ <mxCell id="WbTO22Bo2XP_zg3Y817k-8" value="Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;align=left;verticalAlign=top;" parent="1" vertex="1"> <mxGeometry x="70" y="150" width="120" height="210" as="geometry" /> </mxCell> - <mxCell id="WbTO22Bo2XP_zg3Y817k-5" value="polling" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-1" target="WbTO22Bo2XP_zg3Y817k-4" edge="1"> + <mxCell id="WbTO22Bo2XP_zg3Y817k-5" value="select" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-1" target="WbTO22Bo2XP_zg3Y817k-4" edge="1"> <mxGeometry x="-0.5" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> @@ -165,7 +165,7 @@ <mxCell id="WbTO22Bo2XP_zg3Y817k-7" value="function call" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-4" target="WbTO22Bo2XP_zg3Y817k-6" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="WbTO22Bo2XP_zg3Y817k-4" value="File descriptor" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="WbTO22Bo2XP_zg3Y817k-4" value="RtMidi device" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="90" y="180" width="80" height="60" as="geometry" /> </mxCell> <mxCell id="WbTO22Bo2XP_zg3Y817k-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-6" target="WbTO22Bo2XP_zg3Y817k-9" edge="1"> @@ -185,7 +185,7 @@ <mxCell id="WbTO22Bo2XP_zg3Y817k-11" value="Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;align=left;verticalAlign=top;" parent="1" vertex="1"> <mxGeometry x="200" y="150" width="120" height="210" as="geometry" /> </mxCell> - <mxCell id="WbTO22Bo2XP_zg3Y817k-12" value="polling" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-13" target="WbTO22Bo2XP_zg3Y817k-15" edge="1"> + <mxCell id="WbTO22Bo2XP_zg3Y817k-12" value="select" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-13" target="WbTO22Bo2XP_zg3Y817k-15" edge="1"> <mxGeometry x="-0.5" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> @@ -196,7 +196,7 @@ <mxCell id="WbTO22Bo2XP_zg3Y817k-14" value="function call" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-15" target="WbTO22Bo2XP_zg3Y817k-16" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="WbTO22Bo2XP_zg3Y817k-15" value="File descriptor" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="WbTO22Bo2XP_zg3Y817k-15" value="RtMidi device" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="220" y="180" width="80" height="60" as="geometry" /> </mxCell> <mxCell id="WbTO22Bo2XP_zg3Y817k-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-16" target="WbTO22Bo2XP_zg3Y817k-9" edge="1"> @@ -208,7 +208,7 @@ <mxCell id="WbTO22Bo2XP_zg3Y817k-17" value="Thread" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;dashed=1;align=left;verticalAlign=top;" parent="1" vertex="1"> <mxGeometry x="330" y="150" width="120" height="210" as="geometry" /> </mxCell> - <mxCell id="WbTO22Bo2XP_zg3Y817k-18" value="polling" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-19" target="WbTO22Bo2XP_zg3Y817k-21" edge="1"> + <mxCell id="WbTO22Bo2XP_zg3Y817k-18" value="select" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-19" target="WbTO22Bo2XP_zg3Y817k-21" edge="1"> <mxGeometry x="-0.5" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> @@ -219,7 +219,7 @@ <mxCell id="WbTO22Bo2XP_zg3Y817k-20" value="function call" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="WbTO22Bo2XP_zg3Y817k-21" target="WbTO22Bo2XP_zg3Y817k-22" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="WbTO22Bo2XP_zg3Y817k-21" value="File descriptor" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxCell id="WbTO22Bo2XP_zg3Y817k-21" value="RtMidi device" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="350" y="180" width="80" height="60" as="geometry" /> </mxCell> <mxCell id="WbTO22Bo2XP_zg3Y817k-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="WbTO22Bo2XP_zg3Y817k-22" target="WbTO22Bo2XP_zg3Y817k-9" edge="1"> @@ -249,6 +249,94 @@ <mxCell id="WbTO22Bo2XP_zg3Y817k-31" value="MPK" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="350" y="620" width="80" height="60" as="geometry" /> </mxCell> + <mxCell id="blMurvtVO6cEDkn-zCb1-1" value="RtMidi" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="200" y="590" width="60" height="30" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="FlPW_lq2ClUuS33150JJ" name="Page-3"> + <mxGraphModel dx="1562" dy="963" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="KLqWrPPmhNoq5Amg9AvD-3" target="KLqWrPPmhNoq5Amg9AvD-5"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="KLqWrPPmhNoq5Amg9AvD-3" target="KLqWrPPmhNoq5Amg9AvD-17"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-3" value="fd provider" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;align=left;" vertex="1" parent="1"> + <mxGeometry x="275" y="254" width="190" height="80" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="KLqWrPPmhNoq5Amg9AvD-5" target="KLqWrPPmhNoq5Amg9AvD-15"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="290" y="110.10344827586209" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-5" value="receiver" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="120" y="80" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-6" value="fd" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="390" y="288" width="30" height="30" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-7" value="fd" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="425" y="288" width="30" height="30" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-8" value="fd" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="355" y="288" width="30" height="30" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="KLqWrPPmhNoq5Amg9AvD-11" target="KLqWrPPmhNoq5Amg9AvD-3"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="KLqWrPPmhNoq5Amg9AvD-11" target="KLqWrPPmhNoq5Amg9AvD-17"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-11" value="config loader" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="535" y="264" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-12" value="get_fds()" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=10;" vertex="1" parent="1"> + <mxGeometry x="265" y="200" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-13" value="detector thread" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="285" y="288" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="KLqWrPPmhNoq5Amg9AvD-15" target="KLqWrPPmhNoq5Amg9AvD-17"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-15" value="parsers<br>(one per device)" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="300" y="80" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-16" value="raw bytes<br>device ID" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=10;" vertex="1" parent="1"> + <mxGeometry x="235" y="105" width="70" height="40" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-17" value="router" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="505" y="80" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-18" value="message" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=10;" vertex="1" parent="1"> + <mxGeometry x="435" y="110" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="KLqWrPPmhNoq5Amg9AvD-19" value="get_fds()" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=10;" vertex="1" parent="1"> + <mxGeometry x="425" y="200" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="sy3mjPi3jdljKEgzPOEu-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="sy3mjPi3jdljKEgzPOEu-1" target="KLqWrPPmhNoq5Amg9AvD-8"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="sy3mjPi3jdljKEgzPOEu-1" value="Deluge" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="275" y="370" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="sy3mjPi3jdljKEgzPOEu-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="sy3mjPi3jdljKEgzPOEu-2" target="KLqWrPPmhNoq5Amg9AvD-6"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="sy3mjPi3jdljKEgzPOEu-2" value="OP-1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="365" y="370" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="sy3mjPi3jdljKEgzPOEu-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="sy3mjPi3jdljKEgzPOEu-3" target="KLqWrPPmhNoq5Amg9AvD-7"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="sy3mjPi3jdljKEgzPOEu-3" value="MPK" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="455" y="370" width="80" height="60" as="geometry" /> + </mxCell> </root> </mxGraphModel> </diagram> |