Commit graph

46 commits

Author SHA1 Message Date
George Kiagiadakis
31cbbcd4c0 meson: fix glib version requirement checks
The == are not valid checks to appear in a .pc file, apparently,
and this breaks the generated wireplumber-0.4.pc file that copies
these version checks as they appear in meson.build
2021-02-25 16:58:47 +02:00
George Kiagiadakis
56f8a82ad7 daemon: add systemd unit files
see also pipewire/pipewire!481
2021-02-23 18:47:50 +02:00
George Kiagiadakis
6376bc6e4b Revert "meson: relax meson version dependency when building with system lua"
meson can't find project options before executing the project() command :(

This reverts commit 8bff0cc630.
2021-02-11 16:14:40 +02:00
George Kiagiadakis
8bff0cc630 meson: relax meson version dependency when building with system lua 2021-02-11 16:07:16 +02:00
George Kiagiadakis
1bd8e31872 meson: bump version 2021-02-03 17:25:55 +02:00
George Kiagiadakis
36598aede4 meson: remove C++ support, there's no C++ code anymore 2021-02-03 17:18:41 +02:00
George Kiagiadakis
a67116b0b9 wptoml: remove, it's not used anymore
and drop cpptoml dependency as well
2021-02-03 17:16:51 +02:00
George Kiagiadakis
e52bd4468d src: move scripts to their own directory, install in $prefix/share/ 2021-02-03 17:16:51 +02:00
George Kiagiadakis
40ce5f0d5f meson: add 'system-lua' project option to toggle the bundled lua
By default system-lua=false, so the bundled version is built.

The default_library for the lua subproject is also set to static
now, so that we don't need to install liblua and mess up the system.
For existing build trees, this needs to be switched manually now with
-Dlua:default_library=static (or just wipe the build dir and start clean)
2021-01-23 19:11:38 +02:00
George Kiagiadakis
7233b7a442 meson: require pipewire 0.3.20
Required for the device event type-info
2021-01-21 09:42:07 +02:00
Julian Bouzas
f0d744016b meson: fix lua dependency on Arch Linux 2021-01-14 12:56:47 -05:00
George Kiagiadakis
af01155093 Merge branch 'master' into next-lua 2020-12-21 18:56:52 +02:00
George Kiagiadakis
bb9b59181b meson: enable compiler flags for warnings, if supported
Use the same set of warning flags that pipewire uses

See #20
2020-12-20 22:16:37 +02:00
George Kiagiadakis
404d016852 meson: add dependency on lua 5.3 2020-12-01 11:18:15 +02:00
George Kiagiadakis
accb91ddb1 tools: port wpctl to the new APIs 2020-12-01 11:00:51 +02:00
George Kiagiadakis
3935308250 meson: bump project & API versions 2020-11-16 11:06:11 +02:00
George Kiagiadakis
a7dcd3b76f src: port daemon to the new APIs 2020-11-15 20:26:15 +02:00
George Kiagiadakis
ccdc354445 modules: port modules and their tests to the new proxy APIs
Disable m-session-settings for now, as it needs further work
2020-11-15 20:26:15 +02:00
George Kiagiadakis
1afc487353 tests: fix library unit tests 2020-11-13 19:54:48 +02:00
George Kiagiadakis
2f3f5f8e66 lib: refactor WpProxy
This is an attempt to unclutter the API of WpProxy and
split functionality into smaller pieces, making it easier
to work with.

In this new class layout, we have the following classes:

- WpObject: base class for everything; handles activating
|           and deactivating "features"
|- WpProxy: base class for anything that wraps a pw_proxy;
 |          handles events from pw_proxy and nothing more
 |- WpGlobalProxy: handles integration with the registry

All the other classes derive from WpGlobalProxy. The reason
for separating WpGlobalProxy from WpProxy, though, is that
classes such as WpImplNode / WpSpaDevice can also derive from
WpProxy now, without interfacing with the registry.

All objects that come with an "info" structure and have properties
and/or params also implement the WpPipewireObject interface. This
provides the API to query properties and get/set params. Essentially,
this is implemented by all classes except WpMetadata (pw_metadata
does not have info)

