1 struct _unicap_property 2 { 3 char identifier[128]; //mandatory 4 char category[128]; 5 char unit[128]; // 6 7 // list of properties identifier which value / behaviour may change if this property changes 8 char **relations; 9 int relations_count; 10 11 union 12 { 13 double value; // default if enumerated 14 char menu_item[128]; 15 }; 16 17 union 18 { 19 unicap_property_range_t range; // if UNICAP_USE_RANGE is asserted 20 unicap_property_value_list_t value_list; // if UNICAP_USE_VALUE_LIST is asserted 21 unicap_property_menu_t menu; 22 }; 23 24 double stepping; 25 26 unicap_property_type_enum_t type; 27 u_int64_t flags; // defaults if enumerated 28 u_int64_t flags_mask; // defines capabilities if enumerated 29 30 // optional data 31 void *property_data; 32 size_t property_data_size; 33 }; 34 35 typedef struct _unicap_property unicap_property_t;