- char ** ppsz_list; /* List of possible values for the option */
- int *pi_list; /* Idem for integers */
- char **ppsz_list_text; /* Friendly names for list values */
- int i_list; /* Options list size */
- vlc_callback_t pf_update_list; /* Callback to initialize dropdown lists */
- uint8_t i_type; /* Configuration type */
- char i_short; /* Optional short option name */
-
- /* Misc */
- unsigned b_dirty:1; /* Dirty flag to indicate a config change */
- unsigned b_advanced:1; /* Flag to indicate an advanced option */
- unsigned b_internal:1; /* Flag to indicate option is not to be shown */
- unsigned b_unsaveable:1; /* Config should not be saved */
- unsigned b_safe:1; /* Safe to use in web plugins and playlists */
-
- /* Actions list */
- int i_action; /* actions list size */
- vlc_callback_t *ppf_action; /* List of possible actions for a config */
- char **ppsz_action_text; /* Friendly names for actions */
-
- /* Deprecated */
- bool b_removed;
+ uint16_t list_count; /* Options list size */
+ union
+ {
+ char **psz; /* List of possible values for the option */
+ int *i;
+ vlc_string_list_cb psz_cb;
+ vlc_integer_list_cb i_cb;
+ } list;
+ char **list_text; /* Friendly names for list values */