Commit graph

3444 commits

Author SHA1 Message Date
Wim Taymans
22dcd87de9 pulse-server: implement set_card_profile 2020-10-28 19:39:02 +01:00
Wim Taymans
1a2349c162 pulse-server: implement set mute 2020-10-28 18:08:56 +01:00
Wim Taymans
4d42a83fb9 pulse-server: implement volume on sink/source 2020-10-28 17:57:53 +01:00
Wim Taymans
5862ce606c pulse-server: mark some unimplemented commands 2020-10-28 16:57:57 +01:00
Wim Taymans
af0d6e5354 pulse-server: refactor some more 2020-10-28 16:48:46 +01:00
Wim Taymans
d518e02b19 pulse-server: refactor card profiles parsing 2020-10-28 15:20:36 +01:00
Wim Taymans
0320eca79e pulse-server: add port_type and availability-group 2020-10-28 12:18:26 +01:00
Wim Taymans
458946177e pulse-server: collect device ports and volume from card params 2020-10-28 10:53:12 +01:00
Wim Taymans
15f8b7aa4a pulse-server: parse HARDWARE props 2020-10-28 10:52:35 +01:00
Wim Taymans
cd74fd54de core: debug bound_id of proxy 2020-10-28 10:51:55 +01:00
Wim Taymans
27e06c66fd pulse-server: add dummy sink/source port iteration 2020-10-27 18:01:28 +01:00
Wim Taymans
5d7d4d3b63 pulse-server: copy client properties to stream 2020-10-27 17:09:30 +01:00
Wim Taymans
1ec00e37fc pulse-server: set source and sink flags 2020-10-27 17:09:06 +01:00
Wim Taymans
66cf4e68d5 pulse-server: use EnumFormat as fallback
Use a fixated format and position from EnumFormat as a fallback.
2020-10-27 15:42:48 +01:00
Wim Taymans
124b1221a6 pulse-server: add more introspection
Emit new/change/remove events
Handle suspended state of peer
Handle direct_on_input record streams.
Place the tag in error messages
2020-10-27 14:57:15 +01:00
Wim Taymans
2bf5cfa2f7 pulse-server: fill volumes and state 2020-10-27 10:12:27 +01:00
Wim Taymans
3c2b58d192 pulse-server: fill sink format 2020-10-27 09:00:11 +01:00
Wim Taymans
496f3842be pulse-server: small cleanup 2020-10-27 08:59:53 +01:00
Wim Taymans
51328af0e1 pulse-server: collect node params 2020-10-27 08:59:28 +01:00
Wim Taymans
5ddd6f0db9 pulse-server: fill more card info 2020-10-26 20:53:54 +01:00
Wim Taymans
4f63f37f00 pulse-server: collect device params 2020-10-26 20:53:34 +01:00
Wim Taymans
fa7c1ad169 pulse-server: set peer_name and id for monitors 2020-10-26 18:29:15 +01:00
Wim Taymans
8759ceb551 pulse-server: handle monitor sources 2020-10-26 18:10:05 +01:00
Wim Taymans
c49771150c pulse-server: fill in source-output/sink-input peers 2020-10-26 16:59:46 +01:00
Wim Taymans
11ee5ca54c pulse-server: fill in monitor names 2020-10-26 16:59:30 +01:00
Wim Taymans
fd16eb450a pulse-server: fill linked sink/source in create_stream reply 2020-10-26 16:39:49 +01:00
Wim Taymans
1df7db5301 link: also add node id to link props 2020-10-26 16:39:28 +01:00
Wim Taymans
a372e4e90e pulse-server: add more introspection
Add default nodes support and subscription events when it changes.
Fix stream id.
Fix node lookup.
Fix node volume.
2020-10-26 13:28:45 +01:00
Wim Taymans
fdf3485902 pulse-server: add sink/source sink_input/source_output introspect 2020-10-25 19:51:42 +01:00
Wim Taymans
02d04c63ea pulse-server: introspect cards 2020-10-25 16:24:11 +01:00
Wim Taymans
0ac839fce4 pulse-server: improve error reporting 2020-10-25 15:51:46 +01:00
Wim Taymans
1cbad89862 pulse-server: add introspection of clients and modules
Add manager object to collect object info
Wait for object info until completing client connect
Implement clients and modules list and info.
2020-10-25 15:28:42 +01:00
Wim Taymans
952326323e policy-node: also allow node name as NODE_TARGET 2020-10-24 15:50:09 +02:00
Wim Taymans
a5656777e0 stream: Use the control parent type as container
Some controls (channelVolumes) list themselves as Float but are stored
in an array, as can be found from the type info. Use this info to
set channelVolumes with 1 channel.

