diff options
author | Thomas Weißschuh <thomas@t-8ch.de> | 2022-08-21 21:41:52 +0200 |
---|---|---|
committer | Philip Langdale <github.philipl@overt.org> | 2022-09-11 20:24:42 -0700 |
commit | aa7223cd8c483db1606e5890360cb33763437d68 (patch) | |
tree | b538dac8c9c5eeb2cad6293b4e5c2b612a07eefb | |
parent | 235a66bfc8a5341d0c40966b3746a97749b1c9a0 (diff) | |
download | mpv-aa7223cd8c483db1606e5890360cb33763437d68.tar.bz2 mpv-aa7223cd8c483db1606e5890360cb33763437d68.tar.xz |
ao_pipewire: create is_sink_node helper
-rw-r--r-- | audio/out/ao_pipewire.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/audio/out/ao_pipewire.c b/audio/out/ao_pipewire.c index 1f9fe44e1e..c94d411262 100644 --- a/audio/out/ao_pipewire.c +++ b/audio/out/ao_pipewire.c @@ -276,21 +276,29 @@ struct registry_event_global_ctx { void *sink_cb_ctx; }; -static void for_each_sink_registry_event_global(void *data, uint32_t id, - uint32_t permissions, const - char *type, uint32_t version, - const struct spa_dict *props) +static bool is_sink_node(const char *type, const struct spa_dict *props) { - struct registry_event_global_ctx *ctx = data; - if (strcmp(type, PW_TYPE_INTERFACE_Node) != 0) - return; + return false; if (!props) - return; + return false; const char *class = spa_dict_lookup(props, PW_KEY_MEDIA_CLASS); if (!class || strcmp(class, "Audio/Sink") != 0) + return false; + + return true; +} + +static void for_each_sink_registry_event_global(void *data, uint32_t id, + uint32_t permissions, const + char *type, uint32_t version, + const struct spa_dict *props) +{ + struct registry_event_global_ctx *ctx = data; + + if (!is_sink_node(type, props)) return; ctx->sink_cb(ctx->ao, id, props, ctx->sink_cb_ctx); |