diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2005-12-15 07:43:25 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2005-12-15 07:43:25 +0000 |
commit | e1da63276dc159532c0e5258f69a5365568f598f (patch) | |
tree | 8baa7cff1f1f77cd8172d5975f8543c0675dd7eb /guile/README | |
parent | c3f5ea53917dea9c80751ee5809c7455589888be (diff) |
This commit was generated by cvs2svn to compensate for changes in r4219,
which included commits to RCS files with non-trunk default branches.
svn path=/trunk/externals/pdp/; revision=4220
Diffstat (limited to 'guile/README')
-rw-r--r-- | guile/README | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/guile/README b/guile/README new file mode 100644 index 0000000..8a90cd9 --- /dev/null +++ b/guile/README @@ -0,0 +1,73 @@ +PDP_GUILE - a scheme interpreter for pd/pdp + +Copyright (c) by Tom Schouten <pdp@zzz.kotnet.org> + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +The GNU Public Licence can be found in the file COPYING + +--- + +pdp_guile starts a scheme interpreter is started on pd's standard io. +there is a simple send/receive interface in pd to communicate with the +running scheme interpreter trough an input and output queue. pd can +send messages, including pdp packets, to guile with the [ss tag] object. + +guile can read using the (in) fuction, which returs a two element list: +the tag and the object (a float, a symbol, a list or a packet) i.e. if +you connect a [pdp_v4l] object to a [ss some-tag-symbol] object and bang +the v4l object, you can retreive the packet in guile using something +like this: + +(in) +=> (some-tag-symbol #<pdp 0 image/YCrCb/320x240>) + +(in) retreives the oldest message from the input queue. if there are no +more messages, (in) returns #f + +guile can write using the (out tag object) function, which will send the +object to a [r tag] pd reciever. i.e. if you connect a +[r some-tag-symbol] object to a [pdp_xv] object, you can display a +packet (here contained in variable p) by doing: + +(out 'some-tag-symbol p) + + +guile is connected to pdp's forth scripting language (pdp's "rpn +calculator") using the (forth stack wordlist) statement. it returns the +processed stack. i.e.: + +(define p0 (make-pdp 'image/grey/320x240)) +(define p1 (make-pdp 'image/grey/320x240)) +(forth `(,p0 ,p1) '(add)) +=> (#<pdp 2 image/grey/320x240>) + + +see pdp_guile.scm and pdp_guile.pd for an example of how pdp_guile +could be used. + +this is mainly for experimental interactive work and testing pdp's forth +scripting. there's no documentation, apart from this file, the example +and the source code. if you like to have more info, just drop me a +line. + +if you want to write externals in scheme, this is probably not for you. + +requirements: libguile 1.6.x + + +enjoy, + +tom |