summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/source.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary #includesMaarten Bosmans2011-06-221-1/+0
|
* capture: Remove support for synchronised capture streams.Colin Guthrie2011-06-221-33/+0
| | | | | | This was added to ensure symmetry between playback and recording streams code, but in reality this makes little sense practically speaking and thus it is removed.
* capture: Implement per-stream volume control for capture streams.Colin Guthrie2011-06-221-58/+935
| | | | | | | This piggy backs onto the previous changes for protocol 22 and thus does not bump the version. This and the previous commits should be seen as mostly atomic. Apologies for any bisecting issues this causes (although I would expect these to be minimal)
* capture: Add the passthrough format negotiation to capture streams.Colin Guthrie2011-06-221-0/+92
| | | | | This helps to keep the API more symmetrical and also potentially allows support for passthrough monitor sources at some point in the future.
* core: Suspend monitor when a sink enters passthrough modeArun Raghavan2011-05-021-1/+1
| | | | | | | | | | | In most cases it is expected that clients cannot consume compressed data from monitor sources, so we suspend the monitor source when the sink goes into passthrough mode. Eventually, when the extended API includes client notifications for changed formats, we should emit a notification on the monitor so that clients can decide what they want to do when this happens (disconnect or consume the data anyway).
* Fix up according to Coding StyleMaarten Bosmans2011-03-111-16/+16
| | | | Only whitespace changes in here
* core: Added new hooks: PA_CORE_HOOK_SOURCE_PORT_CHANGED and ↵Kim Therkelsen2011-02-251-0/+2
| | | | | | | | | | | PA_CORE_HOOK_SINK_PORT_CHANGED This allows modules to know when certain ports are changed. This will allow e.g. a filter module (or LADSAP) to only load when a certain port is used on the device (e.g. to only filter headphones and not normal speakers). (Comment from Colin Guthrie: This may also have use in UCM)
* core: Link virtual sinks and sources to their streams.Tanu Kaskinen2011-02-221-0/+1
| | | | | | | | | | | | | | | This change doesn't add any functionality in itself, but it will be useful in the future for operating on chains of sinks or sources that are piggy-backing on each other. For example, the PA_PROP_DEVICE_MASTER_DEVICE property could be handled in the core so that each virtual device doesn't have to maintain it separately. By using the origin_sink and destination_source pointers the core is able to see at stream creation time that the stream is created by a virtual device, and then update that device's property list using the name of the master device that the stream is being connected to. The same thing can be done also when the stream is being moved from a device to another, in which case the _MASTER_DEVICE property needs updating.
* suspend: Do not assert when checking for device suspended status and a ↵Colin Guthrie2010-10-011-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | stream is not linked. When looping through the streams on a given device checking to see if the stream is 'active' there should be no assert if the stream is not linked, it should simply be ignored. This assert can be hit if a sink and a sink input are both created and setup but the final put calls are left to the end as is done in module-ladspa-sink. While the order of the calls in module-ladspa-sink could be altered, we should deal gracefully with the way it is now and not complain about ending up in this state. A trigger case was trivial: 1. Load a ladspa-sink. 2. Play a stream and move it to it. 3. Unload the module, then reload it. 4. Due to module-stream-restore and module-suspend-on-idle, the hook callbacks will ultimately hit this assert. Thanks to Kim Therkelsen for highlighting this issue.
* core: always allow volume setting with single-channel pa_cvolumeLennart Poettering2009-08-311-3/+10
|
* core: initialize sink/source priorities automatically based on their proplistsLennart Poettering2009-08-291-0/+2
|
* core: add priority field to pa_sink/pa_sourceLennart Poettering2009-08-281-0/+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.
* source: rework volume handlingLennart Poettering2009-08-191-19/+26
| | | | | | | | | | | | | - drop the 'virtual_' prefix from s->virtual_volume since we don't distuingish between reference and real volumes for sources - introduce an accuracy for source volumes: if the hardware can control the volume "close enough" don't necessarily adjust the rest in software unless it is beyond a certain threshold. This should save a little bit of CPU at the expensive of a bit of accuracy in volume handling. - other minor cleanups
* core: introduce pa_{sink|source}_update_flags()Lennart Poettering2009-08-151-2/+16
|
* core: make fixed latency dynamically changeableLennart Poettering2009-08-151-18/+83
| | | | | | | | | | | | | 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: move rtpoll to thread_info sub structureLennart Poettering2009-08-151-5/+4
|
* core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPENDLennart Poettering2009-08-151-3/+2
|
* core: introduce pa_{sink_input|source_output}_fail_move()Lennart Poettering2009-08-151-5/+3
|
* core: add assert macros for verifying calling contextLennart Poettering2009-08-131-8/+58
| | | | | | | 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)
* ladspa/remap: make sure we process all requested rewinds unconditionallyLennart Poettering2009-08-071-3/+3
| | | | | | | In some situations a rewind request travelling downstream might be optimized away on its way and an upstream rewind processing might never come back. Hence, call _process_rewind() before each _render()just to make sure we processed them all.
* core: save volume/mute changes coming from the hardware automaticallyLennart Poettering2009-08-071-11/+11
| | | | | Volume changes coming from the lower layers are most likely changes triggered by the user, so let's save them automatically.
* core: be a bit more verbose when registering a sink/source failsLennart Poettering2009-06-181-0/+1
|
* alsa: rework mixer logicLennart Poettering2009-06-171-11/+110
| | | | | | | | | | | | Completely rework mixer logic. This now allows controlling a full set of elements from a single sink's volume slider/mute button. This also introduces sink and source "ports" that can be used to choose different input or output ports with the UI. (i.e. "mic"/"line-in" or "speaker"/"headphones". The mixer paths and device maps are now configered in external configuration files and can be tweaked as necessary.
* prop: introduce new PA_PROP_DEVICE_INTENDED_ROLES propertyLennart Poettering2009-06-081-0/+1
|
* core: make sure soft mute status stays in sync with hw mute statusLennart Poettering2009-06-081-1/+5
| | | | | | This should close rhbz #494851, mandriva bz #51234. Probably the same as our own #572, launchpad #352732.
* core: suppress suspending/resume when we are already in the right stateLennart Poettering2009-06-061-0/+3
|
* core: add a suspend cause flags fieldLennart Poettering2009-06-051-3/+13
|
* core: liberalize 99a6a4 a bitLennart Poettering2009-05-081-3/+7
| | | | | | While flags should generally be initialized by passing them to pa_{sink|source}_new() we make an exception for the volume related flags which may be initilized afterwards, but before _put().
* core: cache requested latency only when we are running, not while we are ↵Lennart Poettering2009-05-081-2/+5
| | | | still constructing
* core: make sure we fix up flags/monitor flags already in pa_sink_new() ↵Lennart Poettering2009-05-081-13/+8
| | | | instead of pa_sink_put()
* core: introduce pa_{sink,source}_set_fixed_latency()Lennart Poettering2009-05-081-0/+15
| | | | | This allows us to forward the fixed latency directly from the sink to the monitor source withut having to wait for pa_sink_put().
* core: add a seperate fixed_latency field for sinks/sources with fixed latencyLennart Poettering2009-04-101-10/+18
|
* core: memory leak, fix ref counting when moving streamsLennart Poettering2009-04-101-1/+5
|
* add suspend_within_thread() callbacks to pa_sink_input/pa_source_outputLennart Poettering2009-04-071-2/+19
|
* introduce pa_{sink|source}_get_latency_within_thread()Lennart Poettering2009-04-051-0/+26
|
* on monitor source be fine with any latency range set by the sinkLennart Poettering2009-03-251-1/+2
|
* simplify things and make sure timing setters can be called in most contextsLennart Poettering2009-03-251-16/+21
|
* introduce new flag that marks sinks/sources which can adjust the latency ↵Lennart Poettering2009-03-251-0/+10
| | | | dynamically
* make pa_source_set_max_rewind() work similar to pa_sink_set_max_rewind()Lennart Poettering2009-03-251-1/+17
|
* get rid of 'default' min/max latencies, simplify things by just having ↵Lennart Poettering2009-03-251-11/+4
| | | | absolute boundaries
* Allow calling pa_{sink|source}_update_proplist() without an actual proprlistLennart Poettering2009-03-241-2/+2
|
* simplify latency range by not allowing stored 'wildcard' ranges anymoreLennart Poettering2009-03-241-7/+15
|
* add functions that modules can call whenever they now the volume changedLennart Poettering2009-03-211-1/+26
|
* fix handling of _suspend_all(), return first failure error codeLennart Poettering2009-03-041-2/+9
|
* make suspend state of monitor source follow the suspend state of the sink it ↵Lennart Poettering2009-03-041-0/+18
| | | | belongs to
* Don't allow suspending of monitor sources.Lennart Poettering2009-03-041-0/+3
| | | | Closes #499
* Use LGPL 2.1 on all files previously using LGPL 2Colin Guthrie2009-03-031-1/+1
|
* add logic for initializing a useful icon nameLennart Poettering2009-03-011-0/+3
|
* additional validity checkLennart Poettering2009-02-191-0/+3
|