From 1a5650b62837308a0106a365a9fd26057defaf67 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 7 Nov 2014 16:33:41 +0100 Subject: command: export the flag whether an option was set on commandline Can be useful for certain scripts; I think someone requested this. --- player/command.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'player') 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}, -- cgit v1.2.3