Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Output: start with a null mixer. | Nix | 2014-12-01 | 1 | -0/+1 |
| | | | | | | | | | | | There are code paths (mostly error cases) in which it is possible to initialize an AudioOutput and then kill it without ever calling audio_output_new(). In such a case, its destructor will attempt to free a mixer that was never initialized, leading to an attempt to take out a lock on a mutex that was similarly never initialized, which hangs forever. Fix by always initializing the mixer appropriately. | ||||
* | Mixer: add class MixerListener | Max Kellermann | 2014-02-19 | 1 | -3/+11 |
| | | | | Use a listener interface instead of GlobalEvents. | ||||
* | output/Init: pass AudioOutput references | Max Kellermann | 2014-02-19 | 1 | -29/+29 |
| | |||||
* | mixer/Plugin: pass AudioOutput reference to init() | Max Kellermann | 2014-02-06 | 1 | -2/+2 |
| | | | | Passing a void pointer is unsafe. | ||||
* | Mixer: use reference instead of pointer for MixerPlugin | Max Kellermann | 2014-02-05 | 1 | -2/+2 |
| | |||||
* | Mixer: rename struct mixer_plugin to MixerPlugin | Max Kellermann | 2014-02-05 | 1 | -1/+1 |
| | |||||
* | MixerPlugin: add EventLoop& init() parameter | Max Kellermann | 2014-02-05 | 1 | -7/+8 |
| | |||||
* | output: move functions into the AudioOutput struct | Max Kellermann | 2014-01-29 | 1 | -18/+15 |
| | |||||
* | AudioOutput: make "plugin" a reference | Max Kellermann | 2014-01-29 | 1 | -6/+6 |
| | |||||
* | AudioOutput: pass plugin to constructor | Max Kellermann | 2014-01-29 | 1 | -9/+7 |
| | | | | Make it "const". | ||||
* | AudioOutput: add constructor and destructor | Max Kellermann | 2014-01-28 | 1 | -12/+14 |
| | |||||
* | output: rename source files | Max Kellermann | 2014-01-28 | 1 | -0/+329 |