summaryrefslogtreecommitdiffstats
path: root/options/parse_configfile.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-08-05 22:37:47 +0200
committerwm4 <wm4@nowhere>2020-08-05 22:37:47 +0200
commit13d354e46d27fd0c433880839abcf9096dbcbc2f (patch)
tree8b410c67db9a1ee0573892386d442019b54122da /options/parse_configfile.c
parentf457f3839a88447bdef2ecb3ea8b8e37864f9b93 (diff)
downloadmpv-13d354e46d27fd0c433880839abcf9096dbcbc2f.tar.bz2
mpv-13d354e46d27fd0c433880839abcf9096dbcbc2f.tar.xz
auto_profiles: add this script
This is taken from a somewhat older proof-of-concept script. The basic idea, and most of the implementation, is still the same. The way the profiles are actually defined changed. I still feel bad about this being a Lua script, and running user expressions as Lua code in a vaguely defined environment, but I guess as far as balance of effort/maintenance/results goes, this is fine. It's a bit bloated (the Lua scripting state is at least 150KB or so in total), so in order to enable this by default, I decided it should unload itself by default if no auto-profiles are used. (And currently, it does not actually rescan the profile list if a new config file is loaded some time later, so the script would do nothing anyway if no auto profiles were defined.) This still requires defining inverse profiles for "unapplying" a profile. Also this is still somewhat racy. Both will probably be alleviated to some degree in the future.
Diffstat (limited to 'options/parse_configfile.c')
-rw-r--r--options/parse_configfile.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/options/parse_configfile.c b/options/parse_configfile.c
index 14b30e87b4..96b607d554 100644
--- a/options/parse_configfile.c
+++ b/options/parse_configfile.c
@@ -131,6 +131,9 @@ int m_config_parse(m_config_t *config, const char *location, bstr data,
if (bstr_equals0(option, "profile-desc")) {
m_profile_set_desc(profile, value);
res = 0;
+ } else if (bstr_equals0(option, "profile-cond")) {
+ m_profile_set_cond(profile, value);
+ res = 0;
} else {
res = m_config_set_profile_option(config, profile, option, value);
}