summaryrefslogtreecommitdiffstats
path: root/src/pulse/def.h
Commit message (Collapse)AuthorAgeFilesLines
* def: Add some flags for source outputs.Colin Guthrie2011-06-221-1/+28
| | | | | These flags will be required in upcoming work to integrate format and volume support for source outputs.
* sink-input: Add a format-lost eventArun Raghavan2011-05-151-0/+7
| | | | | | | This event is emitted if the sink-input could not be moved to a new sink because it doesn't support the format of the sink-input. Clients can reconnect their stream with a different format if they wish or gracefully exit.
* sink: Remove PASSTHROUGH flagArun Raghavan2011-05-021-8/+2
| | | | | | | This removes the passthrough flag from sinks since we will drop exclusively passthrough sinks in favour of providing a list of formats supported by each sink. We can still determine whether a sink is in passthrough mode by checking if any non-PCM streams are attached to it.
* Implement the "volume sharing" feature.Tanu Kaskinen2011-02-261-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we have a filter sink that does some processing, currently the benefits of the flat volume feature are not really available. That's because if you have a music player that is connected to the filter sink, the hardware sink doesn't have any idea of the music player's stream volume. This problem is solved by this "volume sharing" feature. The volume sharing feature works so that the filter sinks that want to avoid the previously described problem declare that they don't want to have independent volume, but they follow the master sink volume instead. The PA_SINK_SHARE_VOLUME_WITH_MASTER sink flag is used for that declaration. Then the volume logic is changed so that the hardware sink calculates its real volume using also the streams connected to the filter sink in addition to the streams that are connected directly to the hardware sink. Basically we're trying to create an illusion that from volume point of view all streams are connected directly to the hardware sink. For that illusion to work, the volumes of the filter sinks and their virtual streams have to be managed carefully according to a set of rules: If a filter sink follows the hardware sink volume, then the filter sink's * reference_volume always equals the hw sink's reference_volume * real_volume always equals the hw sink's real_volume * soft_volume is always 0dB (ie. no soft volume) If a filter sink doesn't follow the hardware sink volume, then the filter sink's * reference_volume can be whatever (completely independent from the hw sink) * real_volume always equals reference_volume * soft_volume always equals real_volume (and reference_volume) If a filter sink follows the hardware sink volume, and the hardware sink supports flat volume, then the filter sink's virtual stream's * volume always equals the hw sink's real_volume * reference_ratio is calculated normally from the stream volume and the hw sink's reference_volume * real_ratio always equals 0dB (follows from the first point) * soft_volume always equals volume_factor (follows from the previous point) If a filter sink follows the hardware sink volume, and the hardware sink doesn't support flat volume, then the filter sink's virtual stream's * volume is always 0dB * reference_ratio is always 0dB * real_ratio is always 0dB * soft_volume always equals volume_factor If a filter sink doesn't follow the hardware sink volume, then the filter sink's virtual stream is handled as a regular stream. Since the volumes of the virtual streams are controlled by a set of rules, the user is not allowed to change the virtual streams' volumes. It would probably also make sense to forbid changing the filter sinks' volume, but that's not strictly necessary, and currently changing a filter sink's volume changes actually the hardware sink's volume, and from there it propagates to all filter sinks ("funny" effects are expected when adjusting a single channel in cases where all sinks don't have the same channel maps). This patch is based on the work of Marc-André Lureau, who did the initial implementation for Pulseaudio 0.9.15.
* win32: Implement rtclock based on QueryPerformanceCounterMaarten Bosmans2011-02-171-1/+0
| | | | Also remove some unnecessary <time.h> headers.
* doxygen: Fix version numbers for new featuresColin Guthrie2010-12-041-3/+3
| | | | | | Due to how our branching worked out, these new features will debut in v1.0 and not v0.9.22 which has already been released from the stable-queue branch
* 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>
* AC3 passthrough supportPierre-Louis Bossart2010-08-121-1/+16
| | | | | | | | | | | | 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>
* headers: Some trivial fixes for some documentation typosMads Kiilerich2010-01-051-1/+2
| | | | | | | | | | | | | | | | 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
* libpulse: introduce PA_STREAM_RELATIVE_VOLUMELennart Poettering2009-10-291-1/+9
|
* libpulse: Add *_NOFLAGS flags with value 0 for various enumsColin Guthrie2009-09-221-0/+11
| | | | This avoids the need for ugly casting in client implementations.
* CANCELLED vs. CANCELEDLennart Poettering2009-09-171-2/+3
| | | | Define CANCELLED as alias for CANCELED
* libpulse: add new error code PA_ERR_BUSYLennart Poettering2009-09-111-0/+1
|
* bluetooth: return sensible error code in set_profile()Lennart Poettering2009-06-171-0/+1
|
* various spelling fixesMaarten Bosmans2009-04-041-9/+9
|
* Merge commit 'elmarco/dbus'Lennart Poettering2009-03-301-1/+4
|\
| * pulse: client connect to dbusMarc-André Lureau2009-03-301-1/+4
| |
* | typo fixLennart Poettering2009-03-301-1/+1
|/
* fix value of DYNAMIC_LATENCYLennart Poettering2009-03-251-1/+1
|
* introduce new flag that marks sinks/sources which can adjust the latency ↵Lennart Poettering2009-03-251-2/+12
| | | | dynamically
* try to detect when stupid clients forks and refuse all service from then onLennart Poettering2009-03-051-0/+2
|
* allow sending meta/policy events to clientsLennart Poettering2009-02-121-0/+10
|
* add #defines for all enums that lacked itLennart Poettering2009-02-061-0/+65
|
* add a macro definition for each error codeLennart Poettering2009-02-031-0/+28
|
* add new error code PA_ERR_NOTIMPLEMENTEDLennart Poettering2009-02-031-0/+1
|
* implement PA_STREAM_FAIL_ON_SUSPEND logicLennart Poettering2009-02-031-1/+7
|
* move flat volume logic into the core. while doing so add n_volume_steps ↵Lennart Poettering2009-01-271-1/+6
| | | | field to sinks/sources
* import version.h in all header files to make sure that version-based feature ↵Lennart Poettering2009-01-271-0/+1
| | | | testing works
* fix copy'n'paste errorLennart Poettering2009-01-221-2/+2
|
* remove misplaced whitespaceLennart Poettering2009-01-201-1/+1
|
* Document explicitly that the internal sink/source states are not considered ↵Lennart Poettering2009-01-191-6/+18
| | | | part of the ABI/API
* pulse: share private enum values with client sideMarc-André Lureau2009-01-201-2/+18
|
* pulse: introspect sink stateMarc-André Lureau2009-01-201-1/+59
|
* fix doxygen version referencesLennart Poettering2009-01-191-2/+2
|
* kill autoload stuff as plannedLennart Poettering2009-01-151-3/+8
|
* add new pa_card object as a way to logically combine multiple sinks and sourcesLennart Poettering2009-01-151-1/+7
|
* make PA_CONTEXT_IS_GOOD/PA_STREAM_IS_GOOD a macro so that we can easily ↵Lennart Poettering2009-01-151-2/+10
| | | | check for its availability
* build: fix few warningsMarc-André Lureau2009-01-131-1/+1
|
* Implement new flags DONT_INHIBIT_AUTO_SUSPEND and START_UNMUTEDLennart Poettering2008-10-261-2/+18
|
* introduce macros for all flags so that clients can check for them with #ifdefLennart Poettering2008-09-031-1/+41
|
* reindent comments a bitLennart Poettering2008-09-031-197/+263
|
* Implement "early requests" mode.Lennart Poettering2008-09-031-142/+118
| | | | | | | PA_STREAM_EARLY_REQUESTS is a new flag that will modify buffering metric selection behaviour a bit. This code is good for broken ALSA/OSS clients that ignore 'readability' on the fds in question and schedule audio via usleep() instead.
* don't include leagacy definition PA_STREAM_NOT_MONOTONOUS in docsLennart Poettering2008-09-011-0/+3
|
* add a new error code PA_ERR_NOEXTENSIONLennart Poettering2008-08-031-0/+1
|
* prepare doxygen docs for 0.9.11Lennart Poettering2008-07-211-20/+52
|
* call the enum PA_STREAM_NOT_MONOTONIC and make PA_STREAM_NOT_MONOTONOUS an ↵Lennart Poettering2008-06-261-4/+9
| | | | alias for that
* get rid of svn $ keywordsLennart Poettering2008-06-181-2/+0
|
* merge glitch-free branch back into trunkLennart Poettering2008-05-151-32/+132
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2445 fefdeb5f-60dc-0310-8127-8f9354f1896f
* - Check process name when dealing with PID filesLennart Poettering2007-11-211-1/+78
| | | | | | | | | | | | - Add new PA_STREAM_FIX_CHANNELS, FIX_RATE, FIX_FORMAT, DONT_MOVE, VARIABLE_RATES to pa_sream_flags_t adn implement it - Expose those flags in pacat - Add notifications about device suspend/resume to the protocol and expose them in libpulse - Allow changing of buffer_attr during playback - allow disabling for remixing globally - hookup polkit support git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2067 fefdeb5f-60dc-0310-8127-8f9354f1896f
* ignore network sinks/sourcesLennart Poettering2007-10-291-2/+4
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1988 fefdeb5f-60dc-0310-8127-8f9354f1896f