From 58f92d61759090f0eedfed0e77c0c740d7d5e63b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 27 Feb 2023 12:54:49 +0100 Subject: [PATCH] alsaucm: add also card index for '-c' argument Make semantics for this argument in sync with other ALSA utilities. Signed-off-by: Jaroslav Kysela --- alsaucm/usecase.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/alsaucm/usecase.c b/alsaucm/usecase.c index 1dba1ca..a5c8155 100644 --- a/alsaucm/usecase.c +++ b/alsaucm/usecase.c @@ -123,6 +123,20 @@ static void dump_help(struct context *context) ); } +int is_long(const char *str) +{ + char *end; + if (!*str) + return 0; + errno = 0; + strtol(str, &end, 10); + if (errno) + return 0; + if (*end) + return 0; + return 1; +} + static int parse_line(struct context *context, char *line) { char *start, **nargv; @@ -202,6 +216,15 @@ static void do_initial_open(struct context *context) /* open library */ if (!context->no_open) { + if (is_long(context->card)) { + snprintf(name, sizeof(name), "hw:%s", context->card); + free(context->card); + context->card = strdup(name); + } + if (context->card == NULL) { + fprintf(stderr, "%s: empty card name\n", context->command); + my_exit(context, EXIT_FAILURE); + } err = snd_use_case_mgr_open(&context->uc_mgr, context->card); if (err < 0) {