summaryrefslogtreecommitdiffstats
path: root/src/pulse
Commit message (Collapse)AuthorAgeFilesLines
* core: Add infrastructure for synchronizing HW and SW volume changesJyri Sarha2010-10-161-1/+6
| | | | | | | | | | | | | | | | To make concurrent use of SW and HW volume glitchles their application needs to be synchronized. For accurate synchronization the HW volume needs to be applied in IO thread. This patch adds infrastructure to delay the applying of HW volume to match with SW volume timing. To avoid synchronization problems this patch moves many of the volume and mute related functions from main thread to IO thread. All these changes become active only if the sync volume flag for a sink has been set. So, for this patch to have any effect it needs to be taken into use by sink implementor. Signed-off-by: Jyri Sarha <jyri.sarha@nokia.com> Reviewed-by: Tanu Kaskinen <tanu.kaskinen@digia.com> Reviewd-by: Colin Guthrie <cguthrie@mandriva.org>
* volume: Decrease PA_VOLUME_MAX to be < 2^31Arun Raghavan2010-10-151-1/+1
| | | | | | | This decrease PA_VOLUME_MAX to be less than 2^31. We want to do this in order to simplify signed arithmetic when applying software volume scaling (since the volume can now always be safely treated as a signed number).
* volume: Clamp volume to PA_VOLUME_MAXArun Raghavan2010-10-152-9/+14
| | | | | | This ensures that we always clamp the volume to PA_VOLUME_MAX. While this currently has no effect, it will be required for making sure we don't exceed PA_VOLUME_MAX when its value changes in the future.
* volume: Use a macro to check if a volume is validArun Raghavan2010-10-153-19/+22
| | | | | | | This adds a PA_VOLUME_IS_VALID() macro for checking if a given pa_volume_t is valid. This makes changes to the volume ranges simpler (just change PA_VOLUME_MAX, for example, without needing to modify any other code).
* doxygen: Add 'See also' linking to the overview pageDavid Fries2010-10-1312-11/+46
| | | | | | | A good many of the header files are broken into a function reference page and an overview page. These changes add a direct link from each function reference page to their overview page if one exists.
* doxygen: Documentation improvementsDavid Fries2010-10-135-15/+16
| | | | | | | | | stream.h, simple.h The words drain and flush are a little ambiguous, make it explicit as to what happens to any existing audio. *mainloop.h reword *_free and *_get_api for grammar
* doxygen: Fix the "all" comments regarding volume helper functions.David Fries2010-10-131-10/+11
| | | | | | Mostly change "Set the volume of all channels" to "Set the volume of the first n channels" as the first is incorrect, it doesn't set all the channels and doesn't explain what n was for.
* doxygen: Fix documentation typosDavid Fries2010-10-133-7/+8
|
* introspect: Include whether a stream is corked in the info callback.Colin Guthrie2010-10-062-3/+11
|
* x11: Use the default screen for X11 properties.Colin Guthrie2010-09-181-6/+6
| | | | | This commit restores the functionality originally included in 65e807 by Leszek Koltunski.
* xcb: Ensure the XCB connection is valid before using it.Colin Guthrie2010-09-181-0/+5
|
* x11: Partially convert to XCB.Colin Guthrie2010-09-181-12/+11
| | | | | | | | | This commit mostly converts the X11 handling to XCB. There are still some uses of XLib to deal with the X11 session handling modules, however all client-side code should now be free of XLib and thus this should fix Bug #799 Note that this removes the screen-based changes by Leszek Koltunski in 65e80, however this will be restored in due course.
* AC3 passthrough supportPierre-Louis Bossart2010-08-122-2/+25
| | | | | | | | | | | | Second version after Tanu's feedback TODO: - notify client that volume control is disabled - change sink rate in passthrough mode if needed - automatic detection of passthrough mode instead of hard coded profile names Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
* thread: name all threads so that the names appear in /proc/$PID/task/$TID/commLennart Poettering2010-05-071-1/+1
|
* proplist: explicitly mention a role 'test'Lennart Poettering2010-02-211-1/+1
|
* channelmap: Use "Subwoofer" as pretty name for LFELennart Poettering2010-02-211-1/+1
| | | | | | The pretty name is suspposed to be understandable by non-technical folks, and they are generally more used to the term "Subwoofer" than "Low Frequency Emitter", so let's change the name here.
* native: rework handling of seeks that depend on variables the client does ↵Lennart Poettering2010-02-091-0/+5
| | | | | | | | | | | | not know anything about All seeks/flushes that depend on the playback buffer read pointer cannot be accounted for properly in the client since it does not know the actual read pointer. Due to that the clients do not account for it at all. We need do the same on the server side. And we did, but a little bit too extreme. While we properly have not applied the changes to the "request" counter we still do have to apply it to the "missing" counter. This patch fixes that.
* client: implement $PULSE_LATENCY_MSECLennart Poettering2010-02-091-6/+31
| | | | | | | This allows easy overriding of a clients latency setting for debugging purposes. http://pulseaudio.org/ticket/753
* client: verify connection state in pa_stream_connect_upload()Lennart Poettering2010-02-091-0/+1
| | | | | | | Make suer we check the connection state before going on, so that we can rely that s->context->pstream is properly initialized. https://bugzilla.redhat.com/show_bug.cgi?id=539500
* client: detect forking in sample cache API, tooLennart Poettering2010-02-092-2/+8
|
* native: fix request counter miscalculationsLennart Poettering2010-02-091-0/+4
| | | | | | | | | | | | | Do not subtract bytes the client sends us beyond what we requested from our missing bytes counter. This was mostly a thinko that caused servers asking for too little data when the client initially sent more data than requested, because that data sent too much was accounted for twice. This commit fixes this miscalculation. http://bugzilla.redhat.com/show_bug.cgi?id=534130
* dbus: remove filter functions only if they were actually set beforeLennart Poettering2010-02-092-19/+7
| | | | | | | This fixes an assert when destructing modules that have not been fully initialized. https://bugzilla.redhat.com/show_bug.cgi?id=548525
* client.conf.in: Typo. s/a/are/Paul Menzel2010-02-021-1/+1
| | | | | | | | | This is the same typo as reported in [1] and fixed in [2] in `client.conf.in`. I did `git grep "values a commented"` and did not get anymore hits. [1] http://pulseaudio.org/ticket/783 [2] http://git.0pointer.de/?p=pulseaudio.git;a=commit;h=ea8927f1d47be101a1f64b2f87fd6e527ff76dbe
* client: include dolby channel names in commentsLennart Poettering2010-01-141-10/+10
|
* client: introduce auto-connect-display= following the scheme of ↵Lennart Poettering2010-01-134-7/+12
| | | | | | | auto-connect-localhost= Just connecting to a PA server just because X11's $DISPLAY is set might be a security hole.
* client: introduce auto-connect-localhost= option in client.confLennart Poettering2010-01-134-4/+10
| | | | | | | | | Partly fixes: http://pulseaudio.org/ticket/773 Also fixes a security hole since listening on the default port is not access controlled right now.
* Merge remote branch 'zonque/topic/osx'Lennart Poettering2010-01-051-7/+2
|\
| * poll() is totally broken on Mac OS XDaniel Mack2009-12-161-7/+2
| | | | | | | | | | | | Even on 10.5.8, poll() does not do the right thing. Haven't checked on newer versions. Hence, wrap all occurences of poll() to pa_poll and emulate that call with select() on OSX. This is totally embarassing.
* | headers: Some trivial fixes for some documentation typosMads Kiilerich2010-01-056-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note also the willneed/will_need inconsistency. I guess it could be nice to ASAP choose one of them and introduce a backward compatibility hack for the other. The issues was mostly found with: for a in $(grep -r '^[ /]\*.*()' $( find -name '*.[ch]') | sed 's,^.* \([^ ]*\)().*$,\1,g' | sort | uniq | grep ^pa_) do grep -rq "^.[^*].*\<$a(" $(find * -name '*.h') || echo $a done
* | threaded-mainloop: Properly initialise m->n_waiting_for_accept to prevent ↵Daniel T Chen2010-01-051-0/+1
|/ | | | | | | | | | | | | deadlock Compiler optimisations have been seen to initialise m->n_waiting_for_accept to a positive non-zero value, so the while() in pa_threaded_mainloop_signal() never proceeds. Fix this by properly initializing m->n_waiting_for_accept in pa_threaded_mainloop_new(). Patch from Iain Bucław. https://bugs.launchpad.net/bugs/502992
* Mark shared variables as volatileArun Raghavan2009-12-061-1/+4
| | | | | | | | | 'n_waiting' and 'n_waiting_for_accept' may be accessed from mulitple threads, and thus need to be marked as volatile to suppres certain compiler optimisations. All uses are protected by a mutex, so we don't need to worry about cache issues (added documentation for this as well). This addresses bug #738.
* libpulse: Store pa_stream pointers to hashmaps instead of dynarrays.Tanu Kaskinen2009-12-033-18/+17
| | | | | | | | | Since the stream identifiers (channels) are monotonically growing integer, it isn't a good idea to use them as index to a dynamic array, because the array will grow all the time. This is not a problem with client connections that don't create many streams, but, for example, long-running clients that use libcanberra for playing event sounds, this means that the client connection effectively leaks memory.
* freebsd: implement pa_get_binary_nameJoe Marcus Clarke2009-11-211-0/+11
| | | | | | Stolen from http://www.freebsd.org/cgi/cvsweb.cgi/ports/audio/pulseaudio/files/patch-src_pulse_util.c?rev=1.1 and fixed for indentation.
* pulse: ask for timing updates both *before* and *after* triggering a stream ↵Lennart Poettering2009-11-201-2/+36
| | | | state change so that in the STARTED/UNDERFLOW callbacks we accurate transport latency information
* pulse: delay smoother update only when unpausing, not when pausing, since we ↵Lennart Poettering2009-11-201-17/+19
| | | | don't want the timer to advance when we are supposedly already paused
* pulse: try to fix inaccuracy with uncork timing for streams that are created ↵Lennart Poettering2009-11-201-1/+16
| | | | in corked state
* device-manager: Update docs version -> 0.9.20Colin Guthrie2009-11-111-12/+12
| | | | Third time is a charm... maybe.
* device-manager: Update docs version -> 0.9.20Colin Guthrie2009-11-091-12/+12
|
* volume: add pa_cvolume_inc_clamp functionVladimir Kokarev2009-11-052-3/+11
| | | | | | added function to increase volume not exceeding specified limit simply changed PA_VOLUME_MAX to 'limit' in pa_cvolume_inc pa_cvolume_inc now calls pa_cvolume_inc_clamp with PA_VOLUME_MAX limit
* use pa_fopen_cloexec() where applicableLennart Poettering2009-10-301-1/+1
|
* use cloexec wrappers wherever applicableLennart Poettering2009-10-302-6/+2
|
* libpulse: introduce PA_STREAM_RELATIVE_VOLUMELennart Poettering2009-10-292-2/+18
|
* libpulse: explain semantics of pa_stream_connect_playback() in more detailLennart Poettering2009-10-281-1/+16
|
* libpulse: introduce pa_context_get_tile_size() callLennart Poettering2009-10-282-3/+36
|
* libpulse: add missing includesLennart Poettering2009-10-122-0/+4
|
* device-manager: Rather than flagging the device as available, just include ↵Colin Guthrie2009-10-102-5/+2
| | | | the sink/source index with PA_INVALID_INDEX meaning unavailable
* Merge remote branch 'coling/history'Lennart Poettering2009-10-074-0/+579
|\
| * device-manager: Change the prefer/defer options to a single 'reorder' command.Colin Guthrie2009-10-012-52/+13
| | | | | | | | | | | | We put in the devices from the wire into a hashmap and then add all like type device in the database and then order them based on priority (with the ones specified on the wire always being in that order at the top of the list.
| * device-manager: Expose the priority lists in the protocol extension.Colin Guthrie2009-10-012-1/+39
| | | | | | | | Also leave space for 'icon' and 'available' details too, althought currently this info is dummy.
| * device-manager: Change the write function to a rename function.Colin Guthrie2009-10-012-40/+16
| | | | | | | | | | | | | | The structure itself will contain various bits of info so exposing this fully to the client is a bad idea. By keeping to a rename operation we keep what we do store abstracted from the clients. Also fix some doxy comments.