From 73df569a2b83a21324834acfa1e661843ecd18dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 26 Mar 2010 14:32:03 +0000 Subject: convenience functions these probably should go into a separate file svn path=/trunk/externals/iem/iemnet/; revision=13275 --- iemnet.c | 24 +++++++++++++++++++++++- iemnet.h | 16 ++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/iemnet.c b/iemnet.c index e5cb9be..e0d98b5 100644 --- a/iemnet.c +++ b/iemnet.c @@ -524,7 +524,6 @@ static void*iemnet__receiver_readthread(void*arg) { if(receiver->clock)clock_delay(receiver->clock, 0); } - if(result>=0) if(receiver->clock)clock_delay(receiver->clock, 0); @@ -605,6 +604,29 @@ void iemnet__receiver_destroy(t_iemnet_receiver*rec) { +void iemnet__addrout(t_outlet*status_outlet, t_outlet*address_outlet, + long address, unsigned short port) { + + static t_atom addr[5]; + static int firsttime=1; + + if(firsttime) { + int i=0; + for(i=0; i<5; i++)SETFLOAT(addr+i, 0); + firsttime=0; + } + + addr[0].a_w.w_float = (address & 0xFF000000)>>24; + addr[1].a_w.w_float = (address & 0x0FF0000)>>16; + addr[2].a_w.w_float = (address & 0x0FF00)>>8; + addr[3].a_w.w_float = (address & 0x0FF); + addr[4].a_w.w_float = port; + + if(status_outlet )outlet_anything(status_outlet , gensym("address"), 5, addr); + if(address_outlet)outlet_list (address_outlet, gensym("list" ), 5, addr); +} + + diff --git a/iemnet.h b/iemnet.h index 144bfda..95fb2e3 100644 --- a/iemnet.h +++ b/iemnet.h @@ -97,6 +97,22 @@ t_iemnet_receiver*iemnet__receiver_create(int sock, void*data, t_iemnet_receivec void iemnet__receiver_destroy(t_iemnet_receiver*); + + + +/* convenience functions */ + +/* output the address */ +void iemnet__addrout(t_outlet*status_outlet, t_outlet*address_outlet, long address, unsigned short port); + + + + + + + + + #if defined(_MSC_VER) # define IEMNET_EXTERN __declspec(dllexport) extern # define CCALL __cdecl -- cgit v1.2.1