logo

blog

My little blog can’t be this cute!

linux-audio-output.svg (66876B)


  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  3. "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  4. <!-- Generated by graphviz version 2.42.3 (20191010.1750)
  5. -->
  6. <!-- Title: Linux Audio Output APIs Pages: 1 -->
  7. <svg width="2637pt" height="943pt"
  8. viewBox="0.00 0.00 2637.00 942.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  9. <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 938.74)">
  10. <title>Linux Audio Output APIs</title>
  11. <polygon fill="white" stroke="transparent" points="-4,4 -4,-938.74 2633,-938.74 2633,4 -4,4"/>
  12. <text text-anchor="middle" x="1314.5" y="-37.8" font-family="Times,serif" font-size="14.00">Linux Audio Output APIs</text>
  13. <text text-anchor="middle" x="1314.5" y="-22.8" font-family="Times,serif" font-size="14.00"> CC&#45;BY 4.0 © 2020 Haelwenn (lanodan) Monnier</text>
  14. <text text-anchor="middle" x="1314.5" y="-7.8" font-family="Times,serif" font-size="14.00"> https://hacktivis.me/articles/linux&#45;audio&#45;output</text>
  15. <!-- network card -->
  16. <g id="node1" class="node">
  17. <title>network card</title>
  18. <polygon fill="cyan" stroke="black" points="998,-89 910,-89 910,-53 998,-53 998,-89"/>
  19. <text text-anchor="middle" x="954" y="-67.3" font-family="Times,serif" font-size="14.00">network card</text>
  20. </g>
  21. <!-- sound card -->
  22. <g id="node2" class="node">
  23. <title>sound card</title>
  24. <polygon fill="cyan" stroke="black" points="1561,-235 1485,-235 1485,-199 1561,-199 1561,-235"/>
  25. <text text-anchor="middle" x="1523" y="-213.3" font-family="Times,serif" font-size="14.00">sound card</text>
  26. </g>
  27. <!-- phone modem -->
  28. <g id="node3" class="node">
  29. <title>phone modem</title>
  30. <polygon fill="cyan" stroke="black" points="1509.5,-395 1414.5,-395 1414.5,-359 1509.5,-359 1509.5,-395"/>
  31. <text text-anchor="middle" x="1462" y="-373.3" font-family="Times,serif" font-size="14.00">phone modem</text>
  32. </g>
  33. <!-- Bluetooth card -->
  34. <g id="node4" class="node">
  35. <title>Bluetooth card</title>
  36. <polygon fill="cyan" stroke="black" points="1396.5,-395 1299.5,-395 1299.5,-359 1396.5,-359 1396.5,-395"/>
  37. <text text-anchor="middle" x="1348" y="-373.3" font-family="Times,serif" font-size="14.00">Bluetooth card</text>
  38. </g>
  39. <!-- filesystem -->
  40. <g id="node5" class="node">
  41. <title>filesystem</title>
  42. <polygon fill="yellow" stroke="black" points="1383.21,-296.54 1383.21,-311.46 1353.21,-322 1310.79,-322 1280.79,-311.46 1280.79,-296.54 1310.79,-286 1353.21,-286 1383.21,-296.54"/>
  43. <text text-anchor="middle" x="1332" y="-300.3" font-family="Times,serif" font-size="14.00">filesystem</text>
  44. </g>
  45. <!-- null -->
  46. <g id="node6" class="node">
  47. <title>null</title>
  48. <polygon fill="red" stroke="black" points="1832,-322 1797.14,-304 1832,-286 1866.86,-304 1832,-322"/>
  49. <text text-anchor="middle" x="1832" y="-300.3" font-family="Times,serif" font-size="14.00">null</text>
  50. </g>
  51. <!-- ? -->
  52. <g id="node7" class="node">
  53. <title>?</title>
  54. <ellipse fill="red" stroke="black" cx="168" cy="-304" rx="18" ry="18"/>
  55. <text text-anchor="middle" x="168" y="-300.3" font-family="Times,serif" font-size="14.00">?</text>
  56. </g>
  57. <!-- portaudio -->
  58. <g id="node8" class="node">
  59. <title>portaudio</title>
  60. <g id="a_node8"><a xlink:href="https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/" xlink:title="portaudio">
  61. <ellipse fill="lightgrey" stroke="black" cx="2037" cy="-770.74" rx="44.39" ry="18"/>
  62. <text text-anchor="middle" x="2037" y="-767.04" font-family="Times,serif" font-size="14.00">portaudio</text>
  63. </a>
  64. </g>
  65. </g>
  66. <!-- ALSA -->
  67. <g id="node9" class="node">
  68. <title>ALSA</title>
  69. <g id="a_node9"><a xlink:href="https://alsa-project.org/wiki/Asoundrc#Plugins" xlink:title="ALSA">
  70. <polygon fill="yellow" stroke="black" points="1245.66,-690.28 1245.66,-705.2 1224.19,-715.74 1193.81,-715.74 1172.34,-705.2 1172.34,-690.28 1193.81,-679.74 1224.19,-679.74 1245.66,-690.28"/>
  71. <text text-anchor="middle" x="1209" y="-694.04" font-family="Times,serif" font-size="14.00">ALSA</text>
  72. </a>
  73. </g>
  74. </g>
  75. <!-- portaudio&#45;&gt;ALSA -->
  76. <g id="edge1" class="edge">
  77. <title>portaudio&#45;&gt;ALSA</title>
  78. <path fill="none" stroke="black" d="M1996.06,-763.87C1970.26,-760.31 1936.23,-755.87 1906,-752.74 1661.86,-727.46 1368.5,-708.42 1256.02,-701.54"/>
  79. <polygon fill="black" stroke="black" points="1255.91,-698.03 1245.71,-700.91 1255.48,-705.01 1255.91,-698.03"/>
  80. </g>
  81. <!-- JACK -->
  82. <g id="node10" class="node">
  83. <title>JACK</title>
  84. <ellipse fill="lightgrey" stroke="black" cx="1540" cy="-464" rx="32.49" ry="18"/>
  85. <text text-anchor="middle" x="1540" y="-460.3" font-family="Times,serif" font-size="14.00">JACK</text>
  86. </g>
  87. <!-- portaudio&#45;&gt;JACK -->
  88. <g id="edge2" class="edge">
  89. <title>portaudio&#45;&gt;JACK</title>
  90. <path fill="none" stroke="black" d="M1995.71,-764.21C1901.65,-751.52 1679.07,-721.04 1673,-715.74 1616.6,-666.51 1667.27,-616.45 1626,-554 1619.04,-543.46 1612.82,-545.04 1604,-536 1589.85,-521.49 1589.52,-515.1 1576,-500 1572.15,-495.7 1567.88,-491.28 1563.67,-487.09"/>
  91. <polygon fill="black" stroke="black" points="1565.86,-484.34 1556.25,-479.88 1560.98,-489.36 1565.86,-484.34"/>
  92. </g>
  93. <!-- OSS -->
  94. <g id="node11" class="node">
  95. <title>OSS</title>
  96. <polygon fill="yellow" stroke="black" points="939.69,-296.54 939.69,-311.46 922.88,-322 899.12,-322 882.31,-311.46 882.31,-296.54 899.12,-286 922.88,-286 939.69,-296.54"/>
  97. <text text-anchor="middle" x="911" y="-300.3" font-family="Times,serif" font-size="14.00">OSS</text>
  98. </g>
  99. <!-- portaudio&#45;&gt;OSS -->
  100. <g id="edge3" class="edge">
  101. <title>portaudio&#45;&gt;OSS</title>
  102. <path fill="none" stroke="black" d="M2033.97,-752.55C2020.9,-684.49 1962.22,-433.86 1796,-359 1776.42,-350.18 1118.16,-315.69 949.87,-307"/>
  103. <polygon fill="black" stroke="black" points="949.89,-303.49 939.73,-306.47 949.53,-310.48 949.89,-303.49"/>
  104. </g>
  105. <!-- asihpi -->
  106. <g id="node12" class="node">
  107. <title>asihpi</title>
  108. <polygon fill="yellow" stroke="black" points="2258.44,-510.54 2258.44,-525.46 2238.27,-536 2209.73,-536 2189.56,-525.46 2189.56,-510.54 2209.73,-500 2238.27,-500 2258.44,-510.54"/>
  109. <text text-anchor="middle" x="2224" y="-514.3" font-family="Times,serif" font-size="14.00">asihpi</text>
  110. </g>
  111. <!-- portaudio&#45;&gt;asihpi -->
  112. <g id="edge4" class="edge">
  113. <title>portaudio&#45;&gt;asihpi</title>
  114. <path fill="none" stroke="black" d="M2060.87,-755.49C2076.45,-745.52 2096.65,-731.25 2112,-715.74 2162.45,-664.74 2197.9,-586.45 2214.09,-545.71"/>
  115. <polygon fill="black" stroke="black" points="2217.42,-546.79 2217.79,-536.2 2210.9,-544.25 2217.42,-546.79"/>
  116. </g>
  117. <!-- sndio -->
  118. <g id="node13" class="node">
  119. <title>sndio</title>
  120. <g id="a_node13"><a xlink:href="http://www.sndio.org/" xlink:title="sndio">
  121. <ellipse fill="lightgrey" stroke="black" cx="1417" cy="-144" rx="29.8" ry="18"/>
  122. <text text-anchor="middle" x="1417" y="-140.3" font-family="Times,serif" font-size="14.00">sndio</text>
  123. </a>
  124. </g>
  125. </g>
  126. <!-- portaudio&#45;&gt;sndio -->
  127. <g id="edge6" class="edge">
  128. <title>portaudio&#45;&gt;sndio</title>
  129. <path fill="none" stroke="black" d="M2066.12,-756.94C2087.4,-747.01 2116.52,-732.19 2140,-715.74 2251.15,-637.85 2655.9,-394.23 2574,-286 2488.17,-172.57 2403.57,-235.17 2266,-199 2231.49,-189.93 2223.32,-185.05 2188,-180 2044.67,-159.49 1593.85,-148.66 1456.87,-145.79"/>
  130. <polygon fill="black" stroke="black" points="1456.88,-142.29 1446.81,-145.58 1456.74,-149.29 1456.88,-142.29"/>
  131. </g>
  132. <!-- ALSA&#45;&gt;network card -->
  133. <g id="edge79" class="edge">
  134. <title>ALSA&#45;&gt;network card</title>
  135. <path fill="none" stroke="green" d="M1172.29,-695.93C1106.7,-693.86 972.64,-686.62 934,-661.74 886.78,-631.34 693.14,-239.59 692,-235 667.98,-138.46 816.67,-96.21 900.15,-80.28"/>
  136. <polygon fill="green" stroke="green" points="900.79,-83.73 909.99,-78.47 899.52,-76.84 900.79,-83.73"/>
  137. </g>
  138. <!-- ALSA&#45;&gt;sound card -->
  139. <g id="edge78" class="edge">
  140. <title>ALSA&#45;&gt;sound card</title>
  141. <path fill="none" stroke="green" d="M1181.39,-685.84C1168.76,-679.96 1154.16,-671.83 1143,-661.74 1061.6,-588.18 977.03,-545.63 1023,-446 1078.11,-326.56 1145.37,-321.63 1272,-286 1360.04,-261.23 1394.94,-308.38 1477,-268 1488.46,-262.36 1498.45,-252.55 1506.17,-243.1"/>
  142. <polygon fill="green" stroke="green" points="1509.07,-245.08 1512.35,-235 1503.5,-240.83 1509.07,-245.08"/>
  143. </g>
  144. <!-- ALSA&#45;&gt;filesystem -->
  145. <g id="edge84" class="edge">
  146. <title>ALSA&#45;&gt;filesystem</title>
  147. <path fill="none" stroke="black" d="M1182.45,-685.15C1172.96,-679.54 1163.3,-671.81 1158,-661.74 1126.03,-601.02 1174.05,-410.86 1219,-359 1235.44,-340.04 1260.02,-327.19 1282.07,-318.81"/>
  148. <polygon fill="black" stroke="black" points="1283.42,-322.04 1291.65,-315.38 1281.06,-315.45 1283.42,-322.04"/>
  149. </g>
  150. <!-- ALSA&#45;&gt;null -->
  151. <g id="edge83" class="edge">
  152. <title>ALSA&#45;&gt;null</title>
  153. <path fill="none" stroke="red" d="M1204.93,-679.39C1192.88,-623.2 1163.81,-444.9 1257,-359 1296.04,-323.01 1664.16,-309.61 1790.03,-306.05"/>
  154. <polygon fill="red" stroke="red" points="1790.51,-309.54 1800.41,-305.77 1790.32,-302.54 1790.51,-309.54"/>
  155. </g>
  156. <!-- ALSA&#45;&gt;JACK -->
  157. <g id="edge81" class="edge">
  158. <title>ALSA&#45;&gt;JACK</title>
  159. <path fill="none" stroke="black" d="M1245.69,-693.18C1271.65,-689.1 1306.14,-680.37 1331,-661.74 1353.62,-644.79 1345.17,-628.14 1365,-608 1406,-566.37 1432.03,-575.6 1475,-536 1489.9,-522.26 1489.38,-515.01 1503,-500 1507.04,-495.55 1511.53,-491 1515.97,-486.72"/>
  160. <polygon fill="black" stroke="black" points="1518.4,-489.23 1523.27,-479.82 1513.59,-484.14 1518.4,-489.23"/>
  161. </g>
  162. <!-- ALSA&#45;&gt;sndio -->
  163. <g id="edge57" class="edge">
  164. <title>ALSA&#45;&gt;sndio</title>
  165. <path fill="none" stroke="black" d="M1190.27,-681.36C1186.3,-675.47 1182.9,-668.53 1181,-661.74 1132.04,-486.33 1098.28,-396.82 1210,-253 1252.86,-197.83 1332.14,-167.1 1379.32,-153.55"/>
  166. <polygon fill="black" stroke="black" points="1380.44,-156.87 1389.15,-150.84 1378.58,-150.12 1380.44,-156.87"/>
  167. </g>
  168. <!-- PulseAudio -->
  169. <g id="node14" class="node">
  170. <title>PulseAudio</title>
  171. <g id="a_node14"><a xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/" xlink:title="PulseAudio">
  172. <ellipse fill="lightgrey" stroke="black" cx="1796" cy="-572" rx="51.99" ry="18"/>
  173. <text text-anchor="middle" x="1796" y="-568.3" font-family="Times,serif" font-size="14.00">PulseAudio</text>
  174. </a>
  175. </g>
  176. </g>
  177. <!-- ALSA&#45;&gt;PulseAudio -->
  178. <g id="edge80" class="edge">
  179. <title>ALSA&#45;&gt;PulseAudio</title>
  180. <path fill="none" stroke="black" d="M1245.69,-690.14C1266.84,-686.93 1293.8,-683.06 1318,-679.74 1379.28,-671.33 1397.57,-682.02 1456,-661.74 1500.01,-646.47 1502.1,-623.59 1546,-608 1607.44,-586.18 1682.32,-577.95 1734.11,-574.85"/>
  181. <polygon fill="black" stroke="black" points="1734.36,-578.34 1744.15,-574.3 1733.97,-571.35 1734.36,-578.34"/>
  182. </g>
  183. <!-- bluez -->
  184. <g id="node15" class="node">
  185. <title>bluez</title>
  186. <polygon fill="yellow" stroke="black" points="1452.35,-456.54 1452.35,-471.46 1431.64,-482 1402.36,-482 1381.65,-471.46 1381.65,-456.54 1402.36,-446 1431.64,-446 1452.35,-456.54"/>
  187. <text text-anchor="middle" x="1417" y="-460.3" font-family="Times,serif" font-size="14.00">BlueZ</text>
  188. </g>
  189. <!-- ALSA&#45;&gt;bluez -->
  190. <g id="edge18" class="edge">
  191. <title>ALSA&#45;&gt;bluez</title>
  192. <path fill="none" stroke="black" d="M1243.84,-689.21C1262.1,-683.91 1283.96,-675.27 1300,-661.74 1314.8,-649.25 1374.9,-541.71 1402.73,-491.11"/>
  193. <polygon fill="black" stroke="black" points="1405.95,-492.53 1407.69,-482.08 1399.81,-489.16 1405.95,-492.53"/>
  194. </g>
  195. <!-- aRts -->
  196. <g id="node20" class="node">
  197. <title>aRts</title>
  198. <ellipse fill="lightgrey" stroke="black" cx="472" cy="-144" rx="27" ry="18"/>
  199. <text text-anchor="middle" x="472" y="-140.3" font-family="Times,serif" font-size="14.00">aRts</text>
  200. </g>
  201. <!-- ALSA&#45;&gt;aRts -->
  202. <g id="edge82" class="edge">
  203. <title>ALSA&#45;&gt;aRts</title>
  204. <path fill="none" stroke="black" d="M1172.38,-695.56C1090.99,-692.57 897.43,-683.36 836,-661.74 744.58,-629.56 472,-518.42 472,-421.5 472,-421.5 472,-421.5 472,-216 472,-201.65 472,-185.67 472,-172.51"/>
  205. <polygon fill="black" stroke="black" points="475.5,-172.22 472,-162.22 468.5,-172.22 475.5,-172.22"/>
  206. </g>
  207. <!-- PipeWire -->
  208. <g id="node26" class="node">
  209. <title>PipeWire</title>
  210. <g id="a_node26"><a xlink:href="http://pipewire.org/" xlink:title="PipeWire">
  211. <ellipse fill="lightgrey" stroke="black" cx="1572" cy="-377" rx="44.39" ry="18"/>
  212. <text text-anchor="middle" x="1572" y="-373.3" font-family="Times,serif" font-size="14.00">PipeWire</text>
  213. </a>
  214. </g>
  215. </g>
  216. <!-- ALSA&#45;&gt;PipeWire -->
  217. <g id="edge50" class="edge">
  218. <title>ALSA&#45;&gt;PipeWire</title>
  219. <path fill="none" stroke="black" d="M1212.54,-679.73C1223.04,-633.89 1258.45,-507.12 1340,-446 1406.19,-396.39 1439.83,-418.97 1519,-395 1522.29,-394 1525.69,-392.96 1529.1,-391.89"/>
  220. <polygon fill="black" stroke="black" points="1530.21,-395.21 1538.69,-388.87 1528.1,-388.54 1530.21,-395.21"/>
  221. </g>
  222. <!-- JACK&#45;&gt;PipeWire -->
  223. <g id="edge51" class="edge">
  224. <title>JACK&#45;&gt;PipeWire</title>
  225. <path fill="none" stroke="black" d="M1546.32,-446.21C1550.81,-434.29 1556.92,-418.06 1562.05,-404.42"/>
  226. <polygon fill="black" stroke="black" points="1565.33,-405.64 1565.58,-395.05 1558.78,-403.17 1565.33,-405.64"/>
  227. </g>
  228. <!-- OSS&#45;&gt;sound card -->
  229. <g id="edge86" class="edge">
  230. <title>OSS&#45;&gt;sound card</title>
  231. <path fill="none" stroke="green" d="M939.7,-299.01C1036.71,-285.54 1353.17,-241.59 1474.79,-224.7"/>
  232. <polygon fill="green" stroke="green" points="1475.49,-228.13 1484.91,-223.29 1474.53,-221.2 1475.49,-228.13"/>
  233. <text text-anchor="middle" x="1363" y="-256.8" font-family="Times,serif" font-size="14.00" fill="green">third&#45;party drivers from opensound.com</text>
  234. </g>
  235. <!-- OSS&#45;&gt;ALSA -->
  236. <g id="edge85" class="edge">
  237. <title>OSS&#45;&gt;ALSA</title>
  238. <path fill="none" stroke="black" d="M913.95,-322.1C919.66,-354 933.35,-424.55 952,-482 955.35,-492.31 1019.58,-654.92 1028,-661.74 1048.17,-678.08 1115.47,-687.77 1162.06,-692.67"/>
  239. <polygon fill="black" stroke="black" points="1161.94,-696.18 1172.24,-693.7 1162.65,-689.21 1161.94,-696.18"/>
  240. </g>
  241. <!-- RoarAudio -->
  242. <g id="node23" class="node">
  243. <title>RoarAudio</title>
  244. <g id="a_node23"><a xlink:href="http://roaraudio.keep-cool.org/" xlink:title="RoarAudio">
  245. <ellipse fill="lightgrey" stroke="black" cx="993" cy="-217" rx="50.09" ry="18"/>
  246. <text text-anchor="middle" x="993" y="-213.3" font-family="Times,serif" font-size="14.00">RoarAudio</text>
  247. </a>
  248. </g>
  249. </g>
  250. <!-- OSS&#45;&gt;RoarAudio -->
  251. <g id="edge35" class="edge">
  252. <title>OSS&#45;&gt;RoarAudio</title>
  253. <path fill="none" stroke="black" d="M926.04,-287.41C938.4,-274.59 956.12,-256.23 970.22,-241.61"/>
  254. <polygon fill="black" stroke="black" points="972.79,-243.99 977.22,-234.36 967.75,-239.13 972.79,-243.99"/>
  255. </g>
  256. <!-- asihpi&#45;&gt;sound card -->
  257. <g id="edge5" class="edge">
  258. <title>asihpi&#45;&gt;sound card</title>
  259. <path fill="none" stroke="green" d="M2225.83,-499.66C2229.91,-450.44 2233.73,-309.79 2152,-253 2104.79,-220.19 1710.77,-217.67 1571.52,-217.81"/>
  260. <polygon fill="green" stroke="green" points="1571.16,-214.31 1561.16,-217.83 1571.17,-221.31 1571.16,-214.31"/>
  261. </g>
  262. <!-- sndio&#45;&gt;network card -->
  263. <g id="edge55" class="edge">
  264. <title>sndio&#45;&gt;network card</title>
  265. <path fill="none" stroke="black" d="M1378.33,-137.07C1295.86,-124.42 1102.53,-94.78 1007.98,-80.28"/>
  266. <polygon fill="black" stroke="black" points="1377.97,-140.56 1388.39,-138.61 1379.03,-133.64 1377.97,-140.56"/>
  267. <polygon fill="black" stroke="black" points="1008.47,-76.81 998.05,-78.76 1007.41,-83.73 1008.47,-76.81"/>
  268. </g>
  269. <!-- sndio&#45;&gt;ALSA -->
  270. <g id="edge54" class="edge">
  271. <title>sndio&#45;&gt;ALSA</title>
  272. <path fill="none" stroke="black" d="M1391.29,-153.52C1350.22,-167.07 1270.88,-197.8 1228,-253 1116.28,-396.82 1150.04,-486.33 1199,-661.74 1199.8,-664.61 1200.87,-667.51 1202.06,-670.34"/>
  273. <polygon fill="black" stroke="black" points="1198.94,-671.96 1206.29,-679.6 1205.31,-669.05 1198.94,-671.96"/>
  274. </g>
  275. <!-- PulseAudio&#45;&gt;network card -->
  276. <g id="edge9" class="edge">
  277. <title>PulseAudio&#45;&gt;network card</title>
  278. <path fill="none" stroke="green" d="M1855.34,-564.87C1890.01,-559.9 1934.08,-551.13 1971,-536 2161.14,-458.08 2405.21,-331.14 2266,-180 2179.51,-86.1 1244.61,-73.84 1008.11,-72.24"/>
  279. <polygon fill="green" stroke="green" points="1854.8,-561.41 1845.36,-566.24 1855.74,-568.35 1854.8,-561.41"/>
  280. <polygon fill="green" stroke="green" points="1008.05,-68.74 998.03,-72.18 1008.01,-75.74 1008.05,-68.74"/>
  281. <text text-anchor="middle" x="2437.5" y="-300.3" font-family="Times,serif" font-size="14.00" fill="green">DLNA, RTP, SDP, SAP, RAOP, Tunnel, HTTP</text>
  282. </g>
  283. <!-- PulseAudio&#45;&gt;sound card -->
  284. <g id="edge11" class="edge">
  285. <title>PulseAudio&#45;&gt;sound card</title>
  286. <path fill="none" stroke="green" d="M1847.06,-568.47C1878.01,-564.78 1916.99,-556.11 1946,-536 1956.7,-528.58 2072.23,-353.46 2076,-341 2076.13,-340.57 2076.26,-340.36 2076,-340 2017.6,-257.27 1695.12,-228.69 1571.37,-220.68"/>
  287. <polygon fill="green" stroke="green" points="1571.27,-217.16 1561.07,-220.03 1570.83,-224.15 1571.27,-217.16"/>
  288. </g>
  289. <!-- PulseAudio&#45;&gt;null -->
  290. <g id="edge10" class="edge">
  291. <title>PulseAudio&#45;&gt;null</title>
  292. <path fill="none" stroke="red" d="M1826.61,-557.37C1835.08,-552 1843.24,-544.93 1848,-536 1884.2,-468 1857.24,-372.36 1841.39,-328.57"/>
  293. <polygon fill="red" stroke="red" points="1844.62,-327.21 1837.83,-319.08 1838.07,-329.67 1844.62,-327.21"/>
  294. </g>
  295. <!-- PulseAudio&#45;&gt;ALSA -->
  296. <g id="edge7" class="edge">
  297. <title>PulseAudio&#45;&gt;ALSA</title>
  298. <path fill="none" stroke="black" d="M1744.67,-575.08C1696.71,-578.35 1623.96,-586.7 1564,-608 1520.1,-623.59 1518.01,-646.47 1474,-661.74 1415.57,-682.02 1397.28,-671.33 1336,-679.74 1309.54,-683.37 1279.76,-687.66 1255.59,-691.03"/>
  299. <polygon fill="black" stroke="black" points="1255.03,-687.57 1245.6,-692.4 1255.99,-694.5 1255.03,-687.57"/>
  300. </g>
  301. <!-- PulseAudio&#45;&gt;JACK -->
  302. <g id="edge12" class="edge">
  303. <title>PulseAudio&#45;&gt;JACK</title>
  304. <path fill="none" stroke="black" d="M1755.11,-560.74C1738.23,-555.21 1719.12,-547.18 1704,-536 1687.7,-523.95 1693.3,-510.57 1676,-500 1639.33,-477.59 1622.18,-494.29 1581,-482 1578.69,-481.31 1576.34,-480.54 1573.99,-479.71"/>
  305. <polygon fill="black" stroke="black" points="1575.01,-476.36 1564.42,-476.09 1572.53,-482.9 1575.01,-476.36"/>
  306. </g>
  307. <!-- PulseAudio&#45;&gt;OSS -->
  308. <g id="edge8" class="edge">
  309. <title>PulseAudio&#45;&gt;OSS</title>
  310. <path fill="none" stroke="black" d="M1808.66,-544.54C1819.31,-518.24 1830.54,-477.4 1815,-446 1786.74,-388.87 1761.01,-380.47 1701,-359 1647.82,-339.97 1249.29,-345.58 1193,-341 1105.84,-333.91 1004.24,-319.39 949.94,-311.12"/>
  311. <polygon fill="black" stroke="black" points="1805.39,-543.28 1804.66,-553.85 1811.82,-546.04 1805.39,-543.28"/>
  312. <polygon fill="black" stroke="black" points="950.15,-307.61 939.73,-309.55 949.09,-314.53 950.15,-307.61"/>
  313. </g>
  314. <!-- PulseAudio&#45;&gt;sndio -->
  315. <g id="edge56" class="edge">
  316. <title>PulseAudio&#45;&gt;sndio</title>
  317. <path fill="none" stroke="black" d="M1847.35,-568.51C1884.11,-564.95 1933.83,-556.41 1973,-536 2083.95,-478.2 2176,-466.1 2176,-341 2176,-341 2176,-341 2176,-216 2176,-143.15 1614.49,-143.09 1457.4,-144.5"/>
  318. <polygon fill="black" stroke="black" points="1457.19,-141 1447.22,-144.6 1457.26,-148 1457.19,-141"/>
  319. </g>
  320. <!-- PulseAudio&#45;&gt;bluez -->
  321. <g id="edge13" class="edge">
  322. <title>PulseAudio&#45;&gt;bluez</title>
  323. <path fill="none" stroke="black" d="M1756.87,-560.06C1684.71,-539.87 1531.35,-496.98 1457.89,-476.44"/>
  324. <polygon fill="black" stroke="black" points="1458.64,-473.01 1448.07,-473.69 1456.76,-479.75 1458.64,-473.01"/>
  325. </g>
  326. <!-- ofono -->
  327. <g id="node16" class="node">
  328. <title>ofono</title>
  329. <polygon fill="yellow" stroke="black" points="1657.54,-456.54 1657.54,-471.46 1637.89,-482 1610.11,-482 1590.46,-471.46 1590.46,-456.54 1610.11,-446 1637.89,-446 1657.54,-456.54"/>
  330. <text text-anchor="middle" x="1624" y="-460.3" font-family="Times,serif" font-size="14.00">ofono</text>
  331. </g>
  332. <!-- PulseAudio&#45;&gt;ofono -->
  333. <g id="edge14" class="edge">
  334. <title>PulseAudio&#45;&gt;ofono</title>
  335. <path fill="none" stroke="black" d="M1763.93,-557.72C1752.25,-552.02 1739.38,-544.66 1729,-536 1713.44,-523.01 1716.91,-512.56 1701,-500 1689.41,-490.85 1675.04,-483.49 1661.86,-477.92"/>
  336. <polygon fill="black" stroke="black" points="1663.12,-474.65 1652.53,-474.18 1660.52,-481.15 1663.12,-474.65"/>
  337. </g>
  338. <!-- sox -->
  339. <g id="node17" class="node">
  340. <title>sox</title>
  341. <g id="a_node17"><a xlink:href="http://sox.sourceforge.net/Docs/Features" xlink:title="sox">
  342. <ellipse fill="lightgrey" stroke="black" cx="1779" cy="-464" rx="27" ry="18"/>
  343. <text text-anchor="middle" x="1779" y="-460.3" font-family="Times,serif" font-size="14.00">sox</text>
  344. </a>
  345. </g>
  346. </g>
  347. <!-- PulseAudio&#45;&gt;sox -->
  348. <g id="edge15" class="edge">
  349. <title>PulseAudio&#45;&gt;sox</title>
  350. <path fill="none" stroke="black" d="M1788.15,-553.97C1783.64,-537.28 1779.23,-511.58 1777.37,-492.08"/>
  351. <polygon fill="black" stroke="black" points="1780.85,-491.7 1776.61,-481.99 1773.87,-492.22 1780.85,-491.7"/>
  352. </g>
  353. <!-- PulseAudio&#45;&gt;PipeWire -->
  354. <g id="edge49" class="edge">
  355. <title>PulseAudio&#45;&gt;PipeWire</title>
  356. <path fill="none" stroke="black" d="M1767.42,-548.6C1762.78,-544.57 1758.14,-540.28 1754,-536 1739.91,-521.43 1739.75,-514.9 1726,-500 1701.89,-473.88 1694.61,-468.39 1667,-446 1646.1,-429.05 1621.34,-411.41 1602.34,-398.34"/>
  357. <polygon fill="black" stroke="black" points="1765.24,-551.34 1775.14,-555.1 1769.74,-545.99 1765.24,-551.34"/>
  358. <polygon fill="black" stroke="black" points="1604.29,-395.43 1594.05,-392.68 1600.34,-401.21 1604.29,-395.43"/>
  359. </g>
  360. <!-- bluez&#45;&gt;Bluetooth card -->
  361. <g id="edge19" class="edge">
  362. <title>bluez&#45;&gt;Bluetooth card</title>
  363. <path fill="none" stroke="green" d="M1381.74,-456.27C1365.83,-451.29 1348.52,-442.7 1339,-428 1334.62,-421.23 1334.51,-412.92 1336.19,-405.04"/>
  364. <polygon fill="green" stroke="green" points="1339.55,-406 1339.08,-395.42 1332.85,-403.99 1339.55,-406"/>
  365. </g>
  366. <!-- ofono&#45;&gt;phone modem -->
  367. <g id="edge17" class="edge">
  368. <title>ofono&#45;&gt;phone modem</title>
  369. <path fill="none" stroke="green" d="M1600.79,-450.82C1575.58,-437.59 1534.78,-416.18 1503.92,-400"/>
  370. <polygon fill="green" stroke="green" points="1505.18,-396.7 1494.69,-395.15 1501.92,-402.9 1505.18,-396.7"/>
  371. </g>
  372. <!-- sox&#45;&gt;filesystem -->
  373. <g id="edge20" class="edge">
  374. <title>sox&#45;&gt;filesystem</title>
  375. <path fill="none" stroke="black" d="M1771.69,-446.43C1760.3,-422.74 1735.92,-379.76 1701,-359 1650.29,-328.86 1484.8,-314.27 1393.64,-308.36"/>
  376. <polygon fill="black" stroke="black" points="1393.64,-304.85 1383.44,-307.71 1393.2,-311.84 1393.64,-304.85"/>
  377. </g>
  378. <!-- sox&#45;&gt;null -->
  379. <g id="edge21" class="edge">
  380. <title>sox&#45;&gt;null</title>
  381. <path fill="none" stroke="red" d="M1784.72,-446.03C1792.65,-422.47 1807.45,-378.51 1820,-341 1821.24,-337.28 1822.56,-333.35 1823.84,-329.5"/>
  382. <polygon fill="red" stroke="red" points="1827.26,-330.31 1827.1,-319.72 1820.62,-328.1 1827.26,-330.31"/>
  383. </g>
  384. <!-- sox&#45;&gt;ALSA -->
  385. <g id="edge24" class="edge">
  386. <title>sox&#45;&gt;ALSA</title>
  387. <path fill="none" stroke="black" d="M1756.76,-474.32C1704.55,-496.35 1570.3,-553.85 1461,-608 1416.14,-630.22 1408.84,-644.05 1362,-661.74 1327.42,-674.8 1286.52,-683.85 1255.71,-689.47"/>
  388. <polygon fill="black" stroke="black" points="1254.91,-686.05 1245.68,-691.24 1256.13,-692.95 1254.91,-686.05"/>
  389. </g>
  390. <!-- sox&#45;&gt;PulseAudio -->
  391. <g id="edge23" class="edge">
  392. <title>sox&#45;&gt;PulseAudio</title>
  393. <path fill="none" stroke="black" d="M1786.64,-481.29C1791.22,-497.91 1795.72,-523.97 1797.61,-543.74"/>
  394. <polygon fill="black" stroke="black" points="1794.14,-544.26 1798.38,-553.97 1801.12,-543.73 1794.14,-544.26"/>
  395. </g>
  396. <!-- libao -->
  397. <g id="node19" class="node">
  398. <title>libao</title>
  399. <g id="a_node19"><a xlink:href="https://www.xiph.org/ao/" xlink:title="libao">
  400. <ellipse fill="lightgrey" stroke="black" cx="1663" cy="-377" rx="28.7" ry="18"/>
  401. <text text-anchor="middle" x="1663" y="-373.3" font-family="Times,serif" font-size="14.00">libao</text>
  402. </a>
  403. </g>
  404. </g>
  405. <!-- sox&#45;&gt;libao -->
  406. <g id="edge22" class="edge">
  407. <title>sox&#45;&gt;libao</title>
  408. <path fill="none" stroke="black" d="M1761.38,-450.09C1742.25,-436.07 1711.47,-413.52 1689.43,-397.37"/>
  409. <polygon fill="black" stroke="black" points="1691.3,-394.4 1681.17,-391.31 1687.16,-400.05 1691.3,-394.4"/>
  410. </g>
  411. <!-- X11 bell -->
  412. <g id="node18" class="node">
  413. <title>X11 bell</title>
  414. <ellipse fill="lightgrey" stroke="black" cx="1724" cy="-697.74" rx="41.69" ry="18"/>
  415. <text text-anchor="middle" x="1724" y="-694.04" font-family="Times,serif" font-size="14.00">X11 bell</text>
  416. </g>
  417. <!-- X11 bell&#45;&gt;PulseAudio -->
  418. <g id="edge16" class="edge">
  419. <title>X11 bell&#45;&gt;PulseAudio</title>
  420. <path fill="none" stroke="black" d="M1733.16,-679.92C1743.01,-661.97 1759.25,-632.77 1774,-608 1775.91,-604.79 1777.96,-601.44 1780,-598.13"/>
  421. <polygon fill="black" stroke="black" points="1782.98,-599.97 1785.32,-589.63 1777.05,-596.26 1782.98,-599.97"/>
  422. </g>
  423. <!-- libao&#45;&gt;filesystem -->
  424. <g id="edge25" class="edge">
  425. <title>libao&#45;&gt;filesystem</title>
  426. <path fill="none" stroke="black" d="M1641.24,-365.2C1636.01,-362.91 1630.38,-360.67 1625,-359 1546.91,-334.72 1453.52,-319.83 1393.51,-312"/>
  427. <polygon fill="black" stroke="black" points="1393.81,-308.51 1383.44,-310.71 1392.92,-315.45 1393.81,-308.51"/>
  428. </g>
  429. <!-- libao&#45;&gt;null -->
  430. <g id="edge31" class="edge">
  431. <title>libao&#45;&gt;null</title>
  432. <path fill="none" stroke="red" d="M1691.38,-374.78C1722.02,-372.24 1771.13,-364.49 1806,-341 1811.24,-337.47 1815.8,-332.51 1819.56,-327.39"/>
  433. <polygon fill="red" stroke="red" points="1822.59,-329.15 1825.14,-318.87 1816.74,-325.32 1822.59,-329.15"/>
  434. </g>
  435. <!-- libao&#45;&gt;ALSA -->
  436. <g id="edge27" class="edge">
  437. <title>libao&#45;&gt;ALSA</title>
  438. <path fill="none" stroke="black" d="M1641.22,-388.73C1635.99,-391.03 1630.37,-393.28 1625,-395 1516.18,-429.88 1466.84,-380.79 1373,-446 1326.66,-478.21 1272.35,-616.21 1239,-661.74 1236.5,-665.15 1233.75,-668.65 1230.97,-672.05"/>
  439. <polygon fill="black" stroke="black" points="1228.27,-669.82 1224.5,-679.72 1233.62,-674.33 1228.27,-669.82"/>
  440. </g>
  441. <!-- libao&#45;&gt;OSS -->
  442. <g id="edge26" class="edge">
  443. <title>libao&#45;&gt;OSS</title>
  444. <path fill="none" stroke="black" d="M1641.8,-364.79C1636.46,-362.45 1630.63,-360.3 1625,-359 1511.27,-332.67 1216.01,-353.96 1100,-341 1047.35,-335.12 987.4,-322.71 949.4,-314.12"/>
  445. <polygon fill="black" stroke="black" points="949.82,-310.62 939.29,-311.8 948.26,-317.44 949.82,-310.62"/>
  446. </g>
  447. <!-- libao&#45;&gt;sndio -->
  448. <g id="edge34" class="edge">
  449. <title>libao&#45;&gt;sndio</title>
  450. <path fill="none" stroke="black" d="M1658.62,-358.99C1648.77,-324.03 1621.59,-243.62 1570,-199 1537.56,-170.94 1489.59,-157.16 1456.04,-150.59"/>
  451. <polygon fill="black" stroke="black" points="1456.59,-147.14 1446.12,-148.78 1455.33,-154.02 1456.59,-147.14"/>
  452. </g>
  453. <!-- libao&#45;&gt;PulseAudio -->
  454. <g id="edge29" class="edge">
  455. <title>libao&#45;&gt;PulseAudio</title>
  456. <path fill="none" stroke="black" d="M1674.7,-393.58C1691.85,-416.57 1724.66,-461.07 1751,-500 1761.03,-514.83 1771.79,-531.75 1780.26,-545.36"/>
  457. <polygon fill="black" stroke="black" points="1777.49,-547.52 1785.73,-554.18 1783.44,-543.83 1777.49,-547.52"/>
  458. </g>
  459. <!-- libao&#45;&gt;aRts -->
  460. <g id="edge28" class="edge">
  461. <title>libao&#45;&gt;aRts</title>
  462. <path fill="none" stroke="black" d="M1641.8,-364.79C1636.46,-362.45 1630.63,-360.3 1625,-359 1461.98,-321.32 1035.05,-363.64 873,-322 725.83,-284.18 564.28,-197.67 500.32,-161.44"/>
  463. <polygon fill="black" stroke="black" points="502.02,-158.38 491.6,-156.47 498.55,-164.46 502.02,-158.38"/>
  464. </g>
  465. <!-- ESD -->
  466. <g id="node21" class="node">
  467. <title>ESD</title>
  468. <ellipse fill="lightgrey" stroke="black" cx="839" cy="-144" rx="27.1" ry="18"/>
  469. <text text-anchor="middle" x="839" y="-140.3" font-family="Times,serif" font-size="14.00">ESD</text>
  470. </g>
  471. <!-- libao&#45;&gt;ESD -->
  472. <g id="edge30" class="edge">
  473. <title>libao&#45;&gt;ESD</title>
  474. <path fill="none" stroke="black" d="M1641.36,-364.79C1636.12,-362.51 1630.46,-360.39 1625,-359 1522.4,-332.89 1253.08,-346.17 1150,-322 1049.24,-298.37 1021.1,-290.9 934,-235 904.76,-216.23 876.55,-187.77 858.58,-167.89"/>
  475. <polygon fill="black" stroke="black" points="861.02,-165.36 851.76,-160.21 855.78,-170.01 861.02,-165.36"/>
  476. </g>
  477. <!-- NAS -->
  478. <g id="node22" class="node">
  479. <title>NAS</title>
  480. <ellipse fill="lightgrey" stroke="black" cx="295" cy="-304" rx="90.98" ry="18"/>
  481. <text text-anchor="middle" x="295" y="-300.3" font-family="Times,serif" font-size="14.00">Network Audio Server</text>
  482. </g>
  483. <!-- libao&#45;&gt;NAS -->
  484. <g id="edge32" class="edge">
  485. <title>libao&#45;&gt;NAS</title>
  486. <path fill="none" stroke="black" d="M1641.81,-364.75C1636.47,-362.41 1630.64,-360.27 1625,-359 1539.57,-339.74 924.49,-344.9 837,-341 679.11,-333.96 495.66,-320.71 387.78,-312.39"/>
  487. <polygon fill="black" stroke="black" points="387.82,-308.89 377.58,-311.61 387.28,-315.87 387.82,-308.89"/>
  488. </g>
  489. <!-- libao&#45;&gt;RoarAudio -->
  490. <g id="edge33" class="edge">
  491. <title>libao&#45;&gt;RoarAudio</title>
  492. <path fill="none" stroke="black" d="M1641.33,-364.89C1636.1,-362.61 1630.44,-360.46 1625,-359 1472.66,-318.06 1425.57,-358.06 1272,-322 1183.41,-301.2 1084.72,-259.83 1031.72,-236.01"/>
  493. <polygon fill="black" stroke="black" points="1032.92,-232.71 1022.37,-231.78 1030.04,-239.09 1032.92,-232.71"/>
  494. </g>
  495. <!-- ESD&#45;&gt;network card -->
  496. <g id="edge43" class="edge">
  497. <title>ESD&#45;&gt;network card</title>
  498. <path fill="none" stroke="black" d="M858.25,-131.12C874.33,-121.19 897.71,-106.75 917.35,-94.63"/>
  499. <polygon fill="black" stroke="black" points="919.39,-97.48 926.06,-89.25 915.72,-91.52 919.39,-97.48"/>
  500. </g>
  501. <!-- ESD&#45;&gt;ALSA -->
  502. <g id="edge42" class="edge">
  503. <title>ESD&#45;&gt;ALSA</title>
  504. <path fill="none" stroke="black" d="M829.04,-160.95C809.48,-194.27 769.33,-273.77 786,-341 809.58,-436.13 832.75,-455.73 889,-536 932.29,-597.78 936.85,-625.49 1003,-661.74 1052.63,-688.94 1118.26,-695.98 1161.97,-697.34"/>
  505. <polygon fill="black" stroke="black" points="1161.97,-700.84 1172.04,-697.56 1162.12,-693.84 1161.97,-700.84"/>
  506. </g>
  507. <!-- ESD&#45;&gt;OSS -->
  508. <g id="edge41" class="edge">
  509. <title>ESD&#45;&gt;OSS</title>
  510. <path fill="none" stroke="black" d="M841.72,-162.21C845.07,-180.8 851.76,-210.98 863,-235 870.31,-250.63 881.25,-266.48 890.84,-278.94"/>
  511. <polygon fill="black" stroke="black" points="888.25,-281.31 897.2,-286.98 893.74,-276.96 888.25,-281.31"/>
  512. </g>
  513. <!-- NAS&#45;&gt;network card -->
  514. <g id="edge108" class="edge">
  515. <title>NAS&#45;&gt;network card</title>
  516. <path fill="none" stroke="black" d="M302.48,-285.82C319.72,-248.65 366.21,-161.24 436,-126 516.21,-85.5 784.1,-75.34 899.91,-72.82"/>
  517. <polygon fill="black" stroke="black" points="900.04,-76.32 909.97,-72.61 899.9,-69.32 900.04,-76.32"/>
  518. </g>
  519. <!-- RoarAudio&#45;&gt;network card -->
  520. <g id="edge40" class="edge">
  521. <title>RoarAudio&#45;&gt;network card</title>
  522. <path fill="none" stroke="black" d="M985.67,-188.93C978.69,-163.16 968.25,-124.6 961.28,-98.89"/>
  523. <polygon fill="black" stroke="black" points="982.38,-190.18 988.37,-198.92 989.14,-188.35 982.38,-190.18"/>
  524. <polygon fill="black" stroke="black" points="964.61,-97.8 958.62,-89.06 957.86,-99.63 964.61,-97.8"/>
  525. <text text-anchor="middle" x="1047.5" y="-140.3" font-family="Times,serif" font-size="14.00">IPv4, DECnet, OpenSLP</text>
  526. </g>
  527. <!-- RoarAudio&#45;&gt;sndio -->
  528. <g id="edge36" class="edge">
  529. <title>RoarAudio&#45;&gt;sndio</title>
  530. <path fill="none" stroke="black" d="M1034.71,-206.98C1071.11,-199.27 1125.41,-188.17 1173,-180 1245.11,-167.63 1329.72,-156.17 1377.98,-149.93"/>
  531. <polygon fill="black" stroke="black" points="1378.53,-153.38 1388,-148.64 1377.63,-146.44 1378.53,-153.38"/>
  532. </g>
  533. <!-- RoarAudio&#45;&gt;PulseAudio -->
  534. <g id="edge37" class="edge">
  535. <title>RoarAudio&#45;&gt;PulseAudio</title>
  536. <path fill="none" stroke="black" d="M1033.4,-227.72C1084.95,-239.63 1177,-259.32 1257,-268 1291.2,-271.71 1851.8,-261.55 1876,-286 1891.69,-301.85 1907.2,-485.45 1868,-536 1861.74,-544.07 1853.14,-550.39 1844.06,-555.31"/>
  537. <polygon fill="black" stroke="black" points="1842.35,-552.24 1834.89,-559.76 1845.41,-558.54 1842.35,-552.24"/>
  538. </g>
  539. <!-- RoarAudio&#45;&gt;aRts -->
  540. <g id="edge39" class="edge">
  541. <title>RoarAudio&#45;&gt;aRts</title>
  542. <path fill="none" stroke="black" d="M946.76,-209.7C844.49,-195.76 600.84,-162.56 508.41,-149.96"/>
  543. <polygon fill="black" stroke="black" points="508.79,-146.48 498.41,-148.6 507.85,-153.42 508.79,-146.48"/>
  544. </g>
  545. <!-- RoarAudio&#45;&gt;ESD -->
  546. <g id="edge38" class="edge">
  547. <title>RoarAudio&#45;&gt;ESD</title>
  548. <path fill="none" stroke="black" d="M963.31,-202.31C936.53,-189.96 897.29,-171.87 870.09,-159.33"/>
  549. <polygon fill="black" stroke="black" points="871.2,-155.99 860.66,-154.98 868.27,-162.35 871.2,-155.99"/>
  550. </g>
  551. <!-- libcanberra -->
  552. <g id="node24" class="node">
  553. <title>libcanberra</title>
  554. <g id="a_node24"><a xlink:href="http://git.0pointer.net/libcanberra.git/tree/src/driver-order.c" xlink:title="libcanberra">
  555. <ellipse fill="lightgrey" stroke="black" cx="1350" cy="-843.74" rx="50.09" ry="18"/>
  556. <text text-anchor="middle" x="1350" y="-840.04" font-family="Times,serif" font-size="14.00">libcanberra</text>
  557. </a>
  558. </g>
  559. </g>
  560. <!-- libcanberra&#45;&gt;null -->
  561. <g id="edge48" class="edge">
  562. <title>libcanberra&#45;&gt;null</title>
  563. <path fill="none" stroke="red" d="M1346.38,-825.56C1329.31,-743.54 1258.96,-394.4 1291,-359 1324.35,-322.15 1669,-309.39 1790.16,-306.02"/>
  564. <polygon fill="red" stroke="red" points="1790.27,-309.51 1800.17,-305.74 1790.08,-302.52 1790.27,-309.51"/>
  565. </g>
  566. <!-- libcanberra&#45;&gt;ALSA -->
  567. <g id="edge46" class="edge">
  568. <title>libcanberra&#45;&gt;ALSA</title>
  569. <path fill="none" stroke="black" d="M1308.19,-833.67C1282.34,-825.94 1250.48,-812.23 1231,-788.74 1216.45,-771.19 1211.26,-745.48 1209.54,-726.03"/>
  570. <polygon fill="black" stroke="black" points="1213.03,-725.72 1208.9,-715.96 1206.04,-726.16 1213.03,-725.72"/>
  571. </g>
  572. <!-- libcanberra&#45;&gt;OSS -->
  573. <g id="edge45" class="edge">
  574. <title>libcanberra&#45;&gt;OSS</title>
  575. <path fill="none" stroke="black" d="M1300.01,-842.24C1189.85,-838.29 924.94,-812.68 786,-661.74 694.37,-562.19 674.64,-468.58 754,-359 780.89,-321.87 834.97,-310.03 872.07,-306.39"/>
  576. <polygon fill="black" stroke="black" points="872.37,-309.88 882.05,-305.57 871.8,-302.9 872.37,-309.88"/>
  577. </g>
  578. <!-- libcanberra&#45;&gt;PulseAudio -->
  579. <g id="edge44" class="edge">
  580. <title>libcanberra&#45;&gt;PulseAudio</title>
  581. <path fill="none" stroke="black" d="M1374.61,-827.85C1449.84,-782.36 1676.77,-645.11 1762.62,-593.19"/>
  582. <polygon fill="black" stroke="black" points="1764.44,-596.18 1771.19,-588.01 1760.82,-590.19 1764.44,-596.18"/>
  583. </g>
  584. <!-- gstreamer -->
  585. <g id="node25" class="node">
  586. <title>gstreamer</title>
  587. <ellipse fill="lightgrey" stroke="black" cx="1680" cy="-770.74" rx="46.29" ry="18"/>
  588. <text text-anchor="middle" x="1680" y="-767.04" font-family="Times,serif" font-size="14.00">gstreamer</text>
  589. </g>
  590. <!-- libcanberra&#45;&gt;gstreamer -->
  591. <g id="edge47" class="edge">
  592. <title>libcanberra&#45;&gt;gstreamer</title>
  593. <path fill="none" stroke="black" d="M1395.59,-836.21C1436.71,-829.99 1498.72,-819.82 1552,-807.74 1580,-801.39 1611,-792.72 1635.48,-785.47"/>
  594. <polygon fill="black" stroke="black" points="1636.63,-788.79 1645.21,-782.57 1634.62,-782.08 1636.63,-788.79"/>
  595. </g>
  596. <!-- gstreamer&#45;&gt;ALSA -->
  597. <g id="edge109" class="edge">
  598. <title>gstreamer&#45;&gt;ALSA</title>
  599. <path fill="none" stroke="black" d="M1637.79,-763.38C1549.84,-750.12 1347.56,-719.63 1255.8,-705.79"/>
  600. <polygon fill="black" stroke="black" points="1256.1,-702.3 1245.69,-704.27 1255.06,-709.22 1256.1,-702.3"/>
  601. </g>
  602. <!-- gstreamer&#45;&gt;JACK -->
  603. <g id="edge111" class="edge">
  604. <title>gstreamer&#45;&gt;JACK</title>
  605. <path fill="none" stroke="black" d="M1665.05,-753.4C1656.52,-743.25 1646.3,-729.54 1640,-715.74 1609.42,-648.75 1644.54,-615.48 1604,-554 1596.46,-542.57 1588.07,-546.25 1579,-536 1567.26,-522.74 1557.63,-505.34 1550.88,-491.09"/>
  606. <polygon fill="black" stroke="black" points="1553.99,-489.47 1546.67,-481.81 1547.62,-492.36 1553.99,-489.47"/>
  607. </g>
  608. <!-- gstreamer&#45;&gt;OSS -->
  609. <g id="edge110" class="edge">
  610. <title>gstreamer&#45;&gt;OSS</title>
  611. <path fill="none" stroke="black" d="M1714.66,-758.83C1732.06,-752.76 1753.17,-744.46 1771,-734.74 1836.7,-698.92 1842.72,-663.45 1857,-590 1878.49,-479.48 1857.35,-401.28 1753,-359 1703.02,-338.75 1321.8,-344.71 1268,-341 1152.32,-333.03 1016.13,-317.62 950.41,-309.8"/>
  612. <polygon fill="black" stroke="black" points="950.45,-306.28 940.1,-308.57 949.61,-313.23 950.45,-306.28"/>
  613. </g>
  614. <!-- gstreamer&#45;&gt;sndio -->
  615. <g id="edge58" class="edge">
  616. <title>gstreamer&#45;&gt;sndio</title>
  617. <path fill="none" stroke="black" d="M1722.31,-763.53C1790.22,-752.07 1925.89,-722.96 2024,-661.74 2039.61,-652 2252,-439.9 2252,-421.5 2252,-421.5 2252,-421.5 2252,-216 2252,-159.89 2186.31,-189.44 2131,-180 1999.96,-157.63 1588.24,-148.19 1457.36,-145.7"/>
  618. <polygon fill="black" stroke="black" points="1457.07,-142.2 1447,-145.51 1456.93,-149.2 1457.07,-142.2"/>
  619. </g>
  620. <!-- gstreamer&#45;&gt;PulseAudio -->
  621. <g id="edge112" class="edge">
  622. <title>gstreamer&#45;&gt;PulseAudio</title>
  623. <path fill="none" stroke="black" d="M1714.85,-758.74C1735.67,-750.33 1760.75,-736.56 1775,-715.74 1798.66,-681.16 1800.36,-630.82 1798.71,-600.09"/>
  624. <polygon fill="black" stroke="black" points="1802.2,-599.83 1798.01,-590.09 1795.21,-600.31 1802.2,-599.83"/>
  625. </g>
  626. <!-- gstreamer&#45;&gt;PipeWire -->
  627. <g id="edge52" class="edge">
  628. <title>gstreamer&#45;&gt;PipeWire</title>
  629. <path fill="none" stroke="black" d="M1650.07,-756.88C1615.25,-740.25 1558.84,-707.86 1530,-661.74 1478.64,-579.6 1460.35,-534.82 1499,-446 1507.45,-426.57 1524.5,-410.18 1540,-398.36"/>
  630. <polygon fill="black" stroke="black" points="1542.34,-400.98 1548.38,-392.28 1538.23,-395.32 1542.34,-400.98"/>
  631. </g>
  632. <!-- PipeWire&#45;&gt;? -->
  633. <g id="edge53" class="edge">
  634. <title>PipeWire&#45;&gt;?</title>
  635. <path fill="none" stroke="red" d="M1540.42,-364.25C1533.45,-362.12 1526.05,-360.2 1519,-359 1365.59,-332.97 974.55,-345.37 819,-341 680.32,-337.11 327.69,-362.49 195,-322 193.58,-321.57 192.15,-321.03 190.75,-320.43"/>
  636. <polygon fill="red" stroke="red" points="192.35,-317.32 181.88,-315.69 189.05,-323.49 192.35,-317.32"/>
  637. </g>
  638. <!-- OpenAL -->
  639. <g id="node27" class="node">
  640. <title>OpenAL</title>
  641. <g id="a_node27"><a xlink:href="https://www.openal-soft.org/" xlink:title="OpenAL">
  642. <ellipse fill="lightgrey" stroke="black" cx="1855" cy="-843.74" rx="41.69" ry="18"/>
  643. <text text-anchor="middle" x="1855" y="-840.04" font-family="Times,serif" font-size="14.00">OpenAL</text>
  644. </a>
  645. </g>
  646. </g>
  647. <!-- OpenAL&#45;&gt;filesystem -->
  648. <g id="edge65" class="edge">
  649. <title>OpenAL&#45;&gt;filesystem</title>
  650. <path fill="none" stroke="black" d="M1895.61,-839.38C1956.31,-833.42 2066.14,-818.7 2090,-788.74 2194.6,-657.38 2039.12,-574.48 1931,-446 1894.35,-402.45 1888.8,-382.6 1837,-359 1759.31,-323.61 1510.18,-310.86 1393.44,-306.75"/>
  651. <polygon fill="black" stroke="black" points="1393.36,-303.25 1383.24,-306.4 1393.12,-310.24 1393.36,-303.25"/>
  652. </g>
  653. <!-- OpenAL&#45;&gt;null -->
  654. <g id="edge66" class="edge">
  655. <title>OpenAL&#45;&gt;null</title>
  656. <path fill="none" stroke="red" d="M1896.16,-840.99C1947.43,-837.93 2037.26,-829.68 2111,-807.74 2201.31,-780.86 2252.9,-796.16 2302,-715.74 2326.96,-674.87 2309.34,-655.32 2302,-608 2288.06,-518.13 2302.1,-479.44 2240,-413 2188.87,-358.29 1959.27,-322.09 1868.8,-309.72"/>
  657. <polygon fill="red" stroke="red" points="1869.11,-306.23 1858.73,-308.37 1868.18,-313.17 1869.11,-306.23"/>
  658. </g>
  659. <!-- OpenAL&#45;&gt;portaudio -->
  660. <g id="edge63" class="edge">
  661. <title>OpenAL&#45;&gt;portaudio</title>
  662. <path fill="none" stroke="black" d="M1891.75,-835.23C1916.93,-829.39 1950.75,-820.19 1979,-807.74 1988.68,-803.47 1998.66,-797.8 2007.55,-792.23"/>
  663. <polygon fill="black" stroke="black" points="2009.54,-795.12 2016.03,-786.75 2005.74,-789.24 2009.54,-795.12"/>
  664. </g>
  665. <!-- OpenAL&#45;&gt;ALSA -->
  666. <g id="edge60" class="edge">
  667. <title>OpenAL&#45;&gt;ALSA</title>
  668. <path fill="none" stroke="black" d="M1814.14,-839.69C1759.63,-835.15 1660.32,-825.2 1577,-807.74 1454.8,-782.13 1314.33,-735.61 1247.81,-712.52"/>
  669. <polygon fill="black" stroke="black" points="1248.75,-709.14 1238.16,-709.15 1246.45,-715.75 1248.75,-709.14"/>
  670. </g>
  671. <!-- OpenAL&#45;&gt;JACK -->
  672. <g id="edge64" class="edge">
  673. <title>OpenAL&#45;&gt;JACK</title>
  674. <path fill="none" stroke="black" d="M1815.21,-838.28C1756.83,-830.96 1651.96,-814.56 1625,-788.74 1540.67,-707.98 1536.36,-554.55 1538.4,-492.28"/>
  675. <polygon fill="black" stroke="black" points="1541.91,-492.22 1538.82,-482.09 1534.91,-491.93 1541.91,-492.22"/>
  676. </g>
  677. <!-- OpenAL&#45;&gt;OSS -->
  678. <g id="edge61" class="edge">
  679. <title>OpenAL&#45;&gt;OSS</title>
  680. <path fill="none" stroke="black" d="M1813.36,-842.32C1757.42,-840.7 1655.51,-833.99 1573,-807.74 1442.26,-766.14 1419.15,-731.49 1301,-661.74 1269.32,-643.04 1048.88,-508.14 1023,-482 1010.76,-469.64 954.26,-376.9 926.49,-330.82"/>
  681. <polygon fill="black" stroke="black" points="929.34,-328.77 921.19,-322 923.34,-332.38 929.34,-328.77"/>
  682. </g>
  683. <!-- OpenAL&#45;&gt;PulseAudio -->
  684. <g id="edge59" class="edge">
  685. <title>OpenAL&#45;&gt;PulseAudio</title>
  686. <path fill="none" stroke="black" d="M1875.14,-827.92C1886.55,-818.21 1899.76,-804.44 1906,-788.74 1911.91,-773.87 1908.33,-768.57 1906,-752.74 1901.06,-719.22 1899.58,-709.83 1884,-679.74 1865.4,-643.82 1854.11,-638.89 1828,-608 1824.99,-604.44 1821.74,-600.74 1818.51,-597.14"/>
  687. <polygon fill="black" stroke="black" points="1820.89,-594.54 1811.57,-589.5 1815.71,-599.25 1820.89,-594.54"/>
  688. </g>
  689. <!-- SoundIO -->
  690. <g id="node28" class="node">
  691. <title>SoundIO</title>
  692. <g id="a_node28"><a xlink:href="http://libsound.io/" xlink:title="SoundIO">
  693. <ellipse fill="lightgrey" stroke="black" cx="1855" cy="-770.74" rx="42.49" ry="18"/>
  694. <text text-anchor="middle" x="1855" y="-767.04" font-family="Times,serif" font-size="14.00">SoundIO</text>
  695. </a>
  696. </g>
  697. </g>
  698. <!-- OpenAL&#45;&gt;SoundIO -->
  699. <g id="edge62" class="edge">
  700. <title>OpenAL&#45;&gt;SoundIO</title>
  701. <path fill="none" stroke="black" d="M1855,-825.55C1855,-817.53 1855,-807.79 1855,-798.81"/>
  702. <polygon fill="black" stroke="black" points="1858.5,-798.77 1855,-788.77 1851.5,-798.77 1858.5,-798.77"/>
  703. </g>
  704. <!-- SoundIO&#45;&gt;null -->
  705. <g id="edge70" class="edge">
  706. <title>SoundIO&#45;&gt;null</title>
  707. <path fill="none" stroke="red" d="M1877.11,-755.39C1938.58,-713.51 2105.15,-585.56 2076,-446 2067.37,-404.7 2070.06,-386.43 2038,-359 1992,-319.64 1920.56,-308.54 1875.05,-305.65"/>
  708. <polygon fill="red" stroke="red" points="1875.09,-302.15 1864.91,-305.12 1874.72,-309.14 1875.09,-302.15"/>
  709. </g>
  710. <!-- SoundIO&#45;&gt;ALSA -->
  711. <g id="edge69" class="edge">
  712. <title>SoundIO&#45;&gt;ALSA</title>
  713. <path fill="none" stroke="black" d="M1815.87,-763.81C1792.44,-760.35 1762.05,-756.04 1735,-752.74 1558.42,-731.18 1347.78,-711.32 1255.82,-702.94"/>
  714. <polygon fill="black" stroke="black" points="1256,-699.44 1245.72,-702.02 1255.36,-706.41 1256,-699.44"/>
  715. </g>
  716. <!-- SoundIO&#45;&gt;JACK -->
  717. <g id="edge67" class="edge">
  718. <title>SoundIO&#45;&gt;JACK</title>
  719. <path fill="none" stroke="black" d="M1844.25,-753.26C1818.98,-715.27 1752.59,-619.79 1682,-554 1651.16,-525.25 1639.88,-522.15 1604,-500 1593.85,-493.74 1582.51,-487.34 1572.22,-481.77"/>
  720. <polygon fill="black" stroke="black" points="1573.61,-478.54 1563.14,-476.9 1570.3,-484.71 1573.61,-478.54"/>
  721. </g>
  722. <!-- SoundIO&#45;&gt;PulseAudio -->
  723. <g id="edge68" class="edge">
  724. <title>SoundIO&#45;&gt;PulseAudio</title>
  725. <path fill="none" stroke="black" d="M1849.87,-752.62C1839.55,-718.24 1816.26,-640.55 1803.96,-599.53"/>
  726. <polygon fill="black" stroke="black" points="1807.3,-598.51 1801.08,-589.94 1800.6,-600.52 1807.3,-598.51"/>
  727. </g>
  728. <!-- RtAudio -->
  729. <g id="node29" class="node">
  730. <title>RtAudio</title>
  731. <g id="a_node29"><a xlink:href="https://www.music.mcgill.ca/~gary/rtaudio/apinotes.html" xlink:title="RtAudio">
  732. <ellipse fill="lightgrey" stroke="black" cx="1281" cy="-770.74" rx="40.89" ry="18"/>
  733. <text text-anchor="middle" x="1281" y="-767.04" font-family="Times,serif" font-size="14.00">RtAudio</text>
  734. </a>
  735. </g>
  736. </g>
  737. <!-- RtAudio&#45;&gt;ALSA -->
  738. <g id="edge72" class="edge">
  739. <title>RtAudio&#45;&gt;ALSA</title>
  740. <path fill="none" stroke="black" d="M1278.54,-752.72C1276.95,-746.26 1274.32,-739.16 1270,-733.74 1263.73,-725.88 1255.18,-719.45 1246.46,-714.35"/>
  741. <polygon fill="black" stroke="black" points="1247.88,-711.14 1237.41,-709.51 1244.58,-717.31 1247.88,-711.14"/>
  742. </g>
  743. <!-- RtAudio&#45;&gt;JACK -->
  744. <g id="edge73" class="edge">
  745. <title>RtAudio&#45;&gt;JACK</title>
  746. <path fill="none" stroke="black" d="M1298.28,-754.34C1337.58,-718.73 1435.23,-626.75 1500,-536 1510.22,-521.68 1519.94,-504.53 1527.25,-490.67"/>
  747. <polygon fill="black" stroke="black" points="1530.41,-492.17 1531.89,-481.68 1524.19,-488.95 1530.41,-492.17"/>
  748. </g>
  749. <!-- RtAudio&#45;&gt;OSS -->
  750. <g id="edge71" class="edge">
  751. <title>RtAudio&#45;&gt;OSS</title>
  752. <path fill="none" stroke="black" d="M1244.4,-762.51C1187.27,-749.83 1075.45,-719.3 998,-661.74 941.35,-619.64 923.77,-602.81 901,-536 877.01,-465.62 892.97,-376.16 903.63,-332.07"/>
  753. <polygon fill="black" stroke="black" points="907.09,-332.67 906.13,-322.12 900.3,-330.97 907.09,-332.67"/>
  754. <text text-anchor="middle" x="928.5" y="-514.3" font-family="Times,serif" font-size="14.00">OSS 4.0+</text>
  755. </g>
  756. <!-- RtAudio&#45;&gt;PulseAudio -->
  757. <g id="edge74" class="edge">
  758. <title>RtAudio&#45;&gt;PulseAudio</title>
  759. <path fill="none" stroke="black" d="M1313.4,-759.46C1334.67,-752.63 1363.07,-743.37 1388,-734.74 1443.36,-715.58 1581.93,-662.46 1583,-661.74 1610.09,-643.56 1604.63,-624.11 1633,-608 1664,-590.4 1702.9,-581.63 1734.93,-577.27"/>
  760. <polygon fill="black" stroke="black" points="1735.57,-580.72 1745.06,-576.01 1734.71,-573.77 1735.57,-580.72"/>
  761. </g>
  762. <!-- JUCE -->
  763. <g id="node30" class="node">
  764. <title>JUCE</title>
  765. <ellipse fill="lightgrey" stroke="black" cx="1052" cy="-770.74" rx="31.7" ry="18"/>
  766. <text text-anchor="middle" x="1052" y="-767.04" font-family="Times,serif" font-size="14.00">JUCE</text>
  767. </g>
  768. <!-- JUCE&#45;&gt;? -->
  769. <g id="edge77" class="edge">
  770. <title>JUCE&#45;&gt;?</title>
  771. <path fill="none" stroke="red" d="M1022.29,-764.2C958.28,-751.59 803.49,-717.45 684,-661.74 473.86,-563.77 256.37,-382.03 189.09,-323.6"/>
  772. <polygon fill="red" stroke="red" points="191.13,-320.74 181.29,-316.8 186.53,-326.01 191.13,-320.74"/>
  773. </g>
  774. <!-- JUCE&#45;&gt;ALSA -->
  775. <g id="edge75" class="edge">
  776. <title>JUCE&#45;&gt;ALSA</title>
  777. <path fill="none" stroke="black" d="M1076.43,-759.04C1081.55,-756.89 1086.93,-754.69 1092,-752.74 1114.82,-743.95 1121.66,-744.7 1144,-734.74 1155.3,-729.7 1167.25,-723.38 1177.79,-717.46"/>
  778. <polygon fill="black" stroke="black" points="1179.7,-720.4 1186.63,-712.39 1176.21,-714.33 1179.7,-720.4"/>
  779. </g>
  780. <!-- JUCE&#45;&gt;JACK -->
  781. <g id="edge76" class="edge">
  782. <title>JUCE&#45;&gt;JACK</title>
  783. <path fill="none" stroke="black" d="M1068.28,-755.15C1089.36,-736.58 1127.61,-704.02 1163,-679.74 1284.66,-596.28 1440.85,-514.83 1507.51,-481.16"/>
  784. <polygon fill="black" stroke="black" points="1509.32,-484.17 1516.68,-476.55 1506.17,-477.92 1509.32,-484.17"/>
  785. </g>
  786. <!-- SDL1 -->
  787. <g id="node31" class="node">
  788. <title>SDL1</title>
  789. <g id="a_node31"><a xlink:href="https://hg.libsdl.org/SDL/file/fba40d9f4a73/src/audio" xlink:title="libSDL&#45;1.2">
  790. <ellipse fill="lightgrey" stroke="black" cx="698" cy="-770.74" rx="50.89" ry="18"/>
  791. <text text-anchor="middle" x="698" y="-767.04" font-family="Times,serif" font-size="14.00">libSDL&#45;1.2</text>
  792. </a>
  793. </g>
  794. </g>
  795. <!-- SDL1&#45;&gt;filesystem -->
  796. <g id="edge90" class="edge">
  797. <title>SDL1&#45;&gt;filesystem</title>
  798. <path fill="none" stroke="black" d="M705.48,-752.79C729.14,-700.81 807.16,-541.41 914,-446 1005.24,-364.52 1048.49,-366.11 1168,-340 1204.83,-331.95 1246.36,-323.09 1278.41,-316.3"/>
  799. <polygon fill="black" stroke="black" points="1279.41,-319.67 1288.47,-314.17 1277.96,-312.82 1279.41,-319.67"/>
  800. </g>
  801. <!-- SDL1&#45;&gt;null -->
  802. <g id="edge94" class="edge">
  803. <title>SDL1&#45;&gt;null</title>
  804. <path fill="none" stroke="red" d="M715.58,-753.73C756.32,-716.47 859.93,-620.66 942,-536 979.46,-497.36 979.3,-477.41 1023,-446 1102.04,-389.18 1131.5,-389.32 1224,-359 1259.96,-347.21 1269.56,-345.5 1307,-340 1485,-313.86 1699.86,-307.23 1789.5,-305.56"/>
  805. <polygon fill="red" stroke="red" points="1789.61,-309.05 1799.55,-305.38 1789.49,-302.06 1789.61,-309.05"/>
  806. </g>
  807. <!-- SDL1&#45;&gt;ALSA -->
  808. <g id="edge87" class="edge">
  809. <title>SDL1&#45;&gt;ALSA</title>
  810. <path fill="none" stroke="black" d="M744.25,-763.31C841.2,-749.84 1064.79,-718.78 1162.21,-705.24"/>
  811. <polygon fill="black" stroke="black" points="1162.92,-708.68 1172.34,-703.83 1161.95,-701.74 1162.92,-708.68"/>
  812. </g>
  813. <!-- SDL1&#45;&gt;OSS -->
  814. <g id="edge92" class="edge">
  815. <title>SDL1&#45;&gt;OSS</title>
  816. <path fill="none" stroke="black" d="M690.68,-752.88C665.47,-691.9 588.95,-480.06 686,-359 694.95,-347.83 698.83,-345.61 712,-340 764.55,-317.62 830.76,-309.55 871.99,-306.64"/>
  817. <polygon fill="black" stroke="black" points="872.41,-310.12 882.16,-305.99 871.96,-303.14 872.41,-310.12"/>
  818. </g>
  819. <!-- SDL1&#45;&gt;PulseAudio -->
  820. <g id="edge93" class="edge">
  821. <title>SDL1&#45;&gt;PulseAudio</title>
  822. <path fill="none" stroke="black" d="M747.37,-766.56C844.79,-759.94 1068.5,-742.96 1255,-715.74 1337.45,-703.71 1357.19,-695.58 1439,-679.74 1480.76,-671.66 1495.78,-682.33 1533,-661.74 1561.55,-645.95 1554.25,-623.42 1583,-608 1608.83,-594.15 1682.62,-584.16 1736.11,-578.48"/>
  823. <polygon fill="black" stroke="black" points="1736.6,-581.95 1746.18,-577.44 1735.88,-574.99 1736.6,-581.95"/>
  824. </g>
  825. <!-- SDL1&#45;&gt;aRts -->
  826. <g id="edge88" class="edge">
  827. <title>SDL1&#45;&gt;aRts</title>
  828. <path fill="none" stroke="black" d="M679.97,-753.63C641.07,-718 548.48,-628.32 495,-536 414.16,-396.46 434.15,-341.64 420,-181 418.99,-169.58 427.46,-161.49 437.84,-155.91"/>
  829. <polygon fill="black" stroke="black" points="439.6,-158.95 447.26,-151.63 436.71,-152.58 439.6,-158.95"/>
  830. </g>
  831. <!-- SDL1&#45;&gt;ESD -->
  832. <g id="edge89" class="edge">
  833. <title>SDL1&#45;&gt;ESD</title>
  834. <path fill="none" stroke="black" d="M685.1,-752.94C677.62,-742.62 668.44,-728.9 662,-715.74 650.89,-693.01 649.43,-686.45 644,-661.74 624.88,-574.76 585.15,-391.49 609,-340 650.53,-250.34 755.85,-186.89 808.32,-159.74"/>
  835. <polygon fill="black" stroke="black" points="810.14,-162.74 817.48,-155.09 806.98,-156.5 810.14,-162.74"/>
  836. </g>
  837. <!-- SDL1&#45;&gt;NAS -->
  838. <g id="edge91" class="edge">
  839. <title>SDL1&#45;&gt;NAS</title>
  840. <path fill="none" stroke="black" d="M649.23,-765.42C605.6,-759.65 541.41,-746.33 494,-715.74 467.99,-698.96 467.22,-687.47 450,-661.74 374.56,-549 322.08,-393.54 302.97,-331.81"/>
  841. <polygon fill="black" stroke="black" points="306.26,-330.61 299.99,-322.07 299.57,-332.66 306.26,-330.61"/>
  842. </g>
  843. <!-- SDL2 -->
  844. <g id="node32" class="node">
  845. <title>SDL2</title>
  846. <g id="a_node32"><a xlink:href="https://hg.libsdl.org/SDL/file/355a4f94a782" xlink:title="libSDL&#45;2.0">
  847. <ellipse fill="lightgrey" stroke="black" cx="353" cy="-770.74" rx="50.89" ry="18"/>
  848. <text text-anchor="middle" x="353" y="-767.04" font-family="Times,serif" font-size="14.00">libSDL&#45;2.0</text>
  849. </a>
  850. </g>
  851. </g>
  852. <!-- SDL2&#45;&gt;filesystem -->
  853. <g id="edge98" class="edge">
  854. <title>SDL2&#45;&gt;filesystem</title>
  855. <path fill="none" stroke="black" d="M358.96,-752.68C360.92,-746.99 363.08,-740.6 365,-734.74 406.89,-606.59 359.68,-538.25 458,-446 577.77,-333.63 650.39,-369.25 812,-340 898.32,-324.38 1152.19,-312.34 1270.28,-307.42"/>
  856. <polygon fill="black" stroke="black" points="1270.75,-310.91 1280.6,-307 1270.46,-303.91 1270.75,-310.91"/>
  857. </g>
  858. <!-- SDL2&#45;&gt;null -->
  859. <g id="edge103" class="edge">
  860. <title>SDL2&#45;&gt;null</title>
  861. <path fill="none" stroke="red" d="M381.39,-755.63C417.52,-736.94 480.86,-701.65 528,-661.74 552.22,-641.24 552.63,-630.5 575,-608 600.53,-582.32 606.28,-574.68 636,-554 677.79,-524.93 691.35,-522.52 737,-500 895.2,-421.97 935.01,-393.5 1108,-359 1190.36,-342.57 1212.31,-346.96 1296,-340 1481.08,-324.61 1702.58,-311.98 1791.83,-307.13"/>
  862. <polygon fill="red" stroke="red" points="1792.25,-310.62 1802.04,-306.58 1791.87,-303.63 1792.25,-310.62"/>
  863. </g>
  864. <!-- SDL2&#45;&gt;ALSA -->
  865. <g id="edge95" class="edge">
  866. <title>SDL2&#45;&gt;ALSA</title>
  867. <path fill="none" stroke="black" d="M402.37,-766.22C486.62,-760.17 663.55,-747.22 813,-734.74 939.06,-724.22 1087.54,-710.31 1161.76,-703.26"/>
  868. <polygon fill="black" stroke="black" points="1162.54,-706.7 1172.16,-702.27 1161.88,-699.73 1162.54,-706.7"/>
  869. </g>
  870. <!-- SDL2&#45;&gt;JACK -->
  871. <g id="edge100" class="edge">
  872. <title>SDL2&#45;&gt;JACK</title>
  873. <path fill="none" stroke="black" d="M399.27,-763.23C440.99,-757.03 503.92,-746.86 558,-734.74 652.77,-713.5 1306.1,-524.82 1400,-500 1433.98,-491.02 1472.75,-481.37 1500.87,-474.48"/>
  874. <polygon fill="black" stroke="black" points="1501.83,-477.85 1510.71,-472.08 1500.17,-471.05 1501.83,-477.85"/>
  875. </g>
  876. <!-- SDL2&#45;&gt;OSS -->
  877. <g id="edge104" class="edge">
  878. <title>SDL2&#45;&gt;OSS</title>
  879. <path fill="none" stroke="black" d="M351.67,-752.42C348.22,-699.71 342.03,-537.3 385,-413 394.35,-385.97 395.66,-374.01 420,-359 495.43,-312.48 769.11,-305.88 871.76,-305.06"/>
  880. <polygon fill="black" stroke="black" points="872.02,-308.56 882,-304.99 871.97,-301.56 872.02,-308.56"/>
  881. </g>
  882. <!-- SDL2&#45;&gt;sndio -->
  883. <g id="edge106" class="edge">
  884. <title>SDL2&#45;&gt;sndio</title>
  885. <path fill="none" stroke="black" d="M302.81,-768.08C235.82,-762.74 120.55,-741.73 77,-661.74 62.75,-635.57 76.45,-345.22 141,-286 187.89,-242.99 1166.76,-164.49 1377.32,-148.06"/>
  886. <polygon fill="black" stroke="black" points="1377.62,-151.55 1387.32,-147.29 1377.08,-144.57 1377.62,-151.55"/>
  887. </g>
  888. <!-- SDL2&#45;&gt;PulseAudio -->
  889. <g id="edge105" class="edge">
  890. <title>SDL2&#45;&gt;PulseAudio</title>
  891. <path fill="none" stroke="black" d="M398.6,-762.86C580.07,-735.54 1251.47,-634.81 1465,-608 1559.7,-596.11 1669.98,-584.99 1736.32,-578.6"/>
  892. <polygon fill="black" stroke="black" points="1736.96,-582.06 1746.58,-577.62 1736.29,-575.09 1736.96,-582.06"/>
  893. </g>
  894. <!-- SDL2&#45;&gt;aRts -->
  895. <g id="edge96" class="edge">
  896. <title>SDL2&#45;&gt;aRts</title>
  897. <path fill="none" stroke="black" d="M302.26,-769.52C221.85,-768.31 69.57,-762.33 24,-734.74 7.55,-724.78 0,-717.97 0,-698.74 0,-698.74 0,-698.74 0,-216 0,-172.1 323.43,-152.23 434.83,-146.69"/>
  898. <polygon fill="black" stroke="black" points="435.11,-150.18 444.93,-146.19 434.77,-143.18 435.11,-150.18"/>
  899. </g>
  900. <!-- SDL2&#45;&gt;ESD -->
  901. <g id="edge97" class="edge">
  902. <title>SDL2&#45;&gt;ESD</title>
  903. <path fill="none" stroke="black" d="M302.16,-769.75C231.28,-768.71 107.66,-762.79 74,-734.74 17.89,-687.97 42.29,-333.35 86,-286 135.67,-232.19 657.19,-166.61 801.93,-149.34"/>
  904. <polygon fill="black" stroke="black" points="802.56,-152.79 812.08,-148.13 801.73,-145.83 802.56,-152.79"/>
  905. </g>
  906. <!-- SDL2&#45;&gt;NAS -->
  907. <g id="edge101" class="edge">
  908. <title>SDL2&#45;&gt;NAS</title>
  909. <path fill="none" stroke="black" d="M347.56,-752.67C345.77,-746.98 343.78,-740.59 342,-734.74 308.01,-622.74 284.61,-597.86 268,-482 265.73,-466.16 266.49,-461.93 268,-446 271.8,-405.96 281.54,-360.37 288.22,-332.14"/>
  910. <polygon fill="black" stroke="black" points="291.67,-332.76 290.61,-322.21 284.86,-331.11 291.67,-332.76"/>
  911. </g>
  912. <!-- FusionSound -->
  913. <g id="node33" class="node">
  914. <title>FusionSound</title>
  915. <ellipse fill="red" stroke="black" cx="178" cy="-634.87" rx="100.32" ry="26.74"/>
  916. <text text-anchor="middle" x="178" y="-638.67" font-family="Times,serif" font-size="14.00">DirectFB/FusionSound</text>
  917. <text text-anchor="middle" x="178" y="-623.67" font-family="Times,serif" font-size="14.00">[dead]</text>
  918. </g>
  919. <!-- SDL2&#45;&gt;FusionSound -->
  920. <g id="edge99" class="edge">
  921. <title>SDL2&#45;&gt;FusionSound</title>
  922. <path fill="none" stroke="red" d="M301.98,-769.68C260.38,-766.58 203.95,-754.78 175,-715.74 165.8,-703.33 165.17,-686.62 167.39,-671.68"/>
  923. <polygon fill="red" stroke="red" points="170.86,-672.18 169.32,-661.7 163.99,-670.86 170.86,-672.18"/>
  924. </g>
  925. <!-- OpenSL ES -->
  926. <g id="node34" class="node">
  927. <title>OpenSL ES</title>
  928. <ellipse fill="lightgrey" stroke="black" cx="237" cy="-697.74" rx="52.79" ry="18"/>
  929. <text text-anchor="middle" x="237" y="-694.04" font-family="Times,serif" font-size="14.00">OpenSL ES</text>
  930. </g>
  931. <!-- SDL2&#45;&gt;OpenSL ES -->
  932. <g id="edge102" class="edge">
  933. <title>SDL2&#45;&gt;OpenSL ES</title>
  934. <path fill="none" stroke="black" d="M328.68,-754.86C311.78,-744.51 289.05,-730.6 270.44,-719.21"/>
  935. <polygon fill="black" stroke="black" points="272.04,-716.08 261.68,-713.85 268.39,-722.05 272.04,-716.08"/>
  936. </g>
  937. <!-- FusionSound&#45;&gt;? -->
  938. <g id="edge107" class="edge">
  939. <title>FusionSound&#45;&gt;?</title>
  940. <path fill="none" stroke="red" d="M174.45,-607.92C171.57,-584.68 168,-549.63 168,-519 168,-519 168,-519 168,-376 168,-361.65 168,-345.67 168,-332.51"/>
  941. <polygon fill="red" stroke="red" points="171.5,-332.22 168,-322.22 164.5,-332.22 171.5,-332.22"/>
  942. </g>
  943. <!-- OpenSL ES&#45;&gt;? -->
  944. <g id="edge134" class="edge">
  945. <title>OpenSL ES&#45;&gt;?</title>
  946. <path fill="none" stroke="red" d="M262.07,-681.79C268.83,-676.39 275.3,-669.65 279,-661.74 289.13,-640.11 289.23,-629.58 279,-608 273.59,-596.58 264.01,-600.51 257,-590 192.63,-493.5 220.25,-449.52 182,-340 180.9,-336.85 179.68,-333.56 178.44,-330.32"/>
  947. <polygon fill="red" stroke="red" points="181.65,-328.93 174.71,-320.92 175.14,-331.5 181.65,-328.93"/>
  948. </g>
  949. <!-- phonon -->
  950. <g id="node35" class="node">
  951. <title>phonon</title>
  952. <ellipse fill="lightgrey" stroke="black" cx="2147" cy="-843.74" rx="37.09" ry="18"/>
  953. <text text-anchor="middle" x="2147" y="-840.04" font-family="Times,serif" font-size="14.00">phonon</text>
  954. </g>
  955. <!-- phonon&#45;&gt;PulseAudio -->
  956. <g id="edge115" class="edge">
  957. <title>phonon&#45;&gt;PulseAudio</title>
  958. <path fill="none" stroke="black" d="M2139.19,-825.96C2129.61,-806.64 2111.92,-774.77 2090,-752.74 2013.7,-676.05 1898.5,-618.02 1837.43,-590.56"/>
  959. <polygon fill="black" stroke="black" points="1838.66,-587.28 1828.1,-586.41 1835.82,-593.67 1838.66,-587.28"/>
  960. </g>
  961. <!-- phonon&#45;&gt;gstreamer -->
  962. <g id="edge113" class="edge">
  963. <title>phonon&#45;&gt;gstreamer</title>
  964. <path fill="none" stroke="black" d="M2111.9,-837.4C2030.44,-825.02 1828.22,-794.27 1732.21,-779.68"/>
  965. <polygon fill="black" stroke="black" points="1732.56,-776.19 1722.14,-778.15 1731.5,-783.11 1732.56,-776.19"/>
  966. </g>
  967. <!-- VLC -->
  968. <g id="node36" class="node">
  969. <title>VLC</title>
  970. <g id="a_node36"><a xlink:href="https://code.videolan.org/videolan/vlc/-/tree/master/modules/audio_output" xlink:title="VLC">
  971. <ellipse fill="lightgrey" stroke="black" cx="2358" cy="-770.74" rx="28.7" ry="18"/>
  972. <text text-anchor="middle" x="2358" y="-767.04" font-family="Times,serif" font-size="14.00">VLC</text>
  973. </a>
  974. </g>
  975. </g>
  976. <!-- phonon&#45;&gt;VLC -->
  977. <g id="edge114" class="edge">
  978. <title>phonon&#45;&gt;VLC</title>
  979. <path fill="none" stroke="black" d="M2183.39,-840.3C2218.57,-836.79 2272.64,-828.27 2315,-807.74 2322.52,-804.1 2329.82,-798.85 2336.22,-793.49"/>
  980. <polygon fill="black" stroke="black" points="2338.64,-796.02 2343.78,-786.75 2333.98,-790.79 2338.64,-796.02"/>
  981. </g>
  982. <!-- VLC&#45;&gt;filesystem -->
  983. <g id="edge128" class="edge">
  984. <title>VLC&#45;&gt;filesystem</title>
  985. <path fill="none" stroke="black" d="M2379.03,-758.32C2393.32,-749.07 2410.57,-734.51 2416,-715.74 2435.98,-646.69 2451.53,-616.49 2416,-554 2355.41,-447.46 2289.3,-466.45 2179,-413 2118.61,-383.74 2103.47,-373.71 2038,-359 1915.97,-331.58 1541.86,-313.63 1393.52,-307.42"/>
  986. <polygon fill="black" stroke="black" points="1393.37,-303.91 1383.24,-307 1393.08,-310.91 1393.37,-303.91"/>
  987. </g>
  988. <!-- VLC&#45;&gt;null -->
  989. <g id="edge126" class="edge">
  990. <title>VLC&#45;&gt;null</title>
  991. <path fill="none" stroke="red" d="M2385.53,-765.81C2420.96,-759.03 2478,-741.47 2478,-698.74 2478,-698.74 2478,-698.74 2478,-376 2478,-315.18 2019.79,-306.45 1875.18,-305.2"/>
  992. <polygon fill="red" stroke="red" points="1874.95,-301.7 1864.92,-305.12 1874.9,-308.7 1874.95,-301.7"/>
  993. </g>
  994. <!-- VLC&#45;&gt;ALSA -->
  995. <g id="edge127" class="edge">
  996. <title>VLC&#45;&gt;ALSA</title>
  997. <path fill="none" stroke="black" d="M2329.44,-767.91C2280.46,-764.77 2177.25,-758.18 2090,-752.74 1771.34,-732.87 1387.79,-709.57 1256.07,-701.59"/>
  998. <polygon fill="black" stroke="black" points="1256.12,-698.09 1245.93,-700.98 1255.7,-705.07 1256.12,-698.09"/>
  999. </g>
  1000. <!-- VLC&#45;&gt;JACK -->
  1001. <g id="edge129" class="edge">
  1002. <title>VLC&#45;&gt;JACK</title>
  1003. <path fill="none" stroke="black" d="M2351.84,-752.89C2343.58,-732.59 2326.99,-698.86 2302,-679.74 2081.59,-511.11 1974.92,-560.2 1704,-500 1650.07,-488.02 1634.26,-496.69 1581,-482 1578.68,-481.36 1576.32,-480.62 1573.96,-479.82"/>
  1004. <polygon fill="black" stroke="black" points="1574.96,-476.46 1564.37,-476.26 1572.52,-483.02 1574.96,-476.46"/>
  1005. </g>
  1006. <!-- VLC&#45;&gt;OSS -->
  1007. <g id="edge131" class="edge">
  1008. <title>VLC&#45;&gt;OSS</title>
  1009. <path fill="none" stroke="black" d="M2358.79,-752.74C2358.75,-746.69 2358.31,-739.85 2357,-733.74 2333.49,-623.75 2342.33,-576.63 2260,-500 2187.47,-432.49 1934.18,-378.33 1837,-359 1720.32,-335.79 1688.74,-347.38 1570,-340 1334.76,-325.38 1052.04,-311.66 950.05,-306.83"/>
  1010. <polygon fill="black" stroke="black" points="950.07,-303.33 939.92,-306.35 949.74,-310.32 950.07,-303.33"/>
  1011. </g>
  1012. <!-- VLC&#45;&gt;sndio -->
  1013. <g id="edge133" class="edge">
  1014. <title>VLC&#45;&gt;sndio</title>
  1015. <path fill="none" stroke="black" d="M2386.49,-768.31C2456.07,-764.06 2629,-748.47 2629,-698.74 2629,-698.74 2629,-698.74 2629,-259.5 2629,-156.81 2507.04,-217.34 2406,-199 2219.31,-165.11 1619.57,-149.52 1457.62,-145.86"/>
  1016. <polygon fill="black" stroke="black" points="1457.24,-142.36 1447.16,-145.63 1457.08,-149.35 1457.24,-142.36"/>
  1017. </g>
  1018. <!-- VLC&#45;&gt;PulseAudio -->
  1019. <g id="edge132" class="edge">
  1020. <title>VLC&#45;&gt;PulseAudio</title>
  1021. <path fill="none" stroke="black" d="M2332.17,-762.47C2280.82,-747.49 2163.02,-710.45 2072,-661.74 2035.85,-642.39 2034.82,-623.86 1997,-608 1952.43,-589.31 1898.28,-580.6 1857.41,-576.54"/>
  1022. <polygon fill="black" stroke="black" points="1857.6,-573.05 1847.32,-575.61 1856.96,-580.02 1857.6,-573.05"/>
  1023. </g>
  1024. <!-- VLC&#45;&gt;OpenSL ES -->
  1025. <g id="edge130" class="edge">
  1026. <title>VLC&#45;&gt;OpenSL ES</title>
  1027. <path fill="none" stroke="black" d="M2329.46,-767.61C2280.5,-764.02 2177.32,-756.78 2090,-752.74 1387.93,-720.25 535.26,-703.9 299.81,-699.79"/>
  1028. <polygon fill="black" stroke="black" points="299.78,-696.29 289.72,-699.62 299.66,-703.29 299.78,-696.29"/>
  1029. </g>
  1030. <!-- ClanLib -->
  1031. <g id="node37" class="node">
  1032. <title>ClanLib</title>
  1033. <g id="a_node37"><a xlink:href="https://github.com/sphair/ClanLib/tree/master/Sources/Sound/Platform/Linux" xlink:title="ClanLib">
  1034. <ellipse fill="lightgrey" stroke="black" cx="1141" cy="-770.74" rx="39.79" ry="18"/>
  1035. <text text-anchor="middle" x="1141" y="-767.04" font-family="Times,serif" font-size="14.00">ClanLib</text>
  1036. </a>
  1037. </g>
  1038. </g>
  1039. <!-- ClanLib&#45;&gt;ALSA -->
  1040. <g id="edge116" class="edge">
  1041. <title>ClanLib&#45;&gt;ALSA</title>
  1042. <path fill="none" stroke="black" d="M1156.09,-753.98C1164.82,-744.87 1175.99,-733.21 1185.82,-722.95"/>
  1043. <polygon fill="black" stroke="black" points="1188.61,-725.09 1193,-715.44 1183.56,-720.24 1188.61,-725.09"/>
  1044. </g>
  1045. <!-- ClanLib&#45;&gt;OSS -->
  1046. <g id="edge117" class="edge">
  1047. <title>ClanLib&#45;&gt;OSS</title>
  1048. <path fill="none" stroke="black" d="M1110.64,-758.99C1033.49,-731.67 836,-661.74 836,-661.74 732.97,-560.49 702.84,-455.19 790,-340 808.84,-315.1 844.29,-307.09 871.98,-304.87"/>
  1049. <polygon fill="black" stroke="black" points="872.37,-308.36 882.15,-304.28 871.97,-301.37 872.37,-308.36"/>
  1050. </g>
  1051. <!-- allegro -->
  1052. <g id="node38" class="node">
  1053. <title>allegro</title>
  1054. <g id="a_node38"><a xlink:href="https://github.com/liballeg/allegro5/tree/master/addons/audio" xlink:title="allegro">
  1055. <ellipse fill="lightgrey" stroke="black" cx="565" cy="-916.74" rx="35.19" ry="18"/>
  1056. <text text-anchor="middle" x="565" y="-913.04" font-family="Times,serif" font-size="14.00">allegro</text>
  1057. </a>
  1058. </g>
  1059. </g>
  1060. <!-- allegro&#45;&gt;OSS -->
  1061. <g id="edge118" class="edge">
  1062. <title>allegro&#45;&gt;OSS</title>
  1063. <path fill="none" stroke="black" d="M530.75,-912.26C491.34,-906.14 432,-889.5 432,-844.74 432,-844.74 432,-844.74 432,-733.74 432,-636.26 585.95,-422.39 660,-359 691.45,-332.08 809.41,-315.8 871.78,-308.89"/>
  1064. <polygon fill="black" stroke="black" points="872.45,-312.33 882.02,-307.78 871.7,-305.37 872.45,-312.33"/>
  1065. </g>
  1066. <!-- allegro&#45;&gt;PulseAudio -->
  1067. <g id="edge120" class="edge">
  1068. <title>allegro&#45;&gt;PulseAudio</title>
  1069. <path fill="none" stroke="black" d="M600.27,-915.23C823.14,-911.91 2031.73,-892.62 2193,-861.74 2287.17,-843.71 2340.85,-867.17 2396,-788.74 2530.2,-597.87 2036.64,-575.05 1858.1,-572.95"/>
  1070. <polygon fill="black" stroke="black" points="1858.1,-569.45 1848.07,-572.85 1858.03,-576.45 1858.1,-569.45"/>
  1071. </g>
  1072. <!-- allegro&#45;&gt;OpenAL -->
  1073. <g id="edge119" class="edge">
  1074. <title>allegro&#45;&gt;OpenAL</title>
  1075. <path fill="none" stroke="black" d="M599.84,-913.82C778.34,-904 1590.29,-859.31 1803.56,-847.57"/>
  1076. <polygon fill="black" stroke="black" points="1804.06,-851.05 1813.85,-847.01 1803.67,-844.06 1804.06,-851.05"/>
  1077. </g>
  1078. <!-- allegro&#45;&gt;SDL1 -->
  1079. <g id="edge122" class="edge">
  1080. <title>allegro&#45;&gt;SDL1</title>
  1081. <path fill="none" stroke="black" d="M579.49,-900.06C602.72,-874.9 648.49,-825.34 675.85,-795.72"/>
  1082. <polygon fill="black" stroke="black" points="678.5,-798.01 682.71,-788.29 673.36,-793.26 678.5,-798.01"/>
  1083. </g>
  1084. <!-- allegro&#45;&gt;SDL2 -->
  1085. <g id="edge123" class="edge">
  1086. <title>allegro&#45;&gt;SDL2</title>
  1087. <path fill="none" stroke="black" d="M530.02,-914.96C498.05,-912.61 450.88,-904.89 418,-880.74 389.91,-860.11 371.71,-823.35 361.91,-798.28"/>
  1088. <polygon fill="black" stroke="black" points="365.1,-796.8 358.33,-788.65 358.54,-799.24 365.1,-796.8"/>
  1089. </g>
  1090. <!-- allegro&#45;&gt;OpenSL ES -->
  1091. <g id="edge121" class="edge">
  1092. <title>allegro&#45;&gt;OpenSL ES</title>
  1093. <path fill="none" stroke="black" d="M530.81,-912.65C489.86,-907.58 420.58,-894.52 371,-861.74 331.39,-835.55 323.13,-825.43 293,-788.74 276.41,-768.54 261,-743.06 250.56,-724.37"/>
  1094. <polygon fill="black" stroke="black" points="253.59,-722.62 245.71,-715.54 247.45,-725.99 253.59,-722.62"/>
  1095. </g>
  1096. <!-- telepathy -->
  1097. <g id="node39" class="node">
  1098. <title>telepathy</title>
  1099. <ellipse fill="lightgrey" stroke="black" cx="1075" cy="-464" rx="42.79" ry="18"/>
  1100. <text text-anchor="middle" x="1075" y="-460.3" font-family="Times,serif" font-size="14.00">telepathy</text>
  1101. </g>
  1102. <!-- telepathy&#45;&gt;phone modem -->
  1103. <g id="edge124" class="edge">
  1104. <title>telepathy&#45;&gt;phone modem</title>
  1105. <path fill="none" stroke="black" d="M1113.74,-456.24C1174,-445.46 1293.94,-422.97 1404.45,-395.29"/>
  1106. <polygon fill="black" stroke="black" points="1405.59,-398.61 1414.42,-392.77 1403.87,-391.82 1405.59,-398.61"/>
  1107. <text text-anchor="middle" x="1327.5" y="-416.8" font-family="Times,serif" font-size="14.00" fill="red">?</text>
  1108. </g>
  1109. <!-- telepathy&#45;&gt;? -->
  1110. <g id="edge125" class="edge">
  1111. <title>telepathy&#45;&gt;?</title>
  1112. <path fill="none" stroke="red" d="M1035.35,-456.88C921.71,-439.32 585.09,-387.02 306,-341 256.62,-332.86 241.74,-339.9 195,-322 193.78,-321.53 192.55,-321.01 191.33,-320.44"/>
  1113. <polygon fill="red" stroke="red" points="192.75,-317.22 182.3,-315.46 189.37,-323.35 192.75,-317.22"/>
  1114. </g>
  1115. </g>
  1116. </svg>