Tanu Kaskinen
969c7c80fe
core: Link virtual sinks and sources to their streams.
...
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.
2011-02-22 10:10:48 +00:00
Colin Guthrie
3de129f3ac
introspect: Include whether a stream is corked in the info callback.
2010-10-06 09:17:01 +01:00
Lennart Poettering
e7686a607d
core: dump proplist when creating stream similar to how we already to it for sinks/sources
2009-09-20 03:18:03 +02:00
Lennart Poettering
84eb6614eb
core: move 'flags' field into 'pa_sink_input_new_data' structure so that hooks can access it
2009-08-28 23:24:09 +02:00
Lennart Poettering
1a05d67f07
core: relex validity checks when destructing half-set up source outputs/sink inputs
2009-08-22 04:04:23 +02:00
Lennart Poettering
9abc010c93
object: speed up type verification by not relying on strcmp()
...
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.
2009-08-21 21:27:44 +02:00
Lennart Poettering
350a2bc846
core: make fixed latency dynamically changeable
...
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.
2009-08-15 00:48:14 +02:00
Lennart Poettering
e4db56bf07
core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPEND
2009-08-15 00:12:53 +02:00
Lennart Poettering
0989be13f6
core: introduce pa_{sink_input|source_output}_fail_move()
2009-08-15 00:03:50 +02:00
Lennart Poettering
5ee4069e9e
core: add functions to query max_rewind/max_request values from streams
2009-08-13 02:17:24 +02:00
Lennart Poettering
9a95fe49c8
core: add assert macros for verifying calling context
...
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)
2009-08-13 02:14:19 +02:00
Lennart Poettering
a4cea4e469
core: when applying delay memblockq take monitored sink latency into account
2009-04-14 01:04:17 +02:00
Lennart Poettering
4ee4a55617
core: use pa_{source|sink}_get_latency_within_thread() at one more place
2009-04-14 01:03:10 +02:00
Lennart Poettering
f7c229d8f9
core: add a seperate fixed_latency field for sinks/sources with fixed latency
2009-04-10 01:26:04 +02:00
Lennart Poettering
9ae8ca2c37
core: memory leak, fix ref counting when moving streams
2009-04-10 01:21:16 +02:00
Lennart Poettering
61b07768c2
add suspend_within_thread() callbacks to pa_sink_input/pa_source_output
2009-04-07 00:46:20 +02:00
Lennart Poettering
373b5efe51
properly account for seeks in the requested_bytes counter
2009-04-01 23:05:09 +02:00
Lennart Poettering
75a8d18285
pass destination source/sink when moving streams so that we can access them
2009-04-01 03:04:39 +02:00
Lennart Poettering
c2f6d090c7
don't access i->sink if it is not set
2009-04-01 03:03:20 +02:00
Lennart Poettering
7f5481ede0
simplify latency config functions a bit and make them callable in more contexts
2009-03-30 18:23:48 +02:00
Lennart Poettering
d04f3e1aef
Trigger move callback a little bit earlier so that no IO thread is running
2009-03-30 18:21:34 +02:00
Colin Guthrie
86dee05aec
Use LGPL 2.1 on all files previously using LGPL 2
2009-03-03 20:23:02 +00:00
Lennart Poettering
620bf84573
try to vacuum a little when nothing is going on
2009-02-25 09:13:19 +01:00
Lennart Poettering
00839ddaa6
make sure we check the sink status for PA_SINK_INPUT_FAIL_ON_SUSPEND only after module-suspend-on-idle had the chance to resume the device
2009-02-24 22:27:25 +01:00
Lennart Poettering
3bccb704b6
Allow passing a NULL proplist to pa_xxxx_update_proplist() to just fire a notification
2009-02-22 05:01:32 +01:00
Lennart Poettering
823431e447
allow sending meta/policy events to clients
2009-02-12 03:18:05 +01:00
Lennart Poettering
f42afc4883
make return value of pa_{sink_input|source_output}_update_proplist() void
2009-02-05 04:08:18 +01:00
Lennart Poettering
4cf82c74a1
merge in properties earlier to make identification of streams from hooks easier
2009-02-04 18:28:52 +01:00
Lennart Poettering
08800c35b0
make a couple of functions return proper error codes
2009-02-03 03:14:20 +01:00
Lennart Poettering
162e43b306
make a few functions return void where the retval isn't used/never != 0
2009-02-03 03:11:31 +01:00
Lennart Poettering
e47d03dea4
implement PA_STREAM_FAIL_ON_SUSPEND logic
2009-02-03 02:23:46 +01:00
Lennart Poettering
64b0543588
when changing volume, store whether it is worth remembering or no
2009-01-27 23:40:03 +01:00
Lennart Poettering
d5f46e824e
move flat volume logic into the core. while doing so add n_volume_steps field to sinks/sources
2009-01-27 04:39:07 +01:00
Lennart Poettering
9ba408415c
store requested resampling method in a seperate field and use it when create a new resampler after a move
2009-01-27 00:52:28 +01:00
Lennart Poettering
29cb778dcc
move sink input/source output move functions into two parts so that we can start the move, delete the original sink, create a new sink, finish the move; similar for source outputs
2009-01-23 22:38:30 +01:00
Lennart Poettering
cf24b57279
in most cases we can use i->core instead of i->sink->core and o->coure instead of o->source->core
2009-01-23 22:35:19 +01:00
Lennart Poettering
0f7954a9f5
don't include full path in driver name.
2009-01-22 00:15:19 +01:00
Lennart Poettering
47a2b17d01
make proplist inheritance scheme automatic and implicit
2009-01-15 20:27:07 +01:00
Lennart Poettering
29c7a28817
kill autoload stuff as planned
2009-01-15 20:07:13 +01:00
Lennart Poettering
344c934edb
maintain a list of sink inputs/source outputs as part of the pa_client object
2009-01-15 18:38:20 +01:00
Marc-André Lureau
2204bbebf2
core: add source, si, so proplist_update
2009-01-13 19:06:10 +02:00
Lennart Poettering
82f09b6d8f
Don't hit an assert when checking for idleness
...
Closes #398
2008-12-17 21:03:17 +01:00
Lennart Poettering
358824b330
add new virtual function may_move_to to sink inputs/source outputs to allow modules to forbid certain connections
2008-10-21 18:24:45 +02:00
Lennart Poettering
e1dbc75eb8
use pa_channel_map_init_extend() instead of pa_channel_map_init_auto() as channel map for sink inputs/source outputs in case no map is specified
2008-10-07 22:45:37 +02:00
Lennart Poettering
ae83483cf0
modernize a few checks
2008-10-07 22:44:43 +02:00
Lennart Poettering
f2164023fd
Add new option to disable remixing from/to LFE and set it to on by default
2008-09-05 16:04:42 +03:00
Lennart Poettering
450fe170a5
fix up latency before calling into stream code, to make sure we don't ask for too much data to early
2008-08-29 01:20:25 +02:00
Lennart Poettering
b7026bf248
add a few more gcc warning flags and fix quite a few problems found by doing so
2008-08-19 22:39:54 +02:00
Lennart Poettering
f57b9153a8
fix a few more copy/paste errors
2008-08-05 14:26:43 +02:00
Lennart Poettering
78236af734
fix copy/paste error
2008-08-04 23:33:29 +02:00