[PD-dev] canvas get method

Jonathan Wilkes jancsika at yahoo.com
Tue May 24 18:30:50 CEST 2011


Hi list,
     Here's my first attempt at some c code to create a "get" method to 
query the properties of a canvas.  I included the entire g_canvas.c from 
0.43 (haven't started using git and diff yet) and a demo patch with some 
helper abstractions.  Some things that it does:

* [namecanvas] (and [sendcanvas]) are _actually_ obsolete
* canvas environment variables available to the user (filename, dir, 
canvas-local paths, dollarzero)
* parent attributes (like dollarzero) are gettable without having to give 
it as an argument to the abstraction
* possible to find the toplevel canvas that contains "this" 
abstraction (plus making all kinds of "canvas-abs" like the list-abs lib)
* ability to get gop status, coords values, patch screen position, 
abstraction's position on parent, and other goodies that are currently 
scattered all around external libraries with various interfaces
* abstraction can get a list of all attributes (like dollarzero) from 
all the abstraction instances that exist.  (Probably should institute 
patch 1403917 to make this rock-solid.)
* parent args are gettable!

Things seem to work alright so far, but I'm not sure how to handle 
reentrancy.  Also, I'm currently replying to queries using the attribute 
as a selector.  The only model I had-- the [cnv] get_pos-- just sends the 
data, but it seems cleaner to send to one receive-symbol and [route] 
accordingly.  (I also much prefer one "get" method to separate ones to 
access each attribute.)

-Jonathan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: canvas-get-demo.tar.gz
Type: application/gzip
Size: 20987 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20110524/4ea34cfc/attachment-0001.bin>


More information about the Pd-dev mailing list