aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/mmdevapi.c
Commit message (Collapse)AuthorAgeFilesLines
* Implement a C11-like thread wrapper and use it in mmdevapi and pulseaudioChris Robinson2014-04-161-8/+8
|
* Use an al_string for the device nameChris Robinson2014-03-281-7/+2
|
* Use al_string to handle mmdevapi and dsound device namesChris Robinson2014-03-281-29/+23
|
* Reactivate the mmdevapi audio client and set the event handle on resetChris Robinson2014-03-271-10/+26
|
* Don't assume the default mmdevapi device is in the collectionChris Robinson2014-03-171-2/+2
|
* Fix a race condition in the mmdevapi message queue threadChris Robinson2014-02-091-0/+6
|
* Add some extra traces to the mmdevapi backendChris Robinson2014-02-091-0/+8
| | | | Trying to track down the cause of some reported errors.
* 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.
* Move the device mutex to the backendChris 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/+1
|
* Fix a potential leak when mmdevapi fails to openChris Robinson2013-05-191-0/+3
|
* Filter unneeded thread messages with MMDevApiChris Robinson2012-12-241-1/+3
|
* Lock the device before calling aluHandleDisconnectChris Robinson2012-12-021-0/+6
| | | | | | 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.
* Use the stored buffer metrics for the mmdevapi buffer sizeChris Robinson2012-11-041-9/+1
|
* Add rudimentary latency tracking for mmdevapiChris Robinson2012-11-041-1/+16
| | | | | | | | This won't be as granular as it could be, since it only updates when the wakeup event trips (which may or may not happen more often than OpenAL's mix updates). A more correct method would be to query GetCurrentPadding directly, but that would require sending a message to the processing thread and waiting for a reply, since we can't guarantee COM on the calling thread.
* 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.
* Add DEVPKEY_Device_FriendlyName declaration for mingw-w64 compatibilityChris Robinson2012-06-141-0/+3
|
* Rename AllDevice -> AllDevicesChris Robinson2012-05-091-1/+1
|
* Remove hungarian notation from dsound and mmdevapiChris Robinson2012-04-191-11/+11
|
* Remove hungarian notation from the device and context structsChris Robinson2012-04-191-1/+1
|
* Try to ensure the full mmdevapi buffer is usedChris Robinson2012-03-131-4/+12
|
* Try to ensure at least 2 mmdevapi updatesChris Robinson2012-03-131-1/+2
|
* Try to find a multiple of mmdevapi's period size nearest to the wanted ↵Chris Robinson2012-03-131-0/+3
| | | | update size
* Store a duplicate of the mmdevapi device IDChris Robinson2012-03-061-5/+9
|
* Use a separate backend callback to start playback of the deviceChris Robinson2012-03-051-30/+54
| | | | | | | | | | | | 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.
* Don't use GUIDs to ID mmdevapi devices, and don't enumerate if not neededChris Robinson2012-03-011-101/+68
|
* Get and release the mmdevapi render client iface on the message threadChris Robinson2012-02-291-17/+15
|
* Use local variables to determine how much to write to mmdevapiChris Robinson2012-02-291-3/+6
|
* Print the mmdevapi device and GUID foundChris Robinson2012-02-261-0/+3
|
* Watch for CLSIDFromString errorsChris Robinson2012-02-231-1/+2
|
* Avoid using a default name with the MMDevApi backendChris Robinson2012-02-201-17/+13
|
* Always use "OpenAL Soft" for the short device enumeration listChris Robinson2012-02-201-4/+0
|
* Minor MMDevApi cleanupsChris Robinson2012-02-181-6/+7
|
* Use the correct type to store the count from IMMDeviceCollection_GetCountChris Robinson2012-02-171-4/+4
|
* Silence another MSVC warningChris Robinson2012-02-171-1/+1
|
* Initialize a variable before useChris Robinson2012-02-171-1/+1
|
* Support device enumeration with mmdevapiChris Robinson2012-02-161-11/+281
|
* Fix a device count leak and make sure COM is cleaned up if an mmdevice open ↵Chris Robinson2012-02-161-8/+11
| | | | fails
* Calculate the buffer time before modifying the frequencyChris Robinson2012-02-151-2/+3
|
* Get the mmdevapi device period after initializationChris Robinson2012-02-151-21/+13
|
* Support signed and unsigned 32-bit int outputChris Robinson2012-02-141-0/+10
|
* Avoid printing messages about device parameter changes in the backendsChris Robinson2012-01-171-70/+30
|
* Initialize/Uninitialize COM as neededChris Robinson2011-10-241-2/+11
|
* Rename the MMDevAPI backend's MessageProc functionChris Robinson2011-09-241-2/+2
|
* Define _WIN32_WINNT on the command line with _WIN32Chris Robinson2011-09-201-1/+0
|