Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31612
Modified Files:
Tag: devel_0_39
desire.c
Log Message:
fixed bug with empty send/receive in iemguis
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.103
retrieving revision 1.1.2.104
diff -C2 -d -r1.1.2.103 -r1.1.2.104
*** desire.c 16 Aug 2006 17:28:43 -0000 1.1.2.103
--- desire.c 16 Aug 2006 23:09:18 -0000 1.1.2.104
***************
*** 169,174 ****
--- 169,176 ----
char *buf; int bufn;
t_binbuf *b = ((t_text *)stuff)->te_binbuf;
+ /*
if (b) {char *buf; int bufn; binbuf_gettext(b,&buf,&bufn); printf("queue_put [%.*s]\n",bufn,buf);}
else {printf("queue_put (%s)\n",(*(t_pd*)stuff)->c_name->s_name);}
+ */
if (self->len==QUEUE_SIZE) {bug("queue full"); return;}
self->o[(self->start+self->len)%QUEUE_SIZE] = stuff;
***************
*** 184,192 ****
//post("queue_get: items in queue: %d",self->len);
b = ((t_text *)stuff)->te_binbuf;
! if (b) {
char *buf; int bufn;
binbuf_gettext(b,&buf,&bufn);
printf("queue_get [%.*s] %p\n",bufn,buf,stuff);}
! else {printf("queue_get (%s)\n",(*(t_pd*)stuff)->c_name->s_name);}
return stuff;
}
--- 186,194 ----
//post("queue_get: items in queue: %d",self->len);
b = ((t_text *)stuff)->te_binbuf;
! /*if (b) {
char *buf; int bufn;
binbuf_gettext(b,&buf,&bufn);
printf("queue_get [%.*s] %p\n",bufn,buf,stuff);}
! else {printf("queue_get (%s)\n",(*(t_pd*)stuff)->c_name->s_name);}*/
return stuff;
}
***************
*** 11394,11398 ****
static void iemgui_send(t_iemgui *x, t_symbol *s) {
x->snd = canvas_realizedollar(x->glist, s);
! if (x->snd==s_empty) {x->snd=0; gobj_changed(x,"snd");}
}
--- 11396,11401 ----
static void iemgui_send(t_iemgui *x, t_symbol *s) {
x->snd = canvas_realizedollar(x->glist, s);
! if (x->snd==s_empty) x->snd=0;
! gobj_changed(x,"snd");
}
***************
*** 11414,11418 ****
static void iemgui_label(t_iemgui *x, t_symbol *s) {
! x->lab = s;
gobj_changed(x,"lab");
}
--- 11417,11421 ----
static void iemgui_label(t_iemgui *x, t_symbol *s) {
! x->lab = s==s_empty ? 0 : s;
gobj_changed(x,"lab");
}
***************
*** 11465,11469 ****
if (!IS_A_FLOAT(argv,i)) goto err; break;
case 'S': case 's': if (!IS_A_SYMBOL(argv,i)) goto err; break;
! case '?': case 'a': break; /* skip */
case ';': optional=1; break;
default: post("WARNING: bug using pd_scanargs()"); goto err; /* WHAT? */
--- 11468,11473 ----
if (!IS_A_FLOAT(argv,i)) goto err; break;
case 'S': case 's': if (!IS_A_SYMBOL(argv,i)) goto err; break;
! case '?': break;
! case 'a': if (!IS_A_FLOAT(argv,i) && !IS_A_SYMBOL(argv,i)) goto err; break;
case ';': optional=1; break;
default: post("WARNING: bug using pd_scanargs()"); goto err; /* WHAT? */
***************
*** 11476,11494 ****
switch (fmt[i]) {
case '*': case ';': goto break2;
! case '?': case 'F': case 'S': break; /* skip */
case 'd': NEXT; *(double*)p = atom_getfloatarg(i,argc,argv); break;
case 'f': NEXT; *(float*)p = atom_getfloatarg(i,argc,argv); break;
case 'i': NEXT; *(int*)p = atom_getintarg(i,argc,argv); break;
case 'b': NEXT; *(int*)p = !!atom_getintarg(i,argc,argv); break; /* 0 or 1 */
! case 'c': NEXT; *(int*)p = convert_color(atom_getintarg(i,argc,argv)); break; /* IEM-style 8:8:8 colour */
case 's': NEXT; *(t_symbol**)p=atom_getsymbolarg(i,argc,argv); break;
! case 'a': NEXT;
if (IS_A_SYMBOL(argv,i))
*(t_symbol**)p = atom_getsymbolarg(i,argc,argv);
else if (IS_A_FLOAT(argv,i)) {
char str[80];
sprintf(str, "%d", (int)atom_getintarg(i,argc,argv));
*(t_symbol**)p = gensym(str);
! } else *(t_symbol**)p = gensym("empty");
break;
default: post("WARNING: bug using pd_scanargs()"); goto err; /* WHAT? */
--- 11480,11499 ----
switch (fmt[i]) {
case '*': case ';': goto break2;
! case '?': case 'F': case 'S': break; /* skip */ /* what are those for, again? */
case 'd': NEXT; *(double*)p = atom_getfloatarg(i,argc,argv); break;
case 'f': NEXT; *(float*)p = atom_getfloatarg(i,argc,argv); break;
case 'i': NEXT; *(int*)p = atom_getintarg(i,argc,argv); break;
case 'b': NEXT; *(int*)p = !!atom_getintarg(i,argc,argv); break; /* 0 or 1 */
! case 'c': NEXT; *(int*)p = convert_color(atom_getintarg(i,argc,argv)); break; /* IEM-style 8:8:8 colour */
case 's': NEXT; *(t_symbol**)p=atom_getsymbolarg(i,argc,argv); break;
! case 'a': NEXT; /* send-symbol, receive-symbol, or IEM-style label */
if (IS_A_SYMBOL(argv,i))
*(t_symbol**)p = atom_getsymbolarg(i,argc,argv);
+ if (*(t_symbol**)p == s_empty) *(t_symbol**)p = 0;
else if (IS_A_FLOAT(argv,i)) {
char str[80];
sprintf(str, "%d", (int)atom_getintarg(i,argc,argv));
*(t_symbol**)p = gensym(str);
! }
break;
default: post("WARNING: bug using pd_scanargs()"); goto err; /* WHAT? */
***************
*** 11524,11528 ****
case 'a':
case 's': { t_symbol *s = *(va_arg(val,t_symbol**));
! SETSYMBOL(&a,s?s:gensym("empty")); } break;
default: post("WARNING: bug using pd_saveargs()"); goto err; /* WHAT? */
}
--- 11529,11533 ----
case 'a':
case 's': { t_symbol *s = *(va_arg(val,t_symbol**));
! SETSYMBOL(&a,s?s:s_empty); } break;
default: post("WARNING: bug using pd_saveargs()"); goto err; /* WHAT? */
}
***************
*** 11706,11710 ****
x->snd = 0;
x->rcv = 0;
! x->lab = gensym("empty");
x->bcol = 0xffffff;
x->fcol = 0x000000;
--- 11711,11715 ----
x->snd = 0;
x->rcv = 0;
! x->lab = s_empty;
x->bcol = 0xffffff;
x->fcol = 0x000000;
***************
*** 11969,11974 ****
static void radio_send(t_radio *x, float a) {
outlet_float(x->obj.ob_outlet,a);
! if(x->snd && x->snd->s_thing)
! pd_float(x->snd->s_thing,a);
}
--- 11974,11978 ----
static void radio_send(t_radio *x, float a) {
outlet_float(x->obj.ob_outlet,a);
! if(x->snd && x->snd->s_thing) pd_float(x->snd->s_thing,a);
}