Wim Taymans
10bc423819
impl-link: only recalc graph when reaching PAUSED upwards
...
Don't recalc when destroying the link (ACTIVE->PAUSED)
2020-10-13 10:19:41 +02:00
Wim Taymans
421a15939d
pulse: clear global on the stream when destroyed
2020-10-13 10:19:02 +02:00
Wim Taymans
969b7b6287
pipewire: clear log first, then remove plugins
...
Reset the logger first before we unload the plugins or else we might
try to log after we unloaded the logger plugin and crash.
2020-10-13 09:52:52 +02:00
Wim Taymans
50d07be7fc
impl-link: also stop checking if ACTIVE
2020-10-13 09:46:51 +02:00
Wim Taymans
f0a686e784
pipewire: make sure we clear everything in deinit
...
See #323
2020-10-09 19:59:24 +02:00
Wim Taymans
47ab075895
buffer: clarify data type mask
2020-10-09 17:39:32 +02:00
Wim Taymans
102583c550
Revert "impl-link: only emit active<->paused"
...
This reverts commit 857f7ca67f
.
Not a good idea. We should always notify about the steady state of
the link, which is PAUSED/ACTIVE or ERROR. the other ones are
intermediate and not so important.
2020-10-09 16:52:01 +02:00
Wim Taymans
857f7ca67f
impl-link: only emit active<->paused
2020-10-09 16:49:49 +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
391fa81fa8
impl-link: add an active state
...
Avoid emission of events for each state change.
Add an active state and aim to only emit events for paused<->active
state changed or error.
2020-10-09 16:43:31 +02:00
Wim Taymans
f67cbd7444
impl-link: don't notify when nothing changed
2020-10-09 16:42:30 +02:00
Wim Taymans
ea92df814c
node: avoid useless info events
...
If only the flags of the node changed, emit the info_changed signal so
that the client-node can update the flags but don't notify the
listeners, the flag is not included in that info.
2020-10-09 16:40:23 +02:00
Wim Taymans
f84eacdd5b
private: node and port flags are uin64_t
2020-10-09 16:33:23 +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
12e6dd89e2
client: register client global after update properties
...
This way we only expose the client after we have all the properties.
Also add a new CLIENT_ACCESS property that contains the desired
client access mode.
2020-10-09 13:31:22 +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
17843ae7cb
pulse-bridge: fix reply of record latency
...
Makes bluejeans in firefox work
2020-10-08 18:06:11 +02:00
Wim Taymans
fead5c18d6
pulse-bridge: fix state of source
2020-10-08 18:06:11 +02:00
Wim Taymans
3194d5ca81
pulse-bridge: add introspection of dummy sink/source
2020-10-08 18:06:11 +02:00
Wim Taymans
6f6337e732
pulse-bridge: support record streams
2020-10-08 18:06:11 +02:00
Wim Taymans
7c1fbf5bee
pulse-bridge: rework messages
...
Make recycled message blocks for receiving and sending data.
Implement async flushing out the output queue.
2020-10-08 18:06:11 +02:00
Wim Taymans
4ad085ef96
pulse-bridge: work more on timings
...
Fixes sync in firefox
2020-10-08 18:06:11 +02:00
Wim Taymans
ab4def7e5f
pulse: respect flags to set volume/mute
2020-10-08 18:06:11 +02:00
Wim Taymans
a4874abc46
pulse: restore volume and muted
2020-10-08 18:06:11 +02:00
Wim Taymans
c81021a742
channelmix: keep amount of volumes we parsed
2020-10-08 18:06:11 +02:00
Wim Taymans
630889493c
pulse-bridge: Update client properties
2020-10-08 18:06:11 +02:00
Wim Taymans
949f923b80
pulse-bridge: implement timing and corking
2020-10-08 18:06:11 +02:00
Wim Taymans
a536c38fbe
pulse: use send to avoid SIGPIPE signals
2020-10-08 18:06:11 +02:00
Wim Taymans
90b52b9ff4
pulse-bridge: add more commands
2020-10-08 18:06:11 +02:00
Wim Taymans
9dad175959
pulse-bridge: implement stream volume
...
Implement some more things.
2020-10-08 18:06:11 +02:00
Wim Taymans
7655aa7066
pulse-bridge: implement enough to play flatpak Spotify
2020-10-08 18:06:11 +02:00
Wim Taymans
d180b8d927
beginnings of pulse protocol
2020-10-08 18:06:11 +02:00
Wim Taymans
e7585bd7b8
acp: handle devices with no ports
...
Make sure we don't crash when there are no ports on a device.
See #321
2020-10-08 18:05:49 +02:00
Wim Taymans
5c048500cc
stream: normalize volumes when monitoring
2020-10-07 12:45:28 +02:00
Wim Taymans
9054cfcd8b
channelmix: remap channel volumes
...
When we receive volume updates with a different number of channels
than we are configured for, remap them to our number of channels.
This currently involves taking the average volume until we actually
have a channelmap associated with the volume updates.
See #320
2020-10-07 12:01:37 +02:00
Wim Taymans
932adc18f8
stream: clarify that timestamp is in nanoseconds
2020-10-07 12:00:53 +02:00
Wim Taymans
1d95b5bb5b
pulse: fix fragsize initialization
2020-10-07 12:00:31 +02:00
Wim Taymans
d027a02223
pulse: ask up to tlength bytes
...
pulseaudio does not ask more than this as well.
2020-10-05 17:13:42 +02:00
Wim Taymans
6f6dc8b63e
pulse: set stream READY after it is linked
...
Wait until we have linked the stream to a device or stream before
we emit the READY state. This is what pulseaudio expects.
Remove stream_index from disconnecting stream so that we don't
accidentally use it again. It is possible that we already created a
new stream with the same id before the old stream could complete the
disconnect.
2020-10-05 12:16:49 +02:00