Commit graph

67 commits

Author SHA1 Message Date
Wim Taymans
8383e86f33 pulse-server: module arguments can be NULL 2021-04-01 08:24:22 +02:00
Arun Raghavan
e7b04bca2c pulse-server: Implement module-loopback
Implements all modargs other than rate adjustment and max latency
related ones, which do not make sense in our context.

Fixes: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/543
2021-03-31 18:19:36 -04:00
Wim Taymans
8a4d2ed7ce pipewire-pulse: set correct errno values
errno should be set to the positive errno value.

This does not cause problems except for the pulse-server where the
errno value is negated and returned as an error result.
2021-03-19 12:46:05 +01:00
Wim Taymans
e19263140a pulse-server: improve module handling
Make a registry of modules
Assign an unique number to each module with the MODULE_FLAG bit set
so that we can also enumerate them
Implement enumerating our internally loaded modules
Implement unloading of the module using the module id
Move module-null-sink into a separate file
Use Audio/Sink if no other media.class was given, so that it works
just like the pulseaudio module
Enable linger=true in all cases.
2021-03-01 14:57:28 +01:00
Wim Taymans
15e6a825f2 pulse-server: don't read past the end of the string 2021-03-01 13:56:10 +01:00
Nicolai Syvertsen
ebcdfe8f5d pipewire-pulse: better default null sink description
This includes the sink_name and media class.
2021-01-27 19:09:21 +01:00
Nicolai Syvertsen
c092f0c1c4 pipewire-pulse: null sink must have a description
Certain pulseaudio clients crash if this is unset
2021-01-27 15:31:54 +00:00
Wim Taymans
7ae1ea1420 pulse-server: set default channel_map
Set a default channel map when not otherwise set. Makes pulseeffects
work.
2021-01-09 12:46:00 +01:00
Wim Taymans
518365e350 pulse-server: fix module arg parsing
Parse the module arguments according to the pulseaudio syntax,
not our own syntax (which requires "" around a , delimter). Fixes
audio.position=FL,FR argument.

See #527
2021-01-04 17:25:28 +01:00
Wim Taymans
f7a7feea4e pipewire-pulse: use defines for our keys 2020-12-18 17:19:24 +01:00
Wim Taymans
157d6de607 pulse-server: convert channel_map channels
channel_map contains pulseaudio channel names, convert them to
pipewire channel ids and then into pipewire channel names for the
null sink.
2020-12-07 20:29:22 +01:00
Wim Taymans
e2f0ab5710 pulse-server: handle channel_map null-sink option 2020-12-02 15:39:31 +01:00
Wim Taymans
4fb9e7eecc pulse-server: convert some more null-sink properties 2020-12-02 10:31:16 +01:00
Wim Taymans
6235c8c0f2 pulse-server: don't set object.linger by default 2020-11-26 09:35:29 +01:00
Wim Taymans
1934df7307 pulse-server: implement OBJECT_LINGER
Use OBJECT_LINGER in module-load to make sure the module stays loaded
after the client disconnects.
Implement linger in adapter and node-factory
2020-11-26 09:28:22 +01:00
Wim Taymans
765ce0564f pulse-server: don't crash with NULL arguments in module-load 2020-11-26 09:26:29 +01:00
Georges Basile Stavracas Neto
a362889712 pulse-server: Implement module load and unload
Implement a minimal version of the LOAD_MODULE and UNLOAD_MODULE
stream commands. The only supported module for now is the null
sink.

Modules are stored on a per-client bases, so that when clients
are disconnected, the modules they loaded is removed too.

This is enough to allow GNOME Network Displays to register a sink.
2020-11-05 11:57:12 -03:00