Commit graph

35 commits

Author SHA1 Message Date
Julian Bouzas
1a02bfef8a audio-client-module: added new module to load clients after softdsp endpoints are created 2019-07-12 09:44:15 -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
7618b8b082 alsa-udev/softdsp-endpoint: make the stream names & count configurable 2019-07-09 13:20:39 -04:00
George Kiagiadakis
4ed5e30d9d config: enhance the configuration file with comments 2019-06-28 13:32:45 +03:00
George Kiagiadakis
1e7bcd8943 config: ensure that both ABI and MODULE are specified before the properties
If we have properties, strtok will return strings from there as tokens
and the error will appear later as we will attempt to parse an incomplete
GVariant. It is better to catch this early so that we can print a more
useful error message.
2019-06-27 18:30:11 +03:00
George Kiagiadakis
22699a4b21 config: allow module property blocks to span multiple lines
So now we can do:
---
load-module C foo {
  "property": <"value">
}
---

The starting brace is still required to be on the same line
as the load-module.
2019-06-27 18:26:05 +03:00
George Kiagiadakis
f9f7f6e271 config: implement reading properties for modules from the config file
Properties are expected to be a GVariant a{sv} dictionary,
specified in the GVariant text format:
https://developer.gnome.org/glib/stable/gvariant-text.html
2019-06-27 18:10:21 +03:00
George Kiagiadakis
d02bfcd2aa config: skip empty lines and comments (starting with #) 2019-06-27 17:33:04 +03: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
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
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
George Kiagiadakis
a93b47690e modules: re-implement the simple policy module using WpPolicy 2019-06-13 14:57:59 +03:00
Julian Bouzas
b87e9775ce simple-policy: add new module 2019-06-10 11:52:03 -04:00
George Kiagiadakis
1962a8ca1c daemon: quit when the pipewire remote disconnects or signals an error
This is implemented in a slightly hacky way, we register the GMainLoop
as a global object and use it from the module to quit the daemon.
This is bad design because the module assumes it is loaded inside
our daemon.

In the future, this should change. It looks like we should have an
object that tracks the state of PipeWire and main() should track
state changes of that object and decide what to do.
2019-06-05 18:38:56 +03:00
George Kiagiadakis
36bc1795ca Relicense to MIT 2019-05-31 12:13:12 +03:00
George Kiagiadakis
98fe322897 meson: export the module & config dirs to the C code
This allows loading of config and modules when deployed in
the target system without setting environment variables.
2019-05-29 17:36:22 +03:00
George Kiagiadakis
0e01895db3 meson: install wireplumber.conf 2019-05-29 12:58:47 +03:00
George Kiagiadakis
3aa7d6ce78 lib: remove the session-manager object and register endpoints as globals 2019-05-26 19:21:27 +03:00
George Kiagiadakis
0506f53149 Add a sample config file and a Makefile to make running (for testing) easier 2019-05-17 13:34:33 +03:00
George Kiagiadakis
447c968846 Refactor everything!
After discussing things at the AGL May 2019 F2F meeting
and reflecting on the initial design of WirePlumber,
it became clear that it needed a fresh start.
2019-05-17 13:34:07 +03:00
George Kiagiadakis
ac65d44bbf session: make the media_class a normal GObject property 2019-04-28 14:18:44 +03:00
George Kiagiadakis
41b1f40053 plugin-registry-impl: remove useless warning 2019-04-26 13:56:34 +03:00
George Kiagiadakis
26ad8bcad9 core: connect the new-proxy-available signal to the plugins' handle_pw_proxy 2019-04-26 13:55:46 +03:00
George Kiagiadakis
e16e66de2d lib: object/interface: do not (transfer full) interfaces and objects 2019-04-26 13:19:18 +03:00
George Kiagiadakis
19f10a81c9 core: implement an interface to retrieve the pw_core & pw_remote 2019-04-22 18:26:09 +03:00
George Kiagiadakis
4fcdb931be proxy/plugin: hold a pointer to the core instead of the respective registry
This makes it more intuitive to get other attached interfaces
from the core
2019-04-22 17:48:02 +03:00
George Kiagiadakis
ede602a05a implement WpSession & WpSessionRegistry 2019-04-22 13:07:08 +03:00
George Kiagiadakis
eeb99f908a proxy-registry-impl: run every proxy through the plugins' provide_interfaces
This allows plugins to provide custom interfaces on proxies
2019-04-17 19:20:39 +03:00
George Kiagiadakis
ce43cf5f0c refactoring around the registries
* make the registries available as dynamic interfaces of the core
* improve a bit the C API of WpObject & WpInterfaceImpl
2019-04-17 19:09:39 +03:00
George Kiagiadakis
ce7f9002cd core: fix stupid mistakes in module loading mechanism 2019-04-16 18:41:09 +03:00
George Kiagiadakis
a8450b0f02 src: use a common log domain in the daemon code
glib log domains are not like the gstreamer ones, where you can enable
many of them with a wildcard, therefore it is not particularly useful
to have different ones per file
2019-04-16 15:44:04 +03:00
George Kiagiadakis
6f740a2a13 src: implement module loading 2019-04-16 15:42:10 +03:00
George Kiagiadakis
96d801803c switch all headers to use SPDX-License-Identifier 2019-04-12 12:53:54 +03:00
George Kiagiadakis
9d4731d029 lib: begin working on a library to allow implementing policy plugins 2019-04-10 12:32:51 +03:00
George Kiagiadakis
43c44fb7cf Initial commit 2019-04-04 16:47:33 +03:00