aboutsummaryrefslogtreecommitdiff
path: root/guile/README
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-12-15 07:43:25 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-12-15 07:43:25 +0000
commite1da63276dc159532c0e5258f69a5365568f598f (patch)
tree8baa7cff1f1f77cd8172d5975f8543c0675dd7eb /guile/README
parentc3f5ea53917dea9c80751ee5809c7455589888be (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/README73
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