Mercurial > mplayer.hg
comparison mplayerHQ.c @ 147:0a0d7dd8fb51
new command line/config file parser
author | szabii |
---|---|
date | Sun, 18 Mar 2001 23:32:31 +0000 |
parents | 7c67c52142ed |
children | 16a32ec6419d |
comparison
equal
deleted
inserted
replaced
146:f3eb963d1370 | 147:0a0d7dd8fb51 |
---|---|
33 #include <sys/soundcard.h> | 33 #include <sys/soundcard.h> |
34 #include <linux/cdrom.h> | 34 #include <linux/cdrom.h> |
35 | 35 |
36 #include "version.h" | 36 #include "version.h" |
37 #include "config.h" | 37 #include "config.h" |
38 | |
39 #include "cfgparser.h" | |
38 | 40 |
39 #include "libvo/video_out.h" | 41 #include "libvo/video_out.h" |
40 | 42 |
41 // CODECS: | 43 // CODECS: |
42 #include "mp3lib/mp3.h" | 44 #include "mp3lib/mp3.h" |
320 exit(1); | 322 exit(1); |
321 } | 323 } |
322 | 324 |
323 int divx_quality=0; | 325 int divx_quality=0; |
324 | 326 |
325 int main(int argc,char* argv[]){ | 327 int main(int argc,char* argv[], char *envp[]){ |
326 char* filename=NULL; //"MI2-Trailer.avi"; | 328 char* filename=NULL; //"MI2-Trailer.avi"; |
327 int i; | 329 int i; |
328 int seek_to_sec=0; | 330 int seek_to_sec=0; |
329 int seek_to_byte=0; | 331 int seek_to_byte=0; |
330 int f; // filedes | 332 int f; // filedes |
369 int movie_size_x=0; | 371 int movie_size_x=0; |
370 int movie_size_y=0; | 372 int movie_size_y=0; |
371 int out_fmt=0; | 373 int out_fmt=0; |
372 char *dsp="/dev/dsp"; | 374 char *dsp="/dev/dsp"; |
373 int force_ni=0; | 375 int force_ni=0; |
376 char *homedir; | |
377 char conffile[100]; | |
378 #include "cfg-mplayer.h" | |
374 | 379 |
375 printf("%s",banner_text); | 380 printf("%s",banner_text); |
376 | 381 |
377 /* CHKOPT(a): check, wether there is 'a' more options left */ | 382 if (parse_config_file(conf, "/etc/mplayer.conf") < 0) |
378 #define CHKOPT(a) if ((argc - i) < (a + 1)) missing_param(argv[i]); | 383 exit(1); |
379 if (argc == 1) | 384 if ((homedir = getenv("HOME")) == NULL) { |
380 usage(); | 385 printf("Can't find HOME dir\n"); |
381 for(i=1;i<argc;i++){ | 386 exit(1); |
382 if(strcmp(argv[i],"-o")==0){ | 387 } else { |
383 printf("Option -o has been renamed to -vo (video-out), use -vo !\n"); | 388 snprintf(conffile, 100, "%s/.mplayerrc", homedir); |
389 if (parse_config_file(conf, conffile) < 0) | |
384 exit(1); | 390 exit(1); |
385 } else | 391 } |
386 if(strcmp(argv[i],"-divxq")==0){ | 392 if (parse_command_line(conf, argc, argv, envp, &filename) < 0) |
387 printf("Option -divxq has been renamed to -pp (postprocessing), use -pp !\n"); | 393 exit(1); |
388 exit(1); | |
389 } else | |
390 if(strcmp(argv[i],"-vo")==0) {CHKOPT(1); video_driver=argv[++i];} else | |
391 if(strcmp(argv[i],"-dsp")==0) {CHKOPT(1); dsp=argv[++i];} else | |
392 if(strcmp(argv[i],"-encode")==0) {CHKOPT(1); encode_name=argv[++i];} else | |
393 if(strcmp(argv[i],"-bg")==0) {play_in_bg=1;} else | |
394 if(strcmp(argv[i],"-sb")==0) {CHKOPT(1); seek_to_byte=strtol(argv[++i],NULL,0);} else | |
395 if(strcmp(argv[i],"-ss")==0) {CHKOPT(1); seek_to_sec=strtol(argv[++i],NULL,0);} else | |
396 if(strcmp(argv[i],"-nosound")==0) {has_audio=0;} else | |
397 if(strcmp(argv[i],"-abs")==0) {CHKOPT(1); audio_buffer_size=strtol(argv[++i],NULL,0);} else | |
398 if(strcmp(argv[i],"-delay")==0) {CHKOPT(1); audio_delay=strtod(argv[++i],NULL);} else | |
399 #ifdef AVI_SYNC_BPS | |
400 if(strcmp(argv[i],"-nobps")==0) {pts_from_bps=0;} else | |
401 #else | |
402 if(strcmp(argv[i],"-bps")==0) {pts_from_bps=1;} else | |
403 #endif | |
404 #ifdef ALSA_TIMER | |
405 if(strcmp(argv[i],"-noalsa")==0) {alsa=0;} else | |
406 #else | |
407 if(strcmp(argv[i],"-alsa")==0) {alsa=1;} else | |
408 #endif | |
409 if(strcmp(argv[i],"-ni")==0) {force_ni=1;} else | |
410 if(strcmp(argv[i],"-aid")==0) {CHKOPT(1); audio_id=strtol(argv[++i],NULL,0);} else | |
411 if(strcmp(argv[i],"-vid")==0) {CHKOPT(1); video_id=strtol(argv[++i],NULL,0);} else | |
412 if(strcmp(argv[i],"-auds")==0) {CHKOPT(1); avi_header.audio_codec=argv[++i];} else | |
413 if(strcmp(argv[i],"-vids")==0) {CHKOPT(1); avi_header.video_codec=argv[++i];} else | |
414 if(strcmp(argv[i],"-mc")==0) {CHKOPT(1); default_max_pts_correction=strtod(argv[++i],NULL);} else | |
415 if(strcmp(argv[i],"-fps")==0) {CHKOPT(1); force_fps=strtod(argv[++i],NULL);} else | |
416 if(strcmp(argv[i],"-afm")==0) {CHKOPT(1); audio_format=strtol(argv[++i],NULL,0);} else | |
417 if(strcmp(argv[i],"-vcd")==0) {CHKOPT(1); vcd_track=strtol(argv[++i],NULL,0);} else | |
418 if(strcmp(argv[i],"-pp")==0) {CHKOPT(1); divx_quality=strtol(argv[++i],NULL,0);} else | |
419 if(strcmp(argv[i],"-br")==0) {CHKOPT(1); encode_bitrate=strtol(argv[++i],NULL,0);} else | |
420 if(strcmp(argv[i],"-x")==0) {CHKOPT(1); screen_size_x=strtol(argv[++i],NULL,0);} else | |
421 if(strcmp(argv[i],"-y")==0) {CHKOPT(1); screen_size_y=strtol(argv[++i],NULL,0);} else | |
422 if(strcmp(argv[i],"-xy")==0) {CHKOPT(1); screen_size_xy=strtol(argv[++i],NULL,0);} else | |
423 if(strcmp(argv[i],"-fs")==0) {fullscreen=1;} else | |
424 if(strcmp(argv[i],"-noidx")==0) {no_index=1;} else | |
425 if(strcmp(argv[i],"-v")==0) {++verbose;} else | |
426 if(strcmp(argv[i],"-h")==0) {usage();} else | |
427 if(strcmp(argv[i],"--help")==0) {usage();} else | |
428 { if(filename){ printf("invalid option: %s\n",filename);exit(1);} | |
429 filename=argv[i]; | |
430 } | |
431 } | |
432 #undef CHKOPT /* we don't need this anymore */ | |
433 | 394 |
434 // Many users forget to include command line in bugreports... | 395 // Many users forget to include command line in bugreports... |
435 if(verbose){ | 396 if(verbose){ |
436 printf("CommandLine:"); | 397 printf("CommandLine:"); |
437 for(i=1;i<argc;i++)printf(" '%s'",argv[i]); | 398 for(i=1;i<argc;i++)printf(" '%s'",argv[i]); |