Makes changes to settings application wide transparent. The properties section is optional in theory, but comes in very handy, if we decide to access settings e.g. from within a script context.
As esecially the "Disabled" text is translated, the audio device will change from "disabled" to "default", just by changing the language.
In contrast to video devices, an audio device is either always available, or sound will be disabled. So "Disabled" is the correct term to use here.
API:
* open default in/out device, when device name is empty
* move privatized code
* fix unsigned/signed conversion warnings
UI (settings):
* refactor: select audio devices by combobox index
The filter_audio API is not working for qTox/Tox and thus disabled by default via compiler switch. In current qTox UI, it is not configurable, even when this switch is enabled. According to issue #3194 the library is no longer maintained as well. I don't see any reason to keep it in qTox.
The gain can be set now in dB values, providing acceptable results for a wide range of setups.
note: also introduces const-correctness and some minor cleanup.
This API used to start *A NEW THREAD* for every sound played!!
Now we simply have a dedicated source and buffer to play those sounds, we use a timer to cleanup the buffer 50ms after the sound is done playing (if a new sound hasn't started in the meantime)
We now subscribe to an event and wait for frames when capturing audio
input, the big avdantage is that we only have to fetch the frames from
the hardware once, and we don't need to cache anything.
The frames are simply dispatched to the client's callbacks immediately.
Also removes some outdated ifdefs that did not apply anymore.
This makes the code much shorter and easier to follow, especially since AudioPrivate was right in the middle of audio.cpp, awkwardly splitting things in two
Compile times should not be substantially affected since we just need to include the OpenAL C headers
* use the ALListener object for master volume control
* initialize audio sources
* audio volumes are now expressed as percentage values between 0 and 1 to the public API
* removed artificial amplification of input samples
* removed invalid audio source generation in group calls
* minor: fixed gain slider max. value to 100 percent