diff --git a/src/pipewire/conf.c b/src/pipewire/conf.c index 565abfeda..49946b38b 100644 --- a/src/pipewire/conf.c +++ b/src/pipewire/conf.c @@ -46,7 +46,8 @@ #include -#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; } diff --git a/src/pipewire/context.c b/src/pipewire/context.c index b786eafbb..05b826e2d 100644 --- a/src/pipewire/context.c +++ b/src/pipewire/context.c @@ -49,7 +49,8 @@ #include -#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; } diff --git a/src/pipewire/core.c b/src/pipewire/core.c index a118dc8c4..dd7e05eac 100644 --- a/src/pipewire/core.c +++ b/src/pipewire/core.c @@ -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; diff --git a/src/pipewire/global.c b/src/pipewire/global.c index e44caf1e6..f85205e65 100644 --- a/src/pipewire/global.c +++ b/src/pipewire/global.c @@ -33,7 +33,8 @@ #include #include -#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); diff --git a/src/pipewire/impl-client.c b/src/pipewire/impl-client.c index 8e3490f90..282a96249 100644 --- a/src/pipewire/impl-client.c +++ b/src/pipewire/impl-client.c @@ -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); } diff --git a/src/pipewire/impl-core.c b/src/pipewire/impl-core.c index 56d67cadc..961d1216a 100644 --- a/src/pipewire/impl-core.c +++ b/src/pipewire/impl-core.c @@ -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; diff --git a/src/pipewire/impl-device.c b/src/pipewire/impl-device.c index 9d387ee1f..0e4b226aa 100644 --- a/src/pipewire/impl-device.c +++ b/src/pipewire/impl-device.c @@ -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; } diff --git a/src/pipewire/impl-factory.c b/src/pipewire/impl-factory.c index 531057d0d..223a20f52 100644 --- a/src/pipewire/impl-factory.c +++ b/src/pipewire/impl-factory.c @@ -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; diff --git a/src/pipewire/impl-metadata.c b/src/pipewire/impl-metadata.c index 112eb3aaf..1c36db3a7 100644 --- a/src/pipewire/impl-metadata.c +++ b/src/pipewire/impl-metadata.c @@ -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; } diff --git a/src/pipewire/impl-module.c b/src/pipewire/impl-module.c index 8fdc69175..d7e59e2a8 100644 --- a/src/pipewire/impl-module.c +++ b/src/pipewire/impl-module.c @@ -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; diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index 1dc2509bf..ff67018f0 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -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); diff --git a/src/pipewire/impl-port.c b/src/pipewire/impl-port.c index dad7b25d4..ea8dd5430 100644 --- a/src/pipewire/impl-port.c +++ b/src/pipewire/impl-port.c @@ -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; } diff --git a/src/pipewire/log.c b/src/pipewire/log.c index 55fb381e7..afe2cc47b 100644 --- a/src/pipewire/log.c +++ b/src/pipewire/log.c @@ -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); } diff --git a/src/pipewire/pipewire.c b/src/pipewire/pipewire.c index b8d6d66cc..b06b38a74 100644 --- a/src/pipewire/pipewire.c +++ b/src/pipewire/pipewire.c @@ -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; diff --git a/src/pipewire/protocol.c b/src/pipewire/protocol.c index ba209a07d..8ffc27774 100644 --- a/src/pipewire/protocol.c +++ b/src/pipewire/protocol.c @@ -31,7 +31,8 @@ #include #include -#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; } diff --git a/src/pipewire/proxy.c b/src/pipewire/proxy.c index 9efed6901..8c20b3d58 100644 --- a/src/pipewire/proxy.c +++ b/src/pipewire/proxy.c @@ -32,7 +32,8 @@ #include -#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; } diff --git a/src/pipewire/resource.c b/src/pipewire/resource.c index e23803a26..309369f58 100644 --- a/src/pipewire/resource.c +++ b/src/pipewire/resource.c @@ -31,7 +31,8 @@ #include -#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);