From 6a8fc3f5e38f93c36d18ad8407d4f3f345d893db Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 18 Dec 2013 19:04:30 +0100 Subject: msg: change --msglevel, reduce legacy glue Basically, reimplement --msglevel. Instead of making the new msg code use the legacy code, make the legacy code use the reimplemented functionality. The handling of the deprecated --identify switch changes. It temporarily stops working; this will be fixed in later commits. The actual sub-options syntax (like --msglevel-vo=...) goes away, but I bet nobody knew about this or used this anyway. --- options/options.c | 104 ++---------------------------------------------------- 1 file changed, 3 insertions(+), 101 deletions(-) (limited to 'options/options.c') diff --git a/options/options.c b/options/options.c index d828df6179..fdb54ff115 100644 --- a/options/options.c +++ b/options/options.c @@ -190,105 +190,6 @@ static const m_option_t mfopts_conf[]={ {NULL, NULL, 0, 0, 0, 0, NULL} }; -extern int mp_msg_levels[MSGT_MAX]; -extern int mp_msg_level_all; - -static const m_option_t msgl_config[]={ - { "all", &mp_msg_level_all, CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL}, - - { "global", &mp_msg_levels[MSGT_GLOBAL], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "cplayer", &mp_msg_levels[MSGT_CPLAYER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "vo", &mp_msg_levels[MSGT_VO], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "ao", &mp_msg_levels[MSGT_AO], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "demuxer", &mp_msg_levels[MSGT_DEMUXER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "ds", &mp_msg_levels[MSGT_DS], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "demux", &mp_msg_levels[MSGT_DEMUX], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "header", &mp_msg_levels[MSGT_HEADER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "avsync", &mp_msg_levels[MSGT_AVSYNC], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "autoq", &mp_msg_levels[MSGT_AUTOQ], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "cfgparser", &mp_msg_levels[MSGT_CFGPARSER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "decaudio", &mp_msg_levels[MSGT_DECAUDIO], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "decvideo", &mp_msg_levels[MSGT_DECVIDEO], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "seek", &mp_msg_levels[MSGT_SEEK], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "win32", &mp_msg_levels[MSGT_WIN32], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "open", &mp_msg_levels[MSGT_OPEN], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "dvd", &mp_msg_levels[MSGT_DVD], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "parsees", &mp_msg_levels[MSGT_PARSEES], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "lirc", &mp_msg_levels[MSGT_LIRC], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "stream", &mp_msg_levels[MSGT_STREAM], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "cache", &mp_msg_levels[MSGT_CACHE], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "encode", &mp_msg_levels[MSGT_ENCODE], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "xacodec", &mp_msg_levels[MSGT_XACODEC], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "tv", &mp_msg_levels[MSGT_TV], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "radio", &mp_msg_levels[MSGT_RADIO], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "osdep", &mp_msg_levels[MSGT_OSDEP], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "spudec", &mp_msg_levels[MSGT_SPUDEC], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "playtree", &mp_msg_levels[MSGT_PLAYTREE], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "input", &mp_msg_levels[MSGT_INPUT], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "vfilter", &mp_msg_levels[MSGT_VFILTER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "osd", &mp_msg_levels[MSGT_OSD], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "network", &mp_msg_levels[MSGT_NETWORK], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "cpudetect", &mp_msg_levels[MSGT_CPUDETECT], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "codeccfg", &mp_msg_levels[MSGT_CODECCFG], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "sws", &mp_msg_levels[MSGT_SWS], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "vobsub", &mp_msg_levels[MSGT_VOBSUB], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "subreader", &mp_msg_levels[MSGT_SUBREADER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "afilter", &mp_msg_levels[MSGT_AFILTER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "netst", &mp_msg_levels[MSGT_NETST], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "muxer", &mp_msg_levels[MSGT_MUXER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "identify", &mp_msg_levels[MSGT_IDENTIFY], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "ass", &mp_msg_levels[MSGT_ASS], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "statusline", &mp_msg_levels[MSGT_STATUSLINE], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - { "fixme", &mp_msg_levels[MSGT_FIXME], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL }, - {"help", "Available msg modules:\n" - " global - common player errors/information\n" - " cplayer - console player (mplayer.c)\n" - " vo - libvo\n" - " ao - libao\n" - " demuxer - demuxer.c (general stuff)\n" - " ds - demux stream (add/read packet etc)\n" - " demux - fileformat-specific stuff (demux_*.c)\n" - " header - fileformat-specific header (*header.c)\n" - " avsync - mplayer.c timer stuff\n" - " autoq - mplayer.c auto-quality stuff\n" - " cfgparser - cfgparser.c\n" - " decaudio - av decoder\n" - " decvideo\n" - " seek - seeking code\n" - " win32 - win32 dll stuff\n" - " open - open.c (stream opening)\n" - " dvd - open.c (DVD init/read/seek)\n" - " parsees - parse_es.c (mpeg stream parser)\n" - " lirc - lirc_mp.c and input lirc driver\n" - " stream - stream.c\n" - " cache - cache2.c\n" - " encode - encode_lavc.c and associated vo/ao drivers\n" - " xacodec - XAnim codecs\n" - " tv - TV input subsystem\n" - " osdep - OS-dependent parts\n" - " spudec - spudec.c\n" - " playtree - Playtree handling (playtree.c, playtreeparser.c)\n" - " input\n" - " vfilter\n" - " osd\n" - " network\n" - " cpudetect\n" - " codeccfg\n" - " sws\n" - " vobsub\n" - " subreader\n" - " afilter - Audio filter messages\n" - " netst - Netstream\n" - " muxer - muxer layer\n" - " identify - identify output\n" - " ass - libass messages\n" - " statusline - playback/encoding status line\n" - " fixme - messages not yet fixed to map to module\n" - "\n", CONF_TYPE_PRINT, CONF_GLOBAL | CONF_NOCFG, 0, 0, NULL}, - {NULL, NULL, 0, 0, 0, 0, NULL} - -}; - #if HAVE_TV static const m_option_t tvscan_conf[]={ {"autostart", &stream_tv_defaults.scan, CONF_TYPE_FLAG, 0, 0, 1, NULL}, @@ -336,7 +237,8 @@ const m_option_t mp_opts[] = { // ------------------------- common options -------------------- OPT_FLAG("quiet", quiet, CONF_GLOBAL), {"really-quiet", &verbose, CONF_TYPE_STORE, CONF_GLOBAL|CONF_PRE_PARSE, 0, -10, NULL}, - {"msglevel", (void *) msgl_config, CONF_TYPE_SUBCONFIG, CONF_GLOBAL, 0, 0, NULL}, + OPT_GENERAL(char*, "msglevel", msglevels, CONF_GLOBAL|CONF_PRE_PARSE, + .type = &m_option_type_msglevels), {"msgcolor", &mp_msg_color, CONF_TYPE_FLAG, CONF_GLOBAL | CONF_PRE_PARSE, 0, 1, NULL}, {"msgmodule", &mp_msg_module, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, #if HAVE_PRIORITY @@ -730,7 +632,7 @@ const m_option_t mp_opts[] = { {"", (void *) mp_input_opts, CONF_TYPE_SUBCONFIG}, OPT_FLAG("list-properties", list_properties, CONF_GLOBAL), - {"identify", &mp_msg_levels[MSGT_IDENTIFY], CONF_TYPE_FLAG, CONF_GLOBAL, 0, MSGL_V, NULL}, + {"identify", &mp_smode, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, {"help", (void *) mp_help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL}, {"h", (void *) mp_help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL}, {"version", (void *)print_version_opt, CONF_TYPE_PRINT_FUNC, CONF_NOCFG|CONF_GLOBAL|M_OPT_PRE_PARSE}, -- cgit v1.2.3 From ed71606e65e697ea6bc9fc78caf2dd4089dc0aeb Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 21 Dec 2013 19:33:45 +0100 Subject: input: rework how input sources are added Until now, there were two functions to add input sources (stuff like stdin input, slave mode, lirc, joystick). Unify them to a single function (mp_input_add_fd()), and make sure the associated callbacks always have a context parameter. Change the lirc and joystick code such that they take store their state in a context struct (probably worthless), and use the new mp_msg replacements (the point of this refactoring). Additionally, get rid of the ugly USE_FD0_CMD_SELECT etc. ifdeffery in the terminal handling code. --- options/options.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'options/options.c') diff --git a/options/options.c b/options/options.c index fdb54ff115..a4c3292c01 100644 --- a/options/options.c +++ b/options/options.c @@ -574,10 +574,6 @@ const m_option_t mp_opts[] = { OPT_STRING("stream-capture", stream_capture, 0), OPT_STRING("stream-dump", stream_dump, 0), -#if HAVE_LIRC - {"lircconf", &lirc_configfile, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, -#endif - OPT_CHOICE_OR_INT("loop", loop_times, M_OPT_GLOBAL, 2, 10000, ({"no", -1}, {"1", -1}, {"inf", 0})), -- cgit v1.2.3 From d8d42b44fc717c695af59c14213d54885088ea37 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 21 Dec 2013 19:45:42 +0100 Subject: m_option, m_config: mp_msg conversions Always pass around mp_log contexts in the option parser code. This of course affects all users of this API as well. In stream.c, pass a mp_null_log, because we can't do it properly yet. This will be fixed later. --- options/options.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'options/options.c') diff --git a/options/options.c b/options/options.c index a4c3292c01..bd64669079 100644 --- a/options/options.c +++ b/options/options.c @@ -64,10 +64,10 @@ extern int sws_flags; extern const char mp_help_text[]; -static int print_version_opt(const m_option_t *opt, const char *name, - const char *param) +static int print_version_opt(struct mp_log *log, const m_option_t *opt, + const char *name, const char *param) { - mp_print_version(true); + mp_print_version(log, true); return M_OPT_EXIT; } -- cgit v1.2.3 From 245e5b844177e9ad9a9c07eff5efab7c3fccdebc Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 21 Dec 2013 23:11:12 +0100 Subject: msg: remove global state --- options/options.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'options/options.c') diff --git a/options/options.c b/options/options.c index bd64669079..85b7a40cbe 100644 --- a/options/options.c +++ b/options/options.c @@ -215,10 +215,8 @@ extern const m_option_t ad_lavc_decode_opts_conf[]; extern const m_option_t mp_input_opts[]; const m_option_t mp_opts[] = { - // handled in command line pre-parser (parser-mpcmd.c) + // handled in command line pre-parser (parse_commandline.c) {"v", NULL, CONF_TYPE_STORE, CONF_GLOBAL | CONF_NOCFG, 0, 0, NULL}, - - // handled in command line parser (parser-mpcmd.c) {"playlist", NULL, CONF_TYPE_STRING, CONF_NOCFG | M_OPT_MIN, 1, 0, NULL}, {"{", NULL, CONF_TYPE_STORE, CONF_NOCFG, 0, 0, NULL}, {"}", NULL, CONF_TYPE_STORE, CONF_NOCFG, 0, 0, NULL}, @@ -236,11 +234,12 @@ const m_option_t mp_opts[] = { // ------------------------- common options -------------------- OPT_FLAG("quiet", quiet, CONF_GLOBAL), - {"really-quiet", &verbose, CONF_TYPE_STORE, CONF_GLOBAL|CONF_PRE_PARSE, 0, -10, NULL}, + OPT_FLAG_STORE("really-quiet", verbose, CONF_GLOBAL | CONF_PRE_PARSE, -10), OPT_GENERAL(char*, "msglevel", msglevels, CONF_GLOBAL|CONF_PRE_PARSE, .type = &m_option_type_msglevels), - {"msgcolor", &mp_msg_color, CONF_TYPE_FLAG, CONF_GLOBAL | CONF_PRE_PARSE, 0, 1, NULL}, - {"msgmodule", &mp_msg_module, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, + OPT_FLAG("msgcolor", msg_color, CONF_GLOBAL | CONF_PRE_PARSE), + OPT_FLAG("msgmodule", msg_module, CONF_GLOBAL), + OPT_FLAG("identify", msg_identify, CONF_GLOBAL), #if HAVE_PRIORITY {"priority", &proc_priority, CONF_TYPE_STRING, 0, 0, 0, NULL}, #endif @@ -628,7 +627,6 @@ const m_option_t mp_opts[] = { {"", (void *) mp_input_opts, CONF_TYPE_SUBCONFIG}, OPT_FLAG("list-properties", list_properties, CONF_GLOBAL), - {"identify", &mp_smode, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL}, {"help", (void *) mp_help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL}, {"h", (void *) mp_help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL}, {"version", (void *)print_version_opt, CONF_TYPE_PRINT_FUNC, CONF_NOCFG|CONF_GLOBAL|M_OPT_PRE_PARSE}, @@ -659,6 +657,7 @@ const m_option_t mp_opts[] = { }; const struct MPOpts mp_default_opts = { + .msg_color = 1, .reset_options = (char **)(const char *[]){"pause", NULL}, .audio_driver_list = NULL, .audio_decoders = "-spdif:*", // never select spdif by default -- cgit v1.2.3