#N canvas 13 96 1051 669 10; #X msg 33 374 help; #X floatatom 682 190 0 0 128 0 - - -; #X msg 58 185 add alias; #X msg 58 203 add bind; #X msg 58 221 add break; #X msg 58 240 add built-in; #X msg 58 259 add case; #X msg 642 417 delete bind; #X msg 642 435 delete break; #X msg 642 454 delete built-in; #X msg 642 473 delete case; #X obj 514 287 symbol; #X msg 533 267 case; #X msg 533 248 built-in; #X msg 533 229 break; #X msg 533 211 bind; #X msg 533 193 alias; #X obj 514 305 send 2index; #X obj 61 431 receive 2index; #X obj 630 511 send 2index; #X obj 44 297 send 2index; #X text 522 156 get item index; #X text 516 170 (evt. add new item); #X text 33 154 add new item to map; #X text 640 360 delete item from map; #X text 128 39 creation : "index [ []]"; #X msg 642 399 delete alias; #X text 162 73 auto :: 1_sets auto ON \, 0_sets auto OFF (default off) ; #X text 705 14 part of zexy; #X floatatom 61 573 0 0 0 0 - - -; #X symbolatom 121 572 0 0 0 0 - - -; #X obj 61 552 route float symbol; #X obj 196 552 print INDEX; #X obj 682 294 send 2index; #X text 673 168 query an item at index #; #X text 61 9 index:: create a symbol->int map; #X text 164 59 n :: initial max. number of elements in list (default: 128); #X obj 460 7 index; #N canvas 0 0 849 372 administrative 0; #X obj 61 268 outlet; #X msg 61 77 reset; #X text 50 58 clear map; #X msg 103 155 auto \$1; #X obj 103 134 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 156 205 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X msg 156 226 resize \$1; #X text 174 116 in AUTO mode \, unknown symbols are automatically added to the map \;; #X text 175 143 in NON-AUTO mode (default) \, only ADDed symbols (eg. "add ") are added to the map; #X text 235 197 normally \, the map will resize automatically if it gets to small. you can prevent it from resizing by sending a "resize 0" message.; #X connect 1 0 0 0; #X connect 3 0 0 0; #X connect 4 0 3 0; #X connect 5 0 6 0; #X connect 6 0 0 0; #X restore 187 450 pd administrative; #N canvas 0 0 673 455 advanced 0; #X obj 76 298 outlet; #X msg 90 109 dump; #X msg 111 251 sort; #X msg 76 56 bang; #X text 124 56 output the number of stored entries; #X text 128 109 dump each entry in the format "list " ; #X msg 114 161 compact; #X text 173 161 compact the entries \, so there are no holes in the map; #X text 159 253 sort the elements alphabetically; #X text 172 198 this does not produce any immediate output!; #X text 177 179 (e.g. "1 ... foo \, 3 ... bar" --> "1 ... foo \, 2 ... bar"); #X text 156 270 (e.g. "1 ... foo \, 2 ... bar" --> "1 ... bar \, 2 ... foo"); #X text 161 288 this does not produce any immediate output!; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 0 0; #X connect 6 0 0 0; #X restore 190 480 pd advanced; #X text 320 450 open subpatch for administrative messages; #X text 320 480 open subpatch for advanced messages; #X obj 61 507 index 10 1; #X obj 210 299 send 2index; #X text 199 156 add new item to map at index#; #X msg 224 187 add foo 7; #X msg 231 221 add bar 2; #X text 205 168 (if that slot is still free); #X obj 824 514 send 2index; #X text 834 363 delete item at index# from map; #X msg 824 402 delete 6; #X text 88 123 "0" indicates success \; "-1" indicates an error; #X text 45 105 NOTE: indices start counting from "1" !!!; #X connect 0 0 42 0; #X connect 1 0 33 0; #X connect 2 0 20 0; #X connect 3 0 20 0; #X connect 4 0 20 0; #X connect 5 0 20 0; #X connect 6 0 20 0; #X connect 7 0 19 0; #X connect 8 0 19 0; #X connect 9 0 19 0; #X connect 10 0 19 0; #X connect 11 0 17 0; #X connect 12 0 11 0; #X connect 13 0 11 0; #X connect 14 0 11 0; #X connect 15 0 11 0; #X connect 16 0 11 0; #X connect 18 0 42 0; #X connect 26 0 19 0; #X connect 31 0 29 0; #X connect 31 1 30 0; #X connect 31 2 32 0; #X connect 38 0 42 0; #X connect 39 0 42 0; #X connect 42 0 31 0; #X connect 45 0 43 0; #X connect 46 0 43 0; #X connect 50 0 48 0;