summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/sink-input.h
Commit message (Collapse)AuthorAgeFilesLines
* core: add an additional volume factor that is applied after resampling took ↵Lennart Poettering2009-09-111-2/+5
| | | | place
* core: move 'flags' field into 'pa_sink_input_new_data' structure so that ↵Lennart Poettering2009-08-281-2/+3
| | | | hooks can access it
* sink-input: extend comments on rewinding logic a bitLennart Poettering2009-08-271-1/+1
|
* object: speed up type verification by not relying on strcmp()Lennart Poettering2009-08-211-1/+1
| | | | | | | | | | | | | Instead of using string contents for type identification use the address of a constant string array. This should speed up type verifications a little sind we only need to compare one machine word instead of a full string. Also, this saves a few strings. To make clear that types must be compared via address and not string contents 'type_name' is now called 'type_id'. This also simplifies the macros for declaring and defining public and private subclasses.
* sink-input: add callbacks that are called whenever the mute/volume changesLennart Poettering2009-08-211-2/+10
|
* sink: volume handling rework, new flat volume logicLennart Poettering2009-08-191-9/+6
| | | | | | | | | | | | | | | | | | | | | | | - 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.
* core: add to FIXMEsLennart Poettering2009-08-161-0/+1
|
* core: make fixed latency dynamically changeableLennart Poettering2009-08-151-0/+4
| | | | | | | | | | | | | This of course makes the name 'fixed' a bit of a misnomer. However the definitions are now like this: fixed latency: the latency may change during runtime, but is solely controlled by the backend, the client has no influence. dynamic latency: the latency may change during runtime, influenced by the requests of the clients. i.e. fixed vs. dynamic is from the perspective of the client.
* core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPENDLennart Poettering2009-08-151-1/+2
|
* core: introduce pa_{sink_input|source_output}_fail_move()Lennart Poettering2009-08-151-1/+4
|
* core: add functions to query max_rewind/max_request values from streamsLennart Poettering2009-08-131-0/+4
|
* core: add assert macros for verifying calling contextLennart Poettering2009-08-131-0/+3
| | | | | | | This adds pa_assert_io_context() and pa_assert_ctl_context() in addition to a few related macros. When called they will fail when the current execution context is not IO resp. not control context. (aka 'thread' context vs. 'main' context)
* core: introduce new 'reference' volume for sinksLennart Poettering2009-04-131-2/+6
| | | | | | | | | | | | | | | 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
* introduce relative_volume field in sink_input and make use of it on sink ↵Lennart Poettering2009-04-081-1/+7
| | | | flat volume change
* add suspend_within_thread() callbacks to pa_sink_input/pa_source_outputLennart Poettering2009-04-071-0/+4
|
* various spelling fixesMaarten Bosmans2009-04-041-1/+1
|
* pass destination source/sink when moving streams so that we can access themLennart Poettering2009-04-011-4/+6
|
* Trigger move callback a little bit earlier so that no IO thread is runningLennart Poettering2009-03-301-1/+1
|
* introduce pa_sink_input_get_relative_volume()Lennart Poettering2009-03-201-0/+1
|
* Use LGPL 2.1 on all files previously using LGPL 2Colin Guthrie2009-03-031-1/+1
|
* allow sending meta/policy events to clientsLennart Poettering2009-02-121-0/+12
|
* make return value of pa_{sink_input|source_output}_update_proplist() voidLennart Poettering2009-02-051-1/+1
|
* add a 'volume factor' that is implicitly multiplied into the volume of a ↵Lennart Poettering2009-02-051-3/+4
| | | | sink input without being visible to the outside
* remove soft volume from pa_sink_input_new_info since it should be handled ↵Lennart Poettering2009-02-041-5/+4
| | | | internally and automatically by the sink input
* make a couple of functions return proper error codesLennart Poettering2009-02-031-2/+3
|
* implement PA_STREAM_FAIL_ON_SUSPEND logicLennart Poettering2009-02-031-0/+1
|
* when changing volume, store whether it is worth remembering or noLennart Poettering2009-01-271-5/+13
|
* move flat volume logic into the core. while doing so add n_volume_steps ↵Lennart Poettering2009-01-271-25/+19
| | | | field to sinks/sources
* store requested resampling method in a seperate field and use it when create ↵Lennart Poettering2009-01-271-1/+1
| | | | a new resampler after a move
* move sink input/source output move functions into two parts so that we can ↵Lennart Poettering2009-01-231-7/+9
| | | | start the move, delete the original sink, create a new sink, finish the move; similar for source outputs
* add new dont_rewind_render flag to allow quick starts of newly created streamsLennart Poettering2009-01-151-2/+3
|
* core: add source, si, so proplist_updateMarc-André Lureau2009-01-131-0/+1
|
* Implement new flags DONT_INHIBIT_AUTO_SUSPEND and START_UNMUTEDLennart Poettering2008-10-261-1/+2
|
* add new virtual function may_move_to to sink inputs/source outputs to allow ↵Lennart Poettering2008-10-211-1/+7
| | | | modules to forbid certain connections
* volume hooksMarc-Andre Lureau2008-10-071-0/+11
| | | | Signed-off-by: Lennart Poettering <lennart@poettering.net>
* save a bit of memoryLennart Poettering2008-08-181-9/+9
|
* Rework module-combine to work with glitch-free core; add new max_request ↵Lennart Poettering2008-06-201-7/+21
| | | | field to pa_sink
* get rid of svn $ keywordsLennart Poettering2008-06-181-2/+0
|
* fix a bad memory access pulsecore/client.cLennart Poettering2008-06-131-0/+7
| | | | git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2527 fefdeb5f-60dc-0310-8127-8f9354f1896f
* merge glitch-free branch back into trunkLennart Poettering2008-05-151-38/+75
| | | | 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-2/+16
| | | | | | | | | | | | - 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
* merge 'lennart' branch back into trunk.Lennart Poettering2007-10-281-35/+128
| | | | 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/+3
| | | | 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-11/+11
| | | | | | | mmmkay? git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1418 fefdeb5f-60dc-0310-8127-8f9354f1896f
* implement hook_source_ouput_new. For this I modified the ↵Lennart Poettering2006-08-131-1/+4
| | | | | | pa_source_output_new constructor to take a struct similar to what I already did for pa_sink_input_new() git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1250 fefdeb5f-60dc-0310-8127-8f9354f1896f
* remove pa_sink_input::variable_rate field since it has been folded into ↵Lennart Poettering2006-08-131-1/+0
| | | | | | pa_sink_input::flags git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1240 fefdeb5f-60dc-0310-8127-8f9354f1896f
* allow hooking into the process of creating playback streams. To implement ↵Lennart Poettering2006-08-131-13/+34
| | | | | | this I modified the pa_sink_input_new() signature to take a pa_sink_input_new_data structure instead of direct arguments. git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1237 fefdeb5f-60dc-0310-8127-8f9354f1896f
* comment which values in pa_{sink,source,sink_input,source_output} structures ↵Lennart Poettering2006-08-111-8/+8
| | | | | | may be NULL git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1204 fefdeb5f-60dc-0310-8127-8f9354f1896f
* * implement "hot" moving of playback streams between sinks ↵Lennart Poettering2006-07-291-1/+13
| | | | | | | | | (pa_sink_input_move_to()). * optimize the adjusting of the volume in pa_sink_input_peek() a little git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1168 fefdeb5f-60dc-0310-8127-8f9354f1896f
* fold the seperate variable pa_sink_input::playing into pa_sink_input::state ↵Lennart Poettering2006-07-281-5/+4
| | | | | | | | | | as state PA_SINK_INPUT_DRAINED. The following mappings hold: old PA_SINK_RUNNING + playing set = new PA_SINK_RUNNING old PA_SINK_RUNNING + playing not set = new PA_SINK_DRAINED git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1162 fefdeb5f-60dc-0310-8127-8f9354f1896f