summaryrefslogtreecommitdiffstats
path: root/src/modules/module-match.c
Commit message (Collapse)AuthorAgeFilesLines
* match: Support for both merging and replacing proplist updates.Tanu Kaskinen2011-04-291-37/+60
| | | | | | | | | | | | | | | | | | | | | This patch adds a new update mode specifier that can be optionally given in match rules after the regexp. Property list updates triggered by the rule will honour the given mode. The two allowed modes are 'merge' and 'replace', corresponding to PA_UPDATE_MERGE and PA_UPDATE_REPLACE respectively. If omitted, the mode defaults to PA_UPDATE_MERGE, ie. to the original behavior. For example, to force 'media.role' to be overwritten with 'bar' for streams matching foo you can use an entry like this: foo replace "bar" This will really overwrite media.role to bar even if it has already been set to something else by the application. Thanks to Krisztian Litkey for the original patch and the description above. In addition to implementing the new feature, this patch fixes a number of bugs in the parsing code.
* match: Match rule earlier, in SINK_INPUT_NEWMarc-André Lureau2011-04-231-22/+13
|
* match: Don't double free in case of missing table fileMarc-André Lureau2011-04-231-1/+0
|
* Fix up some double spacesMaarten Bosmans2011-03-181-1/+1
|
* Use PCRE if POSIX regex.h is not availableMaarten Bosmans2011-02-171-1/+6
|
* volume: Clamp volume to PA_VOLUME_MAXArun Raghavan2010-10-151-1/+1
| | | | | | 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.
* use pa_fopen_cloexec() where applicableLennart Poettering2009-10-301-1/+1
|
* sink: volume handling rework, new flat volume logicLennart Poettering2009-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | - We now implement a logic where the sink maintains two distinct volumes: the 'reference' volume which is shown to the users, and the 'real' volume, which is configured to the hardware. The latter is configured to the max of all streams. Volume changes on sinks are propagated back to the streams proportional to the reference volume change. Volume changes on sink inputs are forwarded to the sink by 'pushing' the volume if necessary. This renames the old 'virtual_volume' to 'real_volume'. The 'reference_volume' is now the one exposed to users. By this logic the sink volume visible to the user, will always be the "upper" boundary for everything that is played. Saved/restored stream volumes are measured relative to this boundary, the factor here is always < 1.0. - introduce accuracy for sink volumes, similar to the accuracy we already have for source volumes. - other cleanups.
* match: document how broken the module-match logic isLennart Poettering2009-08-191-0/+3
|
* core: introduce new 'reference' volume for sinksLennart Poettering2009-04-131-1/+1
| | | | | | | | | | | | | | | The reference volume is to be used as reference volume for stored stream volumes. Previously if a new stream was created the relative volume was taken relatively to the virtual device volume. Due to the flat volume logic this could then be fed back to the virtual device volume. Repeating the whole story over and over would result in a device volume that would go lower, and lower and lower. This patch introduces a 'reference' volume for each sink which stays unmodified by stream volume changes even if flat volumes are used. It is only modified if the sink volumes are modified directly by the user. For further explanations see http://pulseaudio.org/wiki/InternalVolumes
* Use LGPL 2.1 on all files previously using LGPL 2Colin Guthrie2009-03-031-1/+1
|
* add new module-augment-properties module for augmenting properties from ↵Lennart Poettering2009-02-051-1/+0
| | | | .desktop files
* when changing volume, store whether it is worth remembering or noLennart Poettering2009-01-271-1/+1
|
* match: add "key" argument to match different propertiesMarc-André Lureau2009-01-141-2/+11
|
* match: can now change properties alsoMarc-André Lureau2009-01-141-11/+42
|
* get rid of svn $ keywordsLennart Poettering2008-06-181-2/+0
|
* merge glitch-free branch back into trunkLennart Poettering2008-05-151-7/+10
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2445 fefdeb5f-60dc-0310-8127-8f9354f1896f
* tag modules that may only be loaded once at most especially, and enforce ↵Lennart Poettering2007-11-091-6/+5
| | | | | | that in the module loader git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2043 fefdeb5f-60dc-0310-8127-8f9354f1896f
* merge 'lennart' branch back into trunk.Lennart Poettering2007-10-281-11/+16
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1971 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Add copyright notices to all relevant files. (based on svn log)Pierre Ossman2007-02-131-0/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1426 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Huge trailing whitespace cleanup. Let's keep the tree pure from here on,Pierre Ossman2007-01-041-13/+13
| | | | | | | mmmkay? git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
* remove all occurences of Lennart Poettering2006-08-181-5/+5
| | | | | | | | | | | | pa_logXXX(__FILE__": and replace them by pa_logXXX(" git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1272 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * add new function pa_check_in_group()Lennart Poettering2006-07-191-1/+1
| | | | | | | | | | | | | * abstract credential APis a little bit by introducing HAVE_CREDS and a structure pa_creds * rework credential authentication * fix module-volume-restore and friends for usage in system-wide instance * remove loopback= argument from moulde-*-protocol-tcp since it is a superset of listen= and usually a bad idea anyway since the user shouldn't load the TCP module at all if he doesn't want remote access * rename a few variables in the jack modules to make sure they don't conflict with symbols defined in the system headers * add server address for system-wide daemons to the default server list for the the client libs * update todo git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1109 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * add new --system command line parameter to the daemon for running ↵Lennart Poettering2006-07-191-5/+1
| | | | | | | | | | | | PulseAudio as system-wide instance * add PA_ prefixes to all global #defines * modify auth-by-creds: define a new group "pulse-access" which is used for authentication * add proper privilige dropping when running in --system mode * create runtime directory once on startup and not by each module seperately git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1105 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * more s/pulseaudio/PulseAudio/ replacementsLennart Poettering2006-06-191-2/+2
| | | | | | | * name the per-user dir ~/.pulse (instead of .pulseaudio), just like /etc/pulse/ git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1039 fefdeb5f-60dc-0310-8127-8f9354f1896f
* big s/polyp/pulse/gLennart Poettering2006-06-191-15/+15
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1033 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * split pa_cstrerror() into its own file polypcore/core-error.[ch]Lennart Poettering2006-05-251-1/+1
| | | | | | | | * fix building of padsp * remove a warning when compiling padsp.c git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@972 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Wrap strerror() in a function that makes it thread safe and converts thePierre Ossman2006-05-221-1/+2
| | | | | | | output to UTF-8. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@945 fefdeb5f-60dc-0310-8127-8f9354f1896f
* split polypcore/util.[ch] into polypcore/core-util.[ch] and polyp/util.[ch]Lennart Poettering2006-05-171-2/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@917 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Move xmalloc to the public side (libpolyp).Pierre Ossman2006-05-171-1/+2
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@908 fefdeb5f-60dc-0310-8127-8f9354f1896f
* add proper locking when accessing the file match.tableLennart Poettering2006-05-171-1/+6
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@906 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * add new parameter to pa_open_config_file() to specify open modeLennart Poettering2006-05-141-2/+2
| | | | | | | | * modify pa_sink_input_new() to take initial volume settings as argument * call pa_sink_input_set_volume() when changing stream volume in protocol-esound.c to make sure that subscribe events are issued properly git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@858 fefdeb5f-60dc-0310-8127-8f9354f1896f
* change pa_log() and friends to not require a trailing \n on all logged stringsLennart Poettering2006-02-231-6/+6
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@574 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * rename polypcore/subscribe.[ch] to polypcore/core-subscribe.[ch] to avoid ↵Lennart Poettering2006-02-161-1/+1
| | | | | | | | | confusion with polyp/subscribe.[ch] * same for scache.[ch] git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@496 fefdeb5f-60dc-0310-8127-8f9354f1896f
* Reorganised the source tree. We now have src/ with a couple of subdirs:Pierre Ossman2006-02-161-0/+235
* daemon/ - Contains the files specific to the polypaudio daemon. * modules/ - All loadable modules. * polyp/ - Files that are part of the public, application interface or are only used in libpolyp. * polypcore/ - All other shared files. * tests/ - Test programs. * utils/ - Utility programs. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@487 fefdeb5f-60dc-0310-8127-8f9354f1896f