summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-11-07 16:33:41 +0100
committerwm4 <wm4@nowhere>2014-11-07 16:33:41 +0100
commit1a5650b62837308a0106a365a9fd26057defaf67 (patch)
treebe676b64d58bb0b01ae1e83f209102013e8ad887 /player
parente002ba74d340338e5eb00b08fac05e12000e0186 (diff)
downloadmpv-1a5650b62837308a0106a365a9fd26057defaf67.tar.bz2
mpv-1a5650b62837308a0106a365a9fd26057defaf67.tar.xz
command: export the flag whether an option was set on commandline
Can be useful for certain scripts; I think someone requested this.
Diffstat (limited to 'player')
-rw-r--r--player/command.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/player/command.c b/player/command.c
index 27ba3244a1..198ed64242 100644
--- a/player/command.c
+++ b/player/command.c
@@ -3001,6 +3001,31 @@ static int mp_property_local_options(void *ctx, struct m_property *prop,
return access_option_list(action, arg, true, mpctx);
}
+static int mp_property_option_flags(void *ctx, struct m_property *prop,
+ int action, void *arg)
+{
+ MPContext *mpctx = ctx;
+ switch (action) {
+ case M_PROPERTY_KEY_ACTION: {
+ struct m_property_action_arg *ka = arg;
+ bstr key;
+ char *rem;
+ m_property_split_path(ka->key, &key, &rem);
+ struct m_config_option *co = m_config_get_co(mpctx->mconfig, key);
+ if (!co)
+ return M_PROPERTY_UNKNOWN;
+
+ struct m_sub_property props[] = {
+ {"set-from-commandline", SUB_PROP_FLAG(co->is_set_from_cmdline)},
+ {0}
+ };
+
+ return m_property_read_sub(props, ka->action, ka->arg);
+ }
+ }
+ return M_PROPERTY_NOT_IMPLEMENTED;
+}
+
static const struct m_property mp_properties[];
static int mp_property_list(void *ctx, struct m_property *prop,
@@ -3212,6 +3237,7 @@ static const struct m_property mp_properties[] = {
{"options", mp_property_options},
{"file-local-options", mp_property_local_options},
+ {"option-flags", mp_property_option_flags},
{"property-list", mp_property_list},
{0},