set_level/get_level: Improved help "?" to show already supported ext_levels

Author: Nirgal Vourgère <contact_hamlib@nirgal.com>
Hamlib-1.2.14
Stephane Fillod 2011-06-14 23:18:27 +02:00
rodzic 0bfec55f10
commit 4e24dd6eee
3 zmienionych plików z 41 dodań i 2 usunięć

Wyświetl plik

@ -1199,7 +1199,12 @@ declare_proto_rig(set_level)
if (!strcmp(arg1, "?")) {
char s[SPRINTF_MAX_SIZE];
sprintf_level(s, rig->state.has_set_level);
fprintf(fout, "%s\n", s);
fputs(s, fout);
if (rig->caps->set_ext_level) {
sprintf_level_ext(s, rig->caps->extlevels);
fputs(s, fout);
}
fputc('\n', fout);
return RIG_OK;
}
@ -1249,7 +1254,12 @@ declare_proto_rig(get_level)
if (!strcmp(arg1, "?")) {
char s[SPRINTF_MAX_SIZE];
sprintf_level(s, rig->state.has_get_level);
fprintf(fout, "%s\n", s);
fputs(s, fout);
if (rig->caps->get_ext_level) {
sprintf_level_ext(s, rig->caps->extlevels);
fputs(s, fout);
}
fputc('\n', fout);
return RIG_OK;
}

Wyświetl plik

@ -126,6 +126,34 @@ int sprintf_level(char *str, setting_t level)
return len;
}
int sprintf_level_ext(char *str, const struct confparams *extlevels)
{
int len=0;
*str = '\0';
if (!extlevels)
return 0;
for (; extlevels->token != RIG_CONF_END; extlevels++) {
if (!extlevels->name)
continue; /* no name */
switch (extlevels->type) {
case RIG_CONF_CHECKBUTTON:
case RIG_CONF_COMBO:
case RIG_CONF_NUMERIC:
case RIG_CONF_STRING:
strcat(str, extlevels->name);
strcat(str, " ");
len += strlen(extlevels->name) + 1;
break;
case RIG_CONF_BUTTON:
/* ignore case RIG_CONF_BUTTON */
break;
}
}
return len;
}
int sprintf_level_gran(char *str, setting_t level, const gran_t gran[])
{
int i, len=0;

Wyświetl plik

@ -33,6 +33,7 @@ extern int sprintf_mode(char *str, rmode_t);
extern int sprintf_vfo(char *str, vfo_t);
extern int sprintf_func(char *str, setting_t);
extern int sprintf_level(char *str, setting_t);
extern int sprintf_level_ext(char *str, const struct confparams *);
extern int sprintf_level_gran(char *str, setting_t, const gran_t gran[]);
extern int sprintf_parm(char *str, setting_t);
extern int sprintf_parm_gran(char *str, setting_t, const gran_t gran[]);