Commit 65ba8696 authored by Gerd Hoffmann's avatar Gerd Hoffmann

audio: add module loading support

Make audio_driver_lookup() try load the module in case it doesn't find
the driver in the registry.  Also load all modules for -audio-help, so
the help output includes the help text for modular audio drivers.
Signed-off-by: 's avatarGerd Hoffmann <>
Reviewed-by: 's avatarMarc-André Lureau <>
parent d3893a39
......@@ -68,9 +68,26 @@ audio_driver *audio_driver_lookup(const char *name)
return d;
QLIST_FOREACH(d, &audio_drivers, next) {
if (strcmp(name, d->name) == 0) {
return d;
return NULL;
static void audio_module_load_all(void)
int i;
for (i = 0; i < ARRAY_SIZE(audio_prio_list); i++) {
struct fixed_settings {
int enabled;
int nb_voices;
......@@ -1675,6 +1692,9 @@ void AUD_help (void)
struct audio_driver *d;
/* make sure we print the help text for modular drivers too */
audio_process_options ("AUDIO", audio_options);
QLIST_FOREACH(d, &audio_drivers, next) {
if (d->options) {
......@@ -54,6 +54,7 @@ typedef enum {
#define block_module_load_one(lib) module_load_one("block-", lib)
#define ui_module_load_one(lib) module_load_one("ui-", lib)
#define audio_module_load_one(lib) module_load_one("audio-", lib)
void register_module_init(void (*fn)(void), module_init_type type);
void register_dso_module_init(void (*fn)(void), module_init_type type);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment