diff --git a/README.md b/README.md index ace9ddc..4c43806 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ Anyway, al caso: +![Test](output.svg) + ``` IMMDeviceEnumerator | diff --git a/graph.gv b/graph.gv new file mode 100644 index 0000000..d961627 --- /dev/null +++ b/graph.gv @@ -0,0 +1,26 @@ +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=" class IMMDeviceEnumerator\n(Retrieves current endpoints)",labelloc=b]; + dc [label=" class IMMDeviceCollection\n(Endpoint collection)",labelloc=b]; + ie [label=" class IMMDevice (Deceitful name, actual endpoint)",labelloc=b]; + ieroutes [label=" class IMMEndpoint \n(Just Playback/Capture flag) + | class IAudioEndpointVolume \n(Endpoint volume/balance) + | class IAudioSessionManager \n(Entry point to endpoint's session management)",labelloc=b]; + iase [label=" class IAudioSessionEnumerator \n(Retrieves endpoint's current sessions)",labelloc=b]; + iasc [label=" class IAudioSessionControl \n(Used to call derived class)",labelloc=b]; + iasc2 [label=" class IAudioSessionControl2 \n(Session management. Called via `QueryInterface())",labelloc=b]; + isav [label=" 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; +} diff --git a/output.svg b/output.svg new file mode 100644 index 0000000..55bbb83 --- /dev/null +++ b/output.svg @@ -0,0 +1,128 @@ + + + + + + +coreaudiodemo + + + +de + +class IMMDeviceEnumerator +(Retrieves current endpoints) + + + +dc + +class IMMDeviceCollection +(Endpoint collection) + + + +de->dc + + + + + +ie + +class IMMDevice (Deceitful name, actual endpoint) + + + +dc->ie + + + + + +ieroutes + +class IMMEndpoint +(Just Playback/Capture flag) + +class IAudioEndpointVolume +(Endpoint volume/balance) + +class IAudioSessionManager +(Entry point to endpoint's session management) + + + +ie->ieroutes:p0 + + + + + +ie->ieroutes:p1 + + + + + +ie->ieroutes:p2 + + + + + +iase + +class IAudioSessionEnumerator +(Retrieves endpoint's current sessions) + + + +ieroutes:p2->iase + + + + + +iasc + +class IAudioSessionControl +(Used to call derived class) + + + +iase->iasc + + + + + +iasc2 + +class IAudioSessionControl2 +(Session management. Called via `QueryInterface()) + + + +iasc->iasc2 + + + + + +isav + +class ISimpleAudioVolume +(Session volume controls. Called via `QueryInterface())` + + + +iasc2->isav + + + + +