wireplumber/lib/wp
George Kiagiadakis 4736d56557 log: implement a log topics system, like pipewire
The intention is to make checks for enabled log topics faster.

Every topic has its own structure that is statically defined in the file
where the logs are printed from. The structure is initialized transparently
when it is first used and it contains all the log level flags for the levels
that this topic should print messages. It is then checked on the wp_log()
macro before printing the message.

Topics from SPA/PipeWire are also handled natively, so messages are printed
directly without checking if the topic is enabled, since the PipeWire and SPA
macros do the checking themselves.

Messages coming from GLib are checked inside the handler.

An internal WpLogFields object is used to manage the state of each log
message, populating all the fields appropriately from the place they
are coming from (wp_log, spa_log, glib log), formatting the message and
then printing it. For printing to the journald, we still use the glib
message handler, converting all the needed fields to GLogField on demand.
That message handler does not do any checks for the topic or the level, so
we can just call it to send the message.
2023-05-16 20:42:28 +03:00
..
private log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
client.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
client.h client: add _send_error() method 2021-10-13 11:09:11 +03:00
component-loader.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
component-loader.h component-loader: make wp_core_load_component() API asynchronous 2023-04-17 07:48:18 -04:00
conf.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
conf.h lib: add WpConf API 2023-04-17 07:48:18 -04:00
core.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
core.h component-loader: make wp_core_load_component() API asynchronous 2023-04-17 07:48:18 -04:00
dbus.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
dbus.h lib: add new WpDbus API 2022-06-02 12:34:16 -04:00
defs.h lib: add struct paddings to be able to maintain ABI compatibility 2021-06-08 17:38:14 +03:00
device.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
device.h device: add new wp_spa_device_managed_object_new_iterator API 2022-06-27 08:52:36 +00:00
error.c docs: fix C API documentation to work nicely with doxygen & sphinx 2021-05-25 14:19:53 +03:00
error.h docs: fix C API documentation to work nicely with doxygen & sphinx 2021-05-25 14:19:53 +03:00
event-dispatcher.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
event-dispatcher.h event-dispatcher: refactor to use before/after dependencies on hooks 2023-04-17 07:48:18 -04:00
event-hook.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
event-hook.h event-dispatcher: refactor to use before/after dependencies on hooks 2023-04-17 07:48:18 -04:00
event.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
event.h event-dispatcher: refactor to use before/after dependencies on hooks 2023-04-17 07:48:18 -04:00
factory.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
factory.h wp-factory: enumerate pw_factory objects 2021-10-19 05:46:46 +00:00
global-proxy.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
global-proxy.h lib: add struct paddings to be able to maintain ABI compatibility 2021-06-08 17:38:14 +03:00
iterator.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
iterator.h lib: Use #define instead of 'static const' for constants 2021-06-24 09:24:16 -04:00
link.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
link.h link: add WP_LINK_FEATURE_ESTABLISHED to track when a link is PAUSED/ACTIVE 2022-07-02 17:10:22 +03:00
log.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
log.h log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
meson.build lib: remove WpEndpoint and WpSiEndpoint APIs 2023-04-17 07:48:18 -04:00
metadata.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
metadata.h metadata: use pw_impl_metadata for WpImplMetadata 2021-09-17 09:08:48 -04:00
module.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
module.h docs: impl-module: add since markers and improve the Lua doc appearence 2021-08-19 17:58:07 +03:00
node.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
node.h docs: fix C API documentation to work nicely with doxygen & sphinx 2021-05-25 14:19:53 +03:00
object-interest.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
object-interest.h lib: Use #define instead of 'static const' for constants 2021-06-24 09:24:16 -04:00
object-manager.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
object-manager.h docs: fix C API documentation to work nicely with doxygen & sphinx 2021-05-25 14:19:53 +03:00
object.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
object.h object: add ID property 2023-04-17 07:47:09 -04:00
plugin.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
plugin.h lib: add struct paddings to be able to maintain ABI compatibility 2021-06-08 17:38:14 +03:00
port.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
port.h docs: fix C API documentation to work nicely with doxygen & sphinx 2021-05-25 14:19:53 +03:00
properties.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
properties.h lib: remove deprecated APIs 2023-04-17 07:48:18 -04:00
proxy-interfaces.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
proxy-interfaces.h lib: add struct paddings to be able to maintain ABI compatibility 2021-06-08 17:38:14 +03:00
proxy.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
proxy.h proxy: abort activation if error or destroyed 2021-12-13 08:37:07 -05:00
session-item.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
session-item.h session-item: remove ID property 2023-04-17 07:47:09 -04:00
settings.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
settings.h scripts: use WpConf API to get configuration values 2023-04-17 07:48:18 -04:00
si-factory.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
si-factory.h lib: add struct paddings to be able to maintain ABI compatibility 2021-06-08 17:38:14 +03:00
si-interfaces.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
si-interfaces.h lib: remove WpEndpoint and WpSiEndpoint APIs 2023-04-17 07:48:18 -04:00
spa-json.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
spa-json.h spa-json: add _add_from_string() and _add_from_stringn() builder APIs 2023-04-17 07:47:09 -04:00
spa-pod.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
spa-pod.h spa-pod: add missing API sentinel 2022-01-21 13:59:03 +00:00
spa-type.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
spa-type.h docs: Add brief descriptions to all functions 2021-06-02 17:38:34 +00:00
state.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
state.h state: remove support for groups and propagate save errors 2021-06-04 18:36:19 +03:00
transition.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
transition.h lib: add struct paddings to be able to maintain ABI compatibility 2021-06-08 17:38:14 +03:00
wp.c log: implement a log topics system, like pipewire 2023-05-16 20:42:28 +03:00
wp.h meson: install scripts in /usr/share/wireplumber 2023-04-17 07:48:18 -04:00
wpversion.h.in lib: add a version header 2020-06-02 18:26:40 +03:00