1616struct lis_dumb_option {
1717 struct lis_option_descriptor parent ;
1818 struct lis_dumb_private * impl ;
19+ int set_flags ;
1920
2021 int has_value ;
2122 union lis_value default_value ;
@@ -62,6 +63,7 @@ struct lis_dumb_private {
6263 } scan ;
6364
6465 struct {
66+ int list ;
6567 int set ;
6668 int get ;
6769 } nb ;
@@ -270,7 +272,7 @@ static enum lis_error dumb_opt_set_value(struct lis_option_descriptor *self,
270272 lis_copy (self -> value .type , & value , & private -> value );
271273 private -> has_value = 1 ;
272274
273- * set_flags = LIS_SET_FLAG_MUST_RELOAD_PARAMS ;
275+ * set_flags = private -> set_flags ;
274276 return LIS_OK ;
275277}
276278
@@ -280,6 +282,7 @@ static enum lis_error dumb_get_options(
280282 )
281283{
282284 struct lis_dumb_item * private = LIS_DUMB_ITEM (self );
285+ private -> impl -> nb .list ++ ;
283286 * out_descs = private -> impl -> opts ;
284287 return LIS_OK ;
285288}
@@ -406,7 +409,7 @@ void lis_dumb_set_get_device_return(struct lis_api *self, enum lis_error ret)
406409
407410
408411void lis_dumb_add_option (struct lis_api * self , const struct lis_option_descriptor * opt ,
409- const union lis_value * default_value )
412+ const union lis_value * default_value , int set_flags )
410413{
411414
412415 struct lis_dumb_private * private = LIS_DUMB_PRIVATE (self );
@@ -415,6 +418,7 @@ void lis_dumb_add_option(struct lis_api *self, const struct lis_option_descripto
415418
416419 opt_private = calloc (1 , sizeof (struct lis_dumb_option ));
417420 opt_private -> impl = private ;
421+ opt_private -> set_flags = set_flags ;
418422 memcpy (& opt_private -> parent , opt , sizeof (opt_private -> parent ));
419423 if (opt_private -> parent .fn .get_value == NULL ) {
420424 opt_private -> parent .fn .get_value = dumb_opt_get_value ;
@@ -523,3 +527,10 @@ int lis_dumb_get_nb_set(struct lis_api *self)
523527 struct lis_dumb_private * private = LIS_DUMB_PRIVATE (self );
524528 return private -> nb .set ;
525529}
530+
531+
532+ int lis_dumb_get_nb_list_options (struct lis_api * self )
533+ {
534+ struct lis_dumb_private * private = LIS_DUMB_PRIVATE (self );
535+ return private -> nb .list ;
536+ }
0 commit comments