aboutsummaryrefslogtreecommitdiff
path: root/audiosettings.c
diff options
context:
space:
mode:
Diffstat (limited to 'audiosettings.c')
-rw-r--r--audiosettings.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/audiosettings.c b/audiosettings.c
index 416c59b..e972e92 100644
--- a/audiosettings.c
+++ b/audiosettings.c
@@ -566,8 +566,20 @@ static void audiosettings_setdriver(t_audiosettings *x, t_symbol*s, int argc, t_
return;
}
verbose(1, "setting driver '%s' (=%d)", s->s_name, id);
+#ifdef HAVE_SYS_CLOSE_AUDIO
+ sys_close_audio();
sys_set_audio_api(id);
sys_reopen_audio();
+#else
+ if (s_pdsym->s_thing) {
+ t_atom ap[1];
+ SETFLOAT(ap, id);
+ typedmess(s_pdsym->s_thing,
+ gensym("audio-setapi"),
+ 1,
+ ap);
+ }
+#endif
}
static void audiosettings_bang(t_audiosettings *x) {