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

View file

@ -1,89 +1,18 @@
# Atonsio
**enberda filipas con esta mierda**, eh. Increible que esto lo haya hecho alguien digno de ser big techie.
**Small prototype showing how to register as a COM application and reaching endpoint and session manipulation**.
Anyway, al caso:
# Class graph
```
IMMDeviceEnumerator
|
|
|
|
|
IMMDeviceCollection
|
|
|
|
|
IMMDevice--------------------------------------|
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
IMMEndpoint IAudioEndpointVolume IAudioSessionManager2
(No demostrado) (Columen endpoint) (Manager de sesiones)
|
|
|
|
|
|
|
|
|
|
|
|
|
IAudioSessionEnumerator
(Handle de sesiones)
|
|
|
|
|
|
|
|
|
|
|
|
|
IAudioSessionControl2
(Cast a padre, 1 x sesion)
|
|
|
|
|
|
|
|
|
|
|
|
|
ISimpleAudioVolume
(Via QueryInterface(), 1 x sesion ofc)
```
![Test](output.svg)
Ezpz microsoft comeme los cojones
# Notes
- Name might appear blank. This is not a bug, but rather an inconvenience due to the fact that many programs create unnamed sessions. Mixers, such as `SndVol` or mine, overcome this fact by fetching its parent process' name.
# Build
llvm-mingw 06 2022:
clang++ testmain.cpp -o si.exe -Wall -Wextra -Wpedantic -std=c++11 -g -gcodeview -L D:/Contenido/Capybara/llvm-mingw/x86_64-w64-mingw32/bin -L C:\capybara\libclang\x86_64-w64-mingw32\lib -l Ole32 -static -lc++ -lunwind --verbose
- Built using `clang` using [**llvm-mingw UCRT 20220906**](https://github.com/mstorsjo/llvm-mingw/releases/tag/20220906).
```
clang++ testmain.cpp -o test.exe -Wall -Wextra -Wpedantic -std=c++11 -l Ole32 -static -lc++ -lunwind --verbose
```