aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/pulseaudio.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix 5.1 surround soundChris Robinson2014-11-071-6/+6
| | | | | | | | | | | | | 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.
* 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-49/+27
|
* Use pulseaudio's write callback to signal a mixer proc wakeupChris Robinson2014-07-261-3/+11
|
* Don't require pre-declaring vector typesChris Robinson2014-07-061-1/+1
|
* Don't print an ERR if pulse fails to get latency info due to no dataChris Robinson2014-05-261-3/+8
| | | | It just means it was called too quickly after starting.
* Initialize a pointer to NULL instead of a stringChris Robinson2014-05-151-2/+1
|
* Add a helper VECTOR_FOR_EACH macroChris Robinson2014-04-301-10/+7
|
* Use a helper function to clear PulseAudio device listsChris Robinson2014-04-241-36/+20
|
* Avoid forward-declaring backend vtablesChris Robinson2014-04-231-28/+35
|
* Trace the device name being opened in ALSA and PulseAudioChris Robinson2014-04-211-0/+2
|
* Use a vector for the PulseAudio DevMapsChris Robinson2014-04-201-76/+82
|
* Use an al_string in the PulseAudio backend instead of char*Chris Robinson2014-04-201-44/+63
|
* Rename SetThreadName to althrd_setnameChris Robinson2014-04-171-1/+1
|
* Avoid using a Sleep() wrapperChris Robinson2014-04-161-1/+1
|
* Implement a C11-like thread wrapper and use it in mmdevapi and pulseaudioChris Robinson2014-04-161-10/+7
|
* Use an al_string for the device nameChris Robinson2014-03-281-4/+2
|
* Use a void* for the backend Delete method paramChris Robinson2014-03-221-14/+6
|
* Move PATH_MAX fallback definitions to alMain.hChris Robinson2014-02-271-3/+0
|
* Make backend factory methods static as neededChris Robinson2013-11-021-10/+10
|
* Move a macro definition up nearer to where it's usedChris Robinson2013-10-291-4/+4
|
* Add default handlers for reset, captureSamples, and availableSamplesChris Robinson2013-10-291-19/+3
|
* Convert the PulseAudio backend to the new interfaceChris Robinson2013-10-291-623/+863
|
* Move the device mutex to the backendChris Robinson2013-10-281-0/+1
|
* Rework threading functionsChris Robinson2013-10-271-5/+5
|
* Set a name for the mixer and recording threadsChris Robinson2013-10-271-0/+1
|
* Use the UNUSED macro in the backendsChris Robinson2013-10-071-21/+11
|
* Use a simpler U64 macro to make 64-bit constantsChris Robinson2013-10-061-1/+1
|
* Compile using -std=c99 when availableChris Robinson2013-10-031-1/+1
|
* Build an appropriate channel map for PulseAudioChris Robinson2013-02-081-2/+28
|
* Avoid locking PulseAudio's mainloop when starting and stopping captureChris Robinson2012-11-191-4/+0
| | | | | The mainloop is already locked by the caller, and double-locking interferes with the subsequent wait.
* Lock the device using the pulseaudio main loopChris Robinson2012-10-071-8/+15
|
* Scale and round NumUpdates when PulseAudio changes the sample rateChris Robinson2012-10-041-7/+7
|
* Reset maxlength if PulseAudio updates the playback rateChris Robinson2012-10-021-0/+1
|
* Round when calculating NumUpdates from PulseAudio's minreqChris Robinson2012-09-251-7/+8
|
* Make sure PulseAudio sets an update size that's a multiple of 4 samples with SSEChris Robinson2012-09-201-2/+5
|
* Don't include alu.h in alMain.hChris Robinson2012-09-141-0/+2
|
* Add a macro to help make a 64-bit valueChris Robinson2012-08-191-1/+1
|
* Hold the device lock with PulseAudio between mixing and writingChris Robinson2012-08-181-0/+2
|
* 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/+22
| | | | | This is effectively the time until the next update will be heard by the user, or the closest approximation thereof, in nanoseconds.
* Don't unlock the pulseaudio mainloop when mixingChris Robinson2012-08-121-2/+0
| | | | | | Lock contention could cause a lengthy delay between mixing and writing the audio. There shouldn't be any risk of dead-locking as the device lock should never be held when the mainloop gets locked.
* Add missing includeChris Robinson2012-06-191-0/+1
|
* Use a proper method to wait for a PulseAudio operationChris Robinson2012-06-191-18/+19
|
* Allow PulseAudio to spawn a server by defaultChris Robinson2012-06-161-1/+1
| | | | | | | Since only one backend is used at a time now, the issues with device ownership aren't really prevelant anymore. An application that tries to open all enumerated devices won't run into the problem of spawning a server and end up preventing other backend devices from working.
* Add an option to allow PulseAudio to move streamsChris Robinson2012-06-161-3/+28
| | | | | This could be made the default, if there's a safe way to update the AL device specifier.
* Rename AllDevice -> AllDevicesChris Robinson2012-05-091-1/+1
|
* Remove hungarian notation from the device and context structsChris Robinson2012-04-191-4/+4
|
* Add a comment explaining the pulseaudio prop_filterChris Robinson2012-03-061-0/+4
|
* Filter out a couple pulseaudio stream properties by setting them to 0-length ↵Chris Robinson2012-03-051-7/+25
| | | | | | | | | data It seems Qt/Phonon will globally set media.role and phonon.streamid properties, causing them to apply even to our streams if they happen to be loaded in the same process. This is particularly a problem because media.role gets set to "event", preventing the streams from showing in pavucontrol.