pipewire: use the internal log topics

This commit is contained in:
Peter Hutterer 2021-09-17 13:10:04 +10:00 committed by Wim Taymans
parent 52bd80aaa4
commit a6e66d9180
17 changed files with 370 additions and 332 deletions

View file

@ -46,7 +46,8 @@
#include <pipewire/impl.h>
#define NAME "config"
PW_LOG_TOPIC_EXTERN(log_conf);
#define PW_LOG_TOPIC_DEFAULT log_conf
static int make_path(char *path, int size, const char *paths[])
{
@ -306,7 +307,7 @@ int pw_conf_save_state(const char *prefix, const char *name, struct pw_propertie
goto error;
}
res = 0;
pw_log_info(NAME" %p: saved state '%s%s'", conf, path, name);
pw_log_info("%p: saved state '%s%s'", conf, path, name);
error:
close(sfd);
return res;
@ -319,11 +320,11 @@ static int conf_load(const char *path, struct pw_properties *conf)
int fd;
if ((fd = open(path, O_CLOEXEC | O_RDONLY)) < 0) {
pw_log_warn(NAME" %p: error loading config '%s': %m", conf, path);
pw_log_warn("%p: error loading config '%s': %m", conf, path);
return -errno;
}
pw_log_info(NAME" %p: loading config '%s'", conf, path);
pw_log_info("%p: loading config '%s'", conf, path);
if (fstat(fd, &sbuf) < 0)
goto error_close;
if ((data = mmap(NULL, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0)) == MAP_FAILED)
@ -346,12 +347,12 @@ int pw_conf_load_conf(const char *prefix, const char *name, struct pw_properties
char path[PATH_MAX];
if (name == NULL) {
pw_log_debug(NAME" %p: config name must not be NULL", conf);
pw_log_debug("%p: config name must not be NULL", conf);
return -EINVAL;
}
if (get_config_path(path, sizeof(path), prefix, name) == 0) {
pw_log_debug(NAME" %p: can't load config '%s': %m", conf, path);
pw_log_debug("%p: can't load config '%s': %m", conf, path);
return -ENOENT;
}
@ -364,12 +365,12 @@ int pw_conf_load_state(const char *prefix, const char *name, struct pw_propertie
char path[PATH_MAX];
if (name == NULL) {
pw_log_debug(NAME" %p: config name must not be NULL", conf);
pw_log_debug("%p: config name must not be NULL", conf);
return -EINVAL;
}
if (get_state_path(path, sizeof(path), prefix, name) == 0) {
pw_log_debug(NAME" %p: can't load config '%s': %m", conf, path);
pw_log_debug("%p: can't load config '%s': %m", conf, path);
return -ENOENT;
}
@ -405,18 +406,18 @@ static int load_module(struct pw_context *context, const char *key, const char *
{
if (pw_context_load_module(context, key, args, NULL) == NULL) {
if (errno == ENOENT && flags && strstr(flags, "ifexists") != NULL) {
pw_log_info(NAME" %p: skipping unavailable module %s",
pw_log_info("%p: skipping unavailable module %s",
context, key);
} else if (flags == NULL || strstr(flags, "nofail") == NULL) {
pw_log_error(NAME" %p: could not load mandatory module \"%s\": %m",
pw_log_error("%p: could not load mandatory module \"%s\": %m",
context, key);
return -errno;
} else {
pw_log_info(NAME" %p: could not load optional module \"%s\": %m",
pw_log_info("%p: could not load optional module \"%s\": %m",
context, key);
}
} else {
pw_log_info(NAME" %p: loaded module %s", context, key);
pw_log_info("%p: loaded module %s", context, key);
}
return 0;
}

View file

@ -49,7 +49,8 @@
#include <pipewire/extensions/protocol-native.h>
#define NAME "context"
PW_LOG_TOPIC_EXTERN(log_context);
#define PW_LOG_TOPIC_DEFAULT log_context
#define DEFAULT_CLOCK_RATE 48000u
#define DEFAULT_CLOCK_QUANTUM 1024u
@ -220,7 +221,7 @@ static int try_load_conf(struct pw_context *this, const char *conf_prefix,
return 0;
if ((res = pw_conf_load_conf(conf_prefix, conf_name, conf)) < 0) {
bool skip_prefix = conf_prefix == NULL || conf_name[0] == '/';
pw_log_warn(NAME" %p: can't load config %s%s%s: %s",
pw_log_warn("%p: can't load config %s%s%s: %s",
this,
skip_prefix ? "" : conf_prefix,
skip_prefix ? "" : "/",
@ -238,14 +239,14 @@ static int context_set_freewheel(struct pw_context *context, bool freewheel)
return -EIO;
if (freewheel) {
pw_log_info(NAME" %p: enter freewheel", context);
pw_log_info("%p: enter freewheel", context);
res = pw_thread_utils_drop_rt(thr);
} else {
pw_log_info(NAME" %p: exit freewheel", context);
pw_log_info("%p: exit freewheel", context);
res = pw_thread_utils_acquire_rt(thr, 88);
}
if (res < 0)
pw_log_info(NAME" %p: freewheel error:%s", context, spa_strerror(res));
pw_log_info("%p: freewheel error:%s", context, spa_strerror(res));
context->freewheeling = freewheel;
@ -314,7 +315,7 @@ struct pw_context *pw_context_new(struct pw_loop *main_loop,
this = &impl->this;
pw_log_debug(NAME" %p: new", this);
pw_log_debug("%p: new", this);
if (user_data_size > 0)
this->user_data = SPA_PTROFF(impl, sizeof(struct impl), void);
@ -369,7 +370,7 @@ struct pw_context *pw_context_new(struct pw_loop *main_loop,
if (try_load_conf(this, conf_prefix, conf_name, conf) < 0) {
conf_name = "client.conf";
if ((res = try_load_conf(this, conf_prefix, conf_name, conf)) < 0) {
pw_log_error(NAME" %p: can't load config %s: %s",
pw_log_error("%p: can't load config %s: %s",
this, conf_name, spa_strerror(res));
goto error_free;
}
@ -381,7 +382,7 @@ struct pw_context *pw_context_new(struct pw_loop *main_loop,
if ((str = pw_properties_get(conf, "context.properties")) != NULL) {
pw_properties_update_string(properties, str, strlen(str));
pw_log_info(NAME" %p: parsed context.properties section", this);
pw_log_info("%p: parsed context.properties section", this);
}
if ((str = getenv("PIPEWIRE_CORE"))) {
@ -405,9 +406,9 @@ struct pw_context *pw_context_new(struct pw_loop *main_loop,
if ((str = pw_properties_get(properties, "mem.mlock-all")) != NULL &&
pw_properties_parse_bool(str)) {
if (mlockall(MCL_CURRENT | MCL_FUTURE) < 0)
pw_log_warn(NAME" %p: could not mlockall; %m", impl);
pw_log_warn("%p: could not mlockall; %m", impl);
else
pw_log_info(NAME" %p: mlockall succeeded", impl);
pw_log_info("%p: mlockall succeeded", impl);
}
fill_defaults(this);
@ -456,7 +457,7 @@ struct pw_context *pw_context_new(struct pw_loop *main_loop,
if (impl->dbus_handle == NULL ||
(res = spa_handle_get_interface(impl->dbus_handle,
SPA_TYPE_INTERFACE_DBus, &dbus_iface)) < 0) {
pw_log_warn(NAME" %p: can't load dbus interface: %s", this, spa_strerror(res));
pw_log_warn("%p: can't load dbus interface: %s", this, spa_strerror(res));
} else {
this->support[n_support++] = SPA_SUPPORT_INIT(SPA_TYPE_INTERFACE_DBus, dbus_iface);
}
@ -475,19 +476,19 @@ struct pw_context *pw_context_new(struct pw_loop *main_loop,
if ((res = pw_context_parse_conf_section(this, conf, "context.spa-libs")) < 0)
goto error_free;
pw_log_info(NAME" %p: parsed %d context.spa-libs items", this, res);
pw_log_info("%p: parsed %d context.spa-libs items", this, res);
if ((res = pw_context_parse_conf_section(this, conf, "context.modules")) < 0)
goto error_free;
if (res > 0)
pw_log_info(NAME" %p: parsed %d context.modules items", this, res);
pw_log_info("%p: parsed %d context.modules items", this, res);
else
pw_log_warn(NAME "%p: no modules loaded from context.modules", this);
pw_log_warn("%p: no modules loaded from context.modules", this);
if ((res = pw_context_parse_conf_section(this, conf, "context.objects")) < 0)
goto error_free;
pw_log_info(NAME" %p: parsed %d context.objects items", this, res);
pw_log_info("%p: parsed %d context.objects items", this, res);
if ((res = pw_context_parse_conf_section(this, conf, "context.exec")) < 0)
goto error_free;
pw_log_info(NAME" %p: parsed %d context.exec items", this, res);
pw_log_info("%p: parsed %d context.exec items", this, res);
if ((res = pw_data_loop_start(this->data_loop_impl)) < 0)
goto error_free;
@ -496,7 +497,7 @@ struct pw_context *pw_context_new(struct pw_loop *main_loop,
pw_settings_init(this);
pw_log_debug(NAME" %p: created", this);
pw_log_debug("%p: created", this);
return this;
@ -526,7 +527,7 @@ void pw_context_destroy(struct pw_context *context)
struct pw_impl_metadata *metadata;
struct pw_impl_core *core_impl;
pw_log_debug(NAME" %p: destroy", context);
pw_log_debug("%p: destroy", context);
pw_context_emit_destroy(context);
spa_list_consume(core, &context->core_list, link)
@ -559,7 +560,7 @@ void pw_context_destroy(struct pw_context *context)
spa_list_consume(core_impl, &context->core_impl_list, link)
pw_impl_core_destroy(core_impl);
pw_log_debug(NAME" %p: free", context);
pw_log_debug("%p: free", context);
pw_context_emit_free(context);
if (context->pool)
@ -653,7 +654,7 @@ int pw_context_update_properties(struct pw_context *context, const struct spa_di
int changed;
changed = pw_properties_update(context->properties, dict);
pw_log_debug(NAME" %p: updated %d properties", context, changed);
pw_log_debug("%p: updated %d properties", context, changed);
return changed;
}
@ -726,7 +727,7 @@ struct pw_impl_port *pw_context_find_port(struct pw_context *context,
have_id = id != PW_ID_ANY;
pw_log_debug(NAME" %p: id:%u", context, id);
pw_log_debug("%p: id:%u", context, id);
spa_list_for_each(n, &context->node_list, link) {
if (n->global == NULL)
@ -738,11 +739,11 @@ struct pw_impl_port *pw_context_find_port(struct pw_context *context,
if (!global_can_read(context, n->global))
continue;
pw_log_debug(NAME" %p: node id:%d", context, n->global->id);
pw_log_debug("%p: node id:%d", context, n->global->id);
if (have_id) {
if (n->global->id == id) {
pw_log_debug(NAME" %p: id:%u matches node %p", context, id, n);
pw_log_debug("%p: id:%u matches node %p", context, id, n);
best =
pw_impl_node_find_port(n,
@ -868,7 +869,7 @@ int pw_context_find_format(struct pw_context *context,
out_state = output->state;
in_state = input->state;
pw_log_debug(NAME" %p: finding best format %d %d", context, out_state, in_state);
pw_log_debug("%p: finding best format %d %d", context, out_state, in_state);
/* when a port is configured but the node is idle, we can reconfigure with a different format */
if (out_state > PW_IMPL_PORT_STATE_CONFIGURE && output->node->info.state == PW_NODE_STATE_IDLE)
@ -876,7 +877,7 @@ int pw_context_find_format(struct pw_context *context,
if (in_state > PW_IMPL_PORT_STATE_CONFIGURE && input->node->info.state == PW_NODE_STATE_IDLE)
in_state = PW_IMPL_PORT_STATE_CONFIGURE;
pw_log_debug(NAME" %p: states %d %d", context, out_state, in_state);
pw_log_debug("%p: states %d %d", context, out_state, in_state);
if (in_state == PW_IMPL_PORT_STATE_CONFIGURE && out_state > PW_IMPL_PORT_STATE_CONFIGURE) {
/* only input needs format */
@ -891,7 +892,7 @@ int pw_context_find_format(struct pw_context *context,
*error = spa_aprintf("no output formats");
goto error;
}
pw_log_debug(NAME" %p: Got output format:", context);
pw_log_debug("%p: Got output format:", context);
pw_log_format(SPA_LOG_LEVEL_DEBUG, filter);
if ((res = spa_node_port_enum_params_sync(input->node->node,
@ -899,7 +900,7 @@ int pw_context_find_format(struct pw_context *context,
SPA_PARAM_EnumFormat, &iidx,
filter, format, builder)) <= 0) {
if (res == -ENOENT || res == 0) {
pw_log_debug(NAME" %p: no input format filter, using output format: %s",
pw_log_debug("%p: no input format filter, using output format: %s",
context, spa_strerror(res));
*format = filter;
} else {
@ -920,7 +921,7 @@ int pw_context_find_format(struct pw_context *context,
*error = spa_aprintf("no input format");
goto error;
}
pw_log_debug(NAME" %p: Got input format:", context);
pw_log_debug("%p: Got input format:", context);
pw_log_format(SPA_LOG_LEVEL_DEBUG, filter);
if ((res = spa_node_port_enum_params_sync(output->node->node,
@ -928,7 +929,7 @@ int pw_context_find_format(struct pw_context *context,
SPA_PARAM_EnumFormat, &oidx,
filter, format, builder)) <= 0) {
if (res == -ENOENT || res == 0) {
pw_log_debug(NAME" %p: no output format filter, using input format: %s",
pw_log_debug("%p: no output format filter, using input format: %s",
context, spa_strerror(res));
*format = filter;
} else {
@ -939,14 +940,14 @@ int pw_context_find_format(struct pw_context *context,
} else if (in_state == PW_IMPL_PORT_STATE_CONFIGURE && out_state == PW_IMPL_PORT_STATE_CONFIGURE) {
again:
/* both ports need a format */
pw_log_debug(NAME" %p: do enum input %d", context, iidx);
pw_log_debug("%p: do enum input %d", context, iidx);
spa_pod_builder_init(&fb, fbuf, sizeof(fbuf));
if ((res = spa_node_port_enum_params_sync(input->node->node,
input->direction, input->port_id,
SPA_PARAM_EnumFormat, &iidx,
NULL, &filter, &fb)) != 1) {
if (res == -ENOENT) {
pw_log_debug(NAME" %p: no input filter", context);
pw_log_debug("%p: no input filter", context);
filter = NULL;
} else {
if (res < 0)
@ -956,7 +957,7 @@ int pw_context_find_format(struct pw_context *context,
goto error;
}
}
pw_log_debug(NAME" %p: enum output %d with filter: %p", context, oidx, filter);
pw_log_debug("%p: enum output %d with filter: %p", context, oidx, filter);
pw_log_format(SPA_LOG_LEVEL_DEBUG, filter);
if ((res = spa_node_port_enum_params_sync(output->node->node,
@ -971,7 +972,7 @@ int pw_context_find_format(struct pw_context *context,
goto error;
}
pw_log_debug(NAME" %p: Got filtered:", context);
pw_log_debug("%p: Got filtered:", context);
pw_log_format(SPA_LOG_LEVEL_DEBUG, *format);
} else {
res = -EBADF;
@ -1114,11 +1115,11 @@ static void suspend_driver(struct pw_context *context, struct pw_impl_node *n)
spa_list_for_each(s, &n->follower_list, follower_link) {
if (s == n)
continue;
pw_log_debug(NAME" %p: follower %p: '%s' suspend",
pw_log_debug("%p: follower %p: '%s' suspend",
context, s, s->name);
pw_impl_node_set_state(s, PW_NODE_STATE_SUSPENDED);
}
pw_log_debug(NAME" %p: driver %p: '%s' suspend",
pw_log_debug("%p: driver %p: '%s' suspend",
context, n, n->name);
pw_impl_node_set_state(n, PW_NODE_STATE_SUSPENDED);
}
@ -1150,7 +1151,7 @@ int pw_context_recalc_graph(struct pw_context *context, const char *reason)
uint32_t *rates, n_rates, def_rate;
bool freewheel = false, force_rate;
pw_log_info(NAME" %p: busy:%d reason:%s", context, impl->recalc, reason);
pw_log_info("%p: busy:%d reason:%s", context, impl->recalc, reason);
if (impl->recalc) {
impl->recalc_pending = true;
@ -1189,7 +1190,7 @@ again:
continue;
spa_list_for_each(s, &n->follower_list, follower_link) {
pw_log_debug(NAME" %p: driver %p: follower %p %s: active:%d",
pw_log_debug("%p: driver %p: follower %p %s: active:%d",
context, n, s, s->name, s->active);
if (s != n && s->active) {
/* if the driving node has active followers, it
@ -1220,7 +1221,7 @@ again:
if (!n->visited) {
struct pw_impl_node *t;
pw_log_debug(NAME" %p: unassigned node %p: '%s' active:%d want_driver:%d target:%p",
pw_log_debug("%p: unassigned node %p: '%s' active:%d want_driver:%d target:%p",
context, n, n->name, n->active, n->want_driver, target);
t = n->want_driver ? target : NULL;
@ -1338,13 +1339,13 @@ again:
n->rt.position->clock.duration = quantum;
}
pw_log_debug(NAME" %p: driving %p running:%d passive:%d quantum:%u '%s'",
pw_log_debug("%p: driving %p running:%d passive:%d quantum:%u '%s'",
context, n, running, n->passive, quantum, n->name);
spa_list_for_each(s, &n->follower_list, follower_link) {
if (s == n)
continue;
pw_log_debug(NAME" %p: follower %p: active:%d '%s'",
pw_log_debug("%p: follower %p: active:%d '%s'",
context, s, s->active, s->name);
ensure_state(s, running);
}
@ -1373,13 +1374,13 @@ int pw_context_add_spa_lib(struct pw_context *context,
if ((err = regcomp(&entry->regex, factory_regexp, REG_EXTENDED | REG_NOSUB)) != 0) {
char errbuf[1024];
regerror(err, &entry->regex, errbuf, sizeof(errbuf));
pw_log_error(NAME" %p: can compile regex: %s", context, errbuf);
pw_log_error("%p: can compile regex: %s", context, errbuf);
pw_array_remove(&context->factory_lib, entry);
return -EINVAL;
}
entry->lib = strdup(lib);
pw_log_debug(NAME" %p: map factory regex '%s' to '%s", context,
pw_log_debug("%p: map factory regex '%s' to '%s", context,
factory_regexp, lib);
return 0;
}
@ -1406,14 +1407,14 @@ struct spa_handle *pw_context_load_spa_handle(struct pw_context *context,
uint32_t n_support;
struct spa_handle *handle;
pw_log_debug(NAME" %p: load factory %s", context, factory_name);
pw_log_debug("%p: load factory %s", context, factory_name);
lib = pw_context_find_spa_lib(context, factory_name);
if (lib == NULL && info != NULL)
lib = spa_dict_lookup(info, SPA_KEY_LIBRARY_NAME);
if (lib == NULL) {
errno = ENOENT;
pw_log_warn(NAME" %p: no library for %s: %m",
pw_log_warn("%p: no library for %s: %m",
context, factory_name);
return NULL;
}

View file

@ -37,12 +37,13 @@
#include "pipewire/extensions/protocol-native.h"
#define NAME "core"
PW_LOG_TOPIC_EXTERN(log_core);
#define PW_LOG_TOPIC_DEFAULT log_core
static void core_event_ping(void *data, uint32_t id, int seq)
{
struct pw_core *this = data;
pw_log_debug(NAME" %p: object %u ping %u", this, id, seq);
pw_log_debug("%p: object %u ping %u", this, id, seq);
pw_core_pong(this->core, id, seq);
}
@ -51,7 +52,7 @@ static void core_event_done(void *data, uint32_t id, int seq)
struct pw_core *this = data;
struct pw_proxy *proxy;
pw_log_trace(NAME" %p: object %u done %d", this, id, seq);
pw_log_trace("%p: object %u done %d", this, id, seq);
proxy = pw_map_lookup(&this->objects, id);
if (proxy)
@ -65,7 +66,7 @@ static void core_event_error(void *data, uint32_t id, int seq, int res, const ch
proxy = pw_map_lookup(&this->objects, id);
pw_log_debug(NAME" %p: proxy %p id:%u: bound:%d seq:%d res:%d (%s) msg:\"%s\"",
pw_log_debug("%p: proxy %p id:%u: bound:%d seq:%d res:%d (%s) msg:\"%s\"",
this, proxy, id, proxy ? proxy->bound_id : SPA_ID_INVALID,
seq, res, spa_strerror(res), message);
if (proxy)
@ -77,7 +78,7 @@ static void core_event_remove_id(void *data, uint32_t id)
struct pw_core *this = data;
struct pw_proxy *proxy;
pw_log_debug(NAME" %p: object remove %u", this, id);
pw_log_debug("%p: object remove %u", this, id);
if ((proxy = pw_map_lookup(&this->objects, id)) != NULL)
pw_proxy_remove(proxy);
}
@ -87,7 +88,7 @@ static void core_event_bound_id(void *data, uint32_t id, uint32_t global_id)
struct pw_core *this = data;
struct pw_proxy *proxy;
pw_log_debug(NAME" %p: proxy id %u bound %u", this, id, global_id);
pw_log_debug("%p: proxy id %u bound %u", this, id, global_id);
if ((proxy = pw_map_lookup(&this->objects, id)) != NULL) {
pw_proxy_set_bound_id(proxy, global_id);
}
@ -98,11 +99,11 @@ static void core_event_add_mem(void *data, uint32_t id, uint32_t type, int fd, u
struct pw_core *this = data;
struct pw_memblock *m;
pw_log_debug(NAME" %p: add mem %u type:%u fd:%d flags:%u", this, id, type, fd, flags);
pw_log_debug("%p: add mem %u type:%u fd:%d flags:%u", this, id, type, fd, flags);
m = pw_mempool_import(this->pool, flags, type, fd);
if (m->id != id) {
pw_log_error(NAME" %p: invalid mem id %u, fd:%d expected %u",
pw_log_error("%p: invalid mem id %u, fd:%d expected %u",
this, id, fd, m->id);
pw_proxy_errorf(&this->proxy, -EINVAL, "invalid mem id %u, expected %u", id, m->id);
pw_memblock_unref(m);
@ -112,7 +113,7 @@ static void core_event_add_mem(void *data, uint32_t id, uint32_t type, int fd, u
static void core_event_remove_mem(void *data, uint32_t id)
{
struct pw_core *this = data;
pw_log_debug(NAME" %p: remove mem %u", this, id);
pw_log_debug("%p: remove mem %u", this, id);
pw_mempool_remove_id(this->pool, id);
}
@ -146,7 +147,7 @@ int pw_core_update_properties(struct pw_core *core, const struct spa_dict *dict)
changed = pw_properties_update(core->properties, dict);
pw_log_debug(NAME" %p: updated %d properties", core, changed);
pw_log_debug("%p: updated %d properties", core, changed);
if (!changed)
return 0;
@ -186,7 +187,7 @@ static int destroy_proxy(void *object, void *data)
return 0;
if (object != core) {
pw_log_warn(NAME" %p: leaked proxy %p id:%d", core, p, p->id);
pw_log_warn("%p: leaked proxy %p id:%d", core, p, p->id);
p->core = NULL;
}
return 0;
@ -203,7 +204,7 @@ static void proxy_core_removed(void *data)
core->removed = true;
pw_log_debug(NAME" %p: core proxy removed", core);
pw_log_debug("%p: core proxy removed", core);
spa_list_remove(&core->link);
spa_list_for_each_safe(stream, s2, &core->stream_list, link)
@ -225,7 +226,7 @@ static void proxy_core_destroy(void *data)
core->destroyed = true;
pw_log_debug(NAME" %p: core proxy destroy", core);
pw_log_debug("%p: core proxy destroy", core);
spa_list_consume(stream, &core->stream_list, link)
pw_stream_destroy(stream);
@ -245,7 +246,7 @@ static void proxy_core_destroy(void *data)
pw_map_clear(&core->objects);
pw_log_debug(NAME" %p: free", core);
pw_log_debug("%p: free", core);
pw_properties_free(core->properties);
spa_hook_remove(&core->core_listener);
@ -290,14 +291,14 @@ struct pw_proxy *pw_core_export(struct pw_core *core,
res = -errno;
goto error_proxy_failed;
}
pw_log_debug(NAME" %p: export:%s proxy:%p", core, type, proxy);
pw_log_debug("%p: export:%s proxy:%p", core, type, proxy);
return proxy;
error_export_type:
pw_log_error(NAME" %p: can't export type %s: %s", core, type, spa_strerror(res));
pw_log_error("%p: can't export type %s: %s", core, type, spa_strerror(res));
goto exit;
error_proxy_failed:
pw_log_error(NAME" %p: failed to create proxy: %s", core, spa_strerror(res));
pw_log_error("%p: failed to create proxy: %s", core, spa_strerror(res));
goto exit;
exit:
errno = -res;
@ -317,7 +318,7 @@ static struct pw_core *core_new(struct pw_context *context,
res = -errno;
goto exit_cleanup;
}
pw_log_debug(NAME" %p: new", p);
pw_log_debug("%p: new", p);
if (properties == NULL)
properties = pw_properties_new(NULL, NULL);
@ -375,17 +376,17 @@ static struct pw_core *core_new(struct pw_context *context,
error_properties:
res = -errno;
pw_log_error(NAME" %p: can't create properties: %m", p);
pw_log_error("%p: can't create properties: %m", p);
goto exit_free;
error_protocol:
pw_log_error(NAME" %p: can't find protocol '%s': %s", p, protocol_name, spa_strerror(res));
pw_log_error("%p: can't find protocol '%s': %s", p, protocol_name, spa_strerror(res));
goto exit_free;
error_connection:
res = -errno;
pw_log_error(NAME" %p: can't create new native protocol connection: %m", p);
pw_log_error("%p: can't create new native protocol connection: %m", p);
goto exit_free;
error_proxy:
pw_log_error(NAME" %p: can't initialize proxy: %s", p, spa_strerror(res));
pw_log_error("%p: can't initialize proxy: %s", p, spa_strerror(res));
goto exit_free;
exit_free:
@ -408,7 +409,7 @@ pw_context_connect(struct pw_context *context, struct pw_properties *properties,
if (core == NULL)
return NULL;
pw_log_debug(NAME" %p: connect", core);
pw_log_debug("%p: connect", core);
if ((res = pw_protocol_client_connect(core->conn,
&core->properties->dict,
@ -435,7 +436,7 @@ pw_context_connect_fd(struct pw_context *context, int fd, struct pw_properties *
if (core == NULL)
return NULL;
pw_log_debug(NAME" %p: connect fd:%d", core, fd);
pw_log_debug("%p: connect fd:%d", core, fd);
if ((res = pw_protocol_client_connect_fd(core->conn, fd, true)) < 0)
goto error_free;
@ -467,14 +468,14 @@ SPA_EXPORT
int pw_core_steal_fd(struct pw_core *core)
{
int fd = pw_protocol_client_steal_fd(core->conn);
pw_log_debug(NAME" %p: fd:%d", core, fd);
pw_log_debug("%p: fd:%d", core, fd);
return fd;
}
SPA_EXPORT
int pw_core_set_paused(struct pw_core *core, bool paused)
{
pw_log_debug(NAME" %p: state:%s", core, paused ? "pause" : "resume");
pw_log_debug("%p: state:%s", core, paused ? "pause" : "resume");
return pw_protocol_client_set_paused(core->conn, paused);
}
@ -487,7 +488,7 @@ struct pw_mempool * pw_core_get_mempool(struct pw_core *core)
SPA_EXPORT
int pw_core_disconnect(struct pw_core *core)
{
pw_log_debug(NAME" %p: disconnect", core);
pw_log_debug("%p: disconnect", core);
pw_proxy_remove(&core->proxy);
pw_proxy_destroy(&core->proxy);
return 0;

View file

@ -33,7 +33,8 @@
#include <spa/debug/types.h>
#include <spa/utils/string.h>
#define NAME "global"
PW_LOG_TOPIC_EXTERN(log_global);
#define PW_LOG_TOPIC_DEFAULT log_global
/** \cond */
struct impl {
@ -96,14 +97,14 @@ pw_global_new(struct pw_context *context,
this->id = pw_map_insert_new(&context->globals, this);
if (this->id == SPA_ID_INVALID) {
res = -errno;
pw_log_error(NAME" %p: can't allocate new id: %m", this);
pw_log_error("%p: can't allocate new id: %m", this);
goto error_free;
}
spa_list_init(&this->resource_list);
spa_hook_list_init(&this->listener_list);
pw_log_debug(NAME" %p: new %s %d", this, this->type, this->id);
pw_log_debug("%p: new %s %d", this, this->type, this->id);
return this;
@ -145,7 +146,7 @@ int pw_global_register(struct pw_global *global)
&global->properties->dict);
}
pw_log_debug(NAME" %p: registered %u", global, global->id);
pw_log_debug("%p: registered %u", global, global->id);
pw_context_emit_global_added(context, global);
return 0;
@ -169,7 +170,7 @@ static int global_unregister(struct pw_global *global)
spa_list_remove(&global->link);
global->registered = false;
pw_log_debug(NAME" %p: unregistered %u", global, global->id);
pw_log_debug("%p: unregistered %u", global, global->id);
pw_context_emit_global_removed(context, global);
return 0;
@ -230,7 +231,7 @@ SPA_EXPORT
int pw_global_add_resource(struct pw_global *global, struct pw_resource *resource)
{
resource->global = global;
pw_log_debug(NAME" %p: resource %p id:%d global:%d", global, resource,
pw_log_debug("%p: resource %p id:%d global:%d", global, resource,
resource->id, global->id);
spa_list_append(&global->resource_list, &resource->link);
pw_resource_set_bound_id(resource, global->id);
@ -302,7 +303,7 @@ error_bind:
goto error_exit;
error_exit:
pw_log_error(NAME" %p: can't bind global %u/%u: %d (%s)", global, id,
pw_log_error("%p: can't bind global %u/%u: %d (%s)", global, id,
version, res, spa_strerror(res));
pw_map_insert_at(&client->objects, id, NULL);
if (client->core_resource)
@ -321,7 +322,7 @@ int pw_global_update_permissions(struct pw_global *global, struct pw_impl_client
do_hide = PW_PERM_IS_R(old_permissions) && !PW_PERM_IS_R(new_permissions);
do_show = !PW_PERM_IS_R(old_permissions) && PW_PERM_IS_R(new_permissions);
pw_log_debug(NAME" %p: client %p permissions changed %d %08x -> %08x",
pw_log_debug("%p: client %p permissions changed %d %08x -> %08x",
global, client, global->id, old_permissions, new_permissions);
pw_global_emit_permissions_changed(global, client, old_permissions, new_permissions);
@ -373,7 +374,7 @@ void pw_global_destroy(struct pw_global *global)
global->destroyed = true;
pw_log_debug(NAME" %p: destroy %u", global, global->id);
pw_log_debug("%p: destroy %u", global, global->id);
pw_global_emit_destroy(global);
spa_list_consume(resource, &global->resource_list, link)
@ -381,7 +382,7 @@ void pw_global_destroy(struct pw_global *global)
global_unregister(global);
pw_log_debug(NAME" %p: free", global);
pw_log_debug("%p: free", global);
pw_global_emit_free(global);
pw_map_remove(&context->globals, global->id);

View file

@ -30,7 +30,8 @@
#include "pipewire/impl.h"
#include "pipewire/private.h"
#define NAME "client"
PW_LOG_TOPIC_EXTERN(log_client);
#define PW_LOG_TOPIC_DEFAULT log_client
/** \cond */
struct impl {
@ -130,7 +131,7 @@ static int client_error(void *object, uint32_t id, int res, const char *error)
struct pw_impl_client *client = data->client;
struct error_data d = { id, res, error };
pw_log_debug(NAME" %p: error for global %d", client, id);
pw_log_debug("%p: error for global %d", client, id);
pw_map_for_each(&client->objects, error_resource, &d);
return 0;
}
@ -162,7 +163,7 @@ static int update_properties(struct pw_impl_client *client, const struct spa_dic
if (spa_strstartswith(dict->items[i].key, "pipewire.") &&
(old = pw_properties_get(client->properties, dict->items[i].key)) != NULL &&
(dict->items[i].value == NULL || !spa_streq(old, dict->items[i].value))) {
pw_log_warn(NAME" %p: refuse property update '%s' from '%s' to '%s'",
pw_log_warn("%p: refuse property update '%s' from '%s' to '%s'",
client, dict->items[i].key, old,
dict->items[i].value);
continue;
@ -175,7 +176,7 @@ static int update_properties(struct pw_impl_client *client, const struct spa_dic
}
client->info.props = &client->properties->dict;
pw_log_debug(NAME" %p: updated %d properties", client, changed);
pw_log_debug("%p: updated %d properties", client, changed);
if (!changed)
return 0;
@ -312,7 +313,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
&data->object_listener,
&client_methods, data);
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
if (resource->id == 1)
@ -325,7 +326,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
return 0;
error_resource:
pw_log_error(NAME" %p: can't create client resource: %m", this);
pw_log_error("%p: can't create client resource: %m", this);
return -errno;
}
@ -334,7 +335,7 @@ static void pool_added(void *data, struct pw_memblock *block)
struct impl *impl = data;
struct pw_impl_client *client = &impl->this;
pw_log_debug(NAME" %p: added block %d", client, block->id);
pw_log_debug("%p: added block %d", client, block->id);
if (client->core_resource) {
pw_core_resource_add_mem(client->core_resource,
block->id, block->type, block->fd,
@ -346,7 +347,7 @@ static void pool_removed(void *data, struct pw_memblock *block)
{
struct impl *impl = data;
struct pw_impl_client *client = &impl->this;
pw_log_debug(NAME" %p: removed block %d", client, block->id);
pw_log_debug("%p: removed block %d", client, block->id);
if (client->core_resource)
pw_core_resource_remove_mem(client->core_resource, block->id);
}
@ -365,7 +366,7 @@ context_global_removed(void *data, struct pw_global *global)
struct pw_permission *p;
p = find_permission(client, global->id);
pw_log_debug(NAME" %p: global %d removed, %p", client, global->id, p);
pw_log_debug("%p: global %d removed, %p", client, global->id, p);
if (p->id != PW_ID_ANY)
p->permissions = PW_PERM_INVALID;
}
@ -400,7 +401,7 @@ struct pw_impl_client *pw_context_create_client(struct pw_impl_core *core,
}
this = &impl->this;
pw_log_debug(NAME" %p: new", this);
pw_log_debug("%p: new", this);
this->context = core->context;
this->core = core;
@ -488,7 +489,7 @@ int pw_impl_client_register(struct pw_impl_client *client,
if (client->registered)
goto error_existed;
pw_log_debug(NAME" %p: register", client);
pw_log_debug("%p: register", client);
client->global = pw_global_new(context,
PW_TYPE_INTERFACE_Client,
@ -578,7 +579,7 @@ void pw_impl_client_destroy(struct pw_impl_client *client)
{
struct impl *impl = SPA_CONTAINER_OF(client, struct impl, this);
pw_log_debug(NAME" %p: destroy", client);
pw_log_debug("%p: destroy", client);
pw_impl_client_emit_destroy(client);
spa_hook_remove(&impl->context_listener);
@ -593,7 +594,7 @@ void pw_impl_client_destroy(struct pw_impl_client *client)
pw_global_destroy(client->global);
}
pw_log_debug(NAME" %p: free", impl);
pw_log_debug("%p: free", impl);
pw_impl_client_emit_free(client);
spa_hook_list_clean(&client->listener_list);
@ -666,7 +667,7 @@ int pw_impl_client_update_permissions(struct pw_impl_client *client,
if (context->current_client == client)
new_perm &= old_perm;
pw_log_debug(NAME" %p: set default permissions %08x -> %08x",
pw_log_debug("%p: set default permissions %08x -> %08x",
client, old_perm, new_perm);
def->permissions = new_perm;
@ -685,12 +686,12 @@ int pw_impl_client_update_permissions(struct pw_impl_client *client,
global = pw_context_find_global(context, permissions[i].id);
if (global == NULL || global->id != permissions[i].id) {
pw_log_warn(NAME" %p: invalid global %d", client, permissions[i].id);
pw_log_warn("%p: invalid global %d", client, permissions[i].id);
continue;
}
p = ensure_permissions(client, permissions[i].id);
if (p == NULL) {
pw_log_warn(NAME" %p: can't ensure permission: %m", client);
pw_log_warn("%p: can't ensure permission: %m", client);
return -errno;
}
if ((def = find_permission(client, PW_ID_ANY)) == NULL)
@ -701,7 +702,7 @@ int pw_impl_client_update_permissions(struct pw_impl_client *client,
if (context->current_client == client)
new_perm &= old_perm;
pw_log_debug(NAME" %p: set global %d permissions %08x -> %08x",
pw_log_debug("%p: set global %d permissions %08x -> %08x",
client, global->id, old_perm, new_perm);
p->permissions = new_perm;
@ -716,7 +717,7 @@ SPA_EXPORT
void pw_impl_client_set_busy(struct pw_impl_client *client, bool busy)
{
if (client->busy != busy) {
pw_log_debug(NAME" %p: busy %d", client, busy);
pw_log_debug("%p: busy %d", client, busy);
client->busy = busy;
pw_impl_client_emit_busy_changed(client, busy);
}

View file

@ -69,7 +69,8 @@ ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
#include "pipewire/extensions/protocol-native.h"
#define NAME "impl-core"
PW_LOG_TOPIC_EXTERN(log_core);
#define PW_LOG_TOPIC_DEFAULT log_core
struct resource_data {
struct pw_resource *resource;
@ -202,7 +203,7 @@ static int core_hello(void *object, uint32_t version)
struct pw_impl_core *this = client->core;
int res;
pw_log_debug(NAME" %p: hello %d from resource %p", context, version, resource);
pw_log_debug("%p: hello %d from resource %p", context, version, resource);
pw_map_for_each(&client->objects, destroy_resource, client);
pw_mempool_clear(client->pool);
@ -221,7 +222,7 @@ static int core_hello(void *object, uint32_t version)
static int core_sync(void *object, uint32_t id, int seq)
{
struct pw_resource *resource = object;
pw_log_trace(NAME" %p: sync %d for resource %d", resource->context, seq, id);
pw_log_trace("%p: sync %d for resource %d", resource->context, seq, id);
pw_core_resource_done(resource, id, seq);
return 0;
}
@ -232,7 +233,7 @@ static int core_pong(void *object, uint32_t id, int seq)
struct pw_impl_client *client = resource->client;
struct pw_resource *r;
pw_log_debug(NAME" %p: pong %d for resource %d", resource->context, seq, id);
pw_log_debug("%p: pong %d for resource %d", resource->context, seq, id);
if ((r = pw_impl_client_find_resource(client, id)) == NULL)
return -EINVAL;
@ -247,7 +248,7 @@ static int core_error(void *object, uint32_t id, int seq, int res, const char *m
struct pw_impl_client *client = resource->client;
struct pw_resource *r;
pw_log_error(NAME" %p: error %d for resource %d: %s", resource->context, res, id, message);
pw_log_error("%p: error %d for resource %d: %s", resource->context, res, id, message);
if ((r = pw_impl_client_find_resource(client, id)) == NULL)
return -EINVAL;
@ -362,18 +363,18 @@ core_create_object(void *object,
error_no_factory:
res = -ENOENT;
pw_log_debug(NAME" %p: can't find factory '%s'", context, factory_name);
pw_log_debug("%p: can't find factory '%s'", context, factory_name);
pw_resource_errorf_id(resource, new_id, res, "unknown factory name %s", factory_name);
goto error_exit;
error_version:
error_type:
res = -EPROTO;
pw_log_debug(NAME" %p: invalid resource type/version", context);
pw_log_debug("%p: invalid resource type/version", context);
pw_resource_errorf_id(resource, new_id, res, "wrong resource type/version");
goto error_exit;
error_properties:
res = -errno;
pw_log_debug(NAME" %p: can't create properties: %m", context);
pw_log_debug("%p: can't create properties: %m", context);
pw_resource_errorf_id(resource, new_id, res, "can't create properties: %s", spa_strerror(res));
goto error_exit;
error_create_failed:
@ -392,7 +393,7 @@ static int core_destroy(void *object, void *proxy)
struct pw_impl_client *client = resource->client;
struct pw_impl_core *this = client->core;
struct pw_resource *r = proxy;
pw_log_debug(NAME" %p: destroy resource %p from client %p", this, r, client);
pw_log_debug("%p: destroy resource %p from client %p", this, r, client);
pw_resource_destroy(r);
return 0;
}
@ -458,7 +459,7 @@ struct pw_impl_core *pw_context_create_core(struct pw_context *context,
if (user_data_size > 0)
this->user_data = SPA_PTROFF(this, sizeof(*this), void);
pw_log_debug(NAME" %p: new %s", this, name);
pw_log_debug("%p: new %s", this, name);
return this;
@ -478,7 +479,7 @@ struct pw_impl_core *pw_context_get_default_core(struct pw_context *context)
SPA_EXPORT
void pw_impl_core_destroy(struct pw_impl_core *core)
{
pw_log_debug(NAME" %p: destroy", core);
pw_log_debug("%p: destroy", core);
pw_impl_core_emit_destroy(core);
if (core->registered)
@ -490,7 +491,7 @@ void pw_impl_core_destroy(struct pw_impl_core *core)
}
pw_impl_core_emit_free(core);
pw_log_debug(NAME" %p: free", core);
pw_log_debug("%p: free", core);
spa_hook_list_clean(&core->listener_list);
@ -554,12 +555,12 @@ global_bind(void *_data,
this->info.change_mask = 0;
}
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
return 0;
error:
pw_log_error(NAME" %p: can't create resource: %m", this);
pw_log_error("%p: can't create resource: %m", this);
return res;
}
@ -591,7 +592,7 @@ int pw_impl_core_update_properties(struct pw_impl_core *core, const struct spa_d
changed = pw_properties_update(core->properties, dict);
core->info.props = &core->properties->dict;
pw_log_debug(NAME" %p: updated %d properties", core, changed);
pw_log_debug("%p: updated %d properties", core, changed);
if (!changed)
return 0;

View file

@ -32,7 +32,8 @@
#include "pipewire/impl.h"
#include "pipewire/private.h"
#define NAME "device"
PW_LOG_TOPIC_EXTERN(log_device);
#define PW_LOG_TOPIC_DEFAULT log_device
struct impl {
struct pw_impl_device this;
@ -133,7 +134,7 @@ static void check_properties(struct pw_impl_device *device)
(device->name == NULL || !spa_streq(str, device->name))) {
free(device->name);
device->name = strdup(str);
pw_log_debug(NAME" %p: name '%s'", device, device->name);
pw_log_debug("%p: name '%s'", device, device->name);
}
}
@ -157,7 +158,7 @@ struct pw_impl_device *pw_context_create_device(struct pw_context *context,
this = &impl->this;
this->name = strdup("device");
pw_log_debug(NAME" %p: new", this);
pw_log_debug("%p: new", this);
if (properties == NULL)
properties = pw_properties_new(NULL, NULL);
@ -196,7 +197,7 @@ void pw_impl_device_destroy(struct pw_impl_device *device)
struct impl *impl = SPA_CONTAINER_OF(device, struct impl, this);
struct object_data *od;
pw_log_debug(NAME" %p: destroy", device);
pw_log_debug("%p: destroy", device);
pw_impl_device_emit_destroy(device);
spa_list_consume(od, &device->object_list, link)
@ -212,7 +213,7 @@ void pw_impl_device_destroy(struct pw_impl_device *device)
spa_hook_remove(&device->global_listener);
pw_global_destroy(device->global);
}
pw_log_debug(NAME" %p: free", device);
pw_log_debug("%p: free", device);
pw_impl_device_emit_free(device);
pw_param_clear(&impl->param_list, SPA_ID_INVALID);
@ -255,7 +256,7 @@ static void resource_pong(void *data, int seq)
{
struct resource_data *d = data;
struct pw_resource *resource = d->resource;
pw_log_debug(NAME" %p: resource %p: got pong %d", d->device,
pw_log_debug("%p: resource %p: got pong %d", d->device,
resource, seq);
}
@ -269,7 +270,7 @@ static void result_device_params(void *data, int seq, int res, uint32_t type, co
{
struct result_device_params_data *d = data;
struct impl *impl = d->impl;
pw_log_debug(NAME" %p: type %d", impl, type);
pw_log_debug("%p: type %d", impl, type);
switch (type) {
case SPA_RESULT_TYPE_DEVICE_PARAMS:
@ -277,7 +278,7 @@ static void result_device_params(void *data, int seq, int res, uint32_t type, co
const struct spa_result_device_params *r = result;
d->callback(d->data, seq, r->id, r->index, r->next, r->param);
if (d->cache) {
pw_log_debug(NAME" %p: add param %d", impl, r->id);
pw_log_debug("%p: add param %d", impl, r->id);
if (d->count++ == 0)
pw_param_add(&impl->pending_list, r->id, NULL);
pw_param_add(&impl->pending_list, r->id, r->param);
@ -316,7 +317,7 @@ int pw_impl_device_for_each_param(struct pw_impl_device *device,
if (max == 0)
max = UINT32_MAX;
pw_log_debug(NAME" %p: params id:%d (%s) index:%u max:%u cached:%d", device, param_id,
pw_log_debug("%p: params id:%d (%s) index:%u max:%u cached:%d", device, param_id,
spa_debug_type_find_name(spa_type_param, param_id),
index, max, pi->user);
@ -342,7 +343,7 @@ int pw_impl_device_for_each_param(struct pw_impl_device *device,
if (spa_pod_filter(&b, &result.param, p->param, filter) != 0)
continue;
pw_log_debug(NAME " %p: %d param %u", device, seq, result.index);
pw_log_debug("%p: %d param %u", device, seq, result.index);
result_device_params(&user_data, seq, 0, SPA_RESULT_TYPE_DEVICE_PARAMS, &result);
if (++count == max)
@ -381,7 +382,7 @@ static void result_device_params_async(void *data, int seq, int res, uint32_t ty
{
struct resource_data *d = data;
pw_log_debug(NAME" %p: async result %d %d (%d/%d)", d->device,
pw_log_debug("%p: async result %d %d (%d/%d)", d->device,
res, seq, d->seq, d->end);
if (seq == d->seq)
@ -443,7 +444,7 @@ static int device_subscribe_params(void *object, uint32_t *ids, uint32_t n_ids)
for (i = 0; i < n_ids; i++) {
data->subscribe_ids[i] = ids[i];
pw_log_debug(NAME" %p: resource %p subscribe param id:%d (%s)",
pw_log_debug("%p: resource %p subscribe param id:%d (%s)",
data->device, resource, ids[i],
spa_debug_type_find_name(spa_type_param, ids[i]));
device_enum_params(data, 1, ids[i], 0, UINT32_MAX, NULL);
@ -455,7 +456,7 @@ static void result_device_done(void *data, int seq, int res, uint32_t type, cons
{
struct resource_data *d = data;
pw_log_debug(NAME" %p: async result %d %d (%d/%d)", d->device,
pw_log_debug("%p: async result %d %d (%d/%d)", d->device,
res, seq, d->seq, d->end);
if (seq == d->end)
@ -523,7 +524,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
&data->object_listener,
&device_methods, data);
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
this->info.change_mask = PW_DEVICE_CHANGE_MASK_ALL;
@ -533,7 +534,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
return 0;
error_resource:
pw_log_error(NAME" %p: can't create device resource: %m", this);
pw_log_error("%p: can't create device resource: %m", this);
return -errno;
}
@ -658,7 +659,7 @@ static int update_properties(struct pw_impl_device *device, const struct spa_dic
changed = pw_properties_update_ignore(device->properties, dict, filter ? ignored : NULL);
device->info.props = &device->properties->dict;
pw_log_debug(NAME" %p: updated %d properties", device, changed);
pw_log_debug("%p: updated %d properties", device, changed);
if (!changed)
return 0;
@ -690,7 +691,7 @@ static int notify_param(void *data, int seq, uint32_t id,
if (!resource_is_subscribed(resource, id))
continue;
pw_log_debug(NAME" %p: resource %p notify param %d", device, resource, id);
pw_log_debug("%p: resource %p notify param %d", device, resource, id);
pw_device_resource_param(resource, seq, id, index, next, param);
}
return 0;
@ -704,7 +705,7 @@ static void emit_params(struct pw_impl_device *device, uint32_t *changed_ids, ui
if (device->global == NULL)
return;
pw_log_debug(NAME" %p: emit %d params", device, n_changed_ids);
pw_log_debug("%p: emit %d params", device, n_changed_ids);
for (i = 0; i < n_changed_ids; i++) {
struct pw_resource *resource;
@ -720,7 +721,7 @@ static void emit_params(struct pw_impl_device *device, uint32_t *changed_ids, ui
if ((res = pw_impl_device_for_each_param(device, 1, changed_ids[i], 0, UINT32_MAX,
NULL, notify_param, device)) < 0) {
pw_log_error(NAME" %p: error %d (%s)", device, res, spa_strerror(res));
pw_log_error("%p: error %d (%s)", device, res, spa_strerror(res));
}
}
}
@ -730,7 +731,7 @@ static void device_info(void *data, const struct spa_device_info *info)
struct pw_impl_device *device = data;
uint32_t changed_ids[MAX_PARAMS], n_changed_ids = 0;
pw_log_debug(NAME" %p: flags:%08"PRIx64" change_mask:%08"PRIx64,
pw_log_debug("%p: flags:%08"PRIx64" change_mask:%08"PRIx64,
device, info->flags, info->change_mask);
if (info->change_mask & SPA_DEVICE_CHANGE_MASK_PROPS) {
@ -745,7 +746,7 @@ static void device_info(void *data, const struct spa_device_info *info)
for (i = 0; i < device->info.n_params; i++) {
uint32_t id = info->params[i].id;
pw_log_debug(NAME" %p: param %d id:%d (%s) %08x:%08x", device, i,
pw_log_debug("%p: param %d id:%d (%s) %08x:%08x", device, i,
id, spa_debug_type_find_name(spa_type_param, id),
device->info.params[i].flags, info->params[i].flags);
@ -753,7 +754,7 @@ static void device_info(void *data, const struct spa_device_info *info)
if (device->info.params[i].flags == info->params[i].flags)
continue;
pw_log_debug(NAME" %p: update param %d", device, id);
pw_log_debug("%p: update param %d", device, id);
device->info.params[i] = info->params[i];
device->info.params[i].user = 0;
@ -778,19 +779,19 @@ static void device_add_object(struct pw_impl_device *device, uint32_t id,
struct object_data *od = NULL;
if (info->factory_name == NULL) {
pw_log_debug(NAME" %p: missing factory name", device);
pw_log_debug("%p: missing factory name", device);
return;
}
handle = pw_context_load_spa_handle(context, info->factory_name, info->props);
if (handle == NULL) {
pw_log_warn(NAME" %p: can't load handle %s: %m",
pw_log_warn("%p: can't load handle %s: %m",
device, info->factory_name);
return;
}
if ((res = spa_handle_get_interface(handle, info->type, &iface)) < 0) {
pw_log_error(NAME" %p: can't get %s interface: %s", device, info->type,
pw_log_error("%p: can't get %s interface: %s", device, info->type,
spa_strerror(res));
return;
}
@ -818,7 +819,7 @@ static void device_add_object(struct pw_impl_device *device, uint32_t id,
pw_impl_device_add_listener(dev, &od->listener, &device_object_events, od);
pw_impl_device_set_implementation(dev, iface);
} else {
pw_log_warn(NAME" %p: unknown type %s", device, info->type);
pw_log_warn("%p: unknown type %s", device, info->type);
pw_properties_free(props);
}
@ -851,7 +852,7 @@ static void device_object_info(void *data, uint32_t id,
od = find_object(device, id);
if (info == NULL) {
pw_log_debug(NAME" %p: remove node %d (%p)", device, id, od);
pw_log_debug("%p: remove node %d (%p)", device, id, od);
if (od)
object_destroy(od);
}
@ -873,10 +874,10 @@ static const struct spa_device_events device_events = {
SPA_EXPORT
int pw_impl_device_set_implementation(struct pw_impl_device *device, struct spa_device *spa_device)
{
pw_log_debug(NAME" %p: implementation %p", device, spa_device);
pw_log_debug("%p: implementation %p", device, spa_device);
if (device->device) {
pw_log_error(NAME" %p: implementation existed %p",
pw_log_error("%p: implementation existed %p",
device, device->device);
return -EEXIST;
}

View file

@ -30,7 +30,8 @@
#include "pipewire/impl.h"
#include "pipewire/private.h"
#define NAME "factory"
PW_LOG_TOPIC_EXTERN(log_factory);
#define PW_LOG_TOPIC_DEFAULT log_factory
#define pw_factory_resource_info(r,...) pw_resource_call(r,struct pw_factory_events,info,0,__VA_ARGS__)
@ -68,7 +69,7 @@ struct pw_impl_factory *pw_context_create_factory(struct pw_context *context,
if (user_data_size > 0)
this->user_data = SPA_PTROFF(this, sizeof(*this), void);
pw_log_debug(NAME" %p: new %s", this, name);
pw_log_debug("%p: new %s", this, name);
return this;
@ -81,7 +82,7 @@ error_exit:
SPA_EXPORT
void pw_impl_factory_destroy(struct pw_impl_factory *factory)
{
pw_log_debug(NAME" %p: destroy", factory);
pw_log_debug("%p: destroy", factory);
pw_impl_factory_emit_destroy(factory);
if (factory->registered)
@ -93,7 +94,7 @@ void pw_impl_factory_destroy(struct pw_impl_factory *factory)
}
pw_impl_factory_emit_free(factory);
pw_log_debug(NAME" %p: free", factory);
pw_log_debug("%p: free", factory);
spa_hook_list_clean(&factory->listener_list);
@ -116,7 +117,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
if (resource == NULL)
goto error_resource;
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
this->info.change_mask = PW_FACTORY_CHANGE_MASK_ALL;
@ -126,7 +127,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
return 0;
error_resource:
pw_log_error(NAME" %p: can't create factory resource: %m", this);
pw_log_error("%p: can't create factory resource: %m", this);
return -errno;
}
@ -158,7 +159,7 @@ int pw_impl_factory_update_properties(struct pw_impl_factory *factory, const str
changed = pw_properties_update(factory->properties, dict);
factory->info.props = &factory->properties->dict;
pw_log_debug(NAME" %p: updated %d properties", factory, changed);
pw_log_debug("%p: updated %d properties", factory, changed);
if (!changed)
return 0;

View file

@ -32,7 +32,8 @@
#include "pipewire/extensions/metadata.h"
#define NAME "metadata"
PW_LOG_TOPIC_EXTERN(log_metadata);
#define PW_LOG_TOPIC_DEFAULT log_metadata
#define pw_metadata_emit(hooks,method,version,...) \
spa_hook_list_call_simple(hooks, struct pw_metadata_events, \
@ -142,7 +143,7 @@ static int clear_subjects(struct metadata *this, struct pw_array *storage, uint3
if (item == NULL)
break;
pw_log_debug(NAME" %p: remove id:%d key:%s", this, subject, item->key);
pw_log_debug("%p: remove id:%d key:%s", this, subject, item->key);
clear_item(item);
pw_array_remove(storage, item);
@ -180,7 +181,7 @@ static int impl_set_property(void *object,
struct item *item = NULL;
int changed = 0;
pw_log_debug(NAME" %p: id:%d key:%s type:%s value:%s", this, subject, key, type, value);
pw_log_debug("%p: id:%d key:%s type:%s value:%s", this, subject, key, type, value);
if (key == NULL)
return clear_subjects(this, &this->storage, subject);
@ -192,7 +193,7 @@ static int impl_set_property(void *object,
pw_array_remove(&this->storage, item);
type = NULL;
changed++;
pw_log_info(NAME" %p: remove id:%d key:%s", this,
pw_log_info("%p: remove id:%d key:%s", this,
subject, key);
}
} else if (item == NULL) {
@ -201,14 +202,14 @@ static int impl_set_property(void *object,
return -errno;
set_item(item, subject, key, type, value);
changed++;
pw_log_info(NAME" %p: add id:%d key:%s type:%s value:%s", this,
pw_log_info("%p: add id:%d key:%s type:%s value:%s", this,
subject, key, type, value);
} else {
if (type == NULL)
type = item->type;
changed = change_item(item, type, value);
if (changed)
pw_log_info(NAME" %p: change id:%d key:%s type:%s value:%s", this,
pw_log_info("%p: change id:%d key:%s type:%s value:%s", this,
subject, key, type, value);
}
@ -314,7 +315,7 @@ struct pw_impl_metadata *pw_context_create_metadata(struct pw_context *context,
if (user_data_size > 0)
this->user_data = SPA_PTROFF(this, sizeof(*this), void);
pw_log_debug(NAME" %p: new", this);
pw_log_debug("%p: new", this);
return this;
@ -355,7 +356,7 @@ void pw_impl_metadata_destroy(struct pw_impl_metadata *metadata)
{
struct impl *impl = SPA_CONTAINER_OF(metadata, struct impl, this);
pw_log_debug(NAME" %p: destroy", metadata);
pw_log_debug("%p: destroy", metadata);
pw_impl_metadata_emit_destroy(metadata);
if (metadata->registered)
@ -367,7 +368,7 @@ void pw_impl_metadata_destroy(struct pw_impl_metadata *metadata)
}
pw_impl_metadata_emit_free(metadata);
pw_log_debug(NAME" %p: free", metadata);
pw_log_debug("%p: free", metadata);
metadata_reset(&impl->def);
@ -474,7 +475,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
data->impl = this;
data->resource = resource;
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
/* listen for when the resource goes away */
@ -495,7 +496,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
return 0;
error_resource:
pw_log_error(NAME" %p: can't create metadata resource: %m", this);
pw_log_error("%p: can't create metadata resource: %m", this);
return -errno;
}

View file

@ -37,7 +37,8 @@
#include "pipewire/impl.h"
#include "pipewire/private.h"
#define NAME "module"
PW_LOG_TOPIC_EXTERN(log_module);
#define PW_LOG_TOPIC_DEFAULT log_module
/** \cond */
struct impl {
@ -118,7 +119,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
if (resource == NULL)
goto error_resource;
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
this->info.change_mask = PW_MODULE_CHANGE_MASK_ALL;
@ -128,7 +129,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
return 0;
error_resource:
pw_log_error(NAME" %p: can't create module resource: %m", this);
pw_log_error("%p: can't create module resource: %m", this);
return -errno;
}
@ -256,7 +257,7 @@ pw_context_load_module(struct pw_context *context,
pw_impl_module_emit_registered(this);
pw_log_debug(NAME" %p: loaded module: %s", this, this->info.name);
pw_log_debug("%p: loaded module: %s", this, this->info.name);
return this;
@ -306,7 +307,7 @@ void pw_impl_module_destroy(struct pw_impl_module *module)
{
struct impl *impl = SPA_CONTAINER_OF(module, struct impl, this);
pw_log_debug(NAME" %p: destroy", module);
pw_log_debug("%p: destroy", module);
pw_impl_module_emit_destroy(module);
if (module->global) {
@ -315,7 +316,7 @@ void pw_impl_module_destroy(struct pw_impl_module *module)
pw_global_destroy(module->global);
}
pw_log_debug(NAME" %p: free", module);
pw_log_debug("%p: free", module);
pw_impl_module_emit_free(module);
free((char *) module->info.name);
free((char *) module->info.filename);
@ -326,7 +327,7 @@ void pw_impl_module_destroy(struct pw_impl_module *module)
spa_hook_list_clean(&module->listener_list);
if (!pw_in_valgrind() && dlclose(impl->hnd) != 0)
pw_log_warn(NAME" %p: dlclose failed: %s", module, dlerror());
pw_log_warn("%p: dlclose failed: %s", module, dlerror());
free(impl);
}
@ -358,7 +359,7 @@ int pw_impl_module_update_properties(struct pw_impl_module *module, const struct
changed = pw_properties_update(module->properties, dict);
module->info.props = &module->properties->dict;
pw_log_debug(NAME" %p: updated %d properties", module, changed);
pw_log_debug("%p: updated %d properties", module, changed);
if (!changed)
return 0;

View file

@ -39,7 +39,8 @@
#include "pipewire/impl-node.h"
#include "pipewire/private.h"
#define NAME "node"
PW_LOG_TOPIC_EXTERN(log_node);
#define PW_LOG_TOPIC_DEFAULT log_node
#define DEFAULT_SYNC_TIMEOUT ((uint64_t)(5 * SPA_NSEC_PER_SEC))
@ -89,7 +90,7 @@ static void node_deactivate(struct pw_impl_node *this)
struct pw_impl_port *port;
struct pw_impl_link *link;
pw_log_debug(NAME" %p: deactivate", this);
pw_log_debug("%p: deactivate", this);
spa_list_for_each(port, &this->input_ports, link) {
spa_list_for_each(link, &port->links, input_link)
pw_impl_link_deactivate(link);
@ -108,7 +109,7 @@ static void add_node(struct pw_impl_node *this, struct pw_impl_node *driver)
if (this->exported)
return;
pw_log_trace(NAME" %p: add to driver %p %p %p", this, driver,
pw_log_trace("%p: add to driver %p %p %p", this, driver,
driver->rt.activation, this->rt.activation);
/* signal the driver */
@ -130,7 +131,7 @@ static void add_node(struct pw_impl_node *this, struct pw_impl_node *driver)
dstate->required++;
t->active = true;
}
pw_log_trace(NAME" %p: driver state:%p pending:%d/%d, node state:%p pending:%d/%d",
pw_log_trace("%p: driver state:%p pending:%d/%d, node state:%p pending:%d/%d",
this, dstate, dstate->pending, dstate->required,
nstate, nstate->pending, nstate->required);
}
@ -144,7 +145,7 @@ static void remove_node(struct pw_impl_node *this)
if (this->exported)
return;
pw_log_trace(NAME" %p: remove from driver %p %p %p",
pw_log_trace("%p: remove from driver %p %p %p",
this, this->rt.driver_target.data,
this->rt.driver_target.activation, this->rt.activation);
@ -162,7 +163,7 @@ static void remove_node(struct pw_impl_node *this)
dstate->required--;
t->active = false;
}
pw_log_trace(NAME" %p: driver state:%p pending:%d/%d, node state:%p pending:%d/%d",
pw_log_trace("%p: driver state:%p pending:%d/%d, node state:%p pending:%d/%d",
this, dstate, dstate->pending, dstate->required,
nstate, nstate->pending, nstate->required);
}
@ -188,7 +189,7 @@ static int pause_node(struct pw_impl_node *this)
struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this);
int res = 0;
pw_log_debug(NAME" %p: pause node state:%s pending:%s pause-on-idle:%d", this,
pw_log_debug("%p: pause node state:%s pending:%s pause-on-idle:%d", this,
pw_node_state_as_string(this->info.state),
pw_node_state_as_string(impl->pending),
impl->pause_on_idle);
@ -203,7 +204,7 @@ static int pause_node(struct pw_impl_node *this)
res = spa_node_send_command(this->node,
&SPA_NODE_COMMAND_INIT(SPA_NODE_COMMAND_Pause));
if (res < 0)
pw_log_debug(NAME" %p: pause node error %s", this, spa_strerror(res));
pw_log_debug("%p: pause node error %s", this, spa_strerror(res));
return res;
}
@ -216,7 +217,7 @@ static int start_node(struct pw_impl_node *this)
if (impl->pending >= PW_NODE_STATE_RUNNING)
return 0;
pw_log_debug(NAME" %p: start node", this);
pw_log_debug("%p: start node", this);
if (!(this->driving && this->driver)) {
impl->pending_play = true;
@ -269,7 +270,7 @@ static int notify_param(void *data, int seq, uint32_t id,
if (!resource_is_subscribed(resource, id))
continue;
pw_log_debug(NAME" %p: resource %p notify param %d", node, resource, id);
pw_log_debug("%p: resource %p notify param %d", node, resource, id);
pw_node_resource_param(resource, seq, id, index, next, param);
}
return 0;
@ -283,7 +284,7 @@ static void emit_params(struct pw_impl_node *node, uint32_t *changed_ids, uint32
if (node->global == NULL)
return;
pw_log_debug(NAME" %p: emit %d params", node, n_changed_ids);
pw_log_debug("%p: emit %d params", node, n_changed_ids);
for (i = 0; i < n_changed_ids; i++) {
struct pw_resource *resource;
@ -299,7 +300,7 @@ static void emit_params(struct pw_impl_node *node, uint32_t *changed_ids, uint32
if ((res = pw_impl_node_for_each_param(node, 1, changed_ids[i], 0, UINT32_MAX,
NULL, notify_param, node)) < 0) {
pw_log_error(NAME" %p: error %d (%s)", node, res, spa_strerror(res));
pw_log_error("%p: error %d (%s)", node, res, spa_strerror(res));
}
}
}
@ -345,7 +346,7 @@ static void node_update_state(struct pw_impl_node *node, enum pw_node_state stat
node->info.state = state;
impl->pending = state;
pw_log_debug(NAME" %p: (%s) %s -> %s (%s)", node, node->name,
pw_log_debug("%p: (%s) %s -> %s (%s)", node, node->name,
pw_node_state_as_string(old), pw_node_state_as_string(state), error);
if (old == state)
@ -375,7 +376,7 @@ static int suspend_node(struct pw_impl_node *this)
int res = 0;
struct pw_impl_port *p;
pw_log_debug(NAME" %p: suspend node state:%s", this,
pw_log_debug("%p: suspend node state:%s", this,
pw_node_state_as_string(this->info.state));
if (this->info.state > 0 && this->info.state <= PW_NODE_STATE_SUSPENDED)
@ -385,7 +386,7 @@ static int suspend_node(struct pw_impl_node *this)
spa_list_for_each(p, &this->input_ports, link) {
if ((res = pw_impl_port_set_param(p, SPA_PARAM_Format, 0, NULL)) < 0)
pw_log_warn(NAME" %p: error unset format input: %s",
pw_log_warn("%p: error unset format input: %s",
this, spa_strerror(res));
/* force CONFIGURE in case of async */
p->state = PW_IMPL_PORT_STATE_CONFIGURE;
@ -393,7 +394,7 @@ static int suspend_node(struct pw_impl_node *this)
spa_list_for_each(p, &this->output_ports, link) {
if ((res = pw_impl_port_set_param(p, SPA_PARAM_Format, 0, NULL)) < 0)
pw_log_warn(NAME" %p: error unset format output: %s",
pw_log_warn("%p: error unset format output: %s",
this, spa_strerror(res));
/* force CONFIGURE in case of async */
p->state = PW_IMPL_PORT_STATE_CONFIGURE;
@ -405,7 +406,7 @@ static int suspend_node(struct pw_impl_node *this)
res = spa_node_send_command(this->node,
&SPA_NODE_COMMAND_INIT(SPA_NODE_COMMAND_Pause));
if (res < 0 && res != -EIO)
pw_log_warn(NAME" %p: suspend node error %s", this, spa_strerror(res));
pw_log_warn("%p: suspend node error %s", this, spa_strerror(res));
node_update_state(this, PW_NODE_STATE_SUSPENDED, 0, NULL);
@ -423,7 +424,7 @@ static int reply_param(void *data, int seq, uint32_t id,
uint32_t index, uint32_t next, struct spa_pod *param)
{
struct resource_data *d = data;
pw_log_debug(NAME" %p: resource %p reply param %d", d->node, d->resource, seq);
pw_log_debug("%p: resource %p reply param %d", d->node, d->resource, seq);
pw_node_resource_param(d->resource, seq, id, index, next, param);
return 0;
}
@ -436,7 +437,7 @@ static int node_enum_params(void *object, int seq, uint32_t id,
struct pw_impl_node *node = data->node;
int res;
pw_log_debug(NAME" %p: resource %p enum params seq:%d id:%d (%s) index:%u num:%u",
pw_log_debug("%p: resource %p enum params seq:%d id:%d (%s) index:%u num:%u",
node, resource, seq, id,
spa_debug_type_find_name(spa_type_param, id), index, num);
@ -460,7 +461,7 @@ static int node_subscribe_params(void *object, uint32_t *ids, uint32_t n_ids)
for (i = 0; i < n_ids; i++) {
data->subscribe_ids[i] = ids[i];
pw_log_debug(NAME" %p: resource %p subscribe param id:%d (%s)",
pw_log_debug("%p: resource %p subscribe param id:%d (%s)",
data->node, resource, ids[i],
spa_debug_type_find_name(spa_type_param, ids[i]));
node_enum_params(data, 1, ids[i], 0, UINT32_MAX, NULL);
@ -481,7 +482,7 @@ static void result_node_sync(void *data, int seq, int res, uint32_t type, const
{
struct resource_data *d = data;
pw_log_debug(NAME" %p: sync result %d %d (%d/%d)", d->node, res, seq, d->seq, d->end);
pw_log_debug("%p: sync result %d %d (%d/%d)", d->node, res, seq, d->seq, d->end);
if (seq == d->end)
remove_busy_resource(d);
}
@ -499,7 +500,7 @@ static int node_set_param(void *object, uint32_t id, uint32_t flags,
.result = result_node_sync,
};
pw_log_debug(NAME" %p: resource %p set param id:%d (%s) %08x", node, resource,
pw_log_debug("%p: resource %p set param id:%d (%s) %08x", node, resource,
id, spa_debug_type_find_name(spa_type_param, id), flags);
res = spa_node_set_param(node->node, id, flags, param);
@ -556,7 +557,7 @@ static void resource_pong(void *data, int seq)
{
struct resource_data *d = data;
struct pw_resource *resource = d->resource;
pw_log_debug(NAME" %p: resource %p: got pong %d", d->node,
pw_log_debug("%p: resource %p: got pong %d", d->node,
resource, seq);
}
@ -591,7 +592,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
&data->object_listener,
&node_methods, data);
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
this->info.change_mask = PW_NODE_CHANGE_MASK_ALL;
@ -601,7 +602,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
return 0;
error_resource:
pw_log_error(NAME" %p: can't create node resource: %m", this);
pw_log_error("%p: can't create node resource: %m", this);
return -errno;
}
@ -631,22 +632,22 @@ static inline void insert_driver(struct pw_context *context, struct pw_impl_node
static void update_io(struct pw_impl_node *node)
{
pw_log_debug(NAME" %p: id:%d", node, node->info.id);
pw_log_debug("%p: id:%d", node, node->info.id);
if (spa_node_set_io(node->node,
SPA_IO_Position,
&node->rt.activation->position,
sizeof(struct spa_io_position)) >= 0) {
pw_log_debug(NAME" %p: set position %p", node, &node->rt.activation->position);
pw_log_debug("%p: set position %p", node, &node->rt.activation->position);
node->rt.position = &node->rt.activation->position;
} else if (node->driver) {
pw_log_warn(NAME" %p: can't set position on driver", node);
pw_log_warn("%p: can't set position on driver", node);
}
if (spa_node_set_io(node->node,
SPA_IO_Clock,
&node->rt.activation->position.clock,
sizeof(struct spa_io_clock)) >= 0) {
pw_log_debug(NAME" %p: set clock %p", node, &node->rt.activation->position.clock);
pw_log_debug("%p: set clock %p", node, &node->rt.activation->position.clock);
node->rt.clock = &node->rt.activation->position.clock;
}
}
@ -678,7 +679,7 @@ int pw_impl_node_register(struct pw_impl_node *this,
struct pw_context *context = this->context;
struct pw_impl_port *port;
pw_log_debug(NAME" %p: register", this);
pw_log_debug("%p: register", this);
if (this->registered)
goto error_existed;
@ -731,7 +732,7 @@ error_existed:
SPA_EXPORT
int pw_impl_node_initialized(struct pw_impl_node *this)
{
pw_log_debug(NAME" %p initialized", this);
pw_log_debug("%p initialized", this);
pw_impl_node_emit_initialized(this);
node_update_state(this, PW_NODE_STATE_SUSPENDED, 0, NULL);
return 0;
@ -746,16 +747,16 @@ do_move_nodes(struct spa_loop *loop,
struct pw_impl_node *node = &impl->this;
int res;
pw_log_trace(NAME" %p: driver:%p->%p", node, node->driver_node, driver);
pw_log_trace("%p: driver:%p->%p", node, node->driver_node, driver);
if ((res = spa_node_set_io(node->node,
SPA_IO_Position,
&driver->rt.activation->position,
sizeof(struct spa_io_position))) < 0) {
pw_log_debug(NAME" %p: set position: %s", node, spa_strerror(res));
pw_log_debug("%p: set position: %s", node, spa_strerror(res));
}
pw_log_trace(NAME" %p: set position %p", node, &driver->rt.activation->position);
pw_log_trace("%p: set position %p", node, &driver->rt.activation->position);
node->rt.position = &driver->rt.activation->position;
if (node->source.loop != NULL) {
@ -800,7 +801,7 @@ int pw_impl_node_set_driver(struct pw_impl_node *node, struct pw_impl_node *driv
}
node->driving = node->driver && driver == node;
pw_log_debug(NAME" %p: driver %p driving:%u", node,
pw_log_debug("%p: driver %p driving:%u", node,
driver, node->driving);
pw_log_info("(%s-%u) -> change driver (%s-%d -> %s-%d)",
node->name, node->info.id,
@ -827,14 +828,14 @@ static void check_properties(struct pw_impl_node *node)
if ((str = pw_properties_get(node->properties, PW_KEY_PRIORITY_DRIVER))) {
node->priority_driver = pw_properties_parse_int(str);
pw_log_debug(NAME" %p: priority driver %d", node, node->priority_driver);
pw_log_debug("%p: priority driver %d", node, node->priority_driver);
}
if ((str = pw_properties_get(node->properties, PW_KEY_NODE_NAME)) &&
(node->name == NULL || !spa_streq(node->name, str))) {
free(node->name);
node->name = strdup(str);
pw_log_debug(NAME" %p: name '%s'", node, node->name);
pw_log_debug("%p: name '%s'", node, node->name);
}
str = pw_properties_get(node->properties, PW_KEY_NODE_PAUSE_ON_IDLE);
@ -850,7 +851,7 @@ static void check_properties(struct pw_impl_node *node)
driver = str ? pw_properties_parse_bool(str) : false;
if (node->driver != driver) {
pw_log_debug(NAME" %p: driver %d -> %d", node, node->driver, driver);
pw_log_debug("%p: driver %d -> %d", node, node->driver, driver);
node->driver = driver;
if (node->registered) {
if (driver)
@ -866,7 +867,7 @@ static void check_properties(struct pw_impl_node *node)
str = "";
if (!spa_streq(str, node->group)) {
pw_log_info(NAME" %p: group '%s'->'%s'", node, node->group, str);
pw_log_info("%p: group '%s'->'%s'", node, node->group, str);
snprintf(node->group, sizeof(node->group), "%s", str);
node->freewheel = spa_streq(node->group, "pipewire.freewheel");
recalc_reason = "group changed";
@ -920,7 +921,7 @@ static void check_properties(struct pw_impl_node *node)
str = pw_properties_get(node->properties, PW_KEY_NODE_LOCK_RATE);
node->lock_rate = str ? pw_properties_parse_bool(str) : false;
pw_log_debug(NAME" %p: driver:%d recalc:%s active:%d", node, node->driver,
pw_log_debug("%p: driver:%d recalc:%s active:%d", node, node->driver,
recalc_reason, node->active);
if (recalc_reason != NULL && node->active)
@ -986,13 +987,13 @@ static inline int resume_node(struct pw_impl_node *this, int status)
activation->status = PW_NODE_ACTIVATION_FINISHED;
activation->finish_time = nsec;
pw_log_trace_fp(NAME" %p: trigger peers %"PRIu64, this, nsec);
pw_log_trace_fp("%p: trigger peers %"PRIu64, this, nsec);
spa_list_for_each(t, &this->rt.target_list, link) {
struct pw_node_activation *a = t->activation;
struct pw_node_activation_state *state = &a->state[0];
pw_log_trace_fp(NAME" %p: state:%p pending:%d/%d", t->node, state,
pw_log_trace_fp("%p: state:%p pending:%d/%d", t->node, state,
state->pending, state->required);
if (pw_node_activation_state_dec(state, 1)) {
@ -1029,7 +1030,7 @@ static inline int process_node(void *data)
a->status = PW_NODE_ACTIVATION_AWAKE;
a->awake_time = SPA_TIMESPEC_TO_NSEC(&ts);
pw_log_trace_fp(NAME" %p: process %"PRIu64, this, a->awake_time);
pw_log_trace_fp("%p: process %"PRIu64, this, a->awake_time);
/* when transport sync is not supported, just clear the flag */
if (!this->transport_sync)
@ -1055,7 +1056,7 @@ static inline int process_node(void *data)
/* calculate CPU time */
calculate_stats(this, a);
pw_log_trace_fp(NAME" %p: graph completed wait:%"PRIu64" run:%"PRIu64
pw_log_trace_fp("%p: graph completed wait:%"PRIu64" run:%"PRIu64
" busy:%"PRIu64" period:%"PRIu64" cpu:%f:%f:%f", this,
a->awake_time - a->signal_time,
a->finish_time - a->awake_time,
@ -1066,7 +1067,7 @@ static inline int process_node(void *data)
pw_context_driver_emit_complete(this->context, this);
} else if (status == SPA_STATUS_OK) {
pw_log_trace_fp(NAME" %p: async continue", this);
pw_log_trace_fp("%p: async continue", this);
} else {
resume_node(this, status);
}
@ -1082,7 +1083,7 @@ static void node_on_fd_events(struct spa_source *source)
struct spa_system *data_system = this->context->data_system;
if (SPA_UNLIKELY(source->rmask & (SPA_IO_ERR | SPA_IO_HUP))) {
pw_log_warn(NAME" %p: got socket error %08x", this, source->rmask);
pw_log_warn("%p: got socket error %08x", this, source->rmask);
return;
}
@ -1090,12 +1091,12 @@ static void node_on_fd_events(struct spa_source *source)
uint64_t cmd;
if (SPA_UNLIKELY(spa_system_eventfd_read(data_system, this->source.fd, &cmd) < 0))
pw_log_warn(NAME" %p: read failed %m", this);
pw_log_warn("%p: read failed %m", this);
else if (SPA_UNLIKELY(cmd > 1))
pw_log_info("(%s-%u) client missed %"PRIu64" wakeups",
this->name, this->info.id, cmd - 1);
pw_log_trace_fp(NAME" %p: got process", this);
pw_log_trace_fp("%p: got process", this);
this->rt.target.signal(this->rt.target.data);
}
}
@ -1165,7 +1166,7 @@ struct pw_impl_node *pw_context_create_node(struct pw_context *context,
if ((res = spa_system_eventfd_create(data_system, SPA_FD_CLOEXEC | SPA_FD_NONBLOCK)) < 0)
goto error_clean;
pw_log_debug(NAME" %p: new fd:%d", this, res);
pw_log_debug("%p: new fd:%d", this, res);
this->source.fd = res;
this->source.func = node_on_fd_events;
@ -1291,7 +1292,7 @@ static int update_properties(struct pw_impl_node *node, const struct spa_dict *d
changed = pw_properties_update_ignore(node->properties, dict, filter ? ignored : NULL);
node->info.props = &node->properties->dict;
pw_log_debug(NAME" %p: updated %d properties", node, changed);
pw_log_debug("%p: updated %d properties", node, changed);
if (changed) {
check_properties(node);
@ -1317,14 +1318,14 @@ static void node_info(void *data, const struct spa_node_info *info)
node->info.max_input_ports = info->max_input_ports;
node->info.max_output_ports = info->max_output_ports;
pw_log_debug(NAME" %p: flags:%08"PRIx64" change_mask:%08"PRIx64" max_in:%u max_out:%u",
pw_log_debug("%p: flags:%08"PRIx64" change_mask:%08"PRIx64" max_in:%u max_out:%u",
node, info->flags, info->change_mask, info->max_input_ports,
info->max_output_ports);
if (info->change_mask & SPA_NODE_CHANGE_MASK_FLAGS) {
if (node->spa_flags != info->flags) {
flags_changed = node->spa_flags != 0;
pw_log_debug(NAME" %p: flags %"PRIu64"->%"PRIu64, node, node->spa_flags, info->flags);
pw_log_debug("%p: flags %"PRIu64"->%"PRIu64, node, node->spa_flags, info->flags);
node->spa_flags = info->flags;
}
}
@ -1340,7 +1341,7 @@ static void node_info(void *data, const struct spa_node_info *info)
for (i = 0; i < node->info.n_params; i++) {
uint32_t id = info->params[i].id;
pw_log_debug(NAME" %p: param %d id:%d (%s) %08x:%08x", node, i,
pw_log_debug("%p: param %d id:%d (%s) %08x:%08x", node, i,
id, spa_debug_type_find_name(spa_type_param, id),
node->info.params[i].flags, info->params[i].flags);
@ -1348,7 +1349,7 @@ static void node_info(void *data, const struct spa_node_info *info)
if (node->info.params[i].flags == info->params[i].flags)
continue;
pw_log_debug(NAME" %p: update param %d", node, id);
pw_log_debug("%p: update param %d", node, id);
node->info.params[i] = info->params[i];
node->info.params[i].user = 0;
@ -1373,27 +1374,27 @@ static void node_port_info(void *data, enum spa_direction direction, uint32_t po
if (info == NULL) {
if (port) {
pw_log_debug(NAME" %p: %s port %d removed", node,
pw_log_debug("%p: %s port %d removed", node,
pw_direction_as_string(direction), port_id);
pw_impl_port_destroy(port);
} else {
pw_log_warn(NAME" %p: %s port %d unknown", node,
pw_log_warn("%p: %s port %d unknown", node,
pw_direction_as_string(direction), port_id);
}
} else if (port) {
pw_log_debug(NAME" %p: %s port %d changed", node,
pw_log_debug("%p: %s port %d changed", node,
pw_direction_as_string(direction), port_id);
pw_impl_port_update_info(port, info);
} else {
int res;
pw_log_debug(NAME" %p: %s port %d added", node,
pw_log_debug("%p: %s port %d added", node,
pw_direction_as_string(direction), port_id);
if ((port = pw_context_create_port(node->context, direction, port_id, info,
node->port_user_data_size))) {
if ((res = pw_impl_port_add(port, node)) < 0) {
pw_log_error(NAME" %p: can't add port %p: %d, %s",
pw_log_error("%p: can't add port %p: %d, %s",
node, port, res, spa_strerror(res));
pw_impl_port_destroy(port);
}
@ -1406,7 +1407,7 @@ static void node_result(void *data, int seq, int res, uint32_t type, const void
struct pw_impl_node *node = data;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
pw_log_trace(NAME" %p: result seq:%d res:%d type:%u", node, seq, res, type);
pw_log_trace("%p: result seq:%d res:%d type:%u", node, seq, res, type);
if (res < 0)
impl->last_error = res;
@ -1421,7 +1422,7 @@ static void node_event(void *data, const struct spa_event *event)
struct pw_impl_node *node = data;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
pw_log_trace(NAME" %p: event %d", node, SPA_EVENT_TYPE(event));
pw_log_trace("%p: event %d", node, SPA_EVENT_TYPE(event));
switch (SPA_NODE_EVENT_ID(event)) {
case SPA_NODE_EVENT_Error:
@ -1461,7 +1462,7 @@ static int check_updates(struct pw_impl_node *node, uint32_t *reposition_owner)
*reposition_owner = ATOMIC_XCHG(a->reposition_owner, 0);
if (SPA_UNLIKELY(command != PW_NODE_ACTIVATION_COMMAND_NONE)) {
pw_log_debug(NAME" %p: update command:%u", node, command);
pw_log_debug("%p: update command:%u", node, command);
switch (command) {
case PW_NODE_ACTIVATION_COMMAND_STOP:
a->position.state = SPA_IO_POSITION_STATE_STOPPED;
@ -1487,7 +1488,7 @@ static void do_reposition(struct pw_impl_node *driver, struct pw_impl_node *node
src = &node->rt.activation->reposition;
dst = &a->position.segments[0];
pw_log_info(NAME" %p: update position:%"PRIu64, node, src->position);
pw_log_info("%p: update position:%"PRIu64, node, src->position);
dst->version = src->version;
dst->flags = src->flags;
@ -1539,7 +1540,7 @@ static int node_ready(void *data, int status)
struct pw_node_target *t;
struct pw_impl_port *p;
pw_log_trace_fp(NAME" %p: ready driver:%d exported:%d %p status:%d", node,
pw_log_trace_fp("%p: ready driver:%d exported:%d %p status:%d", node,
node->driver, node->exported, driver, status);
if (SPA_UNLIKELY(node == driver)) {
@ -1683,10 +1684,10 @@ int pw_impl_node_set_implementation(struct pw_impl_node *node,
{
int res;
pw_log_debug(NAME" %p: implementation %p", node, spa_node);
pw_log_debug("%p: implementation %p", node, spa_node);
if (node->node) {
pw_log_error(NAME" %p: implementation existed %p", node, node->node);
pw_log_error("%p: implementation existed %p", node, node->node);
return -EEXIST;
}
@ -1732,14 +1733,14 @@ void pw_impl_node_destroy(struct pw_impl_node *node)
active = node->active;
node->active = false;
pw_log_debug(NAME" %p: destroy", impl);
pw_log_debug("%p: destroy", impl);
pw_log_info("(%s-%u) destroy", node->name, node->info.id);
suspend_node(node);
pw_impl_node_emit_destroy(node);
pw_log_debug(NAME" %p: driver node %p", impl, node->driver_node);
pw_log_debug("%p: driver node %p", impl, node->driver_node);
had_driver = node != node->driver_node;
/* remove ourself as a follower from the driver node */
@ -1747,7 +1748,7 @@ void pw_impl_node_destroy(struct pw_impl_node *node)
remove_segment_owner(node->driver_node, node->info.id);
spa_list_consume(follower, &node->follower_list, follower_link) {
pw_log_debug(NAME" %p: reassign follower %p", impl, follower);
pw_log_debug("%p: reassign follower %p", impl, follower);
pw_impl_node_set_driver(follower, NULL);
}
@ -1762,7 +1763,7 @@ void pw_impl_node_destroy(struct pw_impl_node *node)
spa_node_set_callbacks(node->node, NULL, NULL);
}
pw_log_debug(NAME" %p: destroy ports", node);
pw_log_debug("%p: destroy ports", node);
spa_list_consume(port, &node->input_ports, link)
pw_impl_port_destroy(port);
spa_list_consume(port, &node->output_ports, link)
@ -1777,7 +1778,7 @@ void pw_impl_node_destroy(struct pw_impl_node *node)
pw_context_recalc_graph(node->context,
"active node destroy");
pw_log_debug(NAME" %p: free", node);
pw_log_debug("%p: free", node);
pw_impl_node_emit_free(node);
spa_hook_list_clean(&node->listener_list);
@ -1882,7 +1883,7 @@ int pw_impl_node_for_each_param(struct pw_impl_node *node,
if (max == 0)
max = UINT32_MAX;
pw_log_debug(NAME" %p: params id:%d (%s) index:%u max:%u cached:%d", node, param_id,
pw_log_debug("%p: params id:%d (%s) index:%u max:%u cached:%d", node, param_id,
spa_debug_type_find_name(spa_type_param, param_id),
index, max, pi->user);
@ -1908,7 +1909,7 @@ int pw_impl_node_for_each_param(struct pw_impl_node *node,
if (spa_pod_filter(&b, &result.param, p->param, filter) != 0)
continue;
pw_log_debug(NAME " %p: %d param %u", node, seq, result.index);
pw_log_debug("%p: %d param %u", node, seq, result.index);
result_node_params(&user_data, seq, 0, SPA_RESULT_TYPE_NODE_PARAMS, &result);
if (++count == max)
@ -1938,7 +1939,7 @@ SPA_EXPORT
int pw_impl_node_set_param(struct pw_impl_node *node,
uint32_t id, uint32_t flags, const struct spa_pod *param)
{
pw_log_debug(NAME" %p: set_param id:%d (%s) flags:%08x param:%p", node, id,
pw_log_debug("%p: set_param id:%d (%s) flags:%08x param:%p", node, id,
spa_debug_type_find_name(spa_type_param, id), flags, param);
return spa_node_set_param(node->node, id, flags, param);
}
@ -1974,7 +1975,7 @@ pw_impl_node_find_port(struct pw_impl_node *node, enum pw_direction direction, u
port = p;
}
}
pw_log_debug(NAME" %p: return %s port %d: %p", node,
pw_log_debug("%p: return %s port %d: %p", node,
pw_direction_as_string(direction), port_id, port);
return port;
}
@ -1999,7 +2000,7 @@ uint32_t pw_impl_node_get_free_port_id(struct pw_impl_node *node, enum pw_direct
portmap = &node->output_port_map;
dynamic = SPA_FLAG_IS_SET(node->spa_flags, SPA_NODE_FLAG_OUT_DYNAMIC_PORTS);
}
pw_log_debug(NAME" %p: direction %s n_ports:%u max_ports:%u",
pw_log_debug("%p: direction %s n_ports:%u max_ports:%u",
node, pw_direction_as_string(direction), n_ports, max_ports);
if (!dynamic || n_ports >= max_ports) {
@ -2013,12 +2014,12 @@ uint32_t pw_impl_node_get_free_port_id(struct pw_impl_node *node, enum pw_direct
goto error;
}
pw_log_debug(NAME" %p: free port %d", node, port_id);
pw_log_debug("%p: free port %d", node, port_id);
return port_id;
error:
pw_log_warn(NAME" %p: no more port available: %s", node, spa_strerror(res));
pw_log_warn("%p: no more port available: %s", node, spa_strerror(res));
errno = -res;
return SPA_ID_INVALID;
}
@ -2033,7 +2034,7 @@ static void on_state_complete(void *obj, void *data, int res, uint32_t seq)
impl->pending_id = SPA_ID_INVALID;
impl->pending_play = false;
pw_log_debug(NAME" %p: state complete res:%d seq:%d", node, res, seq);
pw_log_debug("%p: state complete res:%d seq:%d", node, res, seq);
if (impl->last_error < 0) {
res = impl->last_error;
impl->last_error = 0;
@ -2054,7 +2055,7 @@ static void node_activate(struct pw_impl_node *this)
{
struct pw_impl_port *port;
pw_log_debug(NAME" %p: activate", this);
pw_log_debug("%p: activate", this);
spa_list_for_each(port, &this->input_ports, link) {
struct pw_impl_link *link;
spa_list_for_each(link, &port->links, input_link)
@ -2081,7 +2082,7 @@ int pw_impl_node_set_state(struct pw_impl_node *node, enum pw_node_state state)
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
enum pw_node_state old = impl->pending;
pw_log_debug(NAME" %p: set state (%s) %s -> %s, active %d pause_on_idle:%d", node,
pw_log_debug("%p: set state (%s) %s -> %s, active %d pause_on_idle:%d", node,
pw_node_state_as_string(node->info.state),
pw_node_state_as_string(old),
pw_node_state_as_string(state),
@ -2151,7 +2152,7 @@ int pw_impl_node_set_active(struct pw_impl_node *node, bool active)
bool old = node->active;
if (old != active) {
pw_log_debug(NAME" %p: %s", node, active ? "activate" : "deactivate");
pw_log_debug("%p: %s", node, active ? "activate" : "deactivate");
node->active = active;
pw_impl_node_emit_active_changed(node, active);

View file

@ -40,6 +40,9 @@
#define NAME "port"
PW_LOG_TOPIC_EXTERN(log_port);
#define PW_LOG_TOPIC_DEFAULT log_port
/** \cond */
struct impl {
struct pw_impl_port this;
@ -135,9 +138,9 @@ static int tee_process(void *object)
struct pw_impl_port_mix *mix;
struct spa_io_buffers *io = &this->rt.io;
pw_log_trace_fp(NAME" %p: tee input %d %d", this, io->status, io->buffer_id);
pw_log_trace_fp("%p: tee input %d %d", this, io->status, io->buffer_id);
spa_list_for_each(mix, &this->rt.mix_list, rt_link) {
pw_log_trace_fp(NAME" %p: port %d %p->%p %d", this,
pw_log_trace_fp("%p: port %d %p->%p %d", this,
mix->port.port_id, io, mix->io, mix->io->buffer_id);
*mix->io = *io;
}
@ -151,7 +154,7 @@ static int tee_reuse_buffer(void *object, uint32_t port_id, uint32_t buffer_id)
struct impl *impl = object;
struct pw_impl_port *this = &impl->this;
pw_log_trace_fp(NAME" %p: tee reuse buffer %d %d", this, port_id, buffer_id);
pw_log_trace_fp("%p: tee reuse buffer %d %d", this, port_id, buffer_id);
spa_node_port_reuse_buffer(this->node->node, this->port_id, buffer_id);
return 0;
@ -174,7 +177,7 @@ static int schedule_mix_input(void *object)
return SPA_STATUS_HAVE_DATA | SPA_STATUS_NEED_DATA;
spa_list_for_each(mix, &this->rt.mix_list, rt_link) {
pw_log_trace_fp(NAME" %p: mix input %d %p->%p %d %d", this,
pw_log_trace_fp("%p: mix input %d %p->%p %d %d", this,
mix->port.port_id, mix->io, io, mix->io->status, mix->io->buffer_id);
*io = *mix->io;
mix->io->status = SPA_STATUS_NEED_DATA;
@ -190,7 +193,7 @@ static int schedule_mix_reuse_buffer(void *object, uint32_t port_id, uint32_t bu
struct pw_impl_port_mix *mix;
spa_list_for_each(mix, &this->rt.mix_list, rt_link) {
pw_log_trace_fp(NAME" %p: reuse buffer %d %d", this, port_id, buffer_id);
pw_log_trace_fp("%p: reuse buffer %d %d", this, port_id, buffer_id);
/* FIXME send reuse buffer to peer */
break;
}
@ -241,7 +244,7 @@ int pw_impl_port_init_mix(struct pw_impl_port *port, struct pw_impl_port_mix *mi
}
}
pw_log_debug(NAME" %p: init mix n_mix:%d %d.%d io:%p: (%s)", port,
pw_log_debug("%p: init mix n_mix:%d %d.%d io:%p: (%s)", port,
port->n_mix, port->port_id, mix->port.port_id,
mix->io, spa_strerror(res));
@ -262,7 +265,7 @@ int pw_impl_port_release_mix(struct pw_impl_port *port, struct pw_impl_port_mix
spa_node_remove_port(port->mix, port->direction, port_id);
pw_log_debug(NAME" %p: release mix %d %d.%d", port,
pw_log_debug("%p: release mix %d %d.%d", port,
port->n_mix, port->port_id, mix->port.port_id);
return res;
@ -285,7 +288,7 @@ static int update_properties(struct pw_impl_port *port, const struct spa_dict *d
port->info.props = &port->properties->dict;
if (changed) {
pw_log_debug(NAME" %p: updated %d properties", port, changed);
pw_log_debug("%p: updated %d properties", port, changed);
port->info.change_mask |= PW_PORT_CHANGE_MASK_PROPS;
}
return changed;
@ -313,7 +316,7 @@ static int notify_param(void *data, int seq, uint32_t id,
if (!resource_is_subscribed(resource, id))
continue;
pw_log_debug(NAME" %p: resource %p notify param %d", port, resource, id);
pw_log_debug("%p: resource %p notify param %d", port, resource, id);
pw_port_resource_param(resource, seq, id, index, next, param);
}
return 0;
@ -327,13 +330,13 @@ static void emit_params(struct pw_impl_port *port, uint32_t *changed_ids, uint32
if (port->global == NULL)
return;
pw_log_debug(NAME" %p: emit %d params", port, n_changed_ids);
pw_log_debug("%p: emit %d params", port, n_changed_ids);
for (i = 0; i < n_changed_ids; i++) {
struct pw_resource *resource;
int subscribed = 0;
pw_log_debug(NAME" %p: emit param %d/%d: %d", port, i, n_changed_ids,
pw_log_debug("%p: emit param %d/%d: %d", port, i, n_changed_ids,
changed_ids[i]);
pw_impl_port_emit_param_changed(port, changed_ids[i]);
@ -348,7 +351,7 @@ static void emit_params(struct pw_impl_port *port, uint32_t *changed_ids, uint32
if ((res = pw_impl_port_for_each_param(port, 1, changed_ids[i], 0, UINT32_MAX,
NULL, notify_param, port)) < 0) {
pw_log_error(NAME" %p: error %d (%s)", port, res, spa_strerror(res));
pw_log_error("%p: error %d (%s)", port, res, spa_strerror(res));
}
}
}
@ -384,7 +387,7 @@ static void update_info(struct pw_impl_port *port, const struct spa_port_info *i
{
uint32_t changed_ids[MAX_PARAMS], n_changed_ids = 0;
pw_log_debug(NAME" %p: %p flags:%08"PRIx64" change_mask:%08"PRIx64,
pw_log_debug("%p: %p flags:%08"PRIx64" change_mask:%08"PRIx64,
port, info, info->flags, info->change_mask);
if (info->change_mask & SPA_PORT_CHANGE_MASK_FLAGS) {
@ -394,7 +397,7 @@ static void update_info(struct pw_impl_port *port, const struct spa_port_info *i
if (info->props) {
update_properties(port, info->props, true);
} else {
pw_log_warn(NAME" %p: port PROPS update but no properties", port);
pw_log_warn("%p: port PROPS update but no properties", port);
}
}
if (info->change_mask & SPA_PORT_CHANGE_MASK_PARAMS) {
@ -406,7 +409,7 @@ static void update_info(struct pw_impl_port *port, const struct spa_port_info *i
for (i = 0; i < port->info.n_params; i++) {
uint32_t id = info->params[i].id;
pw_log_debug(NAME" %p: param %d id:%d (%s) %08x:%08x", port, i,
pw_log_debug("%p: param %d id:%d (%s) %08x:%08x", port, i,
id, spa_debug_type_find_name(spa_type_param, id),
port->info.params[i].flags, info->params[i].flags);
@ -414,7 +417,7 @@ static void update_info(struct pw_impl_port *port, const struct spa_port_info *i
if (port->info.params[i].flags == info->params[i].flags)
continue;
pw_log_debug(NAME" %p: update param %d", port, id);
pw_log_debug("%p: update param %d", port, id);
port->info.params[i] = info->params[i];
port->info.params[i].user = 0;
@ -462,7 +465,7 @@ struct pw_impl_port *pw_context_create_port(
impl->cache_params = true;
this = &impl->this;
pw_log_debug(NAME" %p: new %s %d", this,
pw_log_debug("%p: new %s %d", this,
pw_direction_as_string(direction), port_id);
if (info && info->change_mask & SPA_PORT_CHANGE_MASK_PROPS && info->props)
@ -529,7 +532,7 @@ struct pw_impl_port *pw_context_create_port(
return this;
error_no_mem:
pw_log_warn(NAME" %p: new failed", impl);
pw_log_warn("%p: new failed", impl);
free(impl);
errno = -res;
return NULL;
@ -546,7 +549,7 @@ int pw_impl_port_set_mix(struct pw_impl_port *port, struct spa_node *node, uint3
flags = 0;
}
pw_log_debug(NAME" %p: mix node %p->%p", port, port->mix, node);
pw_log_debug("%p: mix node %p->%p", port, port->mix, node);
if (port->mix != NULL && port->mix != node) {
spa_list_for_each(mix, &port->mix_list, link)
@ -588,7 +591,7 @@ static int setup_mixer(struct pw_impl_port *port, const struct spa_pod *param)
if ((res = spa_format_parse(param, &media_type, &media_subtype)) < 0)
return res;
pw_log_debug(NAME" %p: %s/%s", port,
pw_log_debug("%p: %s/%s", port,
spa_debug_type_find_name(spa_type_media_type, media_type),
spa_debug_type_find_name(spa_type_media_subtype, media_subtype));
@ -717,7 +720,7 @@ static int do_add_port(struct spa_loop *loop,
{
struct pw_impl_port *this = user_data;
pw_log_trace(NAME" %p: add port", this);
pw_log_trace("%p: add port", this);
if (this->direction == PW_DIRECTION_INPUT)
spa_list_append(&this->node->rt.input_mix, &this->rt.node_link);
else
@ -739,7 +742,7 @@ static int check_param_io(void *data, int seq, uint32_t id,
SPA_PARAM_IO_size, SPA_POD_Int(&psize)) < 0)
return 0;
pw_log_debug(NAME" %p: got io id:%d (%s)", port, pid,
pw_log_debug("%p: got io id:%d (%s)", port, pid,
spa_debug_type_find_name(spa_type_io, pid));
switch (pid) {
@ -762,7 +765,7 @@ static int reply_param(void *data, int seq, uint32_t id,
{
struct resource_data *d = data;
struct pw_resource *resource = d->resource;
pw_log_debug(NAME" %p: resource %p reply param %u %u %u", d->port,
pw_log_debug("%p: resource %p reply param %u %u %u", d->port,
resource, id, index, next);
pw_port_resource_param(resource, seq, id, index, next, param);
return 0;
@ -776,7 +779,7 @@ static int port_enum_params(void *object, int seq, uint32_t id, uint32_t index,
struct pw_impl_port *port = data->port;
int res;
pw_log_debug(NAME" %p: resource %p enum params seq:%d id:%d (%s) index:%u num:%u", port,
pw_log_debug("%p: resource %p enum params seq:%d id:%d (%s) index:%u num:%u", port,
resource, seq, id, spa_debug_type_find_name(spa_type_param, id),
index, num);
@ -799,7 +802,7 @@ static int port_subscribe_params(void *object, uint32_t *ids, uint32_t n_ids)
for (i = 0; i < n_ids; i++) {
data->subscribe_ids[i] = ids[i];
pw_log_debug(NAME" %p: resource %p subscribe param id:%d (%s)", data->port,
pw_log_debug("%p: resource %p subscribe param id:%d (%s)", data->port,
resource, ids[i],
spa_debug_type_find_name(spa_type_param, ids[i]));
port_enum_params(data, 1, ids[i], 0, UINT32_MAX, NULL);
@ -852,7 +855,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
&data->object_listener,
&port_methods, data);
pw_log_debug(NAME" %p: bound to %d", this, resource->id);
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
this->info.change_mask = PW_PORT_CHANGE_MASK_ALL;
@ -861,7 +864,7 @@ global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
return 0;
error_resource:
pw_log_error(NAME" %p: can't create port resource: %m", this);
pw_log_error("%p: can't create port resource: %m", this);
return res;
}
@ -984,9 +987,9 @@ int pw_impl_port_add(struct pw_impl_port *port, struct pw_impl_node *node)
port->info.props = &port->properties->dict;
if (control) {
pw_log_debug(NAME" %p: setting node control", port);
pw_log_debug("%p: setting node control", port);
} else {
pw_log_debug(NAME" %p: setting node io", port);
pw_log_debug("%p: setting node io", port);
spa_node_port_set_io(node->node,
port->direction, port->port_id,
SPA_IO_Buffers,
@ -998,7 +1001,7 @@ int pw_impl_port_add(struct pw_impl_port *port, struct pw_impl_node *node)
&port->rt.io, sizeof(port->rt.io));
}
pw_log_debug(NAME" %p: %d add to node %p", port, port_id, node);
pw_log_debug("%p: %d add to node %p", port, port_id, node);
spa_list_append(ports, &port->link);
@ -1038,7 +1041,7 @@ static int do_remove_port(struct spa_loop *loop,
{
struct pw_impl_port *this = user_data;
pw_log_trace(NAME" %p: remove port", this);
pw_log_trace("%p: remove port", this);
spa_list_remove(&this->rt.node_link);
return 0;
@ -1052,7 +1055,7 @@ static void pw_impl_port_remove(struct pw_impl_port *port)
if (node == NULL)
return;
pw_log_debug(NAME" %p: remove added:%d", port, port->added);
pw_log_debug("%p: remove added:%d", port, port->added);
if (port->added) {
pw_loop_invoke(node->data_loop, do_remove_port,
@ -1062,7 +1065,7 @@ static void pw_impl_port_remove(struct pw_impl_port *port)
if (SPA_FLAG_IS_SET(port->flags, PW_IMPL_PORT_FLAG_TO_REMOVE)) {
if ((res = spa_node_remove_port(node->node, port->direction, port->port_id)) < 0)
pw_log_warn(NAME" %p: can't remove: %s", port, spa_strerror(res));
pw_log_warn("%p: can't remove: %s", port, spa_strerror(res));
}
if (port->direction == PW_DIRECTION_INPUT) {
@ -1085,14 +1088,14 @@ void pw_impl_port_destroy(struct pw_impl_port *port)
struct impl *impl = SPA_CONTAINER_OF(port, struct impl, this);
struct pw_control *control;
pw_log_debug(NAME" %p: destroy", port);
pw_log_debug("%p: destroy", port);
port->destroying = true;
pw_impl_port_emit_destroy(port);
pw_impl_port_unlink(port);
pw_log_debug(NAME" %p: control destroy", port);
pw_log_debug("%p: control destroy", port);
spa_list_consume(control, &port->control_list[0], port_link)
pw_control_destroy(control);
spa_list_consume(control, &port->control_list[1], port_link)
@ -1105,7 +1108,7 @@ void pw_impl_port_destroy(struct pw_impl_port *port)
pw_global_destroy(port->global);
}
pw_log_debug(NAME" %p: free", port);
pw_log_debug("%p: free", port);
pw_impl_port_emit_free(port);
spa_hook_list_clean(&port->listener_list);
@ -1186,7 +1189,7 @@ int pw_impl_port_for_each_param(struct pw_impl_port *port,
if (max == 0)
max = UINT32_MAX;
pw_log_debug(NAME" %p: params id:%d (%s) index:%u max:%u cached:%d", port, param_id,
pw_log_debug("%p: params id:%d (%s) index:%u max:%u cached:%d", port, param_id,
spa_debug_type_find_name(spa_type_param, param_id),
index, max, pi->user);
@ -1237,7 +1240,7 @@ int pw_impl_port_for_each_param(struct pw_impl_port *port,
}
}
pw_log_debug(NAME" %p: res %d: (%s)", port, res, spa_strerror(res));
pw_log_debug("%p: res %d: (%s)", port, res, spa_strerror(res));
return res;
}
@ -1372,14 +1375,14 @@ int pw_impl_port_set_param(struct pw_impl_port *port, uint32_t id, uint32_t flag
int res;
struct pw_impl_node *node = port->node;
pw_log_debug(NAME" %p: %d set param %d %p", port, port->state, id, param);
pw_log_debug("%p: %d set param %d %p", port, port->state, id, param);
/* set parameter on node */
res = spa_node_port_set_param(node->node,
port->direction, port->port_id,
id, flags, param);
pw_log_debug(NAME" %p: %d set param on node %d:%d id:%d (%s): %d (%s)", port, port->state,
pw_log_debug("%p: %d set param on node %d:%d id:%d (%s): %d (%s)", port, port->state,
port->direction, port->port_id, id,
spa_debug_type_find_name(spa_type_param, id),
res, spa_strerror(res));
@ -1405,7 +1408,7 @@ int pw_impl_port_set_param(struct pw_impl_port *port, uint32_t id, uint32_t flag
}
if (id == SPA_PARAM_Format) {
pw_log_debug(NAME" %p: %d %p %d", port, port->state, param, res);
pw_log_debug("%p: %d %p %d", port, port->state, param, res);
if (port->added) {
pw_loop_invoke(node->data_loop, do_remove_port, SPA_ID_INVALID, NULL, 0, true, port);
@ -1440,7 +1443,7 @@ static int negotiate_mixer_buffers(struct pw_impl_port *port, uint32_t flags,
/* try dynamic data */
alloc_flags = PW_BUFFERS_FLAG_DYNAMIC;
pw_log_debug(NAME" %p: %d.%d negotiate %d buffers on node: %p",
pw_log_debug("%p: %d.%d negotiate %d buffers on node: %p",
port, port->direction, port->port_id, n_buffers, node->node);
if (port->added) {
@ -1455,7 +1458,7 @@ static int negotiate_mixer_buffers(struct pw_impl_port *port, uint32_t flags,
port->mix, 0,
node->node, port->port_id,
&port->mix_buffers)) < 0) {
pw_log_warn(NAME" %p: can't negotiate buffers: %s",
pw_log_warn("%p: can't negotiate buffers: %s",
port, spa_strerror(res));
return res;
}
@ -1465,7 +1468,7 @@ static int negotiate_mixer_buffers(struct pw_impl_port *port, uint32_t flags,
}
}
pw_log_debug(NAME" %p: %d.%d use %d buffers on node: %p",
pw_log_debug("%p: %d.%d use %d buffers on node: %p",
port, port->direction, port->port_id, n_buffers, node->node);
res = spa_node_port_use_buffers(node->node,
@ -1491,7 +1494,7 @@ int pw_impl_port_use_buffers(struct pw_impl_port *port, struct pw_impl_port_mix
{
int res = 0, res2;
pw_log_debug(NAME" %p: %d:%d.%d: %d buffers flags:%d state:%d n_mix:%d", port,
pw_log_debug("%p: %d:%d.%d: %d buffers flags:%d state:%d n_mix:%d", port,
port->direction, port->port_id, mix->id,
n_buffers, flags, port->state, port->n_mix);
@ -1512,7 +1515,7 @@ int pw_impl_port_use_buffers(struct pw_impl_port *port, struct pw_impl_port_mix
res = negotiate_mixer_buffers(port, flags, buffers, n_buffers);
if (res < 0) {
pw_log_error(NAME" %p: negotiate buffers on node: %d (%s)",
pw_log_error("%p: negotiate buffers on node: %d (%s)",
port, res, spa_strerror(res));
pw_impl_port_update_state(port, PW_IMPL_PORT_STATE_ERROR, res,
strdup("can't negotiate buffers on port"));
@ -1530,7 +1533,7 @@ int pw_impl_port_use_buffers(struct pw_impl_port *port, struct pw_impl_port_mix
buffers, n_buffers);
if (res2 < 0) {
if (res2 != -ENOTSUP && n_buffers > 0) {
pw_log_warn(NAME" %p: mix use buffers failed: %d (%s)",
pw_log_warn("%p: mix use buffers failed: %d (%s)",
port, res2, spa_strerror(res2));
return res2;
}

View file

@ -53,6 +53,15 @@ PW_LOG_TOPIC(log_context, "pw.context");
PW_LOG_TOPIC(log_metadata, "pw.metadata");
PW_LOG_TOPIC(log_node, "pw.node");
PW_LOG_TOPIC(log_port, "pw.port");
PW_LOG_TOPIC(log_core, "pw.core");
PW_LOG_TOPIC(log_proxy, "pw.proxy");
PW_LOG_TOPIC(log_global, "pw.global");
PW_LOG_TOPIC(log_protocol, "pw.protocol");
PW_LOG_TOPIC(log_client, "pw.client");
PW_LOG_TOPIC(log_factory, "pw.factory");
PW_LOG_TOPIC(log_module, "pw.module");
PW_LOG_TOPIC(log_device, "pw.device");
PW_LOG_TOPIC(log_resource, "pw.resource");
PW_LOG_TOPIC(PW_LOG_TOPIC_DEFAULT, "default");
@ -413,4 +422,13 @@ pw_log_init(void)
PW_LOG_TOPIC_INIT(log_metadata);
PW_LOG_TOPIC_INIT(log_node);
PW_LOG_TOPIC_INIT(log_port);
PW_LOG_TOPIC_INIT(log_core);
PW_LOG_TOPIC_INIT(log_proxy);
PW_LOG_TOPIC_INIT(log_global);
PW_LOG_TOPIC_INIT(log_protocol);
PW_LOG_TOPIC_INIT(log_client);
PW_LOG_TOPIC_INIT(log_factory);
PW_LOG_TOPIC_INIT(log_module);
PW_LOG_TOPIC_INIT(log_device);
PW_LOG_TOPIC_INIT(log_resource);
}

View file

@ -52,6 +52,9 @@
#define SUPPORTLIB "support/libspa-support"
PW_LOG_TOPIC_EXTERN(log_context);
#define PW_LOG_TOPIC_DEFAULT log_context
static char *prgname;
static struct spa_i18n *_pipewire_i18n = NULL;

View file

@ -31,7 +31,8 @@
#include <pipewire/private.h>
#include <pipewire/type.h>
#define NAME "protocol"
PW_LOG_TOPIC_EXTERN(log_protocol);
#define PW_LOG_TOPIC_DEFAULT log_protocol
/** \cond */
struct impl {
@ -68,7 +69,7 @@ struct pw_protocol *pw_protocol_new(struct pw_context *context,
spa_list_append(&context->protocol_list, &protocol->link);
pw_log_debug(NAME" %p: Created protocol %s", protocol, name);
pw_log_debug("%p: Created protocol %s", protocol, name);
return protocol;
}
@ -107,7 +108,7 @@ void pw_protocol_destroy(struct pw_protocol *protocol)
struct pw_protocol_server *server;
struct pw_protocol_client *client;
pw_log_debug(NAME" %p: destroy", protocol);
pw_log_debug("%p: destroy", protocol);
pw_protocol_emit_destroy(protocol);
spa_hook_list_clean(&protocol->listener_list);
@ -152,7 +153,7 @@ pw_protocol_add_marshal(struct pw_protocol *protocol,
spa_list_append(&protocol->marshal_list, &impl->link);
pw_log_debug(NAME" %p: Add marshal %s/%d to protocol %s", protocol,
pw_log_debug("%p: Add marshal %s/%d to protocol %s", protocol,
marshal->type, marshal->version, protocol->name);
return 0;
@ -170,7 +171,7 @@ pw_protocol_get_marshal(struct pw_protocol *protocol, const char *type, uint32_t
(impl->marshal->flags & flags) == flags)
return impl->marshal;
}
pw_log_debug(NAME" %p: No marshal %s/%d for protocol %s", protocol,
pw_log_debug("%p: No marshal %s/%d for protocol %s", protocol,
type, version, protocol->name);
return NULL;
}

View file

@ -32,7 +32,8 @@
#include <spa/debug/types.h>
#define NAME "proxy"
PW_LOG_TOPIC_EXTERN(log_proxy);
#define PW_LOG_TOPIC_DEFAULT log_proxy
/** \cond */
struct proxy {
@ -52,7 +53,7 @@ int pw_proxy_init(struct pw_proxy *proxy, const char *type, uint32_t version)
proxy->id = pw_map_insert_new(&proxy->core->objects, proxy);
if (proxy->id == SPA_ID_INVALID) {
res = -errno;
pw_log_error(NAME" %p: can't allocate new id: %m", proxy);
pw_log_error("%p: can't allocate new id: %m", proxy);
goto error;
}
@ -60,7 +61,7 @@ int pw_proxy_init(struct pw_proxy *proxy, const char *type, uint32_t version)
spa_hook_list_init(&proxy->object_listener_list);
if ((res = pw_proxy_install_marshal(proxy, false)) < 0) {
pw_log_error(NAME" %p: no marshal for type %s/%d: %s", proxy,
pw_log_error("%p: no marshal for type %s/%d: %s", proxy,
type, version, spa_strerror(res));
goto error_clean;
}
@ -108,7 +109,7 @@ struct pw_proxy *pw_proxy_new(struct pw_proxy *factory,
if (user_data_size > 0)
this->user_data = SPA_PTROFF(impl, sizeof(struct proxy), void);
pw_log_debug(NAME" %p: new %u type %s/%d core-proxy:%p, marshal:%p",
pw_log_debug("%p: new %u type %s/%d core-proxy:%p, marshal:%p",
this, this->id, type, version, this->core, this->marshal);
return this;
@ -159,7 +160,7 @@ SPA_EXPORT
int pw_proxy_set_bound_id(struct pw_proxy *proxy, uint32_t global_id)
{
proxy->bound_id = global_id;
pw_log_debug(NAME" %p: id:%d bound:%d", proxy, proxy->id, global_id);
pw_log_debug("%p: id:%d bound:%d", proxy, proxy->id, global_id);
pw_proxy_emit_bound(proxy, global_id);
return 0;
}
@ -229,7 +230,7 @@ static inline void remove_from_map(struct pw_proxy *proxy)
SPA_EXPORT
void pw_proxy_destroy(struct pw_proxy *proxy)
{
pw_log_debug(NAME" %p: destroy id:%u removed:%u zombie:%u ref:%d", proxy,
pw_log_debug("%p: destroy id:%u removed:%u zombie:%u ref:%d", proxy,
proxy->id, proxy->removed, proxy->zombie, proxy->refcount);
assert(!proxy->destroyed);
@ -267,7 +268,7 @@ void pw_proxy_remove(struct pw_proxy *proxy)
{
assert(proxy->refcount > 0);
pw_log_debug(NAME" %p: remove id:%u removed:%u destroyed:%u zombie:%u ref:%d", proxy,
pw_log_debug("%p: remove id:%u removed:%u destroyed:%u zombie:%u ref:%d", proxy,
proxy->id, proxy->removed, proxy->destroyed, proxy->zombie,
proxy->refcount);
@ -294,7 +295,7 @@ void pw_proxy_unref(struct pw_proxy *proxy)
if (--proxy->refcount > 0)
return;
pw_log_debug(NAME" %p: free %u", proxy, proxy->id);
pw_log_debug("%p: free %u", proxy, proxy->id);
/** client must explicitly destroy all proxies */
assert(proxy->destroyed);
free(proxy);
@ -315,7 +316,7 @@ int pw_proxy_sync(struct pw_proxy *proxy, int seq)
if (core && !core->removed) {
res = pw_core_sync(core, proxy->id, seq);
pw_log_debug(NAME" %p: %u seq:%d sync %u", proxy, proxy->id, seq, res);
pw_log_debug("%p: %u seq:%d sync %u", proxy, proxy->id, seq, res);
}
return res;
}

View file

@ -31,7 +31,8 @@
#include <spa/debug/types.h>
#define NAME "resource"
PW_LOG_TOPIC_EXTERN(log_device);
#define PW_LOG_TOPIC_DEFAULT log_device
/** \cond */
struct impl {
@ -72,14 +73,14 @@ struct pw_resource *pw_resource_new(struct pw_impl_client *client,
}
if ((res = pw_map_insert_at(&client->objects, id, this)) < 0) {
pw_log_error(NAME" %p: can't add id %u for client %p: %s",
pw_log_error("%p: can't add id %u for client %p: %s",
this, id, client, spa_strerror(res));
goto error_clean;
}
this->id = id;
if ((res = pw_resource_install_marshal(this, false)) < 0) {
pw_log_error(NAME" %p: no marshal for type %s/%d: %s", this,
pw_log_error("%p: no marshal for type %s/%d: %s", this,
type, version, spa_strerror(res));
goto error_clean;
}
@ -88,7 +89,7 @@ struct pw_resource *pw_resource_new(struct pw_impl_client *client,
if (user_data_size > 0)
this->user_data = SPA_PTROFF(impl, sizeof(struct impl), void);
pw_log_debug(NAME" %p: new %u type %s/%d client:%p marshal:%p",
pw_log_debug("%p: new %u type %s/%d client:%p marshal:%p",
this, id, type, version, client, this->marshal);
pw_impl_client_emit_resource_added(client, this);
@ -200,7 +201,7 @@ int pw_resource_ping(struct pw_resource *resource, int seq)
if (client->core_resource != NULL) {
pw_core_resource_ping(client->core_resource, resource->id, seq);
res = client->send_seq;
pw_log_debug(NAME" %p: %u seq:%d ping %d", resource, resource->id, seq, res);
pw_log_debug("%p: %u seq:%d ping %d", resource, resource->id, seq, res);
}
return res;
}
@ -212,7 +213,7 @@ int pw_resource_set_bound_id(struct pw_resource *resource, uint32_t global_id)
resource->bound_id = global_id;
if (client->core_resource != NULL) {
pw_log_debug(NAME" %p: %u global_id:%u", resource, resource->id, global_id);
pw_log_debug("%p: %u global_id:%u", resource, resource->id, global_id);
pw_core_resource_bound_id(client->core_resource, resource->id, global_id);
}
return 0;
@ -270,7 +271,7 @@ void pw_resource_destroy(struct pw_resource *resource)
resource->global = NULL;
}
pw_log_debug(NAME" %p: destroy %u", resource, resource->id);
pw_log_debug("%p: destroy %u", resource, resource->id);
pw_resource_emit_destroy(resource);
pw_map_insert_at(&client->objects, resource->id, NULL);
@ -279,7 +280,7 @@ void pw_resource_destroy(struct pw_resource *resource)
if (client->core_resource && !resource->removed)
pw_core_resource_remove_id(client->core_resource, resource->id);
pw_log_debug(NAME" %p: free %u", resource, resource->id);
pw_log_debug("%p: free %u", resource, resource->id);
spa_hook_list_clean(&resource->listener_list);
spa_hook_list_clean(&resource->object_listener_list);