Add OpenAL dependence.
Add VectorControl, a wrapper around a 3D vector that exposes controls to the rest of Mixxx.
Add a Vector3DControl set method.
Add EngineChannel accessors to vectors.
Set initial orientation based on legacy orientation.
Add AudioScene to EngineMaster for mixing audio in 3D using OpenAL.
Add DOME output type.
Create buffers for listeners in AudioScene.
Route buffer requests from SoundManager to AudioScene.
Create a bunch of dome outputs on startup.
Scratch that.
Switch to single listener and add a simple looping sine-wave source.
Add streaming buffer generation to AudioEmitter.
Remove sine wave test code.
Add onCallbackStart and receiveBuffer to AudioScene.
Call receiveBuffer for every channel regardless of whether it is processed. Call onCallbackStart at callback start.
Get rid of another bit of sine-wave code.
Remove hard-coded sample rates.
Only mix channels if no audio scene is present. Add some scoped timers for performance measurement.