diff options
Diffstat (limited to 'm_option.h')
-rw-r--r-- | m_option.h | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/m_option.h b/m_option.h index a70d8638d2..41c8eae64f 100644 --- a/m_option.h +++ b/m_option.h @@ -20,6 +20,7 @@ #define MPLAYER_M_OPTION_H #include <string.h> +#include <stddef.h> /// \defgroup Options /// m_option allows to parse, print and copy data of various types. @@ -44,6 +45,7 @@ struct m_struct_st; extern const m_option_type_t m_option_type_flag; extern const m_option_type_t m_option_type_int; extern const m_option_type_t m_option_type_int64; +extern const m_option_type_t m_option_type_intpair; extern const m_option_type_t m_option_type_float; extern const m_option_type_t m_option_type_double; extern const m_option_type_t m_option_type_string; @@ -302,6 +304,10 @@ struct m_option { * Passing a 'default func' is still valid for all func based option types. */ void* priv; + + int new; + + int offset; }; @@ -496,20 +502,6 @@ m_option_print(const m_option_t* opt, const void* val_ptr) { return (char*)-1; } -/// Helper around \ref m_option_type::save. -inline static void -m_option_save(const m_option_t* opt,void* dst, const void* src) { - if(opt->type->save) - opt->type->save(opt,dst,src); -} - -/// Helper around \ref m_option_type::set. -inline static void -m_option_set(const m_option_t* opt,void* dst, const void* src) { - if(opt->type->set) - opt->type->set(opt,dst,src); -} - /// Helper around \ref m_option_type::copy. inline static void m_option_copy(const m_option_t* opt,void* dst, const void* src) { @@ -528,4 +520,15 @@ m_option_free(const m_option_t* opt,void* dst) { /*@}*/ +#define OPT_FLAG_ON(optname, varname, flags) {optname, NULL, &m_option_type_flag, flags, 0, 1, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_FLAG_OFF(optname, varname, flags) {optname, NULL, &m_option_type_flag, flags, 1, 0, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_FLAG_CONSTANTS(optname, varname, flags, offvalue, value) {optname, NULL, &m_option_type_flag, flags, offvalue, value, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_STRINGLIST(optname, varname, flags) {optname, NULL, &m_option_type_string_list, flags, 0, 0, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_INT(optname, varname, flags) {optname, NULL, &m_option_type_int, flags, 0, 0, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_INTRANGE(optname, varname, flags, min, max) {optname, NULL, &m_option_type_int, (flags)|CONF_RANGE, min, max, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_INTPAIR(optname, varname, flags) {optname, NULL, &m_option_type_intpair, (flags), 0, 0, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_FLOATRANGE(optname, varname, flags, min, max) {optname, NULL, &m_option_type_float, (flags)|CONF_RANGE, min, max, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_STRING(optname, varname, flags) {optname, NULL, &m_option_type_string, flags, 0, 0, NULL, 1, offsetof(struct MPOpts, varname)} +#define OPT_SETTINGSLIST(optname, varname, flags, objlist) {optname, NULL, &m_option_type_obj_settings_list, flags, 0, 0, objlist, 1, offsetof(struct MPOpts, varname)} + #endif /* MPLAYER_M_OPTION_H */ |