|
|
|
@ -61,6 +61,7 @@ static void do_load(const char* param_file_name);
@@ -61,6 +61,7 @@ static void do_load(const char* param_file_name);
|
|
|
|
|
static void do_import(const char* param_file_name); |
|
|
|
|
static void do_show(const char* search_string); |
|
|
|
|
static void do_show_print(void *arg, param_t param); |
|
|
|
|
static void do_set(const char* name, const char* val); |
|
|
|
|
|
|
|
|
|
int |
|
|
|
|
param_main(int argc, char *argv[]) |
|
|
|
@ -100,7 +101,7 @@ param_main(int argc, char *argv[])
@@ -100,7 +101,7 @@ param_main(int argc, char *argv[])
|
|
|
|
|
exit(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!strcmp(argv[1], "show")) |
|
|
|
|
if (!strcmp(argv[1], "show")) { |
|
|
|
|
if (argc >= 3) { |
|
|
|
|
do_show(argv[2]); |
|
|
|
|
} else { |
|
|
|
@ -108,7 +109,16 @@ param_main(int argc, char *argv[])
@@ -108,7 +109,16 @@ param_main(int argc, char *argv[])
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
errx(1, "expected a command, try 'load', 'import', 'show', 'select' or 'save'"); |
|
|
|
|
if (!strcmp(argv[1], "set")) { |
|
|
|
|
if (argc >= 4) { |
|
|
|
|
do_set(argv[2], argv[3]); |
|
|
|
|
} else { |
|
|
|
|
errx(1, "not enough arguments.\nTry 'param set PARAM_NAME 3'"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
errx(1, "expected a command, try 'load', 'import', 'show', 'set', 'select' or 'save'"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
@ -185,9 +195,11 @@ do_show_print(void *arg, param_t param)
@@ -185,9 +195,11 @@ do_show_print(void *arg, param_t param)
|
|
|
|
|
float f; |
|
|
|
|
const char *search_string = (const char*)arg; |
|
|
|
|
|
|
|
|
|
/* print nothing if search string valid and not matching */ |
|
|
|
|
if (arg != NULL && (strcmp(search_string, param_name(param) != 0))) |
|
|
|
|
/* print nothing if search string is invalid and not matching */ |
|
|
|
|
if (!(arg == NULL || (!strcmp(search_string, param_name(param))))) { |
|
|
|
|
/* param not found */ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
printf("%c %s: ", |
|
|
|
|
param_value_unsaved(param) ? '*' : (param_value_is_default(param) ? ' ' : '+'), |
|
|
|
@ -225,3 +237,61 @@ do_show_print(void *arg, param_t param)
@@ -225,3 +237,61 @@ do_show_print(void *arg, param_t param)
|
|
|
|
|
|
|
|
|
|
printf("<error fetching parameter %d>\n", param); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
do_set(const char* name, const char* val) |
|
|
|
|
{ |
|
|
|
|
int32_t i; |
|
|
|
|
float f; |
|
|
|
|
param_t param = param_find(name); |
|
|
|
|
|
|
|
|
|
/* set nothing if parameter cannot be found */ |
|
|
|
|
if (param == PARAM_INVALID) { |
|
|
|
|
/* param not found */ |
|
|
|
|
errx(1, "Error: Parameter %s not found.", name); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
printf("%c %s: ", |
|
|
|
|
param_value_unsaved(param) ? '*' : (param_value_is_default(param) ? ' ' : '+'), |
|
|
|
|
param_name(param)); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Set parameter if type is known and conversion from string to value turns out fine |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
switch (param_type(param)) { |
|
|
|
|
case PARAM_TYPE_INT32: |
|
|
|
|
if (!param_get(param, &i)) { |
|
|
|
|
printf("old: %d", i); |
|
|
|
|
|
|
|
|
|
/* convert string */ |
|
|
|
|
char* end; |
|
|
|
|
i = strtol(val,&end,10); |
|
|
|
|
param_set(param, &i); |
|
|
|
|
printf(" -> new: %d\n", i); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case PARAM_TYPE_FLOAT: |
|
|
|
|
if (!param_get(param, &f)) { |
|
|
|
|
printf("float values are not yet supported."); |
|
|
|
|
// printf("old: %4.4f", (double)f);
|
|
|
|
|
|
|
|
|
|
// /* convert string */
|
|
|
|
|
// char* end;
|
|
|
|
|
// f = strtof(val,&end);
|
|
|
|
|
// param_set(param, &f);
|
|
|
|
|
// printf(" -> new: %4.4f\n", f);
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
errx(1, "<unknown / unsupported type %d>\n", 0 + param_type(param)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
exit(0); |
|
|
|
|
} |
|
|
|
|