ucm: Handle 'Error' keyword in the master file

With the conditional blocks, it may be useful to terminate
the hardware detection from the configuration. Introduce
'Error' keyword for the master UCM configuration file.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2020-10-06 10:23:25 +02:00
parent c1e72460de
commit e80f35611d

View file

@ -244,6 +244,24 @@ int parse_get_safe_name(snd_use_case_mgr_t *uc_mgr, snd_config_t *n,
return 0;
}
/*
* Handle 'Error' configuration node.
*/
static int error_node(snd_use_case_mgr_t *uc_mgr, snd_config_t *cfg)
{
int err;
char *s;
err = parse_string_substitute3(uc_mgr, cfg, &s);
if (err < 0) {
uc_error("error: failed to get Error string");
return err;
}
uc_error("%s", s);
free(s);
return -ENXIO;
}
/*
* Evaluate variable regex definitions (in-place delete)
*/
@ -1899,6 +1917,10 @@ static int parse_master_file(snd_use_case_mgr_t *uc_mgr, snd_config_t *cfg)
continue;
}
/* error */
if (strcmp(id, "Error") == 0)
return error_node(uc_mgr, n);
uc_error("uknown master file field %s", id);
}
return 0;