linux-audio-output-current.svg (39355B)
- <?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 (current-only) Pages: 1 -->
- <svg width="1645pt" height="734pt"
- viewBox="0.00 0.00 1645.00 734.00" 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 730)">
- <title>Linux Audio Output APIs (current-only)</title>
- <polygon fill="white" stroke="none" points="-4,4 -4,-730 1641,-730 1641,4 -4,4"/>
- <text text-anchor="middle" x="818.5" y="-37.8" font-family="Times,serif" font-size="14.00">Linux Audio Output APIs (current-only)</text>
- <text text-anchor="middle" x="818.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="818.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="529,-643 529,-718 792,-718 792,-643 529,-643"/>
- <text text-anchor="middle" x="660.5" y="-702.8" 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="784.35,-661.54 784.35,-676.46 763.64,-687 734.36,-687 713.65,-676.46 713.65,-661.54 734.36,-651 763.64,-651 784.35,-661.54"/>
- <text text-anchor="middle" x="749" y="-665.3" 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="695.55,-669 677.27,-687 640.73,-687 622.45,-669 640.73,-651 677.27,-651 695.55,-669"/>
- <text text-anchor="middle" x="659" y="-665.3" 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="604.5,-687 537.5,-687 537.5,-651 604.5,-651 604.5,-687"/>
- <text text-anchor="middle" x="571" y="-665.3" 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="966,-89 890,-89 890,-53 966,-53 966,-89"/>
- <text text-anchor="middle" x="928" 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="1215.5,-89 1120.5,-89 1120.5,-53 1215.5,-53 1215.5,-89"/>
- <text text-anchor="middle" x="1168" 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="1067,-89 999,-89 999,-53 1067,-53 1067,-89"/>
- <text text-anchor="middle" x="1033" 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="621" cy="-523" rx="44.39" ry="18"/>
- <text text-anchor="middle" x="621" y="-519.3" 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="1035.05,-450 1015.53,-468 976.47,-468 956.95,-450 976.47,-432 1015.53,-432 1035.05,-450"/>
- <text text-anchor="middle" x="996" y="-446.3" 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="M660.38,-514.44C676.38,-511.42 695.06,-507.96 712,-505 737.17,-500.6 914.09,-473.72 939,-468 945.21,-466.57 951.73,-464.85 958.07,-463.05"/>
- <polygon fill="black" stroke="black" points="959.17,-466.37 967.78,-460.2 957.2,-459.66 959.17,-466.37"/>
- </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="1319.35,-296.54 1319.35,-311.46 1298.64,-322 1269.36,-322 1248.65,-311.46 1248.65,-296.54 1269.36,-286 1298.64,-286 1319.35,-296.54"/>
- <text text-anchor="middle" x="1284" y="-300.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="M638.97,-506.19C662.36,-486.34 705.21,-452.41 747,-432 849.47,-381.95 882.11,-385.66 993,-359 1079.07,-338.3 1181.08,-321.01 1238.6,-311.91"/>
- <polygon fill="black" stroke="black" points="1239.47,-315.31 1248.81,-310.31 1238.39,-308.4 1239.47,-315.31"/>
- </g>
- <!-- sndio -->
- <g id="node10" class="node">
- <title>sndio</title>
- <g id="a_node10"><a xlink:href="http://www.sndio.org/" xlink:title="sndio">
- <polygon fill="orange" stroke="black" points="634.22,-296.54 634.22,-311.46 615.35,-322 588.65,-322 569.78,-311.46 569.78,-296.54 588.65,-286 615.35,-286 634.22,-296.54"/>
- <text text-anchor="middle" x="602" y="-300.3" font-family="Times,serif" font-size="14.00">sndio</text>
- </a>
- </g>
- </g>
- <!-- portaudio->sndio -->
- <g id="edge3" class="edge">
- <title>portaudio->sndio</title>
- <path fill="none" stroke="black" d="M619.51,-504.97C616.23,-467.51 608.36,-377.68 604.39,-332.26"/>
- <polygon fill="black" stroke="black" points="607.87,-331.91 603.51,-322.25 600.9,-332.52 607.87,-331.91"/>
- </g>
- <!-- ALSA->sound card -->
- <g id="edge49" class="edge">
- <title>ALSA->sound card</title>
- <path fill="none" stroke="green" d="M968.82,-438.92C944.62,-427.98 913,-407.96 913,-378 913,-378 913,-378 913,-157 913,-137.46 916.89,-115.76 920.71,-99.18"/>
- <polygon fill="green" stroke="green" points="924.2,-99.64 923.17,-89.1 917.4,-97.99 924.2,-99.64"/>
- </g>
- <!-- ALSA->JACK -->
- <g id="edge51" class="edge">
- <title>ALSA->JACK</title>
- <path fill="none" stroke="black" d="M1037.56,-441.22C1054.16,-438.2 1073.46,-434.8 1091,-432 1147.73,-422.94 1171.15,-445.79 1219,-414 1234.42,-403.76 1257.59,-360.01 1271.71,-331.15"/>
- <polygon fill="black" stroke="black" points="1036.82,-437.79 1027.62,-443.04 1038.08,-444.68 1036.82,-437.79"/>
- <polygon fill="black" stroke="black" points="1274.93,-332.53 1276.12,-322 1268.62,-329.49 1274.93,-332.53"/>
- </g>
- <!-- PulseAudio -->
- <g id="node11" class="node">
- <title>PulseAudio</title>
- <g id="a_node11"><a xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/" xlink:title="PulseAudio">
- <polygon fill="orange" stroke="black" points="1114.06,-369.54 1114.06,-384.46 1081.22,-395 1034.78,-395 1001.94,-384.46 1001.94,-369.54 1034.78,-359 1081.22,-359 1114.06,-369.54"/>
- <text text-anchor="middle" x="1058" y="-373.3" font-family="Times,serif" font-size="14.00">PulseAudio</text>
- </a>
- </g>
- </g>
- <!-- ALSA->PulseAudio -->
- <g id="edge50" class="edge">
- <title>ALSA->PulseAudio</title>
- <path fill="none" stroke="black" d="M1005.13,-431.81C1011.9,-423 1021.21,-412.13 1030.19,-402.46"/>
- <polygon fill="black" stroke="black" points="1032.91,-404.68 1037.27,-395.03 1027.84,-399.86 1032.91,-404.68"/>
- </g>
- <!-- bluez -->
- <g id="node12" class="node">
- <title>bluez</title>
- <polygon fill="yellow" stroke="black" points="1070.55,-158 1051.77,-176 1014.23,-176 995.45,-158 1014.23,-140 1051.77,-140 1070.55,-158"/>
- <text text-anchor="middle" x="1033" y="-154.3" font-family="Times,serif" font-size="14.00">BlueZ</text>
- </g>
- <!-- ALSA->bluez -->
- <g id="edge16" class="edge">
- <title>ALSA->bluez</title>
- <path fill="none" stroke="black" d="M990.4,-431.93C980.56,-399.38 962.51,-326.41 977,-267 984.36,-236.84 1001.73,-205.7 1015.19,-184.66"/>
- <polygon fill="black" stroke="black" points="1018.12,-186.57 1020.68,-176.29 1012.27,-182.73 1018.12,-186.57"/>
- </g>
- <!-- PipeWire -->
- <g id="node15" class="node">
- <title>PipeWire</title>
- <g id="a_node15"><a xlink:href="http://pipewire.org/" xlink:title="PipeWire">
- <polygon fill="orange" stroke="black" points="1281.68,-223.54 1281.68,-238.46 1253.75,-249 1214.25,-249 1186.32,-238.46 1186.32,-223.54 1214.25,-213 1253.75,-213 1281.68,-223.54"/>
- <text text-anchor="middle" x="1234" y="-227.3" font-family="Times,serif" font-size="14.00">PipeWire</text>
- </a>
- </g>
- </g>
- <!-- ALSA->PipeWire -->
- <g id="edge11" class="edge">
- <title>ALSA->PipeWire</title>
- <path fill="none" stroke="black" d="M1034.59,-437.26C1060.91,-428.17 1095.79,-413.93 1123,-395 1159.65,-369.51 1166.91,-358.92 1192,-322 1205.56,-302.05 1216.84,-277.04 1224.28,-258.45"/>
- <polygon fill="black" stroke="black" points="1033.32,-433.99 1024.95,-440.49 1035.55,-440.63 1033.32,-433.99"/>
- <polygon fill="black" stroke="black" points="1227.55,-259.7 1227.91,-249.11 1221.03,-257.16 1227.55,-259.7"/>
- </g>
- <!-- JACK->PipeWire -->
- <g id="edge12" class="edge">
- <title>JACK->PipeWire</title>
- <path fill="none" stroke="black" d="M1266.04,-277.5C1261.46,-271 1256.54,-264.01 1251.96,-257.5"/>
- <polygon fill="black" stroke="black" points="1263.28,-279.65 1271.9,-285.81 1269,-275.62 1263.28,-279.65"/>
- <polygon fill="black" stroke="black" points="1254.61,-255.19 1245.99,-249.03 1248.89,-259.22 1254.61,-255.19"/>
- </g>
- <!-- sndio->ALSA -->
- <g id="edge32" class="edge">
- <title>sndio->ALSA</title>
- <path fill="none" stroke="black" d="M638.06,-318.31C693.92,-338.9 804.78,-379.71 899,-414 918.73,-421.18 940.74,-429.13 958.8,-435.63"/>
- <polygon fill="black" stroke="black" points="639.2,-315 628.61,-314.82 636.78,-321.56 639.2,-315"/>
- <polygon fill="black" stroke="black" points="957.8,-438.99 968.39,-439.08 960.17,-432.4 957.8,-438.99"/>
- </g>
- <!-- PulseAudio->sound card -->
- <g id="edge5" class="edge">
- <title>PulseAudio->sound card</title>
- <path fill="none" stroke="green" d="M1050.64,-358.78C1028.96,-308.1 965.27,-159.16 939.26,-98.33"/>
- <polygon fill="green" stroke="green" points="942.43,-96.84 935.28,-89.03 935.99,-99.6 942.43,-96.84"/>
- </g>
- <!-- PulseAudio->ALSA -->
- <g id="edge4" class="edge">
- <title>PulseAudio->ALSA</title>
- <path fill="none" stroke="black" d="M1048.73,-395.37C1041.85,-404.31 1032.39,-415.34 1023.32,-425.07"/>
- <polygon fill="black" stroke="black" points="1020.56,-422.89 1016.18,-432.53 1025.62,-427.72 1020.56,-422.89"/>
- </g>
- <!-- PulseAudio->JACK -->
- <g id="edge6" class="edge">
- <title>PulseAudio->JACK</title>
- <path fill="none" stroke="black" d="M1103.87,-366.22C1131.19,-359.96 1166.4,-351.12 1197,-341 1214.48,-335.22 1233.42,-327.56 1249.15,-320.79"/>
- <polygon fill="black" stroke="black" points="1250.72,-323.92 1258.49,-316.71 1247.92,-317.5 1250.72,-323.92"/>
- </g>
- <!-- PulseAudio->sndio -->
- <g id="edge33" class="edge">
- <title>PulseAudio->sndio</title>
- <path fill="none" stroke="black" d="M1006.58,-367.99C915.69,-353.84 728.33,-324.67 644.35,-311.59"/>
- <polygon fill="black" stroke="black" points="644.81,-308.12 634.39,-310.04 643.74,-315.04 644.81,-308.12"/>
- </g>
- <!-- PulseAudio->bluez -->
- <g id="edge7" class="edge">
- <title>PulseAudio->bluez</title>
- <path fill="none" stroke="black" d="M1056.04,-358.97C1051.72,-321.51 1041.37,-231.68 1036.14,-186.26"/>
- <polygon fill="black" stroke="black" points="1039.61,-185.78 1034.99,-176.25 1032.65,-186.58 1039.61,-185.78"/>
- </g>
- <!-- ofono -->
- <g id="node13" class="node">
- <title>ofono</title>
- <polygon fill="yellow" stroke="black" points="1155.05,-304 1137.02,-322 1100.98,-322 1082.95,-304 1100.98,-286 1137.02,-286 1155.05,-304"/>
- <text text-anchor="middle" x="1119" y="-300.3" font-family="Times,serif" font-size="14.00">ofono</text>
- </g>
- <!-- PulseAudio->ofono -->
- <g id="edge8" class="edge">
- <title>PulseAudio->ofono</title>
- <path fill="none" stroke="black" d="M1085.15,-359.77C1092.33,-354.48 1099.58,-348.12 1105,-341 1107.18,-338.14 1109.06,-334.9 1110.67,-331.56"/>
- <polygon fill="black" stroke="black" points="1113.98,-332.72 1114.52,-322.13 1107.5,-330.07 1113.98,-332.72"/>
- </g>
- <!-- PulseAudio->PipeWire -->
- <g id="edge10" class="edge">
- <title>PulseAudio->PipeWire</title>
- <path fill="none" stroke="black" d="M1102.48,-358.62C1122.51,-349.52 1145.72,-337.1 1164,-322 1164.79,-321.35 1194,-283.68 1214.43,-257.29"/>
- <polygon fill="black" stroke="black" points="1100.97,-355.46 1093.23,-362.7 1103.79,-361.87 1100.97,-355.46"/>
- <polygon fill="black" stroke="black" points="1217.36,-259.23 1220.71,-249.18 1211.82,-254.95 1217.36,-259.23"/>
- </g>
- <!-- bluez->bluetooth -->
- <g id="edge17" class="edge">
- <title>bluez->bluetooth</title>
- <path fill="none" stroke="green" d="M1033,-139.8C1033,-128.16 1033,-112.55 1033,-99.24"/>
- <polygon fill="green" stroke="green" points="1036.5,-99.18 1033,-89.18 1029.5,-99.18 1036.5,-99.18"/>
- </g>
- <!-- ofono->phone modem -->
- <g id="edge15" class="edge">
- <title>ofono->phone modem</title>
- <path fill="none" stroke="green" d="M1130.9,-285.93C1146.47,-262.45 1172.95,-218.28 1183,-176 1189.16,-150.07 1183.41,-119.87 1177.33,-98.71"/>
- <polygon fill="green" stroke="green" points="1180.66,-97.64 1174.37,-89.11 1173.97,-99.7 1180.66,-97.64"/>
- </g>
- <!-- X11 bell -->
- <g id="node14" class="node">
- <title>X11 bell</title>
- <ellipse fill="lightgrey" stroke="black" cx="888" cy="-450" rx="41.69" ry="18"/>
- <text text-anchor="middle" x="888" y="-446.3" font-family="Times,serif" font-size="14.00">X11 bell</text>
- </g>
- <!-- X11 bell->PulseAudio -->
- <g id="edge9" class="edge">
- <title>X11 bell->PulseAudio</title>
- <path fill="none" stroke="black" d="M916.84,-436.96C943.76,-425.71 984.3,-408.78 1015.03,-395.94"/>
- <polygon fill="black" stroke="black" points="1016.76,-399.02 1024.64,-391.93 1014.06,-392.56 1016.76,-399.02"/>
- </g>
- <!-- PipeWire->bluez -->
- <g id="edge13" class="edge">
- <title>PipeWire->bluez</title>
- <path fill="none" stroke="black" d="M1199.77,-218.28C1168.31,-207.46 1120.44,-190.87 1079,-176 1075.87,-174.88 1072.63,-173.7 1069.39,-172.52"/>
- <polygon fill="black" stroke="black" points="1070.32,-169.13 1059.73,-168.97 1067.91,-175.7 1070.32,-169.13"/>
- </g>
- <!-- gstreamer -->
- <g id="node16" class="node">
- <title>gstreamer</title>
- <ellipse fill="lightgrey" stroke="black" cx="1567" cy="-523" rx="46.29" ry="18"/>
- <text text-anchor="middle" x="1567" y="-519.3" font-family="Times,serif" font-size="14.00">gstreamer</text>
- </g>
- <!-- gstreamer->ALSA -->
- <g id="edge57" class="edge">
- <title>gstreamer->ALSA</title>
- <path fill="none" stroke="black" d="M1526.82,-514.03C1510.47,-510.96 1491.37,-507.57 1474,-505 1315.38,-481.57 1125.83,-462.91 1040.96,-455.05"/>
- <polygon fill="black" stroke="black" points="1041.17,-451.55 1030.89,-454.12 1040.53,-458.52 1041.17,-451.55"/>
- </g>
- <!-- gstreamer->JACK -->
- <g id="edge58" class="edge">
- <title>gstreamer->JACK</title>
- <path fill="none" stroke="black" d="M1574.56,-505.15C1589.18,-469.68 1616.45,-386.73 1575,-340 1558.98,-321.94 1406.87,-311.43 1329.18,-307.19"/>
- <polygon fill="black" stroke="black" points="1329.36,-303.7 1319.19,-306.66 1328.99,-310.69 1329.36,-303.7"/>
- </g>
- <!-- gstreamer->sndio -->
- <g id="edge34" class="edge">
- <title>gstreamer->sndio</title>
- <path fill="none" stroke="black" d="M1540.55,-508.15C1478.95,-476.51 1320.42,-398.61 1179,-359 1078.24,-330.78 760.29,-312.77 644.61,-307.01"/>
- <polygon fill="black" stroke="black" points="644.54,-303.5 634.38,-306.5 644.2,-310.49 644.54,-303.5"/>
- </g>
- <!-- gstreamer->PulseAudio -->
- <g id="edge59" class="edge">
- <title>gstreamer->PulseAudio</title>
- <path fill="none" stroke="black" d="M1532.12,-511.09C1449.16,-485.17 1244.57,-421.41 1213,-413 1180.69,-404.39 1144.23,-396.09 1114.79,-389.73"/>
- <polygon fill="black" stroke="black" points="1115.2,-386.24 1104.69,-387.57 1113.73,-393.08 1115.2,-386.24"/>
- </g>
- <!-- gstreamer->PipeWire -->
- <g id="edge14" class="edge">
- <title>gstreamer->PipeWire</title>
- <path fill="none" stroke="black" d="M1594.26,-508.19C1613.92,-496.08 1637,-476.45 1637,-451 1637,-451 1637,-451 1637,-303 1637,-268.38 1403.38,-245.32 1291.89,-236.29"/>
- <polygon fill="black" stroke="black" points="1292.06,-232.79 1281.81,-235.48 1291.5,-239.77 1292.06,-232.79"/>
- </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="498" cy="-596" rx="27" ry="18"/>
- <text text-anchor="middle" x="498" y="-592.3" font-family="Times,serif" font-size="14.00">sox</text>
- </a>
- </g>
- </g>
- <!-- sox->ALSA -->
- <g id="edge20" class="edge">
- <title>sox->ALSA</title>
- <path fill="none" stroke="black" d="M525.12,-595.76C583.41,-596.33 723.65,-591.81 826,-541 846.84,-530.66 844.46,-517.62 864,-505 893.18,-486.16 930.01,-471.75 957.35,-462.58"/>
- <polygon fill="black" stroke="black" points="958.55,-465.87 966.96,-459.44 956.37,-459.22 958.55,-465.87"/>
- </g>
- <!-- sox->sndio -->
- <g id="edge21" class="edge">
- <title>sox->sndio</title>
- <path fill="none" stroke="black" d="M470.87,-594.02C366.95,-589.9 0,-571.98 0,-524 0,-524 0,-524 0,-376 0,-319.59 422.3,-307.87 559.5,-305.55"/>
- <polygon fill="black" stroke="black" points="559.69,-309.04 569.63,-305.38 559.58,-302.04 559.69,-309.04"/>
- </g>
- <!-- sox->PulseAudio -->
- <g id="edge19" class="edge">
- <title>sox->PulseAudio</title>
- <path fill="none" stroke="black" d="M512.08,-570.34C524.55,-550.38 544.42,-522.76 568,-505 602.81,-478.78 708.35,-444.8 750,-432 787.83,-420.37 798.1,-420.32 837,-413 889.95,-403.03 950.39,-393.59 994.67,-387.03"/>
- <polygon fill="black" stroke="black" points="509.07,-568.54 506.88,-578.91 515.06,-572.17 509.07,-568.54"/>
- <polygon fill="black" stroke="black" points="995.33,-390.48 1004.71,-385.55 994.31,-383.55 995.33,-390.48"/>
- </g>
- <!-- libao -->
- <g id="node18" class="node">
- <title>libao</title>
- <g id="a_node18"><a xlink:href="https://www.xiph.org/ao/" xlink:title="libao">
- <ellipse fill="lightgrey" stroke="black" cx="454" cy="-523" rx="28.7" ry="18"/>
- <text text-anchor="middle" x="454" y="-519.3" font-family="Times,serif" font-size="14.00">libao</text>
- </a>
- </g>
- </g>
- <!-- sox->libao -->
- <g id="edge18" class="edge">
- <title>sox->libao</title>
- <path fill="none" stroke="black" d="M488.02,-578.89C482.5,-569.99 475.54,-558.75 469.35,-548.77"/>
- <polygon fill="black" stroke="black" points="472.19,-546.7 463.94,-540.05 466.24,-550.39 472.19,-546.7"/>
- </g>
- <!-- libao->ALSA -->
- <g id="edge22" class="edge">
- <title>libao->ALSA</title>
- <path fill="none" stroke="black" d="M481.59,-517.5C504.65,-513.83 538.41,-508.68 568,-505 732.44,-484.55 776.42,-500.05 939,-468 945.32,-466.75 951.94,-465.11 958.34,-463.33"/>
- <polygon fill="black" stroke="black" points="959.53,-466.63 968.14,-460.46 957.56,-459.91 959.53,-466.63"/>
- </g>
- <!-- libao->sndio -->
- <g id="edge26" class="edge">
- <title>libao->sndio</title>
- <path fill="none" stroke="black" d="M448.01,-505.23C442.36,-486.49 436.21,-455.67 447,-432 471.34,-378.6 530.91,-340.42 568.71,-320.6"/>
- <polygon fill="black" stroke="black" points="570.5,-323.62 577.82,-315.96 567.32,-317.38 570.5,-323.62"/>
- </g>
- <!-- libao->PulseAudio -->
- <g id="edge23" class="edge">
- <title>libao->PulseAudio</title>
- <path fill="none" stroke="black" d="M476.12,-511.56C524.09,-489.41 641.75,-437.72 746,-413 829.27,-393.26 927.76,-384.56 991.48,-380.8"/>
- <polygon fill="black" stroke="black" points="992,-384.27 1001.79,-380.21 991.6,-377.28 992,-384.27"/>
- </g>
- <!-- NAS -->
- <g id="node19" class="node">
- <title>NAS</title>
- <g id="a_node19"><a xlink:href="http://radscan.com/nas.html" xlink:title="Network Audio System/Server">
- <polygon fill="orange" stroke="black" points="400.39,-442.54 400.39,-457.46 324.59,-468 217.41,-468 141.61,-457.46 141.61,-442.54 217.41,-432 324.59,-432 400.39,-442.54"/>
- <text text-anchor="middle" x="271" y="-446.3" font-family="Times,serif" font-size="14.00">Network Audio System/Server</text>
- </a>
- </g>
- </g>
- <!-- libao->NAS -->
- <g id="edge24" class="edge">
- <title>libao->NAS</title>
- <path fill="none" stroke="black" d="M430.08,-512.72C403.42,-502.38 359.48,-485.33 324.52,-471.77"/>
- <polygon fill="black" stroke="black" points="325.51,-468.4 314.92,-468.04 322.98,-474.92 325.51,-468.4"/>
- </g>
- <!-- RoarAudio -->
- <g id="node20" class="node">
- <title>RoarAudio</title>
- <g id="a_node20"><a xlink:href="http://roaraudio.keep-cool.org/" xlink:title="RoarAudio">
- <ellipse fill="lightgrey" stroke="black" cx="506" cy="-450" rx="50.09" ry="18"/>
- <text text-anchor="middle" x="506" y="-446.3" font-family="Times,serif" font-size="14.00">RoarAudio</text>
- </a>
- </g>
- </g>
- <!-- libao->RoarAudio -->
- <g id="edge25" class="edge">
- <title>libao->RoarAudio</title>
- <path fill="none" stroke="black" d="M465.54,-506.24C472.09,-497.31 480.42,-485.92 487.83,-475.81"/>
- <polygon fill="black" stroke="black" points="490.68,-477.84 493.77,-467.7 485.03,-473.7 490.68,-477.84"/>
- </g>
- <!-- RoarAudio->sndio -->
- <g id="edge27" class="edge">
- <title>RoarAudio->sndio</title>
- <path fill="none" stroke="black" d="M514.26,-432C525.34,-409.9 546.29,-370.5 569,-340 571.96,-336.02 575.32,-332.01 578.74,-328.19"/>
- <polygon fill="black" stroke="black" points="581.47,-330.39 585.73,-320.69 576.35,-325.62 581.47,-330.39"/>
- </g>
- <!-- RoarAudio->PulseAudio -->
- <g id="edge28" class="edge">
- <title>RoarAudio->PulseAudio</title>
- <path fill="none" stroke="black" d="M547.99,-440.07C586.97,-432.05 646.69,-420.41 699,-413 800.64,-398.59 919.33,-388.29 991.54,-382.73"/>
- <polygon fill="black" stroke="black" points="992.15,-386.2 1001.85,-381.95 991.62,-379.22 992.15,-386.2"/>
- </g>
- <!-- libcanberra -->
- <g id="node21" class="node">
- <title>libcanberra</title>
- <g id="a_node21"><a xlink:href="http://git.0pointer.net/libcanberra.git/tree/src/driver-order.c" xlink:title="libcanberra">
- <ellipse fill="lightgrey" stroke="black" cx="1419" cy="-596" rx="50.09" ry="18"/>
- <text text-anchor="middle" x="1419" y="-592.3" font-family="Times,serif" font-size="14.00">libcanberra</text>
- </a>
- </g>
- </g>
- <!-- libcanberra->ALSA -->
- <g id="edge30" class="edge">
- <title>libcanberra->ALSA</title>
- <path fill="none" stroke="black" d="M1369.13,-593.72C1278.08,-590.46 1089.54,-579.17 1038,-541 1017.61,-525.9 1006.79,-498.43 1001.26,-477.79"/>
- <polygon fill="black" stroke="black" points="1004.65,-476.91 998.9,-468.01 997.85,-478.55 1004.65,-476.91"/>
- </g>
- <!-- libcanberra->PulseAudio -->
- <g id="edge29" class="edge">
- <title>libcanberra->PulseAudio</title>
- <path fill="none" stroke="black" d="M1411.32,-578.15C1401.23,-557.87 1381.62,-524.14 1355,-505 1309,-471.91 1281.99,-496.47 1233,-468 1212.89,-456.31 1212.87,-446.89 1195,-432 1184,-422.84 1181.77,-419.46 1169,-413 1151.19,-403.99 1130.61,-396.73 1112.04,-391.2"/>
- <polygon fill="black" stroke="black" points="1112.82,-387.78 1102.25,-388.39 1110.89,-394.51 1112.82,-387.78"/>
- </g>
- <!-- libcanberra->gstreamer -->
- <g id="edge31" class="edge">
- <title>libcanberra->gstreamer</title>
- <path fill="none" stroke="black" d="M1447.89,-581.14C1471.16,-569.98 1504.06,-554.19 1529.39,-542.04"/>
- <polygon fill="black" stroke="black" points="1531.19,-545.06 1538.69,-537.58 1528.16,-538.75 1531.19,-545.06"/>
- </g>
- <!-- OpenAL -->
- <g id="node22" class="node">
- <title>OpenAL</title>
- <g id="a_node22"><a xlink:href="https://www.openal-soft.org/" xlink:title="OpenAL">
- <ellipse fill="lightgrey" stroke="black" cx="837" cy="-596" rx="41.69" ry="18"/>
- <text text-anchor="middle" x="837" y="-592.3" font-family="Times,serif" font-size="14.00">OpenAL</text>
- </a>
- </g>
- </g>
- <!-- OpenAL->portaudio -->
- <g id="edge38" class="edge">
- <title>OpenAL->portaudio</title>
- <path fill="none" stroke="black" d="M797.59,-590.04C764.93,-585.06 717.77,-575.79 679,-560 669.12,-555.98 659.02,-550.33 650.07,-544.71"/>
- <polygon fill="black" stroke="black" points="651.85,-541.68 641.56,-539.14 648.02,-547.54 651.85,-541.68"/>
- </g>
- <!-- OpenAL->ALSA -->
- <g id="edge36" class="edge">
- <title>OpenAL->ALSA</title>
- <path fill="none" stroke="black" d="M873.77,-587.33C901.37,-579.83 938.33,-565.8 962,-541 978.52,-523.69 987.2,-497.57 991.64,-477.92"/>
- <polygon fill="black" stroke="black" points="995.08,-478.54 993.64,-468.04 988.22,-477.15 995.08,-478.54"/>
- </g>
- <!-- OpenAL->JACK -->
- <g id="edge39" class="edge">
- <title>OpenAL->JACK</title>
- <path fill="none" stroke="black" d="M878.62,-594.66C1013.73,-593.12 1433.73,-584.83 1474,-541 1507.59,-504.45 1511.14,-483.37 1431,-359 1409.38,-325.45 1364.21,-312.62 1329.61,-307.78"/>
- <polygon fill="black" stroke="black" points="1329.6,-304.25 1319.25,-306.52 1328.76,-311.2 1329.6,-304.25"/>
- </g>
- <!-- OpenAL->sndio -->
- <g id="edge40" class="edge">
- <title>OpenAL->sndio</title>
- <path fill="none" stroke="black" d="M795.88,-592.91C727.8,-588.49 596.34,-575.59 568,-541 554.91,-525.02 582.9,-390.52 595.87,-332.01"/>
- <polygon fill="black" stroke="black" points="599.33,-332.54 598.1,-322.01 592.5,-331.01 599.33,-332.54"/>
- </g>
- <!-- OpenAL->PulseAudio -->
- <g id="edge35" class="edge">
- <title>OpenAL->PulseAudio</title>
- <path fill="none" stroke="black" d="M797.8,-589.57C768.69,-583.26 730.89,-569.74 712,-541 703.21,-527.63 705.32,-519.54 712,-505 717.2,-493.69 785.99,-437.81 797,-432 858.16,-399.73 936.86,-386.73 991.78,-381.5"/>
- <polygon fill="black" stroke="black" points="992.1,-384.99 1001.75,-380.62 991.48,-378.02 992.1,-384.99"/>
- </g>
- <!-- SoundIO -->
- <g id="node23" class="node">
- <title>SoundIO</title>
- <g id="a_node23"><a xlink:href="http://libsound.io/" xlink:title="SoundIO">
- <ellipse fill="lightgrey" stroke="black" cx="1089" cy="-523" rx="42.49" ry="18"/>
- <text text-anchor="middle" x="1089" y="-519.3" font-family="Times,serif" font-size="14.00">SoundIO</text>
- </a>
- </g>
- </g>
- <!-- OpenAL->SoundIO -->
- <g id="edge37" class="edge">
- <title>OpenAL->SoundIO</title>
- <path fill="none" stroke="black" d="M874.75,-588.27C907.02,-582.12 954.5,-572.17 995,-560 1013.61,-554.41 1033.78,-546.88 1050.65,-540.16"/>
- <polygon fill="black" stroke="black" points="1052.21,-543.31 1060.17,-536.31 1049.59,-536.82 1052.21,-543.31"/>
- </g>
- <!-- SoundIO->ALSA -->
- <g id="edge43" class="edge">
- <title>SoundIO->ALSA</title>
- <path fill="none" stroke="black" d="M1069.28,-506.94C1056.44,-497.14 1039.47,-484.19 1025.1,-473.22"/>
- <polygon fill="black" stroke="black" points="1027.06,-470.31 1016.99,-467.02 1022.81,-475.87 1027.06,-470.31"/>
- </g>
- <!-- SoundIO->JACK -->
- <g id="edge41" class="edge">
- <title>SoundIO->JACK</title>
- <path fill="none" stroke="black" d="M1116.57,-509.24C1154.97,-490.02 1224,-449.96 1261,-395 1273.56,-376.35 1279.26,-351.32 1281.85,-332.39"/>
- <polygon fill="black" stroke="black" points="1285.34,-332.65 1283.01,-322.32 1278.39,-331.85 1285.34,-332.65"/>
- </g>
- <!-- SoundIO->PulseAudio -->
- <g id="edge42" class="edge">
- <title>SoundIO->PulseAudio</title>
- <path fill="none" stroke="black" d="M1085.32,-504.92C1080.01,-480.23 1070.13,-434.35 1063.82,-405.04"/>
- <polygon fill="black" stroke="black" points="1067.2,-404.1 1061.67,-395.06 1060.36,-405.57 1067.2,-404.1"/>
- </g>
- <!-- RtAudio -->
- <g id="node24" class="node">
- <title>RtAudio</title>
- <g id="a_node24"><a xlink:href="https://www.music.mcgill.ca/~gary/rtaudio/apinotes.html" xlink:title="RtAudio">
- <ellipse fill="lightgrey" stroke="black" cx="1190" cy="-523" rx="40.89" ry="18"/>
- <text text-anchor="middle" x="1190" y="-519.3" font-family="Times,serif" font-size="14.00">RtAudio</text>
- </a>
- </g>
- </g>
- <!-- RtAudio->ALSA -->
- <g id="edge44" class="edge">
- <title>RtAudio->ALSA</title>
- <path fill="none" stroke="black" d="M1159.26,-510.75C1125.08,-498.24 1069.87,-478.04 1033.26,-464.64"/>
- <polygon fill="black" stroke="black" points="1034.05,-461.2 1023.46,-461.05 1031.65,-467.77 1034.05,-461.2"/>
- </g>
- <!-- RtAudio->JACK -->
- <g id="edge45" class="edge">
- <title>RtAudio->JACK</title>
- <path fill="none" stroke="black" d="M1216.23,-509.15C1247.41,-492.24 1297.87,-459.26 1319,-414 1331.84,-386.5 1316.91,-353.01 1302.76,-330.48"/>
- <polygon fill="black" stroke="black" points="1305.67,-328.53 1297.24,-322.12 1299.83,-332.39 1305.67,-328.53"/>
- </g>
- <!-- RtAudio->PulseAudio -->
- <g id="edge46" class="edge">
- <title>RtAudio->PulseAudio</title>
- <path fill="none" stroke="black" d="M1175.37,-506.04C1152.45,-481.03 1107.89,-432.43 1080.76,-402.82"/>
- <polygon fill="black" stroke="black" points="1083.26,-400.38 1073.93,-395.37 1078.1,-405.11 1083.26,-400.38"/>
- </g>
- <!-- JUCE -->
- <g id="node25" class="node">
- <title>JUCE</title>
- <ellipse fill="lightgrey" stroke="black" cx="1281" cy="-523" rx="31.7" ry="18"/>
- <text text-anchor="middle" x="1281" y="-519.3" font-family="Times,serif" font-size="14.00">JUCE</text>
- </g>
- <!-- JUCE->ALSA -->
- <g id="edge47" class="edge">
- <title>JUCE->ALSA</title>
- <path fill="none" stroke="black" d="M1256.54,-511.04C1251.16,-508.86 1245.44,-506.71 1240,-505 1170.66,-483.14 1087.54,-466.76 1038.4,-458.05"/>
- <polygon fill="black" stroke="black" points="1038.9,-454.59 1028.45,-456.31 1037.69,-461.48 1038.9,-454.59"/>
- </g>
- <!-- JUCE->JACK -->
- <g id="edge48" class="edge">
- <title>JUCE->JACK</title>
- <path fill="none" stroke="black" d="M1303.21,-509.87C1331.68,-492.84 1379.43,-458.83 1397,-414 1409.57,-381.93 1397.54,-365.14 1374,-340 1362.14,-327.33 1345.15,-319.19 1329.13,-313.98"/>
- <polygon fill="black" stroke="black" points="1329.91,-310.56 1319.33,-311.1 1327.94,-317.28 1329.91,-310.56"/>
- </g>
- <!-- SDL2 -->
- <g id="node26" class="node">
- <title>SDL2</title>
- <g id="a_node26"><a xlink:href="https://hg.libsdl.org/SDL/file/355a4f94a782" xlink:title="libSDL-2.0">
- <ellipse fill="lightgrey" stroke="black" cx="137" cy="-523" rx="50.89" ry="18"/>
- <text text-anchor="middle" x="137" y="-519.3" font-family="Times,serif" font-size="14.00">libSDL-2.0</text>
- </a>
- </g>
- </g>
- <!-- SDL2->ALSA -->
- <g id="edge52" class="edge">
- <title>SDL2->ALSA</title>
- <path fill="none" stroke="black" d="M186.61,-518.97C355.83,-508.57 901.9,-474.7 939,-468 945.34,-466.86 951.97,-465.26 958.37,-463.5"/>
- <polygon fill="black" stroke="black" points="959.56,-466.8 968.18,-460.65 957.6,-460.08 959.56,-466.8"/>
- </g>
- <!-- SDL2->JACK -->
- <g id="edge53" class="edge">
- <title>SDL2->JACK</title>
- <path fill="none" stroke="black" d="M125.86,-505.18C114.17,-485.24 99.84,-452.18 118,-432 196.19,-345.15 1048.02,-336.31 1164,-322 1188.72,-318.95 1216.24,-315.09 1238.68,-311.81"/>
- <polygon fill="black" stroke="black" points="1239.22,-315.27 1248.6,-310.36 1238.2,-308.35 1239.22,-315.27"/>
- </g>
- <!-- SDL2->sndio -->
- <g id="edge56" class="edge">
- <title>SDL2->sndio</title>
- <path fill="none" stroke="black" d="M95.99,-512.35C82.85,-507.11 69.72,-499.12 62,-487 48.87,-466.38 46.82,-451.16 62,-432 124.26,-353.39 442.57,-318.63 559.14,-308.4"/>
- <polygon fill="black" stroke="black" points="559.8,-311.86 569.46,-307.52 559.2,-304.89 559.8,-311.86"/>
- </g>
- <!-- SDL2->PulseAudio -->
- <g id="edge55" class="edge">
- <title>SDL2->PulseAudio</title>
- <path fill="none" stroke="black" d="M129.77,-504.9C122.51,-484.68 114.76,-451.34 133,-432 147.74,-416.38 782.11,-389.22 991.62,-380.66"/>
- <polygon fill="black" stroke="black" points="992.02,-384.15 1001.87,-380.25 991.73,-377.16 992.02,-384.15"/>
- </g>
- <!-- SDL2->NAS -->
- <g id="edge54" class="edge">
- <title>SDL2->NAS</title>
- <path fill="none" stroke="black" d="M164.12,-507.63C182.99,-497.63 208.49,-484.12 229.86,-472.8"/>
- <polygon fill="black" stroke="black" points="231.53,-475.87 238.73,-468.1 228.25,-469.69 231.53,-475.87"/>
- </g>
- <!-- phonon -->
- <g id="node27" class="node">
- <title>phonon</title>
- <ellipse fill="lightgrey" stroke="black" cx="1567" cy="-596" rx="37.09" ry="18"/>
- <text text-anchor="middle" x="1567" y="-592.3" font-family="Times,serif" font-size="14.00">phonon</text>
- </g>
- <!-- phonon->PulseAudio -->
- <g id="edge62" class="edge">
- <title>phonon->PulseAudio</title>
- <path fill="none" stroke="black" d="M1586.69,-580.67C1609.41,-562.38 1641.31,-530.11 1622,-505 1561.76,-426.69 1260.62,-393.72 1124.73,-382.66"/>
- <polygon fill="black" stroke="black" points="1124.69,-379.15 1114.45,-381.84 1124.14,-386.13 1124.69,-379.15"/>
- </g>
- <!-- phonon->gstreamer -->
- <g id="edge60" class="edge">
- <title>phonon->gstreamer</title>
- <path fill="none" stroke="black" d="M1567,-577.81C1567,-569.79 1567,-560.05 1567,-551.07"/>
- <polygon fill="black" stroke="black" points="1570.5,-551.03 1567,-541.03 1563.5,-551.03 1570.5,-551.03"/>
- </g>
- <!-- VLC -->
- <g id="node28" class="node">
- <title>VLC</title>
- <g id="a_node28"><a xlink:href="https://code.videolan.org/videolan/vlc/-/tree/master/modules/audio_output" xlink:title="VLC">
- <ellipse fill="lightgrey" stroke="black" cx="1436" cy="-523" rx="28.7" ry="18"/>
- <text text-anchor="middle" x="1436" y="-519.3" font-family="Times,serif" font-size="14.00">VLC</text>
- </a>
- </g>
- </g>
- <!-- phonon->VLC -->
- <g id="edge61" class="edge">
- <title>phonon->VLC</title>
- <path fill="none" stroke="black" d="M1543.28,-582.14C1521.54,-570.36 1489.26,-552.86 1465.79,-540.14"/>
- <polygon fill="black" stroke="black" points="1467.41,-537.04 1456.95,-535.36 1464.08,-543.2 1467.41,-537.04"/>
- </g>
- <!-- VLC->ALSA -->
- <g id="edge68" class="edge">
- <title>VLC->ALSA</title>
- <path fill="none" stroke="black" d="M1408.48,-517.56C1334.01,-505.54 1128.15,-472.32 1038.57,-457.87"/>
- <polygon fill="black" stroke="black" points="1038.92,-454.38 1028.49,-456.24 1037.8,-461.29 1038.92,-454.38"/>
- </g>
- <!-- VLC->JACK -->
- <g id="edge69" class="edge">
- <title>VLC->JACK</title>
- <path fill="none" stroke="black" d="M1436.99,-504.57C1437.99,-473.31 1436.5,-406.56 1410,-359 1393.99,-330.27 1358.54,-316.82 1329.31,-310.53"/>
- <polygon fill="black" stroke="black" points="1329.76,-307.05 1319.28,-308.59 1328.43,-313.92 1329.76,-307.05"/>
- </g>
- <!-- VLC->sndio -->
- <g id="edge71" class="edge">
- <title>VLC->sndio</title>
- <path fill="none" stroke="black" d="M1415.31,-510.36C1384.2,-492.93 1323.42,-459.21 1271,-432 1205.9,-398.21 1193.47,-379.32 1123,-359 950.7,-309.31 734.71,-304.13 644.57,-304.37"/>
- <polygon fill="black" stroke="black" points="644.45,-300.87 634.47,-304.43 644.48,-307.87 644.45,-300.87"/>
- </g>
- <!-- VLC->PulseAudio -->
- <g id="edge70" class="edge">
- <title>VLC->PulseAudio</title>
- <path fill="none" stroke="black" d="M1412.44,-512.4C1406.15,-509.92 1399.34,-507.3 1393,-505 1343.71,-487.13 1327.47,-492.27 1281,-468 1257.36,-455.66 1255.53,-446.27 1233,-432 1217.72,-422.32 1213.89,-419.48 1197,-413 1171.05,-403.05 1141.29,-395.12 1115.98,-389.34"/>
- <polygon fill="black" stroke="black" points="1116.68,-385.91 1106.16,-387.16 1115.16,-392.75 1116.68,-385.91"/>
- </g>
- <!-- ClanLib -->
- <g id="node29" class="node">
- <title>ClanLib</title>
- <g id="a_node29"><a xlink:href="https://github.com/sphair/ClanLib/tree/master/Sources/Sound/Platform/Linux" xlink:title="ClanLib">
- <ellipse fill="lightgrey" stroke="black" cx="913" cy="-523" rx="39.79" ry="18"/>
- <text text-anchor="middle" x="913" y="-519.3" font-family="Times,serif" font-size="14.00">ClanLib</text>
- </a>
- </g>
- </g>
- <!-- ClanLib->ALSA -->
- <g id="edge63" class="edge">
- <title>ClanLib->ALSA</title>
- <path fill="none" stroke="black" d="M931.01,-506.59C941.96,-497.23 956.17,-485.08 968.5,-474.52"/>
- <polygon fill="black" stroke="black" points="970.96,-477.03 976.28,-467.87 966.41,-471.71 970.96,-477.03"/>
- </g>
- <!-- allegro -->
- <g id="node30" class="node">
- <title>allegro</title>
- <g id="a_node30"><a xlink:href="https://github.com/liballeg/allegro5/tree/master/addons/audio" xlink:title="allegro">
- <ellipse fill="lightgrey" stroke="black" cx="837" cy="-669" rx="35.19" ry="18"/>
- <text text-anchor="middle" x="837" y="-665.3" font-family="Times,serif" font-size="14.00">allegro</text>
- </a>
- </g>
- </g>
- <!-- allegro->PulseAudio -->
- <g id="edge65" class="edge">
- <title>allegro->PulseAudio</title>
- <path fill="none" stroke="black" d="M871.13,-664.39C972.1,-652.92 1265.83,-613.78 1322,-541 1331.78,-528.33 1331.6,-517.8 1322,-505 1286.72,-457.97 1248.38,-492.63 1195,-468 1184.09,-462.96 1127.9,-425.37 1090.96,-400.39"/>
- <polygon fill="black" stroke="black" points="1092.72,-397.36 1082.48,-394.65 1088.8,-403.16 1092.72,-397.36"/>
- </g>
- <!-- allegro->OpenAL -->
- <g id="edge64" class="edge">
- <title>allegro->OpenAL</title>
- <path fill="none" stroke="black" d="M837,-650.81C837,-642.79 837,-633.05 837,-624.07"/>
- <polygon fill="black" stroke="black" points="840.5,-624.03 837,-614.03 833.5,-624.03 840.5,-624.03"/>
- </g>
- <!-- allegro->SDL2 -->
- <g id="edge66" class="edge">
- <title>allegro->SDL2</title>
- <path fill="none" stroke="black" d="M817.88,-653.83C811.27,-649.63 803.6,-645.5 796,-643 654.43,-596.54 608.64,-640.44 462,-614 360.21,-595.65 244.13,-559.76 181.96,-539.29"/>
- <polygon fill="black" stroke="black" points="182.69,-535.84 172.09,-536.01 180.49,-542.48 182.69,-535.84"/>
- </g>
- <!-- telepathy -->
- <g id="node31" class="node">
- <title>telepathy</title>
- <ellipse fill="lightgrey" stroke="black" cx="1131" cy="-158" rx="42.79" ry="18"/>
- <text text-anchor="middle" x="1131" y="-154.3" font-family="Times,serif" font-size="14.00">telepathy</text>
- </g>
- <!-- telepathy->phone modem -->
- <g id="edge67" class="edge">
- <title>telepathy->phone modem</title>
- <path fill="none" stroke="black" d="M1138.31,-140.21C1143.5,-128.29 1150.56,-112.06 1156.5,-98.42"/>
- <polygon fill="black" stroke="black" points="1159.8,-99.62 1160.58,-89.05 1153.38,-96.82 1159.8,-99.62"/>
- <text text-anchor="middle" x="1155.5" y="-110.8" font-family="Times,serif" font-size="14.00" fill="red">?</text>
- </g>
- <!-- pcaudiolib -->
- <g id="node32" class="node">
- <title>pcaudiolib</title>
- <g id="a_node32"><a xlink:href="https://github.com/espeak-ng/pcaudiolib" xlink:title="pcaudiolib">
- <ellipse fill="lightgrey" stroke="black" cx="769" cy="-523" rx="48.19" ry="18"/>
- <text text-anchor="middle" x="769" y="-519.3" font-family="Times,serif" font-size="14.00">pcaudiolib</text>
- </a>
- </g>
- </g>
- <!-- pcaudiolib->ALSA -->
- <g id="edge72" class="edge">
- <title>pcaudiolib->ALSA</title>
- <path fill="none" stroke="black" d="M792.78,-507.29C805.73,-499.88 822.27,-491.36 838,-486 881.16,-471.28 894.64,-478.53 939,-468 945.2,-466.53 951.72,-464.78 958.05,-462.97"/>
- <polygon fill="black" stroke="black" points="959.15,-466.29 967.76,-460.11 957.18,-459.58 959.15,-466.29"/>
- </g>
- <!-- pcaudiolib->PulseAudio -->
- <g id="edge73" class="edge">
- <title>pcaudiolib->PulseAudio</title>
- <path fill="none" stroke="black" d="M777.26,-504.91C788.08,-484.37 809.02,-450.4 837,-432 883.27,-401.57 945.15,-388.28 991.66,-382.47"/>
- <polygon fill="black" stroke="black" points="992.11,-385.95 1001.64,-381.31 991.3,-378.99 992.11,-385.95"/>
- </g>
- </g>
- </svg>