[PD-dev] tclpd GUI API thought
Mathieu Bouchard
matju at artengine.ca
Sun Oct 28 22:56:01 CET 2007
On Sun, 28 Oct 2007, Hans-Christoph Steiner wrote:
> The tclpd API/loader has gotten me thinking about making a pure Tcl API
> for writing GUIs. I was thinking a bit about how to handle the Tcl code
> for the separate pd and pd-gui processes. Is there a way in Tcl to get
> the contents of a procedure and stick it into a variable?
You need to redefine proc proc in a way that calls the older proc
proc and does something else with the arguments. e.g.:
rename proc oldproc
oldproc proc {name arglist body} {
...
oldproc $name $arglist $body
}
> I was thinking that it would be nice if the person writing the GUI
> object didn't have to think about the separate processes and sys_vgui.
I think it's good to not have to think about encoding and decoding values
for the other side, which is why I introduced abstraction layers such as
sys_mgui and pd_upload and proc netsend.
I think that inter-process synchronisation, doing things in the
right order and at the right moment is such, is a lot harder to do and a
lot harder to abstract. Basically, you never can fully abstract a remote
procedure call in a non-blocking way, and you don't want to use the
blocking way because this is a realtime app.
> Instead, the tclpd API would take the functions that run on pd-gui, and
> handle sending them over to pd-gui via sys_vgui. So in the API, it
> would just look like one thing.
If you just want to upload code over the gui socket, have a wrapped
sys_gui that you'd use as a block of code:
sys_gui {
proc blah {} { ... }
proc stuff {a b} { ... }
...
}
and it'll just do what it wants to do.
_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada
More information about the Pd-dev
mailing list