From e1da63276dc159532c0e5258f69a5365568f598f Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 15 Dec 2005 07:43:25 +0000 Subject: 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 --- guile/README | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 guile/README (limited to 'guile/README') 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 + +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 #) + +(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)) +=> (#) + + +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 -- cgit v1.2.1