From 0987c4a0f35fa24c7095aab974031a937ea0a062 Mon Sep 17 00:00:00 2001 From: Martin Peach Date: Tue, 3 Feb 2009 14:05:29 +0000 Subject: These were updated by roman roman.haefeli@gmail.com [tcpsocket.OSC] - fixed limitation of maximum size for incoming list for serialization. handles now arbitrary list lengths correctly. [tcpsocket.FUDI] - fixed limitation of maximum size for incoming list for serialization. handles now arbitrary list lengths correctly. - fixed delimiting problem: semicolons prepended by backslashes are correctly omitted for delimiter evaluation. svn path=/trunk/externals/mrpeach/; revision=10727 --- osc/tcpsocket.FUDI.pd | 96 +++++++++++++++++++++++++++++++--------------- osc/tcpsocket.OSC.pd | 104 ++++++++++++++++++++++++++++++-------------------- 2 files changed, 127 insertions(+), 73 deletions(-) diff --git a/osc/tcpsocket.FUDI.pd b/osc/tcpsocket.FUDI.pd index 0ced636..74194d3 100644 --- a/osc/tcpsocket.FUDI.pd +++ b/osc/tcpsocket.FUDI.pd @@ -35,23 +35,44 @@ on specified socket already exists.; ; #X obj -2 136 cnv 15 450 70 empty empty empty 20 12 0 14 -204786 -66577 0; -#N canvas 385 67 454 323 FUDI 0; +#N canvas 385 67 606 479 FUDI 0; #X obj 23 6 inlet; -#X obj 23 284 outlet; -#N canvas 389 242 220 273 serialize 0; -#X obj 5 72 t a a; -#X obj 37 94 list prepend 0; -#X obj 37 115 s \$0.inbuffer; -#X obj 5 135 list length; -#X obj 5 179 until; -#X obj 5 156 t a b; -#X obj 5 202 f; -#X obj 50 205 + 1; -#X msg 49 179 0; -#X obj 5 228 tabread \$0.inbuffer; +#X obj 23 400 outlet; +#N canvas 389 242 191 341 serialize 0; +#X obj 5 100 t a a; +#X obj 37 122 list prepend 0; +#X obj 37 143 s \$0.inbuffer; +#X obj 5 174 list length; +#X obj 5 218 until; +#X obj 5 195 t a b; +#X obj 5 241 f; +#X obj 50 244 + 1; +#X msg 49 218 0; +#X obj 5 267 tabread \$0.inbuffer; #X obj 5 50 inlet; -#X obj 5 250 outlet; -#X obj 5 12 table \$0.inbuffer 1024; +#X obj 5 289 outlet; +#X obj 5 12 table \$0.inbuffer 8192; +#N canvas 294 258 396 232 list_serialize_raw 0; +#X obj 13 73 until; +#X obj 13 97 list append; +#X obj 13 47 t b a; +#X obj 13 23 inlet; +#X obj 13 169 outlet; +#X obj 13 121 list split 8192; +#X obj 141 106 b; +#X text 12 190 cut incoming list into pieces of a maximum of the buffersize. +; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 2 0 0 0; +#X connect 2 1 1 1; +#X connect 3 0 2 0; +#X connect 5 0 4 0; +#X connect 5 1 1 1; +#X connect 5 2 6 0; +#X connect 5 2 4 0; +#X connect 6 0 0 1; +#X restore 5 74 pd list_serialize_raw; #X connect 0 0 3 0; #X connect 0 1 1 0; #X connect 1 0 2 0; @@ -64,41 +85,54 @@ on specified socket already exists.; #X connect 7 0 6 1; #X connect 8 0 6 1; #X connect 9 0 11 0; -#X connect 10 0 0 0; +#X connect 10 0 13 0; +#X connect 13 0 0 0; #X restore 23 30 pd serialize; #X obj 23 109 t a a; -#X obj 97 181 list prepend; -#X obj 195 180 t a; -#X obj 23 211 list append; -#X obj 23 234 t a b; +#X obj 97 297 list prepend; +#X obj 195 296 t a; +#X obj 23 327 list append; +#X obj 23 350 t a b; #X obj 160 56 inlet; #X text 210 56 reset; #X obj 23 53 sel 10 13; #X msg 23 76 32; -#X obj 23 133 sel 59; -#X text 83 134 asci: semicolon is used as a delimiter; -#X obj 160 152 b; -#X obj 23 257 list append 10; +#X obj 23 219 sel 59; +#X obj 178 264 b; +#X obj 23 373 list append 10; +#X obj 23 149 sel 92; +#X msg 23 171 -1; +#X obj 62 171 t a a; +#X msg 62 193 59; +#X text 119 182 <-; +#X text 144 176 separate by 59 (semicolon) \, but ignore semicolons +prepended by 92 (backslash); #X connect 0 0 2 0; #X connect 2 0 10 0; -#X connect 3 0 12 0; +#X connect 3 0 15 0; #X connect 3 1 4 0; #X connect 4 0 5 0; #X connect 4 0 6 1; #X connect 5 0 4 1; #X connect 6 0 7 0; -#X connect 7 0 15 0; +#X connect 7 0 14 0; #X connect 7 1 6 1; #X connect 7 1 4 1; -#X connect 8 0 14 0; +#X connect 8 0 13 0; #X connect 10 0 11 0; #X connect 10 1 11 0; #X connect 10 2 3 0; #X connect 11 0 3 0; #X connect 12 0 6 0; -#X connect 14 0 4 1; -#X connect 14 0 6 1; -#X connect 15 0 1 0; +#X connect 13 0 4 1; +#X connect 13 0 6 1; +#X connect 14 0 1 0; +#X connect 15 0 16 0; +#X connect 15 1 17 0; +#X connect 16 0 12 1; +#X connect 17 0 18 0; +#X connect 17 1 12 0; +#X connect 18 0 12 1; #X restore 7 161 pd FUDI; #X text 70 162 <- PUT HERE THE PROTOCOL SPECIFIC DELIMITER CODE; #X text 15 197 -------------------------------------------------------- @@ -109,8 +143,8 @@ on specified socket already exists.; #X obj 7 465 s \$1.TCPSOCKET; #X obj 105 255 r \$1.TCPSOCKET; #X text 200 454 Author: Roman Haefeli; -#X text 201 474 Version: 2009-01-11; #X text 50 74 <- only pass stream of own socket; +#X text 201 474 Version: 2009-02-02; #X connect 0 0 2 1; #X connect 1 0 2 0; #X connect 1 1 0 0; diff --git a/osc/tcpsocket.OSC.pd b/osc/tcpsocket.OSC.pd index 069af4f..1b838e3 100644 --- a/osc/tcpsocket.OSC.pd +++ b/osc/tcpsocket.OSC.pd @@ -44,43 +44,12 @@ on specified socket already exists.; #X obj 7 465 s \$1.TCPSOCKET; #X obj 104 256 r \$1.TCPSOCKET; #X text 200 454 Author: Roman Haefeli; -#X text 201 474 Version: 2009-01-11; #X text 55 75 <- only pass stream of own socket; #N canvas 395 78 268 176 OSC 0; #X obj 27 18 inlet; #X obj 27 156 outlet; #X obj 144 23 inlet; #X text 194 23 reset; -#N canvas 628 406 424 313 drip 0; -#X obj 12 15 inlet; -#X obj 12 226 outlet; -#X obj 107 16 table \$0.buffer 65536; -#X obj 76 82 s \$0.buffer; -#X obj 76 61 list prepend 0; -#X obj 12 37 t a a; -#X text 9 265 this 'drip' approach might use more memory \, but hopefully -less cpu cycles.; -#X obj 12 102 list length; -#X obj 12 150 until; -#X obj 12 126 t a b; -#X obj 12 173 f; -#X obj 60 176 + 1; -#X msg 61 150 0; -#X obj 12 202 tabread \$0.buffer; -#X connect 0 0 5 0; -#X connect 4 0 3 0; -#X connect 5 0 7 0; -#X connect 5 1 4 0; -#X connect 7 0 9 0; -#X connect 8 0 10 0; -#X connect 9 0 8 0; -#X connect 9 1 12 0; -#X connect 10 0 11 0; -#X connect 10 0 13 0; -#X connect 11 0 10 1; -#X connect 12 0 10 1; -#X connect 13 0 1 0; -#X restore 27 49 pd drip; #N canvas 820 354 408 355 parse_frameheader 0; #X obj 14 10 inlet; #X obj 14 304 outlet; @@ -194,21 +163,72 @@ less cpu cycles.; #X restore 27 129 pd form_packet; #X obj 169 85 b; #X obj 144 50 b; -#X connect 0 0 4 0; -#X connect 2 0 8 0; +#N canvas 389 242 191 341 serialize 0; +#X obj 5 100 t a a; +#X obj 37 122 list prepend 0; +#X obj 37 143 s \$0.inbuffer; +#X obj 5 174 list length; +#X obj 5 218 until; +#X obj 5 195 t a b; +#X obj 5 241 f; +#X obj 50 244 + 1; +#X msg 49 218 0; +#X obj 5 267 tabread \$0.inbuffer; +#X obj 5 50 inlet; +#X obj 5 289 outlet; +#N canvas 294 258 396 232 list_serialize_raw 0; +#X obj 13 73 until; +#X obj 13 97 list append; +#X obj 13 47 t b a; +#X obj 13 23 inlet; +#X obj 13 169 outlet; +#X obj 156 122 b; +#X text 12 190 cut incoming list into pieces of a maximum of the buffersize. +; +#X obj 13 121 list split 65536; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 2 0 0 0; +#X connect 2 1 1 1; +#X connect 3 0 2 0; +#X connect 5 0 0 1; +#X connect 7 0 4 0; +#X connect 7 1 1 1; +#X connect 7 2 5 0; +#X connect 7 2 4 0; +#X restore 5 74 pd list_serialize_raw; +#X obj 5 12 table \$0.inbuffer 65536; +#X connect 0 0 3 0; +#X connect 0 1 1 0; +#X connect 1 0 2 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 5 1 8 0; +#X connect 6 0 7 0; +#X connect 6 0 9 0; +#X connect 7 0 6 1; +#X connect 8 0 6 1; +#X connect 9 0 11 0; +#X connect 10 0 12 0; +#X connect 12 0 0 0; +#X restore 27 45 pd serialize; +#X connect 0 0 8 0; +#X connect 2 0 7 0; #X connect 4 0 5 0; -#X connect 5 0 6 0; -#X connect 5 1 6 1; -#X connect 6 0 1 0; -#X connect 6 1 7 0; -#X connect 7 0 5 1; -#X connect 8 0 5 1; +#X connect 4 1 5 1; +#X connect 5 0 1 0; +#X connect 5 1 6 0; +#X connect 6 0 4 1; +#X connect 7 0 4 1; +#X connect 8 0 4 0; #X restore 7 161 pd OSC; +#X text 201 474 Version: 2009-02-02; #X connect 0 0 2 1; #X connect 1 0 2 0; #X connect 1 1 0 0; -#X connect 2 0 23 0; -#X connect 3 0 23 1; +#X connect 2 0 22 0; +#X connect 3 0 22 1; #X connect 4 0 5 1; #X connect 4 1 6 1; #X connect 5 0 9 0; @@ -222,4 +242,4 @@ less cpu cycles.; #X connect 11 0 18 0; #X connect 17 0 1 0; #X connect 19 0 4 0; -#X connect 23 0 7 0; +#X connect 22 0 7 0; -- cgit v1.2.1