Mercurial > mplayer.hg
annotate m_option.h @ 17149:9a0a376a54b1
Move audio packets reordering from codec interface to demuxers for real
files (old and new format), pass only real extradata to the codec
Enable cook codec from lavc, prefer lavc codecs for 14_4 and 28_8
formats. Disable internal 28_8, it's broken now and will be removed soon
author | rtognimp |
---|---|
date | Fri, 09 Dec 2005 16:25:37 +0000 |
parents | feb16d0117c8 |
children | b8ce59172e6a |
rev | line source |
---|---|
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
1 #ifndef _M_OPTION_H |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
2 #define _M_OPTION_H |
8164 | 3 |
4 typedef struct m_option_type m_option_type_t; | |
5 typedef struct m_option m_option_t; | |
9793 | 6 struct m_struct_st; |
8164 | 7 |
8 ///////////////////////////// Options types declarations //////////////////////////// | |
9 | |
10 // Simple types | |
11 extern m_option_type_t m_option_type_flag; | |
12 extern m_option_type_t m_option_type_int; | |
13 extern m_option_type_t m_option_type_float; | |
11947 | 14 extern m_option_type_t m_option_type_double; |
8164 | 15 extern m_option_type_t m_option_type_string; |
16 extern m_option_type_t m_option_type_string_list; | |
17 extern m_option_type_t m_option_type_position; | |
18 | |
19 extern m_option_type_t m_option_type_print; | |
8736 | 20 extern m_option_type_t m_option_type_print_indirect; |
8164 | 21 extern m_option_type_t m_option_type_subconfig; |
22 extern m_option_type_t m_option_type_imgfmt; | |
14246 | 23 extern m_option_type_t m_option_type_afmt; |
8164 | 24 |
25 // Func based types | |
26 extern m_option_type_t m_option_type_func_full; | |
27 extern m_option_type_t m_option_type_func_param; | |
28 extern m_option_type_t m_option_type_func; | |
29 | |
30 typedef void (*m_opt_default_func_t)(m_option_t *, char*); | |
31 typedef int (*m_opt_func_full_t)(m_option_t *, char *, char *); | |
32 typedef int (*m_opt_func_param_t)(m_option_t *, char *); | |
33 typedef int (*m_opt_func_t)(m_option_t *); | |
34 ///////////// Backward compat | |
35 typedef m_opt_default_func_t cfg_default_func_t; | |
36 typedef m_opt_func_full_t cfg_func_arg_param_t; | |
37 typedef m_opt_func_param_t cfg_func_param_t; | |
38 typedef m_opt_func_t cfg_func_t; | |
39 | |
9593
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
40 typedef struct { |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
41 void** list; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
42 void* name_off; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
43 void* info_off; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
44 void* desc_off; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
45 } m_obj_list_t; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
46 |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
47 typedef struct { |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
48 char* name; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
49 char** attribs; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
50 } m_obj_settings_t; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
51 extern m_option_type_t m_option_type_obj_settings_list; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
52 |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
53 // Presets are mean to be used with options struct |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
54 |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
55 |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
56 typedef struct { |
9791
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
57 struct m_struct_st* in_desc; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
58 struct m_struct_st* out_desc; |
9593
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
59 void* presets; // Pointer to an arry of struct defined by in_desc |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
60 void* name_off; // Offset of the preset name inside the in_struct |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
61 } m_obj_presets_t; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
62 extern m_option_type_t m_option_type_obj_presets; |
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
63 |
9791
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
64 extern m_option_type_t m_option_type_custom_url; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
65 |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
66 typedef struct { |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
67 struct m_struct_st* desc; // Fields description |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
68 char separator; // Field separator to use |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
69 } m_obj_params_t; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
70 extern m_option_type_t m_option_type_obj_params; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
71 |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
72 typedef struct { |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
73 int start; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
74 int end; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
75 } m_span_t; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
76 extern m_obj_params_t m_span_params_def; |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
77 |
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
78 |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
79 // FIXME: backward compatibility |
8164 | 80 #define CONF_TYPE_FLAG (&m_option_type_flag) |
81 #define CONF_TYPE_INT (&m_option_type_int) | |
82 #define CONF_TYPE_FLOAT (&m_option_type_float) | |
11947 | 83 #define CONF_TYPE_DOUBLE (&m_option_type_double) |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
84 #define CONF_TYPE_STRING (&m_option_type_string) |
8164 | 85 #define CONF_TYPE_FUNC (&m_option_type_func) |
86 #define CONF_TYPE_FUNC_PARAM (&m_option_type_func_param) | |
87 #define CONF_TYPE_PRINT (&m_option_type_print) | |
8736 | 88 #define CONF_TYPE_PRINT_INDIRECT (&m_option_type_print_indirect) |
8164 | 89 #define CONF_TYPE_FUNC_FULL (&m_option_type_func_full) |
90 #define CONF_TYPE_SUBCONFIG (&m_option_type_subconfig) | |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
91 #define CONF_TYPE_STRING_LIST (&m_option_type_string_list) |
8164 | 92 #define CONF_TYPE_POSITION (&m_option_type_position) |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
93 #define CONF_TYPE_IMGFMT (&m_option_type_imgfmt) |
14246 | 94 #define CONF_TYPE_AFMT (&m_option_type_afmt) |
8164 | 95 #define CONF_TYPE_SPAN (&m_option_type_span) |
9593
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
96 #define CONF_TYPE_OBJ_SETTINGS_LIST (&m_option_type_obj_settings_list) |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
97 #define CONF_TYPE_OBJ_PRESETS (&m_option_type_obj_presets) |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
98 #define CONF_TYPE_CUSTOM_URL (&m_option_type_custom_url) |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
99 #define CONF_TYPE_OBJ_PARAMS (&m_option_type_obj_params) |
8164 | 100 |
101 ///////////////////////////////////////////////////////////////////////////////////////////// | |
102 | |
103 struct m_option_type { | |
104 char* name; | |
105 char* comments; // syntax desc, etc | |
106 unsigned int size; // size needed for a save slot | |
107 unsigned int flags; | |
108 | |
109 // parse is the only requiered function all others can be NULL | |
110 // If dst if non-NULL it should create/update the save slot | |
111 // If dst is NULL it should just test the validity of the arg if possible | |
112 // Src tell from where come this setting (ie cfg file, command line, playlist, .... | |
113 // It should return 1 if param was used, 0 if not. | |
114 // On error it must return 1 of the error code below | |
115 int (*parse)(m_option_t* opt,char *name, char *param, void* dst, int src); | |
116 // Print back a value in human form | |
117 char* (*print)(m_option_t* opt, void* val); | |
118 | |
119 // These 3 will be a memcpy in 50% of the case, it's called to save/restore the status of | |
120 // the var it's there for complex type like CONF_TYPE_FUNC* | |
121 // update a save slot (dst) from the current value in the prog (src) | |
122 void (*save)(m_option_t* opt,void* dst, void* src); | |
123 // set the current value (dst) from a save slot | |
124 void (*set)(m_option_t* opt,void* dst, void* src); | |
125 // Copy betewen 2 slot (if NULL and size > 0 a memcpy will be used | |
126 void (*copy)(m_option_t* opt,void* dst, void* src); | |
127 // Free the data allocated for a save slot if needed | |
128 void (*free)(void* dst); | |
129 }; | |
130 | |
131 struct m_option { | |
132 char *name; | |
133 void *p; | |
134 m_option_type_t* type; | |
135 unsigned int flags; | |
10590 | 136 double min,max; |
8164 | 137 // This used to be function pointer to hold a 'reverse to defaults' func. |
138 // Nom it can be used to pass any type of extra args. | |
139 // Passing a 'default func' is still valid for all func based option types | |
140 void* priv; // Type dependent data (for all kind of extended setting) | |
141 }; | |
142 | |
143 | |
144 //////////////////////////////// Option flags ///////////////////////////////// | |
145 | |
146 // Option flags | |
147 #define M_OPT_MIN (1<<0) | |
148 #define M_OPT_MAX (1<<1) | |
149 #define M_OPT_RANGE (M_OPT_MIN|M_OPT_MAX) | |
150 #define M_OPT_NOCFG (1<<2) | |
151 #define M_OPT_NOCMD (1<<3) | |
152 // This option is global : it won't be saved on push and the command | |
153 // line parser will set it when it's parsed (ie. it won't be set later) | |
154 // e.g options : -v, -quiet | |
155 #define M_OPT_GLOBAL (1<<4) | |
156 // Do not save this option : it won't be saved on push but the command | |
157 // line parser will put it with it's entry (ie : it may be set later) | |
158 // e.g options : -include | |
159 #define M_OPT_NOSAVE (1<<5) | |
160 // Emulate old behaviour by pushing the option only if it was set by the user | |
161 #define M_OPT_OLD (1<<6) | |
162 | |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
163 // FIXME: backward compatibility |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
164 #define CONF_MIN M_OPT_MIN |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
165 #define CONF_MAX M_OPT_MAX |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
166 #define CONF_RANGE M_OPT_RANGE |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
167 #define CONF_NOCFG M_OPT_NOCFG |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
168 #define CONF_NOCMD M_OPT_NOCMD |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
169 #define CONF_GLOBAL M_OPT_GLOBAL |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
170 #define CONF_NOSAVE M_OPT_NOSAVE |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
171 #define CONF_OLD M_OPT_OLD |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
172 |
8164 | 173 |
174 ///////////////////////////// Option type flags /////////////////////////////////// | |
175 | |
176 // These flags are for the parsers. The description here apply to the m_config_t | |
177 // based parsers (ie. cmd line and config file parsers) | |
178 // Some parser will refuse option types that have some of these flags | |
179 | |
180 // This flag is used for the subconfig | |
181 // When this flag is set, opt->p should point to another m_option_t array | |
182 // Only the parse function will be called. If dst is set, it should create/update | |
183 // an array of char* containg opt/val pairs. | |
184 // Then the options in the child array will then be set automaticly. | |
185 // You can only affect the way suboption are parsed. | |
186 // Also note that suboptions may be directly accessed by using -option:subopt blah :-) | |
187 #define M_OPT_TYPE_HAS_CHILD (1<<0) | |
188 // If this flag is set the option type support option name with * at the end (used for -aa*) | |
189 // This only affect the option name matching, the option type have to implement | |
190 // the needed stuff. | |
191 #define M_OPT_TYPE_ALLOW_WILDCARD (1<<1) | |
192 // This flag indicate that the data is dynamicly allocated (opt->p point to a pointer) | |
193 // It enable a little hack wich replace the initial value by a dynamic copy | |
194 // in case the initial value is staticly allocated (pretty common with strings) | |
195 #define M_OPT_TYPE_DYNAMIC (1<<2) | |
196 /// If this is set the parse function doesn't directly return | |
197 // the wanted thing. Options use this if for some reasons they have to wait | |
198 // until the set call to be able to correctly set the target var. | |
199 // So for those types you have to first parse and then set the target var | |
200 // If this flag isn't set you can parse directly to the target var | |
201 // It's used for the callback based option as the callback call may append | |
202 // later on. | |
203 #define M_OPT_TYPE_INDIRECT (1<<3) | |
204 | |
205 | |
206 ///////////////////////////// Parser flags //////////////////////////////////////// | |
207 | |
208 // Config mode : some parser type behave differently depending | |
209 // on config->mode value wich is passed in the src param of parse() | |
210 #define M_CONFIG_FILE 0 | |
211 #define M_COMMAND_LINE 1 | |
212 | |
213 // Option parser error code | |
10595
522afd56703c
100l to albeu for his english grammar, and 10l to me becouse I noticed that lately (my backward compatibilty macro uses M_OPT_UNKNOWN)
alex
parents:
10594
diff
changeset
|
214 #define M_OPT_UNKNOWN -1 |
8164 | 215 #define M_OPT_MISSING_PARAM -2 |
216 #define M_OPT_INVALID -3 | |
217 #define M_OPT_OUT_OF_RANGE -4 | |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
218 #define M_OPT_PARSER_ERR -5 |
9791
c5b63e88253d
Fix some 10L typo in header (m_struct_s instead of m_struct_st).
albeu
parents:
9593
diff
changeset
|
219 #define M_OPT_EXIT -6 |
16345
feb16d0117c8
allow multiple help clauses on the command line, Patch by kiriuja " mplayer-patches AH en-directo POUM net "
gpoirier
parents:
14246
diff
changeset
|
220 // M_OPT_EXIT must be the lowest number on this list. |
feb16d0117c8
allow multiple help clauses on the command line, Patch by kiriuja " mplayer-patches AH en-directo POUM net "
gpoirier
parents:
14246
diff
changeset
|
221 // To indicate that mplayer should exit without playing anything, |
feb16d0117c8
allow multiple help clauses on the command line, Patch by kiriuja " mplayer-patches AH en-directo POUM net "
gpoirier
parents:
14246
diff
changeset
|
222 // a parsing function needs to return M_OPT_EXIT less the number |
feb16d0117c8
allow multiple help clauses on the command line, Patch by kiriuja " mplayer-patches AH en-directo POUM net "
gpoirier
parents:
14246
diff
changeset
|
223 // of additional command line parameters it consumed. |
feb16d0117c8
allow multiple help clauses on the command line, Patch by kiriuja " mplayer-patches AH en-directo POUM net "
gpoirier
parents:
14246
diff
changeset
|
224 // Generally it will return either M_OPT_EXIT or M_OPT_EXIT - 1. |
8164 | 225 |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
226 // FIXME: backward compatibility |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
227 #define ERR_NOT_AN_OPTION M_OPT_UNKNOWN |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
228 #define ERR_MISSING_PARAM M_OPT_MISSING_PARAM |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
229 #define ERR_OUT_OF_RANGE M_OPT_OUT_OF_RANGE |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
230 #define ERR_FUNC_ERR M_OPT_PARSER_ERR |
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
231 |
9593
e9a2af584986
Add the new -vf option wich is the same as vop in reverse order.
albeu
parents:
8736
diff
changeset
|
232 m_option_t* m_option_list_find(m_option_t* list,char* name); |
8164 | 233 |
234 inline static int | |
235 m_option_parse(m_option_t* opt,char *name, char *param, void* dst, int src) { | |
236 return opt->type->parse(opt,name,param,dst,src); | |
237 } | |
238 | |
239 inline static char* | |
240 m_option_print(m_option_t* opt, void* val_ptr) { | |
241 if(opt->type->print) | |
242 return opt->type->print(opt,val_ptr); | |
243 else | |
8168 | 244 return (char*)-1; |
8164 | 245 } |
246 | |
247 inline static void | |
248 m_option_save(m_option_t* opt,void* dst, void* src) { | |
249 if(opt->type->save) | |
250 opt->type->save(opt,dst,src); | |
251 } | |
252 | |
253 inline static void | |
254 m_option_set(m_option_t* opt,void* dst, void* src) { | |
255 if(opt->type->set) | |
256 opt->type->set(opt,dst,src); | |
257 } | |
258 | |
259 inline static void | |
260 m_option_copy(m_option_t* opt,void* dst, void* src) { | |
261 if(opt->type->copy) | |
262 opt->type->set(opt,dst,src); | |
263 else if(opt->type->size > 0) | |
264 memcpy(dst,src,opt->type->size); | |
265 } | |
266 | |
267 inline static void | |
268 m_option_free(m_option_t* opt,void* dst) { | |
269 if(opt->type->free) | |
270 opt->type->free(dst); | |
271 } | |
272 | |
10594
57bdcdb061d7
Removed the historic cfgparser and switched full to the new config parser (altought some macros still remain for compatibility). As a side effect 90% of the warning messages are gone from the core. Things should be cleaner now and less confusing for newbies.
alex
parents:
10590
diff
changeset
|
273 #endif /* _M_OPTION_H */ |