diff options
-rw-r--r-- | src/examples/media-session/alsa-monitor.c | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/src/examples/media-session/alsa-monitor.c b/src/examples/media-session/alsa-monitor.c index a9a85108..e7395be4 100644 --- a/src/examples/media-session/alsa-monitor.c +++ b/src/examples/media-session/alsa-monitor.c @@ -258,6 +258,16 @@ static struct node *alsa_create_node(struct device *device, uint32_t id, else pw_properties_setf(node->props, SPA_KEY_MEDIA_CLASS, "Audio/Sink"); } + if (pw_properties_get(node->props, PW_KEY_NODE_NICK) == NULL) { + const char *s; + s = pw_properties_get(device->props, PW_KEY_DEVICE_NICK); + if (s == NULL) + s = pw_properties_get(device->props, SPA_KEY_API_ALSA_CARD_NAME); + if (s == NULL) + s = pw_properties_get(device->props, "alsa.card_name"); + pw_properties_set(node->props, PW_KEY_NODE_NICK, s); + + } if (pw_properties_get(node->props, SPA_KEY_NODE_NAME) == NULL) { const char *devname; if ((devname = pw_properties_get(device->props, SPA_KEY_DEVICE_NAME)) == NULL) @@ -419,13 +429,14 @@ static int update_device_props(struct device *device) const char *s, *d; char temp[32]; - if ((s = pw_properties_get(p, SPA_KEY_DEVICE_NAME)) == NULL) { - if ((s = pw_properties_get(p, SPA_KEY_DEVICE_BUS_ID)) == NULL) { - if ((s = pw_properties_get(p, SPA_KEY_DEVICE_BUS_PATH)) == NULL) { - snprintf(temp, sizeof(temp), "%d", device->id); - s = temp; - } - } + s = pw_properties_get(p, SPA_KEY_DEVICE_NAME); + if (s == NULL) + s = pw_properties_get(p, SPA_KEY_DEVICE_BUS_ID); + if (s == NULL) + s = pw_properties_get(p, SPA_KEY_DEVICE_BUS_PATH); + if (s == NULL) { + snprintf(temp, sizeof(temp), "%d", device->id); + s = temp; } pw_properties_setf(p, PW_KEY_DEVICE_NAME, "alsa_card.%s", s); @@ -448,6 +459,12 @@ static int update_device_props(struct device *device) pw_properties_set(p, PW_KEY_DEVICE_DESCRIPTION, d); } + if (pw_properties_get(p, PW_KEY_DEVICE_NICK) == NULL) { + s = pw_properties_get(p, SPA_KEY_API_ALSA_CARD_NAME); + if (s != NULL) + pw_properties_set(p, PW_KEY_DEVICE_NICK, s); + } + if (pw_properties_get(p, PW_KEY_DEVICE_ICON_NAME) == NULL) { d = NULL; |