From 4902493c79875a2e39468b31f384fe333cb81e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Wed, 7 Apr 2010 14:45:28 +0000 Subject: iemnet__streamout() takes an argument telling us whether to serialize or not (non-serialization might be useful for proxies) svn path=/trunk/externals/iem/iemnet/; revision=13393 --- tcpclient.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'tcpclient.c') diff --git a/tcpclient.c b/tcpclient.c index ebc0119..7a37c53 100644 --- a/tcpclient.c +++ b/tcpclient.c @@ -46,6 +46,7 @@ typedef struct _tcpclient t_iemnet_sender *x_sender; t_iemnet_receiver*x_receiver; + int x_serialize; int x_fd; // the socket char *x_hostname; // address we want to connect to as text @@ -221,13 +222,18 @@ static void tcpclient_receive_callback(void*y, t_iemnet_chunk*c) { if(c) { iemnet__addrout(x->x_statusout, x->x_addrout, x->x_addr, x->x_port); x->x_floatlist=iemnet__chunk2list(c, x->x_floatlist); // get's destroyed in the dtor - iemnet__streamout(x->x_msgout, x->x_floatlist->argc, x->x_floatlist->argv); + iemnet__streamout(x->x_msgout, x->x_floatlist->argc, x->x_floatlist->argv, x->x_serialize); } else { // disconnected tcpclient_disconnect(x); } } +static void tcpclient_serialize(t_tcpclient *x, t_floatarg doit) { + x->x_serialize=doit; +} + + /* constructor/destructor */ static void *tcpclient_new(void) @@ -240,6 +246,8 @@ static void *tcpclient_new(void) x->x_connectout = outlet_new(&x->x_obj, gensym("float")); /* connection state */ x->x_statusout = outlet_new(&x->x_obj, 0);/* last outlet for everything else */ + x->x_serialize=1; + x->x_fd = -1; x->x_addr = 0L; @@ -277,6 +285,9 @@ IEMNET_EXTERN void tcpclient_setup(void) class_addmethod(tcpclient_class, (t_method)tcpclient_connect, gensym("connect") , A_SYMBOL, A_FLOAT, 0); class_addmethod(tcpclient_class, (t_method)tcpclient_disconnect, gensym("disconnect"), 0); + + class_addmethod(tcpclient_class, (t_method)tcpclient_serialize, gensym("serialize"), A_FLOAT, 0); + class_addmethod(tcpclient_class, (t_method)tcpclient_send, gensym("send"), A_GIMME, 0); class_addlist(tcpclient_class, (t_method)tcpclient_send); -- cgit v1.2.1