From 72c6bf1345235801dc8916a907360fd7e2514933 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 2 Sep 2016 15:58:15 +0200 Subject: m_config: add some convenience functions To be used by the following commits. --- options/m_config.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'options/m_config.c') diff --git a/options/m_config.c b/options/m_config.c index 25b7d75c7f..19eb61d082 100644 --- a/options/m_config.c +++ b/options/m_config.c @@ -1143,6 +1143,27 @@ void m_config_notify_change_co(struct m_config *config, mp_msg_update_msglevels(config->global); } +void *mp_get_config_group(void *ta_parent, struct mpv_global *global, + const struct m_sub_options *group) +{ + assert(ta_parent); // without you'd necessarily leak memory + struct m_config_cache *cache = m_config_cache_alloc(ta_parent, global, group); + return cache->opts; +} + +void mp_read_option_raw(struct mpv_global *global, const char *name, + const struct m_option_type *type, void *dst) +{ + struct m_config_shadow *shadow = global->config; + struct m_config_option *co = m_config_get_co(shadow->root, bstr0(name)); + assert(co); + assert(co->shadow_offset >= 0); + assert(co->opt->type == type); + + memset(dst, 0, co->opt->type->size); + m_option_copy(co->opt, dst, shadow->data + co->shadow_offset); +} + struct m_config *mp_get_root_config(struct mpv_global *global) { return global->config->root; -- cgit v1.2.3