Chris Robinson
b99e64a0e3
Provide more descriptive messages to disconnection events
2018-02-03 13:54:42 -08:00
Chris Robinson
975c682ec3
Use semaphores to signal for more samples with JACK and OpenSL
2018-02-01 18:54:13 -08:00
Chris Robinson
e7217760f3
Don't bother with an explicit stop backend method
2018-01-29 01:00:53 -08:00
Chris Robinson
a042dbf305
Call the backend close method in the destructor
2018-01-28 23:32:28 -08:00
Chris Robinson
3832b25f30
Move the ringbuffer declarations to a separate header
...
And rename alcRing.c to ringbuffer.c for consistency.
2018-01-11 09:16:28 -08:00
Chris Robinson
fca83263f4
Implement capture support in the OpenSL backend
2017-04-15 18:08:52 -07:00
Chris Robinson
f94fa5d5cf
Use separate atomic macros for pointers
2017-04-14 17:47:55 -07:00
Chris Robinson
901804d724
Store the ambisonic order separate from the channel enum
2017-04-12 18:26:07 -07:00
Chris Robinson
26144ca9df
Rename al_string_* functions to alstr_*
2017-04-04 06:58:53 -07:00
Chris Robinson
e720faf2d4
Fix OpenSL latency calculation
2017-02-22 15:00:41 -08:00
Chris Robinson
c771b82a39
Use the correct IID for the opensl buffer queue
2017-02-07 10:55:36 -08:00
Chris Robinson
9f10ae466c
Convert the OpenSL backend to the new backend API
...
This also removes the buffer queue callback's call to aluMixData, which could
potentially block on a mutex.
2017-02-07 07:06:41 -08:00
Chris Robinson
af362c2d05
Fix for NULL JNIEnv
...
Which can happen with native-only apps
2017-02-05 14:25:17 -08:00
Chris Robinson
428cde5dc2
Call getSystemService as a non-static function
2017-02-03 09:41:21 -08:00
Chris Robinson
2c1791752a
Android's AudioManager.getProperty(String) returns a String
2017-02-02 06:14:01 -08:00
Chris Robinson
6b2297b508
Add more traces for the Java calls being made
2017-01-27 15:42:06 -08:00
Chris Robinson
19e96c6fef
Round and clamp the scaled update count with opensl
2017-01-27 01:46:44 -08:00
Chris Robinson
67ffdf7a78
Try to use the system sample rate with Android
2017-01-26 18:23:29 -08:00
Chris Robinson
bff5268ed4
Remove DevFmtBFormat3D, which is covered by DevFmtAmbi1
2016-07-31 08:13:41 -07:00
Chris Robinson
b5b3ea95f8
Add a config to output first-, second-, or third-order ambisonics
...
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.
2016-07-29 21:55:43 -07:00
Chris Robinson
7d4e3688e1
Wait for the OpenSL buffer queue to empty when stopping
2015-08-13 16:01:31 -07:00
Chris Robinson
bdbf6613ef
Support B-Format output with the wave file writer
2014-11-25 22:20:00 -08:00
Chris Robinson
0051a96376
Fix 5.1 surround sound
...
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.
2014-11-07 00:54:16 -08:00
Chris Robinson
a234fc11e5
Remove the GetLatency method from the old BackendFuncs
2014-09-08 06:59:58 -07:00
Chris Robinson
7b93e10f7a
Use an al_string for the device name
2014-03-28 22:11:34 -07:00
Chris Robinson
be2aeeb2fb
Remove some unneeded code and unnecessary macros in the OpenSL backend
2014-03-17 15:17:56 -07:00
Chris Robinson
49baa9128d
bufferQueue's Clear method doesn't take any parameters
2014-01-19 17:26:51 -08:00
Chris Robinson
f193b539ce
Clear the OpenSL buffer queue when stopping
2014-01-19 02:45:51 -08:00
Chris Robinson
5fdc3c093e
Don't use the same buffer segment for enqueueing in OpenSL
2014-01-15 15:27:38 -08:00
Chris Robinson
1739998045
Stop the OpenSL buffer queue when stopping the device
2014-01-15 15:14:25 -08:00
Chris Robinson
10dbb1bc9b
Remove the Lock and Unlock methods from BackendFuncs
...
All backends that still use the old interface use the default locking methods,
which is also used by the ALCbackend base.
2013-11-04 23:34:18 -08:00
Chris Robinson
be25e6802d
Add support for OpenSL ES 1.0.1 on Android
2012-12-12 14:36:58 -08:00
Chris Robinson
0f3a575a09
Don't include alu.h in alMain.h
2012-09-14 02:14:29 -07:00
Chris Robinson
37924887e8
Use a default method to provide a dummy latency
2012-08-19 12:31:59 -07:00
Chris Robinson
0865db564f
Move the device lock into the backend function table
...
For backend-specific implementations: this should hold the audio mixer loop for
playback devices, and provide recursive mutex behavior.
2012-08-18 15:58:04 -07:00
Chris Robinson
ac4fc4026c
Add a device method to retrieve the active latency
...
This is effectively the time until the next update will be heard by the user,
or the closest approximation thereof, in nanoseconds.
2012-08-17 13:38:52 -07:00
Chris Robinson
259e4f5b38
Rename AllDevice -> AllDevices
2012-05-09 16:28:16 -07:00
Chris Robinson
b023dbe7b8
Remove hungarian notation from the device and context structs
2012-04-19 22:50:11 -07:00
Chris Robinson
fe6e532c87
Use a separate backend callback to start playback of the device
...
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.
2012-03-05 07:11:09 -08:00
Chris Robinson
e2ccc6f98e
Always use "OpenAL Soft" for the short device enumeration list
2012-02-20 20:45:22 -08:00
Chris Robinson
c696d4dbb2
Return an ALC error enum from the OpenPlayback backend method
2011-08-24 14:24:48 -07:00
Chris Robinson
9989f33fc2
Move backend sources to a separate sub-directory
2011-08-20 00:41:47 -07:00