aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/wave.c
Commit message (Collapse)AuthorAgeFilesLines
* Make the Connected state atomicChris Robinson2018-02-041-7/+6
| | | | Also don't send the Disconnected event more than once.
* Provide more descriptive messages to disconnection eventsChris Robinson2018-02-031-1/+1
|
* Don't bother with an explicit stop backend methodChris Robinson2018-01-291-9/+4
|
* Call the backend close method in the destructorChris Robinson2018-01-281-1/+6
|
* Move the config function declarations to their own headerChris Robinson2018-01-111-0/+1
| | | | And rename alcConfig.c to alconfig.c for consistency.
* Set the float PCM GUID for wave files only when outputting floatChris Robinson2017-07-151-2/+3
|
* Store the ambisonic order separate from the channel enumChris Robinson2017-04-121-11/+14
|
* Rename al_string_* functions to alstr_*Chris Robinson2017-04-041-1/+1
|
* Use separate enums for the ambisonic channel order and normalizationChris Robinson2017-02-271-1/+2
|
* Always lock the device backend before calling aluMixDataChris Robinson2017-02-181-0/+2
|
* Remove DevFmtBFormat3D, which is covered by DevFmtAmbi1Chris Robinson2016-07-311-4/+3
|
* Add a config to output first-, second-, or third-order ambisonicsChris Robinson2016-07-291-0/+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.
* Change the backend getLatency method to return the clock time tooChris Robinson2016-05-281-1/+1
| | | | | | This will also allow backends to better synchronize the tracked clock time with the device output latency, without necessarily needing to lock if the backend API can allow for it.
* Don't write one byte at a time for the wave writer on big endianChris Robinson2016-01-251-17/+19
|
* Replace multiple fputc calls with one fwriteChris Robinson2016-01-231-6/+4
|
* Allow for device-specific config valuesChris Robinson2015-08-281-3/+3
|
* Add a macro to simplify allocating and constructing an objectChris Robinson2015-05-181-21/+1
|
* Support B-Format output with the wave file writerChris Robinson2014-11-251-1/+19
|
* Fix 5.1 surround soundChris Robinson2014-11-071-2/+2
| | | | | | | | | | | | | 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.
* Use a wave file channel mask based on the actual formatChris Robinson2014-09-101-14/+12
|
* Only pass nano seconds to al_nssleepChris Robinson2014-09-081-1/+1
|
* Convert the wave writer backend to the new APIChris Robinson2014-08-241-111/+180
|
* Update COPYING to the latest ↵François Cami2014-08-181-2/+2
| | | | https://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt to fix the FSF' address Fix the FSF' address in the source
* Rename SetThreadName to althrd_setnameChris Robinson2014-04-171-1/+1
|
* Make and use a C11-like altimespec_get wrapper functionChris Robinson2014-04-171-28/+34
|
* Avoid using a Sleep() wrapperChris Robinson2014-04-161-3/+3
|
* Remove the old thread wrappers for the new onesChris Robinson2014-04-161-8/+7
|
* Use an al_string for the device nameChris Robinson2014-03-281-1/+1
|
* Wrap fopen calls under WindowsChris Robinson2014-03-281-1/+1
| | | | | | | The idea is that all filenames we deal with are encoded as UTF-8, but the Windows functions that take a char string interpret it using the ANSI codepage. So instead, we convert the UTF-8 string to a wchar string, and then use the wchar functions for proper extended character filename support.
* 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.
* Move the device mutex to the backendChris Robinson2013-10-281-0/+1
|
* Separate compatibility declarationsChris Robinson2013-10-281-0/+1
|
* Rework threading functionsChris Robinson2013-10-271-3/+3
|
* Set a name for the mixer and recording threadsChris Robinson2013-10-271-0/+2
|
* Silence some clang warningsChris Robinson2013-06-051-2/+2
|
* Lock the device before calling aluHandleDisconnectChris Robinson2012-12-021-0/+2
| | | | | | PulseAudio causes an assert if being relocked inside a callback on the worker thread, where aluHandleDisconnect is called. We can assume it's already locked there, so just make sure the device is locked before being calling it.
* Define WIN32_LEAN_AND_MEAN when including windows.h in alMain.hChris Robinson2012-10-061-0/+3
|
* 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-9/+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/+10
| | | | | This is effectively the time until the next update will be heard by the user, or the closest approximation thereof, in nanoseconds.
* Silence some GCC warningsChris Robinson2012-06-171-0/+4
|
* Rename AllDevice -> AllDevicesChris Robinson2012-05-091-1/+1
|
* Remove some more hungarian notationChris Robinson2012-04-191-15/+15
|
* 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-4/+11
| | | | | | | | | | | | 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.
* Slight correction for handling the wave writer backend's timer wrappingChris Robinson2012-03-031-3/+3
|
* Always use "OpenAL Soft" for the short device enumeration listChris Robinson2012-02-201-3/+0
|
* Move the endian test macro to alMain.hChris Robinson2012-02-151-6/+1
|
* Support signed and unsigned 32-bit int outputChris Robinson2012-02-141-0/+4
|