aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/alsa.c
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Use VECTOR_FIND_IF and VECTOR_FOR_EACH instead of manual loopsChris Robinson2014-08-091-24/+12
|
* Don't require pre-declaring vector typesChris Robinson2014-07-061-1/+1
|
* Initialize some variables when declaring themChris Robinson2014-05-151-4/+2
|
* Don't try to read the internal capture buffer into itselfChris Robinson2014-05-141-6/+9
|
* Avoid freeing an in-use capture bufferChris Robinson2014-05-141-5/+3
| | | | | When stopping, ALSA may capture into its own storage buffer. Do not free the storage buffer if it first reads from it.
* Add a helper VECTOR_FOR_EACH macroChris Robinson2014-04-301-10/+7
|
* More device list cleanup cleanupChris Robinson2014-04-241-4/+2
|
* Avoid forward-declaring backend vtablesChris Robinson2014-04-231-7/+6
|
* Use a vector to store the ALSA device listsChris Robinson2014-04-211-96/+82
|
* Use al_string for ALSA's device mapChris Robinson2014-04-211-21/+26
|
* Trace the device name being opened in ALSA and PulseAudioChris Robinson2014-04-211-0/+2
|
* Rename SetThreadName to althrd_setnameChris Robinson2014-04-171-2/+2
|
* Remove the old thread wrappers for the new onesChris Robinson2014-04-161-14/+16
|
* Use an al_string for the device nameChris Robinson2014-03-281-2/+2
|
* Use a void* for the backend Delete method paramChris Robinson2014-03-221-13/+6
|
* Use a macro to help condense some repeated codeChris Robinson2013-11-241-148/+89
|
* Make backend factory methods static as neededChris Robinson2013-11-021-5/+5
|
* Add default handlers for reset, captureSamples, and availableSamplesChris Robinson2013-10-291-18/+5
|
* Add a macro to forward methods to a base typeChris Robinson2013-10-291-39/+23
|
* Fix capture with the new backend interfaceChris Robinson2013-10-281-7/+24
|
* Convert ALSA to the new backend interfaceChris Robinson2013-10-281-273/+386
|
* Move the device mutex to the backendChris Robinson2013-10-281-0/+1
|
* Rework threading functionsChris Robinson2013-10-271-4/+6
|
* Set a name for the mixer and recording threadsChris Robinson2013-10-271-0/+2
|
* Compile using -std=c99 when availableChris Robinson2013-10-031-1/+1
|
* Report the actual ALSA error if setting the buffer metrics failsChris Robinson2013-03-181-2/+2
|
* Lock the device before calling aluHandleDisconnectChris Robinson2012-12-021-0/+4
| | | | | | 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.
* Don't include alu.h in alMain.hChris Robinson2012-09-141-0/+1
|
* Free the global ALSA config after opening capture devices tooChris Robinson2012-09-021-1/+4
|
* alsa: Free the global config cache to remove a lot of reported leaksLauri Kasanen2012-09-021-0/+6
| | | | Signed-off-by: Lauri Kasanen <[email protected]>
* Print the error when reporting snd_pcm_delay failureChris Robinson2012-08-271-1/+1
|
* Hold the device lock with ALSA between mixing and writingChris Robinson2012-08-181-0/+4
|
* Use non-blocking access for ALSA playbackChris Robinson2012-08-181-17/+37
|
* 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/+20
| | | | | This is effectively the time until the next update will be heard by the user, or the closest approximation thereof, in nanoseconds.
* Avoid failing if ALSA can't set a buffer or period time near to our requestChris Robinson2012-06-161-21/+2
| | | | | | These functions should not fail, but there seem to be bugs that cause them to sometimes. We're flexible enough to handle almost anything it throws back at us though, so anything is better than nothing here.
* Rename AllDevice -> AllDevicesChris Robinson2012-05-091-1/+1
|
* Clamp the ALSA period time between min and max if setting near failsChris Robinson2012-05-081-1/+17
|
* Clamp the ALSA buffer time between min and max if setting near failsChris Robinson2012-05-071-1/+18
| | | | | | It seems there's some bugs with snd_pcm_hw_params_set_buffer_time_near that cause it to return "invalid argument" despite a valid nearby buffer time being available. Clamping the buffer time seems to mitigate the issue a bit.
* Remove some more hungarian notationChris Robinson2012-04-191-25/+25
|
* Remove hungarian notation from the device and context structsChris Robinson2012-04-191-2/+2
|
* Use a separate backend callback to start playback of the deviceChris Robinson2012-03-051-10/+39
| | | | | | | | | | | | 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 an unnecessary doCapture checkChris Robinson2012-03-011-2/+1
|
* Fix a memory leakChris Robinson2012-03-011-0/+12
|
* Avoid enumerating when opening the default ALSA deviceChris Robinson2012-03-011-18/+18
|
* Don't define lib handles when dynamic loading is disabledChris Robinson2012-03-011-5/+3
|
* Allow reading audio from ALSA directly if the requested length is supportedChris Robinson2012-02-291-27/+142
|
* Use a switch to handle the ALSA PCM stateChris Robinson2012-02-271-10/+22
|
* Print enumerated ALSA devicesChris Robinson2012-02-261-1/+3
|