Commit graph

3628 commits

Author SHA1 Message Date
Wim Taymans
2a5087a51e pulse-server: set client id 2020-11-05 10:46:19 +01:00
Wim Taymans
b472abe65b pulse-server: improve GET_SERVER_INFO
We don't need to bind to the core object again, we can just use the
events on the manager core.
We don't actually have info when the Core is added so don't try to
use it to get defaults for the client.
Use the manager core info in server info.
2020-11-05 10:36:13 +01:00
Wim Taymans
b8c7b36d3b protocol-native: do version check on HELLO
Always do the version check on HELLO because the connection could
have been moved from a v3 portal to a v0 client (like chrome)

Fixes #270
2020-11-04 16:13:53 +01:00
Wim Taymans
b659fa580a pulse-server: improve error reporting 2020-11-04 10:24:39 +01:00
Wim Taymans
9d598cde63 policy-node: always up or downmix to device format
Always remix the channels to match the ones on the device even if
that means upmixing.

This will make mono streams go to all inputs of the device instead
of just one.

Fixes #355
2020-11-04 09:47:20 +01:00
Wim Taymans
4ea95abd90 rtkit: improve error message 2020-11-04 09:42:33 +01:00
Wim Taymans
12cefd2461 pulse-server: handle no_remix flag 2020-11-03 21:01:24 +01:00
Wim Taymans
4f2b1c7684 media-session: avoid recursive rescan
A rescan can trigger a new rescan and with a blocking rountrip this
can recursively never end. Catch a rescan while rescanning and queue
it for when we end the current scan.

Fixes #364
2020-11-03 20:25:51 +01:00
Wim Taymans
8ca71060eb improve some debug 2020-11-03 18:04:42 +01:00
Wim Taymans
aeed0e3ea4 impl-node: fix cancel of previous state
Force a state change completed when canceled so that we can
perform the new state change. Fixes some hangs with fast pause/play.
2020-11-03 18:02:43 +01:00
Wim Taymans
efafb41525 pulse-server: debug messages when connection debug enabled 2020-11-03 12:22:35 +01:00
Wim Taymans
bba24b9ff8 pulse-server: return length of TAG_ARBITRARY
So that we don't have to know the length beforehand but can still
check it.
2020-11-03 12:14:09 +01:00
Wim Taymans
bc46ead017 client: emit check access in global context
Drop the current client context to check permissions. This restores the
previous behaviour and fixes the permissions set by the portal module.
This fixes screen sharing again.

Fixes #362
2020-11-03 09:35:51 +01:00
Wim Taymans
6962c27af9 media-session: disable bluez5 and pulse-bridge by default
Some distros don't patch this up which interferes with the pulseaudio
server.

Fixes #360
2020-11-03 09:11:20 +01:00
Wim Taymans
b63ea11834 pulse-server: create runtime directory if needed
Check if the pulse directory exists and create it if not.

Fixes #356
2020-11-02 20:05:18 +01:00
Wim Taymans
a7d522c743 protocol: fix sign in error checks
Our errors are -errno
2020-11-02 16:46:13 +01:00
Wim Taymans
c43026d93e don't handle EINTR and EAGAIN as the same
EAGAIN means a non-blocking operation would block and we should not
try again right away but leave the loop and wait instead.

See #358
2020-11-02 16:43:56 +01:00
Wim Taymans
e094640c7b handle EINTR and EAGAIN
Just do the call again instead of failing or logging an error.

Fixes #358
2020-11-02 14:51:07 +01:00
Wim Taymans
dd45a27d86 pulse-server: improve error message
See #356
2020-11-02 09:08:42 +01:00
Wim Taymans
94dbd4f9b8 warn about and fix some -Wpointer-sign warnings 2020-11-02 09:03:53 +01:00
Wim Taymans
165ad6e758 pulse-server: don't ever block
Handle EAGAIN and EWOULDBLOCK and go back into the poll loop instead
of blocking.
2020-10-31 21:21:00 +01:00
Wim Taymans
4bb859fb82 pulse-server: use name if description not set 2020-10-31 21:20:39 +01:00
Wim Taymans
98b1b8090d pulse-server: don't underrun when draining 2020-10-31 15:22:32 +01:00
Wim Taymans
12b4d6d965 impl-client: finish register when updating properties
Also handle client client registration when old clients
update the properties.
2020-10-30 12:56:58 +01:00
Wim Taymans
21bda3102b connection: do version check only once 2020-10-30 12:56:37 +01:00
Wim Taymans
0ef41252bd access: debug access control some more 2020-10-30 11:54:39 +01:00
Wim Taymans
58cc4848f2 client: do access check after receiving properties
After we receive the properties from the client, do the access check
and then pause client messages until the session manager sets
client permissions.

Without this we would do access control right after creating the
client which would block the client messages, which would then never
register the global of the client, which would leave the client
blocked forever because the session manager doesn't see the client
and can't configure permissions.

Fixes #352
2020-10-30 11:02:08 +01:00
Wim Taymans
3f24333315 module-access: update client permissions with full access
Set the current-client to NULL while updating the permissions of
a new client.
2020-10-30 11:00:37 +01:00
Wim Taymans
f953efdefb media-session: improve enabled/disabled options
Always use a default set of options and have enable/disable
add/remove options to/from it. Previously to enable just one option
you had to list all the other default enabled options as well.
2020-10-30 09:54:18 +01:00
Wim Taymans
0cea806447 stream: avoid recursive calls to _disconnect
Fixes #354
2020-10-30 09:13:38 +01:00
Wim Taymans
b50929d200 pulse-server: fix active_port check in volume/mute 2020-10-29 12:27:32 +01:00
Wim Taymans
7cd8d566f7 pulse-server: implement kill 2020-10-29 12:09:19 +01:00
Wim Taymans
c619d7851f pulse-server: add move and default sink/source
Clean up error handling, use errno everywhere and convert when needed.
2020-10-29 11:59:16 +01:00
Wim Taymans
686128a5dd pulse-server: implement set_sink/source_port 2020-10-28 20:05:13 +01:00
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