Update of /cvsroot/pure-data/externals/postlude/dssi/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22375/src
Modified Files: dssi~.c dssi~.h Log Message: Now sending note messages to instance 0 sends to all instances
Index: dssi~.c =================================================================== RCS file: /cvsroot/pure-data/externals/postlude/dssi/src/dssi~.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** dssi~.c 29 Mar 2006 19:38:55 -0000 1.13 --- dssi~.c 7 Apr 2006 10:27:59 -0000 1.14 *************** *** 617,621 **** int n_instances = x->n_instances;
! if (instance > x->n_instances || instance < 0){ post("dssi~: control: invalid instance number %d", instance); return; --- 617,621 ---- int n_instances = x->n_instances;
! if (instance > x->n_instances || instance < -1){ post("dssi~: control: invalid instance number %d", instance); return; *************** *** 654,660 ****
static void dssi_tilde_info (t_dssi_tilde *x){ ! unsigned int i; t_atom argv[7];
for(i = 0; i < x->descriptor->LADSPA_Plugin->PortCount; i++){ memcpy(&argv[0], &x->port_info[i].type, --- 654,664 ----
static void dssi_tilde_info (t_dssi_tilde *x){ ! unsigned int i, ! ctrl_portno, ! audio_portno; t_atom argv[7];
+ ctrl_portno = audio_portno = 0; + for(i = 0; i < x->descriptor->LADSPA_Plugin->PortCount; i++){ memcpy(&argv[0], &x->port_info[i].type, *************** *** 671,675 **** sizeof(t_atom)); argv[2].a_type = A_FLOAT; ! argv[2].a_w.w_float = (t_float)i - 1; outlet_anything (x->control_outlet, gensym ("port"), 7, argv); } --- 675,684 ---- sizeof(t_atom)); argv[2].a_type = A_FLOAT; ! if(!strcmp(argv[1].a_w.w_symbol->s_name, "control")) ! argv[2].a_w.w_float = (t_float)++ctrl_portno; ! ! else if(!strcmp(argv[1].a_w.w_symbol->s_name, "audio")) ! argv[2].a_w.w_float = (t_float)++audio_portno; ! outlet_anything (x->control_outlet, gensym ("port"), 7, argv); } *************** *** 1297,1300 **** --- 1306,1311 ---- int param = (int)atom_getfloatarg(2, argc, argv); int val = (int)atom_getfloatarg(3, argc, argv); + int n_instances = x->n_instances; + switch (msg_type[0]){ case ASCII_n: ev_type = SND_SEQ_EVENT_NOTEON; *************** *** 1315,1319 **** #endif if(ev_type != 0){ ! MIDIbuf(ev_type, chan, param, val, x); } free(msg_type); --- 1326,1335 ---- #endif if(ev_type != 0){ ! if(chan > 0) ! MIDIbuf(ev_type, chan, param, val, x); ! else { ! while(n_instances--) ! MIDIbuf(ev_type, n_instances, param, val, x); ! } } free(msg_type);
Index: dssi~.h =================================================================== RCS file: /cvsroot/pure-data/externals/postlude/dssi/src/dssi~.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** dssi~.h 29 Mar 2006 19:38:55 -0000 1.10 --- dssi~.h 7 Apr 2006 10:28:02 -0000 1.11 *************** *** 32,36 **** #include <stdio.h> #include <string.h> - #include <stdlib.h> /*for exit()*/ #include <sys/types.h> /* for fork() */ --- 32,35 ---- *************** *** 42,46 ****
! #define VERSION 0.94 #define EVENT_BUFSIZE 1024 #define OSC_BASE_MAX 1024 --- 41,45 ----
! #define VERSION 0.95 #define EVENT_BUFSIZE 1024 #define OSC_BASE_MAX 1024