fixes some assertions like pa_pod_is_array(pod)' failed at
../pipewire/spa/include/spa/pod/iter.h:334 spa_pod_get_array()
2020-10-23 15:29:51 +02:00
Wim Taymans
c62b27ec75 pulse-server: handle under/overrun
Make sure we don't report underrun for the first time we pull data.
Send STARTED message when we leave the underrun state
Send UNDERFLOW when we enter the underrun state
Count underrun when corked.
Pass process stats back to the mainloop after process.
Decrease the pending length when we get underrun so that we can request
more data.
2020-10-23 12:59:53 +02:00
Wim Taymans
1ceb902b76 pulse-server: convert between client cubic volume and linear 2020-10-23 09:36:01 +02:00
Jan Grulich
743cf58fb7 Define SPA_FALLTHROUGH to make fall-through annotations work for all compilers
This is needed for example for Clang compiler which uses different
annotations than GCC. It will make WebRTC to happily use PipeWire
since the spa library is header-only and WebRTC defaults to use
Clang with -Wimplicit-fallthrough.
2020-10-22 13:31:19 +02:00
Wim Taymans
5e325f636c impl: use _ALL change_mask for everything
Instead of ~0
2020-10-22 10:59:04 +02:00
Wim Taymans
723ebcf438 protocol-native: only send properties when in change_mask
Only send the properties when the change mask includes them.
This reduces the message size.
2020-10-22 10:57:43 +02:00
Wim Taymans
398dc3055b context: improve profile parsing
First parse the profile into a strv so that we have a copy of the
profiles and it can't change when the original string (in properties
or environment) gets changed.

See #345
2020-10-21 18:09:34 +02:00
Wim Taymans
2193d03eab pulse-server: handle the case with record from monitor
Also handle the case where the client asks to record from the monitor
source directly.
2020-10-21 17:09:15 +02:00
Wim Taymans
d55bc1eb86 keys: add PW_KEY_STREAM_CAPTURE_SINK
Add a property for capture stream to signal that they would like
to capture the output (monitor) of the default sink instead of the
default source.
Check the desired device we would like to capture from and handle
the capture from the sink by monitoring the monitor source.
2020-10-21 17:00:49 +02:00
Wim Taymans
37b39135e9 pulse-server: improve find device by name
Also find the device by name if the name contains a string of the
index.
2020-10-21 16:38:30 +02:00
Wim Taymans
a2c70781a3 media-session: use rtkit for session manager data thread 2020-10-21 16:36:37 +02:00
Wim Taymans
25e4f2088c policy-node: also handle the single stream move 2020-10-21 15:39:37 +02:00
Wim Taymans
bfac6f04db policy-node: avoid rescan when moving a node
When we are moving a node, the node becomes unlinked temporarily.
Make sure the rescan code doesn't try to link it to a node
meanwhile.

Fixes #344
2020-10-21 15:27:50 +02:00
Gleb Popov
fc18a8ffbd Fix build on FreeBSD. 2020-10-21 11:33:16 +00:00
Wim Taymans
64913f4c7c protocol-native: ref the client while emiting error
Increase the client refcount while we emit an error to make sure
it doesn't get destroyed in the callbacks.

See #340
2020-10-21 13:25:00 +02:00
Wim Taymans
48d1b8d57d pulse-server: fix property key remove 2020-10-21 12:03:45 +02:00
Wim Taymans
66173e4257 pulse-server: refactor stream property fixup 2020-10-21 12:03:13 +02:00