logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git

linux-audio-output.svg (56322B)


  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 5.0.1 (20220820.1526)
  5. -->
  6. <!-- Title: Linux Audio Output APIs (available code) Pages: 1 -->
  7. <svg width="2543pt" height="926pt"
  8. viewBox="0.00 0.00 2543.00 925.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 921.74)">
  10. <title>Linux Audio Output APIs (available code)</title>
  11. <polygon fill="white" stroke="none" points="-4,4 -4,-921.74 2539,-921.74 2539,4 -4,4"/>
  12. <text text-anchor="middle" x="1267.5" y="-37.8" font-family="Times,serif" font-size="14.00">Linux Audio Output APIs (available code)</text>
  13. <text text-anchor="middle" x="1267.5" y="-22.8" font-family="Times,serif" font-size="14.00"> CC&#45;BY 4.0 © 2020&#45;2021 Haelwenn (lanodan) Monnier</text>
  14. <text text-anchor="middle" x="1267.5" y="-7.8" font-family="Times,serif" font-size="14.00"> https://hacktivis.me/articles/linux&#45;audio&#45;output</text>
  15. <g id="clust1" class="cluster">
  16. <title>cluster_legend</title>
  17. <polygon fill="none" stroke="black" points="882,-834.74 882,-909.74 1145,-909.74 1145,-834.74 882,-834.74"/>
  18. <text text-anchor="middle" x="1013.5" y="-894.54" font-family="Times,serif" font-size="14.00">Legend</text>
  19. </g>
  20. <!-- server -->
  21. <g id="node1" class="node">
  22. <title>server</title>
  23. <polygon fill="orange" stroke="black" points="1137.35,-853.28 1137.35,-868.2 1116.64,-878.74 1087.36,-878.74 1066.65,-868.2 1066.65,-853.28 1087.36,-842.74 1116.64,-842.74 1137.35,-853.28"/>
  24. <text text-anchor="middle" x="1102" y="-857.04" font-family="Times,serif" font-size="14.00">server</text>
  25. </g>
  26. <!-- driver -->
  27. <g id="node2" class="node">
  28. <title>driver</title>
  29. <polygon fill="yellow" stroke="black" points="1048.55,-860.74 1030.27,-878.74 993.73,-878.74 975.45,-860.74 993.73,-842.74 1030.27,-842.74 1048.55,-860.74"/>
  30. <text text-anchor="middle" x="1012" y="-857.04" font-family="Times,serif" font-size="14.00">driver</text>
  31. </g>
  32. <!-- hardware -->
  33. <g id="node3" class="node">
  34. <title>hardware</title>
  35. <polygon fill="cyan" stroke="black" points="957.5,-878.74 890.5,-878.74 890.5,-842.74 957.5,-842.74 957.5,-878.74"/>
  36. <text text-anchor="middle" x="924" y="-857.04" font-family="Times,serif" font-size="14.00">hardware</text>
  37. </g>
  38. <!-- sound card -->
  39. <g id="node4" class="node">
  40. <title>sound card</title>
  41. <polygon fill="cyan" stroke="black" points="1485,-89 1409,-89 1409,-53 1485,-53 1485,-89"/>
  42. <text text-anchor="middle" x="1447" y="-67.3" font-family="Times,serif" font-size="14.00">sound card</text>
  43. </g>
  44. <!-- phone modem -->
  45. <g id="node5" class="node">
  46. <title>phone modem</title>
  47. <polygon fill="cyan" stroke="black" points="2403.5,-89 2308.5,-89 2308.5,-53 2403.5,-53 2403.5,-89"/>
  48. <text text-anchor="middle" x="2356" y="-67.3" font-family="Times,serif" font-size="14.00">phone modem</text>
  49. </g>
  50. <!-- bluetooth -->
  51. <g id="node6" class="node">
  52. <title>bluetooth</title>
  53. <polygon fill="cyan" stroke="black" points="1871,-89 1803,-89 1803,-53 1871,-53 1871,-89"/>
  54. <text text-anchor="middle" x="1837" y="-67.3" font-family="Times,serif" font-size="14.00">bluetooth</text>
  55. </g>
  56. <!-- portaudio -->
  57. <g id="node7" class="node">
  58. <title>portaudio</title>
  59. <g id="a_node7"><a xlink:href="https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/" xlink:title="portaudio">
  60. <ellipse fill="lightgrey" stroke="black" cx="1338" cy="-714.74" rx="44.39" ry="18"/>
  61. <text text-anchor="middle" x="1338" y="-711.04" font-family="Times,serif" font-size="14.00">portaudio</text>
  62. </a>
  63. </g>
  64. </g>
  65. <!-- ALSA -->
  66. <g id="node8" class="node">
  67. <title>ALSA</title>
  68. <g id="a_node8"><a xlink:href="https://alsa-project.org/wiki/Asoundrc#Plugins" xlink:title="ALSA">
  69. <polygon fill="yellow" stroke="black" points="1699.05,-632.87 1679.53,-650.87 1640.47,-650.87 1620.95,-632.87 1640.47,-614.87 1679.53,-614.87 1699.05,-632.87"/>
  70. <text text-anchor="middle" x="1660" y="-629.17" font-family="Times,serif" font-size="14.00">ALSA</text>
  71. </a>
  72. </g>
  73. </g>
  74. <!-- portaudio&#45;&gt;ALSA -->
  75. <g id="edge1" class="edge">
  76. <title>portaudio&#45;&gt;ALSA</title>
  77. <path fill="none" stroke="black" d="M1370.58,-702.47C1377.29,-700.38 1384.33,-698.36 1391,-696.74 1438.29,-685.28 1451.49,-689.29 1499,-678.74 1541.3,-669.35 1589.04,-655.64 1621.47,-645.86"/>
  78. <polygon fill="black" stroke="black" points="1622.89,-649.08 1631.44,-642.83 1620.85,-642.39 1622.89,-649.08"/>
  79. </g>
  80. <!-- JACK -->
  81. <g id="node9" class="node">
  82. <title>JACK</title>
  83. <g id="a_node9"><a xlink:href="https://jackaudio.org/" xlink:title="JACK">
  84. <polygon fill="orange" stroke="black" points="1940.35,-529.54 1940.35,-544.46 1919.64,-555 1890.36,-555 1869.65,-544.46 1869.65,-529.54 1890.36,-519 1919.64,-519 1940.35,-529.54"/>
  85. <text text-anchor="middle" x="1905" y="-533.3" font-family="Times,serif" font-size="14.00">JACK</text>
  86. </a>
  87. </g>
  88. </g>
  89. <!-- portaudio&#45;&gt;JACK -->
  90. <g id="edge2" class="edge">
  91. <title>portaudio&#45;&gt;JACK</title>
  92. <path fill="none" stroke="black" d="M1366.7,-700.84C1416.04,-679.02 1520.48,-634.45 1612,-606 1698.09,-579.24 1801.31,-557.65 1859.41,-546.42"/>
  93. <polygon fill="black" stroke="black" points="1860.21,-549.83 1869.37,-544.52 1858.89,-542.96 1860.21,-549.83"/>
  94. </g>
  95. <!-- OSS -->
  96. <g id="node10" class="node">
  97. <title>OSS</title>
  98. <polygon fill="yellow" stroke="black" points="1403.54,-464 1388.27,-482 1357.73,-482 1342.46,-464 1357.73,-446 1388.27,-446 1403.54,-464"/>
  99. <text text-anchor="middle" x="1373" y="-460.3" font-family="Times,serif" font-size="14.00">OSS</text>
  100. </g>
  101. <!-- portaudio&#45;&gt;OSS -->
  102. <g id="edge3" class="edge">
  103. <title>portaudio&#45;&gt;OSS</title>
  104. <path fill="none" stroke="black" d="M1336.89,-696.68C1335.01,-659.89 1333.21,-570.69 1354,-500 1354.87,-497.04 1356.01,-494.06 1357.31,-491.14"/>
  105. <polygon fill="black" stroke="black" points="1360.45,-492.68 1361.81,-482.17 1354.19,-489.54 1360.45,-492.68"/>
  106. </g>
  107. <!-- asihpi -->
  108. <g id="node11" class="node">
  109. <title>asihpi</title>
  110. <polygon fill="yellow" stroke="black" points="1431.55,-632.87 1413.27,-650.87 1376.73,-650.87 1358.45,-632.87 1376.73,-614.87 1413.27,-614.87 1431.55,-632.87"/>
  111. <text text-anchor="middle" x="1395" y="-629.17" font-family="Times,serif" font-size="14.00">asihpi</text>
  112. </g>
  113. <!-- portaudio&#45;&gt;asihpi -->
  114. <g id="edge4" class="edge">
  115. <title>portaudio&#45;&gt;asihpi</title>
  116. <path fill="none" stroke="black" d="M1349.81,-697.19C1357.65,-686.2 1368.1,-671.57 1376.97,-659.13"/>
  117. <polygon fill="black" stroke="black" points="1379.85,-661.12 1382.81,-650.95 1374.15,-657.06 1379.85,-661.12"/>
  118. </g>
  119. <!-- sndio -->
  120. <g id="node12" class="node">
  121. <title>sndio</title>
  122. <g id="a_node12"><a xlink:href="http://www.sndio.org/" xlink:title="sndio">
  123. <polygon fill="orange" stroke="black" points="1134.22,-223.54 1134.22,-238.46 1115.35,-249 1088.65,-249 1069.78,-238.46 1069.78,-223.54 1088.65,-213 1115.35,-213 1134.22,-223.54"/>
  124. <text text-anchor="middle" x="1102" y="-227.3" font-family="Times,serif" font-size="14.00">sndio</text>
  125. </a>
  126. </g>
  127. </g>
  128. <!-- portaudio&#45;&gt;sndio -->
  129. <g id="edge6" class="edge">
  130. <title>portaudio&#45;&gt;sndio</title>
  131. <path fill="none" stroke="black" d="M1331.19,-696.66C1320.46,-670 1298.69,-616.98 1278,-573 1221.83,-453.61 1147.24,-314.87 1116.34,-258.16"/>
  132. <polygon fill="black" stroke="black" points="1119.29,-256.26 1111.43,-249.16 1113.15,-259.62 1119.29,-256.26"/>
  133. </g>
  134. <!-- ALSA&#45;&gt;sound card -->
  135. <g id="edge64" class="edge">
  136. <title>ALSA&#45;&gt;sound card</title>
  137. <path fill="none" stroke="green" d="M1657.41,-614.78C1653.79,-592.45 1646.46,-552.25 1636,-519 1584.07,-353.91 1493.8,-165.98 1460.15,-98.14"/>
  138. <polygon fill="green" stroke="green" points="1463.19,-96.41 1455.6,-89.02 1456.93,-99.53 1463.19,-96.41"/>
  139. </g>
  140. <!-- ALSA&#45;&gt;JACK -->
  141. <g id="edge66" class="edge">
  142. <title>ALSA&#45;&gt;JACK</title>
  143. <path fill="none" stroke="black" d="M1698.13,-619.62C1723.72,-611.2 1758.09,-599.5 1788,-588 1815.78,-577.32 1846.73,-564.03 1869.82,-553.84"/>
  144. <polygon fill="black" stroke="black" points="1696.85,-616.36 1688.43,-622.79 1699.03,-623.01 1696.85,-616.36"/>
  145. <polygon fill="black" stroke="black" points="1871.48,-556.93 1879.2,-549.67 1868.64,-550.53 1871.48,-556.93"/>
  146. </g>
  147. <!-- PulseAudio -->
  148. <g id="node13" class="node">
  149. <title>PulseAudio</title>
  150. <g id="a_node13"><a xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/" xlink:title="PulseAudio">
  151. <polygon fill="orange" stroke="black" points="1893.06,-310.54 1893.06,-325.46 1860.22,-336 1813.78,-336 1780.94,-325.46 1780.94,-310.54 1813.78,-300 1860.22,-300 1893.06,-310.54"/>
  152. <text text-anchor="middle" x="1837" y="-314.3" font-family="Times,serif" font-size="14.00">PulseAudio</text>
  153. </a>
  154. </g>
  155. </g>
  156. <!-- ALSA&#45;&gt;PulseAudio -->
  157. <g id="edge65" class="edge">
  158. <title>ALSA&#45;&gt;PulseAudio</title>
  159. <path fill="none" stroke="black" d="M1685.69,-620.17C1701.7,-612.97 1721.68,-602.33 1736,-588 1803.89,-520.06 1821.73,-399.98 1830.33,-346.28"/>
  160. <polygon fill="black" stroke="black" points="1833.82,-346.6 1831.99,-336.17 1826.92,-345.47 1833.82,-346.6"/>
  161. </g>
  162. <!-- bluez -->
  163. <g id="node14" class="node">
  164. <title>bluez</title>
  165. <polygon fill="yellow" stroke="black" points="1874.55,-158 1855.77,-176 1818.23,-176 1799.45,-158 1818.23,-140 1855.77,-140 1874.55,-158"/>
  166. <text text-anchor="middle" x="1837" y="-154.3" font-family="Times,serif" font-size="14.00">BlueZ</text>
  167. </g>
  168. <!-- ALSA&#45;&gt;bluez -->
  169. <g id="edge20" class="edge">
  170. <title>ALSA&#45;&gt;bluez</title>
  171. <path fill="none" stroke="black" d="M1674.87,-614.82C1681.1,-607.03 1688.04,-597.45 1693,-588 1700.18,-574.31 1700.8,-570.12 1704,-555 1714.06,-507.51 1713.61,-494.47 1711,-446 1710.11,-429.48 1707.89,-425.52 1707,-409 1706.14,-393.02 1702.69,-388.41 1707,-373 1728.19,-297.3 1784.31,-221.77 1815.43,-183.94"/>
  172. <polygon fill="black" stroke="black" points="1818.32,-185.94 1822.04,-176.02 1812.95,-181.46 1818.32,-185.94"/>
  173. </g>
  174. <!-- PipeWire -->
  175. <g id="node17" class="node">
  176. <title>PipeWire</title>
  177. <g id="a_node17"><a xlink:href="http://pipewire.org/" xlink:title="PipeWire">
  178. <polygon fill="orange" stroke="black" points="2265.68,-223.54 2265.68,-238.46 2237.75,-249 2198.25,-249 2170.32,-238.46 2170.32,-223.54 2198.25,-213 2237.75,-213 2265.68,-223.54"/>
  179. <text text-anchor="middle" x="2218" y="-227.3" font-family="Times,serif" font-size="14.00">PipeWire</text>
  180. </a>
  181. </g>
  182. </g>
  183. <!-- ALSA&#45;&gt;PipeWire -->
  184. <g id="edge15" class="edge">
  185. <title>ALSA&#45;&gt;PipeWire</title>
  186. <path fill="none" stroke="black" d="M1670.3,-605.29C1675.65,-590.64 1681.89,-572.03 1686,-555 1714.04,-438.73 1666.88,-357.06 1772,-300 1837.95,-264.2 2055.05,-243.9 2160.08,-235.95"/>
  187. <polygon fill="black" stroke="black" points="1667,-604.14 1666.79,-614.73 1673.56,-606.58 1667,-604.14"/>
  188. <polygon fill="black" stroke="black" points="2160.48,-239.43 2170.19,-235.19 2159.96,-232.45 2160.48,-239.43"/>
  189. </g>
  190. <!-- aRts -->
  191. <g id="node21" class="node">
  192. <title>aRts</title>
  193. <ellipse fill="lightgrey" stroke="black" cx="730" cy="-318" rx="27" ry="18"/>
  194. <text text-anchor="middle" x="730" y="-314.3" font-family="Times,serif" font-size="14.00">aRts</text>
  195. </g>
  196. <!-- ALSA&#45;&gt;aRts -->
  197. <g id="edge67" class="edge">
  198. <title>ALSA&#45;&gt;aRts</title>
  199. <path fill="none" stroke="black" d="M1650.13,-614.46C1635.68,-590.29 1606.68,-546.45 1572,-519 1541.51,-494.87 1449.99,-457.98 1413,-446 1289.24,-405.93 889.1,-343.22 766.23,-324.47"/>
  200. <polygon fill="black" stroke="black" points="766.62,-320.99 756.2,-322.94 765.56,-327.91 766.62,-320.99"/>
  201. </g>
  202. <!-- JACK&#45;&gt;OSS -->
  203. <g id="edge108" class="edge">
  204. <title>JACK&#45;&gt;OSS</title>
  205. <path fill="none" stroke="black" d="M1869.37,-532.59C1811.35,-526.91 1692.89,-514.77 1593,-501 1528.01,-492.04 1452.62,-479.16 1409.1,-471.48"/>
  206. <polygon fill="black" stroke="black" points="1409.47,-467.99 1399.01,-469.69 1408.25,-474.89 1409.47,-467.99"/>
  207. </g>
  208. <!-- JACK&#45;&gt;PipeWire -->
  209. <g id="edge16" class="edge">
  210. <title>JACK&#45;&gt;PipeWire</title>
  211. <path fill="none" stroke="black" d="M1950.61,-527.96C2020.11,-513.86 2154.04,-479.24 2245,-409 2268.52,-390.84 2290.2,-382.83 2283,-354 2274.03,-318.08 2252.26,-281.14 2236.38,-257.46"/>
  212. <polygon fill="black" stroke="black" points="1949.56,-524.6 1940.43,-529.97 1950.92,-531.47 1949.56,-524.6"/>
  213. <polygon fill="black" stroke="black" points="2239.16,-255.33 2230.62,-249.06 2233.39,-259.29 2239.16,-255.33"/>
  214. </g>
  215. <!-- OSS&#45;&gt;sound card -->
  216. <g id="edge69" class="edge">
  217. <title>OSS&#45;&gt;sound card</title>
  218. <path fill="none" stroke="green" d="M1350.93,-453.92C1293.12,-428.69 1144.66,-353.88 1188,-267 1232.09,-178.61 1337.44,-119.77 1399.35,-91.5"/>
  219. <polygon fill="green" stroke="green" points="1400.83,-94.67 1408.52,-87.39 1397.97,-88.29 1400.83,-94.67"/>
  220. <text text-anchor="middle" x="1298" y="-270.8" font-family="Times,serif" font-size="14.00" fill="green">third&#45;party drivers from opensound.com</text>
  221. </g>
  222. <!-- OSS&#45;&gt;ALSA -->
  223. <g id="edge68" class="edge">
  224. <title>OSS&#45;&gt;ALSA</title>
  225. <path fill="none" stroke="black" d="M1397.01,-471.97C1414.78,-477.81 1439.08,-487.23 1458,-500 1503.33,-530.6 1498.23,-558.07 1544,-588 1567.33,-603.26 1596.74,-614.31 1620.11,-621.5"/>
  226. <polygon fill="black" stroke="black" points="1619.14,-624.86 1629.72,-624.35 1621.13,-618.15 1619.14,-624.86"/>
  227. </g>
  228. <!-- RoarAudio -->
  229. <g id="node24" class="node">
  230. <title>RoarAudio</title>
  231. <g id="a_node24"><a xlink:href="http://roaraudio.keep-cool.org/" xlink:title="RoarAudio">
  232. <ellipse fill="lightgrey" stroke="black" cx="986" cy="-391" rx="50.09" ry="18"/>
  233. <text text-anchor="middle" x="986" y="-387.3" font-family="Times,serif" font-size="14.00">RoarAudio</text>
  234. </a>
  235. </g>
  236. </g>
  237. <!-- OSS&#45;&gt;RoarAudio -->
  238. <g id="edge34" class="edge">
  239. <title>OSS&#45;&gt;RoarAudio</title>
  240. <path fill="none" stroke="black" d="M1347.01,-458.23C1284.31,-446.73 1123.73,-417.27 1039.46,-401.81"/>
  241. <polygon fill="black" stroke="black" points="1040.04,-398.36 1029.57,-399.99 1038.78,-405.24 1040.04,-398.36"/>
  242. </g>
  243. <!-- asihpi&#45;&gt;sound card -->
  244. <g id="edge5" class="edge">
  245. <title>asihpi&#45;&gt;sound card</title>
  246. <path fill="none" stroke="green" d="M1400,-614.73C1410.53,-577.63 1434.7,-486.93 1443,-409 1444.69,-393.09 1445.95,-388.73 1443,-373 1440.63,-360.35 1422,-331.88 1422,-319 1422,-319 1422,-319 1422,-157 1422,-136.87 1428.53,-115.12 1434.92,-98.65"/>
  247. <polygon fill="green" stroke="green" points="1438.26,-99.73 1438.81,-89.15 1431.78,-97.07 1438.26,-99.73"/>
  248. </g>
  249. <!-- sndio&#45;&gt;ALSA -->
  250. <g id="edge45" class="edge">
  251. <title>sndio&#45;&gt;ALSA</title>
  252. <path fill="none" stroke="black" d="M1144.47,-231.73C1214.05,-232.19 1348.08,-237.05 1383,-267 1413.86,-293.47 1389.16,-318.97 1408,-355 1461.27,-456.87 1491.99,-472.46 1572,-555 1590.86,-574.45 1613.99,-594.53 1631.8,-609.28"/>
  253. <polygon fill="black" stroke="black" points="1144.3,-228.23 1134.29,-231.7 1144.28,-235.23 1144.3,-228.23"/>
  254. <polygon fill="black" stroke="black" points="1629.63,-612.03 1639.58,-615.67 1634.07,-606.62 1629.63,-612.03"/>
  255. </g>
  256. <!-- PulseAudio&#45;&gt;sound card -->
  257. <g id="edge8" class="edge">
  258. <title>PulseAudio&#45;&gt;sound card</title>
  259. <path fill="none" stroke="green" d="M1811.11,-300.74C1743.29,-258.13 1560.35,-143.21 1482.67,-94.41"/>
  260. <polygon fill="green" stroke="green" points="1484.5,-91.42 1474.17,-89.07 1480.78,-97.35 1484.5,-91.42"/>
  261. </g>
  262. <!-- PulseAudio&#45;&gt;ALSA -->
  263. <g id="edge7" class="edge">
  264. <title>PulseAudio&#45;&gt;ALSA</title>
  265. <path fill="none" stroke="black" d="M1840.34,-336.17C1841.95,-383.18 1826.57,-515.38 1754,-588 1739.11,-602.9 1718.1,-613.81 1699.59,-621.02"/>
  266. <polygon fill="black" stroke="black" points="1698.39,-617.74 1690.19,-624.46 1700.79,-624.31 1698.39,-617.74"/>
  267. </g>
  268. <!-- PulseAudio&#45;&gt;JACK -->
  269. <g id="edge10" class="edge">
  270. <title>PulseAudio&#45;&gt;JACK</title>
  271. <path fill="none" stroke="black" d="M1873.19,-332.03C1882.88,-337.32 1892.25,-344.49 1898,-354 1927.05,-402.01 1919.19,-470.93 1911.63,-508.69"/>
  272. <polygon fill="black" stroke="black" points="1908.11,-508.4 1909.43,-518.91 1914.96,-509.87 1908.11,-508.4"/>
  273. </g>
  274. <!-- PulseAudio&#45;&gt;OSS -->
  275. <g id="edge9" class="edge">
  276. <title>PulseAudio&#45;&gt;OSS</title>
  277. <path fill="none" stroke="black" d="M1770.73,-326.79C1731.13,-332.37 1680.12,-341.19 1636,-354 1548.74,-379.34 1451.18,-424.5 1403.11,-447.94"/>
  278. <polygon fill="black" stroke="black" points="1771.36,-330.24 1780.79,-325.41 1770.41,-323.3 1771.36,-330.24"/>
  279. <polygon fill="black" stroke="black" points="1401.34,-444.91 1393.9,-452.46 1404.42,-451.2 1401.34,-444.91"/>
  280. </g>
  281. <!-- PulseAudio&#45;&gt;sndio -->
  282. <g id="edge46" class="edge">
  283. <title>PulseAudio&#45;&gt;sndio</title>
  284. <path fill="none" stroke="black" d="M1781.19,-310.38C1699.8,-300.73 1543.79,-282.31 1411,-267 1315.88,-256.03 1204.25,-243.46 1144.64,-236.77"/>
  285. <polygon fill="black" stroke="black" points="1144.81,-233.27 1134.48,-235.64 1144.03,-240.23 1144.81,-233.27"/>
  286. </g>
  287. <!-- PulseAudio&#45;&gt;bluez -->
  288. <g id="edge11" class="edge">
  289. <title>PulseAudio&#45;&gt;bluez</title>
  290. <path fill="none" stroke="black" d="M1837,-299.79C1837,-272.48 1837,-218.99 1837,-186.38"/>
  291. <polygon fill="black" stroke="black" points="1840.5,-186.19 1837,-176.19 1833.5,-186.19 1840.5,-186.19"/>
  292. </g>
  293. <!-- ofono -->
  294. <g id="node15" class="node">
  295. <title>ofono</title>
  296. <polygon fill="yellow" stroke="black" points="2356.05,-231 2338.02,-249 2301.98,-249 2283.95,-231 2301.98,-213 2338.02,-213 2356.05,-231"/>
  297. <text text-anchor="middle" x="2320" y="-227.3" font-family="Times,serif" font-size="14.00">ofono</text>
  298. </g>
  299. <!-- PulseAudio&#45;&gt;ofono -->
  300. <g id="edge12" class="edge">
  301. <title>PulseAudio&#45;&gt;ofono</title>
  302. <path fill="none" stroke="black" d="M1893.07,-312.05C1977.13,-303.79 2140.31,-284.49 2275,-249 2278.41,-248.1 2281.93,-247.03 2285.42,-245.88"/>
  303. <polygon fill="black" stroke="black" points="2286.81,-249.1 2295.07,-242.47 2284.48,-242.5 2286.81,-249.1"/>
  304. </g>
  305. <!-- PulseAudio&#45;&gt;PipeWire -->
  306. <g id="edge14" class="edge">
  307. <title>PulseAudio&#45;&gt;PipeWire</title>
  308. <path fill="none" stroke="black" d="M1892.24,-304.68C1965.99,-288.22 2095.61,-259.31 2167.09,-243.36"/>
  309. <polygon fill="black" stroke="black" points="1891.2,-301.32 1882.2,-306.92 1892.72,-308.15 1891.2,-301.32"/>
  310. <polygon fill="black" stroke="black" points="2168.2,-246.7 2177.2,-241.1 2166.68,-239.86 2168.2,-246.7"/>
  311. </g>
  312. <!-- bluez&#45;&gt;bluetooth -->
  313. <g id="edge21" class="edge">
  314. <title>bluez&#45;&gt;bluetooth</title>
  315. <path fill="none" stroke="green" d="M1837,-139.8C1837,-128.16 1837,-112.55 1837,-99.24"/>
  316. <polygon fill="green" stroke="green" points="1840.5,-99.18 1837,-89.18 1833.5,-99.18 1840.5,-99.18"/>
  317. </g>
  318. <!-- ofono&#45;&gt;phone modem -->
  319. <g id="edge19" class="edge">
  320. <title>ofono&#45;&gt;phone modem</title>
  321. <path fill="none" stroke="green" d="M2323.45,-212.7C2327.12,-194.55 2333.19,-165.21 2339,-140 2342.14,-126.38 2345.88,-111.3 2349.06,-98.8"/>
  322. <polygon fill="green" stroke="green" points="2352.48,-99.56 2351.56,-89 2345.69,-97.83 2352.48,-99.56"/>
  323. </g>
  324. <!-- X11 bell -->
  325. <g id="node16" class="node">
  326. <title>X11 bell</title>
  327. <ellipse fill="lightgrey" stroke="black" cx="1758" cy="-391" rx="41.69" ry="18"/>
  328. <text text-anchor="middle" x="1758" y="-387.3" font-family="Times,serif" font-size="14.00">X11 bell</text>
  329. </g>
  330. <!-- X11 bell&#45;&gt;PulseAudio -->
  331. <g id="edge13" class="edge">
  332. <title>X11 bell&#45;&gt;PulseAudio</title>
  333. <path fill="none" stroke="black" d="M1775.14,-374.59C1785.39,-365.38 1798.64,-353.48 1810.24,-343.05"/>
  334. <polygon fill="black" stroke="black" points="1812.86,-345.41 1817.95,-336.12 1808.18,-340.2 1812.86,-345.41"/>
  335. </g>
  336. <!-- PipeWire&#45;&gt;bluez -->
  337. <g id="edge17" class="edge">
  338. <title>PipeWire&#45;&gt;bluez</title>
  339. <path fill="none" stroke="black" d="M2174.29,-221.86C2099.96,-208 1949.97,-180.05 1877.72,-166.59"/>
  340. <polygon fill="black" stroke="black" points="1878.11,-163.1 1867.64,-164.71 1876.83,-169.98 1878.11,-163.1"/>
  341. </g>
  342. <!-- gstreamer -->
  343. <g id="node18" class="node">
  344. <title>gstreamer</title>
  345. <ellipse fill="lightgrey" stroke="black" cx="2264" cy="-714.74" rx="46.29" ry="18"/>
  346. <text text-anchor="middle" x="2264" y="-711.04" font-family="Times,serif" font-size="14.00">gstreamer</text>
  347. </g>
  348. <!-- gstreamer&#45;&gt;ALSA -->
  349. <g id="edge85" class="edge">
  350. <title>gstreamer&#45;&gt;ALSA</title>
  351. <path fill="none" stroke="black" d="M2221.05,-708.06C2110.21,-693.4 1815.48,-654.43 1703.76,-639.66"/>
  352. <polygon fill="black" stroke="black" points="1703.91,-636.15 1693.53,-638.3 1702.99,-643.09 1703.91,-636.15"/>
  353. </g>
  354. <!-- gstreamer&#45;&gt;JACK -->
  355. <g id="edge87" class="edge">
  356. <title>gstreamer&#45;&gt;JACK</title>
  357. <path fill="none" stroke="black" d="M2223.56,-705.96C2189.46,-698.09 2140.39,-683.63 2103,-659.74 2058.29,-631.18 2066.14,-600.88 2021,-573 1999.5,-559.72 1972.65,-551.2 1950.19,-545.89"/>
  358. <polygon fill="black" stroke="black" points="1950.73,-542.43 1940.21,-543.68 1949.22,-549.26 1950.73,-542.43"/>
  359. </g>
  360. <!-- gstreamer&#45;&gt;OSS -->
  361. <g id="edge86" class="edge">
  362. <title>gstreamer&#45;&gt;OSS</title>
  363. <path fill="none" stroke="black" d="M2250.72,-697.27C2217.46,-657.47 2125.82,-556.57 2023,-519 1909.84,-477.65 1535.68,-467.73 1412.62,-465.56"/>
  364. <polygon fill="black" stroke="black" points="1412.57,-462.06 1402.51,-465.39 1412.45,-469.06 1412.57,-462.06"/>
  365. </g>
  366. <!-- gstreamer&#45;&gt;sndio -->
  367. <g id="edge47" class="edge">
  368. <title>gstreamer&#45;&gt;sndio</title>
  369. <path fill="none" stroke="black" d="M2298.07,-702.36C2344.24,-684.53 2421,-645.29 2421,-581.5 2421,-581.5 2421,-581.5 2421,-427 2421,-294.77 1370.18,-243.24 1144.4,-233.69"/>
  370. <polygon fill="black" stroke="black" points="1144.41,-230.19 1134.28,-233.27 1144.12,-237.18 1144.41,-230.19"/>
  371. </g>
  372. <!-- gstreamer&#45;&gt;PulseAudio -->
  373. <g id="edge88" class="edge">
  374. <title>gstreamer&#45;&gt;PulseAudio</title>
  375. <path fill="none" stroke="black" d="M2263.94,-696.34C2263.3,-630.97 2257.47,-401.4 2207,-354 2185.37,-333.69 2003.82,-324.5 1903.31,-320.93"/>
  376. <polygon fill="black" stroke="black" points="1903.37,-317.43 1893.26,-320.58 1903.13,-324.43 1903.37,-317.43"/>
  377. </g>
  378. <!-- gstreamer&#45;&gt;PipeWire -->
  379. <g id="edge18" class="edge">
  380. <title>gstreamer&#45;&gt;PipeWire</title>
  381. <path fill="none" stroke="black" d="M2298.88,-702.86C2348.74,-687.3 2434.48,-660.45 2435,-659.74 2510.33,-556.95 2454.41,-498.95 2435,-373 2433.65,-364.25 2434.54,-360.91 2429,-354 2385.39,-299.66 2310.59,-264.75 2262.77,-246.76"/>
  382. <polygon fill="black" stroke="black" points="2263.88,-243.44 2253.28,-243.28 2261.47,-250.01 2263.88,-243.44"/>
  383. </g>
  384. <!-- sox -->
  385. <g id="node19" class="node">
  386. <title>sox</title>
  387. <g id="a_node19"><a xlink:href="http://sox.sourceforge.net/Docs/Features" xlink:title="sox">
  388. <ellipse fill="lightgrey" stroke="black" cx="1076" cy="-787.74" rx="27" ry="18"/>
  389. <text text-anchor="middle" x="1076" y="-784.04" font-family="Times,serif" font-size="14.00">sox</text>
  390. </a>
  391. </g>
  392. </g>
  393. <!-- sox&#45;&gt;ALSA -->
  394. <g id="edge24" class="edge">
  395. <title>sox&#45;&gt;ALSA</title>
  396. <path fill="none" stroke="black" d="M1102.85,-785.42C1204.3,-780.22 1560.69,-760.15 1603,-732.74 1628.49,-716.22 1643.89,-684.03 1652.15,-660.86"/>
  397. <polygon fill="black" stroke="black" points="1655.51,-661.84 1655.35,-651.25 1648.87,-659.63 1655.51,-661.84"/>
  398. </g>
  399. <!-- sox&#45;&gt;sndio -->
  400. <g id="edge25" class="edge">
  401. <title>sox&#45;&gt;sndio</title>
  402. <path fill="none" stroke="black" d="M1066.89,-770.45C1028.33,-701.16 879.6,-430.26 858,-336 854.43,-320.4 848.32,-312.74 858,-300 882.31,-267.99 996.34,-247.02 1059.55,-237.64"/>
  403. <polygon fill="black" stroke="black" points="1060.21,-241.09 1069.6,-236.19 1059.21,-234.16 1060.21,-241.09"/>
  404. </g>
  405. <!-- sox&#45;&gt;PulseAudio -->
  406. <g id="edge23" class="edge">
  407. <title>sox&#45;&gt;PulseAudio</title>
  408. <path fill="none" stroke="black" d="M1078.66,-759.4C1084.96,-707.47 1104.89,-593.17 1163,-519 1172.5,-506.87 1178.43,-507.3 1192,-500 1207.72,-491.55 1469.85,-377.93 1487,-373 1583.59,-345.25 1699.53,-330.92 1770.73,-324.19"/>
  409. <polygon fill="black" stroke="black" points="1075.17,-759.16 1077.52,-769.49 1082.12,-759.95 1075.17,-759.16"/>
  410. <polygon fill="black" stroke="black" points="1771.26,-327.65 1780.9,-323.25 1770.62,-320.68 1771.26,-327.65"/>
  411. </g>
  412. <!-- libao -->
  413. <g id="node20" class="node">
  414. <title>libao</title>
  415. <g id="a_node20"><a xlink:href="https://www.xiph.org/ao/" xlink:title="libao">
  416. <ellipse fill="lightgrey" stroke="black" cx="988" cy="-714.74" rx="28.7" ry="18"/>
  417. <text text-anchor="middle" x="988" y="-711.04" font-family="Times,serif" font-size="14.00">libao</text>
  418. </a>
  419. </g>
  420. </g>
  421. <!-- sox&#45;&gt;libao -->
  422. <g id="edge22" class="edge">
  423. <title>sox&#45;&gt;libao</title>
  424. <path fill="none" stroke="black" d="M1059.45,-773.39C1046.34,-762.81 1027.82,-747.87 1012.93,-735.85"/>
  425. <polygon fill="black" stroke="black" points="1015.06,-733.07 1005.08,-729.52 1010.66,-738.52 1015.06,-733.07"/>
  426. </g>
  427. <!-- libao&#45;&gt;ALSA -->
  428. <g id="edge27" class="edge">
  429. <title>libao&#45;&gt;ALSA</title>
  430. <path fill="none" stroke="black" d="M1016.02,-710.41C1120.52,-697.99 1488.03,-654.31 1615.82,-639.12"/>
  431. <polygon fill="black" stroke="black" points="1616.5,-642.57 1626.01,-637.91 1615.67,-635.61 1616.5,-642.57"/>
  432. </g>
  433. <!-- libao&#45;&gt;OSS -->
  434. <g id="edge26" class="edge">
  435. <title>libao&#45;&gt;OSS</title>
  436. <path fill="none" stroke="black" d="M1010.05,-703.14C1029.14,-693.37 1056.91,-677.7 1078,-659.74 1111.92,-630.86 1120.63,-623.14 1148,-588 1176.2,-551.8 1164.42,-526.33 1202,-500 1240.4,-473.1 1294.85,-465.93 1331.92,-464.47"/>
  437. <polygon fill="black" stroke="black" points="1332.45,-467.95 1342.36,-464.19 1332.27,-460.96 1332.45,-467.95"/>
  438. </g>
  439. <!-- libao&#45;&gt;sndio -->
  440. <g id="edge33" class="edge">
  441. <title>libao&#45;&gt;sndio</title>
  442. <path fill="none" stroke="black" d="M964.97,-703.61C941.72,-693.21 904.91,-676.24 874,-659.74 866.41,-655.69 608,-509.6 608,-501 608,-501 608,-501 608,-317 608,-271.38 939.38,-243.47 1059.32,-234.86"/>
  443. <polygon fill="black" stroke="black" points="1059.86,-238.33 1069.59,-234.14 1059.37,-231.35 1059.86,-238.33"/>
  444. </g>
  445. <!-- libao&#45;&gt;PulseAudio -->
  446. <g id="edge29" class="edge">
  447. <title>libao&#45;&gt;PulseAudio</title>
  448. <path fill="none" stroke="black" d="M994.8,-697C1013.2,-652.28 1064.55,-531.3 1094,-500 1110.51,-482.45 1165.79,-455.32 1188,-446 1244.18,-422.42 1261.37,-425.59 1320,-409 1376.04,-393.14 1389.2,-385.89 1446,-373 1495.24,-361.83 1508.05,-361.37 1558,-354 1630.52,-343.31 1713.95,-333.12 1770.55,-326.52"/>
  449. <polygon fill="black" stroke="black" points="1771.26,-329.96 1780.79,-325.33 1770.46,-323 1771.26,-329.96"/>
  450. </g>
  451. <!-- libao&#45;&gt;aRts -->
  452. <g id="edge28" class="edge">
  453. <title>libao&#45;&gt;aRts</title>
  454. <path fill="none" stroke="black" d="M968.41,-701.55C953.55,-691.61 933.32,-676.52 919,-659.74 830.78,-556.39 764.63,-405.43 740.24,-345.21"/>
  455. <polygon fill="black" stroke="black" points="743.4,-343.68 736.43,-335.7 736.9,-346.29 743.4,-343.68"/>
  456. </g>
  457. <!-- ESD -->
  458. <g id="node22" class="node">
  459. <title>ESD</title>
  460. <polygon fill="orange" stroke="black" points="926.59,-310.54 926.59,-325.46 909.26,-336 884.74,-336 867.41,-325.46 867.41,-310.54 884.74,-300 909.26,-300 926.59,-310.54"/>
  461. <text text-anchor="middle" x="897" y="-314.3" font-family="Times,serif" font-size="14.00">ESD</text>
  462. </g>
  463. <!-- libao&#45;&gt;ESD -->
  464. <g id="edge30" class="edge">
  465. <title>libao&#45;&gt;ESD</title>
  466. <path fill="none" stroke="black" d="M976.85,-697.92C953.62,-663.88 900.67,-580.33 882,-501 869.28,-446.93 880.99,-381.62 889.66,-345.79"/>
  467. <polygon fill="black" stroke="black" points="893.06,-346.63 892.11,-336.07 886.27,-344.91 893.06,-346.63"/>
  468. </g>
  469. <!-- NAS -->
  470. <g id="node23" class="node">
  471. <title>NAS</title>
  472. <g id="a_node23"><a xlink:href="http://radscan.com/nas.html" xlink:title="Network Audio System/Server">
  473. <polygon fill="orange" stroke="black" points="770.39,-625.41 770.39,-640.33 694.59,-650.87 587.41,-650.87 511.61,-640.33 511.61,-625.41 587.41,-614.87 694.59,-614.87 770.39,-625.41"/>
  474. <text text-anchor="middle" x="641" y="-629.17" font-family="Times,serif" font-size="14.00">Network Audio System/Server</text>
  475. </a>
  476. </g>
  477. </g>
  478. <!-- libao&#45;&gt;NAS -->
  479. <g id="edge31" class="edge">
  480. <title>libao&#45;&gt;NAS</title>
  481. <path fill="none" stroke="black" d="M961.63,-707.67C910.25,-695.84 794.96,-669.31 717.56,-651.49"/>
  482. <polygon fill="black" stroke="black" points="717.91,-647.98 707.38,-649.15 716.34,-654.8 717.91,-647.98"/>
  483. </g>
  484. <!-- libao&#45;&gt;RoarAudio -->
  485. <g id="edge32" class="edge">
  486. <title>libao&#45;&gt;RoarAudio</title>
  487. <path fill="none" stroke="black" d="M988,-696.6C988,-680.43 988,-655.5 988,-633.87 988,-633.87 988,-633.87 988,-463 988,-448.65 987.59,-432.67 987.14,-419.51"/>
  488. <polygon fill="black" stroke="black" points="990.62,-419.08 986.76,-409.21 983.63,-419.33 990.62,-419.08"/>
  489. </g>
  490. <!-- ESD&#45;&gt;ALSA -->
  491. <g id="edge40" class="edge">
  492. <title>ESD&#45;&gt;ALSA</title>
  493. <path fill="none" stroke="black" d="M926.79,-320.1C1018.62,-324.52 1303.64,-345.96 1512,-446 1560.96,-469.51 1576.11,-476.56 1610,-519 1630.71,-544.94 1644.66,-580.8 1652.45,-605.09"/>
  494. <polygon fill="black" stroke="black" points="1649.13,-606.2 1655.42,-614.73 1655.82,-604.14 1649.13,-606.2"/>
  495. </g>
  496. <!-- ESD&#45;&gt;OSS -->
  497. <g id="edge39" class="edge">
  498. <title>ESD&#45;&gt;OSS</title>
  499. <path fill="none" stroke="black" d="M923.88,-327.13C1005.38,-351.79 1249.6,-425.67 1339.39,-452.83"/>
  500. <polygon fill="black" stroke="black" points="1338.48,-456.21 1349.07,-455.76 1340.51,-449.51 1338.48,-456.21"/>
  501. </g>
  502. <!-- RoarAudio&#45;&gt;sndio -->
  503. <g id="edge35" class="edge">
  504. <title>RoarAudio&#45;&gt;sndio</title>
  505. <path fill="none" stroke="black" d="M998.19,-373.39C1018.49,-345.75 1059.31,-290.14 1083.27,-257.51"/>
  506. <polygon fill="black" stroke="black" points="1086.17,-259.48 1089.27,-249.34 1080.53,-255.33 1086.17,-259.48"/>
  507. </g>
  508. <!-- RoarAudio&#45;&gt;PulseAudio -->
  509. <g id="edge36" class="edge">
  510. <title>RoarAudio&#45;&gt;PulseAudio</title>
  511. <path fill="none" stroke="black" d="M1023.3,-378.81C1032,-376.56 1041.27,-374.45 1050,-373 1314.35,-329.23 1634.33,-320.82 1770.49,-319.29"/>
  512. <polygon fill="black" stroke="black" points="1770.79,-322.79 1780.75,-319.19 1770.72,-315.79 1770.79,-322.79"/>
  513. </g>
  514. <!-- RoarAudio&#45;&gt;aRts -->
  515. <g id="edge38" class="edge">
  516. <title>RoarAudio&#45;&gt;aRts</title>
  517. <path fill="none" stroke="black" d="M947.67,-379.37C898.03,-365.6 812.23,-341.81 764.53,-328.58"/>
  518. <polygon fill="black" stroke="black" points="765.24,-325.14 754.67,-325.84 763.37,-331.89 765.24,-325.14"/>
  519. </g>
  520. <!-- RoarAudio&#45;&gt;ESD -->
  521. <g id="edge37" class="edge">
  522. <title>RoarAudio&#45;&gt;ESD</title>
  523. <path fill="none" stroke="black" d="M966.25,-374.24C953.44,-364.03 936.62,-350.61 922.77,-339.56"/>
  524. <polygon fill="black" stroke="black" points="924.59,-336.53 914.59,-333.03 920.22,-342 924.59,-336.53"/>
  525. </g>
  526. <!-- libcanberra -->
  527. <g id="node25" class="node">
  528. <title>libcanberra</title>
  529. <g id="a_node25"><a xlink:href="http://git.0pointer.net/libcanberra.git/tree/src/driver-order.c" xlink:title="libcanberra">
  530. <ellipse fill="lightgrey" stroke="black" cx="2124" cy="-787.74" rx="50.09" ry="18"/>
  531. <text text-anchor="middle" x="2124" y="-784.04" font-family="Times,serif" font-size="14.00">libcanberra</text>
  532. </a>
  533. </g>
  534. </g>
  535. <!-- libcanberra&#45;&gt;ALSA -->
  536. <g id="edge43" class="edge">
  537. <title>libcanberra&#45;&gt;ALSA</title>
  538. <path fill="none" stroke="black" d="M2083.7,-776.95C2045.81,-767.28 1987.79,-751.28 1939,-732.74 1904.06,-719.46 1897.83,-710.3 1863,-696.74 1807.26,-675.03 1740.7,-655.6 1699.38,-644.27"/>
  539. <polygon fill="black" stroke="black" points="1700.26,-640.89 1689.7,-641.64 1698.43,-647.64 1700.26,-640.89"/>
  540. </g>
  541. <!-- libcanberra&#45;&gt;OSS -->
  542. <g id="edge42" class="edge">
  543. <title>libcanberra&#45;&gt;OSS</title>
  544. <path fill="none" stroke="black" d="M2119.76,-769.61C2109.74,-731.52 2081.88,-638.06 2035,-573 2013.64,-543.35 2006.61,-533.34 1973,-519 1871.55,-475.73 1529.99,-467.1 1412.83,-465.41"/>
  545. <polygon fill="black" stroke="black" points="1412.58,-461.9 1402.53,-465.27 1412.48,-468.9 1412.58,-461.9"/>
  546. </g>
  547. <!-- libcanberra&#45;&gt;PulseAudio -->
  548. <g id="edge41" class="edge">
  549. <title>libcanberra&#45;&gt;PulseAudio</title>
  550. <path fill="none" stroke="black" d="M2133.74,-770.08C2152.76,-735.93 2193,-654.99 2193,-581.5 2193,-581.5 2193,-581.5 2193,-390 2193,-331.6 2006.42,-320.55 1903.41,-318.89"/>
  551. <polygon fill="black" stroke="black" points="1903.46,-315.39 1893.41,-318.76 1903.36,-322.39 1903.46,-315.39"/>
  552. </g>
  553. <!-- libcanberra&#45;&gt;gstreamer -->
  554. <g id="edge44" class="edge">
  555. <title>libcanberra&#45;&gt;gstreamer</title>
  556. <path fill="none" stroke="black" d="M2155.97,-773.86C2170.79,-767.61 2188.51,-759.74 2204,-751.74 2213.39,-746.89 2223.33,-741.18 2232.36,-735.76"/>
  557. <polygon fill="black" stroke="black" points="2234.32,-738.66 2241.03,-730.47 2230.67,-732.69 2234.32,-738.66"/>
  558. </g>
  559. <!-- OpenAL -->
  560. <g id="node26" class="node">
  561. <title>OpenAL</title>
  562. <g id="a_node26"><a xlink:href="https://www.openal-soft.org/" xlink:title="OpenAL">
  563. <ellipse fill="lightgrey" stroke="black" cx="1517" cy="-787.74" rx="41.69" ry="18"/>
  564. <text text-anchor="middle" x="1517" y="-784.04" font-family="Times,serif" font-size="14.00">OpenAL</text>
  565. </a>
  566. </g>
  567. </g>
  568. <!-- OpenAL&#45;&gt;portaudio -->
  569. <g id="edge52" class="edge">
  570. <title>OpenAL&#45;&gt;portaudio</title>
  571. <path fill="none" stroke="black" d="M1487.44,-775.02C1457.53,-763.15 1411.08,-744.73 1377.91,-731.57"/>
  572. <polygon fill="black" stroke="black" points="1379.09,-728.27 1368.5,-727.84 1376.51,-734.78 1379.09,-728.27"/>
  573. </g>
  574. <!-- OpenAL&#45;&gt;ALSA -->
  575. <g id="edge49" class="edge">
  576. <title>OpenAL&#45;&gt;ALSA</title>
  577. <path fill="none" stroke="black" d="M1558.16,-785.06C1584.08,-781.78 1616.26,-773.23 1636,-751.74 1658.47,-727.27 1662.28,-687.7 1661.95,-661.24"/>
  578. <polygon fill="black" stroke="black" points="1665.44,-661 1661.61,-651.12 1658.44,-661.23 1665.44,-661"/>
  579. </g>
  580. <!-- OpenAL&#45;&gt;JACK -->
  581. <g id="edge53" class="edge">
  582. <title>OpenAL&#45;&gt;JACK</title>
  583. <path fill="none" stroke="black" d="M1558.6,-785.95C1640.79,-783.51 1819.78,-773.54 1863,-732.74 1909.27,-689.06 1910.73,-607.58 1907.88,-565.19"/>
  584. <polygon fill="black" stroke="black" points="1911.36,-564.75 1907.07,-555.06 1904.38,-565.31 1911.36,-564.75"/>
  585. </g>
  586. <!-- OpenAL&#45;&gt;OSS -->
  587. <g id="edge50" class="edge">
  588. <title>OpenAL&#45;&gt;OSS</title>
  589. <path fill="none" stroke="black" d="M1476.75,-782.97C1417.17,-776.49 1309.85,-761.14 1285,-732.74 1238.2,-679.26 1252.92,-639.49 1278,-573 1291.72,-536.63 1323.87,-504.56 1346.97,-485.01"/>
  590. <polygon fill="black" stroke="black" points="1349.23,-487.69 1354.72,-478.63 1344.78,-482.29 1349.23,-487.69"/>
  591. </g>
  592. <!-- OpenAL&#45;&gt;sndio -->
  593. <g id="edge54" class="edge">
  594. <title>OpenAL&#45;&gt;sndio</title>
  595. <path fill="none" stroke="black" d="M1476.92,-782.54C1413.12,-775.17 1292.19,-758.25 1258,-732.74 1156.03,-656.67 1129.25,-622.01 1090,-501 1079.86,-469.72 1102,-460.88 1102,-428 1102,-428 1102,-428 1102,-317 1102,-297.75 1102,-276.05 1102,-259.4"/>
  596. <polygon fill="black" stroke="black" points="1105.5,-259.26 1102,-249.26 1098.5,-259.26 1105.5,-259.26"/>
  597. </g>
  598. <!-- OpenAL&#45;&gt;PulseAudio -->
  599. <g id="edge48" class="edge">
  600. <title>OpenAL&#45;&gt;PulseAudio</title>
  601. <path fill="none" stroke="black" d="M1558.67,-787.07C1667.84,-787.23 1959.24,-782.83 2039,-732.74 2070.15,-713.18 2143,-544.82 2143,-538 2143,-538 2143,-538 2143,-390 2143,-341.16 1993.23,-325.91 1903.25,-321.15"/>
  602. <polygon fill="black" stroke="black" points="1903.29,-317.65 1893.13,-320.65 1902.94,-324.64 1903.29,-317.65"/>
  603. </g>
  604. <!-- SoundIO -->
  605. <g id="node27" class="node">
  606. <title>SoundIO</title>
  607. <g id="a_node27"><a xlink:href="http://libsound.io/" xlink:title="SoundIO">
  608. <ellipse fill="lightgrey" stroke="black" cx="1730" cy="-714.74" rx="42.49" ry="18"/>
  609. <text text-anchor="middle" x="1730" y="-711.04" font-family="Times,serif" font-size="14.00">SoundIO</text>
  610. </a>
  611. </g>
  612. </g>
  613. <!-- OpenAL&#45;&gt;SoundIO -->
  614. <g id="edge51" class="edge">
  615. <title>OpenAL&#45;&gt;SoundIO</title>
  616. <path fill="none" stroke="black" d="M1556.56,-781.86C1589.03,-776.93 1635.73,-767.71 1674,-751.74 1683.58,-747.74 1693.33,-742.12 1701.95,-736.5"/>
  617. <polygon fill="black" stroke="black" points="1704.16,-739.23 1710.47,-730.72 1700.23,-733.44 1704.16,-739.23"/>
  618. </g>
  619. <!-- SoundIO&#45;&gt;ALSA -->
  620. <g id="edge57" class="edge">
  621. <title>SoundIO&#45;&gt;ALSA</title>
  622. <path fill="none" stroke="black" d="M1715.83,-697.58C1706.04,-686.4 1692.83,-671.33 1681.71,-658.64"/>
  623. <polygon fill="black" stroke="black" points="1684.34,-656.33 1675.11,-651.11 1679.07,-660.94 1684.34,-656.33"/>
  624. </g>
  625. <!-- SoundIO&#45;&gt;JACK -->
  626. <g id="edge55" class="edge">
  627. <title>SoundIO&#45;&gt;JACK</title>
  628. <path fill="none" stroke="black" d="M1755.99,-700.34C1766.21,-694.44 1777.69,-686.97 1787,-678.74 1817.97,-651.35 1818.42,-637.68 1845,-606 1857.32,-591.32 1871.49,-575.22 1882.96,-562.38"/>
  629. <polygon fill="black" stroke="black" points="1885.65,-564.62 1889.72,-554.84 1880.44,-559.95 1885.65,-564.62"/>
  630. </g>
  631. <!-- SoundIO&#45;&gt;PulseAudio -->
  632. <g id="edge56" class="edge">
  633. <title>SoundIO&#45;&gt;PulseAudio</title>
  634. <path fill="none" stroke="black" d="M1739.41,-697.17C1760.16,-659.92 1810.14,-566.23 1837,-482 1847.09,-450.36 1847.9,-441.82 1853,-409 1856.77,-384.75 1864.55,-377.65 1858,-354 1857.18,-351.02 1856.02,-348.04 1854.68,-345.15"/>
  635. <polygon fill="black" stroke="black" points="1857.73,-343.44 1849.89,-336.31 1851.57,-346.77 1857.73,-343.44"/>
  636. </g>
  637. <!-- RtAudio -->
  638. <g id="node28" class="node">
  639. <title>RtAudio</title>
  640. <g id="a_node28"><a xlink:href="https://www.music.mcgill.ca/~gary/rtaudio/apinotes.html" xlink:title="RtAudio">
  641. <ellipse fill="lightgrey" stroke="black" cx="1989" cy="-714.74" rx="40.89" ry="18"/>
  642. <text text-anchor="middle" x="1989" y="-711.04" font-family="Times,serif" font-size="14.00">RtAudio</text>
  643. </a>
  644. </g>
  645. </g>
  646. <!-- RtAudio&#45;&gt;ALSA -->
  647. <g id="edge59" class="edge">
  648. <title>RtAudio&#45;&gt;ALSA</title>
  649. <path fill="none" stroke="black" d="M1954.1,-705.27C1892.57,-690.33 1765.14,-659.39 1700.09,-643.6"/>
  650. <polygon fill="black" stroke="black" points="1700.75,-640.16 1690.21,-641.2 1699.1,-646.96 1700.75,-640.16"/>
  651. </g>
  652. <!-- RtAudio&#45;&gt;JACK -->
  653. <g id="edge60" class="edge">
  654. <title>RtAudio&#45;&gt;JACK</title>
  655. <path fill="none" stroke="black" d="M1968.87,-698.65C1962.43,-693 1955.75,-686.13 1951,-678.74 1938.78,-659.73 1921.65,-600.45 1912.12,-565.18"/>
  656. <polygon fill="black" stroke="black" points="1915.38,-563.83 1909.42,-555.08 1908.62,-565.64 1915.38,-563.83"/>
  657. </g>
  658. <!-- RtAudio&#45;&gt;OSS -->
  659. <g id="edge58" class="edge">
  660. <title>RtAudio&#45;&gt;OSS</title>
  661. <path fill="none" stroke="black" d="M1988.07,-696.71C1985.35,-653.64 1975.81,-542.21 1949,-519 1923.25,-496.71 1676.9,-504.25 1643,-501 1559.1,-492.95 1461.16,-478.66 1409.39,-470.72"/>
  662. <polygon fill="black" stroke="black" points="1409.79,-467.24 1399.37,-469.17 1408.72,-474.16 1409.79,-467.24"/>
  663. <text text-anchor="middle" x="2003.5" y="-576.8" font-family="Times,serif" font-size="14.00">OSS 4.0+</text>
  664. </g>
  665. <!-- RtAudio&#45;&gt;PulseAudio -->
  666. <g id="edge61" class="edge">
  667. <title>RtAudio&#45;&gt;PulseAudio</title>
  668. <path fill="none" stroke="black" d="M2000.9,-697.06C2018.07,-670.93 2046.53,-618.61 2035,-573 2007.64,-464.77 1999.53,-423.29 1912,-354 1903.2,-347.04 1892.79,-341.06 1882.57,-336.13"/>
  669. <polygon fill="black" stroke="black" points="1883.84,-332.86 1873.29,-331.88 1880.93,-339.22 1883.84,-332.86"/>
  670. </g>
  671. <!-- JUCE -->
  672. <g id="node29" class="node">
  673. <title>JUCE</title>
  674. <ellipse fill="lightgrey" stroke="black" cx="1822" cy="-714.74" rx="31.7" ry="18"/>
  675. <text text-anchor="middle" x="1822" y="-711.04" font-family="Times,serif" font-size="14.00">JUCE</text>
  676. </g>
  677. <!-- JUCE&#45;&gt;ALSA -->
  678. <g id="edge62" class="edge">
  679. <title>JUCE&#45;&gt;ALSA</title>
  680. <path fill="none" stroke="black" d="M1796.87,-703.26C1791.63,-701.09 1786.14,-698.83 1781,-696.74 1761.05,-688.61 1755.33,-688.24 1736,-678.74 1720.92,-671.33 1704.81,-662.03 1691.32,-653.82"/>
  681. <polygon fill="black" stroke="black" points="1692.79,-650.62 1682.44,-648.35 1689.12,-656.58 1692.79,-650.62"/>
  682. </g>
  683. <!-- JUCE&#45;&gt;JACK -->
  684. <g id="edge63" class="edge">
  685. <title>JUCE&#45;&gt;JACK</title>
  686. <path fill="none" stroke="black" d="M1829.81,-697.21C1844.26,-666.62 1875.26,-600.97 1892.61,-564.24"/>
  687. <polygon fill="black" stroke="black" points="1895.8,-565.67 1896.91,-555.13 1889.47,-562.68 1895.8,-565.67"/>
  688. </g>
  689. <!-- SDL1 -->
  690. <g id="node30" class="node">
  691. <title>SDL1</title>
  692. <g id="a_node30"><a xlink:href="https://hg.libsdl.org/SDL/file/fba40d9f4a73/src/audio" xlink:title="libSDL&#45;1.2">
  693. <ellipse fill="lightgrey" stroke="black" cx="798" cy="-714.74" rx="50.89" ry="18"/>
  694. <text text-anchor="middle" x="798" y="-711.04" font-family="Times,serif" font-size="14.00">libSDL&#45;1.2</text>
  695. </a>
  696. </g>
  697. </g>
  698. <!-- SDL1&#45;&gt;ALSA -->
  699. <g id="edge70" class="edge">
  700. <title>SDL1&#45;&gt;ALSA</title>
  701. <path fill="none" stroke="black" d="M845.2,-708.02C875.18,-704.49 914.84,-700.03 950,-696.74 1167.89,-676.35 1223.18,-680.8 1441,-659.74 1502.03,-653.84 1572.42,-645.2 1616.56,-639.55"/>
  702. <polygon fill="black" stroke="black" points="1617.18,-643 1626.66,-638.25 1616.29,-636.06 1617.18,-643"/>
  703. </g>
  704. <!-- SDL1&#45;&gt;OSS -->
  705. <g id="edge74" class="edge">
  706. <title>SDL1&#45;&gt;OSS</title>
  707. <path fill="none" stroke="black" d="M820.77,-698.44C880.15,-659.26 1045.68,-554.58 1198,-500 1243.93,-483.54 1299.56,-474.09 1335.59,-469.25"/>
  708. <polygon fill="black" stroke="black" points="1336.19,-472.7 1345.65,-467.95 1335.29,-465.76 1336.19,-472.7"/>
  709. </g>
  710. <!-- SDL1&#45;&gt;PulseAudio -->
  711. <g id="edge75" class="edge">
  712. <title>SDL1&#45;&gt;PulseAudio</title>
  713. <path fill="none" stroke="black" d="M808.05,-697.07C822.07,-674.68 849.17,-634.4 879,-606 970.77,-518.61 1001.96,-503.27 1115,-446 1201.27,-402.29 1225.68,-394.4 1320,-373 1330.88,-370.53 1633.59,-339.64 1770.67,-325.72"/>
  714. <polygon fill="black" stroke="black" points="1771.05,-329.2 1780.65,-324.71 1770.34,-322.24 1771.05,-329.2"/>
  715. </g>
  716. <!-- SDL1&#45;&gt;aRts -->
  717. <g id="edge71" class="edge">
  718. <title>SDL1&#45;&gt;aRts</title>
  719. <path fill="none" stroke="black" d="M747.95,-711.74C673.01,-708.13 535.67,-698.93 491,-678.74 479.53,-673.56 475.11,-671.24 470,-659.74 460.31,-637.91 458.21,-626.77 470,-606 514.98,-526.79 646,-592.09 646,-501 646,-501 646,-501 646,-390 646,-361.97 673.61,-342.74 697.18,-331.44"/>
  720. <polygon fill="black" stroke="black" points="698.91,-334.5 706.6,-327.21 696.04,-328.11 698.91,-334.5"/>
  721. </g>
  722. <!-- SDL1&#45;&gt;ESD -->
  723. <g id="edge72" class="edge">
  724. <title>SDL1&#45;&gt;ESD</title>
  725. <path fill="none" stroke="black" d="M747.56,-711.99C645.72,-706.76 431.1,-686.17 503,-606 527.63,-578.54 635.13,-604.73 668,-588 776.51,-532.77 854.43,-401.44 883.96,-345.24"/>
  726. <polygon fill="black" stroke="black" points="887.11,-346.77 888.59,-336.28 880.89,-343.55 887.11,-346.77"/>
  727. </g>
  728. <!-- SDL1&#45;&gt;NAS -->
  729. <g id="edge73" class="edge">
  730. <title>SDL1&#45;&gt;NAS</title>
  731. <path fill="none" stroke="black" d="M770.29,-699.64C746.25,-687.41 711.07,-669.51 683.47,-655.48"/>
  732. <polygon fill="black" stroke="black" points="684.93,-652.29 674.43,-650.88 681.75,-658.53 684.93,-652.29"/>
  733. </g>
  734. <!-- SDL2 -->
  735. <g id="node31" class="node">
  736. <title>SDL2</title>
  737. <g id="a_node31"><a xlink:href="https://hg.libsdl.org/SDL/file/355a4f94a782" xlink:title="libSDL&#45;2.0">
  738. <ellipse fill="lightgrey" stroke="black" cx="386" cy="-714.74" rx="50.89" ry="18"/>
  739. <text text-anchor="middle" x="386" y="-711.04" font-family="Times,serif" font-size="14.00">libSDL&#45;2.0</text>
  740. </a>
  741. </g>
  742. </g>
  743. <!-- SDL2&#45;&gt;ALSA -->
  744. <g id="edge76" class="edge">
  745. <title>SDL2&#45;&gt;ALSA</title>
  746. <path fill="none" stroke="black" d="M435.9,-711.28C638.41,-701.28 1390.43,-664.02 1441,-659.74 1502.1,-654.57 1572.47,-645.75 1616.59,-639.86"/>
  747. <polygon fill="black" stroke="black" points="1617.23,-643.31 1626.68,-638.5 1616.3,-636.37 1617.23,-643.31"/>
  748. </g>
  749. <!-- SDL2&#45;&gt;JACK -->
  750. <g id="edge80" class="edge">
  751. <title>SDL2&#45;&gt;JACK</title>
  752. <path fill="none" stroke="black" d="M400.9,-697.53C426.63,-670 478.93,-616.07 503,-606 507.01,-604.32 1619.42,-551.53 1859.62,-540.15"/>
  753. <polygon fill="black" stroke="black" points="1859.93,-543.64 1869.75,-539.67 1859.6,-536.65 1859.93,-543.64"/>
  754. </g>
  755. <!-- SDL2&#45;&gt;OSS -->
  756. <g id="edge82" class="edge">
  757. <title>SDL2&#45;&gt;OSS</title>
  758. <path fill="none" stroke="black" d="M388.51,-696.45C393.11,-671.74 405.4,-627.01 436,-606 460.51,-589.17 673.51,-591.78 703,-588 866.33,-567.09 905.03,-548.64 1067,-519 1164.41,-501.17 1279.47,-481.15 1336.77,-471.24"/>
  759. <polygon fill="black" stroke="black" points="1337.52,-474.66 1346.78,-469.51 1336.33,-467.76 1337.52,-474.66"/>
  760. </g>
  761. <!-- SDL2&#45;&gt;sndio -->
  762. <g id="edge84" class="edge">
  763. <title>SDL2&#45;&gt;sndio</title>
  764. <path fill="none" stroke="black" d="M335.14,-713.73C230.32,-712.32 0,-701.53 0,-633.87 0,-633.87 0,-633.87 0,-317 0,-262.86 856.66,-238.11 1059.37,-233.01"/>
  765. <polygon fill="black" stroke="black" points="1059.71,-236.51 1069.62,-232.76 1059.53,-229.51 1059.71,-236.51"/>
  766. </g>
  767. <!-- SDL2&#45;&gt;PulseAudio -->
  768. <g id="edge83" class="edge">
  769. <title>SDL2&#45;&gt;PulseAudio</title>
  770. <path fill="none" stroke="black" d="M382.03,-696.64C377.71,-673.37 373.96,-631.71 395,-606 520.15,-453.06 632.37,-537.62 822,-482 903.84,-458 1106.18,-388.74 1190,-373 1399.42,-333.67 1652.37,-322.98 1770.35,-320.08"/>
  771. <polygon fill="black" stroke="black" points="1770.75,-323.57 1780.66,-319.84 1770.58,-316.57 1770.75,-323.57"/>
  772. </g>
  773. <!-- SDL2&#45;&gt;aRts -->
  774. <g id="edge77" class="edge">
  775. <title>SDL2&#45;&gt;aRts</title>
  776. <path fill="none" stroke="black" d="M335.07,-713.91C255.27,-713.26 105.38,-708.01 62,-678.74 43.25,-666.09 38,-656.49 38,-633.87 38,-633.87 38,-633.87 38,-390 38,-323.58 549.03,-318.88 692.78,-318.88"/>
  777. <polygon fill="black" stroke="black" points="692.87,-322.38 702.87,-318.88 692.88,-315.38 692.87,-322.38"/>
  778. </g>
  779. <!-- SDL2&#45;&gt;ESD -->
  780. <g id="edge78" class="edge">
  781. <title>SDL2&#45;&gt;ESD</title>
  782. <path fill="none" stroke="black" d="M335.56,-712.2C235.52,-707.37 27.24,-687.51 95,-606 258.27,-409.59 426.72,-604.99 660,-501 749.29,-461.2 835.54,-381.38 874.85,-342.02"/>
  783. <polygon fill="black" stroke="black" points="877.53,-344.29 882.07,-334.71 872.55,-339.37 877.53,-344.29"/>
  784. </g>
  785. <!-- SDL2&#45;&gt;NAS -->
  786. <g id="edge81" class="edge">
  787. <title>SDL2&#45;&gt;NAS</title>
  788. <path fill="none" stroke="black" d="M422.81,-702.21C463.07,-689.6 528.34,-669.16 577.02,-653.91"/>
  789. <polygon fill="black" stroke="black" points="578.33,-657.17 586.83,-650.84 576.24,-650.49 578.33,-657.17"/>
  790. </g>
  791. <!-- FusionSound -->
  792. <g id="node32" class="node">
  793. <title>FusionSound</title>
  794. <ellipse fill="red" stroke="black" cx="204" cy="-632.87" rx="100.32" ry="26.74"/>
  795. <text text-anchor="middle" x="204" y="-636.67" font-family="Times,serif" font-size="14.00">DirectFB/FusionSound</text>
  796. <text text-anchor="middle" x="204" y="-621.67" font-family="Times,serif" font-size="14.00">[dead]</text>
  797. </g>
  798. <!-- SDL2&#45;&gt;FusionSound -->
  799. <g id="edge79" class="edge">
  800. <title>SDL2&#45;&gt;FusionSound</title>
  801. <path fill="none" stroke="red" d="M355.13,-700.19C330.22,-689.26 294.43,-673.56 263.94,-660.17"/>
  802. <polygon fill="red" stroke="red" points="265.22,-656.92 254.66,-656.1 262.41,-663.33 265.22,-656.92"/>
  803. </g>
  804. <!-- phonon -->
  805. <g id="node33" class="node">
  806. <title>phonon</title>
  807. <ellipse fill="lightgrey" stroke="black" cx="2357" cy="-787.74" rx="37.09" ry="18"/>
  808. <text text-anchor="middle" x="2357" y="-784.04" font-family="Times,serif" font-size="14.00">phonon</text>
  809. </g>
  810. <!-- phonon&#45;&gt;PulseAudio -->
  811. <g id="edge91" class="edge">
  812. <title>phonon&#45;&gt;PulseAudio</title>
  813. <path fill="none" stroke="black" d="M2371.9,-771.16C2380.47,-761.07 2390.43,-747.17 2395,-732.74 2399.83,-717.49 2396.72,-712.65 2395,-696.74 2378.6,-545.52 2401.98,-469 2284,-373 2227.17,-326.76 2013.9,-319.28 1903.76,-318.6"/>
  814. <polygon fill="black" stroke="black" points="1903.45,-315.09 1893.43,-318.55 1903.41,-322.09 1903.45,-315.09"/>
  815. </g>
  816. <!-- phonon&#45;&gt;gstreamer -->
  817. <g id="edge89" class="edge">
  818. <title>phonon&#45;&gt;gstreamer</title>
  819. <path fill="none" stroke="black" d="M2337.73,-772.03C2324.65,-762.05 2307.14,-748.68 2292.47,-737.47"/>
  820. <polygon fill="black" stroke="black" points="2294.28,-734.46 2284.21,-731.17 2290.03,-740.02 2294.28,-734.46"/>
  821. </g>
  822. <!-- VLC -->
  823. <g id="node34" class="node">
  824. <title>VLC</title>
  825. <g id="a_node34"><a xlink:href="https://code.videolan.org/videolan/vlc/-/tree/master/modules/audio_output" xlink:title="VLC">
  826. <ellipse fill="lightgrey" stroke="black" cx="2357" cy="-714.74" rx="28.7" ry="18"/>
  827. <text text-anchor="middle" x="2357" y="-711.04" font-family="Times,serif" font-size="14.00">VLC</text>
  828. </a>
  829. </g>
  830. </g>
  831. <!-- phonon&#45;&gt;VLC -->
  832. <g id="edge90" class="edge">
  833. <title>phonon&#45;&gt;VLC</title>
  834. <path fill="none" stroke="black" d="M2357,-769.55C2357,-761.53 2357,-751.79 2357,-742.81"/>
  835. <polygon fill="black" stroke="black" points="2360.5,-742.77 2357,-732.77 2353.5,-742.77 2360.5,-742.77"/>
  836. </g>
  837. <!-- VLC&#45;&gt;ALSA -->
  838. <g id="edge100" class="edge">
  839. <title>VLC&#45;&gt;ALSA</title>
  840. <path fill="none" stroke="black" d="M2335.34,-702.6C2330.11,-700.32 2324.45,-698.18 2319,-696.74 2202.69,-666.06 1835.96,-643.52 1706.12,-636.32"/>
  841. <polygon fill="black" stroke="black" points="1706.28,-632.82 1696.1,-635.77 1705.9,-639.81 1706.28,-632.82"/>
  842. </g>
  843. <!-- VLC&#45;&gt;JACK -->
  844. <g id="edge101" class="edge">
  845. <title>VLC&#45;&gt;JACK</title>
  846. <path fill="none" stroke="black" d="M2335.61,-702.47C2285.82,-676.6 2157.82,-612.2 2045,-573 2013.7,-562.13 1977.37,-553.15 1949.57,-547.01"/>
  847. <polygon fill="black" stroke="black" points="1950.25,-543.57 1939.74,-544.87 1948.77,-550.41 1950.25,-543.57"/>
  848. </g>
  849. <!-- VLC&#45;&gt;OSS -->
  850. <g id="edge102" class="edge">
  851. <title>VLC&#45;&gt;OSS</title>
  852. <path fill="none" stroke="black" d="M2341.54,-699.27C2301.08,-662.3 2187.25,-564.16 2073,-519 1951.58,-471.01 1543.18,-465.52 1413.13,-465.01"/>
  853. <polygon fill="black" stroke="black" points="1412.85,-461.51 1402.84,-464.98 1412.83,-468.51 1412.85,-461.51"/>
  854. </g>
  855. <!-- VLC&#45;&gt;sndio -->
  856. <g id="edge104" class="edge">
  857. <title>VLC&#45;&gt;sndio</title>
  858. <path fill="none" stroke="black" d="M2382.94,-706.9C2407,-699.25 2442.15,-684.57 2463,-659.74 2466.48,-655.59 2509.62,-510.47 2511,-501 2515.77,-468.41 2527.12,-453.07 2507,-427 2474.21,-384.52 2449.15,-392.1 2399,-373 2282.83,-328.76 2251.32,-322.15 2129,-300 1752,-231.72 1286.08,-230.12 1144.65,-231.39"/>
  859. <polygon fill="black" stroke="black" points="1144.23,-227.9 1134.27,-231.5 1144.3,-234.9 1144.23,-227.9"/>
  860. </g>
  861. <!-- VLC&#45;&gt;PulseAudio -->
  862. <g id="edge103" class="edge">
  863. <title>VLC&#45;&gt;PulseAudio</title>
  864. <path fill="none" stroke="black" d="M2357.66,-696.39C2358.99,-633.18 2353.69,-415.68 2222,-354 2167.1,-328.28 1997.94,-321.43 1903.13,-319.63"/>
  865. <polygon fill="black" stroke="black" points="1903.13,-316.13 1893.07,-319.45 1903.01,-323.13 1903.13,-316.13"/>
  866. </g>
  867. <!-- ClanLib -->
  868. <g id="node35" class="node">
  869. <title>ClanLib</title>
  870. <g id="a_node35"><a xlink:href="https://github.com/sphair/ClanLib/tree/master/Sources/Sound/Platform/Linux" xlink:title="ClanLib">
  871. <ellipse fill="lightgrey" stroke="black" cx="1440" cy="-714.74" rx="39.79" ry="18"/>
  872. <text text-anchor="middle" x="1440" y="-711.04" font-family="Times,serif" font-size="14.00">ClanLib</text>
  873. </a>
  874. </g>
  875. </g>
  876. <!-- ClanLib&#45;&gt;ALSA -->
  877. <g id="edge92" class="edge">
  878. <title>ClanLib&#45;&gt;ALSA</title>
  879. <path fill="none" stroke="black" d="M1470.25,-703.02C1476.44,-700.89 1482.92,-698.71 1489,-696.74 1515.49,-688.18 1522.73,-687.97 1549,-678.74 1574.51,-669.78 1602.75,-658.34 1624.37,-649.25"/>
  880. <polygon fill="black" stroke="black" points="1625.95,-652.38 1633.8,-645.26 1623.22,-645.94 1625.95,-652.38"/>
  881. </g>
  882. <!-- ClanLib&#45;&gt;OSS -->
  883. <g id="edge93" class="edge">
  884. <title>ClanLib&#45;&gt;OSS</title>
  885. <path fill="none" stroke="black" d="M1442.57,-696.68C1445.25,-675.22 1448.17,-637.37 1441,-606 1431.21,-563.15 1406.65,-518.17 1389.89,-490.85"/>
  886. <polygon fill="black" stroke="black" points="1392.81,-488.92 1384.54,-482.29 1386.87,-492.63 1392.81,-488.92"/>
  887. </g>
  888. <!-- allegro -->
  889. <g id="node36" class="node">
  890. <title>allegro</title>
  891. <g id="a_node36"><a xlink:href="https://github.com/liballeg/allegro5/tree/master/addons/audio" xlink:title="allegro">
  892. <ellipse fill="lightgrey" stroke="black" cx="1190" cy="-860.74" rx="35.19" ry="18"/>
  893. <text text-anchor="middle" x="1190" y="-857.04" font-family="Times,serif" font-size="14.00">allegro</text>
  894. </a>
  895. </g>
  896. </g>
  897. <!-- allegro&#45;&gt;OSS -->
  898. <g id="edge94" class="edge">
  899. <title>allegro&#45;&gt;OSS</title>
  900. <path fill="none" stroke="black" d="M1189.94,-842.65C1190.64,-788.69 1199.72,-619.62 1283,-519 1298.41,-500.39 1322,-486.57 1341.16,-477.57"/>
  901. <polygon fill="black" stroke="black" points="1342.74,-480.7 1350.44,-473.42 1339.88,-474.31 1342.74,-480.7"/>
  902. </g>
  903. <!-- allegro&#45;&gt;PulseAudio -->
  904. <g id="edge96" class="edge">
  905. <title>allegro&#45;&gt;PulseAudio</title>
  906. <path fill="none" stroke="black" d="M1225.28,-859.77C1437.5,-859.74 2535,-856.33 2535,-788.74 2535,-788.74 2535,-788.74 2535,-677.74 2535,-511.21 2463.24,-452.65 2317,-373 2294.29,-360.63 2287.34,-359.17 2262,-354 2149.37,-331.04 2118.53,-345.82 2004,-336 1970.87,-333.16 1934.1,-329.47 1903.51,-326.26"/>
  907. <polygon fill="black" stroke="black" points="1903.7,-322.76 1893.39,-325.19 1902.96,-329.72 1903.7,-322.76"/>
  908. </g>
  909. <!-- allegro&#45;&gt;OpenAL -->
  910. <g id="edge95" class="edge">
  911. <title>allegro&#45;&gt;OpenAL</title>
  912. <path fill="none" stroke="black" d="M1221.65,-852.87C1279.66,-840.27 1403.24,-813.44 1470.7,-798.79"/>
  913. <polygon fill="black" stroke="black" points="1471.6,-802.18 1480.63,-796.64 1470.11,-795.34 1471.6,-802.18"/>
  914. </g>
  915. <!-- allegro&#45;&gt;SDL1 -->
  916. <g id="edge97" class="edge">
  917. <title>allegro&#45;&gt;SDL1</title>
  918. <path fill="none" stroke="black" d="M1169.76,-845.82C1163.33,-841.83 1156.05,-837.75 1149,-834.74 1102.9,-815.04 1087.77,-820.94 1040,-805.74 968.67,-783.04 887.42,-751.66 839.55,-732.58"/>
  919. <polygon fill="black" stroke="black" points="840.73,-729.28 830.14,-728.82 838.13,-735.78 840.73,-729.28"/>
  920. </g>
  921. <!-- allegro&#45;&gt;SDL2 -->
  922. <g id="edge98" class="edge">
  923. <title>allegro&#45;&gt;SDL2</title>
  924. <path fill="none" stroke="black" d="M1170.4,-845.53C1163.87,-841.43 1156.38,-837.36 1149,-834.74 1103.99,-818.74 983.24,-812.82 936,-805.74 754.17,-778.49 539.24,-742.11 440.53,-725.16"/>
  925. <polygon fill="black" stroke="black" points="440.94,-721.68 430.49,-723.44 439.76,-728.58 440.94,-721.68"/>
  926. </g>
  927. <!-- telepathy -->
  928. <g id="node37" class="node">
  929. <title>telepathy</title>
  930. <ellipse fill="lightgrey" stroke="black" cx="2391" cy="-158" rx="42.79" ry="18"/>
  931. <text text-anchor="middle" x="2391" y="-154.3" font-family="Times,serif" font-size="14.00">telepathy</text>
  932. </g>
  933. <!-- telepathy&#45;&gt;phone modem -->
  934. <g id="edge99" class="edge">
  935. <title>telepathy&#45;&gt;phone modem</title>
  936. <path fill="none" stroke="black" d="M2384.09,-140.21C2379.18,-128.29 2372.5,-112.06 2366.88,-98.42"/>
  937. <polygon fill="black" stroke="black" points="2370.06,-96.96 2363.02,-89.05 2363.59,-99.63 2370.06,-96.96"/>
  938. <text text-anchor="middle" x="2378.5" y="-110.8" font-family="Times,serif" font-size="14.00" fill="red">?</text>
  939. </g>
  940. <!-- pcaudiolib -->
  941. <g id="node38" class="node">
  942. <title>pcaudiolib</title>
  943. <g id="a_node38"><a xlink:href="https://github.com/espeak-ng/pcaudiolib" xlink:title="pcaudiolib">
  944. <ellipse fill="lightgrey" stroke="black" cx="1546" cy="-714.74" rx="48.19" ry="18"/>
  945. <text text-anchor="middle" x="1546" y="-711.04" font-family="Times,serif" font-size="14.00">pcaudiolib</text>
  946. </a>
  947. </g>
  948. </g>
  949. <!-- pcaudiolib&#45;&gt;ALSA -->
  950. <g id="edge105" class="edge">
  951. <title>pcaudiolib&#45;&gt;ALSA</title>
  952. <path fill="none" stroke="black" d="M1567.91,-698.41C1576.65,-692.29 1586.8,-685.18 1596,-678.74 1607.14,-670.94 1619.36,-662.37 1630.12,-654.83"/>
  953. <polygon fill="black" stroke="black" points="1632.2,-657.64 1638.38,-649.04 1628.18,-651.91 1632.2,-657.64"/>
  954. </g>
  955. <!-- pcaudiolib&#45;&gt;OSS -->
  956. <g id="edge106" class="edge">
  957. <title>pcaudiolib&#45;&gt;OSS</title>
  958. <path fill="none" stroke="black" d="M1537.94,-696.86C1520.78,-661.82 1478.27,-579.41 1430,-519 1420.64,-507.29 1408.81,-495.67 1398.35,-486.24"/>
  959. <polygon fill="black" stroke="black" points="1400.5,-483.46 1390.68,-479.47 1395.87,-488.71 1400.5,-483.46"/>
  960. </g>
  961. <!-- pcaudiolib&#45;&gt;PulseAudio -->
  962. <g id="edge107" class="edge">
  963. <title>pcaudiolib&#45;&gt;PulseAudio</title>
  964. <path fill="none" stroke="black" d="M1549.48,-696.65C1561.45,-642 1605.9,-469.39 1707,-373 1727.69,-353.27 1756.61,-340.3 1781.93,-332.03"/>
  965. <polygon fill="black" stroke="black" points="1783.27,-335.28 1791.79,-328.98 1781.2,-328.59 1783.27,-335.28"/>
  966. </g>
  967. </g>
  968. </svg>