aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2011-01-28 13:12:21 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2011-01-28 13:12:21 +0000
commitdd264acd61a9eab92c8c4a175c9e377d2c892e98 (patch)
tree6e6a4ed7d36a9b170c3d0dc810c2fdba91a0b178
parentd94765e6085ec7a2aefc0f10a7cb5810c80dd28f (diff)
generate simple unique names if needed
svn path=/trunk/externals/iem/mediasettings/; revision=14837
-rw-r--r--midisettings.c24
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++;