fixed IAudioSessionControl2 invocation, modified README

This commit is contained in:
Hane 2024-01-18 22:25:44 +01:00
commit 9806f046bd
4 changed files with 182 additions and 177 deletions

128
output.svg Normal file
View file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 9.0.0 (20230911.1827)
-->
<!-- Title: coreaudiodemo Pages: 1 -->
<svg width="745pt" height="591pt"
viewBox="0.00 0.00 744.62 591.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 587)">
<title>coreaudiodemo</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-587 740.62,-587 740.62,4 -4,4"/>
<!-- de -->
<g id="node1" class="node">
<title>de</title>
<polygon fill="none" stroke="black" stroke-width="2" points="194.38,-541.5 194.38,-582.5 393.38,-582.5 393.38,-541.5 194.38,-541.5"/>
<text text-anchor="middle" x="293.88" y="-565.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IMMDeviceEnumerator</text>
<text text-anchor="middle" x="293.88" y="-548.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Retrieves current endpoints)</text>
</g>
<!-- dc -->
<g id="node2" class="node">
<title>dc</title>
<polygon fill="none" stroke="black" stroke-width="2" points="200.38,-463.5 200.38,-504.5 387.38,-504.5 387.38,-463.5 200.38,-463.5"/>
<text text-anchor="middle" x="293.88" y="-487.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IMMDeviceCollection</text>
<text text-anchor="middle" x="293.88" y="-470.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Endpoint collection)</text>
</g>
<!-- de&#45;&gt;dc -->
<g id="edge1" class="edge">
<title>de&#45;&gt;dc</title>
<path fill="none" stroke="blue" stroke-width="2" d="M293.88,-541.03C293.88,-533.44 293.88,-524.6 293.88,-516.21"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="297.38,-517.86 293.88,-507.86 290.38,-517.86 297.38,-517.86"/>
</g>
<!-- ie -->
<g id="node3" class="node">
<title>ie</title>
<polygon fill="none" stroke="black" stroke-width="2" points="126.5,-390.5 126.5,-426.5 461.25,-426.5 461.25,-390.5 126.5,-390.5"/>
<text text-anchor="middle" x="293.88" y="-403.45" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IMMDevice (Deceitful name, actual endpoint)</text>
</g>
<!-- dc&#45;&gt;ie -->
<g id="edge2" class="edge">
<title>dc&#45;&gt;ie</title>
<path fill="none" stroke="blue" stroke-width="2" d="M293.88,-463.3C293.88,-455.56 293.88,-446.51 293.88,-438.07"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="297.38,-439.77 293.88,-429.77 290.38,-439.77 297.38,-439.77"/>
</g>
<!-- ieroutes -->
<g id="node4" class="node">
<title>ieroutes</title>
<polygon fill="none" stroke="black" stroke-width="2" points="0,-312.5 0,-353.5 711.75,-353.5 711.75,-312.5 0,-312.5"/>
<text text-anchor="middle" x="96.5" y="-336.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IMMEndpoint </text>
<text text-anchor="middle" x="96.5" y="-319.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Just Playback/Capture flag)</text>
<polyline fill="none" stroke="black" stroke-width="2" points="193,-312.5 193,-353.5"/>
<text text-anchor="middle" x="294.38" y="-336.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IAudioEndpointVolume </text>
<text text-anchor="middle" x="294.38" y="-319.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Endpoint volume/balance)</text>
<polyline fill="none" stroke="black" stroke-width="2" points="395.75,-312.5 395.75,-353.5"/>
<text text-anchor="middle" x="553.75" y="-336.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IAudioSessionManager </text>
<text text-anchor="middle" x="553.75" y="-319.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Entry point to endpoint&#39;s session management)</text>
</g>
<!-- ie&#45;&gt;ieroutes -->
<g id="edge3" class="edge">
<title>ie&#45;&gt;ieroutes:p0</title>
<path fill="none" stroke="blue" stroke-width="2" d="M155.71,-390.03C130.46,-383.87 109.39,-375.66 100.9,-364.77"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="104.71,-364.98 97.93,-356.84 98.15,-367.43 104.71,-364.98"/>
</g>
<!-- ie&#45;&gt;ieroutes -->
<g id="edge4" class="edge">
<title>ie&#45;&gt;ieroutes:p1</title>
<path fill="none" stroke="blue" stroke-width="2" d="M293.88,-390.15C293.88,-382.87 293.88,-374.08 293.88,-365.33"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="297.38,-367.03 293.88,-357.03 290.38,-367.03 297.38,-367.03"/>
</g>
<!-- ie&#45;&gt;ieroutes -->
<g id="edge5" class="edge">
<title>ie&#45;&gt;ieroutes:p2</title>
<path fill="none" stroke="blue" stroke-width="2" d="M461.48,-398.45C503.53,-392.25 539.84,-381.94 550.63,-364.86"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="553.49,-367.48 553.01,-356.9 546.79,-365.48 553.49,-367.48"/>
</g>
<!-- iase -->
<g id="node5" class="node">
<title>iase</title>
<polygon fill="none" stroke="black" stroke-width="2" points="422.5,-234.5 422.5,-275.5 685.25,-275.5 685.25,-234.5 422.5,-234.5"/>
<text text-anchor="middle" x="553.88" y="-258.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IAudioSessionEnumerator </text>
<text text-anchor="middle" x="553.88" y="-241.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Retrieves endpoint&#39;s current sessions)</text>
</g>
<!-- ieroutes&#45;&gt;iase -->
<g id="edge6" class="edge">
<title>ieroutes:p2&#45;&gt;iase</title>
<path fill="none" stroke="blue" stroke-width="2" d="M553.88,-312C553.88,-303.97 553.88,-295.28 553.88,-287.21"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="557.38,-288.98 553.88,-278.98 550.38,-288.98 557.38,-288.98"/>
</g>
<!-- iasc -->
<g id="node6" class="node">
<title>iasc</title>
<polygon fill="none" stroke="black" stroke-width="2" points="456.25,-156.5 456.25,-197.5 651.5,-197.5 651.5,-156.5 456.25,-156.5"/>
<text text-anchor="middle" x="553.88" y="-180.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IAudioSessionControl </text>
<text text-anchor="middle" x="553.88" y="-163.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Used to call derived class)</text>
</g>
<!-- iase&#45;&gt;iasc -->
<g id="edge7" class="edge">
<title>iase&#45;&gt;iasc</title>
<path fill="none" stroke="blue" stroke-width="2" d="M553.88,-234.03C553.88,-226.44 553.88,-217.6 553.88,-209.21"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="557.38,-210.86 553.88,-200.86 550.38,-210.86 557.38,-210.86"/>
</g>
<!-- iasc2 -->
<g id="node7" class="node">
<title>iasc2</title>
<polygon fill="none" stroke="black" stroke-width="2" points="382,-78.5 382,-119.5 725.75,-119.5 725.75,-78.5 382,-78.5"/>
<text text-anchor="middle" x="553.88" y="-102.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class IAudioSessionControl2 </text>
<text text-anchor="middle" x="553.88" y="-85.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Session management. Called via `QueryInterface())</text>
</g>
<!-- iasc&#45;&gt;iasc2 -->
<g id="edge8" class="edge">
<title>iasc&#45;&gt;iasc2</title>
<path fill="none" stroke="blue" stroke-width="2" d="M553.88,-156.03C553.88,-148.44 553.88,-139.6 553.88,-131.21"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="557.38,-132.86 553.88,-122.86 550.38,-132.86 557.38,-132.86"/>
</g>
<!-- isav -->
<g id="node8" class="node">
<title>isav</title>
<polygon fill="none" stroke="black" stroke-width="2" points="371.12,-0.5 371.12,-41.5 736.62,-41.5 736.62,-0.5 371.12,-0.5"/>
<text text-anchor="middle" x="553.88" y="-24.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">class ISimpleAudioVolume </text>
<text text-anchor="middle" x="553.88" y="-7.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">(Session volume controls. Called via `QueryInterface())`</text>
</g>
<!-- iasc2&#45;&gt;isav -->
<g id="edge9" class="edge">
<title>iasc2&#45;&gt;isav</title>
<path fill="none" stroke="blue" stroke-width="2" d="M553.88,-78.03C553.88,-70.44 553.88,-61.6 553.88,-53.21"/>
<polygon fill="blue" stroke="blue" stroke-width="2" points="557.38,-54.86 553.88,-44.86 550.38,-54.86 557.38,-54.86"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8 KiB