linux-audio-output.svg (56322B)
- <?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 5.0.1 (20220820.1526)
- -->
- <!-- Title: Linux Audio Output APIs (available code) Pages: 1 -->
- <svg width="2543pt" height="926pt"
- viewBox="0.00 0.00 2543.00 925.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 921.74)">
- <title>Linux Audio Output APIs (available code)</title>
- <polygon fill="white" stroke="none" points="-4,4 -4,-921.74 2539,-921.74 2539,4 -4,4"/>
- <text text-anchor="middle" x="1267.5" y="-37.8" font-family="Times,serif" font-size="14.00">Linux Audio Output APIs (available code)</text>
- <text text-anchor="middle" x="1267.5" y="-22.8" font-family="Times,serif" font-size="14.00"> CC-BY 4.0 © 2020-2021 Haelwenn (lanodan) Monnier</text>
- <text text-anchor="middle" x="1267.5" y="-7.8" font-family="Times,serif" font-size="14.00"> https://hacktivis.me/articles/linux-audio-output</text>
- <g id="clust1" class="cluster">
- <title>cluster_legend</title>
- <polygon fill="none" stroke="black" points="882,-834.74 882,-909.74 1145,-909.74 1145,-834.74 882,-834.74"/>
- <text text-anchor="middle" x="1013.5" y="-894.54" font-family="Times,serif" font-size="14.00">Legend</text>
- </g>
- <!-- server -->
- <g id="node1" class="node">
- <title>server</title>
- <polygon fill="orange" stroke="black" points="1137.35,-853.28 1137.35,-868.2 1116.64,-878.74 1087.36,-878.74 1066.65,-868.2 1066.65,-853.28 1087.36,-842.74 1116.64,-842.74 1137.35,-853.28"/>
- <text text-anchor="middle" x="1102" y="-857.04" font-family="Times,serif" font-size="14.00">server</text>
- </g>
- <!-- driver -->
- <g id="node2" class="node">
- <title>driver</title>
- <polygon fill="yellow" stroke="black" points="1048.55,-860.74 1030.27,-878.74 993.73,-878.74 975.45,-860.74 993.73,-842.74 1030.27,-842.74 1048.55,-860.74"/>
- <text text-anchor="middle" x="1012" y="-857.04" font-family="Times,serif" font-size="14.00">driver</text>
- </g>
- <!-- hardware -->
- <g id="node3" class="node">
- <title>hardware</title>
- <polygon fill="cyan" stroke="black" points="957.5,-878.74 890.5,-878.74 890.5,-842.74 957.5,-842.74 957.5,-878.74"/>
- <text text-anchor="middle" x="924" y="-857.04" font-family="Times,serif" font-size="14.00">hardware</text>
- </g>
- <!-- sound card -->
- <g id="node4" class="node">
- <title>sound card</title>
- <polygon fill="cyan" stroke="black" points="1485,-89 1409,-89 1409,-53 1485,-53 1485,-89"/>
- <text text-anchor="middle" x="1447" y="-67.3" font-family="Times,serif" font-size="14.00">sound card</text>
- </g>
- <!-- phone modem -->
- <g id="node5" class="node">
- <title>phone modem</title>
- <polygon fill="cyan" stroke="black" points="2403.5,-89 2308.5,-89 2308.5,-53 2403.5,-53 2403.5,-89"/>
- <text text-anchor="middle" x="2356" y="-67.3" font-family="Times,serif" font-size="14.00">phone modem</text>
- </g>
- <!-- bluetooth -->
- <g id="node6" class="node">
- <title>bluetooth</title>
- <polygon fill="cyan" stroke="black" points="1871,-89 1803,-89 1803,-53 1871,-53 1871,-89"/>
- <text text-anchor="middle" x="1837" y="-67.3" font-family="Times,serif" font-size="14.00">bluetooth</text>
- </g>
- <!-- portaudio -->
- <g id="node7" class="node">
- <title>portaudio</title>
- <g id="a_node7"><a xlink:href="https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/" xlink:title="portaudio">
- <ellipse fill="lightgrey" stroke="black" cx="1338" cy="-714.74" rx="44.39" ry="18"/>
- <text text-anchor="middle" x="1338" y="-711.04" font-family="Times,serif" font-size="14.00">portaudio</text>
- </a>
- </g>
- </g>
- <!-- ALSA -->
- <g id="node8" class="node">
- <title>ALSA</title>
- <g id="a_node8"><a xlink:href="https://alsa-project.org/wiki/Asoundrc#Plugins" xlink:title="ALSA">
- <polygon fill="yellow" stroke="black" points="1699.05,-632.87 1679.53,-650.87 1640.47,-650.87 1620.95,-632.87 1640.47,-614.87 1679.53,-614.87 1699.05,-632.87"/>
- <text text-anchor="middle" x="1660" y="-629.17" font-family="Times,serif" font-size="14.00">ALSA</text>
- </a>
- </g>
- </g>
- <!-- portaudio->ALSA -->
- <g id="edge1" class="edge">
- <title>portaudio->ALSA</title>
- <path fill="none" stroke="black" d="M1370.58,-702.47C1377.29,-700.38 1384.33,-698.36 1391,-696.74 1438.29,-685.28 1451.49,-689.29 1499,-678.74 1541.3,-669.35 1589.04,-655.64 1621.47,-645.86"/>
- <polygon fill="black" stroke="black" points="1622.89,-649.08 1631.44,-642.83 1620.85,-642.39 1622.89,-649.08"/>
- </g>
- <!-- JACK -->
- <g id="node9" class="node">
- <title>JACK</title>
- <g id="a_node9"><a xlink:href="https://jackaudio.org/" xlink:title="JACK">
- <polygon fill="orange" stroke="black" points="1940.35,-529.54 1940.35,-544.46 1919.64,-555 1890.36,-555 1869.65,-544.46 1869.65,-529.54 1890.36,-519 1919.64,-519 1940.35,-529.54"/>
- <text text-anchor="middle" x="1905" y="-533.3" font-family="Times,serif" font-size="14.00">JACK</text>
- </a>
- </g>
- </g>
- <!-- portaudio->JACK -->
- <g id="edge2" class="edge">
- <title>portaudio->JACK</title>
- <path fill="none" stroke="black" d="M1366.7,-700.84C1416.04,-679.02 1520.48,-634.45 1612,-606 1698.09,-579.24 1801.31,-557.65 1859.41,-546.42"/>
- <polygon fill="black" stroke="black" points="1860.21,-549.83 1869.37,-544.52 1858.89,-542.96 1860.21,-549.83"/>
- </g>
- <!-- OSS -->
- <g id="node10" class="node">
- <title>OSS</title>
- <polygon fill="yellow" stroke="black" points="1403.54,-464 1388.27,-482 1357.73,-482 1342.46,-464 1357.73,-446 1388.27,-446 1403.54,-464"/>
- <text text-anchor="middle" x="1373" y="-460.3" font-family="Times,serif" font-size="14.00">OSS</text>
- </g>
- <!-- portaudio->OSS -->
- <g id="edge3" class="edge">
- <title>portaudio->OSS</title>
- <path fill="none" stroke="black" d="M1336.89,-696.68C1335.01,-659.89 1333.21,-570.69 1354,-500 1354.87,-497.04 1356.01,-494.06 1357.31,-491.14"/>
- <polygon fill="black" stroke="black" points="1360.45,-492.68 1361.81,-482.17 1354.19,-489.54 1360.45,-492.68"/>
- </g>
- <!-- asihpi -->
- <g id="node11" class="node">
- <title>asihpi</title>
- <polygon fill="yellow" stroke="black" points="1431.55,-632.87 1413.27,-650.87 1376.73,-650.87 1358.45,-632.87 1376.73,-614.87 1413.27,-614.87 1431.55,-632.87"/>
- <text text-anchor="middle" x="1395" y="-629.17" font-family="Times,serif" font-size="14.00">asihpi</text>
- </g>
- <!-- portaudio->asihpi -->
- <g id="edge4" class="edge">
- <title>portaudio->asihpi</title>
- <path fill="none" stroke="black" d="M1349.81,-697.19C1357.65,-686.2 1368.1,-671.57 1376.97,-659.13"/>
- <polygon fill="black" stroke="black" points="1379.85,-661.12 1382.81,-650.95 1374.15,-657.06 1379.85,-661.12"/>
- </g>
- <!-- sndio -->
- <g id="node12" class="node">
- <title>sndio</title>
- <g id="a_node12"><a xlink:href="http://www.sndio.org/" xlink:title="sndio">
- <polygon fill="orange" stroke="black" points="1134.22,-223.54 1134.22,-238.46 1115.35,-249 1088.65,-249 1069.78,-238.46 1069.78,-223.54 1088.65,-213 1115.35,-213 1134.22,-223.54"/>
- <text text-anchor="middle" x="1102" y="-227.3" font-family="Times,serif" font-size="14.00">sndio</text>
- </a>
- </g>
- </g>
- <!-- portaudio->sndio -->
- <g id="edge6" class="edge">
- <title>portaudio->sndio</title>
- <path fill="none" stroke="black" d="M1331.19,-696.66C1320.46,-670 1298.69,-616.98 1278,-573 1221.83,-453.61 1147.24,-314.87 1116.34,-258.16"/>
- <polygon fill="black" stroke="black" points="1119.29,-256.26 1111.43,-249.16 1113.15,-259.62 1119.29,-256.26"/>
- </g>
- <!-- ALSA->sound card -->
- <g id="edge64" class="edge">
- <title>ALSA->sound card</title>
- <path fill="none" stroke="green" d="M1657.41,-614.78C1653.79,-592.45 1646.46,-552.25 1636,-519 1584.07,-353.91 1493.8,-165.98 1460.15,-98.14"/>
- <polygon fill="green" stroke="green" points="1463.19,-96.41 1455.6,-89.02 1456.93,-99.53 1463.19,-96.41"/>
- </g>
- <!-- ALSA->JACK -->
- <g id="edge66" class="edge">
- <title>ALSA->JACK</title>
- <path fill="none" stroke="black" d="M1698.13,-619.62C1723.72,-611.2 1758.09,-599.5 1788,-588 1815.78,-577.32 1846.73,-564.03 1869.82,-553.84"/>
- <polygon fill="black" stroke="black" points="1696.85,-616.36 1688.43,-622.79 1699.03,-623.01 1696.85,-616.36"/>
- <polygon fill="black" stroke="black" points="1871.48,-556.93 1879.2,-549.67 1868.64,-550.53 1871.48,-556.93"/>
- </g>
- <!-- PulseAudio -->
- <g id="node13" class="node">
- <title>PulseAudio</title>
- <g id="a_node13"><a xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/" xlink:title="PulseAudio">
- <polygon fill="orange" stroke="black" points="1893.06,-310.54 1893.06,-325.46 1860.22,-336 1813.78,-336 1780.94,-325.46 1780.94,-310.54 1813.78,-300 1860.22,-300 1893.06,-310.54"/>
- <text text-anchor="middle" x="1837" y="-314.3" font-family="Times,serif" font-size="14.00">PulseAudio</text>
- </a>
- </g>
- </g>
- <!-- ALSA->PulseAudio -->
- <g id="edge65" class="edge">
- <title>ALSA->PulseAudio</title>
- <path fill="none" stroke="black" d="M1685.69,-620.17C1701.7,-612.97 1721.68,-602.33 1736,-588 1803.89,-520.06 1821.73,-399.98 1830.33,-346.28"/>
- <polygon fill="black" stroke="black" points="1833.82,-346.6 1831.99,-336.17 1826.92,-345.47 1833.82,-346.6"/>
- </g>
- <!-- bluez -->
- <g id="node14" class="node">
- <title>bluez</title>
- <polygon fill="yellow" stroke="black" points="1874.55,-158 1855.77,-176 1818.23,-176 1799.45,-158 1818.23,-140 1855.77,-140 1874.55,-158"/>
- <text text-anchor="middle" x="1837" y="-154.3" font-family="Times,serif" font-size="14.00">BlueZ</text>
- </g>
- <!-- ALSA->bluez -->
- <g id="edge20" class="edge">
- <title>ALSA->bluez</title>
- <path fill="none" stroke="black" d="M1674.87,-614.82C1681.1,-607.03 1688.04,-597.45 1693,-588 1700.18,-574.31 1700.8,-570.12 1704,-555 1714.06,-507.51 1713.61,-494.47 1711,-446 1710.11,-429.48 1707.89,-425.52 1707,-409 1706.14,-393.02 1702.69,-388.41 1707,-373 1728.19,-297.3 1784.31,-221.77 1815.43,-183.94"/>
- <polygon fill="black" stroke="black" points="1818.32,-185.94 1822.04,-176.02 1812.95,-181.46 1818.32,-185.94"/>
- </g>
- <!-- PipeWire -->
- <g id="node17" class="node">
- <title>PipeWire</title>
- <g id="a_node17"><a xlink:href="http://pipewire.org/" xlink:title="PipeWire">
- <polygon fill="orange" stroke="black" points="2265.68,-223.54 2265.68,-238.46 2237.75,-249 2198.25,-249 2170.32,-238.46 2170.32,-223.54 2198.25,-213 2237.75,-213 2265.68,-223.54"/>
- <text text-anchor="middle" x="2218" y="-227.3" font-family="Times,serif" font-size="14.00">PipeWire</text>
- </a>
- </g>
- </g>
- <!-- ALSA->PipeWire -->
- <g id="edge15" class="edge">
- <title>ALSA->PipeWire</title>
- <path fill="none" stroke="black" d="M1670.3,-605.29C1675.65,-590.64 1681.89,-572.03 1686,-555 1714.04,-438.73 1666.88,-357.06 1772,-300 1837.95,-264.2 2055.05,-243.9 2160.08,-235.95"/>
- <polygon fill="black" stroke="black" points="1667,-604.14 1666.79,-614.73 1673.56,-606.58 1667,-604.14"/>
- <polygon fill="black" stroke="black" points="2160.48,-239.43 2170.19,-235.19 2159.96,-232.45 2160.48,-239.43"/>
- </g>
- <!-- aRts -->
- <g id="node21" class="node">
- <title>aRts</title>
- <ellipse fill="lightgrey" stroke="black" cx="730" cy="-318" rx="27" ry="18"/>
- <text text-anchor="middle" x="730" y="-314.3" font-family="Times,serif" font-size="14.00">aRts</text>
- </g>
- <!-- ALSA->aRts -->
- <g id="edge67" class="edge">
- <title>ALSA->aRts</title>
- <path fill="none" stroke="black" d="M1650.13,-614.46C1635.68,-590.29 1606.68,-546.45 1572,-519 1541.51,-494.87 1449.99,-457.98 1413,-446 1289.24,-405.93 889.1,-343.22 766.23,-324.47"/>
- <polygon fill="black" stroke="black" points="766.62,-320.99 756.2,-322.94 765.56,-327.91 766.62,-320.99"/>
- </g>
- <!-- JACK->OSS -->
- <g id="edge108" class="edge">
- <title>JACK->OSS</title>
- <path fill="none" stroke="black" d="M1869.37,-532.59C1811.35,-526.91 1692.89,-514.77 1593,-501 1528.01,-492.04 1452.62,-479.16 1409.1,-471.48"/>
- <polygon fill="black" stroke="black" points="1409.47,-467.99 1399.01,-469.69 1408.25,-474.89 1409.47,-467.99"/>
- </g>
- <!-- JACK->PipeWire -->
- <g id="edge16" class="edge">
- <title>JACK->PipeWire</title>
- <path fill="none" stroke="black" d="M1950.61,-527.96C2020.11,-513.86 2154.04,-479.24 2245,-409 2268.52,-390.84 2290.2,-382.83 2283,-354 2274.03,-318.08 2252.26,-281.14 2236.38,-257.46"/>
- <polygon fill="black" stroke="black" points="1949.56,-524.6 1940.43,-529.97 1950.92,-531.47 1949.56,-524.6"/>
- <polygon fill="black" stroke="black" points="2239.16,-255.33 2230.62,-249.06 2233.39,-259.29 2239.16,-255.33"/>
- </g>
- <!-- OSS->sound card -->
- <g id="edge69" class="edge">
- <title>OSS->sound card</title>
- <path fill="none" stroke="green" d="M1350.93,-453.92C1293.12,-428.69 1144.66,-353.88 1188,-267 1232.09,-178.61 1337.44,-119.77 1399.35,-91.5"/>
- <polygon fill="green" stroke="green" points="1400.83,-94.67 1408.52,-87.39 1397.97,-88.29 1400.83,-94.67"/>
- <text text-anchor="middle" x="1298" y="-270.8" font-family="Times,serif" font-size="14.00" fill="green">third-party drivers from opensound.com</text>
- </g>
- <!-- OSS->ALSA -->
- <g id="edge68" class="edge">
- <title>OSS->ALSA</title>
- <path fill="none" stroke="black" d="M1397.01,-471.97C1414.78,-477.81 1439.08,-487.23 1458,-500 1503.33,-530.6 1498.23,-558.07 1544,-588 1567.33,-603.26 1596.74,-614.31 1620.11,-621.5"/>
- <polygon fill="black" stroke="black" points="1619.14,-624.86 1629.72,-624.35 1621.13,-618.15 1619.14,-624.86"/>
- </g>
- <!-- RoarAudio -->
- <g id="node24" class="node">
- <title>RoarAudio</title>
- <g id="a_node24"><a xlink:href="http://roaraudio.keep-cool.org/" xlink:title="RoarAudio">
- <ellipse fill="lightgrey" stroke="black" cx="986" cy="-391" rx="50.09" ry="18"/>
- <text text-anchor="middle" x="986" y="-387.3" font-family="Times,serif" font-size="14.00">RoarAudio</text>
- </a>
- </g>
- </g>
- <!-- OSS->RoarAudio -->
- <g id="edge34" class="edge">
- <title>OSS->RoarAudio</title>
- <path fill="none" stroke="black" d="M1347.01,-458.23C1284.31,-446.73 1123.73,-417.27 1039.46,-401.81"/>
- <polygon fill="black" stroke="black" points="1040.04,-398.36 1029.57,-399.99 1038.78,-405.24 1040.04,-398.36"/>
- </g>
- <!-- asihpi->sound card -->
- <g id="edge5" class="edge">
- <title>asihpi->sound card</title>
- <path fill="none" stroke="green" d="M1400,-614.73C1410.53,-577.63 1434.7,-486.93 1443,-409 1444.69,-393.09 1445.95,-388.73 1443,-373 1440.63,-360.35 1422,-331.88 1422,-319 1422,-319 1422,-319 1422,-157 1422,-136.87 1428.53,-115.12 1434.92,-98.65"/>
- <polygon fill="green" stroke="green" points="1438.26,-99.73 1438.81,-89.15 1431.78,-97.07 1438.26,-99.73"/>
- </g>
- <!-- sndio->ALSA -->
- <g id="edge45" class="edge">
- <title>sndio->ALSA</title>
- <path fill="none" stroke="black" d="M1144.47,-231.73C1214.05,-232.19 1348.08,-237.05 1383,-267 1413.86,-293.47 1389.16,-318.97 1408,-355 1461.27,-456.87 1491.99,-472.46 1572,-555 1590.86,-574.45 1613.99,-594.53 1631.8,-609.28"/>
- <polygon fill="black" stroke="black" points="1144.3,-228.23 1134.29,-231.7 1144.28,-235.23 1144.3,-228.23"/>
- <polygon fill="black" stroke="black" points="1629.63,-612.03 1639.58,-615.67 1634.07,-606.62 1629.63,-612.03"/>
- </g>
- <!-- PulseAudio->sound card -->
- <g id="edge8" class="edge">
- <title>PulseAudio->sound card</title>
- <path fill="none" stroke="green" d="M1811.11,-300.74C1743.29,-258.13 1560.35,-143.21 1482.67,-94.41"/>
- <polygon fill="green" stroke="green" points="1484.5,-91.42 1474.17,-89.07 1480.78,-97.35 1484.5,-91.42"/>
- </g>
- <!-- PulseAudio->ALSA -->
- <g id="edge7" class="edge">
- <title>PulseAudio->ALSA</title>
- <path fill="none" stroke="black" d="M1840.34,-336.17C1841.95,-383.18 1826.57,-515.38 1754,-588 1739.11,-602.9 1718.1,-613.81 1699.59,-621.02"/>
- <polygon fill="black" stroke="black" points="1698.39,-617.74 1690.19,-624.46 1700.79,-624.31 1698.39,-617.74"/>
- </g>
- <!-- PulseAudio->JACK -->
- <g id="edge10" class="edge">
- <title>PulseAudio->JACK</title>
- <path fill="none" stroke="black" d="M1873.19,-332.03C1882.88,-337.32 1892.25,-344.49 1898,-354 1927.05,-402.01 1919.19,-470.93 1911.63,-508.69"/>
- <polygon fill="black" stroke="black" points="1908.11,-508.4 1909.43,-518.91 1914.96,-509.87 1908.11,-508.4"/>
- </g>
- <!-- PulseAudio->OSS -->
- <g id="edge9" class="edge">
- <title>PulseAudio->OSS</title>
- <path fill="none" stroke="black" d="M1770.73,-326.79C1731.13,-332.37 1680.12,-341.19 1636,-354 1548.74,-379.34 1451.18,-424.5 1403.11,-447.94"/>
- <polygon fill="black" stroke="black" points="1771.36,-330.24 1780.79,-325.41 1770.41,-323.3 1771.36,-330.24"/>
- <polygon fill="black" stroke="black" points="1401.34,-444.91 1393.9,-452.46 1404.42,-451.2 1401.34,-444.91"/>
- </g>
- <!-- PulseAudio->sndio -->
- <g id="edge46" class="edge">
- <title>PulseAudio->sndio</title>
- <path fill="none" stroke="black" d="M1781.19,-310.38C1699.8,-300.73 1543.79,-282.31 1411,-267 1315.88,-256.03 1204.25,-243.46 1144.64,-236.77"/>
- <polygon fill="black" stroke="black" points="1144.81,-233.27 1134.48,-235.64 1144.03,-240.23 1144.81,-233.27"/>
- </g>
- <!-- PulseAudio->bluez -->
- <g id="edge11" class="edge">
- <title>PulseAudio->bluez</title>
- <path fill="none" stroke="black" d="M1837,-299.79C1837,-272.48 1837,-218.99 1837,-186.38"/>
- <polygon fill="black" stroke="black" points="1840.5,-186.19 1837,-176.19 1833.5,-186.19 1840.5,-186.19"/>
- </g>
- <!-- ofono -->
- <g id="node15" class="node">
- <title>ofono</title>
- <polygon fill="yellow" stroke="black" points="2356.05,-231 2338.02,-249 2301.98,-249 2283.95,-231 2301.98,-213 2338.02,-213 2356.05,-231"/>
- <text text-anchor="middle" x="2320" y="-227.3" font-family="Times,serif" font-size="14.00">ofono</text>
- </g>
- <!-- PulseAudio->ofono -->
- <g id="edge12" class="edge">
- <title>PulseAudio->ofono</title>
- <path fill="none" stroke="black" d="M1893.07,-312.05C1977.13,-303.79 2140.31,-284.49 2275,-249 2278.41,-248.1 2281.93,-247.03 2285.42,-245.88"/>
- <polygon fill="black" stroke="black" points="2286.81,-249.1 2295.07,-242.47 2284.48,-242.5 2286.81,-249.1"/>
- </g>
- <!-- PulseAudio->PipeWire -->
- <g id="edge14" class="edge">
- <title>PulseAudio->PipeWire</title>
- <path fill="none" stroke="black" d="M1892.24,-304.68C1965.99,-288.22 2095.61,-259.31 2167.09,-243.36"/>
- <polygon fill="black" stroke="black" points="1891.2,-301.32 1882.2,-306.92 1892.72,-308.15 1891.2,-301.32"/>
- <polygon fill="black" stroke="black" points="2168.2,-246.7 2177.2,-241.1 2166.68,-239.86 2168.2,-246.7"/>
- </g>
- <!-- bluez->bluetooth -->
- <g id="edge21" class="edge">
- <title>bluez->bluetooth</title>
- <path fill="none" stroke="green" d="M1837,-139.8C1837,-128.16 1837,-112.55 1837,-99.24"/>
- <polygon fill="green" stroke="green" points="1840.5,-99.18 1837,-89.18 1833.5,-99.18 1840.5,-99.18"/>
- </g>
- <!-- ofono->phone modem -->
- <g id="edge19" class="edge">
- <title>ofono->phone modem</title>
- <path fill="none" stroke="green" d="M2323.45,-212.7C2327.12,-194.55 2333.19,-165.21 2339,-140 2342.14,-126.38 2345.88,-111.3 2349.06,-98.8"/>
- <polygon fill="green" stroke="green" points="2352.48,-99.56 2351.56,-89 2345.69,-97.83 2352.48,-99.56"/>
- </g>
- <!-- X11 bell -->
- <g id="node16" class="node">
- <title>X11 bell</title>
- <ellipse fill="lightgrey" stroke="black" cx="1758" cy="-391" rx="41.69" ry="18"/>
- <text text-anchor="middle" x="1758" y="-387.3" font-family="Times,serif" font-size="14.00">X11 bell</text>
- </g>
- <!-- X11 bell->PulseAudio -->
- <g id="edge13" class="edge">
- <title>X11 bell->PulseAudio</title>
- <path fill="none" stroke="black" d="M1775.14,-374.59C1785.39,-365.38 1798.64,-353.48 1810.24,-343.05"/>
- <polygon fill="black" stroke="black" points="1812.86,-345.41 1817.95,-336.12 1808.18,-340.2 1812.86,-345.41"/>
- </g>
- <!-- PipeWire->bluez -->
- <g id="edge17" class="edge">
- <title>PipeWire->bluez</title>
- <path fill="none" stroke="black" d="M2174.29,-221.86C2099.96,-208 1949.97,-180.05 1877.72,-166.59"/>
- <polygon fill="black" stroke="black" points="1878.11,-163.1 1867.64,-164.71 1876.83,-169.98 1878.11,-163.1"/>
- </g>
- <!-- gstreamer -->
- <g id="node18" class="node">
- <title>gstreamer</title>
- <ellipse fill="lightgrey" stroke="black" cx="2264" cy="-714.74" rx="46.29" ry="18"/>
- <text text-anchor="middle" x="2264" y="-711.04" font-family="Times,serif" font-size="14.00">gstreamer</text>
- </g>
- <!-- gstreamer->ALSA -->
- <g id="edge85" class="edge">
- <title>gstreamer->ALSA</title>
- <path fill="none" stroke="black" d="M2221.05,-708.06C2110.21,-693.4 1815.48,-654.43 1703.76,-639.66"/>
- <polygon fill="black" stroke="black" points="1703.91,-636.15 1693.53,-638.3 1702.99,-643.09 1703.91,-636.15"/>
- </g>
- <!-- gstreamer->JACK -->
- <g id="edge87" class="edge">
- <title>gstreamer->JACK</title>
- <path fill="none" stroke="black" d="M2223.56,-705.96C2189.46,-698.09 2140.39,-683.63 2103,-659.74 2058.29,-631.18 2066.14,-600.88 2021,-573 1999.5,-559.72 1972.65,-551.2 1950.19,-545.89"/>
- <polygon fill="black" stroke="black" points="1950.73,-542.43 1940.21,-543.68 1949.22,-549.26 1950.73,-542.43"/>
- </g>
- <!-- gstreamer->OSS -->
- <g id="edge86" class="edge">
- <title>gstreamer->OSS</title>
- <path fill="none" stroke="black" d="M2250.72,-697.27C2217.46,-657.47 2125.82,-556.57 2023,-519 1909.84,-477.65 1535.68,-467.73 1412.62,-465.56"/>
- <polygon fill="black" stroke="black" points="1412.57,-462.06 1402.51,-465.39 1412.45,-469.06 1412.57,-462.06"/>
- </g>
- <!-- gstreamer->sndio -->
- <g id="edge47" class="edge">
- <title>gstreamer->sndio</title>
- <path fill="none" stroke="black" d="M2298.07,-702.36C2344.24,-684.53 2421,-645.29 2421,-581.5 2421,-581.5 2421,-581.5 2421,-427 2421,-294.77 1370.18,-243.24 1144.4,-233.69"/>
- <polygon fill="black" stroke="black" points="1144.41,-230.19 1134.28,-233.27 1144.12,-237.18 1144.41,-230.19"/>
- </g>
- <!-- gstreamer->PulseAudio -->
- <g id="edge88" class="edge">
- <title>gstreamer->PulseAudio</title>
- <path fill="none" stroke="black" d="M2263.94,-696.34C2263.3,-630.97 2257.47,-401.4 2207,-354 2185.37,-333.69 2003.82,-324.5 1903.31,-320.93"/>
- <polygon fill="black" stroke="black" points="1903.37,-317.43 1893.26,-320.58 1903.13,-324.43 1903.37,-317.43"/>
- </g>
- <!-- gstreamer->PipeWire -->
- <g id="edge18" class="edge">
- <title>gstreamer->PipeWire</title>
- <path fill="none" stroke="black" d="M2298.88,-702.86C2348.74,-687.3 2434.48,-660.45 2435,-659.74 2510.33,-556.95 2454.41,-498.95 2435,-373 2433.65,-364.25 2434.54,-360.91 2429,-354 2385.39,-299.66 2310.59,-264.75 2262.77,-246.76"/>
- <polygon fill="black" stroke="black" points="2263.88,-243.44 2253.28,-243.28 2261.47,-250.01 2263.88,-243.44"/>
- </g>
- <!-- sox -->
- <g id="node19" class="node">
- <title>sox</title>
- <g id="a_node19"><a xlink:href="http://sox.sourceforge.net/Docs/Features" xlink:title="sox">
- <ellipse fill="lightgrey" stroke="black" cx="1076" cy="-787.74" rx="27" ry="18"/>
- <text text-anchor="middle" x="1076" y="-784.04" font-family="Times,serif" font-size="14.00">sox</text>
- </a>
- </g>
- </g>
- <!-- sox->ALSA -->
- <g id="edge24" class="edge">
- <title>sox->ALSA</title>
- <path fill="none" stroke="black" d="M1102.85,-785.42C1204.3,-780.22 1560.69,-760.15 1603,-732.74 1628.49,-716.22 1643.89,-684.03 1652.15,-660.86"/>
- <polygon fill="black" stroke="black" points="1655.51,-661.84 1655.35,-651.25 1648.87,-659.63 1655.51,-661.84"/>
- </g>
- <!-- sox->sndio -->
- <g id="edge25" class="edge">
- <title>sox->sndio</title>
- <path fill="none" stroke="black" d="M1066.89,-770.45C1028.33,-701.16 879.6,-430.26 858,-336 854.43,-320.4 848.32,-312.74 858,-300 882.31,-267.99 996.34,-247.02 1059.55,-237.64"/>
- <polygon fill="black" stroke="black" points="1060.21,-241.09 1069.6,-236.19 1059.21,-234.16 1060.21,-241.09"/>
- </g>
- <!-- sox->PulseAudio -->
- <g id="edge23" class="edge">
- <title>sox->PulseAudio</title>
- <path fill="none" stroke="black" d="M1078.66,-759.4C1084.96,-707.47 1104.89,-593.17 1163,-519 1172.5,-506.87 1178.43,-507.3 1192,-500 1207.72,-491.55 1469.85,-377.93 1487,-373 1583.59,-345.25 1699.53,-330.92 1770.73,-324.19"/>
- <polygon fill="black" stroke="black" points="1075.17,-759.16 1077.52,-769.49 1082.12,-759.95 1075.17,-759.16"/>
- <polygon fill="black" stroke="black" points="1771.26,-327.65 1780.9,-323.25 1770.62,-320.68 1771.26,-327.65"/>
- </g>
- <!-- libao -->
- <g id="node20" class="node">
- <title>libao</title>
- <g id="a_node20"><a xlink:href="https://www.xiph.org/ao/" xlink:title="libao">
- <ellipse fill="lightgrey" stroke="black" cx="988" cy="-714.74" rx="28.7" ry="18"/>
- <text text-anchor="middle" x="988" y="-711.04" font-family="Times,serif" font-size="14.00">libao</text>
- </a>
- </g>
- </g>
- <!-- sox->libao -->
- <g id="edge22" class="edge">
- <title>sox->libao</title>
- <path fill="none" stroke="black" d="M1059.45,-773.39C1046.34,-762.81 1027.82,-747.87 1012.93,-735.85"/>
- <polygon fill="black" stroke="black" points="1015.06,-733.07 1005.08,-729.52 1010.66,-738.52 1015.06,-733.07"/>
- </g>
- <!-- libao->ALSA -->
- <g id="edge27" class="edge">
- <title>libao->ALSA</title>
- <path fill="none" stroke="black" d="M1016.02,-710.41C1120.52,-697.99 1488.03,-654.31 1615.82,-639.12"/>
- <polygon fill="black" stroke="black" points="1616.5,-642.57 1626.01,-637.91 1615.67,-635.61 1616.5,-642.57"/>
- </g>
- <!-- libao->OSS -->
- <g id="edge26" class="edge">
- <title>libao->OSS</title>
- <path fill="none" stroke="black" d="M1010.05,-703.14C1029.14,-693.37 1056.91,-677.7 1078,-659.74 1111.92,-630.86 1120.63,-623.14 1148,-588 1176.2,-551.8 1164.42,-526.33 1202,-500 1240.4,-473.1 1294.85,-465.93 1331.92,-464.47"/>
- <polygon fill="black" stroke="black" points="1332.45,-467.95 1342.36,-464.19 1332.27,-460.96 1332.45,-467.95"/>
- </g>
- <!-- libao->sndio -->
- <g id="edge33" class="edge">
- <title>libao->sndio</title>
- <path fill="none" stroke="black" d="M964.97,-703.61C941.72,-693.21 904.91,-676.24 874,-659.74 866.41,-655.69 608,-509.6 608,-501 608,-501 608,-501 608,-317 608,-271.38 939.38,-243.47 1059.32,-234.86"/>
- <polygon fill="black" stroke="black" points="1059.86,-238.33 1069.59,-234.14 1059.37,-231.35 1059.86,-238.33"/>
- </g>
- <!-- libao->PulseAudio -->
- <g id="edge29" class="edge">
- <title>libao->PulseAudio</title>
- <path fill="none" stroke="black" d="M994.8,-697C1013.2,-652.28 1064.55,-531.3 1094,-500 1110.51,-482.45 1165.79,-455.32 1188,-446 1244.18,-422.42 1261.37,-425.59 1320,-409 1376.04,-393.14 1389.2,-385.89 1446,-373 1495.24,-361.83 1508.05,-361.37 1558,-354 1630.52,-343.31 1713.95,-333.12 1770.55,-326.52"/>
- <polygon fill="black" stroke="black" points="1771.26,-329.96 1780.79,-325.33 1770.46,-323 1771.26,-329.96"/>
- </g>
- <!-- libao->aRts -->
- <g id="edge28" class="edge">
- <title>libao->aRts</title>
- <path fill="none" stroke="black" d="M968.41,-701.55C953.55,-691.61 933.32,-676.52 919,-659.74 830.78,-556.39 764.63,-405.43 740.24,-345.21"/>
- <polygon fill="black" stroke="black" points="743.4,-343.68 736.43,-335.7 736.9,-346.29 743.4,-343.68"/>
- </g>
- <!-- ESD -->
- <g id="node22" class="node">
- <title>ESD</title>
- <polygon fill="orange" stroke="black" points="926.59,-310.54 926.59,-325.46 909.26,-336 884.74,-336 867.41,-325.46 867.41,-310.54 884.74,-300 909.26,-300 926.59,-310.54"/>
- <text text-anchor="middle" x="897" y="-314.3" font-family="Times,serif" font-size="14.00">ESD</text>
- </g>
- <!-- libao->ESD -->
- <g id="edge30" class="edge">
- <title>libao->ESD</title>
- <path fill="none" stroke="black" d="M976.85,-697.92C953.62,-663.88 900.67,-580.33 882,-501 869.28,-446.93 880.99,-381.62 889.66,-345.79"/>
- <polygon fill="black" stroke="black" points="893.06,-346.63 892.11,-336.07 886.27,-344.91 893.06,-346.63"/>
- </g>
- <!-- NAS -->
- <g id="node23" class="node">
- <title>NAS</title>
- <g id="a_node23"><a xlink:href="http://radscan.com/nas.html" xlink:title="Network Audio System/Server">
- <polygon fill="orange" stroke="black" points="770.39,-625.41 770.39,-640.33 694.59,-650.87 587.41,-650.87 511.61,-640.33 511.61,-625.41 587.41,-614.87 694.59,-614.87 770.39,-625.41"/>
- <text text-anchor="middle" x="641" y="-629.17" font-family="Times,serif" font-size="14.00">Network Audio System/Server</text>
- </a>
- </g>
- </g>
- <!-- libao->NAS -->
- <g id="edge31" class="edge">
- <title>libao->NAS</title>
- <path fill="none" stroke="black" d="M961.63,-707.67C910.25,-695.84 794.96,-669.31 717.56,-651.49"/>
- <polygon fill="black" stroke="black" points="717.91,-647.98 707.38,-649.15 716.34,-654.8 717.91,-647.98"/>
- </g>
- <!-- libao->RoarAudio -->
- <g id="edge32" class="edge">
- <title>libao->RoarAudio</title>
- <path fill="none" stroke="black" d="M988,-696.6C988,-680.43 988,-655.5 988,-633.87 988,-633.87 988,-633.87 988,-463 988,-448.65 987.59,-432.67 987.14,-419.51"/>
- <polygon fill="black" stroke="black" points="990.62,-419.08 986.76,-409.21 983.63,-419.33 990.62,-419.08"/>
- </g>
- <!-- ESD->ALSA -->
- <g id="edge40" class="edge">
- <title>ESD->ALSA</title>
- <path fill="none" stroke="black" d="M926.79,-320.1C1018.62,-324.52 1303.64,-345.96 1512,-446 1560.96,-469.51 1576.11,-476.56 1610,-519 1630.71,-544.94 1644.66,-580.8 1652.45,-605.09"/>
- <polygon fill="black" stroke="black" points="1649.13,-606.2 1655.42,-614.73 1655.82,-604.14 1649.13,-606.2"/>
- </g>
- <!-- ESD->OSS -->
- <g id="edge39" class="edge">
- <title>ESD->OSS</title>
- <path fill="none" stroke="black" d="M923.88,-327.13C1005.38,-351.79 1249.6,-425.67 1339.39,-452.83"/>
- <polygon fill="black" stroke="black" points="1338.48,-456.21 1349.07,-455.76 1340.51,-449.51 1338.48,-456.21"/>
- </g>
- <!-- RoarAudio->sndio -->
- <g id="edge35" class="edge">
- <title>RoarAudio->sndio</title>
- <path fill="none" stroke="black" d="M998.19,-373.39C1018.49,-345.75 1059.31,-290.14 1083.27,-257.51"/>
- <polygon fill="black" stroke="black" points="1086.17,-259.48 1089.27,-249.34 1080.53,-255.33 1086.17,-259.48"/>
- </g>
- <!-- RoarAudio->PulseAudio -->
- <g id="edge36" class="edge">
- <title>RoarAudio->PulseAudio</title>
- <path fill="none" stroke="black" d="M1023.3,-378.81C1032,-376.56 1041.27,-374.45 1050,-373 1314.35,-329.23 1634.33,-320.82 1770.49,-319.29"/>
- <polygon fill="black" stroke="black" points="1770.79,-322.79 1780.75,-319.19 1770.72,-315.79 1770.79,-322.79"/>
- </g>
- <!-- RoarAudio->aRts -->
- <g id="edge38" class="edge">
- <title>RoarAudio->aRts</title>
- <path fill="none" stroke="black" d="M947.67,-379.37C898.03,-365.6 812.23,-341.81 764.53,-328.58"/>
- <polygon fill="black" stroke="black" points="765.24,-325.14 754.67,-325.84 763.37,-331.89 765.24,-325.14"/>
- </g>
- <!-- RoarAudio->ESD -->
- <g id="edge37" class="edge">
- <title>RoarAudio->ESD</title>
- <path fill="none" stroke="black" d="M966.25,-374.24C953.44,-364.03 936.62,-350.61 922.77,-339.56"/>
- <polygon fill="black" stroke="black" points="924.59,-336.53 914.59,-333.03 920.22,-342 924.59,-336.53"/>
- </g>
- <!-- libcanberra -->
- <g id="node25" class="node">
- <title>libcanberra</title>
- <g id="a_node25"><a xlink:href="http://git.0pointer.net/libcanberra.git/tree/src/driver-order.c" xlink:title="libcanberra">
- <ellipse fill="lightgrey" stroke="black" cx="2124" cy="-787.74" rx="50.09" ry="18"/>
- <text text-anchor="middle" x="2124" y="-784.04" font-family="Times,serif" font-size="14.00">libcanberra</text>
- </a>
- </g>
- </g>
- <!-- libcanberra->ALSA -->
- <g id="edge43" class="edge">
- <title>libcanberra->ALSA</title>
- <path fill="none" stroke="black" d="M2083.7,-776.95C2045.81,-767.28 1987.79,-751.28 1939,-732.74 1904.06,-719.46 1897.83,-710.3 1863,-696.74 1807.26,-675.03 1740.7,-655.6 1699.38,-644.27"/>
- <polygon fill="black" stroke="black" points="1700.26,-640.89 1689.7,-641.64 1698.43,-647.64 1700.26,-640.89"/>
- </g>
- <!-- libcanberra->OSS -->
- <g id="edge42" class="edge">
- <title>libcanberra->OSS</title>
- <path fill="none" stroke="black" d="M2119.76,-769.61C2109.74,-731.52 2081.88,-638.06 2035,-573 2013.64,-543.35 2006.61,-533.34 1973,-519 1871.55,-475.73 1529.99,-467.1 1412.83,-465.41"/>
- <polygon fill="black" stroke="black" points="1412.58,-461.9 1402.53,-465.27 1412.48,-468.9 1412.58,-461.9"/>
- </g>
- <!-- libcanberra->PulseAudio -->
- <g id="edge41" class="edge">
- <title>libcanberra->PulseAudio</title>
- <path fill="none" stroke="black" d="M2133.74,-770.08C2152.76,-735.93 2193,-654.99 2193,-581.5 2193,-581.5 2193,-581.5 2193,-390 2193,-331.6 2006.42,-320.55 1903.41,-318.89"/>
- <polygon fill="black" stroke="black" points="1903.46,-315.39 1893.41,-318.76 1903.36,-322.39 1903.46,-315.39"/>
- </g>
- <!-- libcanberra->gstreamer -->
- <g id="edge44" class="edge">
- <title>libcanberra->gstreamer</title>
- <path fill="none" stroke="black" d="M2155.97,-773.86C2170.79,-767.61 2188.51,-759.74 2204,-751.74 2213.39,-746.89 2223.33,-741.18 2232.36,-735.76"/>
- <polygon fill="black" stroke="black" points="2234.32,-738.66 2241.03,-730.47 2230.67,-732.69 2234.32,-738.66"/>
- </g>
- <!-- OpenAL -->
- <g id="node26" class="node">
- <title>OpenAL</title>
- <g id="a_node26"><a xlink:href="https://www.openal-soft.org/" xlink:title="OpenAL">
- <ellipse fill="lightgrey" stroke="black" cx="1517" cy="-787.74" rx="41.69" ry="18"/>
- <text text-anchor="middle" x="1517" y="-784.04" font-family="Times,serif" font-size="14.00">OpenAL</text>
- </a>
- </g>
- </g>
- <!-- OpenAL->portaudio -->
- <g id="edge52" class="edge">
- <title>OpenAL->portaudio</title>
- <path fill="none" stroke="black" d="M1487.44,-775.02C1457.53,-763.15 1411.08,-744.73 1377.91,-731.57"/>
- <polygon fill="black" stroke="black" points="1379.09,-728.27 1368.5,-727.84 1376.51,-734.78 1379.09,-728.27"/>
- </g>
- <!-- OpenAL->ALSA -->
- <g id="edge49" class="edge">
- <title>OpenAL->ALSA</title>
- <path fill="none" stroke="black" d="M1558.16,-785.06C1584.08,-781.78 1616.26,-773.23 1636,-751.74 1658.47,-727.27 1662.28,-687.7 1661.95,-661.24"/>
- <polygon fill="black" stroke="black" points="1665.44,-661 1661.61,-651.12 1658.44,-661.23 1665.44,-661"/>
- </g>
- <!-- OpenAL->JACK -->
- <g id="edge53" class="edge">
- <title>OpenAL->JACK</title>
- <path fill="none" stroke="black" d="M1558.6,-785.95C1640.79,-783.51 1819.78,-773.54 1863,-732.74 1909.27,-689.06 1910.73,-607.58 1907.88,-565.19"/>
- <polygon fill="black" stroke="black" points="1911.36,-564.75 1907.07,-555.06 1904.38,-565.31 1911.36,-564.75"/>
- </g>
- <!-- OpenAL->OSS -->
- <g id="edge50" class="edge">
- <title>OpenAL->OSS</title>
- <path fill="none" stroke="black" d="M1476.75,-782.97C1417.17,-776.49 1309.85,-761.14 1285,-732.74 1238.2,-679.26 1252.92,-639.49 1278,-573 1291.72,-536.63 1323.87,-504.56 1346.97,-485.01"/>
- <polygon fill="black" stroke="black" points="1349.23,-487.69 1354.72,-478.63 1344.78,-482.29 1349.23,-487.69"/>
- </g>
- <!-- OpenAL->sndio -->
- <g id="edge54" class="edge">
- <title>OpenAL->sndio</title>
- <path fill="none" stroke="black" d="M1476.92,-782.54C1413.12,-775.17 1292.19,-758.25 1258,-732.74 1156.03,-656.67 1129.25,-622.01 1090,-501 1079.86,-469.72 1102,-460.88 1102,-428 1102,-428 1102,-428 1102,-317 1102,-297.75 1102,-276.05 1102,-259.4"/>
- <polygon fill="black" stroke="black" points="1105.5,-259.26 1102,-249.26 1098.5,-259.26 1105.5,-259.26"/>
- </g>
- <!-- OpenAL->PulseAudio -->
- <g id="edge48" class="edge">
- <title>OpenAL->PulseAudio</title>
- <path fill="none" stroke="black" d="M1558.67,-787.07C1667.84,-787.23 1959.24,-782.83 2039,-732.74 2070.15,-713.18 2143,-544.82 2143,-538 2143,-538 2143,-538 2143,-390 2143,-341.16 1993.23,-325.91 1903.25,-321.15"/>
- <polygon fill="black" stroke="black" points="1903.29,-317.65 1893.13,-320.65 1902.94,-324.64 1903.29,-317.65"/>
- </g>
- <!-- SoundIO -->
- <g id="node27" class="node">
- <title>SoundIO</title>
- <g id="a_node27"><a xlink:href="http://libsound.io/" xlink:title="SoundIO">
- <ellipse fill="lightgrey" stroke="black" cx="1730" cy="-714.74" rx="42.49" ry="18"/>
- <text text-anchor="middle" x="1730" y="-711.04" font-family="Times,serif" font-size="14.00">SoundIO</text>
- </a>
- </g>
- </g>
- <!-- OpenAL->SoundIO -->
- <g id="edge51" class="edge">
- <title>OpenAL->SoundIO</title>
- <path fill="none" stroke="black" d="M1556.56,-781.86C1589.03,-776.93 1635.73,-767.71 1674,-751.74 1683.58,-747.74 1693.33,-742.12 1701.95,-736.5"/>
- <polygon fill="black" stroke="black" points="1704.16,-739.23 1710.47,-730.72 1700.23,-733.44 1704.16,-739.23"/>
- </g>
- <!-- SoundIO->ALSA -->
- <g id="edge57" class="edge">
- <title>SoundIO->ALSA</title>
- <path fill="none" stroke="black" d="M1715.83,-697.58C1706.04,-686.4 1692.83,-671.33 1681.71,-658.64"/>
- <polygon fill="black" stroke="black" points="1684.34,-656.33 1675.11,-651.11 1679.07,-660.94 1684.34,-656.33"/>
- </g>
- <!-- SoundIO->JACK -->
- <g id="edge55" class="edge">
- <title>SoundIO->JACK</title>
- <path fill="none" stroke="black" d="M1755.99,-700.34C1766.21,-694.44 1777.69,-686.97 1787,-678.74 1817.97,-651.35 1818.42,-637.68 1845,-606 1857.32,-591.32 1871.49,-575.22 1882.96,-562.38"/>
- <polygon fill="black" stroke="black" points="1885.65,-564.62 1889.72,-554.84 1880.44,-559.95 1885.65,-564.62"/>
- </g>
- <!-- SoundIO->PulseAudio -->
- <g id="edge56" class="edge">
- <title>SoundIO->PulseAudio</title>
- <path fill="none" stroke="black" d="M1739.41,-697.17C1760.16,-659.92 1810.14,-566.23 1837,-482 1847.09,-450.36 1847.9,-441.82 1853,-409 1856.77,-384.75 1864.55,-377.65 1858,-354 1857.18,-351.02 1856.02,-348.04 1854.68,-345.15"/>
- <polygon fill="black" stroke="black" points="1857.73,-343.44 1849.89,-336.31 1851.57,-346.77 1857.73,-343.44"/>
- </g>
- <!-- RtAudio -->
- <g id="node28" class="node">
- <title>RtAudio</title>
- <g id="a_node28"><a xlink:href="https://www.music.mcgill.ca/~gary/rtaudio/apinotes.html" xlink:title="RtAudio">
- <ellipse fill="lightgrey" stroke="black" cx="1989" cy="-714.74" rx="40.89" ry="18"/>
- <text text-anchor="middle" x="1989" y="-711.04" font-family="Times,serif" font-size="14.00">RtAudio</text>
- </a>
- </g>
- </g>
- <!-- RtAudio->ALSA -->
- <g id="edge59" class="edge">
- <title>RtAudio->ALSA</title>
- <path fill="none" stroke="black" d="M1954.1,-705.27C1892.57,-690.33 1765.14,-659.39 1700.09,-643.6"/>
- <polygon fill="black" stroke="black" points="1700.75,-640.16 1690.21,-641.2 1699.1,-646.96 1700.75,-640.16"/>
- </g>
- <!-- RtAudio->JACK -->
- <g id="edge60" class="edge">
- <title>RtAudio->JACK</title>
- <path fill="none" stroke="black" d="M1968.87,-698.65C1962.43,-693 1955.75,-686.13 1951,-678.74 1938.78,-659.73 1921.65,-600.45 1912.12,-565.18"/>
- <polygon fill="black" stroke="black" points="1915.38,-563.83 1909.42,-555.08 1908.62,-565.64 1915.38,-563.83"/>
- </g>
- <!-- RtAudio->OSS -->
- <g id="edge58" class="edge">
- <title>RtAudio->OSS</title>
- <path fill="none" stroke="black" d="M1988.07,-696.71C1985.35,-653.64 1975.81,-542.21 1949,-519 1923.25,-496.71 1676.9,-504.25 1643,-501 1559.1,-492.95 1461.16,-478.66 1409.39,-470.72"/>
- <polygon fill="black" stroke="black" points="1409.79,-467.24 1399.37,-469.17 1408.72,-474.16 1409.79,-467.24"/>
- <text text-anchor="middle" x="2003.5" y="-576.8" font-family="Times,serif" font-size="14.00">OSS 4.0+</text>
- </g>
- <!-- RtAudio->PulseAudio -->
- <g id="edge61" class="edge">
- <title>RtAudio->PulseAudio</title>
- <path fill="none" stroke="black" d="M2000.9,-697.06C2018.07,-670.93 2046.53,-618.61 2035,-573 2007.64,-464.77 1999.53,-423.29 1912,-354 1903.2,-347.04 1892.79,-341.06 1882.57,-336.13"/>
- <polygon fill="black" stroke="black" points="1883.84,-332.86 1873.29,-331.88 1880.93,-339.22 1883.84,-332.86"/>
- </g>
- <!-- JUCE -->
- <g id="node29" class="node">
- <title>JUCE</title>
- <ellipse fill="lightgrey" stroke="black" cx="1822" cy="-714.74" rx="31.7" ry="18"/>
- <text text-anchor="middle" x="1822" y="-711.04" font-family="Times,serif" font-size="14.00">JUCE</text>
- </g>
- <!-- JUCE->ALSA -->
- <g id="edge62" class="edge">
- <title>JUCE->ALSA</title>
- <path fill="none" stroke="black" d="M1796.87,-703.26C1791.63,-701.09 1786.14,-698.83 1781,-696.74 1761.05,-688.61 1755.33,-688.24 1736,-678.74 1720.92,-671.33 1704.81,-662.03 1691.32,-653.82"/>
- <polygon fill="black" stroke="black" points="1692.79,-650.62 1682.44,-648.35 1689.12,-656.58 1692.79,-650.62"/>
- </g>
- <!-- JUCE->JACK -->
- <g id="edge63" class="edge">
- <title>JUCE->JACK</title>
- <path fill="none" stroke="black" d="M1829.81,-697.21C1844.26,-666.62 1875.26,-600.97 1892.61,-564.24"/>
- <polygon fill="black" stroke="black" points="1895.8,-565.67 1896.91,-555.13 1889.47,-562.68 1895.8,-565.67"/>
- </g>
- <!-- SDL1 -->
- <g id="node30" class="node">
- <title>SDL1</title>
- <g id="a_node30"><a xlink:href="https://hg.libsdl.org/SDL/file/fba40d9f4a73/src/audio" xlink:title="libSDL-1.2">
- <ellipse fill="lightgrey" stroke="black" cx="798" cy="-714.74" rx="50.89" ry="18"/>
- <text text-anchor="middle" x="798" y="-711.04" font-family="Times,serif" font-size="14.00">libSDL-1.2</text>
- </a>
- </g>
- </g>
- <!-- SDL1->ALSA -->
- <g id="edge70" class="edge">
- <title>SDL1->ALSA</title>
- <path fill="none" stroke="black" d="M845.2,-708.02C875.18,-704.49 914.84,-700.03 950,-696.74 1167.89,-676.35 1223.18,-680.8 1441,-659.74 1502.03,-653.84 1572.42,-645.2 1616.56,-639.55"/>
- <polygon fill="black" stroke="black" points="1617.18,-643 1626.66,-638.25 1616.29,-636.06 1617.18,-643"/>
- </g>
- <!-- SDL1->OSS -->
- <g id="edge74" class="edge">
- <title>SDL1->OSS</title>
- <path fill="none" stroke="black" d="M820.77,-698.44C880.15,-659.26 1045.68,-554.58 1198,-500 1243.93,-483.54 1299.56,-474.09 1335.59,-469.25"/>
- <polygon fill="black" stroke="black" points="1336.19,-472.7 1345.65,-467.95 1335.29,-465.76 1336.19,-472.7"/>
- </g>
- <!-- SDL1->PulseAudio -->
- <g id="edge75" class="edge">
- <title>SDL1->PulseAudio</title>
- <path fill="none" stroke="black" d="M808.05,-697.07C822.07,-674.68 849.17,-634.4 879,-606 970.77,-518.61 1001.96,-503.27 1115,-446 1201.27,-402.29 1225.68,-394.4 1320,-373 1330.88,-370.53 1633.59,-339.64 1770.67,-325.72"/>
- <polygon fill="black" stroke="black" points="1771.05,-329.2 1780.65,-324.71 1770.34,-322.24 1771.05,-329.2"/>
- </g>
- <!-- SDL1->aRts -->
- <g id="edge71" class="edge">
- <title>SDL1->aRts</title>
- <path fill="none" stroke="black" d="M747.95,-711.74C673.01,-708.13 535.67,-698.93 491,-678.74 479.53,-673.56 475.11,-671.24 470,-659.74 460.31,-637.91 458.21,-626.77 470,-606 514.98,-526.79 646,-592.09 646,-501 646,-501 646,-501 646,-390 646,-361.97 673.61,-342.74 697.18,-331.44"/>
- <polygon fill="black" stroke="black" points="698.91,-334.5 706.6,-327.21 696.04,-328.11 698.91,-334.5"/>
- </g>
- <!-- SDL1->ESD -->
- <g id="edge72" class="edge">
- <title>SDL1->ESD</title>
- <path fill="none" stroke="black" d="M747.56,-711.99C645.72,-706.76 431.1,-686.17 503,-606 527.63,-578.54 635.13,-604.73 668,-588 776.51,-532.77 854.43,-401.44 883.96,-345.24"/>
- <polygon fill="black" stroke="black" points="887.11,-346.77 888.59,-336.28 880.89,-343.55 887.11,-346.77"/>
- </g>
- <!-- SDL1->NAS -->
- <g id="edge73" class="edge">
- <title>SDL1->NAS</title>
- <path fill="none" stroke="black" d="M770.29,-699.64C746.25,-687.41 711.07,-669.51 683.47,-655.48"/>
- <polygon fill="black" stroke="black" points="684.93,-652.29 674.43,-650.88 681.75,-658.53 684.93,-652.29"/>
- </g>
- <!-- SDL2 -->
- <g id="node31" class="node">
- <title>SDL2</title>
- <g id="a_node31"><a xlink:href="https://hg.libsdl.org/SDL/file/355a4f94a782" xlink:title="libSDL-2.0">
- <ellipse fill="lightgrey" stroke="black" cx="386" cy="-714.74" rx="50.89" ry="18"/>
- <text text-anchor="middle" x="386" y="-711.04" font-family="Times,serif" font-size="14.00">libSDL-2.0</text>
- </a>
- </g>
- </g>
- <!-- SDL2->ALSA -->
- <g id="edge76" class="edge">
- <title>SDL2->ALSA</title>
- <path fill="none" stroke="black" d="M435.9,-711.28C638.41,-701.28 1390.43,-664.02 1441,-659.74 1502.1,-654.57 1572.47,-645.75 1616.59,-639.86"/>
- <polygon fill="black" stroke="black" points="1617.23,-643.31 1626.68,-638.5 1616.3,-636.37 1617.23,-643.31"/>
- </g>
- <!-- SDL2->JACK -->
- <g id="edge80" class="edge">
- <title>SDL2->JACK</title>
- <path fill="none" stroke="black" d="M400.9,-697.53C426.63,-670 478.93,-616.07 503,-606 507.01,-604.32 1619.42,-551.53 1859.62,-540.15"/>
- <polygon fill="black" stroke="black" points="1859.93,-543.64 1869.75,-539.67 1859.6,-536.65 1859.93,-543.64"/>
- </g>
- <!-- SDL2->OSS -->
- <g id="edge82" class="edge">
- <title>SDL2->OSS</title>
- <path fill="none" stroke="black" d="M388.51,-696.45C393.11,-671.74 405.4,-627.01 436,-606 460.51,-589.17 673.51,-591.78 703,-588 866.33,-567.09 905.03,-548.64 1067,-519 1164.41,-501.17 1279.47,-481.15 1336.77,-471.24"/>
- <polygon fill="black" stroke="black" points="1337.52,-474.66 1346.78,-469.51 1336.33,-467.76 1337.52,-474.66"/>
- </g>
- <!-- SDL2->sndio -->
- <g id="edge84" class="edge">
- <title>SDL2->sndio</title>
- <path fill="none" stroke="black" d="M335.14,-713.73C230.32,-712.32 0,-701.53 0,-633.87 0,-633.87 0,-633.87 0,-317 0,-262.86 856.66,-238.11 1059.37,-233.01"/>
- <polygon fill="black" stroke="black" points="1059.71,-236.51 1069.62,-232.76 1059.53,-229.51 1059.71,-236.51"/>
- </g>
- <!-- SDL2->PulseAudio -->
- <g id="edge83" class="edge">
- <title>SDL2->PulseAudio</title>
- <path fill="none" stroke="black" d="M382.03,-696.64C377.71,-673.37 373.96,-631.71 395,-606 520.15,-453.06 632.37,-537.62 822,-482 903.84,-458 1106.18,-388.74 1190,-373 1399.42,-333.67 1652.37,-322.98 1770.35,-320.08"/>
- <polygon fill="black" stroke="black" points="1770.75,-323.57 1780.66,-319.84 1770.58,-316.57 1770.75,-323.57"/>
- </g>
- <!-- SDL2->aRts -->
- <g id="edge77" class="edge">
- <title>SDL2->aRts</title>
- <path fill="none" stroke="black" d="M335.07,-713.91C255.27,-713.26 105.38,-708.01 62,-678.74 43.25,-666.09 38,-656.49 38,-633.87 38,-633.87 38,-633.87 38,-390 38,-323.58 549.03,-318.88 692.78,-318.88"/>
- <polygon fill="black" stroke="black" points="692.87,-322.38 702.87,-318.88 692.88,-315.38 692.87,-322.38"/>
- </g>
- <!-- SDL2->ESD -->
- <g id="edge78" class="edge">
- <title>SDL2->ESD</title>
- <path fill="none" stroke="black" d="M335.56,-712.2C235.52,-707.37 27.24,-687.51 95,-606 258.27,-409.59 426.72,-604.99 660,-501 749.29,-461.2 835.54,-381.38 874.85,-342.02"/>
- <polygon fill="black" stroke="black" points="877.53,-344.29 882.07,-334.71 872.55,-339.37 877.53,-344.29"/>
- </g>
- <!-- SDL2->NAS -->
- <g id="edge81" class="edge">
- <title>SDL2->NAS</title>
- <path fill="none" stroke="black" d="M422.81,-702.21C463.07,-689.6 528.34,-669.16 577.02,-653.91"/>
- <polygon fill="black" stroke="black" points="578.33,-657.17 586.83,-650.84 576.24,-650.49 578.33,-657.17"/>
- </g>
- <!-- FusionSound -->
- <g id="node32" class="node">
- <title>FusionSound</title>
- <ellipse fill="red" stroke="black" cx="204" cy="-632.87" rx="100.32" ry="26.74"/>
- <text text-anchor="middle" x="204" y="-636.67" font-family="Times,serif" font-size="14.00">DirectFB/FusionSound</text>
- <text text-anchor="middle" x="204" y="-621.67" font-family="Times,serif" font-size="14.00">[dead]</text>
- </g>
- <!-- SDL2->FusionSound -->
- <g id="edge79" class="edge">
- <title>SDL2->FusionSound</title>
- <path fill="none" stroke="red" d="M355.13,-700.19C330.22,-689.26 294.43,-673.56 263.94,-660.17"/>
- <polygon fill="red" stroke="red" points="265.22,-656.92 254.66,-656.1 262.41,-663.33 265.22,-656.92"/>
- </g>
- <!-- phonon -->
- <g id="node33" class="node">
- <title>phonon</title>
- <ellipse fill="lightgrey" stroke="black" cx="2357" cy="-787.74" rx="37.09" ry="18"/>
- <text text-anchor="middle" x="2357" y="-784.04" font-family="Times,serif" font-size="14.00">phonon</text>
- </g>
- <!-- phonon->PulseAudio -->
- <g id="edge91" class="edge">
- <title>phonon->PulseAudio</title>
- <path fill="none" stroke="black" d="M2371.9,-771.16C2380.47,-761.07 2390.43,-747.17 2395,-732.74 2399.83,-717.49 2396.72,-712.65 2395,-696.74 2378.6,-545.52 2401.98,-469 2284,-373 2227.17,-326.76 2013.9,-319.28 1903.76,-318.6"/>
- <polygon fill="black" stroke="black" points="1903.45,-315.09 1893.43,-318.55 1903.41,-322.09 1903.45,-315.09"/>
- </g>
- <!-- phonon->gstreamer -->
- <g id="edge89" class="edge">
- <title>phonon->gstreamer</title>
- <path fill="none" stroke="black" d="M2337.73,-772.03C2324.65,-762.05 2307.14,-748.68 2292.47,-737.47"/>
- <polygon fill="black" stroke="black" points="2294.28,-734.46 2284.21,-731.17 2290.03,-740.02 2294.28,-734.46"/>
- </g>
- <!-- VLC -->
- <g id="node34" class="node">
- <title>VLC</title>
- <g id="a_node34"><a xlink:href="https://code.videolan.org/videolan/vlc/-/tree/master/modules/audio_output" xlink:title="VLC">
- <ellipse fill="lightgrey" stroke="black" cx="2357" cy="-714.74" rx="28.7" ry="18"/>
- <text text-anchor="middle" x="2357" y="-711.04" font-family="Times,serif" font-size="14.00">VLC</text>
- </a>
- </g>
- </g>
- <!-- phonon->VLC -->
- <g id="edge90" class="edge">
- <title>phonon->VLC</title>
- <path fill="none" stroke="black" d="M2357,-769.55C2357,-761.53 2357,-751.79 2357,-742.81"/>
- <polygon fill="black" stroke="black" points="2360.5,-742.77 2357,-732.77 2353.5,-742.77 2360.5,-742.77"/>
- </g>
- <!-- VLC->ALSA -->
- <g id="edge100" class="edge">
- <title>VLC->ALSA</title>
- <path fill="none" stroke="black" d="M2335.34,-702.6C2330.11,-700.32 2324.45,-698.18 2319,-696.74 2202.69,-666.06 1835.96,-643.52 1706.12,-636.32"/>
- <polygon fill="black" stroke="black" points="1706.28,-632.82 1696.1,-635.77 1705.9,-639.81 1706.28,-632.82"/>
- </g>
- <!-- VLC->JACK -->
- <g id="edge101" class="edge">
- <title>VLC->JACK</title>
- <path fill="none" stroke="black" d="M2335.61,-702.47C2285.82,-676.6 2157.82,-612.2 2045,-573 2013.7,-562.13 1977.37,-553.15 1949.57,-547.01"/>
- <polygon fill="black" stroke="black" points="1950.25,-543.57 1939.74,-544.87 1948.77,-550.41 1950.25,-543.57"/>
- </g>
- <!-- VLC->OSS -->
- <g id="edge102" class="edge">
- <title>VLC->OSS</title>
- <path fill="none" stroke="black" d="M2341.54,-699.27C2301.08,-662.3 2187.25,-564.16 2073,-519 1951.58,-471.01 1543.18,-465.52 1413.13,-465.01"/>
- <polygon fill="black" stroke="black" points="1412.85,-461.51 1402.84,-464.98 1412.83,-468.51 1412.85,-461.51"/>
- </g>
- <!-- VLC->sndio -->
- <g id="edge104" class="edge">
- <title>VLC->sndio</title>
- <path fill="none" stroke="black" d="M2382.94,-706.9C2407,-699.25 2442.15,-684.57 2463,-659.74 2466.48,-655.59 2509.62,-510.47 2511,-501 2515.77,-468.41 2527.12,-453.07 2507,-427 2474.21,-384.52 2449.15,-392.1 2399,-373 2282.83,-328.76 2251.32,-322.15 2129,-300 1752,-231.72 1286.08,-230.12 1144.65,-231.39"/>
- <polygon fill="black" stroke="black" points="1144.23,-227.9 1134.27,-231.5 1144.3,-234.9 1144.23,-227.9"/>
- </g>
- <!-- VLC->PulseAudio -->
- <g id="edge103" class="edge">
- <title>VLC->PulseAudio</title>
- <path fill="none" stroke="black" d="M2357.66,-696.39C2358.99,-633.18 2353.69,-415.68 2222,-354 2167.1,-328.28 1997.94,-321.43 1903.13,-319.63"/>
- <polygon fill="black" stroke="black" points="1903.13,-316.13 1893.07,-319.45 1903.01,-323.13 1903.13,-316.13"/>
- </g>
- <!-- ClanLib -->
- <g id="node35" class="node">
- <title>ClanLib</title>
- <g id="a_node35"><a xlink:href="https://github.com/sphair/ClanLib/tree/master/Sources/Sound/Platform/Linux" xlink:title="ClanLib">
- <ellipse fill="lightgrey" stroke="black" cx="1440" cy="-714.74" rx="39.79" ry="18"/>
- <text text-anchor="middle" x="1440" y="-711.04" font-family="Times,serif" font-size="14.00">ClanLib</text>
- </a>
- </g>
- </g>
- <!-- ClanLib->ALSA -->
- <g id="edge92" class="edge">
- <title>ClanLib->ALSA</title>
- <path fill="none" stroke="black" d="M1470.25,-703.02C1476.44,-700.89 1482.92,-698.71 1489,-696.74 1515.49,-688.18 1522.73,-687.97 1549,-678.74 1574.51,-669.78 1602.75,-658.34 1624.37,-649.25"/>
- <polygon fill="black" stroke="black" points="1625.95,-652.38 1633.8,-645.26 1623.22,-645.94 1625.95,-652.38"/>
- </g>
- <!-- ClanLib->OSS -->
- <g id="edge93" class="edge">
- <title>ClanLib->OSS</title>
- <path fill="none" stroke="black" d="M1442.57,-696.68C1445.25,-675.22 1448.17,-637.37 1441,-606 1431.21,-563.15 1406.65,-518.17 1389.89,-490.85"/>
- <polygon fill="black" stroke="black" points="1392.81,-488.92 1384.54,-482.29 1386.87,-492.63 1392.81,-488.92"/>
- </g>
- <!-- allegro -->
- <g id="node36" class="node">
- <title>allegro</title>
- <g id="a_node36"><a xlink:href="https://github.com/liballeg/allegro5/tree/master/addons/audio" xlink:title="allegro">
- <ellipse fill="lightgrey" stroke="black" cx="1190" cy="-860.74" rx="35.19" ry="18"/>
- <text text-anchor="middle" x="1190" y="-857.04" font-family="Times,serif" font-size="14.00">allegro</text>
- </a>
- </g>
- </g>
- <!-- allegro->OSS -->
- <g id="edge94" class="edge">
- <title>allegro->OSS</title>
- <path fill="none" stroke="black" d="M1189.94,-842.65C1190.64,-788.69 1199.72,-619.62 1283,-519 1298.41,-500.39 1322,-486.57 1341.16,-477.57"/>
- <polygon fill="black" stroke="black" points="1342.74,-480.7 1350.44,-473.42 1339.88,-474.31 1342.74,-480.7"/>
- </g>
- <!-- allegro->PulseAudio -->
- <g id="edge96" class="edge">
- <title>allegro->PulseAudio</title>
- <path fill="none" stroke="black" d="M1225.28,-859.77C1437.5,-859.74 2535,-856.33 2535,-788.74 2535,-788.74 2535,-788.74 2535,-677.74 2535,-511.21 2463.24,-452.65 2317,-373 2294.29,-360.63 2287.34,-359.17 2262,-354 2149.37,-331.04 2118.53,-345.82 2004,-336 1970.87,-333.16 1934.1,-329.47 1903.51,-326.26"/>
- <polygon fill="black" stroke="black" points="1903.7,-322.76 1893.39,-325.19 1902.96,-329.72 1903.7,-322.76"/>
- </g>
- <!-- allegro->OpenAL -->
- <g id="edge95" class="edge">
- <title>allegro->OpenAL</title>
- <path fill="none" stroke="black" d="M1221.65,-852.87C1279.66,-840.27 1403.24,-813.44 1470.7,-798.79"/>
- <polygon fill="black" stroke="black" points="1471.6,-802.18 1480.63,-796.64 1470.11,-795.34 1471.6,-802.18"/>
- </g>
- <!-- allegro->SDL1 -->
- <g id="edge97" class="edge">
- <title>allegro->SDL1</title>
- <path fill="none" stroke="black" d="M1169.76,-845.82C1163.33,-841.83 1156.05,-837.75 1149,-834.74 1102.9,-815.04 1087.77,-820.94 1040,-805.74 968.67,-783.04 887.42,-751.66 839.55,-732.58"/>
- <polygon fill="black" stroke="black" points="840.73,-729.28 830.14,-728.82 838.13,-735.78 840.73,-729.28"/>
- </g>
- <!-- allegro->SDL2 -->
- <g id="edge98" class="edge">
- <title>allegro->SDL2</title>
- <path fill="none" stroke="black" d="M1170.4,-845.53C1163.87,-841.43 1156.38,-837.36 1149,-834.74 1103.99,-818.74 983.24,-812.82 936,-805.74 754.17,-778.49 539.24,-742.11 440.53,-725.16"/>
- <polygon fill="black" stroke="black" points="440.94,-721.68 430.49,-723.44 439.76,-728.58 440.94,-721.68"/>
- </g>
- <!-- telepathy -->
- <g id="node37" class="node">
- <title>telepathy</title>
- <ellipse fill="lightgrey" stroke="black" cx="2391" cy="-158" rx="42.79" ry="18"/>
- <text text-anchor="middle" x="2391" y="-154.3" font-family="Times,serif" font-size="14.00">telepathy</text>
- </g>
- <!-- telepathy->phone modem -->
- <g id="edge99" class="edge">
- <title>telepathy->phone modem</title>
- <path fill="none" stroke="black" d="M2384.09,-140.21C2379.18,-128.29 2372.5,-112.06 2366.88,-98.42"/>
- <polygon fill="black" stroke="black" points="2370.06,-96.96 2363.02,-89.05 2363.59,-99.63 2370.06,-96.96"/>
- <text text-anchor="middle" x="2378.5" y="-110.8" font-family="Times,serif" font-size="14.00" fill="red">?</text>
- </g>
- <!-- pcaudiolib -->
- <g id="node38" class="node">
- <title>pcaudiolib</title>
- <g id="a_node38"><a xlink:href="https://github.com/espeak-ng/pcaudiolib" xlink:title="pcaudiolib">
- <ellipse fill="lightgrey" stroke="black" cx="1546" cy="-714.74" rx="48.19" ry="18"/>
- <text text-anchor="middle" x="1546" y="-711.04" font-family="Times,serif" font-size="14.00">pcaudiolib</text>
- </a>
- </g>
- </g>
- <!-- pcaudiolib->ALSA -->
- <g id="edge105" class="edge">
- <title>pcaudiolib->ALSA</title>
- <path fill="none" stroke="black" d="M1567.91,-698.41C1576.65,-692.29 1586.8,-685.18 1596,-678.74 1607.14,-670.94 1619.36,-662.37 1630.12,-654.83"/>
- <polygon fill="black" stroke="black" points="1632.2,-657.64 1638.38,-649.04 1628.18,-651.91 1632.2,-657.64"/>
- </g>
- <!-- pcaudiolib->OSS -->
- <g id="edge106" class="edge">
- <title>pcaudiolib->OSS</title>
- <path fill="none" stroke="black" d="M1537.94,-696.86C1520.78,-661.82 1478.27,-579.41 1430,-519 1420.64,-507.29 1408.81,-495.67 1398.35,-486.24"/>
- <polygon fill="black" stroke="black" points="1400.5,-483.46 1390.68,-479.47 1395.87,-488.71 1400.5,-483.46"/>
- </g>
- <!-- pcaudiolib->PulseAudio -->
- <g id="edge107" class="edge">
- <title>pcaudiolib->PulseAudio</title>
- <path fill="none" stroke="black" d="M1549.48,-696.65C1561.45,-642 1605.9,-469.39 1707,-373 1727.69,-353.27 1756.61,-340.3 1781.93,-332.03"/>
- <polygon fill="black" stroke="black" points="1783.27,-335.28 1791.79,-328.98 1781.2,-328.59 1783.27,-335.28"/>
- </g>
- </g>
- </svg>