summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Weißschuh <thomas@t-8ch.de>2022-09-04 11:49:36 +0200
committerPhilip Langdale <github.philipl@overt.org>2022-09-10 12:32:52 -0700
commit535cd6f3130a179890505535b1cb06998a9cb07f (patch)
tree6a82e141bb3fd82369b3484440400f75d2f9b3e1
parent3167a77aa38b3700c9a4459fa5fe2f65eef080a8 (diff)
downloadmpv-535cd6f3130a179890505535b1cb06998a9cb07f.tar.bz2
mpv-535cd6f3130a179890505535b1cb06998a9cb07f.tar.xz
ao_pipewire: handle AOCONTROL_UPDATE_MEDIA_ROLE
-rw-r--r--audio/out/ao_pipewire.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/audio/out/ao_pipewire.c b/audio/out/ao_pipewire.c
index 3a4aa5c517..1f9fe44e1e 100644
--- a/audio/out/ao_pipewire.c
+++ b/audio/out/ao_pipewire.c
@@ -436,7 +436,6 @@ static int init(struct ao *ao)
struct pw_properties *props = pw_properties_new(
PW_KEY_MEDIA_TYPE, "Audio",
PW_KEY_MEDIA_CATEGORY, "Playback",
- PW_KEY_MEDIA_ROLE, "Movie",
PW_KEY_NODE_NAME, ao->client_name,
PW_KEY_NODE_DESCRIPTION, ao->client_name,
PW_KEY_APP_NAME, ao->client_name,
@@ -562,7 +561,8 @@ static int control(struct ao *ao, enum aocontrol cmd, void *arg)
}
case AOCONTROL_SET_VOLUME:
case AOCONTROL_SET_MUTE:
- case AOCONTROL_UPDATE_STREAM_TITLE: {
+ case AOCONTROL_UPDATE_STREAM_TITLE:
+ case AOCONTROL_UPDATE_MEDIA_ROLE: {
int ret;
pw_thread_loop_lock(p->loop);
@@ -594,6 +594,26 @@ static int control(struct ao *ao, enum aocontrol cmd, void *arg)
ret = CONTROL_RET(pw_stream_update_properties(p->stream, &SPA_DICT_INIT(items, MP_ARRAY_SIZE(items))));
break;
}
+ case AOCONTROL_UPDATE_MEDIA_ROLE: {
+ enum aocontrol_media_role *role = arg;
+ struct spa_dict_item items[1];
+ const char *role_str;
+ switch (*role) {
+ case AOCONTROL_MEDIA_ROLE_MOVIE:
+ role_str = "Movie";
+ break;
+ case AOCONTROL_MEDIA_ROLE_MUSIC:
+ role_str = "Music";
+ break;
+ default:
+ MP_WARN(ao, "Unknown media role %d\n", *role);
+ role_str = "";
+ break;
+ }
+ items[0] = SPA_DICT_ITEM_INIT(PW_KEY_MEDIA_ROLE, role_str);
+ ret = CONTROL_RET(pw_stream_update_properties(p->stream, &SPA_DICT_INIT(items, MP_ARRAY_SIZE(items))));
+ break;
+ }
default:
ret = CONTROL_NA;
}