diff options
author | dvdli <70133153+dvdli@users.noreply.github.com> | 2020-11-02 09:48:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-02 09:48:10 +0800 |
commit | 4bbffd5c6223f8e11cf2e81b8ac9fb9cacf040fa (patch) | |
tree | cc3f820ccf3df93bf8e074d8f77cd7c6f1a657b6 /utils/tinymix.c | |
parent | 2378be171c12271dd76baf099e1e050218a4170b (diff) | |
parent | 877ccaf02b773ad7b995bacbfba8e1bdfe11b00d (diff) |
Merge pull request #188 from dvdli/android-dev
Synchronize the changes on AOSP repo
Diffstat (limited to 'utils/tinymix.c')
-rw-r--r-- | utils/tinymix.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/utils/tinymix.c b/utils/tinymix.c index fdb774c..41ca269 100644 --- a/utils/tinymix.c +++ b/utils/tinymix.c @@ -146,6 +146,16 @@ int main(int argc, char **argv) return EXIT_SUCCESS; } +static int isnumber(const char *str) { + char *end; + + if (str == NULL || strlen(str) == 0) + return 0; + + strtol(str, &end, 0); + return strlen(end) == 0; +} + static void tinymix_list_controls(struct mixer *mixer, int print_all) { struct mixer_ctl *ctl; @@ -201,7 +211,7 @@ static void tinymix_detail_control(struct mixer *mixer, const char *control) int ret; char *buf = NULL; - if (isdigit(control[0])) + if (isnumber(control)) ctl = mixer_get_ctl(mixer, atoi(control)); else ctl = mixer_get_ctl_by_name(mixer, control); @@ -469,7 +479,7 @@ static int tinymix_set_value(struct mixer *mixer, const char *control, struct mixer_ctl *ctl; enum mixer_ctl_type type; - if (isdigit(control[0])) + if (isnumber(control)) ctl = mixer_get_ctl(mixer, atoi(control)); else ctl = mixer_get_ctl_by_name(mixer, control); |