module-roc: forward roc-toolkit logs to pipewire logs

Roc-toolkit log records are captured via a callback and
written to PipeWire log with corresponding verbosity level.
The log.level config parameter limits record verbosity at
the roc-toolkit level.
This commit is contained in:
Misha Baranov 2026-02-16 22:35:14 +01:00 committed by Wim Taymans
parent 88cbe24201
commit b9922d8ed5
5 changed files with 127 additions and 6 deletions

View file

@ -0,0 +1,21 @@
#include <pipewire/log.h>
#include <roc/log.h>
#include "common.h"
PW_LOG_TOPIC(roc_log_topic, "mod.roc.lib");
void pw_roc_log_init(void)
{
roc_log_set_handler(pw_roc_log_handler, NULL);
roc_log_set_level(pw_roc_log_level_pw_2_roc(roc_log_topic->has_custom_level ? roc_log_topic->level : pw_log_level));
}
void pw_roc_log_handler(const roc_log_message *message, void *argument)
{
const enum spa_log_level log_level = pw_roc_log_level_roc_2_pw(message->level);
if (SPA_UNLIKELY(pw_log_topic_enabled(log_level, roc_log_topic))) {
pw_log_logt(log_level, roc_log_topic, message->file, message->line, message->module, message->text, "");
}
}