core: make options.c compile standalone

This also removes the split between "mplayer" and "common" opts (common
opts used to be shared between mencoder and mplayer).
This commit is contained in:
wm4 2013-06-07 22:57:00 +02:00
parent 96338c6c17
commit 667c8352f3
6 changed files with 58 additions and 59 deletions

View File

@ -180,6 +180,7 @@ SOURCES = talloc.c \
core/mp_fifo.c \
core/mp_msg.c \
core/mplayer.c \
core/options.c \
core/parser-cfg.c \
core/parser-mpcmd.c \
core/path.c \

View File

@ -37,4 +37,6 @@ int init_audio_filters(sh_audio_t *sh_audio, int in_samplerate,
int *out_samplerate, struct mp_chmap *out_channels,
int *out_format);
extern struct af_cfg af_cfg;
#endif /* MPLAYER_DEC_AUDIO_H */

View File

@ -319,6 +319,8 @@ struct playlist_entry *mp_next_file(struct MPContext *mpctx, int direction);
int mp_get_cache_percent(struct MPContext *mpctx);
void mp_write_watch_later_conf(struct MPContext *mpctx);
void mp_print_version(int always);
// timeline/tl_matroska.c
void build_ordered_chapter_timeline(struct MPContext *mpctx);
// timeline/tl_edl.c

View File

