+/** Table of feature descriptions. */
+static struct FeatureDesc {
+ enum Feature feat; /**< feature identifier */
+ char* type; /**< string describing type */
+ unsigned int flags; /**< flags for feature */
+ int v_int; /**< integer value */
+ int def_int; /**< default value */
+ char* v_str; /**< string value */
+ char* def_str; /**< default value */
+ feat_set_call set; /**< set feature values */
+ feat_set_call reset; /**< reset feature values to defaults */
+ feat_get_call get; /**< get feature values */
+ feat_notify_call notify; /**< notify of value change */
+ feat_unmark_call unmark; /**< unmark all feature change values */
+ feat_mark_call mark; /**< reset to defaults all unchanged features */
+ feat_report_call report; /**< report feature values */
+} features[] = {