From 3a3bc5212c4956426f967d3dacc076905cac14d6 Mon Sep 17 00:00:00 2001 From: "Kjetil S. Matheussen" Date: Mon, 12 Jan 2004 13:25:12 +0000 Subject: eval message to evaluate scheme code in the global environment svn path=/trunk/externals/k_guile/; revision=1256 --- help-k_guile.pd | 26 +++++++++++++++----------- k_guile.c | 12 +++++++++++- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/help-k_guile.pd b/help-k_guile.pd index b0458ff..c190314 100644 --- a/help-k_guile.pd +++ b/help-k_guile.pd @@ -1,17 +1,17 @@ #N canvas 372 11 707 547 10; #X obj 101 135 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 93 256; +-262144 -1 -1 0 256; #X obj 101 162 k_guile add.scm; #X obj 101 195 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 220 256; +-262144 -1 -1 0 256; #X obj 201 137 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 127 256; +-262144 -1 -1 0 256; #X msg 38 134 reload; #X obj 341 157 k_guile send_receive.scm; #X msg 341 127 reload; #X obj 483 130 s in; #X obj 512 97 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 6 256; +-262144 -1 -1 0 256; #X obj 475 186 r out; #X msg 468 95 gakk; #X obj 475 215 print; @@ -21,26 +21,28 @@ #X text 27 19 k_guile - guile external for PD.; #X text 26 36 Kjetil S. Matheussen \, 2004; #X obj 130 301 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 62 256; +-262144 -1 -1 0 256; #X obj 255 300 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 82 256; +-262144 -1 -1 0 256; #X obj 71 301 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 22 256; +-262144 -1 -1 0 256; #X obj 71 388 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 95 256; +-262144 -1 -1 0 256; #X obj 146 389 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 267 256; +-262144 -1 -1 0 256; #X obj 213 390 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 428 256; +-262144 -1 -1 0 256; #X msg 17 300 reload; #X obj 75 341 k_guile inout.scm; #X obj 436 346 k_guile mozilla.scm; #X msg 436 301 start; #X text 300 496 Note \; you can not change the number of inlets and -outlets by sending "reload".; +outlets by sending reload .; #X msg 316 299 testing; #X msg 190 299 testing; #X msg 409 95 we 3 2; +#X msg 512 286 eval (newline); +#X msg 512 309 eval (display(environ)); #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 3 0 1 1; @@ -62,3 +64,5 @@ outlets by sending "reload".; #X connect 27 0 23 396; #X connect 28 0 23 284; #X connect 29 0 7 0; +#X connect 30 0 24 0; +#X connect 31 0 24 0; diff --git a/k_guile.c b/k_guile.c index 62e86af..4e01f3b 100644 --- a/k_guile.c +++ b/k_guile.c @@ -100,7 +100,7 @@ static SCM pd_backtrace_run1; static SCM pd_backtrace_run2; static SCM pd_backtrace_run3; static SCM pd_backtrace_run4; - +static SCM eval_string_func; @@ -473,6 +473,8 @@ static void k_guile_init(void){ pd_backtrace_run4=EVAL("pd-backtrace-run4"); scm_permanent_object(pd_backtrace_run4); + + eval_string_func=EVAL("eval-string"); } @@ -557,6 +559,12 @@ static void k_guile_reload(t_k_guile *x){ k_guile_load(x,x->filename); } +static void k_guile_eval(t_k_guile *x,t_symbol *s){ + scm_call_2(pd_backtrace_run1,eval_string_func,MAKE_STRING(s->s_name)); +} + +//static void k_guile_evalfile(t_k_guile *x,t_symbol *s){ +//} /***************************************************************************************************** @@ -573,6 +581,8 @@ void k_guile_setup(void){ class_addanything(k_guile_class, (t_method)k_guile_anything_first); class_addmethod(k_guile_class, (t_method)k_guile_reload, gensym("reload"), 0); + class_addmethod(k_guile_class, (t_method)k_guile_eval, gensym("eval"), A_DEFSYM, 0); + //class_addmethod(k_guile_class, (t_method)k_guile_evalfile, gensym("evalfile"), A_DEFSYM, 0); class_sethelpsymbol(k_guile_class, gensym("help-k_guile.pd")); -- cgit v1.2.1