Commit graph

53 commits

Author SHA1 Message Date
George Kiagiadakis
d91a7666b4 module-pw-alsa-udev: remove useless switch case statements 2019-05-26 12:03:10 +03:00
George Kiagiadakis
93c62ec392 module-pw-alsa-udev: register the endpoints 2019-05-26 12:01:40 +03:00
George Kiagiadakis
f0d592c7f3 module-pipewire: export endpoints to pipewire 2019-05-25 23:24:55 +03:00
George Kiagiadakis
940e1e70c0 endpoint: fix clearing the weak ref
g_weak_ref_clear destroys the weak ref, so it will crash
when _finalize() tries to destroy it again
2019-05-25 23:20:54 +03:00
George Kiagiadakis
aa78db35a7 session-manager: add endpoint-added/removed signals 2019-05-25 23:20:33 +03:00
George Kiagiadakis
901593e217 endpoint: improve GVariant format docs 2019-05-25 23:19:28 +03:00
George Kiagiadakis
d2ccd2996b Merge branch 'alsa-endpoints' of gitlab.freedesktop.org:julian/wireplumber 2019-05-25 23:17:20 +03:00
Julian Bouzas
f8a3c09902 audio-softdsp-endpoint: set name and media-class endpoint properties on creation 2019-05-24 15:04:15 -04:00
Julian Bouzas
21e9f0d98b alsa-udev: add listener to created audio softdsp endpoints when alsa nodes are created 2019-05-24 13:38:26 -04:00
George Kiagiadakis
8e7f84d888 endpoint: add methods to register to the SM and use them in simple-endpoint
This changes the registration point to be the endpoint and not the
session manager, as it seems easier to implement (the implementation
will not need to keep a pointer to the session manager around)
2019-05-24 17:19:58 +03:00
Julian Bouzas
2fd0f63118 factory: don't use smart pointer when creating a factory 2019-05-23 14:09:59 -04:00
Julian Bouzas
92dc9d5cdf Fix no return statement warnings 2019-05-22 16:59:56 -04:00
George Kiagiadakis
220b95fb05 module-pipewire: add some more debug and fix segfault on startup 2019-05-22 23:46:33 +03:00
George Kiagiadakis
e1ef9b1128 module-pipewire: implement client node detection and simple-endpoint creation 2019-05-22 16:49:21 +03:00
George Kiagiadakis
df48fd897d module/factory: add a get_core() method on both 2019-05-22 13:15:49 +03:00
George Kiagiadakis
06db0e414a factory: improve API and hide its implementation (better for introspection) 2019-05-22 13:03:24 +03:00
George Kiagiadakis
1c44476b5e endpoint: add documentation 2019-05-21 18:58:30 +03:00
George Kiagiadakis
5f853d0e53 endpoint: refactor slightly the public API
* Make streams a GVariant array, for future-proofness
* Add API for controls (volume, mute, brightness, contrast, etc...)
* Remove API for profiles (it's not well-thought; may be re-added
  in the future)
2019-05-21 18:27:07 +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
43365715f7 many crash fixes 2019-04-28 14:20:00 +03:00
George Kiagiadakis
ac65d44bbf session: make the media_class a normal GObject property 2019-04-28 14:18:44 +03:00
George Kiagiadakis
bd1c233f43 Revert "lib: object: allow also using static interfaces using the WpObject API"
This reverts commit daa49af541.
2019-04-28 11:55:46 +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
b376c5d7c4 modules: add a basic default session implementation as a module 2019-04-26 12:39:35 +03:00
George Kiagiadakis
02c69fd2fa proxy: add methods to get info & enum params 2019-04-26 12:36:49 +03:00
George Kiagiadakis
b6d1df6d68 plugin: remove WP_PLUGIN_DEFINE_TYPE - bad idea 2019-04-23 16:30:36 +03:00
George Kiagiadakis
cb1b3ebfad proxy: expose pw properties as a spa_dict and store them in a pw_properties
Exposing a spa_dict is necessary to allow using native pipewire API
that deals with these properties.

The internal structure change avoids mem copies when we need to
return a spa_dict.

This commits also removes exposing internal info structures via the
properties mechanism. This needs more thinking...
2019-04-23 16:28:13 +03:00
George Kiagiadakis
daa49af541 lib: object: allow also using static interfaces using the WpObject API 2019-04-22 18:42:59 +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
55365e97c1 lib: proxy: make the pipewire property getter an interface on WpObject
We are going to use this in other object types as well
2019-04-22 12:44:42 +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
87d60a80aa proxy: subclass from WpObject to allow attaching interfaces dynamically 2019-04-17 16:12:03 +03:00
George Kiagiadakis
ce7f9002cd core: fix stupid mistakes in module loading mechanism 2019-04-16 18:41:09 +03:00
George Kiagiadakis
9e0e8f62ae plugin: implement default_handle_pw_proxy 2019-04-16 18:27:34 +03:00
George Kiagiadakis
fad4682df6 lib: move gtype out of WpPluginMetadata and simplify plugin macros
the GType cannot be in statically allocated data,
since it's not known at compile time
2019-04-16 18:14:59 +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
f1bb4e3588 lib: implement proxy & proxy-registry 2019-04-15 17:07:06 +03:00
George Kiagiadakis
aa34eaae97 lib: add a log domain 2019-04-12 13:08:11 +03:00
George Kiagiadakis
96d801803c switch all headers to use SPDX-License-Identifier 2019-04-12 12:53:54 +03:00
George Kiagiadakis
cdf0fe43bb add LICENSE 2019-04-12 12:51:15 +03:00
George Kiagiadakis
ae45940cc4 add README.md 2019-04-12 12:50:37 +03:00
George Kiagiadakis
6f6e2b0e3e lib: implement plugin mechanism and a basic proxy object 2019-04-12 12:37:36 +03:00
George Kiagiadakis
a50bb17ed6 object: error is allocated by the callee (and inferred) 2019-04-11 09:57:04 +03:00