Commit graph

92 commits

Author SHA1 Message Date
Julian Bouzas
51facef4e4 simple-policy: unlink the target endpoint if it is already linked 2019-07-10 11:18:09 -04:00
Julian Bouzas
1b69ef8339 simple-endpoint-link: store the created links in a list 2019-07-10 11:18:09 -04:00
Julian Bouzas
3cecccd681 endpoint: allow derived classes of endpoint-link to finish async construction 2019-07-10 11:18:09 -04:00
Julian Bouzas
d20633b831 module-pipewire: always include the node Id in the endpoint name 2019-07-10 08:40:30 -04:00
Julian Bouzas
184b293b7f dsp: add support for convert mode 2019-07-09 13:22:05 -04:00
George Kiagiadakis
ebe22c34fd mixer: implement listing controls of multiple streams
Currently, the stream names have to be duplicated in the configuration
file. This is going to change in a future version.
2019-07-09 13:20:39 -04:00
George Kiagiadakis
700f55670a simple-policy: match the requested role to a stream in find_endpoint
... and simplify some code there
2019-07-09 13:20:39 -04:00
George Kiagiadakis
2a397faa30 softdsp-endpoint/dsp: actually notify controls on the endpoint, not the dsp object 2019-07-09 13:20:39 -04:00
George Kiagiadakis
7618b8b082 alsa-udev/softdsp-endpoint: make the stream names & count configurable 2019-07-09 13:20:39 -04:00
George Kiagiadakis
4b65593ee1 softdsp-endpoint: move the selected control in the endpoint and simplify the id encoding 2019-07-09 13:20:39 -04:00
George Kiagiadakis
6e5905f6f3 softdsp-endpoint: dont't add the stream-id field on the description of the master controls
This is currently the documented way of describing controls
that have an effect on all streams
2019-07-09 13:20:39 -04:00
George Kiagiadakis
afcf9f4f0c softdsp-endpoint: actually register the streams 2019-07-09 13:20:39 -04:00
Julian Bouzas
7d1e860b7d softdsp-endpoint: change the control value properly 2019-07-09 13:20:39 -04:00
Julian Bouzas
f28971ebf8 softdsp-endpoint: add multiple streams support 2019-07-09 13:20:39 -04:00
Julian Bouzas
51a1d9a36f simple-endpoint-link: dont link already linked ports 2019-07-05 12:21:57 -04:00
Julian Bouzas
ab55116653 simple-policy: handle both input and output clients 2019-06-28 13:04:28 -04:00
Julian Bouzas
6f67682367 simple-endpoint: handle both input and output directions 2019-06-28 13:03:54 -04:00
Julian Bouzas
5429d57cb1 endpoint-link: make contruction async 2019-06-28 12:33:00 -04:00
George Kiagiadakis
7c7c65de5a simple-policy: allow configuring the default audio devices via module arguments 2019-06-28 13:32:07 +03:00
Julian Bouzas
e73553088b proxy: remove unneeded destroy signal 2019-06-27 07:23:20 -04:00
Julian Bouzas
3207811795 modules: disconnect the signals when the endpoints are destroyed 2019-06-26 12:47:51 -04:00
Julian Bouzas
7aded3a8c9 modules: unregister endpoints on global_removed instead of proxy destroyed 2019-06-26 12:37:19 -04:00
George Kiagiadakis
6177b7482e softdsp-endpoint: fix compiler warnings 2019-06-26 16:07:24 +03:00
George Kiagiadakis
33391f4246 simple-policy: select by default the first non-loopback device
This is a bit of a hack, temporarily needed for AGL.
2019-06-26 13:33:50 +03:00
George Kiagiadakis
d6f6c3d677 softdsp-endpoint: give a proper name to the endpoint based on alsa properties 2019-06-26 12:51:22 +03:00
George Kiagiadakis
39b5bc8b15 Merge branch 'async-endpoints' into 'master'
Async endpoints

