aboutsummaryrefslogtreecommitdiff
path: root/pd/src/g_canvas.c
diff options
context:
space:
mode:
Diffstat (limited to 'pd/src/g_canvas.c')
-rw-r--r--pd/src/g_canvas.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c
index 4019807f..dd8e6467 100644
--- a/pd/src/g_canvas.c
+++ b/pd/src/g_canvas.c
@@ -1224,12 +1224,6 @@ int canvas_showtext(t_canvas *x)
return (!isarray);
}
-static void canvas_dodsp(t_canvas *x, int toplevel, t_signal **sp);
-static void canvas_dsp(t_canvas *x, t_signal **sp)
-{
- canvas_dodsp(x, 0, sp);
-}
-
/* get the document containing this canvas */
t_canvas *canvas_getrootfor(t_canvas *x)
{
@@ -1289,6 +1283,11 @@ static void canvas_dodsp(t_canvas *x, int toplevel, t_signal **sp)
ugen_done_graph(dc);
}
+static void canvas_dsp(t_canvas *x, t_signal **sp)
+{
+ canvas_dodsp(x, 0, sp);
+}
+
/* this routine starts DSP for all root canvases. */
static void canvas_start_dsp(void)
{
@@ -1356,6 +1355,21 @@ void glob_dsp(void *dummy, t_symbol *s, int argc, t_atom *argv)
else post("dsp state %d", canvas_dspstate);
}
+void *canvas_getblock(t_class *blockclass, t_canvas **canvasp)
+{
+ t_canvas *canvas = *canvasp;
+ t_gobj *g;
+ void *ret = 0;
+ for (g = canvas->gl_list; g; g = g->g_next)
+ {
+ if (g->g_pd == blockclass)
+ ret = g;
+ }
+ *canvasp = canvas->gl_owner;
+ return(ret);
+}
+
+/******************* redrawing data *********************/
/* redraw all "scalars" (do this if a drawing command is changed.)
LATER we'll use the "template" information to select which ones we