From dd264acd61a9eab92c8c4a175c9e377d2c892e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 28 Jan 2011 13:12:21 +0000 Subject: generate simple unique names if needed svn path=/trunk/externals/iem/mediasettings/; revision=14837 --- midisettings.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/midisettings.c b/midisettings.c index 83fd39a..1c54b2d 100644 --- a/midisettings.c +++ b/midisettings.c @@ -84,13 +84,19 @@ static t_ms_symkeys*ms_symkeys_add(t_ms_symkeys*symkeys, t_symbol*name, int id, t_ms_symkeys*symkey=ms_symkeys_find(symkeys, name); if(symkey) { - if(overwrite) { - symkey->name=name; - symkey->id =id; - } - return symkeys; + char buf[MAXPDSTRING+1]; + buf[MAXPDSTRING]=0; + + if(!overwrite) + return symkeys; +#warning LATER check how to deal with multiple devices of the same name! + // now this is a simple hack + snprintf(buf, MAXPDSTRING, "%s!", name->s_name); + return ms_symkeys_add(symkeys, gensym(buf), id, overwrite); } + + symkey=(t_ms_symkeys*)getbytes(sizeof(t_ms_symkeys)); symkey->name=name; symkey->id=id; @@ -235,16 +241,10 @@ static void ms_params_get(t_ms_params*parms) { (char*)outdevlist, &outdevs, MAXNDEV, DEVDESCSIZE); for(i=0; iindevices=ms_symkeys_add(parms->indevices, gensym(indevlist[i]), i, 0); + parms->indevices=ms_symkeys_add(parms->indevices, gensym(indevlist[i]), i, 1); parms->num_indevices++; } - parms->indevices=ms_symkeys_add(parms->indevices, gensym("test"), i++, 0); - parms->num_indevices++; - parms->indevices=ms_symkeys_add(parms->indevices, gensym("test"), i++, 0); - parms->num_indevices++; - for(i=0; ioutdevices=ms_symkeys_add(parms->outdevices, gensym(outdevlist[i]), i, 0); parms->num_outdevices++; -- cgit v1.2.1