diff options
author | Thomas Weißschuh <thomas@t-8ch.de> | 2022-09-04 11:49:36 +0200 |
---|---|---|
committer | Philip Langdale <github.philipl@overt.org> | 2022-09-10 12:32:52 -0700 |
commit | 535cd6f3130a179890505535b1cb06998a9cb07f (patch) | |
tree | 6a82e141bb3fd82369b3484440400f75d2f9b3e1 | |
parent | 3167a77aa38b3700c9a4459fa5fe2f65eef080a8 (diff) | |
download | mpv-535cd6f3130a179890505535b1cb06998a9cb07f.tar.bz2 mpv-535cd6f3130a179890505535b1cb06998a9cb07f.tar.xz |
ao_pipewire: handle AOCONTROL_UPDATE_MEDIA_ROLE
-rw-r--r-- | audio/out/ao_pipewire.c | 24 |
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; } |