aboutsummaryrefslogtreecommitdiff
path: root/tcpclient.c
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-04-07 14:45:28 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-04-07 14:45:28 +0000
commit4902493c79875a2e39468b31f384fe333cb81e2b (patch)
treeca0c19fb4c5e55b89003df9562d4a92b4d78f36a /tcpclient.c
parent4fa185a5450d9ec1516aa159f4e9dbc1c77a0839 (diff)
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
Diffstat (limited to 'tcpclient.c')
-rw-r--r--tcpclient.c13
1 files changed, 12 insertions, 1 deletions
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);