Wim Taymans
aea7ace124
pulse-server: keep track of requested bytes
...
Keep track of the amount of bytes we already requested from the client
and don't ask for those again.
Fixes initial hickups in firefox and others.
2020-10-20 15:57:18 +02:00
Wim Taymans
9abc7993e1
pulse-server: fix props update
2020-10-20 13:18:54 +02:00
Wim Taymans
ae31ee92e7
pulse-server: free the client streams on disconnect
2020-10-20 11:02:22 +02:00
Wim Taymans
425abbf3e9
pulse-server: make sure messages are freed
...
don't leak the command messages.
Fixes #337
2020-10-20 11:01:17 +02:00
Wim Taymans
389a0eee48
pulse-server: clean up when the context is destroyed
2020-10-20 10:46:08 +02:00
Wim Taymans
0d9ae9d226
pulse-server: avoid SIGFPE when no format is given
...
Error out for now until we parse the format array.
2020-10-20 09:43:43 +02:00
Wim Taymans
925cc9b487
pulse-server: implement drain
2020-10-14 17:42:52 +02:00
Wim Taymans
58db8ca435
pulse-server: add a monitor for the sink
2020-10-14 16:45:46 +02:00
Wim Taymans
348110e58c
pulse-server: don't send error on connection error
2020-10-14 15:45:25 +02:00
Wim Taymans
c92ce17a9f
pulse-server: tweak minreq and fragsize
...
Use time instead of samples to calculate the min
2020-10-14 15:44:52 +02:00
Wim Taymans
2ddcb7b002
pulse-server: convert MEDIA_ROLE property
2020-10-14 14:57:24 +02:00
Wim Taymans
8f953dfdde
pulse-server: connect in the set_client_name
...
connect after we get the client_name call so that we have all
the client properties.
2020-10-09 16:44:55 +02:00
Wim Taymans
0e3198272b
remote-node: only update changed fields
2020-10-09 16:31:17 +02:00
Wim Taymans
85977634c1
client-node: only add props and params when mask is set
2020-10-09 16:30:00 +02:00
Wim Taymans
8b70a83c96
pulse-server: improve server registration
...
Take a list of addresses to listen on.
2020-10-09 13:31:22 +02:00
Wim Taymans
5b8a52cc78
pulse-server: cleanup servers
2020-10-09 13:31:22 +02:00
Wim Taymans
13dfa9d64b
pulse-server: update volume and mute for record streams
2020-10-08 19:36:12 +02:00
Wim Taymans
680f8bc645
pulse-server: set more flags
2020-10-08 19:35:58 +02:00
Wim Taymans
71e3052a33
pulse-server: reuse the socket
2020-10-08 18:06:12 +02:00
Wim Taymans
d44fdabea1
pulse-server: send messges when killed and disconnected
2020-10-08 18:06:12 +02:00
Wim Taymans
fde36ac6c2
pulse-server: use at least MIN_SAMPLES of samples per buffer
2020-10-08 18:06:12 +02:00
Wim Taymans
d01586bfa5
pulse-server: support network connections
2020-10-08 18:06:11 +02:00
Wim Taymans
177e897a88
pulse-server: pass data with a ringbuffer
...
Implement the process function from the RT thread and use a ringbuffer
to pass samples around.
2020-10-08 18:06:11 +02:00
Wim Taymans
138e61138f
pulse: resize message dynamically
2020-10-08 18:06:11 +02:00
Wim Taymans
f0102fd490
pulse: move pulse protocol to module
2020-10-08 18:06:11 +02:00
Wim Taymans
bcaf7cd722
adapter: remove redundant set_active call
2020-10-05 12:16:46 +02:00
Wim Taymans
e9fd38512e
node: improve debug
2020-09-17 10:34:42 +02:00
Wim Taymans
eaa08e209f
protocol-native: remove mainloop hook only once
2020-09-15 18:00:08 +02:00
Wim Taymans
1a2e783a6f
protocol-native: keep client around while processing
...
When we process the messages of a client, keep the client around
because some callback might have disconnected and tried to free
us.
2020-09-15 13:54:50 +02:00
George Kiagiadakis
613824ab0b
metadata: set bound id on the exporting resource
2020-08-31 15:57:52 +03:00
Wim Taymans
39513fb681
protocol-native: fix error reporting
...
Don't say that there is no runtime directory set when there is but
the server is not running.
Simplify things by first trying to connect to the user runtime directory
when set and then try the system directory. There is no need to manually
check the existance of the socket, connect wil that that and set the
appropriate error.
2020-08-21 11:15:24 +02:00
Jonas Holmberg
3e7609dcaf
protocol: Add system runtime directory for clients
...
Add /run/pipewire to the list of runtime directories so that clients can
connect to the system service without specifying runtime directory.
If the otherwise chosen directory (e.g. the user home directory) doesn't
contain any socket but /run/pipewire does, the latter will be used.
2020-08-19 17:46:50 +00:00
Wim Taymans
35534baf9d
remote-node: clear up mix structures when port is removed
2020-08-19 11:23:16 +02:00
Emmanuel Gil Peyrot
14fdf07e8f
Run codespell on the entire codebase
...
This tool detects and fixes common English spelling mistakes, with
generally very few mistakes.
Here is the command I used to generate this commit. There were a few
changes that had to be done manually, and of course adding the ignore
file:
```shell
codespell -I .codespell-ignore -x .codespell-ignore -w
```
I didn’t add it to the CI, but this would be a good place for it.
2020-08-17 17:16:31 +00:00
Wim Taymans
0955ecc4b0
client-node: avoid useless warnings
...
Mostly useless warnings while shutting down.
2020-08-10 18:15:14 +02:00
Wim Taymans
fb76f484a9
remote-node: also send spa_flags
2020-08-10 16:45:44 +02:00
Wim Taymans
5fda46fdb9
remote-node: activate node after init
...
Activate the node after we successfully created a proxy and
initialized it.
2020-08-07 11:52:35 +02:00
Wim Taymans
e5f85d6a4c
remote-node: clean node on error
2020-08-07 11:52:14 +02:00
Wim Taymans
f4e8ebab51
improve debug and error messages
2020-08-07 10:47:18 +02:00
Wim Taymans
8b2617227a
client-node: improve debug
2020-08-06 17:59:58 +02:00
Wim Taymans
8a9bb9dabb
Use fcnt F_DUPFD_CLOEXEC to dup an fd
...
Closes #38
2020-08-06 11:08:20 +02:00
Wim Taymans
469dff0153
use global_update_keys
...
First set the properties in the object itself and then copy them
over to the global. This ensure that the global properties are
also in the object and makes code a bit cleaner.
It also make it possible to use the global id to make the property
values unique, if we want to later .
2020-08-05 12:55:33 +02:00
Wim Taymans
d57da19f26
client-device: first set implementation, then register
...
Setting the implementation updates the properties so that we
have more info when creating the global.
2020-08-03 18:11:12 +02:00
Wim Taymans
6f2e274b15
protocol: add a few more options for XDG_RUNTIME_DIR
...
PIPEWIRE_CORE can be used to specify a server name.
PIPEWIRE_REMOTE can be used to specify what server name to
connect to.
Either use the absolute path of the name to create and connect
to a server, or use a relative path. For a relative path, the
server name will be completed by prefixing the following paths
in order:
PIPEWIRE_RUNTIME_DIR environment variable,
XDG_RUNTIME_DIR environment variable,
HOME environment variable,
USERPROFILE environment variable,
home directory as stored in the password database.
Fixes #259
2020-07-31 12:46:58 +02:00
Wim Taymans
91d4806611
permission: add some helpers
...
Add PW_PERM_ALL as a shortcut for all permissions
Add PW_PERMISSION_FORMAT and PW_PERMISSION_ARGS to nicely format
permissions.
2020-07-30 16:26:29 +02:00
Wim Taymans
8db9a2741b
metadata: only allow setting metadata on objects we can see
...
Allow a client to only set metadata on objects that it has
read access to.
2020-07-30 15:30:13 +02:00
Wim Taymans
a5ec68e61c
metadata: only set default name when not already set
2020-07-30 14:28:11 +02:00
Wim Taymans
ba8522aac9
metadata: we need W permission to set and clear properties
2020-07-30 14:27:35 +02:00
Wim Taymans
e32a7a8d65
make some errors into debug
...
With the debug and return value we can delay writing error messages
in the log until we really need to.
2020-07-29 11:30:11 +02:00
Wim Taymans
6530c694c9
protocol: debug server we connect to
2020-07-23 20:12:25 +02:00