aboutsummaryrefslogtreecommitdiff
path: root/audiosettings.c
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2011-01-12 18:15:16 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2011-01-12 18:15:16 +0000
commitf63dbfca6f7fb53de8507fe5a872fa8b563baeb8 (patch)
tree4313c0cfef91911be35ccd55baeb432d277f7c95 /audiosettings.c
parent8935978c314f1fb1d7b123220e07b576b106828b (diff)
we have to call sys_audio_close() when resetting the audio-api
unfortunately this has not been made public yet, so there is a fallback using Pd's message api (with the drawback, that this would popup a preferences window if pd-gui is enabled) svn path=/trunk/externals/iem/mediasettings/; revision=14724
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) {