Commit graph

64 commits

Author SHA1 Message Date
David Henningsson
1893234063 protocol-native: Allow clients to know at what index underrun occurred
This patch introduces some extra protocol information, so protocol
version is bumped. This functionality is primarily needed to solve
a long standing issue in alsa-plugins, which should ignore underruns
if and only if it is obsolete, i e, if more data has been written to
the pipe in the meantime (which will automatically end the underrun).

BugLink: http://bugs.launchpad.net/bugs/805940
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2011-08-02 13:59:00 +01:00
Maarten Bosmans
ebf93404b6 Remove libpulse-browse and pabrowse 2011-06-24 10:08:11 +01:00
Colin Guthrie
35f99c6e31 device-restore: Add a new protocol extension for device-restore.
This simply exposes the formats that a device supports
via a simple protocol extension that will allow clients
to setup what a connected receiver supports format wise.
2011-06-22 23:12:19 +01:00
Colin Guthrie
dffc4d18d3 capture: Implement per-stream volume control for capture streams.
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)
2011-06-22 22:45:27 +01:00
Arun Raghavan
1404db3d47 format: Add some convenience API for setting properties
Adds functions to set sample format, rate, channels and channel map on a
format to make life easier for users of the API.
2011-05-15 10:09:35 +05:30
Arun Raghavan
8d076d0990 format: Extend properties to handle lists/ranges
This replaces the simple string used by pa_format_info's proplist with a
JSON string (accessed via new API only). This allows us to express lists
and ranges more cleanly, and embed type information for future
extensibility.

We use json-c for JSON parsing. This is a lightweight depdency (32 KB on
my system) and avoids the hassle of having to reinvent a JSON parser.

Also included is a test which verifies functionality and is
valgrind-clean.
2011-05-15 10:09:35 +05:30
Arun Raghavan
13a33abf45 format: Export pa_format_info_is_compatible in API
This allows clients to perform checks between formats as well.
2011-05-15 10:09:35 +05:30
Arun Raghavan
dedbc942ab stream: Add API to get a stream's pa_format_info 2011-05-02 11:55:38 +05:30
Arun Raghavan
8631f4e2c4 format: Add some convenience functions for printing 2011-05-02 11:55:38 +05:30
Arun Raghavan
54c391e6db format: Add convenience API to check if a format is PCM or not 2011-05-02 11:54:47 +05:30
Arun Raghavan
0ac2cfce6d core: Add extended stream API to support compressed formats
This is the beginning of work to support compressed formats natively in
PulseAudio. This adds a pa_stream_new_extended() that takes a format
structure, sends it to the server (=> protocol extension) and has the
server negotiate with the appropropriate sink to figure out what format
it should use.

This is work in progress, and works only with PCM streams. Actual
compressed format support in some sink needs to be implemented, and
extensive testing is required.

