diff --git a/example-clients/jack_control b/example-clients/jack_control index f6abba48..bafb9407 100755 --- a/example-clients/jack_control +++ b/example-clients/jack_control @@ -131,6 +131,24 @@ def print_help(): print " eps - set engine parameter" print " epr - reset engine parameter to its default value" +def maybe_print_param_constraint(iface, param): + is_range, is_strict, is_fake, values = iface.GetParameterConstraint(param) + if is_range: + print + print("allowed range: %s to %s (inclusive)" % (values[0][0], values[1][0])) + elif len(values): + print + if is_strict: + print("allowed values:") + else: + print("suggested values:") + + max_len = 0 + for value in values: + if len(str(value[0])) > max_len: + max_len = len(str(value[0])) + for value in values: + print("%*s'%s' - %s" % (1 + max_len - len(str(value[0])), "", str(value[0]), str(value[1]))) def main(): if len(sys.argv) == 1 or sys.argv[1] in ["-h", "--help", "help"]: @@ -206,7 +224,8 @@ def main(): print "--- get driver parameter description (%s)" % param type_char, name, short_descr, long_descr = configure_iface.GetParameterInfo(['driver', param]) - print long_descr, + print long_descr + maybe_print_param_constraint(configure_iface, ['driver', param]) elif arg == 'dps': if index + 1 >= len(sys.argv): print "driver parameter set command requires parameter name and value arguments" @@ -245,7 +264,8 @@ def main(): print "--- get engine parameter description (%s)" % param_name type_char, name, short_descr, long_descr = configure_iface.GetParameterInfo(['engine', param_name]) - print long_descr, + print long_descr + maybe_print_param_constraint(configure_iface, ['engine', param_name]) elif arg == 'eps': if index + 1 >= len(sys.argv): print "engine parameter set command requires parameter name and value arguments"