@ -141,6 +141,7 @@
#include "stream/stream_dvd.h"
#endif
#include "audio/filter/af.h"
#include "audio/decode/dec_audio.h"
#include "video/decode/dec_video.h"
#include "video/mp_image.h"
@ -152,7 +153,7 @@
#include "core/mp_core.h"
#include "core/options.h"
static const char help_text[] = _(
const char mp_help_text[] = _(
"Usage: mpv [options] [url|path/]filename\n"
"\n"
"Basic options: (complete list in the man page)\n"
@ -199,8 +200,6 @@ static const char av_desync_help_text[] = _(
#include "core/mp_common.h"
#include "core/command.h"
#include "core/options.c"
static void reset_subtitles(struct MPContext *mpctx);
static void reinit_subs(struct MPContext *mpctx);
static struct track *open_external_file(struct MPContext *mpctx, char *filename,
@ -4504,19 +4503,12 @@ static void play_files(struct MPContext *mpctx)
}
}
static void print_version(int always)
void mp_print_version(int always)
{
mp_msg(MSGT_CPLAYER, always ? MSGL_INFO : MSGL_V,
"%s (C) 2000-2013 mpv/MPlayer/mplayer2 projects\n built on %s\n", mplayer_version, mplayer_builddate);
}
static int print_version_opt(const m_option_t *opt, const char *name,
const char *param)
{
print_version(true);
exit(0);
}
static bool handle_help_options(struct MPContext *mpctx)
{
struct MPOpts *opts = &mpctx->opts;
@ -4641,14 +4633,13 @@ static int mpv_main(int argc, char *argv[])
struct MPOpts *opts = &mpctx->opts;
// Create the config context and register the options
mpctx->mconfig = m_config_new(opts, cfg_include);
m_config_register_options(mpctx->mconfig, mplayer_opts);
m_config_register_options(mpctx->mconfig, common_opts);
m_config_register_options(mpctx->mconfig, mp_opts);
mp_input_register_options(mpctx->mconfig);
// Preparse the command line
m_config_preparse_command_line(mpctx->mconfig, argc, argv);
print_version(false);
mp_print_version(false);
print_libav_versions();
if (!parse_cfgfiles(mpctx, mpctx->mconfig))
@ -4674,8 +4665,8 @@ static int mpv_main(int argc, char *argv[])
mp_msg(MSGT_CPLAYER, MSGL_V, "\n");
if (!mpctx->playlist->first && !opts->player_idle_mode) {
print_version(true);
mp_msg(MSGT_CPLAYER, MSGL_INFO, "%s", mp_gtext(help_text));
mp_print_version(true);
mp_msg(MSGT_CPLAYER, MSGL_INFO, "%s", mp_gtext(mp_help_text));
exit_player(mpctx, EXIT_NONE, 0);
}

View File

@ -33,15 +33,17 @@
#include "stream/tv.h"
#include "stream/stream_radio.h"
#include "video/csputils.h"
#include "sub/sub.h"
#include "audio/mixer.h"
#include "audio/filter/af.h"
#include "audio/decode/dec_audio.h"
#include "mp_core.h"
extern char *lirc_configfile;
extern int mp_msg_color;
extern int mp_msg_module;
/* defined in dec_video.c */
extern int field_dominance;
/* from dec_audio, currently used for ac3surround decoder only */
extern int fakemono;
@ -55,11 +57,17 @@ extern const m_option_t cdda_opts[];
extern int sws_flags;
extern const char pp_help[];
extern const char mp_help_text[];
static int print_version_opt(const m_option_t *opt, const char *name,
const char *param);
const char *param)
{
mp_print_version(true);
exit(0);
}
#ifdef CONFIG_RADIO
const m_option_t radioopts_conf[]={
static const m_option_t radioopts_conf[]={
{"device", &stream_radio_defaults.device, CONF_TYPE_STRING, 0, 0 ,0, NULL},
{"driver", &stream_radio_defaults.driver, CONF_TYPE_STRING, 0, 0 ,0, NULL},
{"channels", &stream_radio_defaults.channels, CONF_TYPE_STRING_LIST, 0, 0 ,0, NULL},
@ -72,7 +80,7 @@ const m_option_t radioopts_conf[]={
#endif /* CONFIG_RADIO */
#ifdef CONFIG_TV
const m_option_t tvopts_conf[]={
static const m_option_t tvopts_conf[]={
{"immediatemode", &stream_tv_defaults.immediate, CONF_TYPE_INT, CONF_RANGE, 0, 1, NULL},
{"audio", &stream_tv_defaults.noaudio, CONF_TYPE_FLAG, 0, 1, 0, NULL},
{"audiorate", &stream_tv_defaults.audiorate, CONF_TYPE_INT, 0, 0, 0, NULL},
@ -130,7 +138,7 @@ extern int pvr_param_bitrate_peak;
extern char *pvr_param_stream_type;
#ifdef CONFIG_PVR
const m_option_t pvropts_conf[]={
static const m_option_t pvropts_conf[]={
{"aspect", &pvr_param_aspect_ratio, CONF_TYPE_INT, 0, 1, 4, NULL},
{"arate", &pvr_param_sample_rate, CONF_TYPE_INT, 0, 32000, 48000, NULL},
{"alayer", &pvr_param_audio_layer, CONF_TYPE_INT, 0, 1, 2, NULL},
@ -154,7 +162,7 @@ extern float sws_lum_gblur;
extern float sws_chr_sharpen;
extern float sws_lum_sharpen;
const m_option_t scaler_filter_conf[]={
static const m_option_t scaler_filter_conf[]={
{"lgb", &sws_lum_gblur, CONF_TYPE_FLOAT, 0, 0, 100.0, NULL},
{"cgb", &sws_chr_gblur, CONF_TYPE_FLOAT, 0, 0, 100.0, NULL},
{"cvs", &sws_chr_vshift, CONF_TYPE_INT, 0, 0, 0, NULL},
@ -168,21 +176,18 @@ extern char *dvd_device, *cdrom_device;
extern double mf_fps;
extern char * mf_type;
extern m_obj_list_t vf_obj_list;
extern const m_obj_list_t vf_obj_list;
const m_option_t mfopts_conf[]={
static const m_option_t mfopts_conf[]={
{"fps", &mf_fps, CONF_TYPE_DOUBLE, 0, 0, 0, NULL},
{"type", &mf_type, CONF_TYPE_STRING, 0, 0, 0, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
#include "audio/filter/af.h"
extern struct af_cfg af_cfg; // Audio filter configuration, defined in libmpcodecs/dec_audio.c
extern int mp_msg_levels[MSGT_MAX];
extern int mp_msg_level_all;
const m_option_t msgl_config[]={
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 },
@ -278,12 +283,29 @@ const m_option_t msgl_config[]={
};
extern const m_option_t lavc_decode_opts_conf[];
extern const m_option_t ad_lavc_decode_opts_conf[];
#ifdef CONFIG_TV
static const m_option_t tvscan_conf[]={
{"autostart", &stream_tv_defaults.scan, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"threshold", &stream_tv_defaults.scan_threshold, CONF_TYPE_INT, CONF_RANGE, 1, 100, NULL},
{"period", &stream_tv_defaults.scan_period, CONF_TYPE_FLOAT, CONF_RANGE, 0.1, 2.0, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
#endif
#define OPT_BASE_STRUCT struct MPOpts
const m_option_t common_opts[] = {
extern const struct m_sub_options image_writer_conf;
static const m_option_t screenshot_conf[] = {
OPT_SUBSTRUCT("", screenshot_image_opts, image_writer_conf, 0),
OPT_STRING("template", screenshot_template, 0),
{0},
};
extern const m_option_t lavc_decode_opts_conf[];
extern const m_option_t ad_lavc_decode_opts_conf[];
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},
@ -434,7 +456,7 @@ const m_option_t common_opts[] = {
{"af*", &af_cfg.list, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL},
OPT_SETTINGSLIST("vf*", vf_settings, 0, &vf_obj_list),
OPT_SETTINGSLIST("vf*", vf_settings, 0, (void *) &vf_obj_list),
OPT_STRING("ad", audio_decoders, 0),
OPT_STRING("vd", video_decoders, 0),
@ -504,28 +526,6 @@ const m_option_t common_opts[] = {
OPT_FLOATRANGE("osd-bar-h", osd_bar_h, 0, 0.1, 50),
OPT_SUBSTRUCT("osd", osd_style, osd_style_conf, 0),
OPT_SUBSTRUCT("sub-text", sub_text_style, osd_style_conf, 0),
{NULL, NULL, 0, 0, 0, 0, NULL}
};
#ifdef CONFIG_TV
const m_option_t tvscan_conf[]={
{"autostart", &stream_tv_defaults.scan, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"threshold", &stream_tv_defaults.scan_threshold, CONF_TYPE_INT, CONF_RANGE, 1, 100, NULL},
{"period", &stream_tv_defaults.scan_period, CONF_TYPE_FLOAT, CONF_RANGE, 0.1, 2.0, NULL},
{NULL, NULL, 0, 0, 0, 0, NULL}
};
#endif
extern const struct m_sub_options image_writer_conf;
const m_option_t screenshot_conf[] = {
OPT_SUBSTRUCT("", screenshot_image_opts, image_writer_conf, 0),
OPT_STRING("template", screenshot_template, 0),
{0},
};
const m_option_t mplayer_opts[]={
/* name, pointer, type, flags, min, max */
//---------------------- libao/libvo options ------------------------
OPT_STRINGLIST("vo", vo.video_driver_list, 0),
@ -699,8 +699,8 @@ const m_option_t mplayer_opts[]={
OPT_FLAG("list-properties", list_properties, CONF_GLOBAL),
{"identify", &mp_msg_levels[MSGT_IDENTIFY], CONF_TYPE_FLAG, CONF_GLOBAL, 0, MSGL_V, NULL},
{"help", (void *) help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL},
{"h", (void *) help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, 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},
{"V", (void *)print_version_opt, CONF_TYPE_PRINT_FUNC, CONF_NOCFG|CONF_GLOBAL|M_OPT_PRE_PARSE},
@ -727,7 +727,7 @@ const m_option_t mplayer_opts[]={
{NULL, NULL, 0, 0, 0, 0, NULL}
};
static const struct MPOpts mp_default_opts = {
const struct MPOpts mp_default_opts = {
.reset_options = (char **)(const char *[]){"pause", NULL},
.audio_driver_list = NULL,
.audio_decoders = "-spdif:*", // never select spdif by default

View File

@ -268,4 +268,7 @@ typedef struct MPOpts {
} encode_output;
} MPOpts;
extern const m_option_t mp_opts[];
extern const struct MPOpts mp_default_opts;
#endif