More details on how this is supposed to work is available at:
http://pulseaudio.org/wiki/PassthroughSupport
2011-05-02 11:54:43 +05:30
Arun Raghavan
c3839c7637 core: Add a pa_format_info structure
This will be used to represent the format of data provided by the client
for both compressed and PCM formats in a new extended API.
2011-05-02 10:17:20 +05:30
Vladimir Kokarev
d2c59354d5 volume: add pa_cvolume_inc_clamp function
added function to increase volume not exceeding specified limit
simply changed PA_VOLUME_MAX to 'limit' in pa_cvolume_inc
pa_cvolume_inc now calls pa_cvolume_inc_clamp with PA_VOLUME_MAX limit
2009-11-05 04:56:47 +01:00
Lennart Poettering
4538523a29 libpulse: introduce pa_context_get_tile_size() call 2009-10-28 23:26:48 +01:00
Lennart Poettering
d0b478e9a6 Merge remote branch 'coling/history' 2009-10-07 03:46:06 +02:00
Colin Guthrie
f9b2d6500b device-manager: Change the prefer/defer options to a single 'reorder' command.
We put in the devices from the wire into a hashmap and then add all like type device in the database
and then order them based on priority (with the ones specified on the wire always being in that order at
the top of the list.
2009-10-01 09:08:32 +01:00
Colin Guthrie
1e2d236b99 device-manager: Update exports 2009-10-01 09:08:31 +01:00
Colin Guthrie
0b3b037e22 device-manager: Export device-manager extension functions 2009-10-01 09:08:28 +01:00
Tanu Kaskinen
292d6dcb5f Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work 2009-08-19 09:20:02 +03:00
Lennart Poettering
cfef930036 volume: introduce pa_cvolume_{inc|dec}() 2009-08-19 02:32:36 +02:00
Lennart Poettering
d634555a3e volume: introduce pa_cvolume_min() and pa_cvolume_min_mask() 2009-08-19 00:56:16 +02:00
Lennart Poettering
8208214882 volume: add pa_cvolume_merge() call 2009-08-17 03:40:36 +02:00
Tanu Kaskinen
bcaba0b1b4 Merge branch 'master' of git://0pointer.de/pulseaudio into dbus-work
Conflicts:
	src/Makefile.am
	src/daemon/daemon-conf.c
	src/daemon/daemon.conf.in
	src/modules/module-stream-restore.c
	src/pulse/client-conf.c
	src/pulsecore/namereg.c
2009-08-16 21:25:48 +03:00
Tanu Kaskinen
1457df40ee proplist: New function: pa_proplist_equal() 2009-08-09 07:59:06 +03:00
Lennart Poettering
e02e0259e5 client: include zerocopy write calls in map file 2009-07-23 20:00:08 +02:00
Marc-André Lureau
0955e3d45b Base mainloop on pa_rtclock_now()
Move the mainloop to monotonic based time events.

Introduces 4 helper functions:
pa_{context,core}_rttime_{new,restart}(), that fill correctly a
timeval with the rtclock flag set if the mainloop supports it.

Both mainloop-test and mainloop-test-glib works with rt and timeval
based time events. PulseAudio and clients should be fully functional.

This patch has received several iterations, and this one as been
largely untested.

Signed-off-by: Marc-André Lureau <marca-andre.lureau@nokia.com>
2009-06-20 17:29:31 +03:00
Marc-André Lureau
125c528896 pulse: move pa_rtclock_now in pulsecommon 2009-06-20 17:29:08 +03:00
Lennart Poettering
914ef89e55 libpulse: implement client side for sink/source port selection commands 2009-06-17 04:54:11 +02:00
Lennart Poettering
d9939690ed channelmap: implement pa_channel_position_from_string() 2009-06-17 03:05:30 +02:00
Lennart Poettering
64b0f38b67 volume: implement functions for multiplicating a cvolume with a scalar 2009-06-17 03:04:21 +02:00
Lennart Poettering
8b180b6368 volume: implement pa_cvolume_{scale|max|avg}_mask() 2009-05-25 23:55:44 +02:00
Lennart Poettering
5f2d848d8e map-file: add missing channel map/cvolume position functions 2009-05-25 23:54:08 +02:00
Lennart Poettering
01fa34ba8a channelmap: introduce pa_channel_map_mask() and pa_channel_position_mask_t 2009-05-25 23:51:34 +02:00
Lennart Poettering
261a4830fb sample: introduce pa_proplist_setp() 2009-05-25 23:50:18 +02:00
Lennart Poettering
346a708c2c sample: introduce pa_sample_format_is_{le,be,ne,re}() 2009-05-25 23:49:47 +02:00
Lennart Poettering
0aa99c48d0 add buffer_attr callback stuff to exported symbol list 2009-04-01 00:33:40 +02:00
Lennart Poettering
823431e447 allow sending meta/policy events to clients 2009-02-12 03:18:05 +01:00
Lennart Poettering
0fc59e4585 add new API pa_ascii_valid(), pa_ascii_filter() 2009-02-04 17:11:56 +01:00
Lennart Poettering
ce76216bce add pa_sample_size_of_format() 2009-02-04 17:10:15 +01:00
Lennart Poettering
543115ae17 add new API pa_cvolume_compatible_with_channel_map() 2009-02-03 21:15:32 +01:00
Lennart Poettering
b979ab3948 implement pa_channel_map_can_fade 2009-01-31 01:17:09 +01:00
Lennart Poettering
1b53f8297f implement pa_cvolume_{get|set}_fade 2009-01-30 00:22:59 +01:00
Lennart Poettering
4e31e00b63 implement pa_cvolume_scale() 2009-01-27 00:47:07 +01:00
Lennart Poettering
e52c5ea68a implement new API functions pa_channel_map_can_balance(), pa_channel_map_to_name() and pa_channel_map_to_pretty_name() 2009-01-27 00:46:39 +01:00
Lennart Poettering
04e9214065 export pa_channel_map_superset() 2009-01-20 21:37:23 +01:00
Lennart Poettering
a65c2c7336 add client API for querying card information 2009-01-20 03:25:29 +01:00
Lennart Poettering
723d71a021 add api for manipulating volume balances 2009-01-19 21:45:58 +01:00
Lennart Poettering
a45f971e43 add pa_proplist_to_string_sep() 2009-01-17 01:59:37 +01:00
Lennart Poettering
cd45cd9e3e include new proplist functions in export list 2009-01-14 00:07:32 +01:00
Marc-André Lureau
01f71ac7a1 libpulse: add proplist_from_string 2009-01-13 16:59:46 +02:00