diff options
Diffstat (limited to 'externals/grill')
-rw-r--r-- | externals/grill/pool/main.cpp | 4 | ||||
-rw-r--r-- | externals/grill/pool/pool.cpp | 225 | ||||
-rwxr-xr-x | externals/grill/pool/pool.cw | bin | 58761 -> 603 bytes | |||
-rw-r--r-- | externals/grill/pool/pool.dsp | 10 | ||||
-rw-r--r-- | externals/grill/pool/pool.h | 25 | ||||
-rwxr-xr-x | externals/grill/pool/pool.help | bin | 5345 -> 304 bytes | |||
-rw-r--r-- | externals/grill/pool/pool.pd | 402 |
7 files changed, 265 insertions, 401 deletions
diff --git a/externals/grill/pool/main.cpp b/externals/grill/pool/main.cpp index 5d0cef10..c8297e9c 100644 --- a/externals/grill/pool/main.cpp +++ b/externals/grill/pool/main.cpp @@ -10,6 +10,8 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include "pool.h" +#define POOL_VERSION "0.1.0" + class pool: public flext_base { @@ -189,6 +191,8 @@ pool::pool(I argc,const A *argv): AddOutList(); AddOutAnything(); + FLEXT_ADDMETHOD_(0,"pool",m_pool); + FLEXT_ADDMETHOD_(0,"set",m_set); FLEXT_ADDMETHOD_(0,"add",m_add); FLEXT_ADDMETHOD_(0,"reset",m_reset); diff --git a/externals/grill/pool/pool.cpp b/externals/grill/pool/pool.cpp index 629ab7fb..b45f0e87 100644 --- a/externals/grill/pool/pool.cpp +++ b/externals/grill/pool/pool.cpp @@ -78,8 +78,8 @@ poolval *poolval::Dup() const } -pooldir::pooldir(const A &d): - dirs(NULL),vals(NULL),nxt(NULL) +pooldir::pooldir(const A &d,pooldir *p): + parent(p),dirs(NULL),vals(NULL),nxt(NULL) { CopyAtom(&dir,&d); } @@ -108,7 +108,7 @@ pooldir *pooldir::AddDir(I argc,const A *argv) } if(c || !ix) { - pooldir *nd = new pooldir(argv[0]); + pooldir *nd = new pooldir(argv[0],this); nd->nxt = ix; if(prv) prv->nxt = nd; @@ -147,9 +147,9 @@ pooldir *pooldir::GetDir(I argc,const A *argv,BL rmv) } } -BL pooldir::DelDir(const AtomList &d) +BL pooldir::DelDir(I argc,const A *argv) { - pooldir *pd = GetDir(d,true); + pooldir *pd = GetDir(argc,argv,true); if(pd && pd != this) { delete pd; return true; @@ -193,6 +193,24 @@ V pooldir::SetVal(const A &key,AtomList *data,BL over) } } +poolval *pooldir::RefVal(const A &key) +{ + I c = 1; + poolval *ix = vals; + for(; ix; ix = ix->nxt) { + c = compare(key,ix->key); + if(c <= 0) break; + } + + return c || !ix?NULL:ix; +} + +flext::AtomList *pooldir::PeekVal(const A &key) +{ + poolval *ix = RefVal(key); + return ix?ix->data:NULL; +} + flext::AtomList *pooldir::GetVal(const A &key,BL cut) { I c = 1; @@ -228,6 +246,18 @@ I pooldir::CntAll() return cnt; } +I pooldir::GetKeys(AtomList &keys) +{ + I cnt = CntAll(); + keys(cnt); + + poolval *ix = vals; + for(I i = 0; ix; ++i,ix = ix->nxt) + SetAtom(keys[i],ix->key); + + return cnt; +} + I pooldir::GetAll(A *&keys,AtomList *&lst,BL cut) { I cnt = CntAll(); @@ -458,188 +488,3 @@ BL pooldir::SvDir(ostream &os,I depth,const AtomList &dir) -pooldata::pooldata(const S *s): - sym(s),nxt(NULL),refs(0), - root(nullatom) -{ - LOG1("new pool %s",sym?flext_base::GetString(sym):"<private>"); -} - -pooldata::~pooldata() -{ - LOG1("free pool %s",sym?flext_base::GetString(sym):"<private>"); -} - -t_atom pooldata::nullatom = { A_NULL }; - - -V pooldata::Reset() -{ - root.Clear(true); -} - -BL pooldata::MkDir(const AtomList &d) -{ - root.AddDir(d); - return true; -} - -BL pooldata::ChkDir(const AtomList &d) -{ - return root.GetDir(d) != NULL; -} - -BL pooldata::RmDir(const AtomList &d) -{ - return root.DelDir(d); -} - -BL pooldata::Set(const AtomList &d,const A &key,AtomList *data,BL over) -{ - pooldir *pd = root.GetDir(d); - if(!pd) return false; - pd->SetVal(key,data,over); - return true; -} - -BL pooldata::Clr(const AtomList &d,const A &key) -{ - pooldir *pd = root.GetDir(d); - if(!pd) return false; - pd->ClrVal(key); - return true; -} - -BL pooldata::ClrAll(const AtomList &d,BL rec,BL dironly) -{ - pooldir *pd = root.GetDir(d); - if(!pd) return false; - pd->Clear(rec,dironly); - return true; -} - -flext::AtomList *pooldata::Get(const AtomList &d,const A &key) -{ - pooldir *pd = root.GetDir(d); - return pd?pd->GetVal(key):NULL; -} - -I pooldata::CntAll(const AtomList &d) -{ - pooldir *pd = root.GetDir(d); - return pd?pd->CntAll():0; -} - -I pooldata::GetAll(const AtomList &d,A *&keys,AtomList *&lst) -{ - pooldir *pd = root.GetDir(d); - if(pd) - return pd->GetAll(keys,lst); - else { - keys = NULL; lst = NULL; - return 0; - } -} - -I pooldata::GetSub(const AtomList &d,const t_atom **&dirs) -{ - pooldir *pd = root.GetDir(d); - if(pd) - return pd->GetSub(dirs); - else { - dirs = NULL; - return 0; - } -} - - -BL pooldata::Paste(const AtomList &d,const pooldir *clip,I depth,BL repl,BL mkdir) -{ - pooldir *pd = root.GetDir(d); - if(pd) - return pd->Paste(clip,depth,repl,mkdir); - else - return false; -} - -pooldir *pooldata::Copy(const AtomList &d,const A &key,BL cut) -{ - pooldir *pd = root.GetDir(d); - if(pd) { - AtomList *val = pd->GetVal(key,cut); - if(val) { - pooldir *ret = new pooldir(nullatom); - ret->SetVal(key,val); - return ret; - } - else - return NULL; - } - else - return NULL; -} - -pooldir *pooldata::CopyAll(const AtomList &d,I depth,BL cut) -{ - pooldir *pd = root.GetDir(d); - if(pd) { - pooldir *ret = new pooldir(nullatom); - if(pd->Copy(ret,depth,cut)) - return ret; - else { - delete ret; - return NULL; - } - } - else - return NULL; -} - - -static const C *CnvFlnm(C *dst,const C *src,I sz) -{ -#if defined(PD) && defined(NT) - I cnt = strlen(src); - if(cnt >= sz-1) return NULL; - for(I i = 0; i < cnt; ++i) - dst[i] = src[i] != '/'?src[i]:'\\'; - dst[i] = 0; - return dst; -#else - return src; -#endif -} - -BL pooldata::LdDir(const AtomList &d,const C *flnm,I depth,BL mkdir) -{ - pooldir *pd = root.GetDir(d); - if(pd) { - C tmp[1024]; - const C *t = CnvFlnm(tmp,flnm,sizeof tmp); - if(t) { - ifstream fl(t); - return fl.good() && pd->LdDir(fl,depth,mkdir); - } - else return false; - } - else - return false; -} - -BL pooldata::SvDir(const AtomList &d,const C *flnm,I depth,BL absdir) -{ - pooldir *pd = root.GetDir(d); - if(pd) { - C tmp[1024]; - const C *t = CnvFlnm(tmp,flnm,sizeof tmp); - if(t) { - ofstream fl(t); - return fl.good() && pd->SvDir(fl,depth,absdir?d:AtomList()); - } - else return false; - } - else - return false; -} - - diff --git a/externals/grill/pool/pool.cw b/externals/grill/pool/pool.cw Binary files differindex 66e93306..5a7b3a70 100755 --- a/externals/grill/pool/pool.cw +++ b/externals/grill/pool/pool.cw diff --git a/externals/grill/pool/pool.dsp b/externals/grill/pool/pool.dsp index dbe09386..0c39ebb3 100644 --- a/externals/grill/pool/pool.dsp +++ b/externals/grill/pool/pool.dsp @@ -53,7 +53,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /libpath:"c:\programme\audio\pd\bin" /libpath:"f:\prog\max\flext\pd-msvc" +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"pd-msvc/pool.dll" /libpath:"c:\programme\audio\pd\bin" /libpath:"f:\prog\max\flext\pd-msvc" !ELSEIF "$(CFG)" == "pool - Win32 Debug" @@ -89,6 +89,10 @@ LINK32=link.exe # Name "pool - Win32 Debug" # Begin Source File +SOURCE=.\data.cpp +# End Source File +# Begin Source File + SOURCE=.\main.cpp # End Source File # Begin Source File @@ -99,5 +103,9 @@ SOURCE=.\pool.cpp SOURCE=.\pool.h # End Source File +# Begin Source File + +SOURCE=.\readme.txt +# End Source File # End Target # End Project diff --git a/externals/grill/pool/pool.h b/externals/grill/pool/pool.h index 21fe4eb3..3c698b1f 100644 --- a/externals/grill/pool/pool.h +++ b/externals/grill/pool/pool.h @@ -17,8 +17,6 @@ WARRANTIES, see the file, "license.txt," in this distribution. #error You need at least flext version 0.4.0 #endif -#define POOL_VERSION "0.0.5" - #include <iostream.h> typedef void V; @@ -44,28 +42,36 @@ public: poolval *nxt; }; - class pooldir: +class pooldir: public flext { public: - pooldir(const A &dir); + pooldir(const A &dir,pooldir *parent); ~pooldir(); V Clear(BL rec,BL dironly = false); + BL Empty() const { return !dirs && !vals; } + BL HasDirs() const { return dirs != NULL; } + BL HasVals() const { return vals != NULL; } pooldir *GetDir(I argc,const A *argv,BL cut = false); pooldir *GetDir(const AtomList &d,BL cut = false) { return GetDir(d.Count(),d.Atoms(),cut); } - BL DelDir(const AtomList &d); + BL DelDir(I argc,const A *argv); + BL DelDir(const AtomList &d) { return DelDir(d.Count(),d.Atoms()); } pooldir *AddDir(I argc,const A *argv); pooldir *AddDir(const AtomList &d) { return AddDir(d.Count(),d.Atoms()); } V SetVal(const A &key,AtomList *data,BL over = true); V ClrVal(const A &key) { SetVal(key,NULL); } + AtomList *PeekVal(const A &key); AtomList *GetVal(const A &key,BL cut = false); I CntAll(); I GetAll(A *&keys,AtomList *&lst,BL cut = false); - I GetSub(const t_atom **&dirs); + I GetKeys(AtomList &keys); + I GetSub(const A **&dirs); + poolval *RefVal(const A &key); + BL Paste(const pooldir *p,I depth,BL repl,BL mkdir); BL Copy(pooldir *p,I depth,BL cur); @@ -75,11 +81,11 @@ public: A dir; pooldir *nxt; - pooldir *dirs; + pooldir *parent,*dirs; poolval *vals; }; - class pooldata: +class pooldata: public flext { public: @@ -97,6 +103,7 @@ public: BL Set(const AtomList &d,const A &key,AtomList *data,BL over = true); BL Clr(const AtomList &d,const A &key); BL ClrAll(const AtomList &d,BL rec,BL dironly = false); + AtomList *Peek(const AtomList &d,const A &key); AtomList *Get(const AtomList &d,const A &key); I CntAll(const AtomList &d); I GetAll(const AtomList &d,A *&keys,AtomList *&lst); @@ -118,7 +125,7 @@ public: pooldir root; private: - static t_atom nullatom; + static const A nullatom; }; #endif diff --git a/externals/grill/pool/pool.help b/externals/grill/pool/pool.help Binary files differindex 24d189b7..d0d17dc7 100755 --- a/externals/grill/pool/pool.help +++ b/externals/grill/pool/pool.help diff --git a/externals/grill/pool/pool.pd b/externals/grill/pool/pool.pd index ffd49615..0726e6f6 100644 --- a/externals/grill/pool/pool.pd +++ b/externals/grill/pool/pool.pd @@ -1,201 +1,201 @@ -#N canvas 25 23 966 669 12;
-#X obj 273 441 pool;
-#X msg 236 52 set 1 2 3;
-#X obj 272 563 print K;
-#X msg 602 156 getall;
-#X msg 236 81 set A k g;
-#X obj 251 594 print V;
-#X obj 290 532 print D;
-#X msg 236 111 set A l m;
-#X msg 239 140 set 2 34;
-#X msg 238 171 set 3 17;
-#X msg 423 50 clr A;
-#X msg 427 126 get A;
-#X msg 427 158 get 2;
-#X msg 20 79 echodir \$1;
-#X obj 20 58 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 20 160 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X msg 20 181 absdir \$1;
-#X text 422 30 clear value;
-#X text 423 104 get value;
-#X obj 309 505 print C;
-#X text 375 504 command;
-#X text 357 531 directory (abs or rel to current);
-#X text 320 594 data value;
-#X text 338 562 data key;
-#X msg 26 279 pool pool1;
-#X msg 27 308 pool;
-#X text 69 308 set to private;
-#X msg 27 370 reset;
-#X text 26 349 clear all pool data;
-#X msg 608 56 clrall;
-#X text 599 34 clear all values in dir;
-#X text 602 135 get all values in dir;
-#X text 314 442 pool name can be given as argument;
-#X text 598 81 clear all values and dirs;
-#X msg 606 103 clrrec;
-#X msg 600 203 getrec;
-#X text 600 181 get all values in dir and subdirs;
-#X text 652 232 bang at EOL;
-#X text 661 150 bang at EOL;
-#X text 655 202 depth may be given;
-#X text 22 258 data is shared among pool objects;
-#X text 23 237 set pool name;
-#X text 20 36 at each command;
-#X text 20 20 echo current dir;
-#X text 233 27 set values;
-#X text 15 141 (default on);
-#X text 7 125 report absolute dirs;
-#X msg 28 417 help;
-#X text 70 418 get some info;
-#X text 658 219 default=-1 (= infinite);
-#X msg 604 283 cntall;
-#X text 663 281 count all values in dir;
-#X msg 604 309 cntrec;
-#X text 665 307 ... and subdirs;
-#X text 661 321 (depth may be given);
-#X msg 237 226 add 3 14;
-#X text 235 205 set but don't replace;
-#N canvas 0 0 421 528 dirs 0;
-#X msg 109 27 mkdir fld1;
-#X msg 111 122 chdir;
-#X msg 110 217 updir;
-#X msg 111 354 getsub -1;
-#X text 110 7 make absolute dir;
-#X text 109 51 make relative dir;
-#X msg 110 72 mksub fld2;
-#X text 109 104 change to absolute dir;
-#X msg 110 165 chsub fld2;
-#X text 108 146 change to relative dir;
-#X text 106 198 change to upper dir;
-#X text 107 250 remove absolute dir;
-#X msg 108 269 rmdir fld1;
-#X msg 110 308 rmsub fld2;
-#X text 109 289 remove relative dir;
-#X text 109 336 get subdirs;
-#X text 239 379 -1 ... infinite;
-#X text 161 213 depth may be given;
-#X text 162 229 default=1;
-#X text 192 348 depth may be given;
-#X text 192 365 default=1;
-#X text 108 377 count subdirs;
-#X msg 111 398 cntsub -1;
-#X obj 11 239 outlet;
-#X msg 111 458 getdir;
-#X text 110 438 get current dir;
-#X text 172 457 always absolute;
-#X connect 0 0 23 0;
-#X connect 1 0 23 0;
-#X connect 2 0 23 0;
-#X connect 3 0 23 0;
-#X connect 6 0 23 0;
-#X connect 8 0 23 0;
-#X connect 12 0 23 0;
-#X connect 13 0 23 0;
-#X connect 22 0 23 0;
-#X connect 24 0 23 0;
-#X restore 713 494 pd dirs;
-#X text 710 468 directory operations;
-#N canvas 0 0 467 434 file 0;
-#X text 117 207 save dir and subdirs;
-#X text 117 165 save data in current dir;
-#X msg 117 184 svdir c:/temp/pool.dat;
-#X msg 117 226 svrec c:/temp/pool.dat;
-#X msg 116 272 lddir c:/temp/pool.dat;
-#X msg 116 319 ldrec c:/temp/pool.dat;
-#X text 117 253 load data into current dir;
-#X text 115 300 load data into current dir and below;
-#X text 132 340 depth (default -1) and;
-#X text 134 356 mkdir flag (default 1) can be given;
-#X obj 22 188 outlet;
-#X text 117 37 save all;
-#X text 117 81 load all (add to existing data);
-#X msg 118 100 load c:/temp/pool.dat;
-#X msg 120 54 save c:/temp/pool.dat;
-#X text 22 12 file operations;
-#X connect 2 0 10 0;
-#X connect 3 0 10 0;
-#X connect 4 0 10 0;
-#X connect 5 0 10 0;
-#X connect 13 0 10 0;
-#X connect 14 0 10 0;
-#X restore 714 549 pd file;
-#X text 712 526 file operations;
-#X text 712 583 clipboard operations;
-#N canvas 0 0 529 577 clip 0;
-#X obj 17 183 outlet;
-#X text 97 56 copy value associated to key into clipboard;
-#X msg 100 77 copy A;
-#X msg 98 119 cut B;
-#X text 96 101 cut value associated to key into clipboard;
-#X msg 96 401 paste;
-#X msg 98 179 copyall;
-#X text 95 158 copy all values in current dir into clipboard;
-#X msg 97 221 cutall;
-#X text 95 201 cut all values in current dir into clipboard;
-#X text 94 263 copy all values in current dir into clipboard;
-#X text 94 306 cut all values in current dir into clipboard;
-#X msg 97 284 copyrec;
-#X text 194 285 depth may be given (default=-1);
-#X text 193 326 depth may be given (default=-1);
-#X msg 96 326 cutrec 1;
-#X text 194 345 1..only with first level subdirs;
-#X text 96 379 paste clipboard contents into current directory;
-#X text 167 397 depth (default -1) and;
-#X text 169 413 mkdir flag (default 1) can be given;
-#X text 171 448 depth (default -1) and;
-#X text 173 466 mkdir flag (default 1) can be given;
-#X msg 95 453 pasteadd;
-#X text 95 431 paste but don't replace;
-#X msg 94 521 clrclip;
-#X text 160 523 clear clipboard (free memory);
-#X text 22 12 clipboard operations (this is an internal clipboard...)
-;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 5 0 0 0;
-#X connect 6 0 0 0;
-#X connect 8 0 0 0;
-#X connect 12 0 0 0;
-#X connect 15 0 0 0;
-#X connect 22 0 0 0;
-#X connect 24 0 0 0;
-#X restore 714 606 pd clip;
-#X text 712 437 more commands:;
-#X obj 780 494 s \$0-pool;
-#X obj 778 549 s \$0-pool;
-#X obj 778 606 s \$0-pool;
-#X obj 349 392 r \$0-pool;
-#X connect 0 0 5 0;
-#X connect 0 1 2 0;
-#X connect 0 2 6 0;
-#X connect 0 3 19 0;
-#X connect 1 0 0 0;
-#X connect 3 0 0 0;
-#X connect 4 0 0 0;
-#X connect 7 0 0 0;
-#X connect 8 0 0 0;
-#X connect 9 0 0 0;
-#X connect 10 0 0 0;
-#X connect 11 0 0 0;
-#X connect 12 0 0 0;
-#X connect 13 0 0 0;
-#X connect 14 0 13 0;
-#X connect 15 0 16 0;
-#X connect 16 0 0 0;
-#X connect 24 0 0 0;
-#X connect 25 0 0 0;
-#X connect 27 0 0 0;
-#X connect 29 0 0 0;
-#X connect 34 0 0 0;
-#X connect 35 0 0 0;
-#X connect 47 0 0 0;
-#X connect 50 0 0 0;
-#X connect 52 0 0 0;
-#X connect 55 0 0 0;
-#X connect 57 0 64 0;
-#X connect 59 0 65 0;
-#X connect 62 0 66 0;
-#X connect 67 0 0 0;
+#N canvas 25 23 974 677 12; +#X obj 260 478 pool; +#X msg 295 108 set 1 2 3; +#X obj 272 600 print K; +#X msg 607 211 getall; +#X msg 295 137 set A k g; +#X obj 251 631 print V; +#X obj 290 569 print D; +#X msg 295 167 set A l m; +#X msg 298 196 set 2 34; +#X msg 297 227 set 3 17; +#X msg 428 105 clr A; +#X msg 432 181 get A; +#X msg 432 213 get 2; +#X msg 40 132 echodir \$1; +#X obj 40 111 tgl 15 0 empty empty empty 0 -6 32 8 -262144 -1 -1 0 +1; +#X obj 40 213 tgl 15 0 empty empty empty 0 -6 32 8 -262144 -1 -1 0 +1; +#X msg 40 234 absdir \$1; +#X text 427 85 clear value; +#X text 428 159 get value; +#X obj 309 542 print C; +#X text 381 542 command; +#X text 363 569 directory (abs or rel to current); +#X text 326 632 data value; +#X text 344 600 data key; +#X msg 41 314 pool pool1; +#X msg 42 343 pool; +#X text 86 343 set to private; +#X msg 42 405 reset; +#X text 41 384 clear all pool data; +#X msg 613 111 clrall; +#X text 604 89 clear all values in dir; +#X text 607 190 get all values in dir; +#X text 314 479 pool name can be given as argument; +#X text 603 136 clear all values and dirs; +#X msg 611 158 clrrec; +#X msg 605 258 getrec; +#X text 605 236 get all values in dir and subdirs; +#X text 670 289 bang at EOL; +#X text 673 208 bang at EOL; +#X text 670 257 depth may be given; +#X text 43 291 set pool name; +#X text 40 89 at each command; +#X text 40 73 echo current dir; +#X text 292 83 set values; +#X text 35 194 (default on); +#X text 27 178 report absolute dirs; +#X msg 43 452 help; +#X text 86 453 get some info; +#X text 670 274 default=-1 (= infinite); +#X msg 609 338 cntall; +#X text 675 336 count all values in dir; +#X msg 609 364 cntrec; +#X text 677 362 ... and subdirs; +#X text 673 376 (depth may be given); +#X msg 296 282 add 3 14; +#X text 294 261 set but don't replace; +#N canvas 0 0 510 536 dirs 0; +#X msg 109 27 mkdir fld1; +#X msg 111 122 chdir; +#X msg 110 217 updir; +#X msg 111 354 getsub -1; +#X text 110 7 make absolute dir; +#X text 109 51 make relative dir; +#X msg 110 72 mksub fld2; +#X text 109 104 change to absolute dir; +#X msg 110 165 chsub fld2; +#X text 108 146 change to relative dir; +#X text 106 198 change to upper dir; +#X text 107 250 remove absolute dir; +#X msg 108 269 rmdir fld1; +#X msg 110 308 rmsub fld2; +#X text 109 289 remove relative dir; +#X text 109 336 get subdirs; +#X text 251 380 -1 ... infinite; +#X text 167 213 depth may be given; +#X text 168 229 default=1; +#X text 209 349 depth may be given; +#X text 207 365 default=1; +#X text 108 377 count subdirs; +#X msg 111 398 cntsub -1; +#X msg 111 458 getdir; +#X text 110 438 get current dir; +#X text 176 458 always absolute; +#X obj 11 239 s \$0-pool; +#X connect 0 0 26 0; +#X connect 1 0 26 0; +#X connect 2 0 26 0; +#X connect 3 0 26 0; +#X connect 6 0 26 0; +#X connect 8 0 26 0; +#X connect 12 0 26 0; +#X connect 13 0 26 0; +#X connect 22 0 26 0; +#X connect 23 0 26 0; +#X restore 718 511 pd dirs; +#X text 715 485 directory operations; +#N canvas 0 0 469 436 file 0; +#X text 117 207 save dir and subdirs; +#X text 117 165 save data in current dir; +#X msg 117 184 svdir c:/temp/pool.dat; +#X msg 117 226 svrec c:/temp/pool.dat; +#X msg 116 272 lddir c:/temp/pool.dat; +#X msg 116 319 ldrec c:/temp/pool.dat; +#X text 117 253 load data into current dir; +#X text 115 300 load data into current dir and below; +#X text 132 340 depth (default -1) and; +#X text 134 356 mkdir flag (default 1) can be given; +#X text 117 37 save all; +#X text 117 81 load all (add to existing data); +#X msg 118 100 load c:/temp/pool.dat; +#X msg 120 54 save c:/temp/pool.dat; +#X text 22 12 file operations; +#X obj 22 188 s \$0-pool; +#X connect 2 0 15 0; +#X connect 3 0 15 0; +#X connect 4 0 15 0; +#X connect 5 0 15 0; +#X connect 12 0 15 0; +#X connect 13 0 15 0; +#X restore 719 566 pd file; +#X text 717 543 file operations; +#X text 717 600 clipboard operations; +#N canvas 0 0 535 583 clip 0; +#X text 97 56 copy value associated to key into clipboard; +#X msg 100 77 copy A; +#X msg 98 119 cut B; +#X text 96 101 cut value associated to key into clipboard; +#X msg 96 401 paste; +#X msg 98 179 copyall; +#X text 95 158 copy all values in current dir into clipboard; +#X msg 97 221 cutall; +#X text 95 201 cut all values in current dir into clipboard; +#X text 94 263 copy all values in current dir into clipboard; +#X text 94 306 cut all values in current dir into clipboard; +#X msg 97 284 copyrec; +#X text 194 285 depth may be given (default=-1); +#X text 193 326 depth may be given (default=-1); +#X msg 96 326 cutrec 1; +#X text 194 345 1..only with first level subdirs; +#X text 96 379 paste clipboard contents into current directory; +#X text 167 397 depth (default -1) and; +#X text 169 413 mkdir flag (default 1) can be given; +#X text 183 448 depth (default -1) and; +#X text 185 466 mkdir flag (default 1) can be given; +#X msg 95 453 pasteadd; +#X text 95 431 paste but don't replace; +#X msg 94 521 clrclip; +#X text 171 520 clear clipboard (free memory); +#X text 22 12 clipboard operations (this is an internal clipboard...) +; +#X obj 4 193 s \$0-pool; +#X connect 1 0 26 0; +#X connect 2 0 26 0; +#X connect 4 0 26 0; +#X connect 5 0 26 0; +#X connect 7 0 26 0; +#X connect 11 0 26 0; +#X connect 14 0 26 0; +#X connect 21 0 26 0; +#X connect 23 0 26 0; +#X restore 719 623 pd clip; +#X text 717 454 more commands:; +#X obj 349 429 r \$0-pool; +#X text 174 500 data is shared among pool objects with the same name +; +#X obj 26 10 cnv 15 850 40 empty empty pool 10 22 32 24 -260818 -1 +0; +#X text 337 32 http://www.parasitaere-kapazitaeten.net; +#X text 337 12 a hierarchical storage object \, (C)2002 Thomas Grill +; +#X connect 0 0 5 0; +#X connect 0 1 2 0; +#X connect 0 2 6 0; +#X connect 0 3 19 0; +#X connect 1 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 0 0; +#X connect 14 0 13 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 24 0 0 0; +#X connect 25 0 0 0; +#X connect 27 0 0 0; +#X connect 29 0 0 0; +#X connect 34 0 0 0; +#X connect 35 0 0 0; +#X connect 46 0 0 0; +#X connect 49 0 0 0; +#X connect 51 0 0 0; +#X connect 54 0 0 0; +#X connect 63 0 0 0; |