Beside making it work again, there are some improvements:
Linux side:
* use minimal supported Qt version, currently it's 5.3
* use minimal supported GCC version, currently 4.8
* use newer ffmpeg version to compile against - 2.8.5
* compile qTox 2 times, first run without support for optional dependencies
* use ubuntu 14.04 for building (less deps needs to be compiled/added from PPAs)
OSX:
* add osx to build targets
agilob (4):
Fix label text colour in login profile
Loginpage: Apply black colour to qcheckbox as well
Loginpage: Apply black colour to progressbar
Make disabled checkbox gray
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
Before labels password and username were not visible for me
because colour (dark grey) for those label was inherited from OS
which has dark theme, and background of the label was light grey.
This can be a ~1s win on startup time with a HDD, now we load and cache the smileys in the background, blocking only if we try to use them while they are still loading