aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/winmm.c
Commit message (Collapse)AuthorAgeFilesLines
* Always lock the device backend before calling aluMixDataChris Robinson2017-02-181-0/+2
|
* 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-0/+3
| | | | | | | | | 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.
* Combine VECTOR_RESIZE and VECTOR_RESERVEChris Robinson2016-07-261-3/+3
|
* Change the backend getLatency method to return the clock time tooChris Robinson2016-05-281-2/+2
| | | | | | 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.
* Shorten VECTOR_ITER_ macros to VECTOR_Chris Robinson2016-04-151-6/+6
|
* Convert remaining ringbuffers to the lockless variantChris Robinson2016-03-291-9/+9
|
* Reformat Windows device name dressingChris Robinson2015-12-041-11/+9
|
* Add a function to get a list of data filesChris Robinson2015-10-031-1/+0
| | | | | | The method takes a marked-up filename (e.g. may include %r for a sample rate, %% for %, etc), and returns a vector of strings of found filenames that match. It will search the CWD, the local, and global data directories, in that order.
* Append "on OpenAL Soft" to mmdevapi, dsound, and winmm device namesChris Robinson2015-09-101-24/+26
| | | | | Would be nicer to have a more backend-agnostic method of doing this, Perhaps even also only when the router is being used.
* Add a macro to simplify allocating and constructing an objectChris Robinson2015-05-181-12/+2
|
* Use a macro for the record thread nameChris Robinson2014-12-211-1/+1
|
* Support B-Format output with the wave file writerChris Robinson2014-11-251-0/+1
|
* Fix 5.1 surround soundChris Robinson2014-11-071-1/+1
| | | | | | | | | | | | | 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.
* Convert the winmm backend to the new backend APIChris Robinson2014-09-081-285/+380
|
* 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
* Don't require pre-declaring vector typesChris Robinson2014-07-061-6/+2
|
* Make RefCount a non-integer typeChris Robinson2014-05-141-4/+4
| | | | | It should only be accessed through the appropriate functions to ensure proper atomicity.
* Add a helper VECTOR_FOR_EACH macroChris Robinson2014-04-301-16/+13
|
* Use a helper method to clear winmm device listsChris Robinson2014-04-241-20/+15
|
* Avoid using superfluous LP* typesChris Robinson2014-04-231-10/+10
|
* Use a RefCount for counting committed winmm buffersChris Robinson2014-04-231-7/+7
|
* Use the althrd methods in winmmChris Robinson2014-04-211-78/+15
|
* Use the stored format block align instead of calculating itChris Robinson2014-04-201-7/+4
|
* Rename SetThreadName to althrd_setnameChris Robinson2014-04-171-2/+2
|
* Silence an MSVC warning about -1uChris Robinson2014-04-071-4/+4
|
* Use an al_string vector for winmm device namesChris Robinson2014-04-071-84/+109
| | | | Also now gets wchar device names, to properly convert to UTF-8
* Use an al_string for the device nameChris Robinson2014-03-281-2/+2
|
* Add a macro for GCC to ensure stack alignmentChris Robinson2013-11-251-1/+1
|
* 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.
* Rework threading functionsChris Robinson2013-10-271-0/+1
|
* Set a name for the mixer and recording threadsChris Robinson2013-10-271-0/+2
|
* Use the UNUSED macro in the backendsChris Robinson2013-10-071-8/+2
|
* Don't include alu.h in alMain.hChris Robinson2012-09-141-2/+1
|
* 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 winmm backendChris Robinson2012-04-191-212/+207
|
* Remove some more hungarian notationChris Robinson2012-04-191-47/+47
|
* Remove hungarian notation from the device and context structsChris Robinson2012-04-191-2/+2
|
* Update the ALCdevice in winmm's reset method instead of openChris Robinson2012-03-061-64/+80
|
* Use a separate backend callback to start playback of the deviceChris Robinson2012-03-051-6/+16
| | | | | | | | | | | | 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.
* Avoid default names for winmm and dsoundChris Robinson2012-02-201-40/+16
|
* Always use "OpenAL Soft" for the short device enumeration listChris Robinson2012-02-201-6/+0
|
* Use a switch to check the device format with winmmChris Robinson2012-02-151-5/+28
|
* Support signed and unsigned 32-bit int outputChris Robinson2012-02-141-1/+3
|
* Fix WaveIn shutdown for realChris Robinson2012-01-201-11/+8
| | | | | | The processing thread must be messaged when shutting down, and depending on the state of the device, waveInReset may not do it. Additionally, all buffers must be removed from the device before they can be unprepared and the device closed.
* Always message the WinMM processing thread when a buffer is doneChris Robinson2012-01-201-12/+2
| | | | | So the processing thread can keep track of completed buffers when shutting down, too.
* Fix a possible race condition when shutting down WinMM devicesChris Robinson2012-01-201-23/+21
| | | | | | If the processing threads are interrupted between the shutdown check and re- adding the buffer back to the device, the device can be left with a buffer that will get unprepared and freed while in use.