testcoreaudio/graph.gv

26 lines
1.3 KiB
Text

digraph coreaudiodemo {
fontname="Helvetica,Arial,sans-serif"
node [color=black, style=bold, fontname="Helvetica,Arial,sans-serif",shape="record"]
edge [color=blue, style=bold, fontname="Helvetica,Arial,sans-serif"]
de [label="<p0> class IMMDeviceEnumerator\n(Retrieves current endpoints)",labelloc=b];
dc [label="<p0> class IMMDeviceCollection\n(Endpoint collection)",labelloc=b];
ie [label="<p0> class IMMDevice (Deceitful name, actual endpoint)",labelloc=b];
ieroutes [label="<p0> class IMMEndpoint \n(Just Playback/Capture flag)
| <p1> class IAudioEndpointVolume \n(Endpoint volume/balance)
| <p2> class IAudioSessionManager \n(Entry point to endpoint's session management)",labelloc=b];
iase [label="<p0> class IAudioSessionEnumerator \n(Retrieves endpoint's current sessions)",labelloc=b];
iasc [label="<p0> class IAudioSessionControl \n(Used to call derived class)",labelloc=b];
iasc2 [label="<p0> class IAudioSessionControl2 \n(Session management. Called via `QueryInterface())",labelloc=b];
isav [label="<p0> class ISimpleAudioVolume \n(Session volume controls. Called via `QueryInterface())`",labelloc=b];
de -> dc;
dc -> ie;
ie -> ieroutes:p0 [label=""];
ie -> ieroutes:p1;
ie -> ieroutes:p2;
ieroutes:p2 -> iase;
iase -> iasc;
iasc -> iasc2;
iasc2 -> isav;
}