1
mirror of https://github.com/mpv-player/mpv synced 2024-08-04 14:59:58 +02:00
mpv/input
Uoti Urpala dc2a4863af 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).
2012-07-16 21:08:42 +03:00
..
appleir.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
ar.c input/ar.c, input/lirc.c: fix changes missing from 1916b95b8 2011-09-04 08:04:31 +03:00
ar.h cleanup: remove some unnecessary input.[ch] typedefs 2011-07-16 21:32:37 +03:00
input.c options: support parsing values into substructs 2012-07-16 21:08:42 +03:00
input.h ao_pulse, core: make pulse thread wake up core for more data 2012-03-26 03:55:31 +03:00
joystick.c input/joystick.c: add #include missing from 23cb829072 2011-05-03 13:26:30 +03:00
joystick.h input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
keycodes.h x11: input: add print and menu keys 2012-03-25 22:30:37 +03:00
lirc.c input/ar.c, input/lirc.c: fix changes missing from 1916b95b8 2011-09-04 08:04:31 +03:00
lirc.h cleanup: remove some unnecessary input.[ch] typedefs 2011-07-16 21:32:37 +03:00