diff options
Diffstat (limited to 'xmlrpc-test.py')
-rw-r--r-- | xmlrpc-test.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/xmlrpc-test.py b/xmlrpc-test.py new file mode 100644 index 0000000..92f8ced --- /dev/null +++ b/xmlrpc-test.py @@ -0,0 +1,75 @@ +# testprogramm +#* Author: Thomas Grill t.grill [at] gmx.net +# License LGPL see LICENSE.txt +# IEM - Institute of Electronic Music and Acoustics, Graz +# Inffeldgasse 10/3, 8010 Graz, Austria +# http://iem.at +#************************************************************/ +# --- import some functions --- + +import xmlrpclib +import time +import sys + +# --- connect to external --- + +s = xmlrpclib.ServerProxy("http://localhost:8000") + +# --- load patch ---- + +if len(sys.argv) >= 2: + patchname = sys.argv[1] +else: + # defaulting + patchname = 'xmlrpc-test.pd' + +print "Loading file:",patchname + +# open PD patch as file +patch=open(patchname,'r') + +# read all lines of patch +lines=patch.readlines() + +# function to concatenate two lines +def concat(l,b): + if b[0] != "#": + l[len(l)-1] = l[len(l)-1]+b + else: + return l.append(b) + +# add all lines that don't begin with # to their predecendants +# this is necessary for objects with many parameters (e.g. IEM GUI objects) +clines = [] +for l in lines: + concat(clines,l) + +# send it to the external +s.load(clines) + +# close file +patch.close() + +# --- send some data --- + +s.send("recv1",4) +s.send("recv2",[1,2,3,"df"]) + +# --- receive some data --- + +# bind to a PD symbol +s.bind("send3") + +# get the value +print "Got: ", s.query("send3") + +# unbind again (only necessary to save PD resources) +s.unbind("send3") + +# --- wait a bit --- + +time.sleep(2) + +# --- close our PD test patch --- + +s.close() |