Commit graph

64 commits

Author SHA1 Message Date
George Kiagiadakis
36bc1795ca Relicense to MIT 2019-05-31 12:13:12 +03:00
George Kiagiadakis
d24b469749 Merge branch 'link-bugfix' into 'master'
endpoint: fix bug when linking endpoints

See merge request gkiagia/wireplumber!4
2019-05-30 14:22:51 +00:00
Julian Bouzas
dcf749bd40 endpoint: fix bug when linking endpoints 2019-05-30 10:22:04 -04: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
97c9da62ff meson: properly install modules, headers and add {so,}version on the lib 2019-05-29 12:47:26 +03:00
George Kiagiadakis
c319d40411 remote-endpoint: serialize control & stream IDs as int
SPA_POD_Id is reserved for spa type IDs, not arbitrary implementation IDs
2019-05-28 12:24:59 +03:00
George Kiagiadakis
8874e453a5 remote-endpoint: adjust to pw_endpoint api changes 2019-05-28 11:38:28 +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
1b6d9720c8 core: allow having a flat list of globals with the same key
and also implement
* global-added/removed signals
* a foreach function to iterate through globals
* registering modules and factories with the same key
2019-05-26 18:58:19 +03:00
George Kiagiadakis
bf60614032 improve debug statements a bit 2019-05-26 12:36:20 +03:00
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