diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2011-01-28 13:12:21 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2011-01-28 13:12:21 +0000 |
commit | dd264acd61a9eab92c8c4a175c9e377d2c892e98 (patch) | |
tree | 6e6a4ed7d36a9b170c3d0dc810c2fdba91a0b178 | |
parent | d94765e6085ec7a2aefc0f10a7cb5810c80dd28f (diff) |
generate simple unique names if needed
svn path=/trunk/externals/iem/mediasettings/; revision=14837
-rw-r--r-- | midisettings.c | 24 |
1 files 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; i<indevs; i++) { -#warning LATER check how to deal with multiple devices of the same name! - parms->indevices=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; i<outdevs; i++) { parms->outdevices=ms_symkeys_add(parms->outdevices, gensym(outdevlist[i]), i, 0); parms->num_outdevices++; |