[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