See merge request gkiagia/wireplumber!13
2019-06-26 09:22:52 +00:00
George Kiagiadakis
3e24856263 modules: add new module to manage client permissions
Currently this will just grant full access to all clients.
A future version will refine that to grant access to specific
objects only.
2019-06-26 12:11:38 +03:00
Julian Bouzas
ff2420b70a modules: add support for multiple channels linking 2019-06-24 14:27:52 -04:00
Julian Bouzas
be6256fb0a modules: make endpoint creation async 2019-06-24 11:17:43 -04:00
Julian Bouzas
d2b8337045 modules: use the registry from WpRemotePipewire 2019-06-20 12:59:34 -04:00
George Kiagiadakis
f2ac3cc6d9 modules: do not leak references to the endpoints at their construction time 2019-06-20 13:09:38 +03:00
George Kiagiadakis
2da44762df m-simple-policy: find_endpoint: ref the endpoint only if it's not NULL 2019-06-20 13:00:16 +03:00
George Kiagiadakis
d236fea23d m-mixer: downgrade warnings about no backend to debug messages
This is a situation that always happens on startup, so let's not
spam with warnings
2019-06-20 13:00:16 +03:00
Julian Bouzas
601749d721 audio-softdsp-endpoint: set module instead of core in the module data 2019-06-19 09:13:02 -04:00
Julian Bouzas
fc7ebc2c31 proxy: add global_id property 2019-06-19 09:07:00 -04:00
George Kiagiadakis
0ad9464b54 softdsp-endpoint: workaround pipewire bug
spa audioconvert (the backend of audio-dsp) does not adevertise
property changes, therefore subscribe_params() is useless.
In order to get the real value from the node we need to call
enum_params() manually.

https://github.com/PipeWire/pipewire/issues/157
2019-06-19 12:19:36 +03:00
George Kiagiadakis
aa5b16f8df module-mixer: implement the "Mixer/Audio" endpoint provider
This provides high level volume controls for the AGL audiomixer
binding and the applications using it.
2019-06-18 19:58:42 +03:00
George Kiagiadakis
dcbe3a6f10 modules: move the "selected" endpoint logic to the simple-policy module and improve it
We now have always a "selected" endpoint for each direction (source, sink)
that is picked as the first available endpoint at startup,
and it changes automatically if the currently selected endpoint is removed
2019-06-18 19:44:28 +03:00
George Kiagiadakis
5d93cf338b remote-endpoint: disconnect the control-value change callback when the proxy is destroyed
This avoids the theoretical crash that would happen if you change
the control value on an endpoint whose client-endpoint proxy has
already been destroyed
2019-06-18 19:42:19 +03:00
George Kiagiadakis
ecad76d995 policy: consume floating reference of GVariant in _find_endpoint() 2019-06-18 17:41:34 +03:00
Julian Bouzas
a471a2df13 proxy: remove unneeded core reference 2019-06-18 10:18:21 -04:00
Julian Bouzas
42bdf3ee6d modules: unregister the endpoints when their proxy is destroyed 2019-06-18 10:10:20 -04:00
Julian Bouzas
3feddf5579 modules: fix proxy ref-count 2019-06-18 08:34:54 -04:00
George Kiagiadakis
0b3433d732 modules: fix some ref counting and memory {de-,}allocation issues 2019-06-18 10:02:01 +03:00
George Kiagiadakis
ab73fd6eb0 endpoint: maintain a weak ref to the core since construction time
+ add a method to retrieve the core
+ change the register function to not require the core as a parameter
2019-06-18 09:23:40 +03:00
Julian Bouzas
1f2386c08d module-pipewire and simple-endpoint: use the new Proxy API 2019-06-17 14:37:14 -04:00
Julian Bouzas
8877e0438d alsa-udev: fix minor bug 2019-06-17 14:26:24 -04:00
Julian Bouzas
7337f9c19f audio-softdsp-endpoint: fix proxy port property description 2019-06-17 14:26:24 -04:00
George Kiagiadakis
7b9e8a030e lib: add a new WpRemote base class and move the pw_remote glue into a new WpRemotePipewire
This is a cleaner way to interface with the remote pipewire daemon.
The WpRemote base class can be subclassed also for interfacing
with other daemons (hardware-specific managers, etc)
2019-06-17 20:28:06 +03:00
Julian Bouzas
2c76103c30 modules: use the new proxy API 2019-06-17 10:42:59 -04:00