aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/opensl.c
Commit message (Collapse)AuthorAgeFilesLines
* Convert the OpenSL backend to C++Chris Robinson2018-11-131-1070/+0
|
* Don't try to get the JNIEnv on AndroidChris Robinson2018-10-021-5/+7
| | | | | It's currently not used. More stuff is needed anyway which may need a different approach.
* Properly queue buffers for OpenSL captureChris Robinson2018-09-171-32/+9
|
* Fix some potential race conditions with OpenSLChris Robinson2018-09-171-42/+62
| | | | | | | | | For playback, increment the ring buffer's write pointer before queueing audio, to handle cases where the callback is invoked, advancing the read pointer, before the write pointer is advanced. For capture, limit the number of re-queued chunks to the number of fully read chunks.
* Pass the device name list to the backend probe methodChris Robinson2018-09-071-5/+2
|
* Append the OpenSL capture device to the appropriate listChris Robinson2018-08-231-1/+1
|
* Ensure at least the specified ringbuffer size is writableChris Robinson2018-03-021-8/+4
| | | | | | Previously, all but one of the specified size could be written (so for a size of n, only n-1 was guaranteed writable). All users pretty much compensated for this, but it makes more sense to fix it at the source.
* Add an option to limit the write size of the ringbufferChris Robinson2018-03-011-11/+5
|
* Make the Connected state atomicChris Robinson2018-02-041-1/+2
| | | | Also don't send the Disconnected event more than once.
* Provide more descriptive messages to disconnection eventsChris Robinson2018-02-031-4/+5
|
* Use semaphores to signal for more samples with JACK and OpenSLChris Robinson2018-02-011-28/+8
|
* Don't bother with an explicit stop backend methodChris Robinson2018-01-291-35/+24
|
* Call the backend close method in the destructorChris Robinson2018-01-281-29/+6
|
* Move the ringbuffer declarations to a separate headerChris Robinson2018-01-111-1/+2
| | | | And rename alcRing.c to ringbuffer.c for consistency.
* Implement capture support in the OpenSL backendChris Robinson2017-04-151-1/+379
|
* Use separate atomic macros for pointersChris Robinson2017-04-141-2/+2
|
* Store the ambisonic order separate from the channel enumChris Robinson2017-04-121-6/+4
|
* Rename al_string_* functions to alstr_*Chris Robinson2017-04-041-1/+1
|
* Fix OpenSL latency calculationChris Robinson2017-02-221-2/+2
|
* Use the correct IID for the opensl buffer queueChris Robinson2017-02-071-2/+3
|
* Convert the OpenSL backend to the new backend APIChris Robinson2017-02-071-176/+432
| | | | | This also removes the buffer queue callback's call to aluMixData, which could potentially block on a mutex.
* Fix for NULL JNIEnvChris Robinson2017-02-051-5/+3
| | | | Which can happen with native-only apps
* Call getSystemService as a non-static functionChris Robinson2017-02-031-4/+4
|
* Android's AudioManager.getProperty(String) returns a StringChris Robinson2017-02-021-1/+1
|
* Add more traces for the Java calls being madeChris Robinson2017-01-271-7/+22
|
* Round and clamp the scaled update count with openslChris Robinson2017-01-271-1/+4
|
* Try to use the system sample rate with AndroidChris Robinson2017-01-261-6/+56
|
* Remove DevFmtBFormat3D, which is covered by DevFmtAmbi1Chris Robinson2016-07-311-1/+0
|
* Add a config to output first-, second-, or third-order ambisonicsChris Robinson2016-07-291-1/+5
| | | | | | | | | Currently incomplete, as second- and third-order output will not correctly handle B-Format input buffers. A standalone up-sampler will be needed, similar to the high-quality decoder. Also, output is ACN ordering with SN3D normalization. A config option will eventually be provided to change this if desired.
* Wait for the OpenSL buffer queue to empty when stoppingChris Robinson2015-08-131-1/+10
|
* Support B-Format output with the wave file writerChris Robinson2014-11-251-0/+1
|
* Fix 5.1 surround soundChris Robinson2014-11-071-4/+4
| | | | | | | | | | | | | Apparently, 5.1 surround sound is supposed to use the "side" channels, not the back channels, and we've been wrong this whole time. That means the "5.1 Side" is actually the correct 5.1 setup, and using the back channels is anomalous. Additionally, this means the 5.1 buffer format should also use the the side channels instead of the back channels. A final note: the 5.1 mixing coefficients are changed so both use the original 5.1 surround sound set (with the surround channels at +/-110 degrees). So the only difference now between 5.1 "side" and 5.1 "back" is the channel labels.
* Remove the GetLatency method from the old BackendFuncsChris Robinson2014-09-081-2/+1
|
* Use an al_string for the device nameChris Robinson2014-03-281-1/+1
|
* Remove some unneeded code and unnecessary macros in the OpenSL backendChris Robinson2014-03-171-73/+20
|
* bufferQueue's Clear method doesn't take any parametersChris Robinson2014-01-191-1/+1
|
* Clear the OpenSL buffer queue when stoppingChris Robinson2014-01-191-2/+15
|
* Don't use the same buffer segment for enqueueing in OpenSLChris Robinson2014-01-151-4/+11
|
* Stop the OpenSL buffer queue when stopping the deviceChris Robinson2014-01-151-0/+10
|
* Remove the Lock and Unlock methods from BackendFuncsChris Robinson2013-11-041-2/+0
| | | | | All backends that still use the old interface use the default locking methods, which is also used by the ALCbackend base.
* Add support for OpenSL ES 1.0.1 on AndroidChris Robinson2012-12-121-1/+8
|
* Don't include alu.h in alMain.hChris Robinson2012-09-141-2/+2
|
* Use a default method to provide a dummy latencyChris Robinson2012-08-191-8/+1
|
* Move the device lock into the backend function tableChris Robinson2012-08-181-0/+2
| | | | | For backend-specific implementations: this should hold the audio mixer loop for playback devices, and provide recursive mutex behavior.
* Add a device method to retrieve the active latencyChris Robinson2012-08-171-1/+9
| | | | | This is effectively the time until the next update will be heard by the user, or the closest approximation thereof, in nanoseconds.
* Rename AllDevice -> AllDevicesChris Robinson2012-05-091-1/+1
|
* Remove hungarian notation from the device and context structsChris Robinson2012-04-191-1/+1
|
* Use a separate backend callback to start playback of the deviceChris Robinson2012-03-051-10/+30
| | | | | | | | | | | | This allows us to properly update the ALCdevice and its resources with the new parameters before starting playback, instead of expecting the mixer to block and wait after it has begun. This also lets us avoid holding the device lock while resetting and starting the device, which helps prevent lock inversion on some backends (ie, one thread locking A then B, and another thread locking B then A), ultimately allowing certain backends to asynchronously update the ALCdevice without risk of lockup. Capture still has issues here, however.
* Always use "OpenAL Soft" for the short device enumeration listChris Robinson2012-02-201-3/+0
|
* Return an ALC error enum from the OpenPlayback backend methodChris Robinson2011-08-241-8/+5
|