summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--options/m_option.c56
-rw-r--r--options/m_option.h8
-rw-r--r--options/options.c13
3 files changed, 27 insertions, 50 deletions
diff --git a/options/m_option.c b/options/m_option.c
index 7e35153c84..c141850e75 100644
--- a/options/m_option.c
+++ b/options/m_option.c
@@ -202,42 +202,6 @@ const m_option_type_t m_option_type_flag = {
.get = flag_get,
};
-// Single-value, write-only flag
-
-static int parse_store(struct mp_log *log, const m_option_t *opt,
- struct bstr name, struct bstr param, void *dst)
-{
- if (param.len == 0) {
- if (dst)
- VAL(dst) = opt->max;
- return 0;
- } else {
- mp_err(log, "Invalid parameter for %.*s flag: %.*s\n",
- BSTR_P(name), BSTR_P(param));
- return M_OPT_DISALLOW_PARAM;
- }
-}
-
-static int store_set(const m_option_t *opt, void *dst, struct mpv_node *src)
-{
- if (src->format != MPV_FORMAT_FLAG)
- return M_OPT_UNKNOWN;
- if (!src->u.flag)
- return M_OPT_INVALID;
- VAL(dst) = opt->max;
- return 1;
-}
-
-const m_option_type_t m_option_type_store = {
- // can only be activated
- .name = "Flag",
- .size = sizeof(int),
- .flags = M_OPT_TYPE_OPTIONAL_PARAM,
- .parse = parse_store,
- .copy = copy_opt,
- .set = store_set,
-};
-
// Integer
#undef VAL
@@ -1654,8 +1618,6 @@ const m_option_type_t m_option_type_msglevels = {
.set = set_msglevels,
};
-/////////////////// Print
-
static int parse_print(struct mp_log *log, const m_option_t *opt,
struct bstr name, struct bstr param, void *dst)
{
@@ -1669,6 +1631,24 @@ const m_option_type_t m_option_type_print_fn = {
.parse = parse_print,
};
+static int parse_dummy_flag(struct mp_log *log, const m_option_t *opt,
+ struct bstr name, struct bstr param, void *dst)
+{
+ if (param.len) {
+ mp_err(log, "Invalid parameter for %.*s flag: %.*s\n",
+ BSTR_P(name), BSTR_P(param));
+ return M_OPT_DISALLOW_PARAM;
+ }
+ return 0;
+}
+
+const m_option_type_t m_option_type_dummy_flag = {
+ // can only be activated
+ .name = "Flag",
+ .flags = M_OPT_TYPE_OPTIONAL_PARAM,
+ .parse = parse_dummy_flag,
+};
+
#undef VAL
// Read s sub-option name, or a positional sub-opt value.
diff --git a/options/m_option.h b/options/m_option.h
index 8b5f477f0d..20021c2122 100644
--- a/options/m_option.h
+++ b/options/m_option.h
@@ -37,7 +37,7 @@ struct mpv_node;
// Simple types
extern const m_option_type_t m_option_type_flag;
-extern const m_option_type_t m_option_type_store;
+extern const m_option_type_t m_option_type_dummy_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;
@@ -201,7 +201,6 @@ struct m_sub_options {
};
#define CONF_TYPE_FLAG (&m_option_type_flag)
-#define CONF_TYPE_STORE (&m_option_type_store)
#define CONF_TYPE_INT (&m_option_type_int)
#define CONF_TYPE_INT64 (&m_option_type_int64)
#define CONF_TYPE_FLOAT (&m_option_type_float)
@@ -222,7 +221,6 @@ struct m_sub_options {
// size/alignment requirements for option values in general.
union m_option_value {
int flag; // not the C type "bool"!
- int store;
int int_;
int64_t int64;
int intpair[2];
@@ -579,10 +577,6 @@ extern const char m_option_path_separator;
#define OPT_FLAG(...) \
OPT_GENERAL(int, __VA_ARGS__, .type = &m_option_type_flag)
-#define OPT_FLAG_STORE(optname, varname, flags, value) \
- OPT_GENERAL(int, optname, varname, flags, .max = value, \
- .type = &m_option_type_store)
-
#define OPT_STRINGLIST(...) \
OPT_GENERAL(char**, __VA_ARGS__, .type = &m_option_type_string_list)
diff --git a/options/options.c b/options/options.c
index 03ab7c89bc..86b734396b 100644
--- a/options/options.c
+++ b/options/options.c
@@ -229,19 +229,22 @@ const struct m_sub_options dvd_conf = {
const m_option_t mp_opts[] = {
// handled in command line pre-parser (parse_commandline.c)
- {"v", CONF_TYPE_STORE, M_OPT_FIXED | CONF_NOCFG | M_OPT_NOPROP, .offset = -1},
+ {"v", &m_option_type_dummy_flag, M_OPT_FIXED | CONF_NOCFG | M_OPT_NOPROP,
+ .offset = -1},
{"playlist", CONF_TYPE_STRING, CONF_NOCFG | M_OPT_MIN | M_OPT_FIXED | M_OPT_FILE,
.min = 1, .offset = -1},
- {"{", CONF_TYPE_STORE, CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP, .offset = -1},
- {"}", CONF_TYPE_STORE, CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP, .offset = -1},
+ {"{", &m_option_type_dummy_flag, CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP,
+ .offset = -1},
+ {"}", &m_option_type_dummy_flag, CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP,
+ .offset = -1},
// handled in m_config.c
{ "include", CONF_TYPE_STRING, M_OPT_FILE, .offset = -1},
{ "profile", CONF_TYPE_STRING_LIST, 0, .offset = -1},
{ "show-profile", CONF_TYPE_STRING, CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP,
.offset = -1},
- { "list-options", CONF_TYPE_STORE, CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP,
- .offset = -1},
+ { "list-options", &m_option_type_dummy_flag, CONF_NOCFG | M_OPT_FIXED |
+ M_OPT_NOPROP, .offset = -1},
OPT_FLAG("list-properties", property_print_help,
CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP),
{ "help", CONF_TYPE_STRING, CONF_NOCFG | M_OPT_FIXED | M_OPT_NOPROP |