aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/audio.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/audio/audio.c b/audio/audio.c
index 379f19d..065602c 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -73,20 +73,24 @@ void audio_driver_register(audio_driver *drv)
audio_driver *audio_driver_lookup(const char *name)
{
struct audio_driver *d;
+ Error *local_err = NULL;
+ int rv;
QLIST_FOREACH(d, &audio_drivers, next) {
if (strcmp(name, d->name) == 0) {
return d;
}
}
-
- audio_module_load(name);
- QLIST_FOREACH(d, &audio_drivers, next) {
- if (strcmp(name, d->name) == 0) {
- return d;
+ rv = audio_module_load(name, &local_err);
+ if (rv > 0) {
+ QLIST_FOREACH(d, &audio_drivers, next) {
+ if (strcmp(name, d->name) == 0) {
+ return d;
+ }
}
+ } else if (rv < 0) {
+ error_report_err(local_err);
}
-
return NULL;
}