mirror of
https://github.com/mpv-player/mpv
synced 2024-12-27 01:22:30 +00:00
commands: allow printing raw properties
Extend m_properties_expand_string() so that it can print properties as unformatted string. Normally, properties will be pretty-printed (intended for OSD and user interface purposes). Add the '=' modifier to the format string syntax that disables pretty-printing and returns them "raw". For example, "${=switch_audio}" will print the track number, instead of returning an OSD friendly string containing additional information like track title and language.
This commit is contained in:
parent
416c03417e
commit
b248692034
13
m_property.c
13
m_property.c
@ -160,12 +160,17 @@ char *m_properties_expand_string(const m_option_t *prop_list, char *str,
|
||||
lvl--, str++, l = 0;
|
||||
} else if (str[0] == '$' && str[1] == '{'
|
||||
&& (e = strchr(str + 2, '}'))) {
|
||||
int pl = e - str - 2;
|
||||
str += 2;
|
||||
int method = M_PROPERTY_PRINT;
|
||||
if (str[0] == '=') {
|
||||
str += 1;
|
||||
method = M_PROPERTY_TO_STRING;
|
||||
}
|
||||
int pl = e - str;
|
||||
char pname[pl + 1];
|
||||
memcpy(pname, str + 2, pl);
|
||||
memcpy(pname, str, pl);
|
||||
pname[pl] = 0;
|
||||
if (m_property_do(prop_list, pname,
|
||||
M_PROPERTY_PRINT, &p, ctx) >= 0 && p)
|
||||
if (m_property_do(prop_list, pname, method, &p, ctx) >= 0 && p)
|
||||
l = strlen(p), fr = 1;
|
||||
else
|
||||
l = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user