mirror of
https://github.com/mpv-player/mpv
synced 2025-02-16 12:17:12 +00:00
new configfile/cmdline parser
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@154 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
48edc5f4bd
commit
f907302c24
@ -1,4 +1,6 @@
|
||||
static char* default_config=
|
||||
"nosound=nem"
|
||||
"# Write your default config options here!\n"
|
||||
"\n"
|
||||
//"nosound=nem"
|
||||
"\n";
|
||||
|
||||
|
@ -2,46 +2,50 @@
|
||||
* config for cfgparser
|
||||
*/
|
||||
|
||||
#include "cfg-mplayer-func.h"
|
||||
|
||||
struct config conf[]={
|
||||
/* name, pointer, type, flags, min, max */
|
||||
{"o", "Option -o has been renamed to -vo (video-out), use -vo !\n",
|
||||
CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
|
||||
{"vo", &video_driver, CONF_TYPE_STRING, 0, 0, 0},
|
||||
{"dsp", &dsp, CONF_TYPE_STRING, 0, 0, 0},
|
||||
{"encode", &encode_name, CONF_TYPE_STRING, 0, 0, 0},
|
||||
{"bg", &play_in_bg, CONF_TYPE_FLAG, 0, 0, 1},
|
||||
{"nobg", &play_in_bg, CONF_TYPE_FLAG, 0, 1, 0},
|
||||
{"sb", &seek_to_byte, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"ss", &seek_to_sec, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"sb", &seek_to_byte, CONF_TYPE_INT, CONF_MIN, 0, 0},
|
||||
{"ss", &seek_to_sec, CONF_TYPE_INT, CONF_MIN, 0, 0},
|
||||
{"sound", &has_audio, CONF_TYPE_FLAG, 0, 0, 1},
|
||||
{"nosound", &has_audio, CONF_TYPE_FLAG, 0, 1, 0},
|
||||
{"abs", &audio_buffer_size, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"delay", &audio_delay, CONF_TYPE_FLOAT, 0, 0, 0},
|
||||
{"abs", &audio_buffer_size, CONF_TYPE_INT, CONF_MIN, 0, 0},
|
||||
{"delay", &audio_delay, CONF_TYPE_FLOAT, CONF_RANGE, -10.0, 10.0},
|
||||
{"bps", &pts_from_bps, CONF_TYPE_FLAG, 0, 0, 1},
|
||||
{"nobps", &pts_from_bps, CONF_TYPE_FLAG, 0, 1, 0},
|
||||
{"alsa", &alsa, CONF_TYPE_FLAG, 0, 0, 1},
|
||||
{"noalsa", &alsa, CONF_TYPE_FLAG, 0, 1, 0},
|
||||
{"ni", &force_ni, CONF_TYPE_FLAG, 0, 0, 1},
|
||||
{"noni", &force_ni, CONF_TYPE_FLAG, 0, 1, 0},
|
||||
{"aid", &audio_id, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"vid", &video_id, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"aid", &audio_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
|
||||
{"vid", &video_id, CONF_TYPE_INT, CONF_RANGE, 0, 256},
|
||||
{"auds", &avi_header.audio_codec, CONF_TYPE_STRING, 0, 0, 0},
|
||||
{"vids", &avi_header.video_codec, CONF_TYPE_STRING, 0, 0, 0},
|
||||
{"mc", &default_max_pts_correction, CONF_TYPE_FLOAT, 0, 0, 0},
|
||||
{"fps", &force_fps, CONF_TYPE_FLOAT, 0, 0, 0},
|
||||
{"afm", &audio_format, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"vcd", &vcd_track, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"pp", &divx_quality, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"br", &encode_bitrate, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"x", &screen_size_x, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"y", &screen_size_y, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"xy", &screen_size_xy, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"mc", &default_max_pts_correction, CONF_TYPE_FLOAT, CONF_RANGE, 0, 10},
|
||||
{"fps", &force_fps, CONF_TYPE_FLOAT, CONF_MIN, 0, 0},
|
||||
{"afm", &audio_format, CONF_TYPE_INT, CONF_RANGE, 1, 6},
|
||||
{"vcd", &vcd_track, CONF_TYPE_INT, CONF_RANGE, 1, 99},
|
||||
{"divxq", "Option -divxq has been renamed to -pp (postprocessing), use -pp !\n",
|
||||
CONF_TYPE_PRINT, 0, 0, 0},
|
||||
{"pp", &divx_quality, CONF_TYPE_INT, CONF_RANGE, 0, 63},
|
||||
{"br", &encode_bitrate, CONF_TYPE_INT, CONF_RANGE, 10000, 10000000},
|
||||
{"x", &screen_size_x, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
|
||||
{"y", &screen_size_y, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
|
||||
{"xy", &screen_size_xy, CONF_TYPE_INT, CONF_RANGE, 1, 4096},
|
||||
{"fs", &fullscreen, CONF_TYPE_FLAG, 0, 0, 1},
|
||||
{"nofs", &fullscreen, CONF_TYPE_FLAG, 0, 1, 0},
|
||||
{"idx", &no_index, CONF_TYPE_FLAG, 0, 1, 0},
|
||||
{"noidx", &no_index, CONF_TYPE_FLAG, 0, 0, 1},
|
||||
{"v", &verbose, CONF_TYPE_INT, 0, 0, 0},
|
||||
{"-help", cfg_func_help, CONF_TYPE_FUNC, CONF_NOCFG, 0, 0},
|
||||
{"h", cfg_func_help, CONF_TYPE_FUNC, CONF_NOCFG, 0, 0},
|
||||
{"verbose", &verbose, CONF_TYPE_INT, CONF_RANGE, 0, 100},
|
||||
{"v", cfg_inc_verbose, CONF_TYPE_FUNC, 0, 0, 0},
|
||||
{"-help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
|
||||
{"help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
|
||||
{"h", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0},
|
||||
{NULL, NULL, 0, 0, 0, 0}
|
||||
};
|
||||
|
12
cfgparser.c
12
cfgparser.c
@ -103,11 +103,11 @@ static int read_option(char *opt, char *param)
|
||||
|
||||
tmp_int = atoi(param);
|
||||
|
||||
if (config[i].flags & CONF_CHK_MIN)
|
||||
if (config[i].flags & CONF_MIN)
|
||||
if (tmp_int < config[i].min)
|
||||
return ERR_OUT_OF_RANGE;
|
||||
|
||||
if (config[i].flags & CONF_CHK_MAX)
|
||||
if (config[i].flags & CONF_MAX)
|
||||
if (tmp_int > config[i].max)
|
||||
return ERR_OUT_OF_RANGE;
|
||||
|
||||
@ -122,11 +122,11 @@ static int read_option(char *opt, char *param)
|
||||
|
||||
tmp_float = atof(param);
|
||||
|
||||
if (config[i].flags & CONF_CHK_MIN)
|
||||
if (config[i].flags & CONF_MIN)
|
||||
if (tmp_float < config[i].min)
|
||||
return ERR_OUT_OF_RANGE;
|
||||
|
||||
if (config[i].flags & CONF_CHK_MAX)
|
||||
if (config[i].flags & CONF_MAX)
|
||||
if (tmp_float > config[i].max)
|
||||
return ERR_OUT_OF_RANGE;
|
||||
|
||||
@ -137,11 +137,11 @@ static int read_option(char *opt, char *param)
|
||||
if (param == NULL)
|
||||
return ERR_MISSING_PARAM;
|
||||
|
||||
if (config[i].flags & CONF_CHK_MIN)
|
||||
if (config[i].flags & CONF_MIN)
|
||||
if (strlen(param) < config[i].min)
|
||||
return ERR_OUT_OF_RANGE;
|
||||
|
||||
if (config[i].flags & CONF_CHK_MAX)
|
||||
if (config[i].flags & CONF_MAX)
|
||||
if (strlen(param) > config[i].max)
|
||||
return ERR_OUT_OF_RANGE;
|
||||
|
||||
|
@ -13,8 +13,9 @@
|
||||
#define CONF_TYPE_FUNC_PARAM 5
|
||||
#define CONF_TYPE_PRINT 6
|
||||
|
||||
#define CONF_CHK_MIN (1<<0)
|
||||
#define CONF_CHK_MAX (1<<1)
|
||||
#define CONF_MIN (1<<0)
|
||||
#define CONF_MAX (1<<1)
|
||||
#define CONF_RANGE (CONF_MIN|CONF_MAX)
|
||||
#define CONF_NOCFG (1<<2)
|
||||
#define CONF_NOCMD (1<<3)
|
||||
|
||||
|
21
mplayer.c
21
mplayer.c
@ -79,6 +79,11 @@ extern int errno;
|
||||
#define DEBUG if(0)
|
||||
static int verbose=0;
|
||||
|
||||
static int cfg_inc_verbose(struct config *conf){
|
||||
++verbose;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int max_framesize=0;
|
||||
|
||||
static int dbg_es_sent=0;
|
||||
@ -312,16 +317,6 @@ void exit_sighandler(int x){
|
||||
exit_player(NULL);
|
||||
}
|
||||
|
||||
void usage(void){
|
||||
printf("%s",help_text);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
void missing_param(char *s){
|
||||
printf("Missing parameter: %s\n", s);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int divx_quality=0;
|
||||
|
||||
int main(int argc,char* argv[], char *envp[]){
|
||||
@ -435,9 +430,9 @@ if(video_driver && strcmp(video_driver,"help")==0){
|
||||
|
||||
if(!filename){
|
||||
if(vcd_track) filename="/dev/cdrom";
|
||||
else
|
||||
//filename="MI2-Trailer.avi";
|
||||
usage();
|
||||
else {
|
||||
printf("%s",help_text); exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -79,6 +79,11 @@ extern int errno;
|
||||
#define DEBUG if(0)
|
||||
static int verbose=0;
|
||||
|
||||
static int cfg_inc_verbose(struct config *conf){
|
||||
++verbose;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int max_framesize=0;
|
||||
|
||||
static int dbg_es_sent=0;
|
||||
|
Loading…
Reference in New Issue
Block a user