Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11664/src
Modified Files: Tag: branch-v0-40-extended configure.in d_array.c d_soundfile.c g_all_guis.c g_all_guis.h g_bang.c g_canvas.c g_editor.c g_graph.c g_hdial.c g_hslider.c g_mycanvas.c g_numbox.c g_rtext.c g_scalar.c g_template.c g_text.c g_toggle.c g_vdial.c g_vslider.c g_vumeter.c m_atom.c m_binbuf.c m_class.c m_imp.h m_obj.c m_pd.c m_pd.h makefile.dependencies makefile.in s_entry.c s_file.c s_inter.c s_loader.c s_main.c s_print.c s_stuff.h u_main.tk x_connective.c x_midi.c x_misc.c Log Message: checked in all patches from packages/patches in order to start working from the branch
Index: m_binbuf.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_binbuf.c,v retrieving revision 1.13 retrieving revision 1.13.6.1 diff -C2 -d -r1.13 -r1.13.6.1 *** m_binbuf.c 4 Oct 2006 19:35:06 -0000 1.13 --- m_binbuf.c 4 Nov 2007 18:00:20 -0000 1.13.6.1 *************** *** 673,676 **** --- 673,680 ---- typedmess(target, stackwas->a_w.w_symbol, nargs-1, stackwas+1); break; + case A_STRING: /* MP 20070106 string type */ + if (nargs == 1) pd_string(target, stackwas->a_w.w_string); + else pd_list(target, 0, nargs, stackwas); + break; case A_FLOAT: if (nargs == 1) pd_float(target, stackwas->a_w.w_float);
Index: u_main.tk =================================================================== RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v retrieving revision 1.25 retrieving revision 1.25.6.1 diff -C2 -d -r1.25 -r1.25.6.1 *** u_main.tk 9 Oct 2006 04:36:12 -0000 1.25 --- u_main.tk 4 Nov 2007 18:00:20 -0000 1.25.6.1 *************** *** 1,13 **** #!/usr/bin/wish - - # set pd_nt (bad name) 0 for unix, 1 for microsoft, and 2 for Mac OSX. - if { $tcl_platform(platform) == "windows" } { - set pd_nt 1 - } elseif { $tcl_platform(os) == "Darwin" } { - set pd_nt 2 - } else { - set pd_nt 0 - } [...1128 lines suppressed...] if [winfo exists $name.popup] {destroy $name.popup} menu $name.popup -tearoff false + if {$pd_nt == 1} { + $name.popup configure -font menuFont + } # puts stderr [concat $devlist ] for {set x 0} {$x<[llength $devlist]} {incr x} { *************** *** 3799,3804 **** --- 3963,3972 ---- # create a popup menu proc midi_popup {name buttonname varname devlist} { + global pd_nt if [winfo exists $name.popup] {destroy $name.popup} menu $name.popup -tearoff false + if {$pd_nt == 1} { + $name.popup configure -font menuFont + } # puts stderr [concat $devlist ] for {set x 0} {$x<[llength $devlist]} {incr x} {
Index: s_stuff.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v retrieving revision 1.10 retrieving revision 1.10.6.1 diff -C2 -d -r1.10 -r1.10.6.1 *** s_stuff.h 15 Aug 2006 04:54:15 -0000 1.10 --- s_stuff.h 4 Nov 2007 18:00:20 -0000 1.10.6.1 *************** *** 53,56 **** --- 53,58 ---- /* s_loader.c */ int sys_load_lib(t_canvas *canvas, char *filename); + typedef int (*loader_t)(t_canvas *canvas, char *classname); + EXTERN void sys_register_loader(loader_t loader);
/* s_audio.c */
Index: g_rtext.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -C2 -d -r1.6 -r1.6.6.1 *** g_rtext.c 11 Aug 2006 20:09:07 -0000 1.6 --- g_rtext.c 4 Nov 2007 18:00:20 -0000 1.6.6.1 *************** *** 16,23 **** #include "t_tk.h"
! #define LMARGIN 1 ! #define RMARGIN 1 ! #define TMARGIN 2 ! #define BMARGIN 2
#define SEND_FIRST 1 --- 16,29 ---- #include "t_tk.h"
! #define LMARGIN 2 ! #define RMARGIN 2 ! /* for some reason, it draws text 1 pixel lower on Mac OS X */ ! #ifdef __APPLE__ ! #define TMARGIN 3 ! #define BMARGIN 1 ! #else ! #define TMARGIN 4 ! #define BMARGIN 0 ! #endif
#define SEND_FIRST 1 *************** *** 243,247 **** outchars, tempbuf, sys_hostfontsize(font), (glist_isselected(x->x_glist, ! &x->x_glist->gl_gobj)? "blue" : "black")); else if (action == SEND_UPDATE) { --- 249,253 ---- outchars, tempbuf, sys_hostfontsize(font), (glist_isselected(x->x_glist, ! &x->x_glist->gl_gobj)? "$select_color" : "$text_color")); else if (action == SEND_UPDATE) { *************** *** 379,383 **** t_canvas *canvas = glist_getcanvas(glist); sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, ! x->x_tag, (state? "blue" : "black")); canvas_editing = canvas; } --- 385,389 ---- t_canvas *canvas = glist_getcanvas(glist); sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, ! x->x_tag, (state? "$select_color" : "$text_color")); canvas_editing = canvas; } *************** *** 440,444 **** x->x_bufsize = newsize;
! if (n == '\n' || isprint(n)) { newsize = x->x_bufsize+1; --- 446,452 ---- x->x_bufsize = newsize;
! /* at guenter's suggestion, this gets european characters working */ ! /* if (n == '\n' || isprint(n)) */ ! if ((n == '\n' || n > 31) && n != 127) { newsize = x->x_bufsize+1;
Index: m_imp.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_imp.h,v retrieving revision 1.4 retrieving revision 1.4.10.1 diff -C2 -d -r1.4 -r1.4.10.1 *** m_imp.h 19 Aug 2005 23:28:03 -0000 1.4 --- m_imp.h 4 Nov 2007 18:00:20 -0000 1.4.10.1 *************** *** 26,29 **** --- 26,30 ---- typedef void (*t_floatmethod)(t_pd *x, t_float f); typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s); + typedef void (*t_stringmethod)(t_pd *x, t_string *st); /* MP20061226 string type */ typedef void (*t_listmethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); typedef void (*t_anymethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); *************** *** 42,45 **** --- 43,47 ---- t_floatmethod c_floatmethod; t_symbolmethod c_symbolmethod; + t_stringmethod c_stringmethod; /* MP20061226 string type */ t_listmethod c_listmethod; t_anymethod c_anymethod;
Index: m_class.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_class.c,v retrieving revision 1.7 retrieving revision 1.7.6.1 diff -C2 -d -r1.7 -r1.7.6.1 *** m_class.c 15 Aug 2006 04:54:15 -0000 1.7 --- m_class.c 4 Nov 2007 18:00:20 -0000 1.7.6.1 *************** *** 21,24 **** --- 21,25 ---- static t_symbol *class_loadsym; /* name under which an extern is invoked */ static void pd_defaultfloat(t_pd *x, t_float f); + static void pd_defaultstring(t_pd *x, t_string *st); /* MP20061226 string type */ static void pd_defaultlist(t_pd *x, t_symbol *s, int argc, t_atom *argv); t_pd pd_objectmaker; /* factory for creating "object" boxes */ *************** *** 39,42 **** --- 40,48 ---- }
+ static void pd_defaultstring(t_pd *x, t_string *st) /* MP 20061226 string type */ + { /* for now just reject it, later convert to symbol/float/list */ + pd_error(x, "%s: no method for string so far...", (*x)->c_name->s_name); + } + static void pd_defaultpointer(t_pd *x, t_gpointer *gp) { *************** *** 206,209 **** --- 212,216 ---- c->c_floatmethod = pd_defaultfloat; c->c_symbolmethod = pd_defaultsymbol; + c->c_stringmethod = pd_defaultstring; /* MP 20061226 string type */ c->c_listmethod = pd_defaultlist; c->c_anymethod = pd_defaultanything; *************** *** 289,292 **** --- 296,305 ---- class_addsymbol(c, fn); } + else if (sel == &s_string) /* MP 20070106 string type */ + { + post("class_addmethod: %p", fn); + if (argtype != A_STRING || va_arg(ap, t_atomtype)) goto phooey; + class_addstring(c, fn); + } else if (sel == &s_list) { *************** *** 347,350 **** --- 360,368 ---- }
+ void class_addstring(t_class *c, t_method fn) /* MP 20061226 string type */ + { + c->c_stringmethod = (t_stringmethod)fn; + } + void class_addlist(t_class *c, t_method fn) { *************** *** 510,513 **** --- 528,533 ----
void canvas_popabstraction(t_canvas *x); + void canvas_initbang(t_canvas *x); + extern t_pd *newest;
*************** *** 544,550 **** --- 564,572 ---- canvas_setargs(argc, argv); binbuf_evalfile(gensym(nameptr), gensym(dirbuf)); + canvas_initbang((t_canvas *)(s__X.s_thing));/* JMZ*/ if (s__X.s_thing != current) canvas_popabstraction((t_canvas *)(s__X.s_thing)); canvas_setargs(0, 0); + } else error("%s: can't load abstraction within itself\n", s->s_name); *************** *** 565,571 **** t_symbol s_y = {"y", 0, 0}; t_symbol s_ = {"", 0, 0};
static t_symbol *symlist[] = { &s_pointer, &s_float, &s_symbol, &s_bang, ! &s_list, &s_anything, &s_signal, &s__N, &s__X, &s_x, &s_y, &s_};
void mess_init(void) --- 587,594 ---- t_symbol s_y = {"y", 0, 0}; t_symbol s_ = {"", 0, 0}; + t_symbol s_string = {"string", 0, 0}; /* MP 20061223 string type */
static t_symbol *symlist[] = { &s_pointer, &s_float, &s_symbol, &s_bang, ! &s_list, &s_anything, &s_signal, &s__N, &s__X, &s_x, &s_y, &s_, &s_string}; /* MP 20061223 added s_string */
void mess_init(void) *************** *** 655,658 **** --- 678,688 ---- return; } + if (s == &s_string) /* MP 20061226 string type */ + { + /*post("pd_typedmess argc = %d\n", argc);*//* MP 20061226 debug */ + if (argc == 1) (*c->c_stringmethod)(x, argv->a_w.w_string); + else goto badarg; + return; + } for (i = c->c_nmethod, m = c->c_methods; i--; m++) if (m->me_name == s) *************** *** 699,702 **** --- 729,745 ---- dp++; break; + case A_STRING:/* MP 20070106 string type */ + /*post("pd_typedmess A_STRING");*/ + if (!argc) goto badarg; + if (argv->a_type == A_STRING) + { + /*post("argv->a_type == A_STRING, argc = %d, narg= %d", argc, narg);*/ + *ap = (t_int)(argv->a_w.w_string); + } + argc--; + argv++; + narg++; + ap++; + break; case A_SYMBOL: if (!argc) goto badarg; *************** *** 773,776 **** --- 816,823 ---- case 'f': SETFLOAT(at, va_arg(ap, double)); break; case 's': SETSYMBOL(at, va_arg(ap, t_symbol *)); break; + case 't': + SETSTRING(at, va_arg(ap, t_string *)); + /*post("pd_vmess: arg[0].a_w.w_string = %p", arg[0].a_w.w_string);*/ + break; /* MP 20061226 string type */ case 'i': SETFLOAT(at, va_arg(ap, t_int)); break; case 'p': SETPOINTER(at, va_arg(ap, t_gpointer *)); break;
Index: g_vslider.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_vslider.c,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -C2 -d -r1.6 -r1.6.6.1 *** g_vslider.c 8 Sep 2006 23:45:30 -0000 1.6 --- g_vslider.c 4 Nov 2007 18:00:20 -0000 1.6.6.1 *************** *** 60,67 **** xpos + x->x_gui.x_w, r, x->x_gui.x_fcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", --- 60,68 ---- xpos + x->x_gui.x_w, r, x->x_gui.x_fcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", *************** *** 123,128 **** t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); --- 124,129 ---- t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); *************** *** 278,282 **** iemgui_properties(&x->x_gui, srl);
! sprintf(buf, "pdtk_iemgui_dialog %%s VSLIDER \ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ -----------output-range:----------- %g bottom: %g top: %d \ --- 279,283 ---- iemgui_properties(&x->x_gui, srl);
! sprintf(buf, "pdtk_iemgui_dialog %%s |vsl| \ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ -----------output-range:----------- %g bottom: %g top: %d \ *************** *** 563,567 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); x->x_gui.x_ldx = ldx; --- 564,568 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); x->x_gui.x_ldx = ldx;
Index: g_vumeter.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_vumeter.c,v retrieving revision 1.5 retrieving revision 1.5.10.1 diff -C2 -d -r1.5 -r1.5.10.1 *** g_vumeter.c 16 Aug 2005 04:06:28 -0000 1.5 --- g_vumeter.c 4 Nov 2007 18:00:20 -0000 1.5.10.1 *************** *** 117,123 **** if(((i+2)&3) && (x->x_scale)) sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, ! x->x_gui.x_lcol, x, i); } if(x->x_scale) --- 117,124 ---- if(((i+2)&3) && (x->x_scale)) sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], ! x->x_gui.x_font, x->x_gui.x_fontsize, ! sys_fontweight, x->x_gui.x_lcol, x, i); } if(x->x_scale) *************** *** 126,131 **** yyy = k4 + k1*(k2-i); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x, i); } --- 127,133 ---- yyy = k4 + k1*(k2-i); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, ! x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x, i); } *************** *** 137,144 **** mid, ypos+10, x->x_led_size, x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) { --- 139,147 ---- mid, ypos+10, x->x_led_size, x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) { *************** *** 275,280 **** x->x_led_size); if(((i+2)&3) && (x->x_scale)) ! sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n", ! canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol); } --- 278,284 ---- x->x_led_size); if(((i+2)&3) && (x->x_scale)) ! sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n", ! canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, ! x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol); } *************** *** 282,291 **** { i=IEM_VU_STEPS+1; ! sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n", ! canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol); } ! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); --- 286,296 ---- { i=IEM_VU_STEPS+1; ! sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n", ! canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, ! x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol); } ! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); *************** *** 477,490 **** if((i+2)&3) sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, ! x->x_gui.x_lcol, x, i); } i=IEM_VU_STEPS+1; yyy = k4 + k1*(k2-i); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize, ! x->x_gui.x_lcol, x, i); } } --- 482,497 ---- if((i+2)&3) sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], ! x->x_gui.x_font, x->x_gui.x_fontsize, ! sys_fontweight, x->x_gui.x_lcol, x, i); } i=IEM_VU_STEPS+1; yyy = k4 + k1*(k2-i); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n", ! canvas, end, yyy+k3, iemgui_vu_scale_str[i], ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! sys_fontweight, x->x_gui.x_lcol, x, i); } } *************** *** 498,502 ****
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s VU-METER \ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ empty 0.0 empty 0.0 empty %d \ --- 505,509 ----
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s |vu| \ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ empty 0.0 empty 0.0 empty %d \ *************** *** 628,632 **** int bflcol[]={-66577, -1, -1}; int w=IEM_GUI_DEFAULTSIZE, h=IEM_VU_STEPS*IEM_VU_DEFAULTSIZE; ! int ldx=-1, ldy=-8, f=0, fs=8, scale=1; int ftbreak=IEM_BNG_DEFAULTBREAKFLASHTIME, fthold=IEM_BNG_DEFAULTHOLDFLASHTIME; char str[144]; --- 635,639 ---- int bflcol[]={-66577, -1, -1}; int w=IEM_GUI_DEFAULTSIZE, h=IEM_VU_STEPS*IEM_VU_DEFAULTSIZE; ! int ldx=-1, ldy=-8, f=0, fs=10, scale=1; int ftbreak=IEM_BNG_DEFAULTBREAKFLASHTIME, fthold=IEM_BNG_DEFAULTHOLDFLASHTIME; char str[144]; *************** *** 668,672 **** strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); --- 675,679 ---- strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
Index: g_toggle.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_toggle.c,v retrieving revision 1.5 retrieving revision 1.5.6.1 diff -C2 -d -r1.5 -r1.5.6.1 *** g_toggle.c 8 Sep 2006 23:45:30 -0000 1.5 --- g_toggle.c 4 Nov 2007 18:00:20 -0000 1.5.6.1 *************** *** 62,70 **** (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xx+x->x_gui.x_ldx, yy+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", --- 62,71 ---- (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xx+x->x_gui.x_ldx, yy+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", *************** *** 121,126 **** t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); --- 122,127 ---- t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); *************** *** 226,230 ****
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s TOGGLE \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ -----------non-zero-value:----------- %g value: 0.0 empty %g \ --- 227,231 ----
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s |tgl| \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ -----------non-zero-value:----------- %g value: 0.0 empty %g \ *************** *** 408,412 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } x->x_nonzero = (nonzero!=0.0)?nonzero:1.0; if(x->x_gui.x_isa.x_loadinit) --- 409,413 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } x->x_nonzero = (nonzero!=0.0)?nonzero:1.0; if(x->x_gui.x_isa.x_loadinit)
Index: makefile.dependencies =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/makefile.dependencies,v retrieving revision 1.10 retrieving revision 1.10.10.1 diff -C2 -d -r1.10 -r1.10.10.1 *** makefile.dependencies 21 Aug 2005 17:46:52 -0000 1.10 --- makefile.dependencies 4 Nov 2007 18:00:20 -0000 1.10.10.1 *************** *** 0 **** --- 1,1883 ---- + g_canvas.o: g_canvas.c /usr/include/stdlib.h /usr/include/sys/cdefs.h \ + /usr/include/_types.h /usr/include/sys/_types.h \ + /usr/include/machine/_types.h /usr/include/i386/_types.h \ + /usr/include/sys/wait.h /usr/include/sys/signal.h \ + /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ + /usr/include/i386/signal.h /usr/include/sys/resource.h \ + /usr/include/machine/endian.h /usr/include/i386/endian.h \ + /usr/include/sys/_endian.h \ + /usr/lib/gcc/i686-apple-darwin8/4.0.1/include/stdint.h \ [...1854 lines suppressed...] + /usr/include/mach/thread_switch.h /usr/include/mach/rpc.h \ + /usr/include/mach/machine/rpc.h /usr/include/mach/i386/rpc.h \ + /usr/include/mach/mach_error.h /usr/include/mach/error.h \ + /usr/include/mach/mach_time.h /usr/include/mach/clock.h \ + ../portmidi/porttime/porttime.h + d_fft_mayer.o: d_fft_mayer.c m_pd.h \ + /usr/lib/gcc/i686-apple-darwin8/4.0.1/include/stddef.h + d_fftroutine.o: d_fftroutine.c /usr/include/stdio.h /usr/include/_types.h \ + /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ + /usr/include/machine/_types.h /usr/include/i386/_types.h \ + /usr/include/math.h /usr/include/architecture/i386/math.h \ + /usr/include/stdlib.h /usr/include/sys/wait.h /usr/include/sys/signal.h \ + /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ + /usr/include/i386/signal.h /usr/include/sys/resource.h \ + /usr/include/machine/endian.h /usr/include/i386/endian.h \ + /usr/include/sys/_endian.h \ + /usr/lib/gcc/i686-apple-darwin8/4.0.1/include/stdint.h \ + /usr/include/libkern/OSByteOrder.h \ + /usr/include/libkern/i386/OSByteOrder.h /usr/include/alloca.h \ + /usr/include/machine/types.h /usr/include/i386/types.h m_pd.h
Index: s_print.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_print.c,v retrieving revision 1.3 retrieving revision 1.3.10.1 diff -C2 -d -r1.3 -r1.3.10.1 *** s_print.c 18 May 2005 04:28:51 -0000 1.3 --- s_print.c 4 Nov 2007 18:00:20 -0000 1.3.10.1 *************** *** 78,83 **** for (i = 0; i < argc; i++) { ! char buf[80]; ! atom_string(argv+i, buf, 80); poststring(buf); } --- 78,83 ---- for (i = 0; i < argc; i++) { ! char buf[MAXPDSTRING]; ! atom_string(argv+i, buf, MAXPDSTRING); poststring(buf); }
Index: d_array.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/d_array.c,v retrieving revision 1.6.2.1 retrieving revision 1.6.2.1.4.1 diff -C2 -d -r1.6.2.1 -r1.6.2.1.4.1 *** d_array.c 19 Jan 2007 04:30:57 -0000 1.6.2.1 --- d_array.c 4 Nov 2007 18:00:20 -0000 1.6.2.1.4.1 *************** *** 9,12 **** --- 9,13 ---- #include "m_pd.h"
+ #define ASTRIDE (sizeof(union word)/sizeof(t_sample))
/* ------------------------- tabwrite~ -------------------------- */ *************** *** 53,59 **** { int nxfer = endphase - phase; ! float *fp = x->x_vec + phase; if (nxfer > n) nxfer = n; ! phase += nxfer; while (nxfer--) { --- 54,60 ---- { int nxfer = endphase - phase; ! float *fp = x->x_vec + phase*ASTRIDE; if (nxfer > n) nxfer = n; ! phase += nxfer*ASTRIDE; while (nxfer--) { *************** *** 61,65 **** if (PD_BIGORSMALL(f)) f = 0; ! *fp++ = f; } if (phase >= endphase) --- 62,67 ---- if (PD_BIGORSMALL(f)) f = 0; ! *fp = f; ! fp += ASTRIDE; } if (phase >= endphase) *************** *** 177,187 ****
nxfer = endphase - phase; ! fp = x->x_vec + phase; if (nxfer > n) nxfer = n; n3 = n - nxfer; phase += nxfer; ! while (nxfer--) ! *out++ = *fp++; if (phase >= endphase) { --- 179,191 ----
nxfer = endphase - phase; ! fp = x->x_vec + phase*ASTRIDE; if (nxfer > n) nxfer = n; n3 = n - nxfer; phase += nxfer; ! while (nxfer--) { ! *out++ = *fp; ! fp += ASTRIDE; ! } if (phase >= endphase) { *************** *** 309,313 **** else if (index > maxindex) index = maxindex; ! *out++ = buf[index]; } return (w+5); --- 313,317 ---- else if (index > maxindex) index = maxindex; ! *out++ = buf[index* ASTRIDE]; } return (w+5); *************** *** 426,434 **** index = maxindex, frac = 1; else frac = findex - index; ! fp = buf + index; ! a = fp[-1]; b = fp[0]; ! c = fp[1]; ! d = fp[2]; /* if (!i && !(count++ & 1023)) post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */ --- 430,438 ---- index = maxindex, frac = 1; else frac = findex - index; ! fp = buf + index* ASTRIDE; ! a = fp[-1* ASTRIDE]; b = fp[0]; ! c = fp[1* ASTRIDE]; ! d = fp[2* ASTRIDE]; /* if (!i && !(count++ & 1023)) post("fp = %lx, shit = %lx, b = %f", fp, buf->b_shit, b); */ *************** *** 594,604 **** tf.tf_d = dphase; dphase += *in++ * conv; ! addr = tab + (tf.tf_i[HIOFFSET] & mask); tf.tf_i[HIOFFSET] = normhipart; frac = tf.tf_d - UNITBIT32; a = addr[0]; ! b = addr[1]; ! c = addr[2]; ! d = addr[3]; cminusb = c-b; *out++ = b + frac * ( --- 598,608 ---- tf.tf_d = dphase; dphase += *in++ * conv; ! addr = tab + (tf.tf_i[HIOFFSET] & mask)* ASTRIDE; tf.tf_i[HIOFFSET] = normhipart; frac = tf.tf_d - UNITBIT32; a = addr[0]; ! b = addr[1* ASTRIDE]; ! c = addr[2* ASTRIDE]; ! d = addr[3* ASTRIDE]; cminusb = c-b; *out++ = b + frac * ( *************** *** 721,725 **** if (PD_BIGORSMALL(f)) f = 0; ! *dest++ = f; } if (!i--) --- 725,730 ---- if (PD_BIGORSMALL(f)) f = 0; ! *dest = f; ! dest += ASTRIDE; } if (!i--) *************** *** 790,795 **** { int vecsize = x->x_vecsize; ! while (vecsize--) ! *out++ = *from++; vecsize = n - x->x_vecsize; while (vecsize--) --- 795,802 ---- { int vecsize = x->x_vecsize; ! while (vecsize--){ ! *out++ = *from; ! from += ASTRIDE; ! } vecsize = n - x->x_vecsize; while (vecsize--) *************** *** 861,865 **** if (n < 0) n = 0; else if (n >= npoints) n = npoints - 1; ! outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n] : 0)); } } --- 868,872 ---- if (n < 0) n = 0; else if (n >= npoints) n = npoints - 1; ! outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n*ASTRIDE] : 0)); } } *************** *** 910,916 **** outlet_float(x->x_obj.ob_outlet, 0); else if (f <= 1) ! outlet_float(x->x_obj.ob_outlet, vec[1]); else if (f >= npoints - 2) ! outlet_float(x->x_obj.ob_outlet, vec[npoints - 2]); else { --- 917,923 ---- outlet_float(x->x_obj.ob_outlet, 0); else if (f <= 1) ! outlet_float(x->x_obj.ob_outlet, vec[ 1*ASTRIDE]); else if (f >= npoints - 2) ! outlet_float(x->x_obj.ob_outlet, vec[(npoints - 2)* ASTRIDE]); else { *************** *** 919,928 **** if (n >= npoints - 2) n = npoints - 3; ! fp = vec + n; frac = f - n; ! a = fp[-1]; ! b = fp[0]; ! c = fp[1]; ! d = fp[2]; cminusb = c-b; outlet_float(x->x_obj.ob_outlet, b + frac * ( --- 926,935 ---- if (n >= npoints - 2) n = npoints - 3; ! fp = vec + n* ASTRIDE; frac = f - n; ! a = fp[-1*ASTRIDE]; ! b = fp[0*ASTRIDE]; ! c = fp[1*ASTRIDE]; ! d = fp[2*ASTRIDE]; cminusb = c-b; outlet_float(x->x_obj.ob_outlet, b + frac * ( *************** *** 982,986 **** else if (n >= vecsize) n = vecsize-1; ! vec[n] = f; garray_redraw(a); } --- 989,993 ---- else if (n >= vecsize) n = vecsize-1; ! vec[n*ASTRIDE] = f; garray_redraw(a); }
Index: g_template.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_template.c,v retrieving revision 1.18 retrieving revision 1.18.6.1 diff -C2 -d -r1.18 -r1.18.6.1 *** g_template.c 9 Oct 2006 04:36:12 -0000 1.18 --- g_template.c 4 Nov 2007 18:00:20 -0000 1.18.6.1 *************** *** 2127,2132 **** sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}", glist_getcanvas(glist), xloc, yloc, colorstring, buf); ! sys_vgui(" -font -*-courier-bold--normal--%d-*", ! sys_hostfontsize(glist_getfont(glist))); sys_vgui(" -tags drawnumber%lx\n", data); } --- 2127,2132 ---- sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}", glist_getcanvas(glist), xloc, yloc, colorstring, buf); ! sys_vgui(" -font {{%s} %d %s}", sys_font, ! sys_hostfontsize(glist_getfont(glist)), sys_fontweight); sys_vgui(" -tags drawnumber%lx\n", data); }
Index: g_hdial.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_hdial.c,v retrieving revision 1.7 retrieving revision 1.7.6.1 diff -C2 -d -r1.7 -r1.7.6.1 *** g_hdial.c 8 Sep 2006 23:45:30 -0000 1.7 --- g_hdial.c 4 Nov 2007 18:00:20 -0000 1.7.6.1 *************** *** 74,81 **** } sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xx11b+x->x_gui.x_ldx, yy11+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) --- 74,81 ---- } sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xx11b+x->x_gui.x_ldx, yy11+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) *************** *** 142,147 **** int n=x->x_number, i;
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); --- 142,147 ---- int n=x->x_number, i;
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); *************** *** 265,269 **** if (pd_class(&x->x_gui.x_obj.ob_pd) == hradio_old_class) hchange = x->x_change; ! sprintf(buf, "pdtk_iemgui_dialog %%s hradio \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ empty 0.0 empty 0.0 empty %d \ --- 265,269 ---- if (pd_class(&x->x_gui.x_obj.ob_pd) == hradio_old_class) hchange = x->x_change; ! sprintf(buf, "pdtk_iemgui_dialog %%s |hradio| \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ empty 0.0 empty 0.0 empty %d \ *************** *** 590,594 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } if(num < 1) num = 1; --- 590,594 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } if(num < 1) num = 1;
Index: m_atom.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_atom.c,v retrieving revision 1.4 retrieving revision 1.4.6.1 diff -C2 -d -r1.4 -r1.4.6.1 *** m_atom.c 11 Aug 2006 20:09:07 -0000 1.4 --- m_atom.c 4 Nov 2007 18:00:20 -0000 1.4.6.1 *************** *** 29,32 **** --- 29,40 ---- }
+ t_string *atom_getstring(t_atom *a) /* MP 20070108 */ + { + static unsigned char c = 0;/* a default string to avoid null pointers. This should be somewhere else...? */ + static t_string st = {1L, &c}; + if (a->a_type == A_STRING) return (a->a_w.w_string); + else return (&st); + } + t_symbol *atom_gensym(t_atom *a) /* this works better for graph labels */ {
Index: g_all_guis.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_all_guis.c,v retrieving revision 1.9 retrieving revision 1.9.6.1 diff -C2 -d -r1.9 -r1.9.6.1 *** g_all_guis.c 11 Aug 2006 20:09:07 -0000 1.9 --- g_all_guis.c 4 Nov 2007 18:00:20 -0000 1.9.6.1 *************** *** 439,443 **** { f = 0; ! strcpy(iemgui->x_font, "courier"); } iemgui->x_fsf.x_font_style = f; --- 439,443 ---- { f = 0; ! strcpy(iemgui->x_font, sys_font); } iemgui->x_fsf.x_font_style = f; *************** *** 447,452 **** iemgui->x_fontsize = f; if(glist_isvisible(iemgui->x_glist)) ! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold}\n", ! glist_getcanvas(iemgui->x_glist), x, iemgui->x_font, iemgui->x_fontsize); }
--- 447,453 ---- iemgui->x_fontsize = f; if(glist_isvisible(iemgui->x_glist)) ! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s}\n", ! glist_getcanvas(iemgui->x_glist), x, iemgui->x_font, ! iemgui->x_fontsize, sys_fontweight); }
*************** *** 623,627 **** { f = 0; ! strcpy(iemgui->x_font, "courier"); } iemgui->x_fsf.x_font_style = f; --- 624,628 ---- { f = 0; ! strcpy(iemgui->x_font, sys_font); } iemgui->x_fsf.x_font_style = f;
Index: makefile.in =================================================================== RCS file: /cvsroot/pure-data/pd/src/makefile.in,v retrieving revision 1.14 retrieving revision 1.14.6.1 diff -C2 -d -r1.14 -r1.14.6.1 *** makefile.in 8 Sep 2006 23:45:30 -0000 1.14 --- makefile.in 4 Nov 2007 18:00:20 -0000 1.14.6.1 *************** *** 1,2 **** --- 1,9 ---- + # On Mac OS X, this needs to be defined to enable dlopen and weak linking + # support. Its safe on other platforms since gcc only checks this env var on + # Apple's gcc. hans@at.or.at + ifeq ($(shell uname -s),Darwin) + export MACOSX_DEPLOYMENT_TARGET = 10.3 + endif + VPATH = ../obj:./ OBJ_DIR = ../obj *************** *** 39,42 **** --- 46,53 ---- SYSSRC += @SYSSRC@
+ ASIOSRC = @ASIOSRC@ + + ASIOOBJ = $(ASIOSRC:.cpp=.o) + SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \ g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c \ *************** *** 92,95 **** --- 103,109 ---- $(CC) $(CFLAGS) $(GFLAGS) $(GINCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c
+ $(ASIOOBJ): %.o : %.cpp + $(CXX) $(CFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.cpp + pd: $(PDEXEC)
*************** *** 134,137 **** --- 148,157 ---- ../bin/libPdTcl.dylib
+ # this is for Windows/MinGW (only?) + $(BIN_DIR)/pdtcl.dll: $(GOBJ) + cd $(BIN_DIR); dllwrap --export-all-symbols --output-def pdtcl.def \ + --output-lib=pdtcl.a --dllname=$(GUINAME) $(OBJ_DIR)/t_tkcmd.o $(LIB) $(GLIB) + strip --strip-unneeded $(BIN_DIR)/pdtcl.dll + externs: cd ../extra/bonk~;make @EXTERNTARGET@
Index: g_mycanvas.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v retrieving revision 1.5 retrieving revision 1.5.20.1 diff -C2 -d -r1.5 -r1.5.20.1 *** g_mycanvas.c 6 Sep 2004 20:20:34 -0000 1.5 --- g_mycanvas.c 4 Nov 2007 18:00:20 -0000 1.5.20.1 *************** *** 45,52 **** x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); }
--- 45,53 ---- x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, x); }
*************** *** 85,90 **** sys_vgui(".x%lx.c itemconfigure %lxBASE -outline #%6.6x\n", canvas, x, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_bcol); ! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); } --- 86,92 ---- sys_vgui(".x%lx.c itemconfigure %lxBASE -outline #%6.6x\n", canvas, x, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_bcol); ! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); } *************** *** 153,157 ****
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s MY_CANVAS \ ------selectable_dimensions(pix):------ %d %d size: 0.0 0.0 empty \ ------visible_rectangle(pix)(pix):------ %d width: %d height: %d \ --- 155,159 ----
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s |cnv| \ ------selectable_dimensions(pix):------ %d %d size: 0.0 0.0 empty \ ------visible_rectangle(pix)(pix):------ %d width: %d height: %d \ *************** *** 332,336 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } if (x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); --- 334,338 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } if (x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
Index: configure.in =================================================================== RCS file: /cvsroot/pure-data/pd/src/configure.in,v retrieving revision 1.21.2.1 retrieving revision 1.21.2.1.4.1 diff -C2 -d -r1.21.2.1 -r1.21.2.1.4.1 *** configure.in 28 Oct 2006 19:16:41 -0000 1.21.2.1 --- configure.in 4 Nov 2007 18:00:19 -0000 1.21.2.1.4.1 *************** *** 21,24 **** --- 21,25 ---- AC_SUBST(OSNUMBER) AC_SUBST(EXTERNTARGET) + AC_SUBST(ASIOSRC)
dnl other defaults *************** *** 42,45 **** --- 43,48 ---- AC_ARG_ENABLE(fftw, [ --enable-fftw use FFTW package], fftw=$enableval) + AC_ARG_ENABLE(fat, [ --disable-fat build fat binary on Mac OS X], + fat=$enableval, fat="yes")
dnl Checks for programs. *************** *** 81,85 **** dnl Checking for `pthread_create' function in -pthread AC_CHECK_LIB(pthread, pthread_create,PDLIB="$PDLIB -lpthread", ! echo "pthreads required" || exit 1)
dnl Check for fftw package --- 84,91 ---- dnl Checking for `pthread_create' function in -pthread AC_CHECK_LIB(pthread, pthread_create,PDLIB="$PDLIB -lpthread", ! AC_CHECK_LIB(pthreadGC2, pthread_create, PDLIB="$PDLIB -lpthreadGC2", ! AC_CHECK_LIB(pthreadGC1, pthread_create, PDLIB="$PDLIB -lpthreadGC1", ! AC_CHECK_LIB(pthreadGC, pthread_create, PDLIB="$PDLIB -lpthreadGC", ! echo "pthreads required"; exit 1))))
dnl Check for fftw package *************** *** 119,122 **** --- 125,133 ---- if test $foundit == "no"; then + AC_CHECK_HEADER(tcl8.4/tcl.h, + GUIFLAGS="$GUIFLAGS -I/usr/local/include/tcl8.4";foundit=yes,) + fi + if test $foundit == "no"; + then AC_CHECK_HEADER(tcl8.3/tcl.h, GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.3";foundit=yes,) *************** *** 130,154 **** then echo no tcl header found ! exit -1 fi
! AC_CHECK_LIB(tcl8.7, main,, ! AC_CHECK_LIB(tcl8.6, main,, AC_CHECK_LIB(tcl8.5, main,, AC_CHECK_LIB(tcl8.4, main,, AC_CHECK_LIB(tcl8.3, main,, AC_CHECK_LIB(tcl8.2, main,, ! AC_CHECK_LIB(tcl8.0, main,,echo no tcl library found || exit 1)))))))
! AC_CHECK_LIB(tk8.7, main,, ! AC_CHECK_LIB(tk8.6, main,, AC_CHECK_LIB(tk8.5, main,, AC_CHECK_LIB(tk8.4, main,, AC_CHECK_LIB(tk8.3, main,, AC_CHECK_LIB(tk8.2, main,, ! AC_CHECK_LIB(tk8.0, main,,echo no tk library found || exit 1)))))))
! if test `uname -s` = Linux; then dnl Ckecking for ALSA --- 141,168 ---- then echo no tcl header found ! echo bolding trying without... ! # exit -1 fi
! AC_CHECK_LIB(tcl85, main,, AC_CHECK_LIB(tcl8.5, main,, + AC_CHECK_LIB(tcl84, main,, AC_CHECK_LIB(tcl8.4, main,, AC_CHECK_LIB(tcl8.3, main,, AC_CHECK_LIB(tcl8.2, main,, ! AC_CHECK_LIB(tcl8.0, main,, ! echo no tcl library found; exit 1)))))))
! AC_CHECK_LIB(tk85, main,, AC_CHECK_LIB(tk8.5, main,, + AC_CHECK_LIB(tk84, main,, AC_CHECK_LIB(tk8.4, main,, AC_CHECK_LIB(tk8.3, main,, AC_CHECK_LIB(tk8.2, main,, ! AC_CHECK_LIB(tk8.0, main,, ! echo no tk library found; exit 1)))))))
! if test `uname -s` == Linux; then dnl Ckecking for ALSA *************** *** 239,243 **** fi
! if test `uname -s` = Darwin; then LDFLAGS="-Wl -framework CoreAudio \ --- 253,257 ---- fi
! if test `uname -s` == Darwin; then LDFLAGS="-Wl -framework CoreAudio \ *************** *** 250,262 **** -I../portmidi/porttime \ -DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO" if test `uname -r` = 7.9.0; then ! MORECFLAGS="-DMACOSX3 -DPA_BIG_ENDIAN -Wno-error" ! EXTERNTARGET=d_ppc ! else MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \ -arch i386 -arch ppc -Wno-error" EXTERNTARGET=d_fat LDFLAGS=$LDFLAGS" -arch i386 -arch ppc" fi SYSSRC="s_midi_pm.c s_audio_pa.c \ --- 264,281 ---- -I../portmidi/porttime \ -DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO" + dnl for Mac OS X 10.3 (i.e. < 10.4) if test `uname -r` = 7.9.0; then ! fat="no" ! fi ! if test "x$fat" == "xyes"; ! then MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \ -arch i386 -arch ppc -Wno-error" EXTERNTARGET=d_fat LDFLAGS=$LDFLAGS" -arch i386 -arch ppc" + else + MORECFLAGS="-DMACOSX3 -Wno-error" + EXTERNTARGET=d_ppc fi SYSSRC="s_midi_pm.c s_audio_pa.c \ *************** *** 317,320 **** --- 336,372 ---- fi
+ # only Windows uses ASIO, for the rest, set to blank + ASIOSRC= + + if test `uname -s` == MINGW32_NT-5.0; + then + EXT=dll + MORECFLAGS="-DUSEAPI_PORTAUDIO -DPA19 -DMSW -DPA_NO_DS -DPD_INTERNAL \ + -I../portaudio/pa_common -I../portaudio/pablio \ + -mwindows -mms-bitfields "$MORECFLAGS + PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++" + + SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \ + s_audio_mmio.c s_midi_mmio.c \ + ../portaudio/pa_common/pa_allocation.c \ + ../portaudio/pa_common/pa_converters.c \ + ../portaudio/pa_common/pa_cpuload.c \ + ../portaudio/pa_common/pa_dither.c \ + ../portaudio/pa_common/pa_front.c \ + ../portaudio/pa_common/pa_process.c \ + ../portaudio/pa_common/pa_skeleton.c \ + ../portaudio/pa_common/pa_stream.c \ + ../portaudio/pa_common/pa_trace.c \ + ../portaudio/pa_win/pa_win_util.c \ + ../portaudio/pa_win/pa_win_hostapis.c \ + ../portaudio/pa_win_wmme/pa_win_wmme.c" + ASIOSRC="../portaudio/pa_asio/iasiothiscallresolver.cpp \ + ../portaudio/pa_asio/pa_asio.cpp ../asio/asio.cpp \ + ../asio/asiodrivers.cpp ../asio/asiolist.cpp" + STRIPFLAG="--strip-unneeded" + GUINAME="pdtcl.dll" + GUIFLAGS= + fi + # support for jack, on either linux or darwin:
Index: g_all_guis.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_all_guis.h,v retrieving revision 1.5 retrieving revision 1.5.10.1 diff -C2 -d -r1.5 -r1.5.10.1 *** g_all_guis.h 16 Aug 2005 04:06:28 -0000 1.5 --- g_all_guis.h 4 Nov 2007 18:00:20 -0000 1.5.10.1 *************** *** 145,149 **** int x_ldx; int x_ldy; ! char x_font[16]; t_iem_fstyle_flags x_fsf; int x_fontsize; --- 145,149 ---- int x_ldx; int x_ldy; ! char x_font[MAXPDSTRING]; /* font names can be long! */ t_iem_fstyle_flags x_fsf; int x_fontsize;
Index: x_midi.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/x_midi.c,v retrieving revision 1.4 retrieving revision 1.4.6.1 diff -C2 -d -r1.4 -r1.4.6.1 *** x_midi.c 8 Sep 2006 23:45:31 -0000 1.4 --- x_midi.c 4 Nov 2007 18:00:20 -0000 1.4.6.1 *************** *** 161,165 **** (t_method)notein_free, sizeof(t_notein), CLASS_NOINLET, A_DEFFLOAT, 0); class_addlist(notein_class, notein_list); - class_sethelpsymbol(notein_class, gensym("midi")); notein_sym = gensym("#notein"); } --- 161,164 ---- *************** *** 235,239 **** CLASS_NOINLET, A_GIMME, 0); class_addlist(ctlin_class, ctlin_list); - class_sethelpsymbol(ctlin_class, gensym("midi")); ctlin_sym = gensym("#ctlin"); } --- 234,237 ---- *************** *** 302,306 **** CLASS_NOINLET, A_DEFFLOAT, 0); class_addlist(pgmin_class, pgmin_list); - class_sethelpsymbol(pgmin_class, gensym("midi")); pgmin_sym = gensym("#pgmin"); } --- 300,303 ---- *************** *** 367,371 **** (t_method)bendin_free, sizeof(t_bendin), CLASS_NOINLET, A_DEFFLOAT, 0); class_addlist(bendin_class, bendin_list); - class_sethelpsymbol(bendin_class, gensym("midi")); bendin_sym = gensym("#bendin"); } --- 364,367 ---- *************** *** 726,730 **** sizeof(t_noteout), 0, A_DEFFLOAT, 0); class_addfloat(noteout_class, noteout_float); - class_sethelpsymbol(noteout_class, gensym("midi")); }
--- 722,725 ---- *************** *** 766,770 **** sizeof(t_ctlout), 0, A_DEFFLOAT, A_DEFFLOAT, 0); class_addfloat(ctlout_class, ctlout_float); - class_sethelpsymbol(ctlout_class, gensym("midi")); }
--- 761,764 ---- *************** *** 806,810 **** sizeof(t_pgmout), 0, A_DEFFLOAT, 0); class_addfloat(pgmout_class, pgmout_float); - class_sethelpsymbol(pgmout_class, gensym("midi")); }
--- 800,803 ---- *************** *** 843,847 **** sizeof(t_bendout), 0, A_DEFFLOAT, 0); class_addfloat(bendout_class, bendout_float); - class_sethelpsymbol(bendout_class, gensym("midi")); }
--- 836,839 ----
Index: s_entry.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_entry.c,v retrieving revision 1.3 retrieving revision 1.3.12.1 diff -C2 -d -r1.3 -r1.3.12.1 *** s_entry.c 11 Nov 2004 04:58:21 -0000 1.3 --- s_entry.c 4 Nov 2007 18:00:20 -0000 1.3.12.1 *************** *** 4,8 **** int sys_main(int argc, char **argv);
! #ifdef MSW #include <windows.h> #include <stdio.h> --- 4,12 ---- int sys_main(int argc, char **argv);
! /* ! * gcc does not support the __try stuff, only MSVC. Also, MinGW allows you to ! * use main() instead of WinMain(). hans@at.or.at ! */ ! #ifdef _MSC_VER #include <windows.h> #include <stdio.h> *************** *** 22,31 **** }
! #else /* not MSW */ int main(int argc, char **argv) { return (sys_main(argc, argv)); } ! #endif
--- 26,35 ---- }
! #else /* not _MSC_VER */ int main(int argc, char **argv) { return (sys_main(argc, argv)); } ! #endif /* _MSC_VER */
Index: g_hslider.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_hslider.c,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -C2 -d -r1.6 -r1.6.6.1 *** g_hslider.c 8 Sep 2006 23:45:30 -0000 1.6 --- g_hslider.c 4 Nov 2007 18:00:20 -0000 1.6.6.1 *************** *** 77,85 **** ypos + x->x_gui.x_h, x->x_gui.x_fcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", --- 77,86 ---- ypos + x->x_gui.x_h, x->x_gui.x_fcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", *************** *** 137,142 **** t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); --- 138,143 ---- t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); *************** *** 286,290 ****
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s HSLIDER \ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ -----------output-range:----------- %g left: %g right: %g \ --- 287,291 ----
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s |hsl| \ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \ -----------output-range:----------- %g left: %g right: %g \ *************** *** 587,591 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); --- 588,592 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
Index: s_loader.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v retrieving revision 1.13.2.1 retrieving revision 1.13.2.1.4.1 diff -C2 -d -r1.13.2.1 -r1.13.2.1.4.1 *** s_loader.c 25 Oct 2006 19:50:49 -0000 1.13.2.1 --- s_loader.c 4 Nov 2007 18:00:20 -0000 1.13.2.1.4.1 *************** *** 199,205 **** }
- /* callback type definition */ - typedef int (*loader_t)(t_canvas *canvas, char *classname); - /* linked list of loaders */ typedef struct loader_queue { --- 199,202 ----
Index: g_text.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_text.c,v retrieving revision 1.15 retrieving revision 1.15.6.1 diff -C2 -d -r1.15 -r1.15.6.1 *** g_text.c 4 Oct 2006 19:35:06 -0000 1.15 --- g_text.c 4 Nov 2007 18:00:20 -0000 1.15.6.1 *************** *** 146,151 **** atom_getintarg(1, argc, argv), 0, b); } ! else ! { t_binbuf *b = binbuf_new(); int xpix, ypix; --- 146,154 ---- atom_getintarg(1, argc, argv), 0, b); } ! else if(!glist_isvisible(gl)){ ! /* JMZ: not a good idea to go into interactive mode in a closed canvas... */ ! post("unable to create stub object in closed canvas!"); ! return; ! } else { t_binbuf *b = binbuf_new(); int xpix, ypix; *************** *** 277,280 **** --- 280,288 ---- }
+ static void messresponder_string(t_messresponder *x, t_string *st) + { /* MP 20070107 string type */ + outlet_string(x->mr_outlet, st); + } + static void messresponder_list(t_messresponder *x, t_symbol *s, int argc, t_atom *argv) *************** *** 308,311 **** --- 316,326 ---- }
+ static void message_string(t_message *x, t_string *st) + { + t_atom at; + SETSTRING(&at, st); + binbuf_eval(x->m_text.te_binbuf, &x->m_messresponder.mr_pd, 1, &at); + } + static void message_list(t_message *x, t_symbol *s, int argc, t_atom *argv) { *************** *** 418,421 **** --- 433,441 ---- { int xpix, ypix; + /* JMZ: not a good idea to go into interactive mode in a closed canvas... */ + if(!glist_isvisible(gl)){ + post("unable to create stub message in closed canvas!"); + return; + } pd_vmess(&gl->gl_pd, gensym("editmode"), "i", 1); glist_noselect(gl); *************** *** 800,804 **** canvas_realizedollar(x->a_glist, x->a_label)->s_name, sys_hostfontsize(glist_getfont(glist)), ! "black"); } else sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x); --- 820,824 ---- canvas_realizedollar(x->a_glist, x->a_label)->s_name, sys_hostfontsize(glist_getfont(glist)), ! "$text_color"); } else sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x); *************** *** 933,937 **** int fontwidth = sys_fontwidth(font), fontheight = sys_fontheight(font); width = (x->te_width > 0 ? x->te_width : 6) * fontwidth + 2; ! height = fontheight + 1; /* borrowed from TMARGIN, etc, in g_rtext.c */ } /* if we're invisible we don't know our size so we just lie about --- 953,957 ---- int fontwidth = sys_fontwidth(font), fontheight = sys_fontheight(font); width = (x->te_width > 0 ? x->te_width : 6) * fontwidth + 2; ! height = fontheight + 2; /* borrowed from TMARGIN, etc, in g_rtext.c */ } /* if we're invisible we don't know our size so we just lie about *************** *** 981,988 **** t_text *x = (t_text *)z; t_rtext *y = glist_findrtext(glist, x); rtext_select(y, state); if (glist_isvisible(glist) && text_shouldvis(x, glist)) ! sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, ! rtext_gettag(y), (state? "blue" : "black")); }
--- 1001,1013 ---- t_text *x = (t_text *)z; t_rtext *y = glist_findrtext(glist, x); + char *outline; rtext_select(y, state); + if (pd_class(&x->te_pd) == text_class) + outline = "$dash_outline"; + else + outline = "$box_outline"; if (glist_isvisible(glist) && text_shouldvis(x, glist)) ! sys_vgui(".x%lx.c itemconfigure %sR -outline %s\n", glist, ! rtext_gettag(y), (state? "$select_color" : outline)); }
*************** *** 1163,1179 **** int n = obj_noutlets(ob), nplus = (n == 1 ? 1 : n-1), i; int width = x2 - x1; for (i = 0; i < n; i++) { int onset = x1 + (width - IOWIDTH) * i / nplus; if (firsttime) ! sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %so%d\n", ! glist_getcanvas(glist), ! onset, y2 - 1, ! onset + IOWIDTH, y2, tag, i); else sys_vgui(".x%lx.c coords %so%d %d %d %d %d\n", glist_getcanvas(glist), tag, i, ! onset, y2 - 1, onset + IOWIDTH, y2); } --- 1188,1209 ---- int n = obj_noutlets(ob), nplus = (n == 1 ? 1 : n-1), i; int width = x2 - x1; + int issignal; for (i = 0; i < n; i++) { int onset = x1 + (width - IOWIDTH) * i / nplus; if (firsttime) ! { ! issignal = obj_issignaloutlet(ob,i); ! sys_vgui(".x%lx.c create rectangle %d %d %d %d \ ! -fill %s -outline %s -tags %so%d\n", ! glist_getcanvas(glist), onset, y2 - 2, onset + IOWIDTH, y2, ! (issignal ? "$signal_nlet" : "$msg_nlet"), ! (issignal ? "$signal_cord" : "$msg_cord"), tag, i); + } else sys_vgui(".x%lx.c coords %so%d %d %d %d %d\n", glist_getcanvas(glist), tag, i, ! onset, y2 - 2, onset + IOWIDTH, y2); } *************** *** 1184,1192 **** int onset = x1 + (width - IOWIDTH) * i / nplus; if (firsttime) ! sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %si%d\n", ! glist_getcanvas(glist), ! onset, y1, ! onset + IOWIDTH, y1 + EXTRAPIX, tag, i); else sys_vgui(".x%lx.c coords %si%d %d %d %d %d\n", --- 1214,1226 ---- int onset = x1 + (width - IOWIDTH) * i / nplus; if (firsttime) ! { ! issignal = obj_issignalinlet(ob,i); ! sys_vgui(".x%lx.c create rectangle %d %d %d %d \ ! -fill %s -outline %s -tags %si%d\n", ! glist_getcanvas(glist), onset, y1, onset + IOWIDTH, y1 + EXTRAPIX, ! (issignal ? "$signal_nlet" : "$msg_nlet"), ! (issignal ? "$signal_cord" : "$msg_cord"), tag, i); + } else sys_vgui(".x%lx.c coords %si%d %d %d %d %d\n", *************** *** 1201,1205 **** { t_object *ob; ! int x1, y1, x2, y2, width, height; text_getrect(&x->te_g, glist, &x1, &y1, &x2, &y2); width = x2 - x1; --- 1235,1239 ---- { t_object *ob; ! int x1, y1, x2, y2, width, height, msg_draw_const, atom_draw_const; text_getrect(&x->te_g, glist, &x1, &y1, &x2, &y2); width = x2 - x1; *************** *** 1207,1233 **** if (x->te_type == T_OBJECT) { ! char *pattern = ((pd_class(&x->te_pd) == text_class) ? "-" : """"); if (firsttime) ! sys_vgui(".x%lx.c create line\ ! %d %d %d %d %d %d %d %d %d %d -dash %s -tags %sR\n", glist_getcanvas(glist), ! x1, y1, x2, y1, x2, y2, x1, y2, x1, y1, pattern, tag); else { ! sys_vgui(".x%lx.c coords %sR\ ! %d %d %d %d %d %d %d %d %d %d\n", glist_getcanvas(glist), tag, x1, y1, x2, y1, x2, y2, x1, y2, x1, y1); ! sys_vgui(".x%lx.c itemconfigure %sR -dash %s\n", ! glist_getcanvas(glist), tag, pattern); } } else if (x->te_type == T_MESSAGE) { if (firsttime) ! sys_vgui(".x%lx.c create line\ ! %d %d %d %d %d %d %d %d %d %d %d %d %d %d -tags %sR\n", glist_getcanvas(glist), ! x1, y1, x2+4, y1, x2, y1+4, x2, y2-4, x2+4, y2, x1, y2, x1, y1, tag); --- 1241,1281 ---- if (x->te_type == T_OBJECT) { ! char *pattern; char *outline; ! if (pd_class(&x->te_pd) == text_class) ! { ! pattern = "-"; ! outline = "$dash_outline"; ! } ! else ! { ! pattern = """"; ! outline = "$box_outline"; ! } if (firsttime) ! sys_vgui(".x%lx.c create polygon %d %d %d %d %d %d %d %d %d %d \ ! -dash %s -outline %s -fill $obj_box_fill -tags %sR\n", glist_getcanvas(glist), ! x1, y1, x2, y1, x2, y2, x1, y2, x1, y1, ! pattern, outline, tag); else { ! sys_vgui(".x%lx.c coords %sR %d %d %d %d %d %d %d %d %d %d\n", glist_getcanvas(glist), tag, x1, y1, x2, y1, x2, y2, x1, y2, x1, y1); ! sys_vgui(".x%lx.c itemconfigure %sR -dash %s -outline %s\n", ! glist_getcanvas(glist), tag, pattern, outline); } } else if (x->te_type == T_MESSAGE) { + msg_draw_const = ((y2-y1)/4); + if (msg_draw_const > 10) msg_draw_const = 10; /* looks bad if too big */ if (firsttime) ! sys_vgui(".x%lx.c create polygon \ ! %d %d %d %d %d %d %d %d %d %d %d %d %d %d \ ! -outline $box_outline -fill $msg_box_fill -tags %sR\n", glist_getcanvas(glist), ! x1, y1, x2+msg_draw_const, y1, x2, y1+msg_draw_const, ! x2, y2-msg_draw_const, x2+msg_draw_const, y2, x1, y2, x1, y1, tag); *************** *** 1236,1249 **** %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", glist_getcanvas(glist), tag, ! x1, y1, x2+4, y1, x2, y1+4, x2, y2-4, x2+4, y2, ! x1, y2, x1, y1); } else if (x->te_type == T_ATOM) { if (firsttime) ! sys_vgui(".x%lx.c create line\ ! %d %d %d %d %d %d %d %d %d %d %d %d -tags %sR\n", glist_getcanvas(glist), ! x1, y1, x2-4, y1, x2, y1+4, x2, y2, x1, y2, x1, y1, tag); else --- 1284,1299 ---- %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", glist_getcanvas(glist), tag, ! x1, y1, x2+msg_draw_const, y1, x2, y1+msg_draw_const, ! x2, y2-msg_draw_const, x2+msg_draw_const, y2, x1, y2, x1, y1); } else if (x->te_type == T_ATOM) { + atom_draw_const = ((y2-y1)/3); if (firsttime) ! sys_vgui(".x%lx.c create polygon %d %d %d %d %d %d %d %d %d %d %d %d \ ! -outline $box_outline -fill $atom_box_fill -tags %sR\n", glist_getcanvas(glist), ! x1, y1, x2-atom_draw_const, y1, x2, y1+atom_draw_const, ! x2, y2, x1, y2, x1, y1, tag); else *************** *** 1251,1255 **** %d %d %d %d %d %d %d %d %d %d %d %d\n", glist_getcanvas(glist), tag, ! x1, y1, x2-4, y1, x2, y1+4, x2, y2, x1, y2, x1, y1); } /* draw inlets/outlets */ --- 1301,1306 ---- %d %d %d %d %d %d %d %d %d %d %d %d\n", glist_getcanvas(glist), tag, ! x1, y1, x2-atom_draw_const, y1, x2, y1+atom_draw_const, ! x2, y2, x1, y2, x1, y1); } /* draw inlets/outlets */ *************** *** 1334,1337 **** --- 1385,1389 ---- class_addfloat(message_class, message_float); class_addsymbol(message_class, message_symbol); + class_addstring(message_class, message_string); class_addlist(message_class, message_list); class_addanything(message_class, message_list);
Index: s_main.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_main.c,v retrieving revision 1.28 retrieving revision 1.28.6.1 diff -C2 -d -r1.28 -r1.28.6.1 *** s_main.c 4 Oct 2006 19:35:06 -0000 1.28 --- s_main.c 4 Nov 2007 18:00:20 -0000 1.28.6.1 *************** *** 48,52 **** t_symbol *sys_libdir; static t_symbol *sys_guidir; - t_namelist *sys_externlist; static t_namelist *sys_openlist; static t_namelist *sys_messagelist; --- 48,51 ---- *************** *** 59,63 **** int sys_midioutdevlist[MAXMIDIOUTDEV] = {1};
! char sys_font[100] = "courier"; /* tb: font name */ static int sys_main_srate; static int sys_main_advance; --- 58,67 ---- int sys_midioutdevlist[MAXMIDIOUTDEV] = {1};
! #ifdef __APPLE__ ! char sys_font[] = "Monaco"; /* tb: font name */ ! #else ! char sys_font[] = "Bitstream Vera Sans Mono"; /* tb: font name */ ! #endif ! char sys_fontweight[] = "normal"; /* currently only used for iemguis */ static int sys_main_srate; static int sys_main_advance; *************** *** 107,112 ****
static t_fontinfo sys_fontlist[] = { ! {8, 6, 10, 0, 0, 0}, {10, 7, 13, 0, 0, 0}, {12, 9, 16, 0, 0, 0}, ! {16, 10, 20, 0, 0, 0}, {24, 15, 25, 0, 0, 0}, {36, 25, 45, 0, 0, 0}}; #define NFONT (sizeof(sys_fontlist)/sizeof(*sys_fontlist))
--- 111,116 ----
static t_fontinfo sys_fontlist[] = { ! {8, 5, 11, 8, 5, 11}, {10, 6, 13, 10, 6, 13}, {12, 7, 16, 12, 7, 16}, ! {16, 10, 19, 16, 10, 19}, {24, 14, 29, 24, 14, 29}, {36, 23, 44, 36, 23, 44}}; #define NFONT (sizeof(sys_fontlist)/sizeof(*sys_fontlist))
*************** *** 159,167 ****
int sys_defaultfont; - #ifdef MSW - #define DEFAULTFONT 12 - #else #define DEFAULTFONT 10 - #endif
static void openit(const char *dirname, const char *filename) --- 163,167 ---- *************** *** 207,215 **** best = j; } - /* best is now the host font index for the desired font index i. */ - sys_fontlist[i].fi_hostfontsize = - atom_getintarg(3 * best + 2, argc, argv); - sys_fontlist[i].fi_width = atom_getintarg(3 * best + 3, argc, argv); - sys_fontlist[i].fi_height = atom_getintarg(3 * best + 4, argc, argv); } #if 0 --- 207,210 ---- *************** *** 383,388 **** "-open <file> -- open file(s) on startup\n", "-lib <file> -- load object library(s)\n", ! "-font <n> -- specify default font size in points\n", ! "-typeface <name> -- specify default font (default: courier)\n", "-verbose -- extra printout on startup and when searching for files\n", "-version -- don't run Pd; just print out which version it is \n", --- 378,384 ---- "-open <file> -- open file(s) on startup\n", "-lib <file> -- load object library(s)\n", ! "-font-size <n> -- specify default font size in points\n", ! "-font-face <name> -- specify default font (default: Bitstream Vera Sans Mono)\n", ! "-font-weight <name>-- specify default font weight (normal or bold)\n", "-verbose -- extra printout on startup and when searching for files\n", "-version -- don't run Pd; just print out which version it is \n", *************** *** 738,742 **** argc -= 2; argv += 2; } ! else if (!strcmp(*argv, "-font") && argc > 1) { sys_defaultfont = sys_nearestfontsize(atoi(argv[1])); --- 734,738 ---- argc -= 2; argv += 2; } ! else if ((!strcmp(*argv, "-font-size") || !strcmp(*argv, "-font")) && argc > 1) { sys_defaultfont = sys_nearestfontsize(atoi(argv[1])); *************** *** 744,749 **** argv += 2; } ! /* tb: font name { */ ! else if (!strcmp(*argv, "-typeface") && argc > 1) { strncpy(sys_font,*(argv+1),sizeof(sys_font)-1); --- 740,744 ---- argv += 2; } ! else if ((!strcmp(*argv, "-font-face") || !strcmp(*argv, "-typeface")) && argc > 1) { strncpy(sys_font,*(argv+1),sizeof(sys_font)-1); *************** *** 752,756 **** argv += 2; } ! /* } tb */ else if (!strcmp(*argv, "-verbose")) { --- 747,756 ---- argv += 2; } ! else if (!strcmp(*argv, "-font-weight") && argc > 1) ! { ! strcpy(sys_fontweight,*(argv+1)); ! argc -= 2; ! argv += 2; ! } else if (!strcmp(*argv, "-verbose")) {
Index: d_soundfile.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/d_soundfile.c,v retrieving revision 1.12 retrieving revision 1.12.6.1 diff -C2 -d -r1.12 -r1.12.6.1 *** d_soundfile.c 9 Oct 2006 04:36:12 -0000 1.12 --- d_soundfile.c 4 Nov 2007 18:00:20 -0000 1.12.6.1 *************** *** 28,31 **** --- 28,33 ---- #define MAXSFCHANS 64
+ #define ASTRIDE (sizeof(union word)/sizeof(t_sample)) + #ifdef _LARGEFILE64_SOURCE # define open open64 *************** *** 436,447 **** if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; ! j < nitems; j++, sp2 += bytesperframe, fp++) *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)); } else { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; ! j < nitems; j++, sp2 += bytesperframe, fp++) *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16)); } --- 438,449 ---- if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)); } else { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16)); } *************** *** 451,456 **** if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; ! j < nitems; j++, sp2 += bytesperframe, fp++) *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16) | (sp2[2] << 8)); --- 453,458 ---- if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16) | (sp2[2] << 8)); *************** *** 458,463 **** else { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; ! j < nitems; j++, sp2 += bytesperframe, fp++) *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16) | (sp2[0] << 8)); --- 460,465 ---- else { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16) | (sp2[0] << 8)); *************** *** 468,473 **** if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; ! j < nitems; j++, sp2 += bytesperframe, fp++) *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16) | (sp2[2] << 8) | sp2[3]); --- 470,475 ---- if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16) | (sp2[2] << 8) | sp2[3]); *************** *** 475,480 **** else { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread; ! j < nitems; j++, sp2 += bytesperframe, fp++) *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16) | (sp2[1] << 8) | sp2[0]); --- 477,482 ---- else { ! for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16) | (sp2[1] << 8) | sp2[0]); *************** *** 484,489 **** /* zero out other outputs */ for (i = sfchannels; i < nvecs; i++) ! for (j = nitems, fp = vecs[i]; j--; ) ! *fp++ = 0;
} --- 486,491 ---- /* zero out other outputs */ for (i = sfchannels; i < nvecs; i++) ! for (j = nitems, fp = vecs[i*ASTRIDE]; j--; ) ! *fp = 0,fp += ASTRIDE;
} *************** *** 839,844 **** if (bigendian) { ! for (j = 0, sp2 = sp, fp = vecs[i] + onset; ! j < nitems; j++, sp2 += bytesperframe, fp++) { int xx = 32768. + (*fp * ff); --- 841,846 ---- if (bigendian) { ! for (j = 0, sp2 = sp, fp = vecs[i] + onset*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) { int xx = 32768. + (*fp * ff); *************** *** 854,859 **** else { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset; ! j < nitems; j++, sp2 += bytesperframe, fp++) { int xx = 32768. + (*fp * ff); --- 856,861 ---- else { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) { int xx = 32768. + (*fp * ff); *************** *** 873,878 **** if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset; ! j < nitems; j++, sp2 += bytesperframe, fp++) { int xx = 8388608. + (*fp * ff); --- 875,880 ---- if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) { int xx = 8388608. + (*fp * ff); *************** *** 889,894 **** else { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset; ! j < nitems; j++, sp2 += bytesperframe, fp++) { int xx = 8388608. + (*fp * ff); --- 891,896 ---- else { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) { int xx = 8388608. + (*fp * ff); *************** *** 908,913 **** if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset; ! j < nitems; j++, sp2 += bytesperframe, fp++) { float f2 = *fp * normalfactor; --- 910,915 ---- if (bigendian) { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) { float f2 = *fp * normalfactor; *************** *** 919,924 **** else { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset; ! j < nitems; j++, sp2 += bytesperframe, fp++) { float f2 = *fp * normalfactor; --- 921,926 ---- else { ! for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE; ! j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE) { float f2 = *fp * normalfactor;
Index: m_obj.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_obj.c,v retrieving revision 1.4 retrieving revision 1.4.10.1 diff -C2 -d -r1.4 -r1.4.10.1 *** m_obj.c 18 May 2005 04:28:51 -0000 1.4 --- m_obj.c 4 Nov 2007 18:00:20 -0000 1.4.10.1 *************** *** 16,19 **** --- 16,20 ---- t_float *iu_floatslot; t_symbol **iu_symslot; + t_string **iu_stringslot; /* MP 20061226 string type */ t_sample iu_floatsignalvalue; }; *************** *** 33,39 **** #define i_floatslot i_un.iu_floatslot #define i_symslot i_un.iu_symslot
static t_class *inlet_class, *pointerinlet_class, *floatinlet_class, ! *symbolinlet_class;
#define ISINLET(pd) ((*(pd) == inlet_class) || \ --- 34,41 ---- #define i_floatslot i_un.iu_floatslot #define i_symslot i_un.iu_symslot + #define i_stringslot i_un.iu_stringslot /* MP 20061226 string type */
static t_class *inlet_class, *pointerinlet_class, *floatinlet_class, ! *symbolinlet_class, *stringinlet_class; /* MP 20061226 added stringinlet_class */
#define ISINLET(pd) ((*(pd) == inlet_class) || \ *************** *** 112,115 **** --- 114,137 ---- }
+ static void inlet_string(t_inlet *x, t_string *st) /* MP20061226 string type */ + { + /*post("inlet_string (%p): st %p", &inlet_string, st);*/ + if (x->i_symfrom == &s_string) + { + /*post("inlet_string calling pd_vmess");*/ + pd_vmess(x->i_dest, x->i_symto, "t", st); + } + else if (!x->i_symfrom) + { + /*post("inlet_string calling pd_string");*/ + pd_string(x->i_dest, st); + } + else + { + /*post("inlet_string calling inlet_wrong");*/ + inlet_wrong(x, &s_string); + } + } + static void inlet_list(t_inlet *x, t_symbol *s, int argc, t_atom *argv) { *************** *** 193,196 **** --- 215,235 ---- }
+ t_inlet *stringinlet_new(t_object *owner, t_string **stp) /* MP 20061226 string type */ + { + t_inlet *x = (t_inlet *)pd_new(stringinlet_class), *y, *y2; + x->i_owner = owner; + x->i_dest = 0; + x->i_symfrom = &s_string; + x->i_stringslot = stp; + x->i_next = 0; + if (y = owner->ob_inlet) + { + while (y2 = y->i_next) y = y2; + y->i_next = x; + } + else owner->ob_inlet = x; + return (x); + } + static void symbolinlet_symbol(t_inlet *x, t_symbol *s) { *************** *** 245,248 **** --- 284,288 ---- class_addfloat(inlet_class, inlet_float); class_addsymbol(inlet_class, inlet_symbol); + class_addstring(inlet_class, inlet_string); /* MP 20061226 string type */ class_addlist(inlet_class, inlet_list); class_addanything(inlet_class, inlet_anything); *************** *** 367,370 **** --- 407,422 ---- }
+ void outlet_string(t_outlet *x, t_string *st) /* MP 20061226 string type */ + { + /*post("outlet_string %p %lu", st, st->s_length);*/ + t_outconnect *oc; + if(++stackcount >= STACKITER) + outlet_stackerror(x); + else + for (oc = x->o_connections; oc; oc = oc->oc_next) + pd_string(oc->oc_to, st); + --stackcount; + } + void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv) {
Index: g_canvas.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v retrieving revision 1.18 retrieving revision 1.18.6.1 diff -C2 -d -r1.18 -r1.18.6.1 *** g_canvas.c 9 Oct 2006 04:36:12 -0000 1.18 --- g_canvas.c 4 Nov 2007 18:00:20 -0000 1.18.6.1 *************** *** 899,909 **** t_linetraverser t; t_outconnect *oc; ! { linetraverser_start(&t, x); while (oc = linetraverser_next(&t)) ! sys_vgui(".x%lx.c create line %d %d %d %d -width %d -tags l%lx\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); } --- 899,911 ---- t_linetraverser t; t_outconnect *oc; ! int issignal; ! linetraverser_start(&t, x); while (oc = linetraverser_next(&t)) ! { ! issignal = (outlet_getsymbol(t.tr_outlet) == &s_signal ? 1 : 0); ! sys_vgui(".x%lx.c create line %d %d %d %d -width %d -fill %s -tags l%lx\n", ! glist_getcanvas(x), t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, ! (issignal ? 2:1), (issignal ? "$signal_cord" : "$msg_cord"), oc); } *************** *** 1043,1046 **** --- 1045,1094 ---- canvas_loadbangsubpatches(x); } + /* JMZ: + * initbang is emitted after the canvas is done, but before the parent canvas is done + * therefore, initbangs cannot reach to the outlets + */ + void canvas_initbang(t_canvas *x) + { + t_gobj *y; + t_symbol *s = gensym("initbang"); + /* run "initbang" for all subpatches, but NOT for the child abstractions */ + for (y = x->gl_list; y; y = y->g_next) + if (pd_class(&y->g_pd) == canvas_class) + { + if (!canvas_isabstraction((t_canvas *)y)) + canvas_initbang((t_canvas *)y); + } + + /* call the initbang()-method for objects that have one */ + for (y = x->gl_list; y; y = y->g_next) + { + if ((pd_class(&y->g_pd) != canvas_class) && zgetfn(&y->g_pd, s)) + { + pd_vmess(&y->g_pd, s, ""); + } + } + } + /* JMZ: + * closebang is emitted before the canvas is destroyed + * and BEFORE subpatches/abstractions in this canvas are destroyed + */ + void canvas_closebang(t_canvas *x) + { + t_gobj *y; + t_symbol *s = gensym("closebang"); + + /* call the closebang()-method for objects that have one + * but NOT for subpatches/abstractions: these are called separately + * from g_graph:glist_delete() + */ + for (y = x->gl_list; y; y = y->g_next) + { + if ((pd_class(&y->g_pd) != canvas_class) && zgetfn(&y->g_pd, s)) + { + pd_vmess(&y->g_pd, s, ""); + } + } + }
/* When you ask a canvas its size the result is 2 pixels more than what
Index: x_misc.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/x_misc.c,v retrieving revision 1.3 retrieving revision 1.3.6.1 diff -C2 -d -r1.3 -r1.3.6.1 *** x_misc.c 31 Dec 2005 20:55:25 -0000 1.3 --- x_misc.c 4 Nov 2007 18:00:20 -0000 1.3.6.1 *************** *** 112,115 **** --- 112,175 ---- }
+ + /* -------------------------- JMZ: initbang ------------------------------ */ + static t_class *initbang_class; + + typedef struct _initbang + { + t_object x_obj; + } t_initbang; + + static void *initbang_new(void) + { + t_initbang *x = (t_initbang *)pd_new(initbang_class); + outlet_new(&x->x_obj, &s_bang); + return (x); + } + + static void initbang_initbang(t_initbang *x) + { + if (!sys_noloadbang) /* JMZ: hmm, not sure whether we should respect sys_noloadbang here... */ + outlet_bang(x->x_obj.ob_outlet); + } + + static void initbang_setup(void) + { + initbang_class = class_new(gensym("initbang"), (t_newmethod)initbang_new, 0, + sizeof(t_initbang), CLASS_NOINLET, 0); + class_addmethod(initbang_class, (t_method)initbang_initbang, + gensym("initbang"), 0); + } + + + /* -------------------------- JMZ: closebang ------------------------------ */ + static t_class *closebang_class; + + typedef struct _closebang + { + t_object x_obj; + } t_closebang; + + static void *closebang_new(void) + { + t_closebang *x = (t_closebang *)pd_new(closebang_class); + outlet_new(&x->x_obj, &s_bang); + return (x); + } + static void closebang_closebang(t_closebang *x) + { + if (!sys_noloadbang) /* JMZ: hmm, not sure whether we should respect sys_noloadbang here... */ + outlet_bang(x->x_obj.ob_outlet); + } + + static void closebang_setup(void) + { + closebang_class = class_new(gensym("closebang"), (t_newmethod)closebang_new, 0, + sizeof(t_closebang), CLASS_NOINLET, 0); + class_addmethod(closebang_class, (t_method)closebang_closebang, + gensym("closebang"), 0); + } + + /* ------------- namecanvas (delete this later) --------------------- */ static t_class *namecanvas_class; *************** *** 315,318 **** --- 375,380 ---- random_setup(); loadbang_setup(); + initbang_setup(); + closebang_setup(); namecanvas_setup(); serial_setup();
Index: g_scalar.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_scalar.c,v retrieving revision 1.8 retrieving revision 1.8.10.1 diff -C2 -d -r1.8 -r1.8.10.1 *** g_scalar.c 21 Aug 2005 17:46:52 -0000 1.8 --- g_scalar.c 4 Nov 2007 18:00:20 -0000 1.8.10.1 *************** *** 216,220 **** x1--; x2++; y1--; y2++; sys_vgui(".x%lx.c create line %d %d %d %d %d %d %d %d %d %d \ ! -width 0 -fill blue -tags select%lx\n", glist_getcanvas(owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, x); --- 216,220 ---- x1--; x2++; y1--; y2++; sys_vgui(".x%lx.c create line %d %d %d %d %d %d %d %d %d %d \ ! -width 0 -fill $select_color -tags select%lx\n", glist_getcanvas(owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, x);
Index: s_file.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_file.c,v retrieving revision 1.9 retrieving revision 1.9.6.1 diff -C2 -d -r1.9 -r1.9.6.1 *** s_file.c 31 Dec 2005 20:55:25 -0000 1.9 --- s_file.c 4 Nov 2007 18:00:20 -0000 1.9.6.1 *************** *** 43,50 **** char filenamebuf[MAXPDSTRING], *homedir = getenv("HOME"); int fd, length;
! if (!homedir) return; - snprintf(filenamebuf, MAXPDSTRING, "%s/.pdsettings", homedir); filenamebuf[MAXPDSTRING-1] = 0; if ((fd = open(filenamebuf, 0)) < 0) --- 43,62 ---- char filenamebuf[MAXPDSTRING], *homedir = getenv("HOME"); int fd, length; + char user_prefs_file[MAXPDSTRING]; // user prefs file + char default_prefs_file[MAXPDSTRING]; // default prefs embedded in the package + struct stat statbuf;
! ! snprintf(default_prefs_file, MAXPDSTRING, "%s/default.pdsettings", ! sys_libdir->s_name); ! // fprintf(stderr,"default_prefs %s\n",default_prefs_file); ! if (homedir) ! snprintf(user_prefs_file, MAXPDSTRING, "%s/.pdsettings", homedir); ! if (stat(user_prefs_file, &statbuf) == 0) ! strncpy(filenamebuf, user_prefs_file, MAXPDSTRING); ! else if (stat(default_prefs_file, &statbuf) == 0) ! strncpy(filenamebuf, default_prefs_file, MAXPDSTRING); ! else return; filenamebuf[MAXPDSTRING-1] = 0; if ((fd = open(filenamebuf, 0)) < 0) *************** *** 194,198 **** return; } ! err = RegSetValueEx(hkey, key, 0, REG_SZ, value, strlen(value)+1); if (err != ERROR_SUCCESS) post("unable to set registry entry: %s\n", key); --- 206,210 ---- return; } ! err = RegSetValueEx(hkey, key, 0, REG_EXPAND_SZ, value, strlen(value)+1); if (err != ERROR_SUCCESS) post("unable to set registry entry: %s\n", key); *************** *** 216,220 **** --- 228,242 ---- char cmdbuf[256]; int nread = 0, nleft = size; + char embedded_prefs[MAXPDSTRING]; + char user_prefs[MAXPDSTRING]; + char *homedir = getenv("HOME"); + struct stat statbuf; + /* the 'defaults' command expects the filename without .plist at the end */ + snprintf(embedded_prefs, MAXPDSTRING, "%s/../org.puredata.pd", sys_libdir->s_name); + snprintf(user_prefs, MAXPDSTRING, "%s/Library/Preferences/org.puredata.pd.plist", homedir); + if (stat(user_prefs, &statbuf) == 0) snprintf(cmdbuf, 256, "defaults read org.puredata.pd %s 2> /dev/null\n", key); + else + snprintf(cmdbuf, 256, "defaults read %s %s 2> /dev/null\n", embedded_prefs, key); FILE *fp = popen(cmdbuf, "r"); while (nread < size)
Index: g_vdial.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_vdial.c,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -C2 -d -r1.6 -r1.6.6.1 *** g_vdial.c 8 Sep 2006 23:45:30 -0000 1.6 --- g_vdial.c 4 Nov 2007 18:00:20 -0000 1.6.6.1 *************** *** 76,83 **** } sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xx11+x->x_gui.x_ldx, yy11b+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) --- 76,83 ---- } sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xx11+x->x_gui.x_ldx, yy11b+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) *************** *** 142,147 **** int n=x->x_number, i;
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); --- 142,147 ---- int n=x->x_number, i;
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); *************** *** 266,270 **** if(pd_class(&x->x_gui.x_obj.ob_pd) == vradio_old_class) hchange = x->x_change; ! sprintf(buf, "pdtk_iemgui_dialog %%s vradio \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ empty 0.0 empty 0.0 empty %d \ --- 266,270 ---- if(pd_class(&x->x_gui.x_obj.ob_pd) == vradio_old_class) hchange = x->x_change; ! sprintf(buf, "pdtk_iemgui_dialog %%s |vradio| \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ empty 0.0 empty 0.0 empty %d \ *************** *** 591,595 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } if(num < 1) num = 1; --- 591,595 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } if(num < 1) num = 1;
Index: s_inter.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v retrieving revision 1.18.2.1 retrieving revision 1.18.2.1.2.1 diff -C2 -d -r1.18.2.1 -r1.18.2.1.2.1 *** s_inter.c 18 Jul 2007 00:20:12 -0000 1.18.2.1 --- s_inter.c 4 Nov 2007 18:00:20 -0000 1.18.2.1.2.1 *************** *** 24,28 **** #include <bstring.h> #endif ! #ifdef MSW #include <io.h> #include <fcntl.h> --- 24,28 ---- #include <bstring.h> #endif ! #ifdef _WIN32 #include <io.h> #include <fcntl.h> *************** *** 30,37 **** --- 30,40 ---- #include <winsock.h> #include <windows.h> + # ifdef _MSC_VER typedef int pid_t; + # endif typedef int socklen_t; #define EADDRINUSE WSAEADDRINUSE #endif + #include <stdarg.h> #include <signal.h> *************** *** 88,92 **** extern char *pd_version; extern int sys_guisetportnumber; - extern char sys_font[]; /* tb: typeface */
static int sys_nfdpoll; --- 91,94 ---- *************** *** 845,849 **** #define FIRSTPORTNUM 5400
! static int defaultfontshit[] = { 8, 5, 9, 10, 6, 10, 12, 7, 13, 14, 9, 17, 16, 10, 19, 24, 15, 28, 24, 15, 28}; --- 847,852 ---- #define FIRSTPORTNUM 5400
! #define MAXFONTS 21 ! static int defaultfontshit[MAXFONTS] = { 8, 5, 9, 10, 6, 10, 12, 7, 13, 14, 9, 17, 16, 10, 19, 24, 15, 28, 24, 15, 28}; *************** *** 1249,1254 **** sys_get_audio_apis(buf); sys_get_midi_apis(buf2); ! sys_vgui("pdtk_pd_startup {%s} %s %s {%s}\n", pd_version, buf, buf2, ! sys_font); } return (0); --- 1252,1257 ---- sys_get_audio_apis(buf); sys_get_midi_apis(buf2); ! sys_vgui("pdtk_pd_startup {%s} %s %s {%s} %s\n", pd_version, buf, buf2, ! sys_font, sys_fontweight); } return (0);
Index: m_pd.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v retrieving revision 1.16.2.2 retrieving revision 1.16.2.2.2.1 diff -C2 -d -r1.16.2.2 -r1.16.2.2.2.1 *** m_pd.h 18 Jul 2007 00:20:12 -0000 1.16.2.2 --- m_pd.h 4 Nov 2007 18:00:20 -0000 1.16.2.2.2.1 *************** *** 12,16 **** #define PD_MINOR_VERSION 40 #define PD_BUGFIX_VERSION 3 ! #define PD_TEST_VERSION ""
/* old name for "MSW" flag -- we have to take it for the sake of many old --- 12,16 ---- #define PD_MINOR_VERSION 40 #define PD_BUGFIX_VERSION 3 ! #define PD_TEST_VERSION "extended-20071104"
/* old name for "MSW" flag -- we have to take it for the sake of many old *************** *** 103,106 **** --- 103,116 ---- } t_gpointer;
+ #define PD_STRINGS 1 /* MP20070211 Use this to test for string capability */ + /* MP20061223 string type: */ + typedef struct _string /* pointer to a string */ + { + unsigned long s_length; /* length of string in bytes */ + unsigned char *s_data; /* pointer to 1st byte of string */ + } t_string; + /* ...MP20061223 string type */ + + typedef union word { *************** *** 111,114 **** --- 121,125 ---- struct _glist *w_list; int w_index; + t_string *w_string; /* MP20061223 string type */ } t_word;
*************** *** 126,130 **** A_DOLLSYM, A_GIMME, ! A_CANT } t_atomtype;
--- 137,142 ---- A_DOLLSYM, A_GIMME, ! A_CANT, ! A_STRING /* MP20061223 string type */ } t_atomtype;
*************** *** 213,216 **** --- 225,229 ---- EXTERN t_symbol s_float; EXTERN t_symbol s_symbol; + EXTERN t_symbol s_string; EXTERN t_symbol s_bang; EXTERN t_symbol s_list; *************** *** 256,259 **** --- 269,273 ---- #define SETSYMBOL(atom, s) ((atom)->a_type = A_SYMBOL, \ (atom)->a_w.w_symbol = (s)) + #define SETSTRING(atom, st) ((atom)->a_type = A_STRING, (atom)->a_w.w_string = (st)) /* MP 20061226 string type */ #define SETDOLLAR(atom, n) ((atom)->a_type = A_DOLLAR, \ (atom)->a_w.w_index = (n)) *************** *** 264,267 **** --- 278,282 ---- EXTERN t_int atom_getint(t_atom *a); EXTERN t_symbol *atom_getsymbol(t_atom *a); + EXTERN t_string *atom_getstring(t_atom *a);/* MP 20070108 sring type */ EXTERN t_symbol *atom_gensym(t_atom *a); EXTERN t_float atom_getfloatarg(int which, int argc, t_atom *argv); *************** *** 327,330 **** --- 342,346 ---- EXTERN void pd_float(t_pd *x, t_float f); EXTERN void pd_symbol(t_pd *x, t_symbol *s); + EXTERN void pd_string(t_pd *x, t_string *st); /* MP 20061226 string type */ EXTERN void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv); EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv); *************** *** 351,354 **** --- 367,371 ---- EXTERN void outlet_float(t_outlet *x, t_float f); EXTERN void outlet_symbol(t_outlet *x, t_symbol *s); + EXTERN void outlet_string(t_outlet *x, t_string *st); /* MP 20061226 string type */ EXTERN void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv); EXTERN void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv); *************** *** 369,372 **** --- 386,391 ---- char *result,int resultsize); EXTERN t_symbol *canvas_getdir(t_glist *x); + EXTERN char sys_font[]; /* default typeface set in s_main.c */ + EXTERN char sys_fontweight[]; /* default font weight set in s_main.c */ EXTERN int sys_fontwidth(int fontsize); EXTERN int sys_fontheight(int fontsize); *************** *** 405,408 **** --- 424,428 ---- EXTERN void class_doaddfloat(t_class *c, t_method fn); EXTERN void class_addsymbol(t_class *c, t_method fn); + EXTERN void class_addstring(t_class *c, t_method fn);/* MP 20061226 string type */ EXTERN void class_addlist(t_class *c, t_method fn); EXTERN void class_addanything(t_class *c, t_method fn); *************** *** 433,436 **** --- 453,457 ---- #define class_addfloat(x, y) class_doaddfloat((x), (t_method)(y)) #define class_addsymbol(x, y) class_addsymbol((x), (t_method)(y)) + #define class_addstring(x, y) class_addstring((x), (t_method)(y)) /* MP20061226 string type */ #define class_addlist(x, y) class_addlist((x), (t_method)(y)) #define class_addanything(x, y) class_addanything((x), (t_method)(y))
Index: g_graph.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v retrieving revision 1.10 retrieving revision 1.10.6.1 diff -C2 -d -r1.10 -r1.10.6.1 *** g_graph.c 3 Jun 2006 19:13:07 -0000 1.10 --- g_graph.c 4 Nov 2007 18:00:20 -0000 1.10.6.1 *************** *** 63,66 **** --- 63,69 ---- }
+ /* JMZ: emit a closebang message */ + void canvas_closebang(t_canvas *x); + /* delete an object from a glist and free it */ void glist_delete(t_glist *x, t_gobj *y) *************** *** 72,76 **** int drawcommand = class_isdrawcommand(y->g_pd); int wasdeleting; ! wasdeleting = canvas_setdeleting(canvas, 1); if (x->gl_editor) --- 75,84 ---- int drawcommand = class_isdrawcommand(y->g_pd); int wasdeleting; ! ! if (pd_class(&y->g_pd) == canvas_class) { ! /* JMZ: send a closebang to the canvas */ ! canvas_closebang((t_canvas *)y); ! } ! wasdeleting = canvas_setdeleting(canvas, 1); if (x->gl_editor) *************** *** 730,734 **** /* draw a rectangle around the graph */ sys_vgui(".x%lx.c create line\ ! %d %d %d %d %d %d %d %d %d %d -tags %s\n", glist_getcanvas(x->gl_owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag); --- 738,742 ---- /* draw a rectangle around the graph */ sys_vgui(".x%lx.c create line\ ! %d %d %d %d %d %d %d %d %d %d -fill $graph_outline -tags %s\n", glist_getcanvas(x->gl_owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag); *************** *** 742,748 **** i -= sys_fontheight(glist_getfont(x)); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor nw\ ! -font -*-courier-bold--normal--%d-* -tags %s\n", ! (long)glist_getcanvas(x), x1, i, arrayname->s_name, ! sys_hostfontsize(glist_getfont(x)), tag); }
--- 750,756 ---- i -= sys_fontheight(glist_getfont(x)); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor nw\ ! -font {{%s} %d %s} -tags %s\n", ! (long)glist_getcanvas(x), x1, i, arrayname->s_name, sys_font, ! sys_hostfontsize(glist_getfont(x)), sys_fontweight, tag); }
*************** *** 824,842 **** for (i = 0; i < x->gl_nxlabels; i++) sys_vgui(".x%lx.c create text\ ! %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", glist_getcanvas(x), (int)glist_xtopixels(x, atof(x->gl_xlabel[i]->s_name)), ! (int)glist_ytopixels(x, x->gl_xlabely), x->gl_xlabel[i]->s_name, ! glist_getfont(x), tag);
/* draw y labels */ for (i = 0; i < x->gl_nylabels; i++) sys_vgui(".x%lx.c create text\ ! %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n", glist_getcanvas(x), (int)glist_xtopixels(x, x->gl_ylabelx), (int)glist_ytopixels(x, atof(x->gl_ylabel[i]->s_name)), ! x->gl_ylabel[i]->s_name, ! glist_getfont(x), tag);
/* draw contents of graph as glist */ --- 832,851 ---- for (i = 0; i < x->gl_nxlabels; i++) sys_vgui(".x%lx.c create text\ ! %d %d -text {%s} -font {{%s} %d %s} -tags %s\n", glist_getcanvas(x), (int)glist_xtopixels(x, atof(x->gl_xlabel[i]->s_name)), ! (int)glist_ytopixels(x, x->gl_xlabely), ! x->gl_xlabel[i]->s_name, sys_font, ! glist_getfont(x), sys_fontweight, tag);
/* draw y labels */ for (i = 0; i < x->gl_nylabels; i++) sys_vgui(".x%lx.c create text\ ! %d %d -text {%s} -font {{%s} %d %s} -tags %s\n", glist_getcanvas(x), (int)glist_xtopixels(x, x->gl_ylabelx), (int)glist_ytopixels(x, atof(x->gl_ylabel[i]->s_name)), ! x->gl_ylabel[i]->s_name, sys_font, ! glist_getfont(x), sys_fontweight, tag);
/* draw contents of graph as glist */ *************** *** 951,957 **** rtext_select(y, state); sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, ! rtext_gettag(y), (state? "blue" : "black")); sys_vgui(".x%lx.c itemconfigure graph%lx -fill %s\n", ! glist_getcanvas(glist), z, (state? "blue" : "black")); } } --- 960,967 ---- rtext_select(y, state); sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, ! rtext_gettag(y), (state? "$select_color" : "black")); sys_vgui(".x%lx.c itemconfigure graph%lx -fill %s\n", ! glist_getcanvas(glist), z, ! (state? "$select_color" : "$graph_outline")); } } *************** *** 1020,1024 **** { for (i = oldx + 1; i <= newx; i++) ! vec[i] = newy + (oldy - newy) * ((float)(newx - i))/(float)(newx - oldx); } --- 1030,1034 ---- { for (i = oldx + 1; i <= newx; i++) ! vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) * ((float)(newx - i))/(float)(newx - oldx); } *************** *** 1026,1033 **** { for (i = oldx - 1; i >= newx; i--) ! vec[i] = newy + (oldy - newy) * ((float)(newx - i))/(float)(newx - oldx); } ! else vec[newx] = newy; garray_redraw(a); } --- 1036,1043 ---- { for (i = oldx - 1; i >= newx; i--) ! vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) * ((float)(newx - i))/(float)(newx - oldx); } ! else vec[newx*sizeof(union word)/sizeof(t_sample)] = newy; garray_redraw(a); }
Index: g_editor.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v retrieving revision 1.20 retrieving revision 1.20.6.1 diff -C2 -d -r1.20 -r1.20.6.1 *** g_editor.c 9 Oct 2006 04:36:12 -0000 1.20 --- g_editor.c 4 Nov 2007 18:00:20 -0000 1.20.6.1 *************** *** 109,113 **** x->gl_editor->e_selectline_inno = inno; x->gl_editor->e_selectline_tag = oc; ! sys_vgui(".x%lx.c itemconfigure l%lx -fill blue\n", x, x->gl_editor->e_selectline_tag); } --- 109,113 ---- x->gl_editor->e_selectline_inno = inno; x->gl_editor->e_selectline_tag = oc; ! sys_vgui(".x%lx.c itemconfigure l%lx -fill $select_color\n", x, x->gl_editor->e_selectline_tag); } *************** *** 118,124 **** if (x->gl_editor) { x->gl_editor->e_selectedline = 0; ! sys_vgui(".x%lx.c itemconfigure l%lx -fill black\n", ! x, x->gl_editor->e_selectline_tag); } } --- 118,136 ---- if (x->gl_editor) { + t_linetraverser t; + t_outconnect *oc; x->gl_editor->e_selectedline = 0; ! linetraverser_start(&t, glist_getcanvas(x)); ! do { ! oc = linetraverser_next(&t); ! } while (oc && oc != x->gl_editor->e_selectline_tag); ! int issignal; ! if(outlet_getsymbol(t.tr_outlet) == &s_signal) ! issignal = 1; ! else ! issignal = 0; ! sys_vgui(".x%lx.c itemconfigure l%lx -fill %s\n", ! x, x->gl_editor->e_selectline_tag, ! (issignal ? "$signal_cord" : "$msg_cord")); } } *************** *** 1150,1154 **** (issignal ? 2 : 1)); } ! else canvas_setcursor(x, CURSOR_EDITMODE_CONNECT); } else if (doit) --- 1162,1170 ---- (issignal ? 2 : 1)); } ! else ! { ! canvas_setcursor(x, CURSOR_EDITMODE_CONNECT); ! } ! } else if (doit) *************** *** 1320,1323 **** --- 1336,1340 ---- if (doit) { + int issignal = obj_issignaloutlet(ob1, closest1); oc = obj_connect(ob1, closest1, ob2, closest2); lx1 = x11 + (noutlet1 > 1 ? *************** *** 1329,1336 **** + IOMIDDLE; ly2 = y21; ! sys_vgui(".x%lx.c create line %d %d %d %d -width %d -tags l%lx\n", glist_getcanvas(x), lx1, ly1, lx2, ly2, ! (obj_issignaloutlet(ob1, closest1) ? 2 : 1), oc); canvas_setundo(x, canvas_undo_connect, canvas_undo_set_connect(x, --- 1346,1355 ---- + IOMIDDLE; ly2 = y21; ! sys_vgui(".x%lx.c create line %d %d %d %d -fill %s -width %d -tags l%lx\n", glist_getcanvas(x), lx1, ly1, lx2, ly2, ! (issignal ? "$signal_cord" : "$msg_cord"), ! (issignal ? 2 : 1), ! oc); canvas_setundo(x, canvas_undo_connect, canvas_undo_set_connect(x, *************** *** 1679,1685 **** else { ! sys_vgui( ! "pdtk_check {Close this window??} {.x%lx menuclose 1;\n} yes\n", ! x); } } --- 1698,1705 ---- else { ! /* sys_vgui( */ ! /* "pdtk_check {Close this window??} {.x%lx menuclose 1;\n} yes\n", */ ! /* x); */ ! pd_free(&x->gl_pd); } }
Index: m_pd.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_pd.c,v retrieving revision 1.4 retrieving revision 1.4.10.1 diff -C2 -d -r1.4 -r1.4.10.1 *** m_pd.c 28 Nov 2004 21:20:42 -0000 1.4 --- m_pd.c 4 Nov 2007 18:00:20 -0000 1.4.10.1 *************** *** 285,288 **** --- 285,294 ---- }
+ void pd_string(t_pd *x, t_string *st) /* MP20061226 string type */ + { + /*post("pd_string: st %p length %lu (*x)->c_stringmethod %p", st, st->s_length, (*x)->c_stringmethod);*/ + (*(*x)->c_stringmethod)(x, st); + } + void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv) {
Index: x_connective.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/x_connective.c,v retrieving revision 1.9 retrieving revision 1.9.6.1 diff -C2 -d -r1.9 -r1.9.6.1 *** x_connective.c 24 Aug 2006 15:23:52 -0000 1.9 --- x_connective.c 4 Nov 2007 18:00:20 -0000 1.9.6.1 *************** *** 1203,1214 **** t_object x_obj; t_symbol *x_format; } t_makefilename;
static void *makefilename_new(t_symbol *s) { t_makefilename *x = (t_makefilename *)pd_new(makefilename_class); ! if (!s->s_name) s = gensym("file.%d"); outlet_new(&x->x_obj, &s_symbol); x->x_format = s; return (x); } --- 1203,1253 ---- t_object x_obj; t_symbol *x_format; + t_atomtype x_accept; + int x_intconvert; } t_makefilename;
+ static void makefilename_scanformat(t_makefilename *x) + { + int num=0, infmt=0; + char *str,*chr; + if (!x->x_format) return; + x->x_accept = A_NULL; + for (str=x->x_format->s_name; *str; str++) { + if (!infmt && *str=='%') { + infmt=1; + continue; + } + if (infmt) { + if (strchr("-.#0123456789",*str)!=0) + continue; + if (*str=='s') { + x->x_accept = A_SYMBOL; + x->x_intconvert = 0; + break; + } + if (strchr("fgGeE",*str)!=0) { + x->x_accept = A_FLOAT; + x->x_intconvert = 0; + break; + } + if (strchr("xXdiou",*str)!=0) { + x->x_accept = A_FLOAT; + x->x_intconvert = 1; + break; + } + infmt=0; + } + } + } + static void *makefilename_new(t_symbol *s) { t_makefilename *x = (t_makefilename *)pd_new(makefilename_class); ! if (!s || !s->s_name) s = gensym("file.%d"); outlet_new(&x->x_obj, &s_symbol); x->x_format = s; + x->x_accept = A_NULL; + x->x_intconvert = 0; + makefilename_scanformat(x); return (x); } *************** *** 1217,1221 **** --- 1256,1268 ---- { char buf[MAXPDSTRING]; + if (x->x_accept == A_FLOAT) { + if (x->x_intconvert) sprintf(buf, x->x_format->s_name, (int)f); + else + sprintf(buf, x->x_format->s_name, f); + } + else + sprintf(buf, x->x_format->s_name, ""); + if (buf[0]!=0) outlet_symbol(x->x_obj.ob_outlet, gensym(buf)); } *************** *** 1224,1228 **** --- 1271,1279 ---- { char buf[MAXPDSTRING]; + if (x->x_accept == A_SYMBOL) sprintf(buf, x->x_format->s_name, s->s_name); + else + sprintf(buf, x->x_format->s_name, 0); + if (buf[0]!=0) outlet_symbol(x->x_obj.ob_outlet, gensym(buf)); } *************** *** 1231,1234 **** --- 1282,1286 ---- { x->x_format = s; + makefilename_scanformat(x); }
Index: g_bang.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_bang.c,v retrieving revision 1.5 retrieving revision 1.5.6.1 diff -C2 -d -r1.5 -r1.5.6.1 *** g_bang.c 8 Sep 2006 23:45:30 -0000 1.5 --- g_bang.c 4 Nov 2007 18:00:20 -0000 1.5.6.1 *************** *** 56,64 **** x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", --- 56,65 ---- x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", *************** *** 116,121 **** t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); --- 117,122 ---- t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); *************** *** 238,242 ****
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s BANG \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ --------flash-time(ms)(ms):--------- %d intrrpt: %d hold: %d \ --- 239,243 ----
iemgui_properties(&x->x_gui, srl); ! sprintf(buf, "pdtk_iemgui_dialog %%s |bang| \ ----------dimensions(pix):----------- %d %d size: 0 0 empty \ --------flash-time(ms)(ms):--------- %d intrrpt: %d hold: %d \ *************** *** 482,486 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); }
if (x->x_gui.x_fsf.x_rcv_able) --- 483,487 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); }
if (x->x_gui.x_fsf.x_rcv_able)
Index: g_numbox.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/g_numbox.c,v retrieving revision 1.8 retrieving revision 1.8.6.1 diff -C2 -d -r1.8 -r1.8.6.1 *** g_numbox.c 8 Sep 2006 23:45:30 -0000 1.8 --- g_numbox.c 4 Nov 2007 18:00:20 -0000 1.8.6.1 *************** *** 196,208 **** x->x_gui.x_fcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x); my_numbox_ftoa(x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {%s %d bold} -fill #%6.6x -tags %lxNUMBER\n", canvas, xpos+half+2, ypos+half+d, ! x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", --- 196,210 ---- x->x_gui.x_fcol, x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n", canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"", ! x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_lcol, x); my_numbox_ftoa(x); sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \ ! -font {{%s} %d %s} -fill #%6.6x -tags %lxNUMBER\n", canvas, xpos+half+2, ypos+half+d, ! x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, ! x->x_gui.x_fcol, x); if(!x->x_gui.x_fsf.x_snd_able) sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n", *************** *** 270,279 **** t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); ! sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {%s %d bold} -fill #%6.6x \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol); sys_vgui(".x%lx.c itemconfigure %lxBASE1 -fill #%6.6x\n", canvas, --- 272,281 ---- t_canvas *canvas=glist_getcanvas(glist);
! sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol, strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:""); ! sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {{%s} %d %s} -fill #%6.6x \n", ! canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol); sys_vgui(".x%lx.c itemconfigure %lxBASE1 -fill #%6.6x\n", canvas, *************** *** 452,456 ****
} ! sprintf(buf, "pdtk_iemgui_dialog %%s NUMBERBOX \ -------dimensions(digits)(pix):------- %d %d width: %d %d height: \ -----------output-range:----------- %g min: %g max: %d \ --- 454,458 ----
} ! sprintf(buf, "pdtk_iemgui_dialog %%s |nbx| \ -------dimensions(digits)(pix):------- %d %d width: %d %d height: \ -----------output-range:----------- %g min: %g max: %d \ *************** *** 807,811 **** else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, "courier"); } if (x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); --- 809,813 ---- else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times"); else { x->x_gui.x_fsf.x_font_style = 0; ! strcpy(x->x_gui.x_font, sys_font); } if (x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);