logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git
commit: 0ffde84ea61320f68c25c3294ab302970a40546e
parent eccbfc8883a171c23551e5faca05f4468963dd6b
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sat, 11 Sep 2021 05:21:34 +0200

images/linux-audio-output: sox->sndio; OpenAL->sndio

Diffstat:

MMakefile8++++++++
Marticles/linux-audio-output.xhtml6+++++-
Mimages/linux-audio-output.dot4+++-
Mimages/linux-audio-output.png0
Mimages/linux-audio-output.svg960++++++++++++++++++++++++++++++++++++++++---------------------------------------
5 files changed, 502 insertions(+), 476 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,2 +1,10 @@ +all: bookmarks.shtml images/linux-audio-output.png images/linux-audio-output.svg + bookmarks.shtml: bookmarks.xbel bookmarks.xsl xsltproc --nonet -o $@ bookmarks.xsl bookmarks.xbel + +images/linux-audio-output.png: images/linux-audio-output.dot + dot -Tpng $< > $@ + +images/linux-audio-output.svg: images/linux-audio-output.dot + dot -Tsvg $< > $@ diff --git a/articles/linux-audio-output.xhtml b/articles/linux-audio-output.xhtml @@ -2,7 +2,7 @@ <a href="/articles/linux-audio-output"><h1>Linux Audio Output APIs</h1></a> <p>About a month ago I took a long afternoon being like "Okay whatever let's see how deep the rabbit hole of linux audio playback goes" (<a href="https://queer.hacktivis.me/objects/33fc99e9-c901-4764-8b75-27d78bf7cc7d">previously</a>, <a href="https://queer.hacktivis.me/objects/3a5e4919-e8ee-4e4c-b50c-899f4afac678">previously</a>). That was a mistake I guess but let's at least avoid others from doing the same and so share what I did as it's fairly complete (patches with reference/citations welcome btw).</p> <p>I consider here as an Audio Output API any reused code which takes a PCM audio stream as input and which is designed to end up to the sound card at some point. In a simple system there should just be some decoders and cross-platform librairies going to the system native API (ones which are nicely desgined being SunAudio and Plan9 audio).</p> -<figure><img loading="lazy" title="Linux Audio Output APIs" src="/images/linux-audio-output.svg?serial=2020063001" /></figure> +<figure><img loading="lazy" title="Linux Audio Output APIs" src="/images/linux-audio-output.svg?serial=2021091101" /></figure> <p>You'll definitely need a large screen if you want to see the whole thing at once.</p> <h2>Other formats</h2> <ul> @@ -10,6 +10,10 @@ <li><a href="/images/linux-audio-output.svg">SVG</a>: access to URLs and can hover lines to see origin and destination</li> <li><a href="/images/linux-audio-output.png">PNG</a></li> </ul> +<h2>Changelog</h2> +<dl> + <dd>2021-09-11</dd><dt>sox → sndio ; OpenAL → sndio</dt> +</dl> <p>A similar kind of thing was done by an Adobe employe in 2006~2007 in an article named <q><a href="http://web.archive.org/web/20120331050917/http://blogs.adobe.com/penguinswf/2007/05/welcome_to_the_jungle.html">Welcome To The Jungle</a></q>.</p> <p><a href="https://queer.hacktivis.me/objects/7c5e3b69-ebfd-4a79-91a9-1fa7140d5436">Fediverse post for comments</a>, published on 2020-06-30T07:10:20Z, last updated on 2020-06-30T08:07:00Z</p> </article> diff --git a/images/linux-audio-output.dot b/images/linux-audio-output.dot @@ -1,7 +1,7 @@ digraph "Linux Audio Output APIs" { node [ shape=ellipse style=filled ]; label="Linux Audio Output APIs - CC-BY 4.0 © 2020 Haelwenn (lanodan) Monnier + CC-BY 4.0 © 2020-2021 Haelwenn (lanodan) Monnier https://hacktivis.me/articles/linux-audio-output"; "network card" [ shape=box fillcolor=cyan ]; @@ -48,6 +48,7 @@ digraph "Linux Audio Output APIs" { sox -> libao; sox -> PulseAudio; sox -> ALSA; + sox -> sndio; libao [ URL="https://www.xiph.org/ao/" ]; libao -> filesystem; @@ -103,6 +104,7 @@ digraph "Linux Audio Output APIs" { OpenAL -> portaudio; OpenAL -> JACK; OpenAL -> filesystem; + OpenAL -> sndio; OpenAL -> null [ color=red ]; SoundIO [ URL="http://libsound.io/" ]; diff --git a/images/linux-audio-output.png b/images/linux-audio-output.png Binary files differ. diff --git a/images/linux-audio-output.svg b/images/linux-audio-output.svg @@ -1,65 +1,65 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.42.3 (20191010.1750) +<!-- Generated by graphviz version 2.47.1 (20210417.1919) --> <!-- Title: Linux Audio Output APIs Pages: 1 --> -<svg width="2637pt" height="943pt" - viewBox="0.00 0.00 2637.00 942.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg width="2779pt" height="943pt" + viewBox="0.00 0.00 2779.48 942.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 938.74)"> <title>Linux Audio Output APIs</title> -<polygon fill="white" stroke="transparent" points="-4,4 -4,-938.74 2633,-938.74 2633,4 -4,4"/> -<text text-anchor="middle" x="1314.5" y="-37.8" font-family="Times,serif" font-size="14.00">Linux Audio Output APIs</text> -<text text-anchor="middle" x="1314.5" y="-22.8" font-family="Times,serif" font-size="14.00"> CC&#45;BY 4.0 © 2020 Haelwenn (lanodan) Monnier</text> -<text text-anchor="middle" x="1314.5" y="-7.8" font-family="Times,serif" font-size="14.00"> https://hacktivis.me/articles/linux&#45;audio&#45;output</text> +<polygon fill="white" stroke="transparent" points="-4,4 -4,-938.74 2775.48,-938.74 2775.48,4 -4,4"/> +<text text-anchor="middle" x="1385.74" y="-37.8" font-family="Times,serif" font-size="14.00">Linux Audio Output APIs</text> +<text text-anchor="middle" x="1385.74" y="-22.8" font-family="Times,serif" font-size="14.00"> CC&#45;BY 4.0 © 2020&#45;2021 Haelwenn (lanodan) Monnier</text> +<text text-anchor="middle" x="1385.74" y="-7.8" font-family="Times,serif" font-size="14.00"> https://hacktivis.me/articles/linux&#45;audio&#45;output</text> <!-- network card --> <g id="node1" class="node"> <title>network card</title> -<polygon fill="cyan" stroke="black" points="998,-89 910,-89 910,-53 998,-53 998,-89"/> -<text text-anchor="middle" x="954" y="-67.3" font-family="Times,serif" font-size="14.00">network card</text> +<polygon fill="cyan" stroke="black" points="1652.98,-89 1541.98,-89 1541.98,-53 1652.98,-53 1652.98,-89"/> +<text text-anchor="middle" x="1597.48" y="-67.3" font-family="Times,serif" font-size="14.00">network card</text> </g> <!-- sound card --> <g id="node2" class="node"> <title>sound card</title> -<polygon fill="cyan" stroke="black" points="1561,-235 1485,-235 1485,-199 1561,-199 1561,-235"/> -<text text-anchor="middle" x="1523" y="-213.3" font-family="Times,serif" font-size="14.00">sound card</text> +<polygon fill="cyan" stroke="black" points="1459.98,-235 1364.98,-235 1364.98,-199 1459.98,-199 1459.98,-235"/> +<text text-anchor="middle" x="1412.48" y="-213.3" font-family="Times,serif" font-size="14.00">sound card</text> </g> <!-- phone modem --> <g id="node3" class="node"> <title>phone modem</title> -<polygon fill="cyan" stroke="black" points="1509.5,-395 1414.5,-395 1414.5,-359 1509.5,-359 1509.5,-395"/> -<text text-anchor="middle" x="1462" y="-373.3" font-family="Times,serif" font-size="14.00">phone modem</text> +<polygon fill="cyan" stroke="black" points="1393.98,-395 1276.98,-395 1276.98,-359 1393.98,-359 1393.98,-395"/> +<text text-anchor="middle" x="1335.48" y="-373.3" font-family="Times,serif" font-size="14.00">phone modem</text> </g> <!-- Bluetooth card --> <g id="node4" class="node"> <title>Bluetooth card</title> -<polygon fill="cyan" stroke="black" points="1396.5,-395 1299.5,-395 1299.5,-359 1396.5,-359 1396.5,-395"/> -<text text-anchor="middle" x="1348" y="-373.3" font-family="Times,serif" font-size="14.00">Bluetooth card</text> +<polygon fill="cyan" stroke="black" points="1772.48,-395 1650.48,-395 1650.48,-359 1772.48,-359 1772.48,-395"/> +<text text-anchor="middle" x="1711.48" y="-373.3" font-family="Times,serif" font-size="14.00">Bluetooth card</text> </g> <!-- filesystem --> <g id="node5" class="node"> <title>filesystem</title> -<polygon fill="yellow" stroke="black" points="1383.21,-296.54 1383.21,-311.46 1353.21,-322 1310.79,-322 1280.79,-311.46 1280.79,-296.54 1310.79,-286 1353.21,-286 1383.21,-296.54"/> -<text text-anchor="middle" x="1332" y="-300.3" font-family="Times,serif" font-size="14.00">filesystem</text> +<polygon fill="yellow" stroke="black" points="1961.21,-296.54 1961.21,-311.46 1924.46,-322 1872.5,-322 1835.76,-311.46 1835.76,-296.54 1872.5,-286 1924.46,-286 1961.21,-296.54"/> +<text text-anchor="middle" x="1898.48" y="-300.3" font-family="Times,serif" font-size="14.00">filesystem</text> </g> <!-- null --> <g id="node6" class="node"> <title>null</title> -<polygon fill="red" stroke="black" points="1832,-322 1797.14,-304 1832,-286 1866.86,-304 1832,-322"/> -<text text-anchor="middle" x="1832" y="-300.3" font-family="Times,serif" font-size="14.00">null</text> +<polygon fill="red" stroke="black" points="2090.48,-322 2050.1,-304 2090.48,-286 2130.87,-304 2090.48,-322"/> +<text text-anchor="middle" x="2090.48" y="-300.3" font-family="Times,serif" font-size="14.00">null</text> </g> <!-- ? --> <g id="node7" class="node"> <title>?</title> -<ellipse fill="red" stroke="black" cx="168" cy="-304" rx="18" ry="18"/> -<text text-anchor="middle" x="168" y="-300.3" font-family="Times,serif" font-size="14.00">?</text> +<ellipse fill="red" stroke="black" cx="255.48" cy="-304" rx="18" ry="18"/> +<text text-anchor="middle" x="255.48" y="-300.3" font-family="Times,serif" font-size="14.00">?</text> </g> <!-- portaudio --> <g id="node8" class="node"> <title>portaudio</title> <g id="a_node8"><a xlink:href="https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/" xlink:title="portaudio"> -<ellipse fill="lightgrey" stroke="black" cx="2037" cy="-770.74" rx="44.39" ry="18"/> -<text text-anchor="middle" x="2037" y="-767.04" font-family="Times,serif" font-size="14.00">portaudio</text> +<ellipse fill="lightgrey" stroke="black" cx="1705.48" cy="-770.74" rx="55.79" ry="18"/> +<text text-anchor="middle" x="1705.48" y="-767.04" font-family="Times,serif" font-size="14.00">portaudio</text> </a> </g> </g> @@ -67,1050 +67,1062 @@ <g id="node9" class="node"> <title>ALSA</title> <g id="a_node9"><a xlink:href="https://alsa-project.org/wiki/Asoundrc#Plugins" xlink:title="ALSA"> -<polygon fill="yellow" stroke="black" points="1245.66,-690.28 1245.66,-705.2 1224.19,-715.74 1193.81,-715.74 1172.34,-705.2 1172.34,-690.28 1193.81,-679.74 1224.19,-679.74 1245.66,-690.28"/> -<text text-anchor="middle" x="1209" y="-694.04" font-family="Times,serif" font-size="14.00">ALSA</text> +<polygon fill="yellow" stroke="black" points="1351.37,-690.28 1351.37,-705.2 1328.59,-715.74 1296.38,-715.74 1273.6,-705.2 1273.6,-690.28 1296.38,-679.74 1328.59,-679.74 1351.37,-690.28"/> +<text text-anchor="middle" x="1312.48" y="-694.04" font-family="Times,serif" font-size="14.00">ALSA</text> </a> </g> </g> <!-- portaudio&#45;&gt;ALSA --> <g id="edge1" class="edge"> <title>portaudio&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1996.06,-763.87C1970.26,-760.31 1936.23,-755.87 1906,-752.74 1661.86,-727.46 1368.5,-708.42 1256.02,-701.54"/> -<polygon fill="black" stroke="black" points="1255.91,-698.03 1245.71,-700.91 1255.48,-705.01 1255.91,-698.03"/> +<path fill="none" stroke="black" d="M1658.08,-761.18C1582.82,-747.58 1436.76,-721.19 1360.88,-707.48"/> +<polygon fill="black" stroke="black" points="1361.12,-703.97 1350.66,-705.64 1359.87,-710.86 1361.12,-703.97"/> </g> <!-- JACK --> <g id="node10" class="node"> <title>JACK</title> -<ellipse fill="lightgrey" stroke="black" cx="1540" cy="-464" rx="32.49" ry="18"/> -<text text-anchor="middle" x="1540" y="-460.3" font-family="Times,serif" font-size="14.00">JACK</text> +<ellipse fill="lightgrey" stroke="black" cx="1540.48" cy="-464" rx="34.39" ry="18"/> +<text text-anchor="middle" x="1540.48" y="-460.3" font-family="Times,serif" font-size="14.00">JACK</text> </g> <!-- portaudio&#45;&gt;JACK --> <g id="edge2" class="edge"> <title>portaudio&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1995.71,-764.21C1901.65,-751.52 1679.07,-721.04 1673,-715.74 1616.6,-666.51 1667.27,-616.45 1626,-554 1619.04,-543.46 1612.82,-545.04 1604,-536 1589.85,-521.49 1589.52,-515.1 1576,-500 1572.15,-495.7 1567.88,-491.28 1563.67,-487.09"/> -<polygon fill="black" stroke="black" points="1565.86,-484.34 1556.25,-479.88 1560.98,-489.36 1565.86,-484.34"/> +<path fill="none" stroke="black" d="M1661.02,-759.74C1636.46,-751.88 1607.55,-738.37 1590.48,-715.74 1531.98,-638.19 1582.6,-593.28 1555.48,-500 1554.65,-497.14 1553.65,-494.21 1552.56,-491.31"/> +<polygon fill="black" stroke="black" points="1555.69,-489.71 1548.66,-481.78 1549.21,-492.36 1555.69,-489.71"/> </g> <!-- OSS --> <g id="node11" class="node"> <title>OSS</title> -<polygon fill="yellow" stroke="black" points="939.69,-296.54 939.69,-311.46 922.88,-322 899.12,-322 882.31,-311.46 882.31,-296.54 899.12,-286 922.88,-286 939.69,-296.54"/> -<text text-anchor="middle" x="911" y="-300.3" font-family="Times,serif" font-size="14.00">OSS</text> +<polygon fill="yellow" stroke="black" points="1073.61,-296.54 1073.61,-311.46 1054.21,-322 1026.76,-322 1007.36,-311.46 1007.36,-296.54 1026.76,-286 1054.21,-286 1073.61,-296.54"/> +<text text-anchor="middle" x="1040.48" y="-300.3" font-family="Times,serif" font-size="14.00">OSS</text> </g> <!-- portaudio&#45;&gt;OSS --> <g id="edge3" class="edge"> <title>portaudio&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M2033.97,-752.55C2020.9,-684.49 1962.22,-433.86 1796,-359 1776.42,-350.18 1118.16,-315.69 949.87,-307"/> -<polygon fill="black" stroke="black" points="949.89,-303.49 939.73,-306.47 949.53,-310.48 949.89,-303.49"/> +<path fill="none" stroke="black" d="M1703.86,-752.72C1696.73,-681.88 1665.74,-411.69 1603.48,-359 1583.75,-342.3 1397.23,-343.4 1371.48,-341 1268.17,-331.38 1147,-317.55 1083.81,-310.14"/> +<polygon fill="black" stroke="black" points="1084.15,-306.66 1073.81,-308.97 1083.33,-313.61 1084.15,-306.66"/> </g> <!-- asihpi --> <g id="node12" class="node"> <title>asihpi</title> -<polygon fill="yellow" stroke="black" points="2258.44,-510.54 2258.44,-525.46 2238.27,-536 2209.73,-536 2189.56,-525.46 2189.56,-510.54 2209.73,-500 2238.27,-500 2258.44,-510.54"/> -<text text-anchor="middle" x="2224" y="-514.3" font-family="Times,serif" font-size="14.00">asihpi</text> +<polygon fill="yellow" stroke="black" points="1908,-510.54 1908,-525.46 1883.68,-536 1849.29,-536 1824.97,-525.46 1824.97,-510.54 1849.29,-500 1883.68,-500 1908,-510.54"/> +<text text-anchor="middle" x="1866.48" y="-514.3" font-family="Times,serif" font-size="14.00">asihpi</text> </g> <!-- portaudio&#45;&gt;asihpi --> <g id="edge4" class="edge"> <title>portaudio&#45;&gt;asihpi</title> -<path fill="none" stroke="black" d="M2060.87,-755.49C2076.45,-745.52 2096.65,-731.25 2112,-715.74 2162.45,-664.74 2197.9,-586.45 2214.09,-545.71"/> -<polygon fill="black" stroke="black" points="2217.42,-546.79 2217.79,-536.2 2210.9,-544.25 2217.42,-546.79"/> +<path fill="none" stroke="black" d="M1716.3,-752.9C1743.9,-709.91 1817.1,-595.91 1850.03,-544.63"/> +<polygon fill="black" stroke="black" points="1853.05,-546.4 1855.51,-536.1 1847.16,-542.62 1853.05,-546.4"/> </g> <!-- sndio --> <g id="node13" class="node"> <title>sndio</title> <g id="a_node13"><a xlink:href="http://www.sndio.org/" xlink:title="sndio"> -<ellipse fill="lightgrey" stroke="black" cx="1417" cy="-144" rx="29.8" ry="18"/> -<text text-anchor="middle" x="1417" y="-140.3" font-family="Times,serif" font-size="14.00">sndio</text> +<ellipse fill="lightgrey" stroke="black" cx="2138.48" cy="-144" rx="36" ry="18"/> +<text text-anchor="middle" x="2138.48" y="-140.3" font-family="Times,serif" font-size="14.00">sndio</text> </a> </g> </g> <!-- portaudio&#45;&gt;sndio --> <g id="edge6" class="edge"> <title>portaudio&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M2066.12,-756.94C2087.4,-747.01 2116.52,-732.19 2140,-715.74 2251.15,-637.85 2655.9,-394.23 2574,-286 2488.17,-172.57 2403.57,-235.17 2266,-199 2231.49,-189.93 2223.32,-185.05 2188,-180 2044.67,-159.49 1593.85,-148.66 1456.87,-145.79"/> -<polygon fill="black" stroke="black" points="1456.88,-142.29 1446.81,-145.58 1456.74,-149.29 1456.88,-142.29"/> +<path fill="none" stroke="black" d="M1757.7,-764.28C1831.88,-755.85 1963.46,-738.29 2005.48,-715.74 2132.28,-647.72 2166.17,-611.21 2229.48,-482 2283.14,-372.49 2196.21,-226.91 2156.56,-169.63"/> +<polygon fill="black" stroke="black" points="2159.26,-167.38 2150.63,-161.22 2153.53,-171.41 2159.26,-167.38"/> </g> <!-- ALSA&#45;&gt;network card --> -<g id="edge79" class="edge"> +<g id="edge81" class="edge"> <title>ALSA&#45;&gt;network card</title> -<path fill="none" stroke="green" d="M1172.29,-695.93C1106.7,-693.86 972.64,-686.62 934,-661.74 886.78,-631.34 693.14,-239.59 692,-235 667.98,-138.46 816.67,-96.21 900.15,-80.28"/> -<polygon fill="green" stroke="green" points="900.79,-83.73 909.99,-78.47 899.52,-76.84 900.79,-83.73"/> +<path fill="none" stroke="green" d="M1273.61,-695.95C1196.55,-693.86 1027.38,-686.5 975.48,-661.74 740.32,-549.52 665.18,-478.9 573.48,-235 564.67,-211.57 578.44,-129.77 582.48,-126 617.24,-93.58 1312.44,-77.48 1531.78,-73.2"/> +<polygon fill="green" stroke="green" points="1531.93,-76.69 1541.86,-73 1531.8,-69.69 1531.93,-76.69"/> </g> <!-- ALSA&#45;&gt;sound card --> -<g id="edge78" class="edge"> +<g id="edge80" class="edge"> <title>ALSA&#45;&gt;sound card</title> -<path fill="none" stroke="green" d="M1181.39,-685.84C1168.76,-679.96 1154.16,-671.83 1143,-661.74 1061.6,-588.18 977.03,-545.63 1023,-446 1078.11,-326.56 1145.37,-321.63 1272,-286 1360.04,-261.23 1394.94,-308.38 1477,-268 1488.46,-262.36 1498.45,-252.55 1506.17,-243.1"/> -<polygon fill="green" stroke="green" points="1509.07,-245.08 1512.35,-235 1503.5,-240.83 1509.07,-245.08"/> +<path fill="none" stroke="green" d="M1273.45,-692.23C1254.12,-687.8 1232.42,-679.04 1220.48,-661.74 1195.98,-626.2 1239.62,-571.49 1262.48,-428 1267.33,-397.6 1255.34,-386.83 1268.48,-359 1292.46,-308.25 1342.92,-265.74 1377.27,-241.07"/> +<polygon fill="green" stroke="green" points="1379.47,-243.81 1385.63,-235.19 1375.44,-238.08 1379.47,-243.81"/> </g> <!-- ALSA&#45;&gt;filesystem --> -<g id="edge84" class="edge"> +<g id="edge86" class="edge"> <title>ALSA&#45;&gt;filesystem</title> -<path fill="none" stroke="black" d="M1182.45,-685.15C1172.96,-679.54 1163.3,-671.81 1158,-661.74 1126.03,-601.02 1174.05,-410.86 1219,-359 1235.44,-340.04 1260.02,-327.19 1282.07,-318.81"/> -<polygon fill="black" stroke="black" points="1283.42,-322.04 1291.65,-315.38 1281.06,-315.45 1283.42,-322.04"/> +<path fill="none" stroke="black" d="M1306.81,-679.57C1296.17,-644.29 1276.51,-561.79 1302.48,-500 1306.82,-489.68 1436.51,-364.09 1446.48,-359 1511.01,-326.11 1714.82,-312.63 1825.4,-307.63"/> +<polygon fill="black" stroke="black" points="1825.64,-311.13 1835.48,-307.19 1825.34,-304.13 1825.64,-311.13"/> </g> <!-- ALSA&#45;&gt;null --> -<g id="edge83" class="edge"> +<g id="edge85" class="edge"> <title>ALSA&#45;&gt;null</title> -<path fill="none" stroke="red" d="M1204.93,-679.39C1192.88,-623.2 1163.81,-444.9 1257,-359 1296.04,-323.01 1664.16,-309.61 1790.03,-306.05"/> -<polygon fill="red" stroke="red" points="1790.51,-309.54 1800.41,-305.77 1790.32,-302.54 1790.51,-309.54"/> +<path fill="none" stroke="red" d="M1317.13,-679.72C1326.86,-645.07 1350.94,-564.18 1380.48,-500 1399.23,-459.29 1405.14,-449.26 1431.48,-413 1450.36,-387.02 1450.71,-373.25 1479.48,-359 1528.51,-334.73 1916.09,-327.9 1970.48,-322 1998,-319.02 2028.92,-314.61 2052.48,-311.03"/> +<polygon fill="red" stroke="red" points="2053.07,-314.48 2062.42,-309.51 2052.01,-307.56 2053.07,-314.48"/> </g> <!-- ALSA&#45;&gt;JACK --> -<g id="edge81" class="edge"> +<g id="edge83" class="edge"> <title>ALSA&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1245.69,-693.18C1271.65,-689.1 1306.14,-680.37 1331,-661.74 1353.62,-644.79 1345.17,-628.14 1365,-608 1406,-566.37 1432.03,-575.6 1475,-536 1489.9,-522.26 1489.38,-515.01 1503,-500 1507.04,-495.55 1511.53,-491 1515.97,-486.72"/> -<polygon fill="black" stroke="black" points="1518.4,-489.23 1523.27,-479.82 1513.59,-484.14 1518.4,-489.23"/> +<path fill="none" stroke="black" d="M1348.61,-688.88C1366.19,-683.59 1386.67,-675.06 1401.48,-661.74 1421.51,-643.73 1412.32,-628.76 1429.48,-608 1462.35,-568.25 1491.88,-578.91 1520.48,-536 1529.2,-522.92 1534.16,-506.07 1536.95,-492.06"/> +<polygon fill="black" stroke="black" points="1540.44,-492.47 1538.7,-482.02 1533.54,-491.27 1540.44,-492.47"/> </g> <!-- ALSA&#45;&gt;sndio --> -<g id="edge57" class="edge"> +<g id="edge58" class="edge"> <title>ALSA&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M1190.27,-681.36C1186.3,-675.47 1182.9,-668.53 1181,-661.74 1132.04,-486.33 1098.28,-396.82 1210,-253 1252.86,-197.83 1332.14,-167.1 1379.32,-153.55"/> -<polygon fill="black" stroke="black" points="1380.44,-156.87 1389.15,-150.84 1378.58,-150.12 1380.44,-156.87"/> +<path fill="none" stroke="black" d="M1291.05,-682.04C1285.91,-676.13 1281.26,-668.99 1278.48,-661.74 1230.08,-535.49 1222.29,-491.65 1248.48,-359 1264.68,-276.96 1273.49,-237.96 1347.48,-199 1363.99,-190.31 1926.12,-156.88 2092.57,-147.47"/> +<polygon fill="black" stroke="black" points="2093.17,-150.95 2102.96,-146.89 2092.78,-143.96 2093.17,-150.95"/> </g> <!-- PulseAudio --> <g id="node14" class="node"> <title>PulseAudio</title> <g id="a_node14"><a xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/" xlink:title="PulseAudio"> -<ellipse fill="lightgrey" stroke="black" cx="1796" cy="-572" rx="51.99" ry="18"/> -<text text-anchor="middle" x="1796" y="-568.3" font-family="Times,serif" font-size="14.00">PulseAudio</text> +<ellipse fill="lightgrey" stroke="black" cx="2011.48" cy="-572" rx="62.29" ry="18"/> +<text text-anchor="middle" x="2011.48" y="-568.3" font-family="Times,serif" font-size="14.00">PulseAudio</text> </a> </g> </g> <!-- ALSA&#45;&gt;PulseAudio --> -<g id="edge80" class="edge"> +<g id="edge82" class="edge"> <title>ALSA&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1245.69,-690.14C1266.84,-686.93 1293.8,-683.06 1318,-679.74 1379.28,-671.33 1397.57,-682.02 1456,-661.74 1500.01,-646.47 1502.1,-623.59 1546,-608 1607.44,-586.18 1682.32,-577.95 1734.11,-574.85"/> -<polygon fill="black" stroke="black" points="1734.36,-578.34 1744.15,-574.3 1733.97,-571.35 1734.36,-578.34"/> +<path fill="none" stroke="black" d="M1350.95,-689.85C1392.81,-683.08 1461.31,-672.25 1520.48,-661.74 1643.96,-639.81 1674.11,-630.5 1797.48,-608 1847.3,-598.92 1904.07,-589.28 1946.69,-582.42"/> +<polygon fill="black" stroke="black" points="1947.34,-585.86 1956.66,-580.83 1946.23,-578.95 1947.34,-585.86"/> </g> <!-- bluez --> <g id="node15" class="node"> <title>bluez</title> -<polygon fill="yellow" stroke="black" points="1452.35,-456.54 1452.35,-471.46 1431.64,-482 1402.36,-482 1381.65,-471.46 1381.65,-456.54 1402.36,-446 1431.64,-446 1452.35,-456.54"/> -<text text-anchor="middle" x="1417" y="-460.3" font-family="Times,serif" font-size="14.00">BlueZ</text> +<polygon fill="yellow" stroke="black" points="1752,-456.54 1752,-471.46 1727.68,-482 1693.29,-482 1668.97,-471.46 1668.97,-456.54 1693.29,-446 1727.68,-446 1752,-456.54"/> +<text text-anchor="middle" x="1710.48" y="-460.3" font-family="Times,serif" font-size="14.00">BlueZ</text> </g> <!-- ALSA&#45;&gt;bluez --> <g id="edge18" class="edge"> <title>ALSA&#45;&gt;bluez</title> -<path fill="none" stroke="black" d="M1243.84,-689.21C1262.1,-683.91 1283.96,-675.27 1300,-661.74 1314.8,-649.25 1374.9,-541.71 1402.73,-491.11"/> -<polygon fill="black" stroke="black" points="1405.95,-492.53 1407.69,-482.08 1399.81,-489.16 1405.95,-492.53"/> +<path fill="none" stroke="black" d="M1351.22,-692.51C1375.15,-688.18 1405.24,-679.42 1426.48,-661.74 1447.18,-644.51 1435.28,-626.88 1454.48,-608 1467.24,-595.46 1474.7,-598.42 1490.48,-590 1557.64,-554.16 1634.68,-509.57 1677.46,-484.49"/> +<polygon fill="black" stroke="black" points="1679.45,-487.38 1686.3,-479.3 1675.91,-481.34 1679.45,-487.38"/> </g> <!-- aRts --> <g id="node20" class="node"> <title>aRts</title> -<ellipse fill="lightgrey" stroke="black" cx="472" cy="-144" rx="27" ry="18"/> -<text text-anchor="middle" x="472" y="-140.3" font-family="Times,serif" font-size="14.00">aRts</text> +<ellipse fill="lightgrey" stroke="black" cx="623.48" cy="-144" rx="31.7" ry="18"/> +<text text-anchor="middle" x="623.48" y="-140.3" font-family="Times,serif" font-size="14.00">aRts</text> </g> <!-- ALSA&#45;&gt;aRts --> -<g id="edge82" class="edge"> +<g id="edge84" class="edge"> <title>ALSA&#45;&gt;aRts</title> -<path fill="none" stroke="black" d="M1172.38,-695.56C1090.99,-692.57 897.43,-683.36 836,-661.74 744.58,-629.56 472,-518.42 472,-421.5 472,-421.5 472,-421.5 472,-216 472,-201.65 472,-185.67 472,-172.51"/> -<polygon fill="black" stroke="black" points="475.5,-172.22 472,-162.22 468.5,-172.22 475.5,-172.22"/> +<path fill="none" stroke="black" d="M1273.37,-697.61C1224.92,-697.23 1140.89,-691.7 1076.48,-661.74 914.11,-586.22 889.21,-532.51 774.48,-395 712.47,-320.67 658.97,-218.16 635.77,-170.84"/> +<polygon fill="black" stroke="black" points="638.81,-169.08 631.29,-161.62 632.51,-172.14 638.81,-169.08"/> </g> <!-- PipeWire --> <g id="node26" class="node"> <title>PipeWire</title> <g id="a_node26"><a xlink:href="http://pipewire.org/" xlink:title="PipeWire"> -<ellipse fill="lightgrey" stroke="black" cx="1572" cy="-377" rx="44.39" ry="18"/> -<text text-anchor="middle" x="1572" y="-373.3" font-family="Times,serif" font-size="14.00">PipeWire</text> +<ellipse fill="lightgrey" stroke="black" cx="1541.48" cy="-377" rx="53.09" ry="18"/> +<text text-anchor="middle" x="1541.48" y="-373.3" font-family="Times,serif" font-size="14.00">PipeWire</text> </a> </g> </g> <!-- ALSA&#45;&gt;PipeWire --> -<g id="edge50" class="edge"> +<g id="edge51" class="edge"> <title>ALSA&#45;&gt;PipeWire</title> -<path fill="none" stroke="black" d="M1212.54,-679.73C1223.04,-633.89 1258.45,-507.12 1340,-446 1406.19,-396.39 1439.83,-418.97 1519,-395 1522.29,-394 1525.69,-392.96 1529.1,-391.89"/> -<polygon fill="black" stroke="black" points="1530.21,-395.21 1538.69,-388.87 1528.1,-388.54 1530.21,-395.21"/> +<path fill="none" stroke="black" d="M1312.06,-679.53C1312,-643.1 1316.34,-556.88 1355.48,-500 1390.59,-448.98 1454.71,-414.01 1497.71,-395"/> +<polygon fill="black" stroke="black" points="1499.28,-398.13 1507.08,-390.96 1496.51,-391.7 1499.28,-398.13"/> </g> <!-- JACK&#45;&gt;PipeWire --> -<g id="edge51" class="edge"> +<g id="edge52" class="edge"> <title>JACK&#45;&gt;PipeWire</title> -<path fill="none" stroke="black" d="M1546.32,-446.21C1550.81,-434.29 1556.92,-418.06 1562.05,-404.42"/> -<polygon fill="black" stroke="black" points="1565.33,-405.64 1565.58,-395.05 1558.78,-403.17 1565.33,-405.64"/> +<path fill="none" stroke="black" d="M1540.69,-445.8C1540.82,-434.16 1541.01,-418.55 1541.16,-405.24"/> +<polygon fill="black" stroke="black" points="1544.66,-405.22 1541.28,-395.18 1537.66,-405.13 1544.66,-405.22"/> </g> <!-- OSS&#45;&gt;sound card --> -<g id="edge86" class="edge"> +<g id="edge88" class="edge"> <title>OSS&#45;&gt;sound card</title> -<path fill="none" stroke="green" d="M939.7,-299.01C1036.71,-285.54 1353.17,-241.59 1474.79,-224.7"/> -<polygon fill="green" stroke="green" points="1475.49,-228.13 1484.91,-223.29 1474.53,-221.2 1475.49,-228.13"/> -<text text-anchor="middle" x="1363" y="-256.8" font-family="Times,serif" font-size="14.00" fill="green">third&#45;party drivers from opensound.com</text> +<path fill="none" stroke="green" d="M1014.83,-292.47C994.66,-282.74 972.02,-267.62 985.48,-253 1010.01,-226.38 1244.16,-220.01 1354.93,-218.48"/> +<polygon fill="green" stroke="green" points="1354.98,-221.98 1364.94,-218.35 1354.89,-214.98 1354.98,-221.98"/> +<text text-anchor="middle" x="1129.48" y="-256.8" font-family="Times,serif" font-size="14.00" fill="green">third&#45;party drivers from opensound.com</text> </g> <!-- OSS&#45;&gt;ALSA --> -<g id="edge85" class="edge"> +<g id="edge87" class="edge"> <title>OSS&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M913.95,-322.1C919.66,-354 933.35,-424.55 952,-482 955.35,-492.31 1019.58,-654.92 1028,-661.74 1048.17,-678.08 1115.47,-687.77 1162.06,-692.67"/> -<polygon fill="black" stroke="black" points="1161.94,-696.18 1172.24,-693.7 1162.65,-689.21 1161.94,-696.18"/> +<path fill="none" stroke="black" d="M1042.73,-322.31C1049.37,-368.76 1072.12,-498.82 1128.48,-590 1150.95,-626.34 1156.35,-638.93 1192.48,-661.74 1213.98,-675.31 1240.94,-683.79 1263.85,-689"/> +<polygon fill="black" stroke="black" points="1263.22,-692.44 1273.73,-691.1 1264.68,-685.6 1263.22,-692.44"/> </g> <!-- RoarAudio --> <g id="node23" class="node"> <title>RoarAudio</title> <g id="a_node23"><a xlink:href="http://roaraudio.keep-cool.org/" xlink:title="RoarAudio"> -<ellipse fill="lightgrey" stroke="black" cx="993" cy="-217" rx="50.09" ry="18"/> -<text text-anchor="middle" x="993" y="-213.3" font-family="Times,serif" font-size="14.00">RoarAudio</text> +<ellipse fill="lightgrey" stroke="black" cx="1720.48" cy="-217" rx="59.29" ry="18"/> +<text text-anchor="middle" x="1720.48" y="-213.3" font-family="Times,serif" font-size="14.00">RoarAudio</text> </a> </g> </g> <!-- OSS&#45;&gt;RoarAudio --> -<g id="edge35" class="edge"> +<g id="edge36" class="edge"> <title>OSS&#45;&gt;RoarAudio</title> -<path fill="none" stroke="black" d="M926.04,-287.41C938.4,-274.59 956.12,-256.23 970.22,-241.61"/> -<polygon fill="black" stroke="black" points="972.79,-243.99 977.22,-234.36 967.75,-239.13 972.79,-243.99"/> +<path fill="none" stroke="black" d="M1073.74,-298.84C1180.4,-285.51 1515.13,-243.67 1656.48,-226"/> +<polygon fill="black" stroke="black" points="1657.24,-229.43 1666.72,-224.72 1656.37,-222.49 1657.24,-229.43"/> </g> <!-- asihpi&#45;&gt;sound card --> <g id="edge5" class="edge"> <title>asihpi&#45;&gt;sound card</title> -<path fill="none" stroke="green" d="M2225.83,-499.66C2229.91,-450.44 2233.73,-309.79 2152,-253 2104.79,-220.19 1710.77,-217.67 1571.52,-217.81"/> -<polygon fill="green" stroke="green" points="1571.16,-214.31 1561.16,-217.83 1571.17,-221.31 1571.16,-214.31"/> +<path fill="none" stroke="green" d="M1867.07,-499.9C1866.94,-485.03 1865.22,-463.23 1857.48,-446 1836.45,-399.16 1824.44,-387.12 1781.48,-359 1735.85,-329.13 1715.74,-340.64 1664.48,-322 1592.4,-295.78 1510.6,-261.08 1460.26,-239.15"/> +<polygon fill="green" stroke="green" points="1461.5,-235.87 1450.94,-235.07 1458.7,-242.28 1461.5,-235.87"/> </g> <!-- sndio&#45;&gt;network card --> -<g id="edge55" class="edge"> +<g id="edge56" class="edge"> <title>sndio&#45;&gt;network card</title> -<path fill="none" stroke="black" d="M1378.33,-137.07C1295.86,-124.42 1102.53,-94.78 1007.98,-80.28"/> -<polygon fill="black" stroke="black" points="1377.97,-140.56 1388.39,-138.61 1379.03,-133.64 1377.97,-140.56"/> -<polygon fill="black" stroke="black" points="1008.47,-76.81 998.05,-78.76 1007.41,-83.73 1008.47,-76.81"/> +<path fill="none" stroke="black" d="M2094.07,-137.17C1998.99,-124.69 1775.3,-95.34 1663.5,-80.66"/> +<polygon fill="black" stroke="black" points="2093.86,-140.67 2104.23,-138.5 2094.77,-133.73 2093.86,-140.67"/> +<polygon fill="black" stroke="black" points="1663.74,-77.17 1653.37,-79.33 1662.83,-84.11 1663.74,-77.17"/> </g> <!-- sndio&#45;&gt;ALSA --> -<g id="edge54" class="edge"> +<g id="edge55" class="edge"> <title>sndio&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1391.29,-153.52C1350.22,-167.07 1270.88,-197.8 1228,-253 1116.28,-396.82 1150.04,-486.33 1199,-661.74 1199.8,-664.61 1200.87,-667.51 1202.06,-670.34"/> -<polygon fill="black" stroke="black" points="1198.94,-671.96 1206.29,-679.6 1205.31,-669.05 1198.94,-671.96"/> +<path fill="none" stroke="black" d="M2103.28,-147.23C1954.11,-156.29 1382.14,-190.23 1365.48,-199 1291.49,-237.96 1282.68,-276.96 1266.48,-359 1240.29,-491.65 1248.08,-535.49 1296.48,-661.74 1297.69,-664.88 1299.24,-667.99 1300.93,-671"/> +<polygon fill="black" stroke="black" points="1298,-672.91 1306.22,-679.59 1303.96,-669.24 1298,-672.91"/> </g> <!-- PulseAudio&#45;&gt;network card --> <g id="edge9" class="edge"> <title>PulseAudio&#45;&gt;network card</title> -<path fill="none" stroke="green" d="M1855.34,-564.87C1890.01,-559.9 1934.08,-551.13 1971,-536 2161.14,-458.08 2405.21,-331.14 2266,-180 2179.51,-86.1 1244.61,-73.84 1008.11,-72.24"/> -<polygon fill="green" stroke="green" points="1854.8,-561.41 1845.36,-566.24 1855.74,-568.35 1854.8,-561.41"/> -<polygon fill="green" stroke="green" points="1008.05,-68.74 998.03,-72.18 1008.01,-75.74 1008.05,-68.74"/> -<text text-anchor="middle" x="2437.5" y="-300.3" font-family="Times,serif" font-size="14.00" fill="green">DLNA, RTP, SDP, SAP, RAOP, Tunnel, HTTP</text> +<path fill="none" stroke="green" d="M2083.06,-567.37C2130.51,-563.27 2193.53,-554.55 2246.48,-536 2291.59,-520.2 2302.63,-512.44 2339.48,-482 2364.02,-461.74 2365.96,-452.32 2386.48,-428 2398.71,-413.52 2403.21,-410.93 2413.48,-395 2442.79,-349.57 2427.93,-322.85 2467.48,-286 2557.59,-202.06 2806.12,-271.31 2723.48,-180 2652.06,-101.08 1894.1,-78.37 1663.6,-73.27"/> +<polygon fill="green" stroke="green" points="2082.56,-563.9 2072.88,-568.2 2083.13,-570.87 2082.56,-563.9"/> +<polygon fill="green" stroke="green" points="1663.43,-69.77 1653.35,-73.05 1663.27,-76.76 1663.43,-69.77"/> +<text text-anchor="middle" x="2619.48" y="-300.3" font-family="Times,serif" font-size="14.00" fill="green">DLNA, RTP, SDP, SAP, RAOP, Tunnel, HTTP</text> </g> <!-- PulseAudio&#45;&gt;sound card --> <g id="edge11" class="edge"> <title>PulseAudio&#45;&gt;sound card</title> -<path fill="none" stroke="green" d="M1847.06,-568.47C1878.01,-564.78 1916.99,-556.11 1946,-536 1956.7,-528.58 2072.23,-353.46 2076,-341 2076.13,-340.57 2076.26,-340.36 2076,-340 2017.6,-257.27 1695.12,-228.69 1571.37,-220.68"/> -<polygon fill="green" stroke="green" points="1571.27,-217.16 1561.07,-220.03 1570.83,-224.15 1571.27,-217.16"/> +<path fill="none" stroke="green" d="M2073.54,-569.4C2104.31,-565.74 2140.36,-556.78 2166.48,-536 2253.94,-466.42 2239.19,-336.48 2139.48,-286 2109.71,-270.93 1636.96,-234.64 1470.18,-222.24"/> +<polygon fill="green" stroke="green" points="1470.35,-218.74 1460.11,-221.49 1469.83,-225.72 1470.35,-218.74"/> </g> <!-- PulseAudio&#45;&gt;null --> <g id="edge10" class="edge"> <title>PulseAudio&#45;&gt;null</title> -<path fill="none" stroke="red" d="M1826.61,-557.37C1835.08,-552 1843.24,-544.93 1848,-536 1884.2,-468 1857.24,-372.36 1841.39,-328.57"/> -<polygon fill="red" stroke="red" points="1844.62,-327.21 1837.83,-319.08 1838.07,-329.67 1844.62,-327.21"/> +<path fill="none" stroke="red" d="M2054.83,-558.86C2090.39,-546.23 2137.93,-522.5 2157.48,-482 2184.09,-426.9 2136.54,-358.3 2108.63,-325"/> +<polygon fill="red" stroke="red" points="2111.2,-322.62 2102.02,-317.33 2105.9,-327.19 2111.2,-322.62"/> </g> <!-- PulseAudio&#45;&gt;ALSA --> <g id="edge7" class="edge"> <title>PulseAudio&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1744.67,-575.08C1696.71,-578.35 1623.96,-586.7 1564,-608 1520.1,-623.59 1518.01,-646.47 1474,-661.74 1415.57,-682.02 1397.28,-671.33 1336,-679.74 1309.54,-683.37 1279.76,-687.66 1255.59,-691.03"/> -<polygon fill="black" stroke="black" points="1255.03,-687.57 1245.6,-692.4 1255.99,-694.5 1255.03,-687.57"/> +<path fill="none" stroke="black" d="M1960.66,-582.61C1921.05,-589.45 1864.86,-599 1815.48,-608 1692.11,-630.5 1661.96,-639.81 1538.48,-661.74 1477.88,-672.5 1407.5,-683.6 1361.47,-690.33"/> +<polygon fill="black" stroke="black" points="1360.85,-686.89 1351.46,-691.79 1361.85,-693.81 1360.85,-686.89"/> </g> <!-- PulseAudio&#45;&gt;JACK --> <g id="edge12" class="edge"> <title>PulseAudio&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1755.11,-560.74C1738.23,-555.21 1719.12,-547.18 1704,-536 1687.7,-523.95 1693.3,-510.57 1676,-500 1639.33,-477.59 1622.18,-494.29 1581,-482 1578.69,-481.31 1576.34,-480.54 1573.99,-479.71"/> -<polygon fill="black" stroke="black" points="1575.01,-476.36 1564.42,-476.09 1572.53,-482.9 1575.01,-476.36"/> +<path fill="none" stroke="black" d="M1951.21,-567.18C1902.43,-562.89 1832.39,-554.01 1773.48,-536 1738.13,-525.19 1733.43,-512.08 1698.48,-500 1660.39,-486.83 1615.36,-477.43 1583.15,-471.71"/> +<polygon fill="black" stroke="black" points="1583.61,-468.24 1573.16,-469.98 1582.42,-475.14 1583.61,-468.24"/> </g> <!-- PulseAudio&#45;&gt;OSS --> <g id="edge8" class="edge"> <title>PulseAudio&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M1808.66,-544.54C1819.31,-518.24 1830.54,-477.4 1815,-446 1786.74,-388.87 1761.01,-380.47 1701,-359 1647.82,-339.97 1249.29,-345.58 1193,-341 1105.84,-333.91 1004.24,-319.39 949.94,-311.12"/> -<polygon fill="black" stroke="black" points="1805.39,-543.28 1804.66,-553.85 1811.82,-546.04 1805.39,-543.28"/> -<polygon fill="black" stroke="black" points="950.15,-307.61 939.73,-309.55 949.09,-314.53 950.15,-307.61"/> +<path fill="none" stroke="black" d="M1993.03,-546.14C1982.28,-532.15 1968.18,-514.61 1954.48,-500 1930.17,-474.06 1923.08,-468.41 1895.48,-446 1865.32,-421.51 1855.18,-418.82 1824.48,-395 1804.79,-379.72 1804.71,-368.04 1781.48,-359 1740.54,-343.06 1430.3,-344.27 1386.48,-341 1277.29,-332.84 1149.22,-318.18 1083.78,-310.32"/> +<polygon fill="black" stroke="black" points="1990.42,-548.49 1999.26,-554.34 1996,-544.26 1990.42,-548.49"/> +<polygon fill="black" stroke="black" points="1084.17,-306.84 1073.83,-309.12 1083.34,-313.79 1084.17,-306.84"/> </g> <!-- PulseAudio&#45;&gt;sndio --> -<g id="edge56" class="edge"> +<g id="edge57" class="edge"> <title>PulseAudio&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M1847.35,-568.51C1884.11,-564.95 1933.83,-556.41 1973,-536 2083.95,-478.2 2176,-466.1 2176,-341 2176,-341 2176,-341 2176,-216 2176,-143.15 1614.49,-143.09 1457.4,-144.5"/> -<polygon fill="black" stroke="black" points="1457.19,-141 1447.22,-144.6 1457.26,-148 1457.19,-141"/> +<path fill="none" stroke="black" d="M2072.35,-567.64C2109.73,-563.63 2157.7,-554.92 2196.48,-536 2314.51,-478.42 2364.33,-460.64 2418.48,-341 2430.54,-314.36 2376.65,-342.18 2355.48,-322 2307.27,-276.03 2357.37,-224.15 2307.48,-180 2289.41,-164.01 2227.17,-154.28 2183.5,-149.27"/> +<polygon fill="black" stroke="black" points="2183.71,-145.77 2173.39,-148.15 2182.94,-152.73 2183.71,-145.77"/> </g> <!-- PulseAudio&#45;&gt;bluez --> <g id="edge13" class="edge"> <title>PulseAudio&#45;&gt;bluez</title> -<path fill="none" stroke="black" d="M1756.87,-560.06C1684.71,-539.87 1531.35,-496.98 1457.89,-476.44"/> -<polygon fill="black" stroke="black" points="1458.64,-473.01 1448.07,-473.69 1456.76,-479.75 1458.64,-473.01"/> +<path fill="none" stroke="black" d="M1948.83,-570.68C1905.94,-568.08 1849.01,-559.79 1804.48,-536 1785.07,-525.63 1787.72,-513.68 1770.48,-500 1762.77,-493.88 1753.88,-488.1 1745.34,-483.07"/> +<polygon fill="black" stroke="black" points="1747.06,-480.02 1736.63,-478.12 1743.59,-486.11 1747.06,-480.02"/> </g> <!-- ofono --> <g id="node16" class="node"> <title>ofono</title> -<polygon fill="yellow" stroke="black" points="1657.54,-456.54 1657.54,-471.46 1637.89,-482 1610.11,-482 1590.46,-471.46 1590.46,-456.54 1610.11,-446 1637.89,-446 1657.54,-456.54"/> -<text text-anchor="middle" x="1624" y="-460.3" font-family="Times,serif" font-size="14.00">ofono</text> +<polygon fill="yellow" stroke="black" points="1848.78,-456.54 1848.78,-471.46 1825.76,-482 1793.21,-482 1770.19,-471.46 1770.19,-456.54 1793.21,-446 1825.76,-446 1848.78,-456.54"/> +<text text-anchor="middle" x="1809.48" y="-460.3" font-family="Times,serif" font-size="14.00">ofono</text> </g> <!-- PulseAudio&#45;&gt;ofono --> <g id="edge14" class="edge"> <title>PulseAudio&#45;&gt;ofono</title> -<path fill="none" stroke="black" d="M1763.93,-557.72C1752.25,-552.02 1739.38,-544.66 1729,-536 1713.44,-523.01 1716.91,-512.56 1701,-500 1689.41,-490.85 1675.04,-483.49 1661.86,-477.92"/> -<polygon fill="black" stroke="black" points="1663.12,-474.65 1652.53,-474.18 1660.52,-481.15 1663.12,-474.65"/> +<path fill="none" stroke="black" d="M1951.06,-567.02C1903.1,-562.58 1841.24,-553.57 1823.48,-536 1812.13,-524.77 1808.6,-507.18 1807.92,-492.32"/> +<polygon fill="black" stroke="black" points="1811.42,-492.09 1807.86,-482.11 1804.42,-492.13 1811.42,-492.09"/> </g> <!-- sox --> <g id="node17" class="node"> <title>sox</title> <g id="a_node17"><a xlink:href="http://sox.sourceforge.net/Docs/Features" xlink:title="sox"> -<ellipse fill="lightgrey" stroke="black" cx="1779" cy="-464" rx="27" ry="18"/> -<text text-anchor="middle" x="1779" y="-460.3" font-family="Times,serif" font-size="14.00">sox</text> +<ellipse fill="lightgrey" stroke="black" cx="2121.48" cy="-464" rx="27" ry="18"/> +<text text-anchor="middle" x="2121.48" y="-460.3" font-family="Times,serif" font-size="14.00">sox</text> </a> </g> </g> <!-- PulseAudio&#45;&gt;sox --> <g id="edge15" class="edge"> <title>PulseAudio&#45;&gt;sox</title> -<path fill="none" stroke="black" d="M1788.15,-553.97C1783.64,-537.28 1779.23,-511.58 1777.37,-492.08"/> -<polygon fill="black" stroke="black" points="1780.85,-491.7 1776.61,-481.99 1773.87,-492.22 1780.85,-491.7"/> +<path fill="none" stroke="black" d="M2024.04,-553.97C2041.72,-534.91 2073.6,-504.11 2096.21,-484.21"/> +<polygon fill="black" stroke="black" points="2098.5,-486.85 2103.77,-477.66 2093.92,-481.56 2098.5,-486.85"/> </g> <!-- PulseAudio&#45;&gt;PipeWire --> -<g id="edge49" class="edge"> +<g id="edge50" class="edge"> <title>PulseAudio&#45;&gt;PipeWire</title> -<path fill="none" stroke="black" d="M1767.42,-548.6C1762.78,-544.57 1758.14,-540.28 1754,-536 1739.91,-521.43 1739.75,-514.9 1726,-500 1701.89,-473.88 1694.61,-468.39 1667,-446 1646.1,-429.05 1621.34,-411.41 1602.34,-398.34"/> -<polygon fill="black" stroke="black" points="1765.24,-551.34 1775.14,-555.1 1769.74,-545.99 1765.24,-551.34"/> -<polygon fill="black" stroke="black" points="1604.29,-395.43 1594.05,-392.68 1600.34,-401.21 1604.29,-395.43"/> +<path fill="none" stroke="black" d="M1978.41,-549.69C1972.03,-545.31 1965.46,-540.62 1959.48,-536 1911.64,-499.04 1911.46,-473.24 1857.48,-446 1834.44,-434.37 1681.24,-404.32 1596.92,-388.35"/> +<polygon fill="black" stroke="black" points="1976.7,-552.75 1986.95,-555.43 1980.61,-546.94 1976.7,-552.75"/> +<polygon fill="black" stroke="black" points="1597.46,-384.89 1586.99,-386.47 1596.16,-391.77 1597.46,-384.89"/> </g> <!-- bluez&#45;&gt;Bluetooth card --> <g id="edge19" class="edge"> <title>bluez&#45;&gt;Bluetooth card</title> -<path fill="none" stroke="green" d="M1381.74,-456.27C1365.83,-451.29 1348.52,-442.7 1339,-428 1334.62,-421.23 1334.51,-412.92 1336.19,-405.04"/> -<polygon fill="green" stroke="green" points="1339.55,-406 1339.08,-395.42 1332.85,-403.99 1339.55,-406"/> +<path fill="none" stroke="green" d="M1710.69,-445.8C1710.82,-434.16 1711.01,-418.55 1711.16,-405.24"/> +<polygon fill="green" stroke="green" points="1714.66,-405.22 1711.28,-395.18 1707.66,-405.13 1714.66,-405.22"/> </g> <!-- ofono&#45;&gt;phone modem --> <g id="edge17" class="edge"> <title>ofono&#45;&gt;phone modem</title> -<path fill="none" stroke="green" d="M1600.79,-450.82C1575.58,-437.59 1534.78,-416.18 1503.92,-400"/> -<polygon fill="green" stroke="green" points="1505.18,-396.7 1494.69,-395.15 1501.92,-402.9 1505.18,-396.7"/> +<path fill="none" stroke="green" d="M1780.3,-451.71C1774.15,-449.6 1767.65,-447.57 1761.48,-446 1695.2,-429.12 1506.61,-401.71 1404.01,-387.39"/> +<polygon fill="green" stroke="green" points="1404.44,-383.91 1394.05,-386 1403.47,-390.85 1404.44,-383.91"/> </g> <!-- sox&#45;&gt;filesystem --> <g id="edge20" class="edge"> <title>sox&#45;&gt;filesystem</title> -<path fill="none" stroke="black" d="M1771.69,-446.43C1760.3,-422.74 1735.92,-379.76 1701,-359 1650.29,-328.86 1484.8,-314.27 1393.64,-308.36"/> -<polygon fill="black" stroke="black" points="1393.64,-304.85 1383.44,-307.71 1393.2,-311.84 1393.64,-304.85"/> +<path fill="none" stroke="black" d="M2107.92,-448.18C2084.55,-422.88 2037.32,-372.74 2017.48,-359 1995.7,-343.91 1969.02,-331.35 1946.44,-322.15"/> +<polygon fill="black" stroke="black" points="1947.63,-318.86 1937.05,-318.42 1945.05,-325.36 1947.63,-318.86"/> </g> <!-- sox&#45;&gt;null --> <g id="edge21" class="edge"> <title>sox&#45;&gt;null</title> -<path fill="none" stroke="red" d="M1784.72,-446.03C1792.65,-422.47 1807.45,-378.51 1820,-341 1821.24,-337.28 1822.56,-333.35 1823.84,-329.5"/> -<polygon fill="red" stroke="red" points="1827.26,-330.31 1827.1,-319.72 1820.62,-328.1 1827.26,-330.31"/> +<path fill="none" stroke="red" d="M2118.17,-446.09C2112.75,-418.48 2101.97,-363.54 2095.58,-330.97"/> +<polygon fill="red" stroke="red" points="2098.95,-329.98 2093.59,-320.85 2092.08,-331.33 2098.95,-329.98"/> </g> <!-- sox&#45;&gt;ALSA --> <g id="edge24" class="edge"> <title>sox&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1756.76,-474.32C1704.55,-496.35 1570.3,-553.85 1461,-608 1416.14,-630.22 1408.84,-644.05 1362,-661.74 1327.42,-674.8 1286.52,-683.85 1255.71,-689.47"/> -<polygon fill="black" stroke="black" points="1254.91,-686.05 1245.68,-691.24 1256.13,-692.95 1254.91,-686.05"/> +<path fill="none" stroke="black" d="M2098.89,-474.15C2061.64,-488.93 1984.74,-518.23 1917.48,-536 1746.22,-581.25 1688.3,-538.22 1525.48,-608 1488.12,-624.01 1488.3,-644.52 1451.48,-661.74 1423,-675.06 1388.77,-683.76 1361.41,-689.15"/> +<polygon fill="black" stroke="black" points="1360.46,-685.77 1351.28,-691.06 1361.76,-692.65 1360.46,-685.77"/> +</g> +<!-- sox&#45;&gt;sndio --> +<g id="edge25" class="edge"> +<title>sox&#45;&gt;sndio</title> +<path fill="none" stroke="black" d="M2123.99,-445.92C2124.81,-440.22 2125.71,-433.84 2126.48,-428 2132.73,-380.95 2136.59,-369.38 2139.48,-322 2140.46,-306.03 2139.54,-302 2139.48,-286 2139.34,-246.67 2138.99,-201.17 2138.74,-172.73"/> +<polygon fill="black" stroke="black" points="2142.24,-172.33 2138.65,-162.37 2135.24,-172.4 2142.24,-172.33"/> </g> <!-- sox&#45;&gt;PulseAudio --> <g id="edge23" class="edge"> <title>sox&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1786.64,-481.29C1791.22,-497.91 1795.72,-523.97 1797.61,-543.74"/> -<polygon fill="black" stroke="black" points="1794.14,-544.26 1798.38,-553.97 1801.12,-543.73 1794.14,-544.26"/> +<path fill="none" stroke="black" d="M2110.28,-480.56C2093.95,-498.36 2063.77,-527.67 2040.93,-548.09"/> +<polygon fill="black" stroke="black" points="2038.39,-545.66 2033.2,-554.9 2043.02,-550.92 2038.39,-545.66"/> </g> <!-- libao --> <g id="node19" class="node"> <title>libao</title> <g id="a_node19"><a xlink:href="https://www.xiph.org/ao/" xlink:title="libao"> -<ellipse fill="lightgrey" stroke="black" cx="1663" cy="-377" rx="28.7" ry="18"/> -<text text-anchor="middle" x="1663" y="-373.3" font-family="Times,serif" font-size="14.00">libao</text> +<ellipse fill="lightgrey" stroke="black" cx="1975.48" cy="-377" rx="33.29" ry="18"/> +<text text-anchor="middle" x="1975.48" y="-373.3" font-family="Times,serif" font-size="14.00">libao</text> </a> </g> </g> <!-- sox&#45;&gt;libao --> <g id="edge22" class="edge"> <title>sox&#45;&gt;libao</title> -<path fill="none" stroke="black" d="M1761.38,-450.09C1742.25,-436.07 1711.47,-413.52 1689.43,-397.37"/> -<polygon fill="black" stroke="black" points="1691.3,-394.4 1681.17,-391.31 1687.16,-400.05 1691.3,-394.4"/> +<path fill="none" stroke="black" d="M2099.46,-453.56C2093.35,-451.02 2086.69,-448.34 2080.48,-446 2057.2,-437.23 2048.74,-440.93 2027.48,-428 2015.78,-420.88 2004.59,-410.72 1995.6,-401.41"/> +<polygon fill="black" stroke="black" points="1997.98,-398.83 1988.61,-393.88 1992.85,-403.59 1997.98,-398.83"/> </g> <!-- X11 bell --> <g id="node18" class="node"> <title>X11 bell</title> -<ellipse fill="lightgrey" stroke="black" cx="1724" cy="-697.74" rx="41.69" ry="18"/> -<text text-anchor="middle" x="1724" y="-694.04" font-family="Times,serif" font-size="14.00">X11 bell</text> +<ellipse fill="lightgrey" stroke="black" cx="1947.48" cy="-697.74" rx="48.99" ry="18"/> +<text text-anchor="middle" x="1947.48" y="-694.04" font-family="Times,serif" font-size="14.00">X11 bell</text> </g> <!-- X11 bell&#45;&gt;PulseAudio --> <g id="edge16" class="edge"> <title>X11 bell&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1733.16,-679.92C1743.01,-661.97 1759.25,-632.77 1774,-608 1775.91,-604.79 1777.96,-601.44 1780,-598.13"/> -<polygon fill="black" stroke="black" points="1782.98,-599.97 1785.32,-589.63 1777.05,-596.26 1782.98,-599.97"/> +<path fill="none" stroke="black" d="M1956.25,-679.79C1967.01,-658.99 1985.37,-623.49 1997.95,-599.17"/> +<polygon fill="black" stroke="black" points="2001.13,-600.63 2002.62,-590.14 1994.92,-597.41 2001.13,-600.63"/> </g> <!-- libao&#45;&gt;filesystem --> -<g id="edge25" class="edge"> +<g id="edge26" class="edge"> <title>libao&#45;&gt;filesystem</title> -<path fill="none" stroke="black" d="M1641.24,-365.2C1636.01,-362.91 1630.38,-360.67 1625,-359 1546.91,-334.72 1453.52,-319.83 1393.51,-312"/> -<polygon fill="black" stroke="black" points="1393.81,-308.51 1383.44,-310.71 1392.92,-315.45 1393.81,-308.51"/> +<path fill="none" stroke="black" d="M1959.15,-360.94C1949.11,-351.68 1936.01,-339.61 1924.56,-329.05"/> +<polygon fill="black" stroke="black" points="1926.68,-326.23 1916.95,-322.03 1921.93,-331.38 1926.68,-326.23"/> </g> <!-- libao&#45;&gt;null --> -<g id="edge31" class="edge"> +<g id="edge32" class="edge"> <title>libao&#45;&gt;null</title> -<path fill="none" stroke="red" d="M1691.38,-374.78C1722.02,-372.24 1771.13,-364.49 1806,-341 1811.24,-337.47 1815.8,-332.51 1819.56,-327.39"/> -<polygon fill="red" stroke="red" points="1822.59,-329.15 1825.14,-318.87 1816.74,-325.32 1822.59,-329.15"/> +<path fill="none" stroke="red" d="M1996.58,-362.98C2016.12,-350.91 2045.2,-332.96 2065.81,-320.23"/> +<polygon fill="red" stroke="red" points="2067.68,-323.19 2074.35,-314.96 2064,-317.24 2067.68,-323.19"/> </g> <!-- libao&#45;&gt;ALSA --> -<g id="edge27" class="edge"> +<g id="edge28" class="edge"> <title>libao&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1641.22,-388.73C1635.99,-391.03 1630.37,-393.28 1625,-395 1516.18,-429.88 1466.84,-380.79 1373,-446 1326.66,-478.21 1272.35,-616.21 1239,-661.74 1236.5,-665.15 1233.75,-668.65 1230.97,-672.05"/> -<polygon fill="black" stroke="black" points="1228.27,-669.82 1224.5,-679.72 1233.62,-674.33 1228.27,-669.82"/> +<path fill="none" stroke="black" d="M1943.13,-381.01C1849.71,-389.95 1580.87,-417.52 1497.48,-446 1451.52,-461.7 1431.58,-461.11 1402.48,-500 1358.25,-559.12 1406.46,-600.99 1364.48,-661.74 1359.92,-668.35 1353.66,-674.06 1347.07,-678.84"/> +<polygon fill="black" stroke="black" points="1345.06,-675.96 1338.64,-684.39 1348.91,-681.81 1345.06,-675.96"/> </g> <!-- libao&#45;&gt;OSS --> -<g id="edge26" class="edge"> +<g id="edge27" class="edge"> <title>libao&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M1641.8,-364.79C1636.46,-362.45 1630.63,-360.3 1625,-359 1511.27,-332.67 1216.01,-353.96 1100,-341 1047.35,-335.12 987.4,-322.71 949.4,-314.12"/> -<polygon fill="black" stroke="black" points="949.82,-310.62 939.29,-311.8 948.26,-317.44 949.82,-310.62"/> +<path fill="none" stroke="black" d="M1950.01,-365.27C1943.14,-362.79 1935.62,-360.46 1928.48,-359 1790.23,-330.7 1752.35,-349.44 1611.48,-341 1414.37,-329.19 1179.06,-314.01 1083.75,-307.82"/> +<polygon fill="black" stroke="black" points="1083.83,-304.32 1073.63,-307.16 1083.38,-311.3 1083.83,-304.32"/> </g> <!-- libao&#45;&gt;sndio --> -<g id="edge34" class="edge"> +<g id="edge35" class="edge"> <title>libao&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M1658.62,-358.99C1648.77,-324.03 1621.59,-243.62 1570,-199 1537.56,-170.94 1489.59,-157.16 1456.04,-150.59"/> -<polygon fill="black" stroke="black" points="1456.59,-147.14 1446.12,-148.78 1455.33,-154.02 1456.59,-147.14"/> +<path fill="none" stroke="black" d="M1986.95,-359.76C2015.06,-319.91 2087.59,-217.13 2121.07,-169.68"/> +<polygon fill="black" stroke="black" points="2124.13,-171.41 2127.03,-161.23 2118.41,-167.38 2124.13,-171.41"/> </g> <!-- libao&#45;&gt;PulseAudio --> -<g id="edge29" class="edge"> +<g id="edge30" class="edge"> <title>libao&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1674.7,-393.58C1691.85,-416.57 1724.66,-461.07 1751,-500 1761.03,-514.83 1771.79,-531.75 1780.26,-545.36"/> -<polygon fill="black" stroke="black" points="1777.49,-547.52 1785.73,-554.18 1783.44,-543.83 1777.49,-547.52"/> +<path fill="none" stroke="black" d="M1978.67,-395.09C1984.94,-428.68 1998.9,-503.54 2006.43,-543.93"/> +<polygon fill="black" stroke="black" points="2003.01,-544.68 2008.29,-553.87 2009.9,-543.4 2003.01,-544.68"/> </g> <!-- libao&#45;&gt;aRts --> -<g id="edge28" class="edge"> +<g id="edge29" class="edge"> <title>libao&#45;&gt;aRts</title> -<path fill="none" stroke="black" d="M1641.8,-364.79C1636.46,-362.45 1630.63,-360.3 1625,-359 1461.98,-321.32 1035.05,-363.64 873,-322 725.83,-284.18 564.28,-197.67 500.32,-161.44"/> -<polygon fill="black" stroke="black" points="502.02,-158.38 491.6,-156.47 498.55,-164.46 502.02,-158.38"/> +<path fill="none" stroke="black" d="M1949.44,-365.44C1942.71,-363.02 1935.4,-360.68 1928.48,-359 1867.95,-344.32 1849.74,-356.8 1789.48,-341 1767.69,-335.28 1763.2,-330.85 1742.48,-322 1620.1,-269.72 1598.69,-230.87 1469.48,-199 1452.92,-194.92 873.51,-163.13 856.48,-162 789.33,-157.52 711.33,-151.71 664.76,-148.17"/> +<polygon fill="black" stroke="black" points="664.99,-144.68 654.76,-147.41 664.46,-151.66 664.99,-144.68"/> </g> <!-- ESD --> <g id="node21" class="node"> <title>ESD</title> -<ellipse fill="lightgrey" stroke="black" cx="839" cy="-144" rx="27.1" ry="18"/> -<text text-anchor="middle" x="839" y="-140.3" font-family="Times,serif" font-size="14.00">ESD</text> +<ellipse fill="lightgrey" stroke="black" cx="896.48" cy="-144" rx="31.4" ry="18"/> +<text text-anchor="middle" x="896.48" y="-140.3" font-family="Times,serif" font-size="14.00">ESD</text> </g> <!-- libao&#45;&gt;ESD --> -<g id="edge30" class="edge"> +<g id="edge31" class="edge"> <title>libao&#45;&gt;ESD</title> -<path fill="none" stroke="black" d="M1641.36,-364.79C1636.12,-362.51 1630.46,-360.39 1625,-359 1522.4,-332.89 1253.08,-346.17 1150,-322 1049.24,-298.37 1021.1,-290.9 934,-235 904.76,-216.23 876.55,-187.77 858.58,-167.89"/> -<polygon fill="black" stroke="black" points="861.02,-165.36 851.76,-160.21 855.78,-170.01 861.02,-165.36"/> +<path fill="none" stroke="black" d="M1948.53,-366.25C1905.64,-350.74 1826.62,-322.15 1826.48,-322 1787.01,-280.58 1833.48,-234.34 1788.48,-199 1721.07,-146.05 1105.16,-144.28 938.11,-144.78"/> +<polygon fill="black" stroke="black" points="937.76,-141.28 927.77,-144.82 937.78,-148.28 937.76,-141.28"/> </g> <!-- NAS --> <g id="node22" class="node"> <title>NAS</title> -<ellipse fill="lightgrey" stroke="black" cx="295" cy="-304" rx="90.98" ry="18"/> -<text text-anchor="middle" x="295" y="-300.3" font-family="Times,serif" font-size="14.00">Network Audio Server</text> +<ellipse fill="lightgrey" stroke="black" cx="405.48" cy="-304" rx="114.28" ry="18"/> +<text text-anchor="middle" x="405.48" y="-300.3" font-family="Times,serif" font-size="14.00">Network Audio Server</text> </g> <!-- libao&#45;&gt;NAS --> -<g id="edge32" class="edge"> +<g id="edge33" class="edge"> <title>libao&#45;&gt;NAS</title> -<path fill="none" stroke="black" d="M1641.81,-364.75C1636.47,-362.41 1630.64,-360.27 1625,-359 1539.57,-339.74 924.49,-344.9 837,-341 679.11,-333.96 495.66,-320.71 387.78,-312.39"/> -<polygon fill="black" stroke="black" points="387.82,-308.89 377.58,-311.61 387.28,-315.87 387.82,-308.89"/> +<path fill="none" stroke="black" d="M1943.25,-372.7C1904.79,-368.87 1838.51,-362.62 1781.48,-359 1319.29,-329.7 768.68,-313.82 528.12,-307.83"/> +<polygon fill="black" stroke="black" points="528.03,-304.33 517.95,-307.58 527.86,-311.32 528.03,-304.33"/> </g> <!-- libao&#45;&gt;RoarAudio --> -<g id="edge33" class="edge"> +<g id="edge34" class="edge"> <title>libao&#45;&gt;RoarAudio</title> -<path fill="none" stroke="black" d="M1641.33,-364.89C1636.1,-362.61 1630.44,-360.46 1625,-359 1472.66,-318.06 1425.57,-358.06 1272,-322 1183.41,-301.2 1084.72,-259.83 1031.72,-236.01"/> -<polygon fill="black" stroke="black" points="1032.92,-232.71 1022.37,-231.78 1030.04,-239.09 1032.92,-232.71"/> +<path fill="none" stroke="black" d="M1949.44,-365.46C1942.7,-363.04 1935.4,-360.69 1928.48,-359 1869.69,-344.62 1843.99,-374.37 1793.48,-341 1759.35,-318.45 1738.91,-273.97 1728.68,-245.14"/> +<polygon fill="black" stroke="black" points="1731.88,-243.65 1725.37,-235.29 1725.24,-245.89 1731.88,-243.65"/> </g> <!-- ESD&#45;&gt;network card --> -<g id="edge43" class="edge"> +<g id="edge44" class="edge"> <title>ESD&#45;&gt;network card</title> -<path fill="none" stroke="black" d="M858.25,-131.12C874.33,-121.19 897.71,-106.75 917.35,-94.63"/> -<polygon fill="black" stroke="black" points="919.39,-97.48 926.06,-89.25 915.72,-91.52 919.39,-97.48"/> +<path fill="none" stroke="black" d="M927.06,-139.9C1032.76,-129.2 1384.34,-93.59 1531.65,-78.67"/> +<polygon fill="black" stroke="black" points="1532.3,-82.12 1541.9,-77.63 1531.6,-75.16 1532.3,-82.12"/> </g> <!-- ESD&#45;&gt;ALSA --> -<g id="edge42" class="edge"> +<g id="edge43" class="edge"> <title>ESD&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M829.04,-160.95C809.48,-194.27 769.33,-273.77 786,-341 809.58,-436.13 832.75,-455.73 889,-536 932.29,-597.78 936.85,-625.49 1003,-661.74 1052.63,-688.94 1118.26,-695.98 1161.97,-697.34"/> -<polygon fill="black" stroke="black" points="1161.97,-700.84 1172.04,-697.56 1162.12,-693.84 1161.97,-700.84"/> +<path fill="none" stroke="black" d="M866.33,-149.18C830.2,-156.08 774.48,-173.6 774.48,-216 774.48,-341 774.48,-341 774.48,-341 774.48,-416.21 982.8,-502.37 1037.48,-554 1084.55,-598.44 1079.12,-629.92 1135.48,-661.74 1174.88,-683.98 1226.16,-692.27 1263.37,-695.26"/> +<polygon fill="black" stroke="black" points="1263.25,-698.76 1273.48,-695.98 1263.75,-691.78 1263.25,-698.76"/> </g> <!-- ESD&#45;&gt;OSS --> -<g id="edge41" class="edge"> +<g id="edge42" class="edge"> <title>ESD&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M841.72,-162.21C845.07,-180.8 851.76,-210.98 863,-235 870.31,-250.63 881.25,-266.48 890.84,-278.94"/> -<polygon fill="black" stroke="black" points="888.25,-281.31 897.2,-286.98 893.74,-276.96 888.25,-281.31"/> +<path fill="none" stroke="black" d="M904.12,-161.54C916.53,-187 943.18,-236.18 977.48,-268 985.84,-275.75 996.23,-282.42 1006.15,-287.79"/> +<polygon fill="black" stroke="black" points="1004.55,-290.91 1015.05,-292.36 1007.75,-284.68 1004.55,-290.91"/> </g> <!-- NAS&#45;&gt;network card --> -<g id="edge108" class="edge"> +<g id="edge110" class="edge"> <title>NAS&#45;&gt;network card</title> -<path fill="none" stroke="black" d="M302.48,-285.82C319.72,-248.65 366.21,-161.24 436,-126 516.21,-85.5 784.1,-75.34 899.91,-72.82"/> -<polygon fill="black" stroke="black" points="900.04,-76.32 909.97,-72.61 899.9,-69.32 900.04,-76.32"/> +<path fill="none" stroke="black" d="M407.44,-285.81C412.96,-246.2 432.62,-148.73 495.48,-107 538.75,-78.28 1300.75,-73.1 1531.69,-72.19"/> +<polygon fill="black" stroke="black" points="1531.97,-75.69 1541.95,-72.15 1531.94,-68.69 1531.97,-75.69"/> </g> <!-- RoarAudio&#45;&gt;network card --> -<g id="edge40" class="edge"> +<g id="edge41" class="edge"> <title>RoarAudio&#45;&gt;network card</title> -<path fill="none" stroke="black" d="M985.67,-188.93C978.69,-163.16 968.25,-124.6 961.28,-98.89"/> -<polygon fill="black" stroke="black" points="982.38,-190.18 988.37,-198.92 989.14,-188.35 982.38,-190.18"/> -<polygon fill="black" stroke="black" points="964.61,-97.8 958.62,-89.06 957.86,-99.63 964.61,-97.8"/> -<text text-anchor="middle" x="1047.5" y="-140.3" font-family="Times,serif" font-size="14.00">IPv4, DECnet, OpenSLP</text> +<path fill="none" stroke="black" d="M1699.83,-191.82C1677.35,-165.5 1641.55,-123.59 1618.8,-96.96"/> +<polygon fill="black" stroke="black" points="1697.22,-194.15 1706.37,-199.48 1702.54,-189.6 1697.22,-194.15"/> +<polygon fill="black" stroke="black" points="1621.35,-94.55 1612.19,-89.22 1616.02,-99.09 1621.35,-94.55"/> +<text text-anchor="middle" x="1758.48" y="-140.3" font-family="Times,serif" font-size="14.00">IPv4, DECnet, OpenSLP</text> </g> <!-- RoarAudio&#45;&gt;sndio --> -<g id="edge36" class="edge"> +<g id="edge37" class="edge"> <title>RoarAudio&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M1034.71,-206.98C1071.11,-199.27 1125.41,-188.17 1173,-180 1245.11,-167.63 1329.72,-156.17 1377.98,-149.93"/> -<polygon fill="black" stroke="black" points="1378.53,-153.38 1388,-148.64 1377.63,-146.44 1378.53,-153.38"/> +<path fill="none" stroke="black" d="M1770.9,-207.44C1853.72,-193.37 2017.11,-165.62 2095.09,-152.37"/> +<polygon fill="black" stroke="black" points="2095.79,-155.8 2105.06,-150.68 2094.61,-148.9 2095.79,-155.8"/> </g> <!-- RoarAudio&#45;&gt;PulseAudio --> -<g id="edge37" class="edge"> +<g id="edge38" class="edge"> <title>RoarAudio&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1033.4,-227.72C1084.95,-239.63 1177,-259.32 1257,-268 1291.2,-271.71 1851.8,-261.55 1876,-286 1891.69,-301.85 1907.2,-485.45 1868,-536 1861.74,-544.07 1853.14,-550.39 1844.06,-555.31"/> -<polygon fill="black" stroke="black" points="1842.35,-552.24 1834.89,-559.76 1845.41,-558.54 1842.35,-552.24"/> +<path fill="none" stroke="black" d="M1779.12,-219.63C1881.89,-223.73 2088.5,-237.88 2139.48,-286 2203.84,-346.74 2200.13,-397.31 2174.48,-482 2166.13,-509.61 2161.86,-519.1 2138.48,-536 2120.8,-548.78 2098.66,-556.9 2077.85,-562.05"/> +<polygon fill="black" stroke="black" points="2077.05,-558.64 2068.08,-564.28 2078.6,-565.46 2077.05,-558.64"/> </g> <!-- RoarAudio&#45;&gt;aRts --> -<g id="edge39" class="edge"> +<g id="edge40" class="edge"> <title>RoarAudio&#45;&gt;aRts</title> -<path fill="none" stroke="black" d="M946.76,-209.7C844.49,-195.76 600.84,-162.56 508.41,-149.96"/> -<polygon fill="black" stroke="black" points="508.79,-146.48 498.41,-148.6 507.85,-153.42 508.79,-146.48"/> +<path fill="none" stroke="black" d="M1664.56,-210.99C1623.14,-207.37 1565.32,-202.53 1514.48,-199 1222.28,-178.73 1148.78,-180.88 856.48,-162 789.32,-157.66 711.32,-151.8 664.76,-148.22"/> +<polygon fill="black" stroke="black" points="664.99,-144.73 654.75,-147.45 664.45,-151.71 664.99,-144.73"/> </g> <!-- RoarAudio&#45;&gt;ESD --> -<g id="edge38" class="edge"> +<g id="edge39" class="edge"> <title>RoarAudio&#45;&gt;ESD</title> -<path fill="none" stroke="black" d="M963.31,-202.31C936.53,-189.96 897.29,-171.87 870.09,-159.33"/> -<polygon fill="black" stroke="black" points="871.2,-155.99 860.66,-154.98 868.27,-162.35 871.2,-155.99"/> +<path fill="none" stroke="black" d="M1664.49,-211.18C1508.79,-197.76 1073.18,-160.23 937.42,-148.53"/> +<polygon fill="black" stroke="black" points="937.33,-145.01 927.06,-147.63 936.72,-151.98 937.33,-145.01"/> </g> <!-- libcanberra --> <g id="node24" class="node"> <title>libcanberra</title> <g id="a_node24"><a xlink:href="http://git.0pointer.net/libcanberra.git/tree/src/driver-order.c" xlink:title="libcanberra"> -<ellipse fill="lightgrey" stroke="black" cx="1350" cy="-843.74" rx="50.09" ry="18"/> -<text text-anchor="middle" x="1350" y="-840.04" font-family="Times,serif" font-size="14.00">libcanberra</text> +<ellipse fill="lightgrey" stroke="black" cx="1217.48" cy="-843.74" rx="63.89" ry="18"/> +<text text-anchor="middle" x="1217.48" y="-840.04" font-family="Times,serif" font-size="14.00">libcanberra</text> </a> </g> </g> <!-- libcanberra&#45;&gt;null --> -<g id="edge48" class="edge"> +<g id="edge49" class="edge"> <title>libcanberra&#45;&gt;null</title> -<path fill="none" stroke="red" d="M1346.38,-825.56C1329.31,-743.54 1258.96,-394.4 1291,-359 1324.35,-322.15 1669,-309.39 1790.16,-306.02"/> -<polygon fill="red" stroke="red" points="1790.27,-309.51 1800.17,-305.74 1790.08,-302.52 1790.27,-309.51"/> +<path fill="none" stroke="red" d="M1154.66,-840.23C1117.32,-835.11 1072.64,-821.82 1048.48,-788.74 1001.31,-724.14 809.44,-811.78 1065.48,-446 1121.77,-365.59 1172.94,-381.48 1268.48,-359 1295.86,-352.56 1963.92,-322.62 1970.48,-322 1998.04,-319.39 2028.96,-314.97 2052.51,-311.29"/> +<polygon fill="red" stroke="red" points="2053.12,-314.74 2062.45,-309.72 2052.02,-307.83 2053.12,-314.74"/> </g> <!-- libcanberra&#45;&gt;ALSA --> -<g id="edge46" class="edge"> +<g id="edge47" class="edge"> <title>libcanberra&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1308.19,-833.67C1282.34,-825.94 1250.48,-812.23 1231,-788.74 1216.45,-771.19 1211.26,-745.48 1209.54,-726.03"/> -<polygon fill="black" stroke="black" points="1213.03,-725.72 1208.9,-715.96 1206.04,-726.16 1213.03,-725.72"/> +<path fill="none" stroke="black" d="M1228.57,-825.94C1245.07,-800.93 1276.22,-753.71 1295.58,-724.37"/> +<polygon fill="black" stroke="black" points="1298.59,-726.15 1301.18,-715.88 1292.75,-722.3 1298.59,-726.15"/> </g> <!-- libcanberra&#45;&gt;OSS --> -<g id="edge45" class="edge"> +<g id="edge46" class="edge"> <title>libcanberra&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M1300.01,-842.24C1189.85,-838.29 924.94,-812.68 786,-661.74 694.37,-562.19 674.64,-468.58 754,-359 780.89,-321.87 834.97,-310.03 872.07,-306.39"/> -<polygon fill="black" stroke="black" points="872.37,-309.88 882.05,-305.57 871.8,-302.9 872.37,-309.88"/> +<path fill="none" stroke="black" d="M1156.4,-838.57C1040.58,-829.82 800.48,-807.4 800.48,-771.74 800.48,-771.74 800.48,-771.74 800.48,-633.87 800.48,-494.1 805.44,-429.88 912.48,-340 936.19,-320.1 970.26,-311.45 997.29,-307.72"/> +<polygon fill="black" stroke="black" points="997.76,-311.19 1007.27,-306.52 996.93,-304.24 997.76,-311.19"/> </g> <!-- libcanberra&#45;&gt;PulseAudio --> -<g id="edge44" class="edge"> +<g id="edge45" class="edge"> <title>libcanberra&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1374.61,-827.85C1449.84,-782.36 1676.77,-645.11 1762.62,-593.19"/> -<polygon fill="black" stroke="black" points="1764.44,-596.18 1771.19,-588.01 1760.82,-590.19 1764.44,-596.18"/> +<path fill="none" stroke="black" d="M1281.17,-841.67C1407.42,-838.71 1684.68,-827.84 1770.48,-788.74 1797.07,-776.62 1938.84,-626.47 1961.48,-608 1967,-603.5 1973.07,-598.95 1979.01,-594.69"/> +<polygon fill="black" stroke="black" points="1981.38,-597.3 1987.56,-588.69 1977.36,-591.57 1981.38,-597.3"/> </g> <!-- gstreamer --> <g id="node25" class="node"> <title>gstreamer</title> -<ellipse fill="lightgrey" stroke="black" cx="1680" cy="-770.74" rx="46.29" ry="18"/> -<text text-anchor="middle" x="1680" y="-767.04" font-family="Times,serif" font-size="14.00">gstreamer</text> +<ellipse fill="lightgrey" stroke="black" cx="1926.48" cy="-770.74" rx="59.29" ry="18"/> +<text text-anchor="middle" x="1926.48" y="-767.04" font-family="Times,serif" font-size="14.00">gstreamer</text> </g> <!-- libcanberra&#45;&gt;gstreamer --> -<g id="edge47" class="edge"> +<g id="edge48" class="edge"> <title>libcanberra&#45;&gt;gstreamer</title> -<path fill="none" stroke="black" d="M1395.59,-836.21C1436.71,-829.99 1498.72,-819.82 1552,-807.74 1580,-801.39 1611,-792.72 1635.48,-785.47"/> -<polygon fill="black" stroke="black" points="1636.63,-788.79 1645.21,-782.57 1634.62,-782.08 1636.63,-788.79"/> +<path fill="none" stroke="black" d="M1281.09,-842.02C1418.28,-840 1738.09,-832.7 1843.48,-807.74 1859.01,-804.06 1875.28,-797.64 1889.26,-791.22"/> +<polygon fill="black" stroke="black" points="1891,-794.27 1898.53,-786.82 1888,-787.95 1891,-794.27"/> </g> <!-- gstreamer&#45;&gt;ALSA --> -<g id="edge109" class="edge"> +<g id="edge111" class="edge"> <title>gstreamer&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1637.79,-763.38C1549.84,-750.12 1347.56,-719.63 1255.8,-705.79"/> -<polygon fill="black" stroke="black" points="1256.1,-702.3 1245.69,-704.27 1255.06,-709.22 1256.1,-702.3"/> +<path fill="none" stroke="black" d="M1872.26,-763.47C1754.04,-749.8 1474.61,-717.49 1361.39,-704.4"/> +<polygon fill="black" stroke="black" points="1361.62,-700.9 1351.29,-703.23 1360.82,-707.85 1361.62,-700.9"/> </g> <!-- gstreamer&#45;&gt;JACK --> -<g id="edge111" class="edge"> +<g id="edge113" class="edge"> <title>gstreamer&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1665.05,-753.4C1656.52,-743.25 1646.3,-729.54 1640,-715.74 1609.42,-648.75 1644.54,-615.48 1604,-554 1596.46,-542.57 1588.07,-546.25 1579,-536 1567.26,-522.74 1557.63,-505.34 1550.88,-491.09"/> -<polygon fill="black" stroke="black" points="1553.99,-489.47 1546.67,-481.81 1547.62,-492.36 1553.99,-489.47"/> +<path fill="none" stroke="black" d="M1905.55,-753.8C1894.98,-746.54 1881.63,-738.52 1868.48,-733.74 1815.32,-714.41 1791.5,-743.98 1742.48,-715.74 1636.71,-654.8 1651.5,-593.05 1572.48,-500 1569.11,-496.02 1565.44,-491.87 1561.84,-487.87"/> +<polygon fill="black" stroke="black" points="1564.4,-485.49 1555.07,-480.46 1559.23,-490.21 1564.4,-485.49"/> </g> <!-- gstreamer&#45;&gt;OSS --> -<g id="edge110" class="edge"> +<g id="edge112" class="edge"> <title>gstreamer&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M1714.66,-758.83C1732.06,-752.76 1753.17,-744.46 1771,-734.74 1836.7,-698.92 1842.72,-663.45 1857,-590 1878.49,-479.48 1857.35,-401.28 1753,-359 1703.02,-338.75 1321.8,-344.71 1268,-341 1152.32,-333.03 1016.13,-317.62 950.41,-309.8"/> -<polygon fill="black" stroke="black" points="950.45,-306.28 940.1,-308.57 949.61,-313.23 950.45,-306.28"/> +<path fill="none" stroke="black" d="M1961.07,-756.03C1974.65,-750.13 1990.14,-742.75 2003.48,-734.74 2049.13,-707.32 2074.95,-709.5 2098.48,-661.74 2109.04,-640.32 2101.91,-631.64 2098.48,-608 2094.89,-583.23 2096.89,-574.47 2082.48,-554 2040.31,-494.06 1885.59,-383.43 1816.48,-359 1736.15,-330.6 1518.49,-346.89 1433.48,-341 1306.12,-332.18 1155.95,-317.13 1083.66,-309.59"/> +<polygon fill="black" stroke="black" points="1083.88,-306.09 1073.57,-308.53 1083.15,-313.05 1083.88,-306.09"/> </g> <!-- gstreamer&#45;&gt;sndio --> -<g id="edge58" class="edge"> +<g id="edge59" class="edge"> <title>gstreamer&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M1722.31,-763.53C1790.22,-752.07 1925.89,-722.96 2024,-661.74 2039.61,-652 2252,-439.9 2252,-421.5 2252,-421.5 2252,-421.5 2252,-216 2252,-159.89 2186.31,-189.44 2131,-180 1999.96,-157.63 1588.24,-148.19 1457.36,-145.7"/> -<polygon fill="black" stroke="black" points="1457.07,-142.2 1447,-145.51 1456.93,-149.2 1457.07,-142.2"/> +<path fill="none" stroke="black" d="M1972.08,-759.19C2042.1,-742.35 2179.73,-706.64 2291.48,-661.74 2355.99,-635.82 2374.46,-631.17 2430.48,-590 2438.92,-583.8 2691.5,-331.68 2695.48,-322 2736.41,-222.42 2506.32,-223.78 2321.48,-180 2274.16,-168.79 2219.29,-158.67 2182.07,-152.23"/> +<polygon fill="black" stroke="black" points="2182.51,-148.76 2172.06,-150.52 2181.33,-155.66 2182.51,-148.76"/> </g> <!-- gstreamer&#45;&gt;PulseAudio --> -<g id="edge112" class="edge"> +<g id="edge114" class="edge"> <title>gstreamer&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1714.85,-758.74C1735.67,-750.33 1760.75,-736.56 1775,-715.74 1798.66,-681.16 1800.36,-630.82 1798.71,-600.09"/> -<polygon fill="black" stroke="black" points="1802.2,-599.83 1798.01,-590.09 1795.21,-600.31 1802.2,-599.83"/> +<path fill="none" stroke="black" d="M1959.86,-755.84C1976.64,-746.99 1995.49,-733.75 2005.48,-715.74 2025.42,-679.81 2022.07,-630.61 2017.22,-600.36"/> +<polygon fill="black" stroke="black" points="2020.6,-599.37 2015.4,-590.13 2013.7,-600.59 2020.6,-599.37"/> </g> <!-- gstreamer&#45;&gt;PipeWire --> -<g id="edge52" class="edge"> +<g id="edge53" class="edge"> <title>gstreamer&#45;&gt;PipeWire</title> -<path fill="none" stroke="black" d="M1650.07,-756.88C1615.25,-740.25 1558.84,-707.86 1530,-661.74 1478.64,-579.6 1460.35,-534.82 1499,-446 1507.45,-426.57 1524.5,-410.18 1540,-398.36"/> -<polygon fill="black" stroke="black" points="1542.34,-400.98 1548.38,-392.28 1538.23,-395.32 1542.34,-400.98"/> +<path fill="none" stroke="black" d="M1872.37,-763.4C1810.92,-755.21 1715.64,-739.15 1688.48,-715.74 1591.04,-631.75 1640.86,-561.15 1583.48,-446 1576.21,-431.41 1566.77,-415.89 1558.68,-403.37"/> +<polygon fill="black" stroke="black" points="1561.49,-401.27 1553.08,-394.83 1555.64,-405.11 1561.49,-401.27"/> </g> <!-- PipeWire&#45;&gt;? --> -<g id="edge53" class="edge"> +<g id="edge54" class="edge"> <title>PipeWire&#45;&gt;?</title> -<path fill="none" stroke="red" d="M1540.42,-364.25C1533.45,-362.12 1526.05,-360.2 1519,-359 1365.59,-332.97 974.55,-345.37 819,-341 680.32,-337.11 327.69,-362.49 195,-322 193.58,-321.57 192.15,-321.03 190.75,-320.43"/> -<polygon fill="red" stroke="red" points="192.35,-317.32 181.88,-315.69 189.05,-323.49 192.35,-317.32"/> +<path fill="none" stroke="red" d="M1493.37,-369C1466.91,-365.42 1433.45,-361.34 1403.48,-359 1279.24,-349.32 401.63,-358.53 282.48,-322 281.06,-321.56 279.64,-321.03 278.23,-320.43"/> +<polygon fill="red" stroke="red" points="279.83,-317.32 269.36,-315.69 276.53,-323.49 279.83,-317.32"/> </g> <!-- OpenAL --> <g id="node27" class="node"> <title>OpenAL</title> <g id="a_node27"><a xlink:href="https://www.openal-soft.org/" xlink:title="OpenAL"> -<ellipse fill="lightgrey" stroke="black" cx="1855" cy="-843.74" rx="41.69" ry="18"/> -<text text-anchor="middle" x="1855" y="-840.04" font-family="Times,serif" font-size="14.00">OpenAL</text> +<ellipse fill="lightgrey" stroke="black" cx="1923.48" cy="-843.74" rx="47.39" ry="18"/> +<text text-anchor="middle" x="1923.48" y="-840.04" font-family="Times,serif" font-size="14.00">OpenAL</text> </a> </g> </g> <!-- OpenAL&#45;&gt;filesystem --> -<g id="edge65" class="edge"> +<g id="edge66" class="edge"> <title>OpenAL&#45;&gt;filesystem</title> -<path fill="none" stroke="black" d="M1895.61,-839.38C1956.31,-833.42 2066.14,-818.7 2090,-788.74 2194.6,-657.38 2039.12,-574.48 1931,-446 1894.35,-402.45 1888.8,-382.6 1837,-359 1759.31,-323.61 1510.18,-310.86 1393.44,-306.75"/> -<polygon fill="black" stroke="black" points="1393.36,-303.25 1383.24,-306.4 1393.12,-310.24 1393.36,-303.25"/> +<path fill="none" stroke="black" d="M1969.08,-838.6C2027.34,-832.19 2122.9,-817.47 2141.48,-788.74 2224.32,-660.71 2223,-583.7 2157.48,-446 2121.37,-370.08 2025.01,-333.54 1960.56,-317.1"/> +<polygon fill="black" stroke="black" points="1961.05,-313.62 1950.51,-314.63 1959.38,-320.42 1961.05,-313.62"/> </g> <!-- OpenAL&#45;&gt;null --> -<g id="edge66" class="edge"> +<g id="edge68" class="edge"> <title>OpenAL&#45;&gt;null</title> -<path fill="none" stroke="red" d="M1896.16,-840.99C1947.43,-837.93 2037.26,-829.68 2111,-807.74 2201.31,-780.86 2252.9,-796.16 2302,-715.74 2326.96,-674.87 2309.34,-655.32 2302,-608 2288.06,-518.13 2302.1,-479.44 2240,-413 2188.87,-358.29 1959.27,-322.09 1868.8,-309.72"/> -<polygon fill="red" stroke="red" points="1869.11,-306.23 1858.73,-308.37 1868.18,-313.17 1869.11,-306.23"/> +<path fill="none" stroke="red" d="M1970.95,-841.6C2088.29,-838.22 2389.23,-826.07 2481.48,-788.74 2541,-764.66 2594.48,-762.95 2594.48,-698.74 2594.48,-698.74 2594.48,-698.74 2594.48,-517 2594.48,-355.64 2435.78,-371.33 2277.48,-340 2225.66,-329.74 2165.59,-318.64 2127.81,-311.75"/> +<polygon fill="red" stroke="red" points="2128.24,-308.27 2117.77,-309.92 2126.98,-315.16 2128.24,-308.27"/> </g> <!-- OpenAL&#45;&gt;portaudio --> -<g id="edge63" class="edge"> +<g id="edge64" class="edge"> <title>OpenAL&#45;&gt;portaudio</title> -<path fill="none" stroke="black" d="M1891.75,-835.23C1916.93,-829.39 1950.75,-820.19 1979,-807.74 1988.68,-803.47 1998.66,-797.8 2007.55,-792.23"/> -<polygon fill="black" stroke="black" points="2009.54,-795.12 2016.03,-786.75 2005.74,-789.24 2009.54,-795.12"/> +<path fill="none" stroke="black" d="M1888.46,-831.33C1851.77,-819.38 1793.9,-800.54 1753.08,-787.24"/> +<polygon fill="black" stroke="black" points="1753.94,-783.84 1743.35,-784.07 1751.78,-790.5 1753.94,-783.84"/> </g> <!-- OpenAL&#45;&gt;ALSA --> -<g id="edge60" class="edge"> +<g id="edge61" class="edge"> <title>OpenAL&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1814.14,-839.69C1759.63,-835.15 1660.32,-825.2 1577,-807.74 1454.8,-782.13 1314.33,-735.61 1247.81,-712.52"/> -<polygon fill="black" stroke="black" points="1248.75,-709.14 1238.16,-709.15 1246.45,-715.75 1248.75,-709.14"/> +<path fill="none" stroke="black" d="M1876.93,-840.19C1773.48,-834.08 1527.46,-816.97 1449.48,-788.74 1407.23,-773.44 1364.98,-742.77 1338.8,-721.52"/> +<polygon fill="black" stroke="black" points="1340.83,-718.65 1330.89,-714.98 1336.37,-724.05 1340.83,-718.65"/> </g> <!-- OpenAL&#45;&gt;JACK --> -<g id="edge64" class="edge"> +<g id="edge65" class="edge"> <title>OpenAL&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1815.21,-838.28C1756.83,-830.96 1651.96,-814.56 1625,-788.74 1540.67,-707.98 1536.36,-554.55 1538.4,-492.28"/> -<polygon fill="black" stroke="black" points="1541.91,-492.22 1538.82,-482.09 1534.91,-491.93 1541.91,-492.22"/> +<path fill="none" stroke="black" d="M1876.35,-841.09C1761.27,-836.57 1468.75,-822.07 1377.48,-788.74 1321.32,-768.23 1293.08,-768.25 1264.48,-715.74 1256.83,-701.69 1257.09,-693.93 1264.48,-679.74 1309.59,-593.21 1357.68,-598.59 1444.48,-554 1465.87,-543.02 1476.68,-550.98 1495.48,-536 1503.65,-529.5 1516.74,-508.09 1526.7,-490.47"/> +<polygon fill="black" stroke="black" points="1529.78,-492.13 1531.59,-481.69 1523.67,-488.73 1529.78,-492.13"/> </g> <!-- OpenAL&#45;&gt;OSS --> -<g id="edge61" class="edge"> +<g id="edge62" class="edge"> <title>OpenAL&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M1813.36,-842.32C1757.42,-840.7 1655.51,-833.99 1573,-807.74 1442.26,-766.14 1419.15,-731.49 1301,-661.74 1269.32,-643.04 1048.88,-508.14 1023,-482 1010.76,-469.64 954.26,-376.9 926.49,-330.82"/> -<polygon fill="black" stroke="black" points="929.34,-328.77 921.19,-322 923.34,-332.38 929.34,-328.77"/> +<path fill="none" stroke="black" d="M1875.98,-841.96C1704.38,-838.85 1122.71,-825.66 1048.48,-788.74 981.89,-755.61 965.31,-731.49 939.48,-661.74 894.52,-540.31 982.59,-389.43 1022.38,-330.37"/> +<polygon fill="black" stroke="black" points="1025.34,-332.25 1028.1,-322.02 1019.57,-328.29 1025.34,-332.25"/> +</g> +<!-- OpenAL&#45;&gt;sndio --> +<g id="edge67" class="edge"> +<title>OpenAL&#45;&gt;sndio</title> +<path fill="none" stroke="black" d="M1970.96,-842.76C2097.14,-842.15 2438,-836.06 2538.48,-788.74 2740.81,-693.46 2696.67,-543.64 2726.48,-322 2730.64,-291.07 2734.04,-276.48 2713.48,-253 2680.98,-215.87 2663.46,-214.1 2616.48,-199 2463.68,-149.89 2270.9,-144.08 2184.29,-144.24"/> +<polygon fill="black" stroke="black" points="2184.25,-140.74 2174.27,-144.28 2184.28,-147.74 2184.25,-140.74"/> </g> <!-- OpenAL&#45;&gt;PulseAudio --> -<g id="edge59" class="edge"> +<g id="edge60" class="edge"> <title>OpenAL&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1875.14,-827.92C1886.55,-818.21 1899.76,-804.44 1906,-788.74 1911.91,-773.87 1908.33,-768.57 1906,-752.74 1901.06,-719.22 1899.58,-709.83 1884,-679.74 1865.4,-643.82 1854.11,-638.89 1828,-608 1824.99,-604.44 1821.74,-600.74 1818.51,-597.14"/> -<polygon fill="black" stroke="black" points="1820.89,-594.54 1811.57,-589.5 1815.71,-599.25 1820.89,-594.54"/> +<path fill="none" stroke="black" d="M1967.46,-836.84C2019.41,-828.87 2101.14,-812.82 2119.48,-788.74 2154.94,-742.19 2140.05,-700.89 2065.48,-608 2061.16,-602.61 2055.78,-597.79 2050.1,-593.57"/> +<polygon fill="black" stroke="black" points="2051.89,-590.55 2041.65,-587.82 2047.95,-596.34 2051.89,-590.55"/> </g> <!-- SoundIO --> <g id="node28" class="node"> <title>SoundIO</title> <g id="a_node28"><a xlink:href="http://libsound.io/" xlink:title="SoundIO"> -<ellipse fill="lightgrey" stroke="black" cx="1855" cy="-770.74" rx="42.49" ry="18"/> -<text text-anchor="middle" x="1855" y="-767.04" font-family="Times,serif" font-size="14.00">SoundIO</text> +<ellipse fill="lightgrey" stroke="black" cx="2059.48" cy="-770.74" rx="50.89" ry="18"/> +<text text-anchor="middle" x="2059.48" y="-767.04" font-family="Times,serif" font-size="14.00">SoundIO</text> </a> </g> </g> <!-- OpenAL&#45;&gt;SoundIO --> -<g id="edge62" class="edge"> +<g id="edge63" class="edge"> <title>OpenAL&#45;&gt;SoundIO</title> -<path fill="none" stroke="black" d="M1855,-825.55C1855,-817.53 1855,-807.79 1855,-798.81"/> -<polygon fill="black" stroke="black" points="1858.5,-798.77 1855,-788.77 1851.5,-798.77 1858.5,-798.77"/> +<path fill="none" stroke="black" d="M1950.35,-828.71C1971.17,-817.84 2000.23,-802.67 2023.13,-790.72"/> +<polygon fill="black" stroke="black" points="2024.96,-793.71 2032.21,-785.98 2021.72,-787.51 2024.96,-793.71"/> </g> <!-- SoundIO&#45;&gt;null --> -<g id="edge70" class="edge"> +<g id="edge72" class="edge"> <title>SoundIO&#45;&gt;null</title> -<path fill="none" stroke="red" d="M1877.11,-755.39C1938.58,-713.51 2105.15,-585.56 2076,-446 2067.37,-404.7 2070.06,-386.43 2038,-359 1992,-319.64 1920.56,-308.54 1875.05,-305.65"/> -<polygon fill="red" stroke="red" points="1875.09,-302.15 1864.91,-305.12 1874.72,-309.14 1875.09,-302.15"/> +<path fill="none" stroke="red" d="M2109.09,-766.46C2153.73,-761.39 2219.37,-748.5 2266.48,-715.74 2322.48,-676.79 2333.98,-655.06 2354.48,-590 2395.04,-461.31 2259.99,-446.74 2157.48,-359 2142.77,-346.41 2125.79,-332.73 2112.6,-322.28"/> +<polygon fill="red" stroke="red" points="2114.56,-319.37 2104.54,-315.93 2110.23,-324.87 2114.56,-319.37"/> </g> <!-- SoundIO&#45;&gt;ALSA --> -<g id="edge69" class="edge"> +<g id="edge71" class="edge"> <title>SoundIO&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1815.87,-763.81C1792.44,-760.35 1762.05,-756.04 1735,-752.74 1558.42,-731.18 1347.78,-711.32 1255.82,-702.94"/> -<polygon fill="black" stroke="black" points="1256,-699.44 1245.72,-702.02 1255.36,-706.41 1256,-699.44"/> +<path fill="none" stroke="black" d="M2021.58,-758.62C2012.75,-756.37 2003.34,-754.24 1994.48,-752.74 1759.4,-713.01 1473.66,-702.39 1361.25,-699.65"/> +<polygon fill="black" stroke="black" points="1361.31,-696.15 1351.23,-699.42 1361.15,-703.15 1361.31,-696.15"/> </g> <!-- SoundIO&#45;&gt;JACK --> -<g id="edge67" class="edge"> +<g id="edge69" class="edge"> <title>SoundIO&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1844.25,-753.26C1818.98,-715.27 1752.59,-619.79 1682,-554 1651.16,-525.25 1639.88,-522.15 1604,-500 1593.85,-493.74 1582.51,-487.34 1572.22,-481.77"/> -<polygon fill="black" stroke="black" points="1573.61,-478.54 1563.14,-476.9 1570.3,-484.71 1573.61,-478.54"/> +<path fill="none" stroke="black" d="M2020.86,-759.08C1978.22,-747.04 1912.56,-727.57 1889.48,-715.74 1746.52,-642.47 1733.19,-589.04 1599.48,-500 1590.71,-494.16 1580.95,-488.17 1571.94,-482.84"/> +<polygon fill="black" stroke="black" points="1573.64,-479.78 1563.24,-477.76 1570.11,-485.82 1573.64,-479.78"/> </g> <!-- SoundIO&#45;&gt;PulseAudio --> -<g id="edge68" class="edge"> +<g id="edge70" class="edge"> <title>SoundIO&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1849.87,-752.62C1839.55,-718.24 1816.26,-640.55 1803.96,-599.53"/> -<polygon fill="black" stroke="black" points="1807.3,-598.51 1801.08,-589.94 1800.6,-600.52 1807.3,-598.51"/> +<path fill="none" stroke="black" d="M2079.23,-754.13C2084.24,-748.31 2087.87,-741.27 2086.48,-733.74 2075.64,-674.91 2067.73,-660.18 2038.48,-608 2036.61,-604.66 2034.44,-601.29 2032.16,-598.03"/> +<polygon fill="black" stroke="black" points="2034.78,-595.68 2026,-589.75 2029.16,-599.86 2034.78,-595.68"/> </g> <!-- RtAudio --> <g id="node29" class="node"> <title>RtAudio</title> <g id="a_node29"><a xlink:href="https://www.music.mcgill.ca/~gary/rtaudio/apinotes.html" xlink:title="RtAudio"> -<ellipse fill="lightgrey" stroke="black" cx="1281" cy="-770.74" rx="40.89" ry="18"/> -<text text-anchor="middle" x="1281" y="-767.04" font-family="Times,serif" font-size="14.00">RtAudio</text> +<ellipse fill="lightgrey" stroke="black" cx="1506.48" cy="-770.74" rx="48.19" ry="18"/> +<text text-anchor="middle" x="1506.48" y="-767.04" font-family="Times,serif" font-size="14.00">RtAudio</text> </a> </g> </g> <!-- RtAudio&#45;&gt;ALSA --> -<g id="edge72" class="edge"> +<g id="edge74" class="edge"> <title>RtAudio&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1278.54,-752.72C1276.95,-746.26 1274.32,-739.16 1270,-733.74 1263.73,-725.88 1255.18,-719.45 1246.46,-714.35"/> -<polygon fill="black" stroke="black" points="1247.88,-711.14 1237.41,-709.51 1244.58,-717.31 1247.88,-711.14"/> +<path fill="none" stroke="black" d="M1473.73,-757.5C1454.95,-750.5 1430.91,-741.58 1409.48,-733.74 1390.79,-726.9 1370.04,-719.4 1352.54,-713.1"/> +<polygon fill="black" stroke="black" points="1353.25,-709.64 1342.66,-709.55 1350.88,-716.22 1353.25,-709.64"/> </g> <!-- RtAudio&#45;&gt;JACK --> -<g id="edge73" class="edge"> +<g id="edge75" class="edge"> <title>RtAudio&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1298.28,-754.34C1337.58,-718.73 1435.23,-626.75 1500,-536 1510.22,-521.68 1519.94,-504.53 1527.25,-490.67"/> -<polygon fill="black" stroke="black" points="1530.41,-492.17 1531.89,-481.68 1524.19,-488.95 1530.41,-492.17"/> +<path fill="none" stroke="black" d="M1509.96,-752.54C1517.55,-713.98 1535.41,-617.63 1541.48,-536 1542.55,-521.69 1542.44,-505.71 1542,-492.54"/> +<polygon fill="black" stroke="black" points="1545.49,-492.09 1541.58,-482.24 1538.49,-492.38 1545.49,-492.09"/> </g> <!-- RtAudio&#45;&gt;OSS --> -<g id="edge71" class="edge"> +<g id="edge73" class="edge"> <title>RtAudio&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M1244.4,-762.51C1187.27,-749.83 1075.45,-719.3 998,-661.74 941.35,-619.64 923.77,-602.81 901,-536 877.01,-465.62 892.97,-376.16 903.63,-332.07"/> -<polygon fill="black" stroke="black" points="907.09,-332.67 906.13,-322.12 900.3,-330.97 907.09,-332.67"/> -<text text-anchor="middle" x="928.5" y="-514.3" font-family="Times,serif" font-size="14.00">OSS 4.0+</text> +<path fill="none" stroke="black" d="M1497.68,-752.84C1467.88,-697.11 1365.38,-516.8 1234.48,-413 1183.45,-372.53 1115.28,-338.44 1074.82,-319.93"/> +<polygon fill="black" stroke="black" points="1076.2,-316.71 1065.65,-315.79 1073.32,-323.09 1076.2,-316.71"/> +<text text-anchor="middle" x="1389.48" y="-514.3" font-family="Times,serif" font-size="14.00">OSS 4.0+</text> </g> <!-- RtAudio&#45;&gt;PulseAudio --> -<g id="edge74" class="edge"> +<g id="edge76" class="edge"> <title>RtAudio&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M1313.4,-759.46C1334.67,-752.63 1363.07,-743.37 1388,-734.74 1443.36,-715.58 1581.93,-662.46 1583,-661.74 1610.09,-643.56 1604.63,-624.11 1633,-608 1664,-590.4 1702.9,-581.63 1734.93,-577.27"/> -<polygon fill="black" stroke="black" points="1735.57,-580.72 1745.06,-576.01 1734.71,-573.77 1735.57,-580.72"/> +<path fill="none" stroke="black" d="M1552.45,-765.37C1620.66,-756.69 1749.45,-731.63 1831.48,-661.74 1851.98,-644.27 1838.18,-624.48 1859.48,-608 1882.38,-590.29 1912.65,-581.27 1940.14,-576.77"/> +<polygon fill="black" stroke="black" points="1940.74,-580.22 1950.13,-575.3 1939.73,-573.29 1940.74,-580.22"/> </g> <!-- JUCE --> <g id="node30" class="node"> <title>JUCE</title> -<ellipse fill="lightgrey" stroke="black" cx="1052" cy="-770.74" rx="31.7" ry="18"/> -<text text-anchor="middle" x="1052" y="-767.04" font-family="Times,serif" font-size="14.00">JUCE</text> +<ellipse fill="lightgrey" stroke="black" cx="1093.48" cy="-770.74" rx="36" ry="18"/> +<text text-anchor="middle" x="1093.48" y="-767.04" font-family="Times,serif" font-size="14.00">JUCE</text> </g> <!-- JUCE&#45;&gt;? --> -<g id="edge77" class="edge"> +<g id="edge79" class="edge"> <title>JUCE&#45;&gt;?</title> -<path fill="none" stroke="red" d="M1022.29,-764.2C958.28,-751.59 803.49,-717.45 684,-661.74 473.86,-563.77 256.37,-382.03 189.09,-323.6"/> -<polygon fill="red" stroke="red" points="191.13,-320.74 181.29,-316.8 186.53,-326.01 191.13,-320.74"/> +<path fill="none" stroke="red" d="M1067.12,-758.37C1023.82,-739.48 935.19,-699.93 862.48,-661.74 629.55,-539.4 359.19,-370.58 279.02,-319.94"/> +<polygon fill="red" stroke="red" points="280.53,-316.75 270.2,-314.36 276.78,-322.67 280.53,-316.75"/> </g> <!-- JUCE&#45;&gt;ALSA --> -<g id="edge75" class="edge"> +<g id="edge77" class="edge"> <title>JUCE&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1076.43,-759.04C1081.55,-756.89 1086.93,-754.69 1092,-752.74 1114.82,-743.95 1121.66,-744.7 1144,-734.74 1155.3,-729.7 1167.25,-723.38 1177.79,-717.46"/> -<polygon fill="black" stroke="black" points="1179.7,-720.4 1186.63,-712.39 1176.21,-714.33 1179.7,-720.4"/> +<path fill="none" stroke="black" d="M1120.99,-759.05C1126.75,-756.89 1132.8,-754.69 1138.48,-752.74 1183,-737.44 1234.55,-721.68 1269.93,-711.17"/> +<polygon fill="black" stroke="black" points="1271.31,-714.41 1279.9,-708.21 1269.32,-707.7 1271.31,-714.41"/> </g> <!-- JUCE&#45;&gt;JACK --> -<g id="edge76" class="edge"> +<g id="edge78" class="edge"> <title>JUCE&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M1068.28,-755.15C1089.36,-736.58 1127.61,-704.02 1163,-679.74 1284.66,-596.28 1440.85,-514.83 1507.51,-481.16"/> -<polygon fill="black" stroke="black" points="1509.32,-484.17 1516.68,-476.55 1506.17,-477.92 1509.32,-484.17"/> +<path fill="none" stroke="black" d="M1067.18,-758.29C1057.43,-752.19 1049.58,-743.85 1053.48,-733.74 1080.64,-663.36 1106.54,-652.45 1167.48,-608 1273.23,-530.87 1425.77,-489.75 1498.65,-473.46"/> +<polygon fill="black" stroke="black" points="1499.79,-476.79 1508.81,-471.23 1498.29,-469.95 1499.79,-476.79"/> </g> <!-- SDL1 --> <g id="node31" class="node"> <title>SDL1</title> <g id="a_node31"><a xlink:href="https://hg.libsdl.org/SDL/file/fba40d9f4a73/src/audio" xlink:title="libSDL&#45;1.2"> -<ellipse fill="lightgrey" stroke="black" cx="698" cy="-770.74" rx="50.89" ry="18"/> -<text text-anchor="middle" x="698" y="-767.04" font-family="Times,serif" font-size="14.00">libSDL&#45;1.2</text> +<ellipse fill="lightgrey" stroke="black" cx="709.48" cy="-770.74" rx="59.59" ry="18"/> +<text text-anchor="middle" x="709.48" y="-767.04" font-family="Times,serif" font-size="14.00">libSDL&#45;1.2</text> </a> </g> </g> <!-- SDL1&#45;&gt;filesystem --> -<g id="edge90" class="edge"> +<g id="edge92" class="edge"> <title>SDL1&#45;&gt;filesystem</title> -<path fill="none" stroke="black" d="M705.48,-752.79C729.14,-700.81 807.16,-541.41 914,-446 1005.24,-364.52 1048.49,-366.11 1168,-340 1204.83,-331.95 1246.36,-323.09 1278.41,-316.3"/> -<polygon fill="black" stroke="black" points="1279.41,-319.67 1288.47,-314.17 1277.96,-312.82 1279.41,-319.67"/> +<path fill="none" stroke="black" d="M715.47,-752.55C740.27,-684.46 842.48,-433.78 1026.48,-359 1099.52,-329.32 1629.06,-312.23 1825.45,-306.86"/> +<polygon fill="black" stroke="black" points="1825.77,-310.35 1835.67,-306.58 1825.58,-303.35 1825.77,-310.35"/> </g> <!-- SDL1&#45;&gt;null --> -<g id="edge94" class="edge"> +<g id="edge96" class="edge"> <title>SDL1&#45;&gt;null</title> -<path fill="none" stroke="red" d="M715.58,-753.73C756.32,-716.47 859.93,-620.66 942,-536 979.46,-497.36 979.3,-477.41 1023,-446 1102.04,-389.18 1131.5,-389.32 1224,-359 1259.96,-347.21 1269.56,-345.5 1307,-340 1485,-313.86 1699.86,-307.23 1789.5,-305.56"/> -<polygon fill="red" stroke="red" points="1789.61,-309.05 1799.55,-305.38 1789.49,-302.06 1789.61,-309.05"/> +<path fill="none" stroke="red" d="M726.28,-753.31C747.38,-732.47 784.46,-695.23 814.48,-661.74 872.72,-596.77 986.33,-397.79 1064.48,-359 1067.3,-357.6 1967.35,-322.29 1970.48,-322 1998.05,-319.49 2028.97,-315.07 2052.52,-311.37"/> +<polygon fill="red" stroke="red" points="2053.13,-314.82 2062.45,-309.78 2052.02,-307.9 2053.13,-314.82"/> </g> <!-- SDL1&#45;&gt;ALSA --> -<g id="edge87" class="edge"> +<g id="edge89" class="edge"> <title>SDL1&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M744.25,-763.31C841.2,-749.84 1064.79,-718.78 1162.21,-705.24"/> -<polygon fill="black" stroke="black" points="1162.92,-708.68 1172.34,-703.83 1161.95,-701.74 1162.92,-708.68"/> +<path fill="none" stroke="black" d="M764.06,-763.31C880.59,-749.59 1152.16,-717.62 1263.52,-704.51"/> +<polygon fill="black" stroke="black" points="1263.95,-707.98 1273.47,-703.33 1263.13,-701.03 1263.95,-707.98"/> </g> <!-- SDL1&#45;&gt;OSS --> -<g id="edge92" class="edge"> +<g id="edge94" class="edge"> <title>SDL1&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M690.68,-752.88C665.47,-691.9 588.95,-480.06 686,-359 694.95,-347.83 698.83,-345.61 712,-340 764.55,-317.62 830.76,-309.55 871.99,-306.64"/> -<polygon fill="black" stroke="black" points="872.41,-310.12 882.16,-305.99 871.96,-303.14 872.41,-310.12"/> +<path fill="none" stroke="black" d="M706.77,-752.38C699.12,-697.5 682.4,-524.73 754.48,-413 780.94,-372 792.52,-361.16 836.48,-340 888.08,-315.16 954.49,-307.68 997.28,-305.58"/> +<polygon fill="black" stroke="black" points="997.51,-309.07 1007.36,-305.16 997.22,-302.08 997.51,-309.07"/> </g> <!-- SDL1&#45;&gt;PulseAudio --> -<g id="edge93" class="edge"> +<g id="edge95" class="edge"> <title>SDL1&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M747.37,-766.56C844.79,-759.94 1068.5,-742.96 1255,-715.74 1337.45,-703.71 1357.19,-695.58 1439,-679.74 1480.76,-671.66 1495.78,-682.33 1533,-661.74 1561.55,-645.95 1554.25,-623.42 1583,-608 1608.83,-594.15 1682.62,-584.16 1736.11,-578.48"/> -<polygon fill="black" stroke="black" points="1736.6,-581.95 1746.18,-577.44 1735.88,-574.99 1736.6,-581.95"/> +<path fill="none" stroke="black" d="M768,-766.45C882.2,-759.68 1142.68,-742.55 1360.48,-715.74 1507.99,-697.58 1546.85,-699.9 1690.48,-661.74 1756.51,-644.2 1768.76,-626.63 1834.48,-608 1871.49,-597.51 1913.72,-589.03 1947.65,-583.05"/> +<polygon fill="black" stroke="black" points="1948.64,-586.43 1957.9,-581.27 1947.45,-579.53 1948.64,-586.43"/> </g> <!-- SDL1&#45;&gt;aRts --> -<g id="edge88" class="edge"> +<g id="edge90" class="edge"> <title>SDL1&#45;&gt;aRts</title> -<path fill="none" stroke="black" d="M679.97,-753.63C641.07,-718 548.48,-628.32 495,-536 414.16,-396.46 434.15,-341.64 420,-181 418.99,-169.58 427.46,-161.49 437.84,-155.91"/> -<polygon fill="black" stroke="black" points="439.6,-158.95 447.26,-151.63 436.71,-152.58 439.6,-158.95"/> +<path fill="none" stroke="black" d="M683.43,-754.51C674.74,-748.84 665.29,-742.01 657.48,-734.74 627.37,-706.68 619.02,-698.49 600.48,-661.74 545.39,-552.5 538.03,-517.22 532.48,-395 531.37,-370.54 528.48,-363.46 535.48,-340 554.46,-276.46 589.77,-206.7 609.4,-170.3"/> +<polygon fill="black" stroke="black" points="612.56,-171.83 614.27,-161.37 606.41,-168.48 612.56,-171.83"/> </g> <!-- SDL1&#45;&gt;ESD --> -<g id="edge89" class="edge"> +<g id="edge91" class="edge"> <title>SDL1&#45;&gt;ESD</title> -<path fill="none" stroke="black" d="M685.1,-752.94C677.62,-742.62 668.44,-728.9 662,-715.74 650.89,-693.01 649.43,-686.45 644,-661.74 624.88,-574.76 585.15,-391.49 609,-340 650.53,-250.34 755.85,-186.89 808.32,-159.74"/> -<polygon fill="black" stroke="black" points="810.14,-162.74 817.48,-155.09 806.98,-156.5 810.14,-162.74"/> +<path fill="none" stroke="black" d="M698.01,-752.66C659.7,-693.35 542.28,-491.73 608.48,-340 651.16,-242.2 691.96,-227.56 787.48,-180 809.91,-168.83 836.67,-160.18 858.07,-154.27"/> +<polygon fill="black" stroke="black" points="859.04,-157.63 867.79,-151.67 857.23,-150.87 859.04,-157.63"/> </g> <!-- SDL1&#45;&gt;NAS --> -<g id="edge91" class="edge"> +<g id="edge93" class="edge"> <title>SDL1&#45;&gt;NAS</title> -<path fill="none" stroke="black" d="M649.23,-765.42C605.6,-759.65 541.41,-746.33 494,-715.74 467.99,-698.96 467.22,-687.47 450,-661.74 374.56,-549 322.08,-393.54 302.97,-331.81"/> -<polygon fill="black" stroke="black" points="306.26,-330.61 299.99,-322.07 299.57,-332.66 306.26,-330.61"/> +<path fill="none" stroke="black" d="M654.97,-763.17C630.83,-758.25 603.09,-749.67 581.48,-734.74 548.5,-711.94 547,-697.3 528.48,-661.74 467.98,-545.53 426.94,-393.17 411.88,-332.07"/> +<polygon fill="black" stroke="black" points="415.22,-330.96 409.45,-322.08 408.41,-332.62 415.22,-330.96"/> </g> <!-- SDL2 --> <g id="node32" class="node"> <title>SDL2</title> <g id="a_node32"><a xlink:href="https://hg.libsdl.org/SDL/file/355a4f94a782" xlink:title="libSDL&#45;2.0"> -<ellipse fill="lightgrey" stroke="black" cx="353" cy="-770.74" rx="50.89" ry="18"/> -<text text-anchor="middle" x="353" y="-767.04" font-family="Times,serif" font-size="14.00">libSDL&#45;2.0</text> +<ellipse fill="lightgrey" stroke="black" cx="393.48" cy="-770.74" rx="59.59" ry="18"/> +<text text-anchor="middle" x="393.48" y="-767.04" font-family="Times,serif" font-size="14.00">libSDL&#45;2.0</text> </a> </g> </g> <!-- SDL2&#45;&gt;filesystem --> -<g id="edge98" class="edge"> +<g id="edge100" class="edge"> <title>SDL2&#45;&gt;filesystem</title> -<path fill="none" stroke="black" d="M358.96,-752.68C360.92,-746.99 363.08,-740.6 365,-734.74 406.89,-606.59 359.68,-538.25 458,-446 577.77,-333.63 650.39,-369.25 812,-340 898.32,-324.38 1152.19,-312.34 1270.28,-307.42"/> -<polygon fill="black" stroke="black" points="1270.75,-310.91 1280.6,-307 1270.46,-303.91 1270.75,-310.91"/> +<path fill="none" stroke="black" d="M400.47,-752.71C402.76,-747.02 405.28,-740.62 407.48,-734.74 446.24,-631.25 411.93,-578.73 489.48,-500 617.37,-370.18 696.34,-397.34 874.48,-359 1056.24,-319.88 1623.07,-308.65 1825.62,-305.84"/> +<polygon fill="black" stroke="black" points="1825.9,-309.34 1835.85,-305.7 1825.8,-302.34 1825.9,-309.34"/> </g> <!-- SDL2&#45;&gt;null --> -<g id="edge103" class="edge"> +<g id="edge105" class="edge"> <title>SDL2&#45;&gt;null</title> -<path fill="none" stroke="red" d="M381.39,-755.63C417.52,-736.94 480.86,-701.65 528,-661.74 552.22,-641.24 552.63,-630.5 575,-608 600.53,-582.32 606.28,-574.68 636,-554 677.79,-524.93 691.35,-522.52 737,-500 895.2,-421.97 935.01,-393.5 1108,-359 1190.36,-342.57 1212.31,-346.96 1296,-340 1481.08,-324.61 1702.58,-311.98 1791.83,-307.13"/> -<polygon fill="red" stroke="red" points="1792.25,-310.62 1802.04,-306.58 1791.87,-303.63 1792.25,-310.62"/> +<path fill="none" stroke="red" d="M409.71,-753.01C476.47,-685.6 739.49,-433.94 1015.48,-359 1220.44,-303.35 1758.95,-340.92 1970.48,-322 1998.23,-319.52 2029.38,-315.06 2052.98,-311.33"/> +<polygon fill="red" stroke="red" points="2053.62,-314.77 2062.93,-309.73 2052.5,-307.86 2053.62,-314.77"/> </g> <!-- SDL2&#45;&gt;ALSA --> -<g id="edge95" class="edge"> +<g id="edge97" class="edge"> <title>SDL2&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M402.37,-766.22C486.62,-760.17 663.55,-747.22 813,-734.74 939.06,-724.22 1087.54,-710.31 1161.76,-703.26"/> -<polygon fill="black" stroke="black" points="1162.54,-706.7 1172.16,-702.27 1161.88,-699.73 1162.54,-706.7"/> +<path fill="none" stroke="black" d="M450.97,-765.71C614.85,-754.21 1077.02,-721.68 1145.48,-715.74 1185.17,-712.3 1230.1,-707.68 1263.35,-704.13"/> +<polygon fill="black" stroke="black" points="1264.14,-707.57 1273.71,-703.02 1263.39,-700.61 1264.14,-707.57"/> </g> <!-- SDL2&#45;&gt;JACK --> -<g id="edge100" class="edge"> +<g id="edge102" class="edge"> <title>SDL2&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M399.27,-763.23C440.99,-757.03 503.92,-746.86 558,-734.74 652.77,-713.5 1306.1,-524.82 1400,-500 1433.98,-491.02 1472.75,-481.37 1500.87,-474.48"/> -<polygon fill="black" stroke="black" points="1501.83,-477.85 1510.71,-472.08 1500.17,-471.05 1501.83,-477.85"/> +<path fill="none" stroke="black" d="M440.36,-759.43C469.34,-752.85 507.21,-743.86 540.48,-734.74 879.38,-641.83 952.68,-577.26 1295.48,-500 1365.14,-484.3 1447.6,-474.24 1496.89,-469.1"/> +<polygon fill="black" stroke="black" points="1497.3,-472.58 1506.89,-468.08 1496.59,-465.62 1497.3,-472.58"/> </g> <!-- SDL2&#45;&gt;OSS --> -<g id="edge104" class="edge"> +<g id="edge106" class="edge"> <title>SDL2&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M351.67,-752.42C348.22,-699.71 342.03,-537.3 385,-413 394.35,-385.97 395.66,-374.01 420,-359 495.43,-312.48 769.11,-305.88 871.76,-305.06"/> -<polygon fill="black" stroke="black" points="872.02,-308.56 882,-304.99 871.97,-301.56 872.02,-308.56"/> +<path fill="none" stroke="black" d="M392.91,-752.47C392.04,-715.61 391.82,-626.64 406.48,-554 416.56,-504.12 412.98,-485.96 444.48,-446 498.22,-377.85 526.3,-367.9 608.48,-340 679.56,-315.87 902.26,-308.09 997.06,-305.83"/> +<polygon fill="black" stroke="black" points="997.25,-309.33 1007.17,-305.6 997.09,-302.33 997.25,-309.33"/> </g> <!-- SDL2&#45;&gt;sndio --> -<g id="edge106" class="edge"> +<g id="edge108" class="edge"> <title>SDL2&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M302.81,-768.08C235.82,-762.74 120.55,-741.73 77,-661.74 62.75,-635.57 76.45,-345.22 141,-286 187.89,-242.99 1166.76,-164.49 1377.32,-148.06"/> -<polygon fill="black" stroke="black" points="1377.62,-151.55 1387.32,-147.29 1377.08,-144.57 1377.62,-151.55"/> +<path fill="none" stroke="black" d="M333.78,-769.45C259.61,-765.38 136.63,-745.54 85.48,-661.74 73.04,-641.35 80.53,-631.36 85.48,-608 101.73,-531.41 164.62,-331.29 228.48,-286 288.9,-243.15 1483.58,-184.97 1557.48,-180 1661.47,-173.01 1975.09,-154.56 2093.01,-147.66"/> +<polygon fill="black" stroke="black" points="2093.36,-151.14 2103.14,-147.06 2092.95,-144.15 2093.36,-151.14"/> </g> <!-- SDL2&#45;&gt;PulseAudio --> -<g id="edge105" class="edge"> +<g id="edge107" class="edge"> <title>SDL2&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M398.6,-762.86C580.07,-735.54 1251.47,-634.81 1465,-608 1559.7,-596.11 1669.98,-584.99 1736.32,-578.6"/> -<polygon fill="black" stroke="black" points="1736.96,-582.06 1746.58,-577.62 1736.29,-575.09 1736.96,-582.06"/> +<path fill="none" stroke="black" d="M447.01,-762.46C498.43,-755.44 578.28,-744.48 647.48,-734.74 1039.65,-679.55 1135.75,-650.53 1529.48,-608 1675.01,-592.28 1846.04,-581.73 1940.23,-576.61"/> +<polygon fill="black" stroke="black" points="1940.69,-580.09 1950.49,-576.05 1940.32,-573.1 1940.69,-580.09"/> </g> <!-- SDL2&#45;&gt;aRts --> -<g id="edge96" class="edge"> +<g id="edge98" class="edge"> <title>SDL2&#45;&gt;aRts</title> -<path fill="none" stroke="black" d="M302.26,-769.52C221.85,-768.31 69.57,-762.33 24,-734.74 7.55,-724.78 0,-717.97 0,-698.74 0,-698.74 0,-698.74 0,-216 0,-172.1 323.43,-152.23 434.83,-146.69"/> -<polygon fill="black" stroke="black" points="435.11,-150.18 444.93,-146.19 434.77,-143.18 435.11,-150.18"/> +<path fill="none" stroke="black" d="M334.04,-768.26C236.76,-765.21 52.32,-756.59 32.48,-734.74 -37.97,-657.12 25.11,-600.33 55.48,-500 85.14,-402.05 64.8,-354.88 140.48,-286 207.08,-225.39 479.68,-170.95 583.28,-152.06"/> +<polygon fill="black" stroke="black" points="584.12,-155.46 593.34,-150.24 582.87,-148.57 584.12,-155.46"/> </g> <!-- SDL2&#45;&gt;ESD --> -<g id="edge97" class="edge"> +<g id="edge99" class="edge"> <title>SDL2&#45;&gt;ESD</title> -<path fill="none" stroke="black" d="M302.16,-769.75C231.28,-768.71 107.66,-762.79 74,-734.74 17.89,-687.97 42.29,-333.35 86,-286 135.67,-232.19 657.19,-166.61 801.93,-149.34"/> -<polygon fill="black" stroke="black" points="802.56,-152.79 812.08,-148.13 801.73,-145.83 802.56,-152.79"/> +<path fill="none" stroke="black" d="M334.54,-767.23C246.52,-762.91 89.01,-752.75 70.48,-734.74 7.75,-673.75 132.75,-331.71 187.48,-286 239.82,-242.3 714.2,-171.19 856.39,-150.69"/> +<polygon fill="black" stroke="black" points="857.02,-154.14 866.42,-149.25 856.03,-147.21 857.02,-154.14"/> </g> <!-- SDL2&#45;&gt;NAS --> -<g id="edge101" class="edge"> +<g id="edge103" class="edge"> <title>SDL2&#45;&gt;NAS</title> -<path fill="none" stroke="black" d="M347.56,-752.67C345.77,-746.98 343.78,-740.59 342,-734.74 308.01,-622.74 284.61,-597.86 268,-482 265.73,-466.16 266.49,-461.93 268,-446 271.8,-405.96 281.54,-360.37 288.22,-332.14"/> -<polygon fill="black" stroke="black" points="291.67,-332.76 290.61,-322.21 284.86,-331.11 291.67,-332.76"/> +<path fill="none" stroke="black" d="M390.32,-752.72C384.57,-720.91 372.65,-650.19 368.48,-590 363.05,-511.51 361.45,-491.04 371.48,-413 374.59,-388.87 373.31,-382.25 380.48,-359 383.36,-349.68 387.52,-339.88 391.62,-331.23"/> +<polygon fill="black" stroke="black" points="394.87,-332.56 396.16,-322.04 388.59,-329.46 394.87,-332.56"/> </g> <!-- FusionSound --> <g id="node33" class="node"> <title>FusionSound</title> -<ellipse fill="red" stroke="black" cx="178" cy="-634.87" rx="100.32" ry="26.74"/> -<text text-anchor="middle" x="178" y="-638.67" font-family="Times,serif" font-size="14.00">DirectFB/FusionSound</text> -<text text-anchor="middle" x="178" y="-623.67" font-family="Times,serif" font-size="14.00">[dead]</text> +<ellipse fill="red" stroke="black" cx="213.48" cy="-634.87" rx="126.64" ry="26.74"/> +<text text-anchor="middle" x="213.48" y="-638.67" font-family="Times,serif" font-size="14.00">DirectFB/FusionSound</text> +<text text-anchor="middle" x="213.48" y="-623.67" font-family="Times,serif" font-size="14.00">[dead]</text> </g> <!-- SDL2&#45;&gt;FusionSound --> -<g id="edge99" class="edge"> +<g id="edge101" class="edge"> <title>SDL2&#45;&gt;FusionSound</title> -<path fill="none" stroke="red" d="M301.98,-769.68C260.38,-766.58 203.95,-754.78 175,-715.74 165.8,-703.33 165.17,-686.62 167.39,-671.68"/> -<polygon fill="red" stroke="red" points="170.86,-672.18 169.32,-661.7 163.99,-670.86 170.86,-672.18"/> +<path fill="none" stroke="red" d="M341.01,-762.09C290.45,-753.52 219.22,-737.86 202.48,-715.74 192.99,-703.19 193.96,-686.27 198.02,-671.23"/> +<polygon fill="red" stroke="red" points="201.36,-672.28 201.06,-661.69 194.69,-670.15 201.36,-672.28"/> </g> <!-- OpenSL ES --> <g id="node34" class="node"> <title>OpenSL ES</title> -<ellipse fill="lightgrey" stroke="black" cx="237" cy="-697.74" rx="52.79" ry="18"/> -<text text-anchor="middle" x="237" y="-694.04" font-family="Times,serif" font-size="14.00">OpenSL ES</text> +<ellipse fill="lightgrey" stroke="black" cx="275.48" cy="-697.74" rx="63.89" ry="18"/> +<text text-anchor="middle" x="275.48" y="-694.04" font-family="Times,serif" font-size="14.00">OpenSL ES</text> </g> <!-- SDL2&#45;&gt;OpenSL ES --> -<g id="edge102" class="edge"> +<g id="edge104" class="edge"> <title>SDL2&#45;&gt;OpenSL ES</title> -<path fill="none" stroke="black" d="M328.68,-754.86C311.78,-744.51 289.05,-730.6 270.44,-719.21"/> -<polygon fill="black" stroke="black" points="272.04,-716.08 261.68,-713.85 268.39,-722.05 272.04,-716.08"/> +<path fill="none" stroke="black" d="M367.88,-754.33C350.99,-744.17 328.65,-730.73 310.17,-719.61"/> +<polygon fill="black" stroke="black" points="311.82,-716.52 301.45,-714.36 308.21,-722.52 311.82,-716.52"/> </g> <!-- FusionSound&#45;&gt;? --> -<g id="edge107" class="edge"> +<g id="edge109" class="edge"> <title>FusionSound&#45;&gt;?</title> -<path fill="none" stroke="red" d="M174.45,-607.92C171.57,-584.68 168,-549.63 168,-519 168,-519 168,-519 168,-376 168,-361.65 168,-345.67 168,-332.51"/> -<polygon fill="red" stroke="red" points="171.5,-332.22 168,-322.22 164.5,-332.22 171.5,-332.22"/> +<path fill="none" stroke="red" d="M221.43,-607.68C227.73,-584.57 235.48,-549.86 235.48,-519 235.48,-519 235.48,-519 235.48,-376 235.48,-360.39 240.02,-343.54 244.77,-330.18"/> +<polygon fill="red" stroke="red" points="248.09,-331.31 248.38,-320.72 241.55,-328.82 248.09,-331.31"/> </g> <!-- OpenSL ES&#45;&gt;? --> -<g id="edge134" class="edge"> +<g id="edge136" class="edge"> <title>OpenSL ES&#45;&gt;?</title> -<path fill="none" stroke="red" d="M262.07,-681.79C268.83,-676.39 275.3,-669.65 279,-661.74 289.13,-640.11 289.23,-629.58 279,-608 273.59,-596.58 264.01,-600.51 257,-590 192.63,-493.5 220.25,-449.52 182,-340 180.9,-336.85 179.68,-333.56 178.44,-330.32"/> -<polygon fill="red" stroke="red" points="181.65,-328.93 174.71,-320.92 175.14,-331.5 181.65,-328.93"/> +<path fill="none" stroke="red" d="M316.19,-683.76C326.18,-678.55 335.67,-671.41 341.48,-661.74 353.8,-641.27 347.95,-630.99 341.48,-608 338.94,-598.97 334.45,-598.49 330.48,-590 316.38,-559.82 306.48,-552.31 306.48,-519 306.48,-519 306.48,-519 306.48,-376 306.48,-354.81 291.32,-335.62 277.53,-322.55"/> +<polygon fill="red" stroke="red" points="279.49,-319.61 269.69,-315.59 274.84,-324.84 279.49,-319.61"/> </g> <!-- phonon --> <g id="node35" class="node"> <title>phonon</title> -<ellipse fill="lightgrey" stroke="black" cx="2147" cy="-843.74" rx="37.09" ry="18"/> -<text text-anchor="middle" x="2147" y="-840.04" font-family="Times,serif" font-size="14.00">phonon</text> +<ellipse fill="lightgrey" stroke="black" cx="2494.48" cy="-843.74" rx="44.69" ry="18"/> +<text text-anchor="middle" x="2494.48" y="-840.04" font-family="Times,serif" font-size="14.00">phonon</text> </g> <!-- phonon&#45;&gt;PulseAudio --> -<g id="edge115" class="edge"> +<g id="edge117" class="edge"> <title>phonon&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M2139.19,-825.96C2129.61,-806.64 2111.92,-774.77 2090,-752.74 2013.7,-676.05 1898.5,-618.02 1837.43,-590.56"/> -<polygon fill="black" stroke="black" points="1838.66,-587.28 1828.1,-586.41 1835.82,-593.67 1838.66,-587.28"/> +<path fill="none" stroke="black" d="M2470.47,-828.49C2385.06,-777.81 2100.92,-609.2 2098.48,-608 2085.68,-601.68 2071.44,-595.58 2058.25,-590.29"/> +<polygon fill="black" stroke="black" points="2059.45,-587 2048.86,-586.59 2056.88,-593.52 2059.45,-587"/> </g> <!-- phonon&#45;&gt;gstreamer --> -<g id="edge113" class="edge"> +<g id="edge115" class="edge"> <title>phonon&#45;&gt;gstreamer</title> -<path fill="none" stroke="black" d="M2111.9,-837.4C2030.44,-825.02 1828.22,-794.27 1732.21,-779.68"/> -<polygon fill="black" stroke="black" points="1732.56,-776.19 1722.14,-778.15 1731.5,-783.11 1732.56,-776.19"/> +<path fill="none" stroke="black" d="M2450.54,-839.73C2363.83,-833.39 2164.81,-816.9 1999.48,-788.74 1993.25,-787.68 1986.76,-786.41 1980.33,-785.05"/> +<polygon fill="black" stroke="black" points="1980.84,-781.57 1970.32,-782.85 1979.33,-788.41 1980.84,-781.57"/> </g> <!-- VLC --> <g id="node36" class="node"> <title>VLC</title> <g id="a_node36"><a xlink:href="https://code.videolan.org/videolan/vlc/-/tree/master/modules/audio_output" xlink:title="VLC"> -<ellipse fill="lightgrey" stroke="black" cx="2358" cy="-770.74" rx="28.7" ry="18"/> -<text text-anchor="middle" x="2358" y="-767.04" font-family="Times,serif" font-size="14.00">VLC</text> +<ellipse fill="lightgrey" stroke="black" cx="2442.48" cy="-770.74" rx="29.8" ry="18"/> +<text text-anchor="middle" x="2442.48" y="-767.04" font-family="Times,serif" font-size="14.00">VLC</text> </a> </g> </g> <!-- phonon&#45;&gt;VLC --> -<g id="edge114" class="edge"> +<g id="edge116" class="edge"> <title>phonon&#45;&gt;VLC</title> -<path fill="none" stroke="black" d="M2183.39,-840.3C2218.57,-836.79 2272.64,-828.27 2315,-807.74 2322.52,-804.1 2329.82,-798.85 2336.22,-793.49"/> -<polygon fill="black" stroke="black" points="2338.64,-796.02 2343.78,-786.75 2333.98,-790.79 2338.64,-796.02"/> +<path fill="none" stroke="black" d="M2505.16,-825.93C2507.76,-819.64 2508.93,-812.6 2505.48,-806.74 2499.35,-796.31 2488.86,-788.77 2478.19,-783.42"/> +<polygon fill="black" stroke="black" points="2479.42,-780.14 2468.86,-779.27 2476.57,-786.53 2479.42,-780.14"/> </g> <!-- VLC&#45;&gt;filesystem --> -<g id="edge128" class="edge"> +<g id="edge130" class="edge"> <title>VLC&#45;&gt;filesystem</title> -<path fill="none" stroke="black" d="M2379.03,-758.32C2393.32,-749.07 2410.57,-734.51 2416,-715.74 2435.98,-646.69 2451.53,-616.49 2416,-554 2355.41,-447.46 2289.3,-466.45 2179,-413 2118.61,-383.74 2103.47,-373.71 2038,-359 1915.97,-331.58 1541.86,-313.63 1393.52,-307.42"/> -<polygon fill="black" stroke="black" points="1393.37,-303.91 1383.24,-307 1393.08,-310.91 1393.37,-303.91"/> +<path fill="none" stroke="black" d="M2452.28,-753.38C2454.93,-747.39 2456.97,-740.43 2456.48,-733.74 2450.69,-653.23 2465.96,-626.5 2430.48,-554 2401.19,-494.15 2381.13,-484.14 2326.48,-446 2230.53,-379.03 2197.28,-374.55 2085.48,-340 2047.43,-328.24 2003.73,-319.79 1968.15,-314.15"/> +<polygon fill="black" stroke="black" points="1968.28,-310.63 1957.86,-312.56 1967.21,-317.54 1968.28,-310.63"/> </g> <!-- VLC&#45;&gt;null --> -<g id="edge126" class="edge"> +<g id="edge128" class="edge"> <title>VLC&#45;&gt;null</title> -<path fill="none" stroke="red" d="M2385.53,-765.81C2420.96,-759.03 2478,-741.47 2478,-698.74 2478,-698.74 2478,-698.74 2478,-376 2478,-315.18 2019.79,-306.45 1875.18,-305.2"/> -<polygon fill="red" stroke="red" points="1874.95,-301.7 1864.92,-305.12 1874.9,-308.7 1874.95,-301.7"/> +<path fill="none" stroke="red" d="M2469.17,-762.44C2492.15,-755.58 2522.79,-744.9 2530.48,-734.74 2610.51,-629.16 2552.8,-536.96 2456.48,-446 2403.22,-395.7 2384.09,-387.21 2316.48,-359 2253.97,-332.92 2176.23,-317.82 2130.13,-310.51"/> +<polygon fill="red" stroke="red" points="2130.38,-307.01 2119.96,-308.95 2129.31,-313.93 2130.38,-307.01"/> </g> <!-- VLC&#45;&gt;ALSA --> -<g id="edge127" class="edge"> +<g id="edge129" class="edge"> <title>VLC&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M2329.44,-767.91C2280.46,-764.77 2177.25,-758.18 2090,-752.74 1771.34,-732.87 1387.79,-709.57 1256.07,-701.59"/> -<polygon fill="black" stroke="black" points="1256.12,-698.09 1245.93,-700.98 1255.7,-705.07 1256.12,-698.09"/> +<path fill="none" stroke="black" d="M2412.83,-767.83C2328.96,-762.42 2082.9,-746.58 1878.48,-733.74 1687.22,-721.72 1459.57,-707.74 1361.46,-701.74"/> +<polygon fill="black" stroke="black" points="1361.45,-698.23 1351.26,-701.11 1361.02,-705.22 1361.45,-698.23"/> </g> <!-- VLC&#45;&gt;JACK --> -<g id="edge129" class="edge"> +<g id="edge131" class="edge"> <title>VLC&#45;&gt;JACK</title> -<path fill="none" stroke="black" d="M2351.84,-752.89C2343.58,-732.59 2326.99,-698.86 2302,-679.74 2081.59,-511.11 1974.92,-560.2 1704,-500 1650.07,-488.02 1634.26,-496.69 1581,-482 1578.68,-481.36 1576.32,-480.62 1573.96,-479.82"/> -<polygon fill="black" stroke="black" points="1574.96,-476.46 1564.37,-476.26 1572.52,-483.02 1574.96,-476.46"/> +<path fill="none" stroke="black" d="M2414.98,-763.52C2315.65,-740.54 1967.2,-655.61 1698.48,-536 1669.72,-523.2 1665.97,-513.4 1637.48,-500 1618.76,-491.19 1597.17,-483.2 1579.11,-477.09"/> +<polygon fill="black" stroke="black" points="1580.08,-473.72 1569.49,-473.89 1577.88,-480.36 1580.08,-473.72"/> </g> <!-- VLC&#45;&gt;OSS --> -<g id="edge131" class="edge"> +<g id="edge133" class="edge"> <title>VLC&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M2358.79,-752.74C2358.75,-746.69 2358.31,-739.85 2357,-733.74 2333.49,-623.75 2342.33,-576.63 2260,-500 2187.47,-432.49 1934.18,-378.33 1837,-359 1720.32,-335.79 1688.74,-347.38 1570,-340 1334.76,-325.38 1052.04,-311.66 950.05,-306.83"/> -<polygon fill="black" stroke="black" points="950.07,-303.33 939.92,-306.35 949.74,-310.32 950.07,-303.33"/> +<path fill="none" stroke="black" d="M2432.97,-753.39C2429.21,-747.15 2424.78,-740.03 2420.48,-733.74 2403.49,-708.85 2400.65,-701.18 2379.48,-679.74 2343.06,-642.84 2330.36,-637.16 2287.48,-608 2264.93,-592.67 1890.55,-367.03 1864.48,-359 1863.89,-358.82 1253.64,-318.93 1083.86,-307.83"/> +<polygon fill="black" stroke="black" points="1083.99,-304.34 1073.78,-307.18 1083.53,-311.32 1083.99,-304.34"/> </g> <!-- VLC&#45;&gt;sndio --> -<g id="edge133" class="edge"> +<g id="edge135" class="edge"> <title>VLC&#45;&gt;sndio</title> -<path fill="none" stroke="black" d="M2386.49,-768.31C2456.07,-764.06 2629,-748.47 2629,-698.74 2629,-698.74 2629,-698.74 2629,-259.5 2629,-156.81 2507.04,-217.34 2406,-199 2219.31,-165.11 1619.57,-149.52 1457.62,-145.86"/> -<polygon fill="black" stroke="black" points="1457.24,-142.36 1447.16,-145.63 1457.08,-149.35 1457.24,-142.36"/> +<path fill="none" stroke="black" d="M2471.49,-765.9C2500.67,-760.34 2544.3,-747.02 2565.48,-715.74 2578.56,-696.42 2707.36,-344.96 2711.48,-322 2714.31,-306.25 2716.43,-301.22 2711.48,-286 2683.63,-200.36 2616.12,-219.75 2528.48,-199 2405.65,-169.92 2257.09,-154.69 2183.84,-148.47"/> +<polygon fill="black" stroke="black" points="2183.85,-144.96 2173.59,-147.61 2183.26,-151.93 2183.85,-144.96"/> </g> <!-- VLC&#45;&gt;PulseAudio --> -<g id="edge132" class="edge"> +<g id="edge134" class="edge"> <title>VLC&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M2332.17,-762.47C2280.82,-747.49 2163.02,-710.45 2072,-661.74 2035.85,-642.39 2034.82,-623.86 1997,-608 1952.43,-589.31 1898.28,-580.6 1857.41,-576.54"/> -<polygon fill="black" stroke="black" points="1857.6,-573.05 1847.32,-575.61 1856.96,-580.02 1857.6,-573.05"/> +<path fill="none" stroke="black" d="M2428.06,-754.67C2395.75,-721.94 2313.71,-644.39 2228.48,-608 2182.51,-588.37 2126.77,-579.66 2083.29,-575.84"/> +<polygon fill="black" stroke="black" points="2083.33,-572.34 2073.08,-575.02 2082.76,-579.31 2083.33,-572.34"/> </g> <!-- VLC&#45;&gt;OpenSL ES --> -<g id="edge130" class="edge"> +<g id="edge132" class="edge"> <title>VLC&#45;&gt;OpenSL ES</title> -<path fill="none" stroke="black" d="M2329.46,-767.61C2280.5,-764.02 2177.32,-756.78 2090,-752.74 1387.93,-720.25 535.26,-703.9 299.81,-699.79"/> -<polygon fill="black" stroke="black" points="299.78,-696.29 289.72,-699.62 299.66,-703.29 299.78,-696.29"/> +<path fill="none" stroke="black" d="M2412.66,-767.94C2355.7,-764.55 2227.49,-757.16 2119.48,-752.74 1431.35,-724.56 598.18,-705.62 349.16,-700.28"/> +<polygon fill="black" stroke="black" points="348.87,-696.77 338.79,-700.06 348.72,-703.77 348.87,-696.77"/> </g> <!-- ClanLib --> <g id="node37" class="node"> <title>ClanLib</title> <g id="a_node37"><a xlink:href="https://github.com/sphair/ClanLib/tree/master/Sources/Sound/Platform/Linux" xlink:title="ClanLib"> -<ellipse fill="lightgrey" stroke="black" cx="1141" cy="-770.74" rx="39.79" ry="18"/> -<text text-anchor="middle" x="1141" y="-767.04" font-family="Times,serif" font-size="14.00">ClanLib</text> +<ellipse fill="lightgrey" stroke="black" cx="1193.48" cy="-770.74" rx="46.29" ry="18"/> +<text text-anchor="middle" x="1193.48" y="-767.04" font-family="Times,serif" font-size="14.00">ClanLib</text> </a> </g> </g> <!-- ClanLib&#45;&gt;ALSA --> -<g id="edge116" class="edge"> +<g id="edge118" class="edge"> <title>ClanLib&#45;&gt;ALSA</title> -<path fill="none" stroke="black" d="M1156.09,-753.98C1164.82,-744.87 1175.99,-733.21 1185.82,-722.95"/> -<polygon fill="black" stroke="black" points="1188.61,-725.09 1193,-715.44 1183.56,-720.24 1188.61,-725.09"/> +<path fill="none" stroke="black" d="M1217.57,-755.37C1235.7,-744.55 1260.75,-729.61 1280.56,-717.79"/> +<polygon fill="black" stroke="black" points="1282.45,-720.73 1289.25,-712.6 1278.87,-714.72 1282.45,-720.73"/> </g> <!-- ClanLib&#45;&gt;OSS --> -<g id="edge117" class="edge"> +<g id="edge119" class="edge"> <title>ClanLib&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M1110.64,-758.99C1033.49,-731.67 836,-661.74 836,-661.74 732.97,-560.49 702.84,-455.19 790,-340 808.84,-315.1 844.29,-307.09 871.98,-304.87"/> -<polygon fill="black" stroke="black" points="872.37,-308.36 882.15,-304.28 871.97,-301.37 872.37,-308.36"/> +<path fill="none" stroke="black" d="M1169.62,-755.22C1141.42,-736.85 1095,-702.65 1068.48,-661.74 1014.73,-578.79 1007.72,-544.61 1014.48,-446 1017.16,-407.06 1018.91,-397.29 1026.48,-359 1028.22,-350.22 1030.53,-340.74 1032.77,-332.21"/> +<polygon fill="black" stroke="black" points="1036.19,-332.96 1035.42,-322.39 1029.44,-331.13 1036.19,-332.96"/> </g> <!-- allegro --> <g id="node38" class="node"> <title>allegro</title> <g id="a_node38"><a xlink:href="https://github.com/liballeg/allegro5/tree/master/addons/audio" xlink:title="allegro"> -<ellipse fill="lightgrey" stroke="black" cx="565" cy="-916.74" rx="35.19" ry="18"/> -<text text-anchor="middle" x="565" y="-913.04" font-family="Times,serif" font-size="14.00">allegro</text> +<ellipse fill="lightgrey" stroke="black" cx="500.48" cy="-916.74" rx="42.79" ry="18"/> +<text text-anchor="middle" x="500.48" y="-913.04" font-family="Times,serif" font-size="14.00">allegro</text> </a> </g> </g> <!-- allegro&#45;&gt;OSS --> -<g id="edge118" class="edge"> +<g id="edge120" class="edge"> <title>allegro&#45;&gt;OSS</title> -<path fill="none" stroke="black" d="M530.75,-912.26C491.34,-906.14 432,-889.5 432,-844.74 432,-844.74 432,-844.74 432,-733.74 432,-636.26 585.95,-422.39 660,-359 691.45,-332.08 809.41,-315.8 871.78,-308.89"/> -<polygon fill="black" stroke="black" points="872.45,-312.33 882.02,-307.78 871.7,-305.37 872.45,-312.33"/> +<path fill="none" stroke="black" d="M493.3,-898.86C487.92,-884.69 481.48,-863.75 481.48,-844.74 481.48,-844.74 481.48,-844.74 481.48,-733.74 481.48,-525.3 586.91,-469.76 763.48,-359 836.16,-313.41 939.01,-304.92 996.75,-304.11"/> +<polygon fill="black" stroke="black" points="997.02,-307.61 1006.99,-304.04 996.97,-300.61 997.02,-307.61"/> </g> <!-- allegro&#45;&gt;PulseAudio --> -<g id="edge120" class="edge"> +<g id="edge122" class="edge"> <title>allegro&#45;&gt;PulseAudio</title> -<path fill="none" stroke="black" d="M600.27,-915.23C823.14,-911.91 2031.73,-892.62 2193,-861.74 2287.17,-843.71 2340.85,-867.17 2396,-788.74 2530.2,-597.87 2036.64,-575.05 1858.1,-572.95"/> -<polygon fill="black" stroke="black" points="1858.1,-569.45 1848.07,-572.85 1858.03,-576.45 1858.1,-569.45"/> +<path fill="none" stroke="black" d="M543.39,-915.43C834.71,-913.23 2512.23,-898.96 2548.48,-861.74 2636.36,-771.52 2393.31,-650.7 2287.48,-608 2251.32,-593.41 2150.99,-583.3 2081.81,-577.82"/> +<polygon fill="black" stroke="black" points="2081.66,-574.3 2071.42,-577.02 2081.11,-581.28 2081.66,-574.3"/> </g> <!-- allegro&#45;&gt;OpenAL --> -<g id="edge119" class="edge"> +<g id="edge121" class="edge"> <title>allegro&#45;&gt;OpenAL</title> -<path fill="none" stroke="black" d="M599.84,-913.82C778.34,-904 1590.29,-859.31 1803.56,-847.57"/> -<polygon fill="black" stroke="black" points="1804.06,-851.05 1813.85,-847.01 1803.67,-844.06 1804.06,-851.05"/> +<path fill="none" stroke="black" d="M543.07,-913.62C748.02,-903.39 1632.46,-859.26 1866.49,-847.58"/> +<polygon fill="black" stroke="black" points="1867,-851.06 1876.82,-847.07 1866.65,-844.07 1867,-851.06"/> </g> <!-- allegro&#45;&gt;SDL1 --> -<g id="edge122" class="edge"> +<g id="edge124" class="edge"> <title>allegro&#45;&gt;SDL1</title> -<path fill="none" stroke="black" d="M579.49,-900.06C602.72,-874.9 648.49,-825.34 675.85,-795.72"/> -<polygon fill="black" stroke="black" points="678.5,-798.01 682.71,-788.29 673.36,-793.26 678.5,-798.01"/> +<path fill="none" stroke="black" d="M522.06,-900.87C559.24,-875.26 635.49,-822.72 678.39,-793.16"/> +<polygon fill="black" stroke="black" points="680.51,-795.95 686.76,-787.4 676.54,-790.19 680.51,-795.95"/> </g> <!-- allegro&#45;&gt;SDL2 --> -<g id="edge123" class="edge"> +<g id="edge125" class="edge"> <title>allegro&#45;&gt;SDL2</title> -<path fill="none" stroke="black" d="M530.02,-914.96C498.05,-912.61 450.88,-904.89 418,-880.74 389.91,-860.11 371.71,-823.35 361.91,-798.28"/> -<polygon fill="black" stroke="black" points="365.1,-796.8 358.33,-788.65 358.54,-799.24 365.1,-796.8"/> +<path fill="none" stroke="black" d="M484.48,-899.85C478.89,-894.02 472.71,-887.25 467.48,-880.74 445.59,-853.46 423.45,-819.87 409.17,-797.25"/> +<polygon fill="black" stroke="black" points="412,-795.19 403.73,-788.57 406.07,-798.9 412,-795.19"/> </g> <!-- allegro&#45;&gt;OpenSL ES --> -<g id="edge121" class="edge"> +<g id="edge123" class="edge"> <title>allegro&#45;&gt;OpenSL ES</title> -<path fill="none" stroke="black" d="M530.81,-912.65C489.86,-907.58 420.58,-894.52 371,-861.74 331.39,-835.55 323.13,-825.43 293,-788.74 276.41,-768.54 261,-743.06 250.56,-724.37"/> -<polygon fill="black" stroke="black" points="253.59,-722.62 245.71,-715.54 247.45,-725.99 253.59,-722.62"/> +<path fill="none" stroke="black" d="M474.67,-902.12C437.65,-881.58 369.05,-839.62 324.48,-788.74 307.81,-769.71 294.54,-744.05 286.04,-725"/> +<polygon fill="black" stroke="black" points="289.21,-723.5 282.03,-715.71 282.78,-726.28 289.21,-723.5"/> </g> <!-- telepathy --> <g id="node39" class="node"> <title>telepathy</title> -<ellipse fill="lightgrey" stroke="black" cx="1075" cy="-464" rx="42.79" ry="18"/> -<text text-anchor="middle" x="1075" y="-460.3" font-family="Times,serif" font-size="14.00">telepathy</text> +<ellipse fill="lightgrey" stroke="black" cx="1149.48" cy="-464" rx="54.69" ry="18"/> +<text text-anchor="middle" x="1149.48" y="-460.3" font-family="Times,serif" font-size="14.00">telepathy</text> </g> <!-- telepathy&#45;&gt;phone modem --> -<g id="edge124" class="edge"> +<g id="edge126" class="edge"> <title>telepathy&#45;&gt;phone modem</title> -<path fill="none" stroke="black" d="M1113.74,-456.24C1174,-445.46 1293.94,-422.97 1404.45,-395.29"/> -<polygon fill="black" stroke="black" points="1405.59,-398.61 1414.42,-392.77 1403.87,-391.82 1405.59,-398.61"/> -<text text-anchor="middle" x="1327.5" y="-416.8" font-family="Times,serif" font-size="14.00" fill="red">?</text> +<path fill="none" stroke="black" d="M1180.2,-448.96C1209.72,-435.47 1254.74,-414.9 1288.71,-399.37"/> +<polygon fill="black" stroke="black" points="1290.34,-402.48 1297.98,-395.14 1287.43,-396.11 1290.34,-402.48"/> +<text text-anchor="middle" x="1257.48" y="-416.8" font-family="Times,serif" font-size="14.00" fill="red">?</text> </g> <!-- telepathy&#45;&gt;? --> -<g id="edge125" class="edge"> +<g id="edge127" class="edge"> <title>telepathy&#45;&gt;?</title> -<path fill="none" stroke="red" d="M1035.35,-456.88C921.71,-439.32 585.09,-387.02 306,-341 256.62,-332.86 241.74,-339.9 195,-322 193.78,-321.53 192.55,-321.01 191.33,-320.44"/> -<polygon fill="red" stroke="red" points="192.75,-317.22 182.3,-315.46 189.37,-323.35 192.75,-317.22"/> +<path fill="none" stroke="red" d="M1101.3,-455.43C921.91,-427.21 302,-329.38 282.48,-322 281.09,-321.47 279.69,-320.87 278.31,-320.21"/> +<polygon fill="red" stroke="red" points="279.93,-317.11 269.5,-315.3 276.53,-323.23 279.93,-317.11"/> </g> </g> </svg>