From c39882f6021faa3b60bc36f73e0df71b741da967 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 19 Nov 2001 08:14:21 +0000 Subject: Configuration: - changed snd_config_get_id function to follow semantic of other get functions - added snd_config_test_id - added runtime pointer type (not persistent) - added snd_config_make_pointer, snd_config_set_pointer, snd_config_get_pointer - added type/contents checking for callback functions - changed 'void *private_data' to 'snd_config_t *private_data' - renamed card_strtype functions to card_driver Control: - fixed passing parameters to snd_ctl_async Async handlers: - added public snd_async_handler_get_signo function Documentation: - moved all documentation to source files --- src/hwdep/hwdep.c | 12 ++++++++++-- src/hwdep/hwdep_hw.c | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src/hwdep') diff --git a/src/hwdep/hwdep.c b/src/hwdep/hwdep.c index 5180de95..23dbf6a9 100644 --- a/src/hwdep/hwdep.c +++ b/src/hwdep/hwdep.c @@ -46,6 +46,7 @@ static int snd_hwdep_open_conf(snd_hwdep_t **hwdep, int err; snd_config_t *conf, *type_conf = NULL; snd_config_iterator_t i, next; + const char *id; const char *lib = NULL, *open_name = NULL; int (*open_func)(snd_hwdep_t **, const char *, snd_config_t *, snd_config_t *, int) = NULL; #ifndef PIC @@ -64,9 +65,14 @@ static int snd_hwdep_open_conf(snd_hwdep_t **hwdep, SNDERR("type is not defined"); return err; } + err = snd_config_get_id(conf, &id); + if (err < 0) { + SNDERR("unable to get id"); + return err; + } err = snd_config_get_string(conf, &str); if (err < 0) { - SNDERR("Invalid type for %s", snd_config_get_id(conf)); + SNDERR("Invalid type for %s", id); return err; } err = snd_config_search_definition(hwdep_root, "hwdep_type", str, &type_conf); @@ -77,7 +83,9 @@ static int snd_hwdep_open_conf(snd_hwdep_t **hwdep, } snd_config_for_each(i, next, type_conf) { snd_config_t *n = snd_config_iterator_entry(i); - const char *id = snd_config_get_id(n); + const char *id; + if (snd_config_get_id(n, &id) < 0) + continue; if (strcmp(id, "comment") == 0) continue; if (strcmp(id, "lib") == 0) { diff --git a/src/hwdep/hwdep_hw.c b/src/hwdep/hwdep_hw.c index 63ea4d6d..b9f4625d 100644 --- a/src/hwdep/hwdep_hw.c +++ b/src/hwdep/hwdep_hw.c @@ -152,7 +152,9 @@ int _snd_hwdep_hw_open(snd_hwdep_t **hwdep, char *name, int err; snd_config_for_each(i, next, conf) { snd_config_t *n = snd_config_iterator_entry(i); - const char *id = snd_config_get_id(n); + const char *id; + if (snd_config_get_id(n, &id) < 0) + continue; if (strcmp(id, "comment") == 0) continue; if (strcmp(id, "type") == 0) -- cgit v1.2.1