Wim Taymans
d71fb40989
pulse-server: move extension to modules
...
Add extension support to modules. This is a list of extension commands
that can be performed on the module.
Remove the custom registry of extensions and make proper modules that
implement the extensions.
This is more in line with what pulseaudio does. The advantage is that the
modules actually show up in the module list and that we can use the
module user_data to implement the extension later.
2024-01-23 13:31:05 +01:00
Wim Taymans
bc6c19ccdf
pulse-tunnel: translate pulse error to spa error
...
Pulseaudio has its own error enumeration, convert them to spa errors so
that we report the right errors.
2023-03-13 12:26:20 +01:00
Barnabás Pőcze
934ab3036e
treewide: use SPDX tags to specify copyright information
...
SPDX tags make the licensing information easy to understand and clear,
and they are machine parseable.
See https://spdx.dev for more information.
2023-02-16 10:54:48 +00:00
Pauli Virtanen
fb04074335
pulse-server: set also metadata target.object when moving streams
...
Set also metadata target.object when moving streams, in case the session
manager supports that.
2022-02-28 18:36:26 +00:00
Wim Taymans
1ac1f914e3
pulse-server: allows allocate MAXLENGTH for the ringbuffer
...
See #2069
2022-01-28 16:21:03 +01:00
Wim Taymans
955e4287ab
pulse-server: index flags are only used for modules
...
one flag for the internal extension modules, another flag for the
modules we load in pulse server that don't really have a matching
pipewire module.
2022-01-17 10:28:09 +01:00
Wim Taymans
6a2aea8e0a
pulse-server: remove the MONITOR flag
...
PulseAudio has separate namespaces for sources and sinks so we can reuse
the same id for the sink and its monitor.
2022-01-17 10:25:26 +01:00
Pauli Virtanen
11e57de7b0
pulse-server: index mask is now 24 bits
...
Update INDEX_MASK to match the new id allocation scheme.
2022-01-13 19:08:45 +02:00
Wim Taymans
3a49168f26
pulse-server: use the upper 8 bits of the id to mark things
...
The upper 8 bits of the object id is always 0 so we can use it to mark
our internal objects.
2022-01-13 14:54:16 +01:00
Wim Taymans
fd4ea442d9
pulse-server: increase buffer size
...
Because we keep everything in a ringbuffer and provide exactly the
required amount of data, we can use 1/4 buffers.
Also increase the buffer size. We don't want to limit the buffer size
to the negotiated tlength because it can be increased later. Instead
scale it to the max quantum size (8192) with a max resample rate of 32.
2021-12-14 15:42:19 +01:00
Barnabás Pőcze
f5d51162c4
treewide: mark things static and const
...
Mark some structures, arrays static/const at various places.
In some cases this prevents unnecessary initialization
when a function is entered.
All in all, the text segments across all shared
libraries are reduced by about 2 KiB. However,
the total size increases by about 2 KiB as well.
2021-06-30 14:44:08 +02:00
Peter Hutterer
0880ff9a84
spa: add spa_strendswith (copy from protocol-pulse)
...
Useful function, let's make it generally available.
2021-06-25 08:42:24 +00:00
Barnabás Pőcze
b2ec1fb60a
pulse-server: split out message handling
...
Part of !776 .
2021-06-25 03:23:24 +02:00
Barnabás Pőcze
8ac60cb0ae
pulse-server: split out commands
...
Part of !776 .
2021-06-25 03:22:56 +02:00
Barnabás Pőcze
8208e60b33
pulse-server: add include guard to defs.h
...
Part of !776 .
2021-06-25 03:21:38 +02:00
Wim Taymans
bbbc79647f
pulse-server: return INTERNAL error for ENFILE/EMFILE
2021-06-18 15:56:55 +02:00
Arun Raghavan
74140abada
pulse-server: Factor out module code to compile independently
...
This starts breaking up the giant monolith that is the pulse-server.c
code into more manageable chunks by trying to split the module code into
individual compilation units.
2021-04-15 19:37:15 -04:00
Pauli Virtanen
132786c202
pulse-server: implement send_object_message
...
Use it for providing Bluez codec listing/switching interface. It
currently works by just switching device profiles.
2021-03-20 23:30:38 +02: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
Gleb Popov
3faf388821
Guard some non-portable error code defines with #ifdef's
2021-02-24 19:29:57 +00:00
Wim Taymans
43f8f39d3a
pulse-server: move some config params to config file
...
Also make the minreq/fragsize larger by default.
2021-02-23 14:57:45 +01:00
Wim Taymans
8712cfb6a1
pulse-server: remove MIN_BLOCK
...
It is not really used and minreq is good enough
2021-02-23 12:29:39 +01:00
Pauli Virtanen
d617d7e1a3
pulse-server: SET_DEFAULT_* commands change the configured values
2021-02-06 18:10:28 +00:00
Wim Taymans
6b2ec6d619
pulse-server: require at least 32 samples per buffer
2021-01-18 16:24:00 +01:00
Wim Taymans
e0580fedc1
pulse-server: handle seek flags and offset
...
Fixes #485
2020-12-17 16:49:17 +01:00
Wim Taymans
00295b64b5
pulse-server: don't write too small buffers
...
Fixes #399
2020-12-11 18:09:21 +01:00
Wim Taymans
0fba936b06
pulse-server: use defines for default sink/source
2020-12-05 13:26:59 +01:00
Wim Taymans
745b7ee900
pulse-server: tweak some parameters to get lower latency
2020-12-04 15:11:35 +01:00
Wim Taymans
f818da96fc
pulse-server: use define for monitor flags
2020-11-17 12:33:09 +01:00
Wim Taymans
8b9d398df6
pulse-server: implement sample cache
2020-11-13 13:28:46 +01:00
Wim Taymans
ca2ea2db4b
pulse-server: add more errno to error mappings
2020-11-12 17:37:39 +01:00
Greg V
fba8cd9f56
protocol-pulse: ifdef Linux-specific errnos and socket opts
2020-11-09 11:14:20 +00:00
Wim Taymans
c619d7851f
pulse-server: add move and default sink/source
...
Clean up error handling, use errno everywhere and convert when needed.
2020-10-29 11:59:16 +01:00
Wim Taymans
0320eca79e
pulse-server: add port_type and availability-group
2020-10-28 12:18:26 +01:00
Wim Taymans
1ec00e37fc
pulse-server: set source and sink flags
2020-10-27 17:09:06 +01:00
Wim Taymans
2bf5cfa2f7
pulse-server: fill volumes and state
2020-10-27 10:12:27 +01:00
Wim Taymans
8759ceb551
pulse-server: handle monitor sources
2020-10-26 18:10:05 +01:00
Wim Taymans
a372e4e90e
pulse-server: add more introspection
...
Add default nodes support and subscription events when it changes.
Fix stream id.
Fix node lookup.
Fix node volume.
2020-10-26 13:28:45 +01: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
fde36ac6c2
pulse-server: use at least MIN_SAMPLES of samples per buffer
2020-10-08 18:06:12 +02:00
Wim Taymans
f0102fd490
pulse: move pulse protocol to module
2020-10-08 18:06:11 +02:00