annotate subopt-helper.h @ 27815:f92271dc5f17

Remove X11 backing store: this is now a useless flag. Also, it is mandatory for Xserver 1.5.x (part of Xorg 7.4, shipped on all Linux distributions starting from Oct. 08) and will be removed from Xserver 1.6 anyhow ... Patch by Stephane Marchesin (marchesin at icps dot u dash strasbg dot fr). For more info, see long flame thread at: http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2008-August/058323.html
author ben
date Wed, 29 Oct 2008 22:03:36 +0000
parents 4129c8cfa742
children 2b021e3e1000
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
1 #ifndef MPLAYER_SUBOPT_HELPER_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
2 #define MPLAYER_SUBOPT_HELPER_H
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
3
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
4 /**
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
5 * \file subopt-helper.h
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
6 *
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
7 * \brief Datatype and functions declarations for usage
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
8 * of the suboption parser.
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
9 *
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
10 */
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
11
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
12 #define OPT_ARG_BOOL 0
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
13 #define OPT_ARG_INT 1
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
14 #define OPT_ARG_STR 2
14538
00c3c4111017 New suboption type: malloc'ed, zero terminated string
reimar
parents: 14285
diff changeset
15 #define OPT_ARG_MSTRZ 3 ///< A malloced, zero terminated string, use free()!
16720
f73adf296f1e support float arguments in subopt helper.
joey
parents: 15734
diff changeset
16 #define OPT_ARG_FLOAT 4
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
17
14285
6c3241503d9b Add a type name for the test function
reimar
parents: 14281
diff changeset
18 typedef int (*opt_test_f)(void *);
6c3241503d9b Add a type name for the test function
reimar
parents: 14281
diff changeset
19
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
20 /** simple structure for defining the option name, type and storage location */
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
21 typedef struct opt_s
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
22 {
19194
5949a654e2d4 marks some read-only char* inside structs as const, patch by Stefan Huehner, stefan At huehner-org
reynaldo
parents: 19104
diff changeset
23 const char * name; ///< string that identifies the option
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
24 int type; ///< option type as defined in subopt-helper.h
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
25 void * valp; ///< pointer to the mem where the value should be stored
14285
6c3241503d9b Add a type name for the test function
reimar
parents: 14281
diff changeset
26 opt_test_f test; ///< argument test func ( optional )
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
27 int set; ///< Is set internally by the parser if the option was found.
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
28 ///< Don't use it at initialization of your opts, it will be
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
29 ///< overriden anyway!
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
30 } opt_t;
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
31
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
32 /** parses the string for the options specified in opt */
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
33 int subopt_parse( char const * const str, opt_t * opts );
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
34
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
35
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
36 /*------------------ arg specific types and declaration -------------------*/
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
37 typedef struct strarg_s
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
38 {
14538
00c3c4111017 New suboption type: malloc'ed, zero terminated string
reimar
parents: 14285
diff changeset
39 int len; ///< length of the string determined by the parser
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
40 char const * str; ///< pointer to position inside the parse string
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
41 } strarg_t;
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
42
14736
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
43
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
44 int int_non_neg( int * i );
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
45 int int_pos( int * i );
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
46
19104
2ec2301183cd marks several read-only string parameters which aren't modified inside the called function as const. Patch by Stefan Huehner, stefan AT huehner-org
reynaldo
parents: 16720
diff changeset
47 int strargcmp(strarg_t *arg, const char *str);
15734
7e4fa8fc255c helper functions for comparing strarg_t "strings".
reimar
parents: 14736
diff changeset
48 int strargcasecmp(strarg_t *arg, char *str);
7e4fa8fc255c helper functions for comparing strarg_t "strings".
reimar
parents: 14736
diff changeset
49
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
50 #endif /* MPLAYER_SUBOPT_HELPER_H */