From dc2a4863af9b0e587ac4ec3e2096639098e99a8f Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Thu, 17 May 2012 03:31:11 +0300 Subject: 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). --- defaultopts.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'defaultopts.c') diff --git a/defaultopts.c b/defaultopts.c index da557117bf..da19528838 100644 --- a/defaultopts.c +++ b/defaultopts.c @@ -22,7 +22,6 @@ void set_default_mplayer_options(struct MPOpts *opts) .vo_gamma_hue = 1000, .osd_level = 1, .osd_duration = 1000, - .stream_dump_name = "stream.dump", .loop_times = -1, .ordered_chapters = 1, .chapter_merge_threshold = 100, @@ -33,7 +32,6 @@ void set_default_mplayer_options(struct MPOpts *opts) .user_correct_pts = -1, .initial_audio_sync = 1, .term_osd = 1, - .term_osd_esc = "\x1b[A\r\x1b[K", .consolecontrols = 1, .doubleclick_time = 300, .audio_id = -1, @@ -60,7 +58,6 @@ void set_default_mplayer_options(struct MPOpts *opts) .error_concealment = 3, }, .input = { - .config_file = "input.conf", .key_fifo_size = 7, .ar_delay = 100, .ar_rate = 8, -- cgit v1.2.3