pipewire/spa
Peter Hutterer 0e60e9c063 spa: add topic-based logging
Add a struct spa_log_topic that allows for logical grouping of messages.
The new macros spa_log_logt() and spa_log_logtv() take a topic as
argument, the topic's level acts as filter.
A new macro spa_log_topic_init() initializes a topic. By default a topic
inherits its logger's debug level but a logger implementation may set
that topic to a specific fixed log level.

The various spa_log_*() macros transparently wrap new and old
implementations:
- if the implementation is version 0, the new logt() calls drop the
  topic and get routed into the old log() calls
- if the implementation is version 1, the old log() calls use a NULL
  topic and get routed into the new logt() calls

All spa_log_* macros use the SPA_LOG_DEFAULT_TOPIC topic (NULL), it is
up to the caller to redefine that. Alternatively, use spa_logt_* to pass
an explicit topic.

There is one crucial flaw in this implementation: log topics are
initialized to their target level by the current logger. Where a topic
is initialized but the logger is switched later, the topic is not
automatically re-initialized. Ultimately this shouldn't matter for
real-world use-cases.
2021-09-28 09:35:38 +02:00
..
examples meson.build: add -D_GNU_SOURCE to the project arguments 2021-06-09 07:47:51 +00:00
include spa: add topic-based logging 2021-09-28 09:35:38 +02:00
plugins spa: use the spa_log_logv macro to chain the log calls 2021-09-28 09:35:38 +02:00
tests Revert "[Meson] Fix all deprecation warnings" 2021-08-08 19:18:40 +00:00
tools json: don't escape / 2021-06-24 16:18:59 +02:00
meson.build bluez5: Use libfreeaptx instead of libopenaptx 2021-07-29 15:22:04 +00:00