Wim Taymans
55bd34c9e7
pulse-server: always ask for tlength samples after flush
2020-11-16 15:47:13 +01:00
Wim Taymans
dcda6c259f
pulse-server: send drain only once
2020-11-16 15:42:04 +01:00
Wim Taymans
af41e3423d
pulse-server: handle recv of 0 bytes
...
0 bytes from recv means EOS and we can disconnect the client instead
of looping forever.
2020-11-16 15:36:51 +01:00
Wim Taymans
0e34c552e9
stream: reset counters to 0 when flushing
2020-11-16 15:19:27 +01:00
Wim Taymans
0d9cc9e36e
loop: always place the invoke item in the queue
...
Always place the invoke item in the queue and then either signal the
other thread or flush the queue when not already flushing.
2020-11-16 15:16:20 +01:00
Wim Taymans
9f9be7d7f2
pulse-server: clean up killed and errored streams
...
Make a stream in error or unconnected as done and run the cleanup
loop to destroy them. Fixes leaks caused by pavucontrol.
2020-11-16 13:31:15 +01:00
Wim Taymans
6fa622d2d9
policy-node: only reconnect to given path_id
...
When the node is not found and we are not allowed to reconnect to
something else, error.
2020-11-16 13:28:35 +01:00
Wim Taymans
1d3e6b6772
pulse-server: map some properties
...
Fixes the icon names.
See #377
2020-11-16 11:29:07 +01:00
Wim Taymans
78ab2c3cad
pulse-server: pass right object to TAG_PROPLIST
2020-11-16 11:10:41 +01:00
Wim Taymans
0ff7321a65
pulse-server: send right id in PLAY_SAMPLE reply
...
Also handle errors.
2020-11-15 21:02:49 +01:00
Wim Taymans
f42da492f9
warn about lock just once
2020-11-14 21:21:20 +01:00
Wim Taymans
80e063c6bc
pulse-server: add duration to sample
2020-11-14 13:36:26 +01:00
Wim Taymans
8f1eed6ab1
pulse-server: implement sample introspection
2020-11-14 13:31:07 +01:00
Wim Taymans
827d3ff271
pulse-server: set refcount on sample
2020-11-14 13:30:35 +01:00
Georges Basile Stavracas Neto
ee82bfe5fb
pulse-server: Correctly unref sample
...
Decrease the actual ref counter, instead of the pointer
value.
2020-11-13 21:29:22 -03:00
Wim Taymans
13a1049abf
pulse-server: also handle @DEFAULT_*@ in GET_*_INFO
2020-11-13 20:20:33 +01:00
Wim Taymans
b7b7c3817e
pulse-server: use cleanup event
...
Signal event to trigger cleanup from places where we are not allowed
to destroy objects, like from their signals.
2020-11-13 19:33:12 +01:00
Wim Taymans
b447167339
pulse-server: actually play the sample from the cache
2020-11-13 18:19:56 +01:00
Wim Taymans
1d8bef1133
pulse-server: fix check type, then check info
...
If the object is not of the right type, the info might not be of
the right type and we should not deref it.
2020-11-13 17:38:23 +01:00
Wim Taymans
b8b2ce6ba9
loop: always wake up blocking items
...
We should always wake up the blocking items if we scheduled the
item.
2020-11-13 16:50:23 +01:00
Wim Taymans
8b9d398df6
pulse-server: implement sample cache
2020-11-13 13:28:46 +01:00
Wim Taymans
22cec7823e
pulse-server: skip objects being created
...
Skip iterating over objects that still have pending updates.
Make sure we have all info and properties before we process
objects.
Fixes #376
2020-11-13 09:52:02 +01:00
Wim Taymans
041d1a142d
Add commented out option to start pipewire-pulse
2020-11-12 17:43:42 +01:00
Wim Taymans
ca2ea2db4b
pulse-server: add more errno to error mappings
2020-11-12 17:37:39 +01:00
Wim Taymans
798bcc10b1
pulse: add a small pulseaudio daemon
...
Add a small application that loads the pulse server and makes it
listen on the pulseaudio socket.
Add some systemd activation files to start the service.
2020-11-12 16:53:55 +01:00
Wim Taymans
10207456f0
media-session: don't start pulse-bridge automatically
...
Don't start the pulse-bridge automatically because we don't
know what socket to listen on.
Also, listen by default on a safe socket, not used by pulseaudio.
2020-11-12 16:50:24 +01:00
Wim Taymans
024b9dc0ca
pulse-server: remove unused code
...
We already checked the systemd sockets above and never call is_stale
for them.
2020-11-12 15:58:42 +01:00
Wim Taymans
044876b51c
pulse-server: improve error message
2020-11-12 15:44:05 +01:00
Wim Taymans
4eb3cc37ea
pulse-server: add socket activation
2020-11-12 15:35:35 +01:00
Wim Taymans
346e35eed5
deprecate the libpulse replacement
...
Don't build by default, update the README
With pulse-server we are more flexible and compatible and we don't
have to (badly) reimplement libpulse anymore.
2020-11-12 15:18:04 +01:00
Wim Taymans
5bfc3b90ef
pulse-server: improve error log
2020-11-12 15:13:33 +01:00
Wim Taymans
34cc13a60c
pulse-server: set the right error when socket is busy
2020-11-12 14:54:58 +01:00
Wim Taymans
5ebb95a346
pulse-server: improve debug, add client name
2020-11-12 13:33:25 +01:00
Wim Taymans
593c183166
pulse-server: improve stale socket detection
...
Only declare stale when ECONNREFUSED and not socket activated.
2020-11-12 13:02:18 +01:00
Wim Taymans
6e2ab9973b
pulse-server: alsa safely make native socket
...
Only make the native socket when it's not there or when it appears
dead when we can't seem to connect to it.
- When the socket is not found, we take it.
- When an existing pulseaudio is running we won't unlink and take
over the socket because we can connect to it
- When a crashed pulseaudio leaves a stale socket, we fail to
connect and then we unlink and take over.
2020-11-12 12:17:12 +01:00
Wim Taymans
1d001974d7
media-session: enable pulse-bridge by default
...
Now that we don't interfere with pulseaudio, enable it by default.
2020-11-12 11:11:53 +01:00
Wim Taymans
c368768b93
pulse-server: append remote name to native socket
...
This way we don't interfere with the pulseaudio daemon in any way
and we can implement fallback to pulse-server in the pulseaudio
client library config file.
2020-11-12 11:01:57 +01:00
Wim Taymans
6c7a84a0ff
pulse-server: rate limit the underrun warnings
2020-11-12 10:17:19 +01:00
Wim Taymans
218689ff9a
manager: also make a Core global
...
So that we can checke the permissions for the metadata
2020-11-11 17:19:04 +01:00
Wim Taymans
bd259a7eb6
utils: don't include config.h
...
don't include config.h in public header. Just check if strndupa
is defined and if not, define it.
2020-11-11 12:24:24 +01:00
Wim Taymans
239615f5ae
pulse-server: improve some debug
2020-11-09 16:53:18 +01:00
Wim Taymans
cd3610367b
pulse-server: free object info
...
Don't remove the listeners before destroying the proxy because
we clean up the info in the destroy event.
2020-11-09 16:52:25 +01:00
Wim Taymans
99fcc95d18
pulse-server: don't leak formats
2020-11-09 16:51:34 +01:00
Wim Taymans
a6c35d1df4
module-portal: don't leak dbus error
2020-11-09 16:50:47 +01:00
Wim Taymans
d4fc918737
module-adapter: don't remove the listener in destroy
...
Or else we won't receive the free event anymore and we leak the
adapter.
2020-11-09 16:49:49 +01:00
Wim Taymans
31216c09c4
bluez5: fix memleak
2020-11-09 16:48:44 +01:00
Wim Taymans
ecf10e0b1c
pulse-server: remove useless allocation
2020-11-09 15:51:58 +01:00
Wim Taymans
29d6179328
spa-device: cleanup in the free signal
...
Cleanup and close the plugin in the free signal so that the object
has a chance to remove the event handlers from the object.
2020-11-09 15:36:36 +01:00
Wim Taymans
a0b2e5b498
pulse-server: improve stream cleanup
...
Make sure we finish processing of the pending messages before
destroying the stream.
2020-11-09 15:35:50 +01:00
Wim Taymans
f8186665d9
spa-node: remove unused factory_name
2020-11-09 15:35:12 +01:00