aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2011-01-24 17:34:02 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2011-01-24 17:34:02 +0000
commit4d62f6b23ef228a307a0a7c2185033b8de6accea (patch)
tree5ed09bdd0754ca7452fdf46bc1c5d5dfc644cf55
parentecee7706c16d3af108633746b23b92ec50ff1f5b (diff)
if no drivers to select, ignore selection
svn path=/trunk/externals/iem/mediasettings/; revision=14806
-rw-r--r--midisettings.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/midisettings.c b/midisettings.c
index 11a3803..5a6d577 100644
--- a/midisettings.c
+++ b/midisettings.c
@@ -554,12 +554,16 @@ static void midisettings_setdriver(t_midisettings *x, t_symbol*s, int argc, t_at
}
}
- id=ms_getdriverid(s);
- if(id<0) {
- pd_error(x, "invalid driver '%s'", s->s_name);
- return;
+ if(NULL==DRIVERS) {
+ id=sys_midiapi;
+ } else {
+ id=ms_getdriverid(s);
+ if(id<0) {
+ pd_error(x, "invalid driver '%s'", s->s_name);
+ return;
+ }
+ verbose(1, "setting driver '%s' (=%d)", s->s_name, id);
}
- verbose(1, "setting driver '%s' (=%d)", s->s_name, id);
#ifdef HAVE_SYS_CLOSE_MIDI
sys_close_midi();
sys_set_midi_api(id);
@@ -594,6 +598,8 @@ static void midisettings_listdrivers(t_midisettings *x)
for(driver=DRIVERS; driver; driver=driver->next) {
count++;
}
+
+
SETFLOAT(ap+0, count);
outlet_anything(x->x_info, gensym("driverlist"), 1, ap);