diff options
author | Uoti Urpala <uau@mplayer2.org> | 2012-05-17 03:31:11 +0300 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2012-07-16 21:08:42 +0300 |
commit | dc2a4863af9b0e587ac4ec3e2096639098e99a8f (patch) | |
tree | 15807fb5de256f91f730c435ab614332f12fa255 /cfg-mplayer.h | |
parent | f63dbaddb6de6add6d987dc28ca8771aca230451 (diff) | |
download | mpv-dc2a4863af9b0e587ac4ec3e2096639098e99a8f.tar.bz2 mpv-dc2a4863af9b0e587ac4ec3e2096639098e99a8f.tar.xz |
options: support parsing values into substructs
Add an alternate mode for option parser objects (struct m_config)
which is not inherently tied to any particular instance of an option
value struct. Instead, this type or parsers can be used to initialize
defaults in or parse values into a struct given as a parameter. They
do not have the save slot functionality used for main player
configuration. The new functionality will be used to replace the
separate subopt_helper.c parsing code that is currently used to parse
per-object suboptions in VOs etc.
Previously, option default values were handled by initializing them in
external code before creating a parser. This initialization was done
with constants even for dynamically-allocated types like strings.
Because trying to free a pointer to a constant would cause a crash
when trying to replace the default with another value, parser
initialization code then replaced all the original defaults with
dynamically-allocated copies. This replace-with-copy behavior is no
longer supported for new-style options; instead the option definition
itself may contain a default value (new OPTDEF macros), and the new
function m_config_initialize() is used to set all options to their
default values. Convert the existing initialized dynamically allocated
options in main config (the string options --dumpfile, --term-osd-esc,
--input=conf) to use this. Other non-dynamic ones could be later
converted to use this style of initialization too.
There's currently no public call to free all dynamically allocated
options in a given option struct because I intend to use talloc
functionality for that (make them children of the struct and free with
it).
Diffstat (limited to 'cfg-mplayer.h')
-rw-r--r-- | cfg-mplayer.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h index 66b381a920..5440de9946 100644 --- a/cfg-mplayer.h +++ b/cfg-mplayer.h @@ -863,7 +863,7 @@ const m_option_t mplayer_opts[]={ OPT_FLAG_ON("benchmark", benchmark, 0), // dump some stream out instead of playing the file - OPT_STRING("dumpfile", stream_dump_name, 0), + OPT_STRING("dumpfile", stream_dump_name, 0, OPTDEF_STR("stream.dump")), {"dumpaudio", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"dumpvideo", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 2, NULL}, {"dumpsub", &stream_dump_type, CONF_TYPE_FLAG, 0, 0, 3, NULL}, @@ -912,7 +912,7 @@ const m_option_t mplayer_opts[]={ #endif OPT_MAKE_FLAGS("term-osd", term_osd, 0), - OPT_STRING("term-osd-esc", term_osd_esc, 0), + OPT_STRING("term-osd-esc", term_osd_esc, 0, OPTDEF_STR("\x1b[A\r\x1b[K")), OPT_STRING("playing-msg", playing_msg, 0), {"slave", &slave_mode, CONF_TYPE_FLAG,CONF_GLOBAL , 0, 1, NULL}, |