mirror of https://github.com/ericonr/sndio.git
sndioctl: factor code to print numbers
This commit is contained in:
parent
4ac8a8cae7
commit
b3a1b52f6a
|
@ -48,6 +48,7 @@ int matchent(struct info *, char *, int);
|
||||||
int ismono(struct info *);
|
int ismono(struct info *);
|
||||||
void print_node(struct sioctl_node *, int);
|
void print_node(struct sioctl_node *, int);
|
||||||
void print_desc(struct info *, int);
|
void print_desc(struct info *, int);
|
||||||
|
void print_num(struct info *);
|
||||||
void print_val(struct info *, int);
|
void print_val(struct info *, int);
|
||||||
void print_par(struct info *, int, char *);
|
void print_par(struct info *, int, char *);
|
||||||
int parse_name(char **, char *);
|
int parse_name(char **, char *);
|
||||||
|
@ -362,6 +363,20 @@ print_desc(struct info *p, int mono)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
print_num(struct info *p)
|
||||||
|
{
|
||||||
|
if (p->desc.maxval == 1)
|
||||||
|
printf("%d", p->curval);
|
||||||
|
else {
|
||||||
|
/*
|
||||||
|
* For now, maxval is always 127 or 255,
|
||||||
|
* so three decimals is always ideal.
|
||||||
|
*/
|
||||||
|
printf("%.3f", p->curval / (float)p->desc.maxval);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* print parameter value
|
* print parameter value
|
||||||
*/
|
*/
|
||||||
|
@ -374,14 +389,7 @@ print_val(struct info *p, int mono)
|
||||||
switch (p->desc.type) {
|
switch (p->desc.type) {
|
||||||
case SIOCTL_NUM:
|
case SIOCTL_NUM:
|
||||||
case SIOCTL_SW:
|
case SIOCTL_SW:
|
||||||
if (p->desc.maxval == 1)
|
print_num(p);
|
||||||
printf("%d", p->curval);
|
|
||||||
else
|
|
||||||
/*
|
|
||||||
* For now, maxval is always 127 or 255,
|
|
||||||
* so three decimals is always ideal.
|
|
||||||
*/
|
|
||||||
printf("%.3f", p->curval / (float)p->desc.maxval);
|
|
||||||
break;
|
break;
|
||||||
case SIOCTL_VEC:
|
case SIOCTL_VEC:
|
||||||
case SIOCTL_LIST:
|
case SIOCTL_LIST:
|
||||||
|
@ -396,11 +404,8 @@ print_val(struct info *p, int mono)
|
||||||
if (more)
|
if (more)
|
||||||
printf(",");
|
printf(",");
|
||||||
print_node(&e->desc.node1, mono);
|
print_node(&e->desc.node1, mono);
|
||||||
if (e->desc.maxval == 1)
|
printf(":");
|
||||||
printf(":%d", e->curval);
|
print_num(e);
|
||||||
else
|
|
||||||
printf(":%.3f",
|
|
||||||
e->curval / (float)e->desc.maxval);
|
|
||||||
more = 1;
|
more = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue