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
Wim Taymans
bcaf7cd722
adapter: remove redundant set_active call
2020-10-05 12:16:46 +02:00
Wim Taymans
b05597cf6b
stream: make sure stream is in the right state
...
An adapter stream is usually created in the active state so deactive
it before export when requested.
2020-10-05 12:16:42 +02:00
Wim Taymans
7ee166f4c6
Makefile: trace children in valgrind
...
So that we get info for the session manager as well
2020-10-02 16:23:29 +02:00
Wim Taymans
6f2534f5ab
core: improve debug
2020-10-02 16:23:08 +02:00
Wim Taymans
9e3ae3a045
acp: improve debug
2020-10-01 13:27:08 +02:00
Wim Taymans
c0c439ff76
acp: avoid profile switch to the current profile
2020-10-01 13:23:20 +02:00
Wim Taymans
971236e77a
acp: don't fall back to the highest priority unavailable
...
Use the Off profile in case there are no yes/unknown profiles.
2020-10-01 13:23:20 +02:00
Wim Taymans
e394c5145a
acp: only emit profile change for current profile
...
When a port is plugged/unplugged, first update all the profile states
and then emit a profile change only for the current profile. This way
the device can look at all the updated profiles to select the best one.
2020-10-01 13:23:20 +02:00
Wim Taymans
38276d126c
acp: improve debug
2020-10-01 13:23:16 +02:00