Index: apps/plugins/pdbox/PDa/src/g_canvas.c =================================================================== --- apps/plugins/pdbox/PDa/src/g_canvas.c (revision 21272) +++ apps/plugins/pdbox/PDa/src/g_canvas.c (working copy) @@ -18,6 +18,18 @@ * changes marked with IOhannes */ +#ifdef ROCKBOX +#include "plugin.h" +#include "pdbox.h" +#include "m_pd.h" +#include "m_imp.h" +#include "s_stuff.h" +#include "g_canvas.h" +#include "g_all_guis.h" +#define strcat rb->strcat +#define snprintf rb->snprintf +int sscanf(const char *s, const char *fmt, ...); +#else /* ROCKBOX */ #include #include #include "m_pd.h" @@ -26,6 +38,7 @@ #include "g_canvas.h" #include #include "g_all_guis.h" +#endif /* ROCKBOX */ struct _canvasenvironment { @@ -83,7 +96,12 @@ if (strlen(sbuf) + strlen(gl->gl_name->s_name) + 100 <= 1024) { char tbuf[1024]; +#ifdef ROCKBOX + snprintf(tbuf, sizeof(tbuf)-1, + "{%s .x%x} ", gl->gl_name->s_name, (t_int)canvas); +#else /* ROCKBOX */ sprintf(tbuf, "{%s .x%x} ", gl->gl_name->s_name, (t_int)canvas); +#endif /* ROCKBOX */ strcat(sbuf, tbuf); } } @@ -107,7 +125,9 @@ glist_doupdatewindowlist(x, sbuf); /* next line updates the window menu state before -postcommand tries it */ strcat(sbuf, "}\npdtk_fixwindowmenu\n"); +#ifndef ROCKBOX sys_gui(sbuf); +#endif } /* add a glist the list of "root" canvases (toplevels without parents.) */ @@ -144,6 +164,9 @@ void glob_setfilename(void *dummy, t_symbol *filesym, t_symbol *dirsym) { +#ifdef ROCKBOX + (void) dummy; +#endif canvas_newfilename = filesym; canvas_newdirectory = dirsym; } @@ -286,7 +309,7 @@ if (!t->tr_ob) y = t->tr_x->gl_list; else y = t->tr_ob->ob_g.g_next; for (; y; y = y->g_next) - if (ob = pd_checkobject(&y->g_pd)) break; + if((ob = pd_checkobject(&y->g_pd))) break; if (!ob) return (0); t->tr_ob = ob; t->tr_nout = obj_noutlets(ob); @@ -357,7 +380,13 @@ t_symbol *s = &s_; int vis = 0, width = GLIST_DEFCANVASWIDTH, height = GLIST_DEFCANVASHEIGHT; int xloc = 0, yloc = GLIST_DEFCANVASYLOC; +#ifdef ROCKBOX + (void) dummy; + (void) sel; + int font = 10; +#else /* ROCKBOX */ int font = (owner ? owner->gl_font : sys_defaultfont); +#endif /* ROCKBOX */ glist_init(x); x->gl_obj.te_type = T_OBJECT; if (!owner) @@ -415,7 +444,11 @@ x->gl_loading = 1; x->gl_willvis = vis; x->gl_edit = !strncmp(x->gl_name->s_name, "Untitled", 8); +#ifdef ROCKBOX + x->gl_font = 10; +#else /* ROCKBOX */ x->gl_font = sys_nearestfontsize(font); +#endif /* ROCKBOX */ pd_pushsym(&x->gl_pd); return(x); } @@ -424,6 +457,9 @@ static void canvas_coords(t_glist *x, t_symbol *s, int argc, t_atom *argv) { +#ifdef ROCKBOX + (void) s; +#endif x->gl_x1 = atom_getfloatarg(0, argc, argv); x->gl_y1 = atom_getfloatarg(1, argc, argv); x->gl_x2 = atom_getfloatarg(2, argc, argv); @@ -449,7 +485,11 @@ if (!*sym->s_name) { char buf[40]; +#ifdef ROCKBOX + snprintf(buf, sizeof(buf)-1, "graph%d", ++gcount); +#else /* ROCKBOX */ sprintf(buf, "graph%d", ++gcount); +#endif /* ROCKBOX */ sym = gensym(buf); menu = 1; } @@ -484,8 +524,12 @@ x->gl_obj.te_ypix = py1; x->gl_pixwidth = px2 - px1; x->gl_pixheight = py2 - py1; +#ifdef ROCKBOX + x->gl_font = 10; +#else /* ROCKBOX */ x->gl_font = (canvas_getcurrent() ? canvas_getcurrent()->gl_font : sys_defaultfont); +#endif /* ROCKBOX */ x->gl_screenx1 = x->gl_screeny1 = 0; x->gl_screenx2 = 240; x->gl_screeny2 = 300; @@ -507,6 +551,9 @@ /* call glist_addglist from a Pd message */ void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv) { +#ifdef ROCKBOX + (void) s; +#endif t_symbol *sym = atom_getsymbolarg(0, argc, argv); float x1 = atom_getfloatarg(1, argc, argv); float y1 = atom_getfloatarg(2, argc, argv); @@ -584,9 +631,11 @@ strcat(namebuf, ")"); } else namebuf[0] = 0; +#ifndef ROCKBOX sys_vgui("wm title .x%x {%s%c%s - %s}\n", x, x->gl_name->s_name, (x->gl_dirty? '*' : ' '), namebuf, canvas_getdir(x)->s_name); +#endif } void canvas_dirty(t_canvas *x, t_int n) @@ -624,7 +673,9 @@ canvas_drawlines(x); /* simulate a mouse up so u_main will calculate scrollbars... ugly! */ +#ifndef ROCKBOX sys_vgui("pdtk_canvas_mouseup .x%x.c 0 0 0\n", x); +#endif } } else @@ -632,7 +683,9 @@ if (glist_isvisible(x)) { /* just clear out the whole canvas... */ +#ifndef ROCKBOX sys_vgui(".x%x.c delete all\n", x); +#endif /* alternatively, we could have erased them one by one... for (y = x->gl_list; y; y = y->g_next) gobj_vis(y, x, 0); @@ -661,7 +714,11 @@ x->e_connectbuf = binbuf_new(); x->e_deleted = binbuf_new(); x->e_glist = owner; +#ifdef ROCKBOX + snprintf(buf, sizeof(buf)-1, ".x%x", (t_int)owner); +#else /* ROCKBOX */ sprintf(buf, ".x%x", (t_int)owner); +#endif /* ROCKBOX */ x->e_guiconnect = guiconnect_new(&owner->gl_pd, gensym(buf)); return (x); } @@ -689,7 +746,7 @@ { x->gl_editor = editor_new(x); for (y = x->gl_list; y; y = y->g_next) - if (ob = pd_checkobject(&y->g_pd)) + if((ob = pd_checkobject(&y->g_pd))) rtext_new(x, ob); } } @@ -700,7 +757,7 @@ else { for (y = x->gl_list; y; y = y->g_next) - if (ob = pd_checkobject(&y->g_pd)) + if((ob = pd_checkobject(&y->g_pd))) rtext_free(glist_findrtext(x, ob)); editor_free(x->gl_editor, x); x->gl_editor = 0; @@ -717,7 +774,9 @@ the window. */ void canvas_vis(t_canvas *x, t_floatarg f) { +#ifndef ROCKBOX char buf[30]; +#endif int flag = (f != 0); if (flag) { @@ -728,19 +787,23 @@ canvas_vis(x, 0); canvas_vis(x, 1); #else +#ifndef ROCKBOX sys_vgui("raise .x%x\n", x); sys_vgui("focus .x%x.c\n", x); sys_vgui("wm deiconify .x%x\n", x); +#endif /* ROCKBOX */ #endif } else { canvas_create_editor(x, 1); +#ifndef ROCKBOX sys_vgui("pdtk_canvas_new .x%x %d %d +%d+%d %d\n", x, (int)(x->gl_screenx2 - x->gl_screenx1), (int)(x->gl_screeny2 - x->gl_screeny1), (int)(x->gl_screenx1), (int)(x->gl_screeny1), x->gl_edit); +#endif /* ROCKBOX */ canvas_reflecttitle(x); x->gl_havewindow = 1; canvas_updatewindowlist(); @@ -765,10 +828,14 @@ if (glist_isvisible(x)) canvas_map(x, 0); canvas_create_editor(x, 0); +#ifndef ROCKBOX sys_vgui("destroy .x%x\n", x); +#endif for (i = 1, x2 = x; x2; x2 = x2->gl_next, i++) ; +#ifndef ROCKBOX sys_vgui(".mbar.find delete %d\n", i); +#endif /* if we're a graph on our parent, and if the parent exists and is visible, show ourselves on parent. */ if (glist_isgraph(x) && x->gl_owner) @@ -837,7 +904,7 @@ if (canvas_whichfind == x) canvas_whichfind = 0; glist_noselect(x); - while (y = x->gl_list) + while((y = x->gl_list)) glist_delete(x, y); canvas_vis(x, 0); @@ -850,7 +917,9 @@ } canvas_resume_dsp(dspstate); glist_cleanup(x); +#ifndef ROCKBOX gfxstub_deleteforkey(x); /* probably unnecessary */ +#endif if (!x->gl_owner) canvas_takeofflist(x); } @@ -863,12 +932,16 @@ t_outconnect *oc; { linetraverser_start(&t, x); - while (oc = linetraverser_next(&t)) + while((oc = linetraverser_next(&t))) +#ifdef ROCKBOX + ; +#else /* ROCKBOX */ sys_vgui(".x%x.c create line %d %d %d %d -width %d -tags l%x\n", glist_getcanvas(x), t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, (outlet_getsymbol(t.tr_outlet) == &s_signal ? 2:1), oc); +#endif /* ROCKBOX */ } } @@ -878,13 +951,15 @@ t_outconnect *oc; linetraverser_start(&t, x); - while (oc = linetraverser_next(&t)) + while((oc = linetraverser_next(&t))) { if (t.tr_ob == text || t.tr_ob2 == text) { +#ifndef ROCKBOX sys_vgui(".x%x.c coords l%x %d %d %d %d\n", glist_getcanvas(x), oc, t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2); +#endif } } } @@ -895,14 +970,16 @@ t_linetraverser t; t_outconnect *oc; linetraverser_start(&t, x); - while (oc = linetraverser_next(&t)) + while((oc = linetraverser_next(&t))) { if (t.tr_ob == text || t.tr_ob2 == text) { if (x->gl_editor) { +#ifndef ROCKBOX sys_vgui(".x%x.c delete l%x\n", glist_getcanvas(x), oc); +#endif } obj_disconnect(t.tr_ob, t.tr_outno, t.tr_ob2, t.tr_inno); } @@ -916,15 +993,17 @@ t_linetraverser t; t_outconnect *oc; linetraverser_start(&t, x); - while (oc = linetraverser_next(&t)) + while((oc = linetraverser_next(&t))) { if ((t.tr_ob == text && t.tr_outlet == outp) || (t.tr_ob2 == text && t.tr_inlet == inp)) { if (x->gl_editor) { +#ifndef ROCKBOX sys_vgui(".x%x.c delete l%x\n", glist_getcanvas(x), oc); +#endif } obj_disconnect(t.tr_ob, t.tr_outno, t.tr_ob2, t.tr_inno); } @@ -947,6 +1026,9 @@ void canvas_restore(t_canvas *x, t_symbol *s, int argc, t_atom *argv) { /* IOhannes */ t_pd *z; +#ifdef ROCKBOX + (void) s; +#endif /* this should be unnecessary, but sometimes the canvas's name gets out of sync with the owning box's argument; this fixes that */ if (argc > 3) @@ -992,7 +1074,9 @@ static void canvas_loadbangabstractions(t_canvas *x) { t_gobj *y; +#ifndef ROCKBOX t_symbol *s = gensym("loadbang"); +#endif for (y = x->gl_list; y; y = y->g_next) if (pd_class(&y->g_pd) == canvas_class) { @@ -1021,7 +1105,9 @@ void canvas_loadbang(t_canvas *x) { +#ifndef ROCKBOX t_gobj *y; +#endif canvas_loadbangabstractions(x); canvas_loadbangsubpatches(x); } @@ -1065,6 +1151,9 @@ void canvas_logerror(t_object *y) { +#ifdef ROCKBOX + (void) y; +#endif #ifdef LATER canvas_vis(x, 1); if (!glist_isselected(x, &y->ob_g)) @@ -1095,6 +1184,13 @@ t_floatarg xpos, t_floatarg ypos, t_floatarg shift, t_floatarg ctrl, t_floatarg alt) { +#ifdef ROCKBOX + (void) xpos; + (void) ypos; + (void) shift; + (void) ctrl; + (void) alt; +#endif canvas_vis(x, 1); } @@ -1103,13 +1199,22 @@ void canvas_fattensub(t_canvas *x, int *xp1, int *yp1, int *xp2, int *yp2) { +#ifdef ROCKBOX + (void) x; + (void) xp1; + (void) yp1; +#else /* ROCKBOX */ t_gobj *y; +#endif /* ROCKBOX */ *xp2 += 50; /* fake for now */ *yp2 += 50; } static void canvas_rename_method(t_canvas *x, t_symbol *s, int ac, t_atom *av) { +#ifdef ROCKBOX + (void) s; +#endif if (ac && av->a_type == A_SYMBOL) canvas_rename(x, av->a_w.w_symbol, 0); else canvas_rename(x, gensym("Pd"), 0); @@ -1128,7 +1233,11 @@ { char tabname[255]; t_symbol *t = gensym("table"); +#ifdef ROCKBOX + snprintf(tabname, sizeof(tabname)-1, "%s%d", t->s_name, tabcount++); +#else /* ROCKBOX */ sprintf(tabname, "%s%d", t->s_name, tabcount++); +#endif /* ROCKBOX */ s = gensym(tabname); } if (f <= 1) @@ -1239,7 +1348,7 @@ /* ... and all dsp interconnections */ linetraverser_start(&t, x); - while (oc = linetraverser_next(&t)) + while((oc = linetraverser_next(&t))) if (obj_issignaloutlet(t.tr_ob, t.tr_outno)) ugen_connect(dc, t.tr_ob, t.tr_outno, t.tr_ob2, t.tr_inno); @@ -1252,7 +1361,9 @@ { t_canvas *x; if (canvas_dspstate) ugen_stop(); +#ifndef ROCKBOX else sys_gui("pdtk_pd_dsp ON\n"); +#endif ugen_start(); for (x = canvas_list; x; x = x->gl_next) @@ -1266,7 +1377,9 @@ if (canvas_dspstate) { ugen_stop(); +#ifndef ROCKBOX sys_gui("pdtk_pd_dsp OFF\n"); +#endif canvas_dspstate = 0; } } @@ -1297,6 +1410,10 @@ void glob_dsp(void *dummy, t_symbol *s, int argc, t_atom *argv) { int newstate; +#ifdef ROCKBOX + (void) dummy; + (void) s; +#endif if (argc) { newstate = atom_getintarg(0, argc, argv); @@ -1333,7 +1450,9 @@ int vis = glist_isvisible(gl); for (g = gl->gl_list; g; g = g->g_next) { +#ifndef ROCKBOX t_class *cl; +#endif if (vis && g->g_pd == scalar_class) glist_redrawitem(gl, g); else if (g->g_pd == canvas_class) @@ -1345,6 +1464,9 @@ void canvas_redrawallfortemplate(t_canvas *templatecanvas) { t_canvas *x; +#ifdef ROCKBOX + (void) templatecanvas; +#endif /* find all root canvases */ for (x = canvas_list; x; x = x->gl_next) glist_redrawall(x);