Commit graph

62 commits

Author SHA1 Message Date
Arun Raghavan
8666bcac65 pulse: Deal with header consitification in PulseAudio 13.0
The 13.0 release included changes to constify various parameters in the
public headers, which breaks our implementation. This adds an optional
const qualifier based on the version we're compiling against to deal
with that. There are some warnings caused by bad annotations upstream
which should be fixed separately.
2019-09-27 07:45:15 +05:30
Wim Taymans
2308318b39 use properties instead of parent_id 2019-08-16 22:10:08 +02:00
Wim Taymans
f9fce3cb30 stream: use the stream drain method to drain 2019-08-16 15:23:05 +02:00
Wim Taymans
e4a6782c48 stream: always require the amount of buffers 2019-08-13 18:47:30 +02:00
Wim Taymans
d5b13a1de2 stream: improve control update
When setting the volume, update the stream controls with the new values
and update the internal state with the control_info event.
2019-08-13 18:46:27 +02:00
Wim Taymans
69ad904b63 pulse: update per channel volumes
Use the channelVolume property to update the individual channel
volumes.
Update property values to match pulseaudio.

Handle the case where the number of channels changes. In pulse this
can normally never happen. Emit a remove and add of the node when
this happens as to not confuse pulse clients.
2019-08-12 12:34:54 +02:00
Wim Taymans
67c1dca897 Update for new adapter nodes 2019-07-02 17:38:16 +02:00
Wim Taymans
d00b9f1635 some format fixes 2019-06-07 17:03:49 +02:00
Wim Taymans
7d5e860d0c update for keys 2019-05-24 15:47:05 +02:00
Wim Taymans
f99480c66e stream: we can use minreq directly 2019-04-17 15:25:05 +02:00
Wim Taymans
093a068d34 stream: deactivate a stream when unlinked 2019-04-17 15:24:47 +02:00
Wim Taymans
571cb214d5 context: improve introspection
When subscribing, always bind to all objects we are interested in.
Wait until all info is collected and then reply to introspection
requests.
2019-03-15 20:31:20 +01:00
Wim Taymans
d379fa348b stream: ignore state changes when terminated 2019-03-08 17:01:38 +01:00
Wim Taymans
5f9200d9ee pulse: add SPA_EXPORT 2019-02-06 13:23:43 +01:00
Wim Taymans
386e5c966c pulse: update to new pod api 2019-01-16 11:04:22 +01:00
Wim Taymans
ac4ad7c8f1 stream: avoid void * arithmetics 2019-01-08 11:55:42 +01:00
Wim Taymans
bebfcf0190 stream: don't use buffer id 2019-01-07 17:54:31 +01:00
Wim Taymans
89fb73a949 fix signed and unsigned comparisons 2019-01-07 15:04:34 +01:00
Wim Taymans
9062145e13 implement more API
Implement the sink/source volume/mute api
2019-01-04 10:00:57 +01:00
Wim Taymans
96205687c5 stream: make sure we have a context
Make sure we ref the stream because else it would be freed when
disconnected and we can't get the context anymore.
2018-12-17 13:27:27 +01:00
Wim Taymans
41513f11f3 context: improve cleanup 2018-12-14 16:43:34 +01:00
Wim Taymans
b177f1d146 context: small cleanups 2018-12-14 16:41:19 +01:00
Wim Taymans
72b61f614a stream: handle monitor sources 2018-12-11 16:37:30 +01:00
Wim Taymans
c201a1e666 stream: enable monitor when PEAK_DETECT flag is set 2018-12-05 16:02:03 +01:00
Wim Taymans
84a7bf671c stream: connect to source and sink
Stream: also connect to the right source, try to convert the name to
index when lookup fails, just like what pulseaudio does.
Implement more proplist functions, add some more info to the stream.
stream: handle NULL format
Improve introspection of the sink_input and source_output name, this
should be the media.name when possible.
2018-12-04 11:50:23 +01:00
Wim Taymans
08d6071693 context: list audio devices as cards
Find the sink/source a stream is linked to
2018-11-28 11:13:21 +01:00
Wim Taymans
e8dfd22a6b stream: update for delay sign change 2018-11-09 15:25:39 +01:00
Wim Taymans
88a786fdad stream: use TIMESPEC_TO_USEC 2018-11-07 09:57:22 +01:00
Wim Taymans
a70b02064c stream: fix for target_id 2018-11-02 12:31:43 +01:00
Wim Taymans
2a1328533f stream: use pw_stream_update_properties 2018-10-23 16:50:17 +02:00
Wim Taymans
01aa9a5960 introspect: implement enough to make gnome-control-center work
We can see sources and sink and change the volume/mute of streams
2018-10-19 16:57:03 +02:00
Wim Taymans
faccc8d506 implement more methods
Implement extensions with dummies
Implement some more introspection, enough to make pavucontrol start
Implement volume changes on sink_input
2018-10-19 13:30:20 +02:00
Wim Taymans
b742d7533e stream: only queue buffer when filled
We need to completely fill the buffer before we queue the buffer. If we
don't do this, we might have reported a larger writable size than
what we actually can do and that makes clients fail.

This is not entirely completely correct because a client can expect to
have its buffer sent as soon as it completes the write. We should really
just queue the data in a separate queue when we run out of buffers.
2018-10-16 09:58:14 +02:00
Wim Taymans
f74a0fb9bd stream: implement _set_name 2018-10-16 09:56:12 +02:00
Wim Taymans
a00c00baed stream: maxlength / size is the number of buffers we want
tlength is what the server buffers and is of no importance for deciding
the number of buffers.
2018-10-09 17:31:06 +02:00
Wim Taymans
a91dea00d0 stream: implement cork and flush
Implement cork with _set_active and flush with the new _flush
method.
2018-10-09 16:39:19 +02:00
Wim Taymans
0870fc8673 stream: use latency of minreq/2
Because we don't buffer tlength on the server side, we need to use
half of the minreq as headroom in the server.
2018-10-09 16:37:49 +02:00
Wim Taymans
1509b51966 stream: handle channelmap in _new_extended 2018-10-09 16:37:23 +02:00
Wim Taymans
6a4da8a6b3 context: improve properties 2018-10-03 20:14:34 +02:00
Wim Taymans
520a9831e7 stream: fix connect by name
Look up the node id for the given device name and use that to connect.
2018-09-21 16:46:51 +02:00
Wim Taymans
6df567e6d4 stream: assume default channels when invalid 2018-09-19 17:30:59 +02:00
Wim Taymans
d41cde1bb8 stream: add channel mappings 2018-09-17 09:51:39 +02:00
Wim Taymans
814a9592f3 stream: update for API changes 2018-09-05 16:48:13 +02:00
Wim Taymans
5fb984a647 update for type changes 2018-08-29 09:54:54 +02:00
Wim Taymans
4c7fd98479 stream: update for api changes 2018-08-27 09:06:57 +02:00
Wim Taymans
be2dee53bc update to new types 2018-08-24 11:00:33 +02:00
Wim Taymans
ffa3b03982 stream: update for rate changes 2018-08-15 21:46:50 +02:00
Wim Taymans
1ea54ac9c5 pulse: improve remote sync
Add an explicit method to make the operation to a roundtrip to sync
pending actions.
Implement drain.
2018-08-02 10:31:29 +02:00
Wim Taymans
e64413fee1 stream: move some debug to trace 2018-07-31 21:38:01 +02:00
Wim Taymans
f73d640cb8 stream: fix read and write index for capture 2018-07-31 21:37:41 +02:00