aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/pulseaudio.c
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Returned pa_operations can be NULLChris Robinson2012-03-051-31/+21
|
* Use a separate backend callback to start playback of the deviceChris Robinson2012-03-051-19/+22
| | | | | | | | | | | | 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.
* Print and handle errors from pa_stream_readable_sizeChris Robinson2012-03-051-1/+6
|
* Set prebuf to 0 since we're handling the stream start manuallyChris Robinson2012-03-041-1/+2
|
* Make sure the pulse stream is properly started and better handle buffer size ↵Chris Robinson2012-03-041-3/+22
| | | | changes
* Remove some unneeded pulseaudio callsChris Robinson2012-03-021-3/+0
|
* Don't unload libpulseChris Robinson2012-03-021-5/+1
| | | | This sometimes spawns esoteric errors in dlclose
* Remove some unneeded markersChris Robinson2012-03-021-55/+52
|
* Set prebuf to the expected buffer sizeChris Robinson2012-03-021-3/+4
| | | | This is to make sure the stream starts even if PulseAudio increases tlength.
* Don't rely on PulseAudio to wake us up using early requestsChris Robinson2012-03-021-54/+14
|
* Recalculate the new update size using the device's UpdateSizeChris Robinson2012-03-021-3/+2
|
* Set the func list after successfully connecting to PulseAudioChris Robinson2012-03-011-2/+1
|
* Use NULL to open the default PulseAudio device, and get the actual device ↵Chris Robinson2012-03-011-25/+88
| | | | name from the stream
* Move some function definitions downChris Robinson2012-03-011-58/+57
|
* Don't define lib handles when dynamic loading is disabledChris Robinson2012-03-011-9/+3
|
* Only support PA_API_VERSION 12Chris Robinson2012-03-011-17/+16
|
* Update the stored buffer attributes if PulseAudio changes itChris Robinson2012-03-011-63/+67
|
* Don't allow the PulseAudio stream to moveChris Robinson2012-03-011-14/+4
| | | | | Since the device specifier isn't updated to reflect the change, it's best to not allow it to move. This should be fixed eventually.
* Don't force a sample spec when looking for the default deviceChris Robinson2012-03-011-4/+12
|
* Don't check if the pulseaudio sink is suspended when openingChris Robinson2012-03-011-35/+1
|
* Constify a couple string pointersChris Robinson2012-03-011-3/+3
|
* Look for and enumerate the default PulseAudio source firstChris Robinson2012-02-291-0/+26
|
* Use a separate function to create and connect a PulseAudio record streamChris Robinson2012-02-291-36/+44
|
* Look for and enumerate the default PulseAudio sink firstChris Robinson2012-02-291-0/+23
|
* Avoid enumerating multiple devices with the same nameChris Robinson2012-02-291-0/+14
|
* Avoid passing the ALCdevice to connect_playback_streamChris Robinson2012-02-291-15/+15
|
* Print the enumerated devices from PulseAudioChris Robinson2012-02-291-36/+4
|
* Don't store the frame size with pulse_dataChris Robinson2012-02-291-26/+29
|
* Read capture data from pulseaudio as needed, avoiding a ring bufferChris Robinson2012-02-291-33/+66
|
* Minor rearrangements for the pulseaudio mixing loopChris Robinson2012-02-221-5/+5
|
* Use the stored minreq size from PulseAudio for rounding off the length to writeChris Robinson2012-02-211-1/+1
|
* Avoid using a default name when opening a PulseAudio deviceChris Robinson2012-02-201-4/+6
|
* Always use "OpenAL Soft" for the short device enumeration listChris Robinson2012-02-201-23/+0
|
* Don't accept the pulseaudio default name for captureChris Robinson2012-02-201-4/+6
|
* Use a string to report unsupported capture sample typesChris Robinson2012-02-201-1/+1
|
* Check the pulse spawn-server config option before testing a connection to ↵Chris Robinson2012-02-191-34/+34
| | | | pulseaudio
* 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-4/+0
|
* Don't update the device update parameters when PulseAudio does an async ↵Chris Robinson2011-10-191-24/+18
| | | | | | | buffer update It risks a deadlock, and though the UpdateSize won't change, we'll still fill as much of the buffer as we can up to a multiple of it
* Check the number of available samples before calling the capture methodChris Robinson2011-09-181-10/+7
|