From faf5029722c523f8e8c35a97ce3b6a4eee4860a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 24 Jul 2009 21:04:09 +0000 Subject: pure-pd library for converting UTF-8 streams to unicode code number streams svn path=/trunk/externals/iem/unicode/; revision=11884 --- utf82codenumber-help.pd | 87 ++++++++++++++++++++++++++++++ utf82codenumber.pd | 138 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 225 insertions(+) create mode 100644 utf82codenumber-help.pd create mode 100644 utf82codenumber.pd diff --git a/utf82codenumber-help.pd b/utf82codenumber-help.pd new file mode 100644 index 0000000..293def1 --- /dev/null +++ b/utf82codenumber-help.pd @@ -0,0 +1,87 @@ +#N canvas 499 69 530 396 10; +#X text 44 27 UTF-8 to Unicode code numbers; +#X msg 130 58 64; +#X floatatom 130 219 0 0 0 3 Unicode_code_number - -; +#X text 161 59 ASCII '@'; +#X text 284 136 Lydian letter A; +#X msg 148 136 240 \, 144 \, 164 \, 160; +#X obj 130 162 utf82codenumber; +#X msg 144 83 211 \, 153; +#X text 209 85 schwa; +#X msg 147 111 224 \, 188 \, 128; +#X text 248 112 tibetian om; +#X text 47 299 this object converts bytestreams of UTF-8 encoded strings +and outputs the according Unicode code number of the letters (as stream). +; +#X text 51 344 you have to serialize UTF-8 lists as output by e.g. +[binfile] and deserialize the Unicode code number lists for use by +e.g. [text3d]; +#N canvas 37 117 450 356 example 0; +#N canvas 0 0 450 437 serialize 0; +#X obj 131 56 inlet list; +#X obj 149 252 list split 1; +#X obj 149 169 until; +#X obj 149 207 list append; +#X obj 149 148 t b l; +#X obj 279 252 bang; +#X obj 126 98 t b l b; +#X obj 149 340 outlet stream; +#X obj 291 161 outlet start; +#X obj 39 158 outlet stop; +#X connect 0 0 6 0; +#X connect 1 0 7 0; +#X connect 1 1 3 1; +#X connect 1 2 5 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 2 0; +#X connect 4 1 3 1; +#X connect 5 0 2 1; +#X connect 6 0 9 0; +#X connect 6 1 4 0; +#X connect 6 2 8 0; +#X restore 109 103 pd serialize; +#N canvas 0 0 450 300 deserialize 0; +#X obj 84 82 inlet done; +#X obj 186 81 inlet stream; +#X obj 324 83 inlet reset; +#X obj 107 260 outlet list; +#X obj 190 138 list prepend; +#X obj 189 160 t l l; +#X obj 107 185 list prepend; +#X obj 299 120 t b b; +#X obj 107 143 t b; +#X connect 0 0 8 0; +#X connect 1 0 4 0; +#X connect 2 0 7 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 1 4 1; +#X connect 6 0 3 0; +#X connect 7 0 4 1; +#X connect 7 1 6 1; +#X connect 8 0 6 0; +#X restore 109 207 pd deserialize; +#X obj 149 158 utf82codenumber; +#X obj 109 230 list prepend set; +#X obj 109 253 list trim; +#X msg 109 80 64 211 153 224 188 128 240 144 164 160; +#X text 112 58 a multibyte UTF-8 encoded string; +#X text 107 300 a string of unicode code numbers; +#X msg 109 276; +#X obj 46 230 loadbang; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 1 2; +#X connect 1 0 3 0; +#X connect 2 0 1 1; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 5 0 0 0; +#X connect 9 0 3 0; +#X restore 330 228 pd example; +#X connect 1 0 6 0; +#X connect 5 0 6 0; +#X connect 6 0 2 0; +#X connect 7 0 6 0; +#X connect 9 0 6 0; diff --git a/utf82codenumber.pd b/utf82codenumber.pd new file mode 100644 index 0000000..63f690c --- /dev/null +++ b/utf82codenumber.pd @@ -0,0 +1,138 @@ +#N canvas 14 0 649 526 10; +#X obj 131 172 inlet byte; +#X obj 131 316 outlet byte; +#N canvas 327 0 461 427 shifter 0; +#X obj 134 59 inlet; +#X obj 134 387 outlet; +#X obj 166 220 list split 1; +#X obj 166 167 until; +#X obj 166 195 list append; +#X obj 266 220 bang; +#X obj 166 246 +; +#X obj 166 299 t f f; +#X obj 166 144 t b l b; +#X msg 215 265 0; +#X obj 166 270 << 6; +#X obj 166 321 >> 6; +#X obj 134 359 f; +#X obj 134 98 t b l; +#X connect 0 0 13 0; +#X connect 2 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 5 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 3 1; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 7 1 6 1; +#X connect 8 0 3 0; +#X connect 8 1 4 1; +#X connect 8 2 9 0; +#X connect 9 0 6 1; +#X connect 10 0 7 0; +#X connect 11 0 12 1; +#X connect 12 0 1 0; +#X connect 13 0 12 0; +#X connect 13 1 8 0; +#X restore 131 283 pd shifter; +#X text 222 316 unicode code number; +#X text 215 170 UTF-8 multibyte; +#N canvas 431 13 593 499 stream2multibytelist 1; +#X text 259 108 aux; +#X text 323 111 2byte; +#X text 386 113 3byte; +#X text 446 113 4byte; +#X text 180 112 1byte; +#X obj 181 129 & 127; +#X obj 321 129 & 31; +#X obj 251 129 & 63; +#X obj 390 129 & 15; +#X obj 450 129 & 7; +#X obj 251 150 t f b; +#X msg 207 175 1; +#X obj 181 268 ==; +#X text 220 284 expectedbytes; +#X obj 181 226 i; +#X obj 226 266 t f b; +#X msg 238 203 0; +#X obj 204 371 t l l; +#X obj 181 310 select 1; +#X obj 181 393 list prepend; +#X msg 353 174 2; +#X obj 181 198 t b f; +#X obj 181 151 t f b; +#X obj 321 150 t f b; +#X obj 212 226 + 1; +#X obj 390 153 t f b; +#X msg 422 177 3; +#X obj 450 151 t f b; +#X msg 482 175 4; +#X obj 203 345 list prepend; +#X obj 181 87 moses 128; +#X obj 251 87 moses 192; +#X obj 321 87 moses 224; +#X obj 390 87 moses 240; +#X obj 181 61 t f; +#X obj 181 34 inlet; +#X obj 181 429 outlet; +#X obj 283 318 t b b; +#X obj 340 274 print nuchar; +#X obj 339 251 print cuchar; +#X connect 5 0 22 0; +#X connect 6 0 23 0; +#X connect 7 0 10 0; +#X connect 8 0 25 0; +#X connect 9 0 27 0; +#X connect 10 0 21 0; +#X connect 11 0 15 0; +#X connect 12 0 18 0; +#X connect 14 0 12 0; +#X connect 14 0 24 0; +#X connect 14 0 39 0; +#X connect 15 0 12 1; +#X connect 15 0 38 0; +#X connect 15 1 16 0; +#X connect 15 1 37 0; +#X connect 16 0 24 0; +#X connect 17 0 19 1; +#X connect 17 1 29 1; +#X connect 18 0 19 0; +#X connect 19 0 36 0; +#X connect 20 0 15 0; +#X connect 21 0 14 0; +#X connect 21 1 29 0; +#X connect 22 0 21 0; +#X connect 22 1 11 0; +#X connect 23 0 21 0; +#X connect 23 1 20 0; +#X connect 24 0 14 1; +#X connect 25 0 21 0; +#X connect 25 1 26 0; +#X connect 26 0 15 0; +#X connect 27 0 21 0; +#X connect 27 1 28 0; +#X connect 28 0 15 0; +#X connect 29 0 17 0; +#X connect 30 0 5 0; +#X connect 30 1 31 0; +#X connect 31 0 7 0; +#X connect 31 1 32 0; +#X connect 32 0 6 0; +#X connect 32 1 33 0; +#X connect 33 0 8 0; +#X connect 33 1 9 0; +#X connect 34 0 30 0; +#X connect 35 0 34 0; +#X connect 37 0 29 1; +#X connect 37 1 19 1; +#X restore 131 241 pd stream2multibytelist; +#X text 47 43 converts a stream of UTF-8 bytes into a stream of Unicode +code numbers; +#X text 53 95 multibyte characters are not output before the last byte +has been received; +#X obj 244 277 print xxx; +#X connect 0 0 5 0; +#X connect 2 0 1 0; +#X connect 5 0 2 0; +#X connect 5 0 8 0; -- cgit v1.2.1