patch veejay to work with pd

This commit is contained in:
niels
2013-03-10 13:50:03 +01:00
parent 00cdbf91f5
commit e1cd8c4469
5 changed files with 28 additions and 18 deletions

View File

@@ -2,7 +2,7 @@ all: pd_linux
include Makefile.defs
VERSION = 0.1.4
VERSION = 0.1.5
.SUFFIXES: .pd_linux
@@ -17,7 +17,7 @@ PD_CFLAGS = -DPD
.c.pd_linux:
$(CC) $(PD_CFLAGS) $(OPTI_CFLAGS) $(DEBUG_CFLAGS) -DVERSION=\"$(VERSION)\" -o $*.o -c $*.c
$(CC) -export_dynamic -shared -o $*.pd_linux $*.o -lm
$(CC) -rdynamic -shared -o $*.pd_linux $*.o -lm
strip --strip-unneeded $*.pd_linux
rm $*.o

View File

@@ -154,28 +154,35 @@ void setup_selectors(void){
pd_msg_t *pd_msg_new(char *msg){
int i, parsed, size = -1;
char *body = msg + 5;
pd_msg_t *m = 0;
int s[24];
pd_msg_t *m = NULL;
int s[27];
int n = 0;
/* get 26 ints */
n = sscanf(body, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
s+0, s+1, s+2, s+3,
s+4, s+5, s+6, s+7,
s+8, s+9, s+10, s+11,
s+12,s+13,s+14, s+15,
s+16,s+17,s+18, s+19,
s+20,s+21,s+22, s+23,
s+24,s+25);
/* get 24 ints */
n = sscanf(body, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
s+0, s+1, s+2, s+3,
s+4, s+5, s+6, s+7,
s+8, s+9, s+10, s+11,
s+12, s + 13, s + 14, s + 15, s + 16, s + 17, s + 18, s + 19, s + 20, s + 21, s + 22, s + 23, s + 24, s + 25, s + 26);
if (n != 27) goto error;
if( n != 26 )
goto error;
/* create msg */
m = malloc(sizeof(*m));
size_t est = n * sizeof(float) + sizeof(pd_msg_t); //@ malloc(sizeof(*m)) not ok
m = malloc(est);
m->selector = s_veejay; // not used
m->argc = n;
for(i=0; i<n; i++) SETFLOAT(m->argv + i, (float)s[i]);
return m;
error:
msg_free(m);
post("Parsed only %d out of %d status outlets", n,20 );
if( m )
msg_free(m);
post("Parsed only %d out of %d status outlets", n,26 );
return 0;
}