mirror of
https://github.com/mpv-player/mpv
synced 2025-04-18 05:07:18 +00:00
ao_pipewire: handle AOCONTROL_UPDATE_MEDIA_ROLE
This commit is contained in:
parent
3167a77aa3
commit
535cd6f313
@ -436,7 +436,6 @@ static int init(struct ao *ao)
|
|||||||
struct pw_properties *props = pw_properties_new(
|
struct pw_properties *props = pw_properties_new(
|
||||||
PW_KEY_MEDIA_TYPE, "Audio",
|
PW_KEY_MEDIA_TYPE, "Audio",
|
||||||
PW_KEY_MEDIA_CATEGORY, "Playback",
|
PW_KEY_MEDIA_CATEGORY, "Playback",
|
||||||
PW_KEY_MEDIA_ROLE, "Movie",
|
|
||||||
PW_KEY_NODE_NAME, ao->client_name,
|
PW_KEY_NODE_NAME, ao->client_name,
|
||||||
PW_KEY_NODE_DESCRIPTION, ao->client_name,
|
PW_KEY_NODE_DESCRIPTION, ao->client_name,
|
||||||
PW_KEY_APP_NAME, 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_VOLUME:
|
||||||
case AOCONTROL_SET_MUTE:
|
case AOCONTROL_SET_MUTE:
|
||||||
case AOCONTROL_UPDATE_STREAM_TITLE: {
|
case AOCONTROL_UPDATE_STREAM_TITLE:
|
||||||
|
case AOCONTROL_UPDATE_MEDIA_ROLE: {
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
pw_thread_loop_lock(p->loop);
|
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))));
|
ret = CONTROL_RET(pw_stream_update_properties(p->stream, &SPA_DICT_INIT(items, MP_ARRAY_SIZE(items))));
|
||||||
break;
|
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:
|
default:
|
||||||
ret = CONTROL_NA;
|
ret = CONTROL_NA;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user