This interface is implemented on each object separately, using
a private "mixin", which is a set of vfunc implementations and helper
functions (and macros) to facilitate the implementation of this interface.

A notable difference to the old WpProxy is that now features can be
deactivated, so it is possible to enable something and later disable
it again.

This commit disables modules, tests, tools, etc, to avoid growing the
patch more, while ensuring that the project compiles.
2020-11-13 19:54:48 +02:00
David Runge
fbe1e5177b
Allow system cpptoml
meson.build:
When the 'wrap_mode' option is set to 'nodownload' use a system version
of cpptoml. This does not require using git and having a network
connection during build, which is important for Linux packaging
infrastructure.

subprojects/cpptoml.wrap:
Pin revision to last release tag (v0.1.1).

lib/wptoml/*.cpp:
Remove 'include/' prefix from all cpptoml related includes, at is not
required.

Closes #17
2020-07-22 20:25:58 +02:00
George Kiagiadakis
996699762c NEWS: release 0.3.0 2020-06-29 19:36:49 +03:00
George Kiagiadakis
046040a323 meson: bump version to 0.2.96 2020-06-29 13:05:44 +03:00
George Kiagiadakis
816fcaf43b meson: relax GLib dependency to 2.58 2020-06-16 19:20:13 +03:00
Martin Koch, ESE GmbH
ca42b09c3d Add version requirement >= 2.60 for the GLib family of libraries
- due to usage of Reference-counted-data in lib/wptoml/array.cpp
      (requires >= 2.58, see https://developer.gnome.org/glib/stable/glib-Reference-counted-data.html)
    - and usage of G_GNUC_FALLTHROUGH in lib/wp/object-interest.c
      (requires 2.60, see https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#G-GNUC-FALLTHROUGH:CAPS)

Signed-off-by: Martin Koch, ESE GmbH <martin.koch@ese.de>
2020-06-15 11:18:17 +03:00
George Kiagiadakis
e1139fcf04 meson: bump version for 0.3.0 RC1 2020-06-02 18:37:13 +03:00
George Kiagiadakis
c8b11fad42 lib: add a version header 2020-06-02 18:26:40 +03:00
George Kiagiadakis
79e9bcd8b7 meson: bump project version number 2020-05-18 10:22:45 +03:00
Julian Bouzas
daa8091666 modules: add monitor dbus device reservation API with unit tests 2020-03-20 14:01:20 -04:00
George Kiagiadakis
ca8d100b3f meson: temporarily add check to conditionally enable the fade functionality
and in case it's missing, also #define some things to make compilation work,
since this is only available in a pipewire branch right now
2020-02-28 13:25:35 +02:00
George Kiagiadakis
f7c0730b7e docs: enable building html documentation with hotdoc 2020-01-22 17:06:01 +02:00
George Kiagiadakis
efb33ddd1b lib: introduce export macros and hide all private symbols 2020-01-16 18:50:07 +02:00
George Kiagiadakis
1fcadf4bdf meson: install a pkgconfig file for libwireplumber 2019-12-12 20:41:20 +02:00
George Kiagiadakis
9fa9f1fe44 tools: initial implementation of a wireplumber-cli tool
Currently all it does is that it prints the properties
of all device nodes (Audio/Source & Audio/Sink), which
is useful for editing the configuration files
2019-12-05 13:29:28 +02:00
Julian Bouzas
9a9d773b06 wptoml: add new library to parse TOML files 2019-12-04 16:38:35 -05:00
George Kiagiadakis
69f1cac79c meson: bump version to 0.1.90
next version is going to be 0.2 from this branch
2019-10-07 18:36:25 +03:00
George Kiagiadakis
ac7086d156 modules: port to new WpProxy API 2019-08-29 21:21:33 +03:00
George Kiagiadakis
199241894e meson: temporarily disable building modules due to API changes being in progress 2019-08-24 16:19:12 +03:00
George Kiagiadakis
8cf8b0b886 tests: add unit test skeleton and a test for WpProperties 2019-08-24 16:19:12 +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
97c9da62ff meson: properly install modules, headers and add {so,}version on the lib 2019-05-29 12:47:26 +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
6f740a2a13 src: implement module loading 2019-04-16 15:42:10 +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