[PD-cvs] externals/build/include g_all_guis.h, 1.3, 1.4 g_canvas.h, 1.4, 1.5 m_imp.h, 1.4, 1.5 m_pd.h, 1.2, 1.3 s_stuff.h, 1.2, 1.3 t_tk.h, 1.1, 1.2

IOhannes m zmölnig zmoelnig at users.sourceforge.net
Tue Apr 12 13:43:09 CEST 2005


Update of /cvsroot/pure-data/externals/build/include
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30598

Modified Files:
	g_all_guis.h g_canvas.h m_imp.h m_pd.h s_stuff.h t_tk.h 
Log Message:
use the real-header files (found in $CVSROOT/pd/src) instead of outdated ones


Index: t_tk.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/t_tk.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** t_tk.h	19 Nov 2002 11:45:52 -0000	1.1
--- t_tk.h	12 Apr 2005 11:43:07 -0000	1.2
***************
*** 1,10 ****
! /* Copyright (c) 1997-1999 Miller Puckette.
! * For information on usage and redistribution, and for a DISCLAIMER OF ALL
! * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
! 
! void pdgui_vmess(char *fmt, ...);
! void pdgui_mess(char *s);
! 
! void pdgui_evalfile(char *s);
! 
! #define GUISTRING 1000
--- 1 ----
! #include "../../pd/src/t_tk.h"

Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/m_pd.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** m_pd.h	5 Nov 2003 11:26:09 -0000	1.2
--- m_pd.h	12 Apr 2005 11:43:07 -0000	1.3
***************
*** 1,638 ****
! /* Copyright (c) 1997-1999 Miller Puckette.
! * For information on usage and redistribution, and for a DISCLAIMER OF ALL
! * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
! 
! #ifndef __m_pd_h_
! 
! #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
! extern "C" {
! #endif
! 
! #define PD_VERSION 0.37     /* oops, don't use this... */  */
! #define PD_MAJOR_VERSION 0  /* ... use these two instead. */
! #define PD_MINOR_VERSION 37   
! 
! #define PD_DEVEL_VERSION 1  /* T.Grill - mark for devel branch */
! 
! 
! /* old name for "MSW" flag -- we have to take it for the sake of many old
! "nmakefiles" for externs, which will define NT and not MSW */
! #if defined(NT) && !defined(MSW)
! #define MSW
! #endif
! 
! #ifdef MSW
! /* #pragma warning( disable : 4091 ) */
! #pragma warning( disable : 4305 )  /* uncast const double to float */
! #pragma warning( disable : 4244 )  /* uncast float/int conversion etc. */
! #pragma warning( disable : 4101 )  /* unused automatic variables */
! #endif /* MSW */
! 
!     /* the external storage class is "extern" in UNIX; in MSW it's ugly. */
! #ifdef MSW
! #ifdef PD_INTERNAL
! #define EXTERN __declspec(dllexport) extern
! #else
! #define EXTERN __declspec(dllimport) extern
! #endif /* PD_INTERNAL */
! #else
! #define EXTERN extern
! #endif /* MSW */
! 
!     /* and depending on the compiler, hidden data structures are
!     declared differently: */
! #if defined( __GNUC__) || defined( __BORLANDC__ ) || defined( __MWERKS__ )
! #define EXTERN_STRUCT struct
! #else
! #define EXTERN_STRUCT extern struct
! #endif
! 
! 
! #if !defined(_SIZE_T) && !defined(_SIZE_T_)
! #include <stddef.h> 	/* just for size_t -- how lame! */
! #endif
! 
! #define MAXPDSTRING 1000	/* use this for anything you want */
! #define MAXPDARG 5    	    	/* max number of args we can typecheck today */
! 
! /* signed and unsigned integer types the size of a pointer:  */
! /* GG: long is the size of a pointer */
! typedef long t_int;
! 
! typedef float t_float;	/* a floating-point number at most the same size */
! typedef float t_floatarg;  /* floating-point type for function calls */
! 
! typedef struct _symbol
! {
!     char *s_name;
!     struct _class **s_thing;
!     struct _symbol *s_next;
! } t_symbol;
! 
! EXTERN_STRUCT _array;
! #define t_array struct _array 	    /* g_canvas.h */
! 
! /* pointers to glist and array elements go through a "stub" which sticks
! around after the glist or array is freed.  The stub itself is deleted when
! both the glist/array is gone and the refcount is zero, ensuring that no
! gpointers are pointing here. */
! 
! #define GP_NONE 0  	/* the stub points nowhere (has been cut off) */
! #define GP_GLIST 1  	/* the stub points to a glist element */
! #define GP_ARRAY 2  	/* ... or array */
! 
! typedef struct _gstub
! {
!     union
!     {
!     	struct _glist *gs_glist;    /* glist we're in */
!     	struct _array *gs_array;    /* array we're in */
!     } gs_un;
!     int gs_which;   	    	    /* GP_GLIST/GP_ARRAY */
!     int gs_refcount;   	    	    /* number of gpointers pointing here */
! } t_gstub;
! 
! typedef struct _gpointer 	   /* pointer to a gobj in a glist */
! {
!     union
!     {	
!     	struct _scalar *gp_scalar;  /* scalar we're in (if glist) */
!     	union word *gp_w;  	    /* raw data (if array) */
!     } gp_un;
!     int gp_valid;   	    	    /* number which must match gpointee */
!     t_gstub *gp_stub;	    	    /* stub which points to glist/array */
! } t_gpointer;
! 
! typedef union word
! {
!     t_float w_float;
!     t_symbol *w_symbol;
!     t_gpointer *w_gpointer;
!     t_array *w_array;
!     struct _glist *w_list;
!     int w_index;
! } t_word;
! 
! typedef enum
! {
!     A_NULL,
!     A_FLOAT,
!     A_SYMBOL,
!     A_POINTER,
!     A_SEMI,
!     A_COMMA,
!     A_DEFFLOAT,
!     A_DEFSYM,
!     A_DOLLAR, 
!     A_DOLLSYM,
!     A_GIMME,
!     A_CANT
! }  t_atomtype;
! 
! #define A_DEFSYMBOL A_DEFSYM	/* better name for this */
! 
! typedef struct _atom
! {
!     t_atomtype a_type;
!     union word a_w;
! } t_atom;
! 
! EXTERN_STRUCT _class;
! #define t_class struct _class
! 
! EXTERN_STRUCT _outlet;
! #define t_outlet struct _outlet
! 
! EXTERN_STRUCT _inlet;
! #define t_inlet struct _inlet
! 
! EXTERN_STRUCT _binbuf;
! #define t_binbuf struct _binbuf
! 
! EXTERN_STRUCT _clock;
! #define t_clock struct _clock
! 
! EXTERN_STRUCT _outconnect;
! #define t_outconnect struct _outconnect
! 
! EXTERN_STRUCT _glist;
! #define t_glist struct _glist
! #define t_canvas struct _glist	/* LATER lose this */
! 
! typedef t_class *t_pd;	    /* pure datum: nothing but a class pointer */
! 
! typedef struct _gobj	    /* a graphical object */
! {
!     t_pd g_pd;	    	    /* pure datum header (class) */
!     struct _gobj *g_next;   /* next in list */
! } t_gobj;
! 
! typedef struct _scalar	    /* a graphical object holding data */
! {
!     t_gobj sc_gobj;	    /* header for graphical object */
!     t_symbol *sc_template;  /* template name (LATER replace with pointer) */
!     t_word sc_vec[1];	    /* indeterminate-length array of words */
! } t_scalar;
! 
! typedef struct _text	    /* patchable object - graphical, with text */
! {
!     t_gobj te_g;	    	/* header for graphical object */
!     t_binbuf *te_binbuf;    	/* holder for the text */
!     t_outlet *te_outlet;    	/* linked list of outlets */
!     t_inlet *te_inlet;	    	/* linked list of inlets */
!     short te_xpix;	    	/* x&y location (within the toplevel) */
!     short te_ypix;
!     short te_width;	    	/* requested width in chars, 0 if auto */
!     unsigned int te_type:2; 	/* from defs below */
! } t_text;
! 
! #define T_TEXT 0    	/* just a textual comment */
! #define T_OBJECT 1  	/* a MAX style patchable object */
! #define T_MESSAGE 2    	/* a MAX stype message */
! #define T_ATOM 3    	/* a cell to display a number or symbol */
! 
! #define te_pd te_g.g_pd
! 
!    /* t_object is synonym for t_text (LATER unify them) */
! 
! typedef struct _text t_object;
! 
! #define ob_outlet te_outlet
! #define ob_inlet te_inlet
! #define ob_binbuf te_binbuf
! #define ob_pd te_g.g_pd
! #define ob_g te_g
! 
! typedef void (*t_method)(void);
! typedef void *(*t_newmethod)( void);
! typedef void (*t_gotfn)(void *x, ...);
! 
! /* ---------------- pre-defined objects and symbols --------------*/
! EXTERN t_pd pd_objectmaker; 	/* factory for creating "object" boxes */
! EXTERN t_pd pd_canvasmaker; 	/* factory for creating canvases */
! EXTERN t_symbol s_pointer;
! EXTERN t_symbol s_float;
! EXTERN t_symbol s_symbol;
! EXTERN t_symbol s_bang;
! EXTERN t_symbol s_list;
! EXTERN t_symbol s_anything;
! EXTERN t_symbol s_signal;
! EXTERN t_symbol s__N;
! EXTERN t_symbol s__X;
! EXTERN t_symbol s_x;
! EXTERN t_symbol s_y;
! EXTERN t_symbol s_;
! 
! /* --------- prototypes from the central message system ----------- */
! EXTERN void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv);
! EXTERN void pd_forwardmess(t_pd *x, int argc, t_atom *argv);
! EXTERN t_symbol *gensym(char *s);
! EXTERN t_gotfn getfn(t_pd *x, t_symbol *s);
! EXTERN t_gotfn zgetfn(t_pd *x, t_symbol *s);
! EXTERN void nullfn(void);
! EXTERN void pd_vmess(t_pd *x, t_symbol *s, char *fmt, ...);
! #define mess0(x, s) ((*getfn((x), (s)))((x)))
! #define mess1(x, s, a) ((*getfn((x), (s)))((x), (a)))
! #define mess2(x, s, a,b) ((*getfn((x), (s)))((x), (a),(b)))
! #define mess3(x, s, a,b,c) ((*getfn((x), (s)))((x), (a),(b),(c)))
! #define mess4(x, s, a,b,c,d) ((*getfn((x), (s)))((x), (a),(b),(c),(d)))
! #define mess5(x, s, a,b,c,d,e) ((*getfn((x), (s)))((x), (a),(b),(c),(d),(e)))
! EXTERN void obj_list(t_object *x, t_symbol *s, int argc, t_atom *argv);
! EXTERN t_pd *pd_newest(void);
! 
! /* --------------- memory management -------------------- */
! EXTERN void *getbytes(size_t nbytes);
! EXTERN void *getzbytes(size_t nbytes);
! EXTERN void *copybytes(void *src, size_t nbytes);
! EXTERN void freebytes(void *x, size_t nbytes);
! EXTERN void *resizebytes(void *x, size_t oldsize, size_t newsize);
! 
! /* -------------------- atoms ----------------------------- */
! 
! #define SETSEMI(atom) ((atom)->a_type = A_SEMI, (atom)->a_w.w_index = 0)
! #define SETCOMMA(atom) ((atom)->a_type = A_COMMA, (atom)->a_w.w_index = 0)
! #define SETPOINTER(atom, gp) ((atom)->a_type = A_POINTER, \
!     (atom)->a_w.w_gpointer = (gp))
! #define SETFLOAT(atom, f) ((atom)->a_type = A_FLOAT, (atom)->a_w.w_float = (f))
! #define SETSYMBOL(atom, s) ((atom)->a_type = A_SYMBOL, \
!     (atom)->a_w.w_symbol = (s))
! #define SETDOLLAR(atom, n) ((atom)->a_type = A_DOLLAR, \
!     (atom)->a_w.w_index = (n))
! #define SETDOLLSYM(atom, s) ((atom)->a_type = A_DOLLSYM, \
!     (atom)->a_w.w_symbol= (s))
! 
! EXTERN t_float atom_getfloat(t_atom *a);
! EXTERN t_int atom_getint(t_atom *a);
! EXTERN t_symbol *atom_getsymbol(t_atom *a);
! EXTERN t_symbol *atom_gensym(t_atom *a);
! EXTERN t_float atom_getfloatarg(int which, int argc, t_atom *argv);
! EXTERN t_int atom_getintarg(int which, int argc, t_atom *argv);
! EXTERN t_symbol *atom_getsymbolarg(int which, int argc, t_atom *argv);
! 
! EXTERN void atom_string(t_atom *a, char *buf, unsigned int bufsize);
! 
! /* ------------------  binbufs --------------- */
! 
! EXTERN t_binbuf *binbuf_new(void);
! EXTERN void binbuf_free(t_binbuf *x);
! EXTERN t_binbuf *binbuf_duplicate(t_binbuf *y);
! 
! EXTERN void binbuf_text(t_binbuf *x, char *text, size_t size);
! EXTERN void binbuf_gettext(t_binbuf *x, char **bufp, int *lengthp);
! EXTERN void binbuf_clear(t_binbuf *x);
! EXTERN void binbuf_add(t_binbuf *x, int argc, t_atom *argv);
! EXTERN void binbuf_addv(t_binbuf *x, char *fmt, ...);
! EXTERN void binbuf_addbinbuf(t_binbuf *x, t_binbuf *y);
! EXTERN void binbuf_addsemi(t_binbuf *x);
! EXTERN void binbuf_restore(t_binbuf *x, int argc, t_atom *argv);
! EXTERN void binbuf_print(t_binbuf *x);
! EXTERN int binbuf_getnatom(t_binbuf *x);
! EXTERN t_atom *binbuf_getvec(t_binbuf *x);
! EXTERN void binbuf_eval(t_binbuf *x, t_pd *target, int argc, t_atom *argv);
! EXTERN int binbuf_read(t_binbuf *b, char *filename, char *dirname,
!     int crflag);
! EXTERN int binbuf_read_via_path(t_binbuf *b, char *filename, char *dirname,
!     int crflag);
! EXTERN int binbuf_write(t_binbuf *x, char *filename, char *dir,
!     int crflag);
! EXTERN void binbuf_evalfile(t_symbol *name, t_symbol *dir);
! EXTERN t_symbol *binbuf_realizedollsym(t_symbol *s, int ac, t_atom *av,
!     int tonew);
! 
! /* ------------------  clocks --------------- */
! 
! EXTERN t_clock *clock_new(void *owner, t_method fn);
! EXTERN void clock_set(t_clock *x, double systime);
! EXTERN void clock_delay(t_clock *x, double delaytime);
! EXTERN void clock_unset(t_clock *x);
! EXTERN double clock_getlogicaltime(void);
! EXTERN double clock_getsystime(void); /* OBSOLETE; use clock_getlogicaltime() */
! EXTERN double clock_gettimesince(double prevsystime);
! EXTERN double clock_getsystimeafter(double delaytime);
! EXTERN void clock_free(t_clock *x);
! 
! /* ----------------- pure data ---------------- */
! EXTERN t_pd *pd_new(t_class *cls);
! EXTERN void pd_free(t_pd *x);
! EXTERN void pd_bind(t_pd *x, t_symbol *s);
! EXTERN void pd_unbind(t_pd *x, t_symbol *s);
! EXTERN t_pd *pd_findbyclass(t_symbol *s, t_class *c);
! EXTERN void pd_pushsym(t_pd *x);
! EXTERN void pd_popsym(t_pd *x);
! EXTERN t_symbol *pd_getfilename(void);
! EXTERN t_symbol *pd_getdirname(void);
! EXTERN void pd_bang(t_pd *x);
! EXTERN void pd_pointer(t_pd *x, t_gpointer *gp);
! EXTERN void pd_float(t_pd *x, t_float f);
! EXTERN void pd_symbol(t_pd *x, t_symbol *s);
! 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);
! #define pd_class(x) (*(x))
! 
! /* ----------------- pointers ---------------- */
! EXTERN void gpointer_init(t_gpointer *gp);
! EXTERN void gpointer_copy(const t_gpointer *gpfrom, t_gpointer *gpto);
! EXTERN void gpointer_unset(t_gpointer *gp);
! EXTERN int gpointer_check(const t_gpointer *gp, int headok);
! 
! /* ----------------- patchable "objects" -------------- */
! EXTERN_STRUCT _inlet;
! #define t_inlet struct _inlet
! EXTERN_STRUCT _outlet;
! #define t_outlet struct _outlet
! 
! EXTERN t_inlet *inlet_new(t_object *owner, t_pd *dest, t_symbol *s1,
!     t_symbol *s2);
! EXTERN t_inlet *pointerinlet_new(t_object *owner, t_gpointer *gp);
! EXTERN t_inlet *floatinlet_new(t_object *owner, t_float *fp);
! EXTERN t_inlet *symbolinlet_new(t_object *owner, t_symbol **sp);
! EXTERN void inlet_free(t_inlet *x);
! 
! EXTERN t_outlet *outlet_new(t_object *owner, t_symbol *s);
! EXTERN void outlet_bang(t_outlet *x);
! EXTERN void outlet_pointer(t_outlet *x, t_gpointer *gp);
! EXTERN void outlet_float(t_outlet *x, t_float f);
! EXTERN void outlet_symbol(t_outlet *x, t_symbol *s);
! 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);
! EXTERN t_symbol *outlet_getsymbol(t_outlet *x);
! EXTERN void outlet_free(t_outlet *x);
! EXTERN t_object *pd_checkobject(t_pd *x);
! 
! 
! /* -------------------- canvases -------------- */
! 
! EXTERN void glob_setfilename(void *dummy, t_symbol *name, t_symbol *dir);
! 
! EXTERN void canvas_setargs(int argc, t_atom *argv);
! EXTERN t_atom *canvas_getarg(int which);
! EXTERN t_symbol *canvas_getcurrentdir(void);
! EXTERN t_glist *canvas_getcurrent(void);
! EXTERN void canvas_makefilename(t_glist *c, char *file,
!     char *result,int resultsize);
! EXTERN t_symbol *canvas_getdir(t_glist *x);
! EXTERN int sys_fontwidth(int fontsize);
! EXTERN int sys_fontheight(int fontsize);
! EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b);
! 
! /* ---------------- widget behaviors ---------------------- */
! 
! EXTERN_STRUCT _widgetbehavior;
! #define t_widgetbehavior struct _widgetbehavior
! 
! EXTERN_STRUCT _parentwidgetbehavior;
! #define t_parentwidgetbehavior struct _parentwidgetbehavior
! EXTERN t_parentwidgetbehavior *pd_getparentwidget(t_pd *x);
! 
! /* -------------------- classes -------------- */
! 
! #define CLASS_DEFAULT 0 	/* flags for new classes below */
! #define CLASS_PD 1
! #define CLASS_GOBJ 2
! #define CLASS_PATCHABLE 3
! #define CLASS_NOINLET 8
! 
! #define CLASS_TYPEMASK 3
! 
! 
! EXTERN t_class *class_new(t_symbol *name, t_newmethod newmethod,
!     t_method freemethod, size_t size, int flags, t_atomtype arg1, ...);
! EXTERN void class_addcreator(t_newmethod newmethod, t_symbol *s, 
!     t_atomtype type1, ...);
! EXTERN void class_addmethod(t_class *c, t_method fn, t_symbol *sel,
!     t_atomtype arg1, ...);
! EXTERN void class_addbang(t_class *c, t_method fn);
! EXTERN void class_addpointer(t_class *c, t_method fn);
! EXTERN void class_doaddfloat(t_class *c, t_method fn);
! EXTERN void class_addsymbol(t_class *c, t_method fn);
! EXTERN void class_addlist(t_class *c, t_method fn);
! EXTERN void class_addanything(t_class *c, t_method fn);
! EXTERN void class_sethelpsymbol(t_class *c, t_symbol *s);
! EXTERN void class_setwidget(t_class *c, t_widgetbehavior *w);
! EXTERN void class_setparentwidget(t_class *c, t_parentwidgetbehavior *w);
! EXTERN t_parentwidgetbehavior *class_parentwidget(t_class *c);
! EXTERN char *class_getname(t_class *c);
! EXTERN char *class_gethelpname(t_class *c);
! EXTERN void class_setdrawcommand(t_class *c);
! EXTERN int class_isdrawcommand(t_class *c);
! EXTERN void class_domainsignalin(t_class *c, int onset);
! #define CLASS_MAINSIGNALIN(c, type, field) \
!     class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0)
! 
!     	 /* prototype for functions to save Pd's to a binbuf */
! typedef void (*t_savefn)(t_gobj *x, t_binbuf *b);
! EXTERN void class_setsavefn(t_class *c, t_savefn f);
! EXTERN t_savefn class_getsavefn(t_class *c);
!     	/* prototype for functions to open properties dialogs */
! typedef void (*t_propertiesfn)(t_gobj *x, struct _glist *glist);
! EXTERN void class_setpropertiesfn(t_class *c, t_propertiesfn f);
! EXTERN t_propertiesfn class_getpropertiesfn(t_class *c);
! 
! #ifndef PD_CLASS_DEF
! #define class_addbang(x, y) class_addbang((x), (t_method)(y))
! #define class_addpointer(x, y) class_addpointer((x), (t_method)(y))
! #define class_addfloat(x, y) class_doaddfloat((x), (t_method)(y))
! #define class_addsymbol(x, y) class_addsymbol((x), (t_method)(y))
! #define class_addlist(x, y) class_addlist((x), (t_method)(y))
! #define class_addanything(x, y) class_addanything((x), (t_method)(y))
! #endif
! 
! /* ------------   printing --------------------------------- */
! EXTERN void post(char *fmt, ...);
! EXTERN void startpost(char *fmt, ...);
! EXTERN void poststring(char *s);
! EXTERN void postfloat(float f);
! EXTERN void postatom(int argc, t_atom *argv);
! EXTERN void endpost(void);
! EXTERN void error(char *fmt, ...);
! EXTERN void bug(char *fmt, ...);
! EXTERN void pd_error(void *object, char *fmt, ...);
! EXTERN void sys_logerror(char *object, char *s);
! EXTERN void sys_unixerror(char *object);
! EXTERN void sys_ouch(void);
! 
! #ifdef __linux__
! EXTERN char* sys_get_path( void);
! #endif 
! EXTERN void sys_addpath(const char* p);
! 
! 
! /* ------------  system interface routines ------------------- */
! EXTERN int sys_isreadablefile(const char *name);
! EXTERN void sys_bashfilename(const char *from, char *to);
! EXTERN void sys_unbashfilename(const char *from, char *to);
! EXTERN int open_via_path(const char *name, const char *ext, const char *dir,
!     char *dirresult, char **nameresult, unsigned int size, int bin);
! EXTERN int sched_geteventno(void);
! EXTERN double sys_getrealtime(void);
! 
! 
! /* ------------  threading ------------------- */
! /* T.Grill - see m_sched.c */
!  
! EXTERN void sys_lock(void);
! EXTERN void sys_unlock(void);
! EXTERN int sys_trylock(void);
! 
! 
! /* --------------- signals ----------------------------------- */
! 
! typedef float t_sample;
! #define MAXLOGSIG 32
! #define MAXSIGSIZE (1 << MAXLOGSIG)
! 
! typedef struct _signal
! {
!     int s_n;	    	/* number of points in the array */
!     t_sample *s_vec;	/* the array */
!     float s_sr;     	/* sample rate */
!     int s_refcount; 	/* number of times used */
!     int s_isborrowed;	/* whether we're going to borrow our array */
!     struct _signal *s_borrowedfrom; 	/* signal to borrow it from */
!     struct _signal *s_nextfree; 	/* next in freelist */
!     struct _signal *s_nextused;     	/* next in used list */
! } t_signal;
! 
! 
! typedef t_int *(*t_perfroutine)(t_int *args);
! 
! EXTERN t_int *plus_perform(t_int *args);
! EXTERN t_int *zero_perform(t_int *args);
! EXTERN t_int *copy_perform(t_int *args);
! 
! EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n);
! EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n);
! EXTERN void dsp_add_scalarcopy(t_sample *in, t_sample *out, int n);
! EXTERN void dsp_add_zero(t_sample *out, int n);
! 
! EXTERN int sys_getblksize(void);
! EXTERN float sys_getsr(void);
! EXTERN int sys_get_inchannels(void);
! EXTERN int sys_get_outchannels(void);
! 
! EXTERN void dsp_add(t_perfroutine f, int n, ...);
! EXTERN void dsp_addv(t_perfroutine f, int n, t_int *vec);
! EXTERN void pd_fft(float *buf, int npoints, int inverse);
! EXTERN int ilog2(int n);
! 
! EXTERN void mayer_fht(float *fz, int n);
! EXTERN void mayer_fft(int n, float *real, float *imag);
! EXTERN void mayer_ifft(int n, float *real, float *imag);
! EXTERN void mayer_realfft(int n, float *real);
! EXTERN void mayer_realifft(int n, float *real);
! 
! EXTERN float *cos_table;
! #define LOGCOSTABSIZE 9
! #define COSTABSIZE (1<<LOGCOSTABSIZE)
! 
! EXTERN int canvas_suspend_dsp(void);
! EXTERN void canvas_resume_dsp(int oldstate);
! EXTERN void canvas_update_dsp(void);
! 
! /* IOhannes { (up/downsampling) */
! typedef struct _resample
! {
!   int method;       /* up/downsampling method ID */
! 
!   t_int downsample; /* downsampling factor */
!   t_int upsample;   /* upsampling factor */
! 
!   t_float *s_vec;   /* here we hold the resampled data */
!   int      s_n;
! 
!   t_float *coeffs;  /* coefficients for filtering... */
!   int      coefsize;
! 
!   t_float *buffer;  /* buffer for filtering */
!   int      bufsize;
! } t_resample;
! 
! EXTERN void resample_init(t_resample *x);
! EXTERN void resample_free(t_resample *x);
! 
! EXTERN void resample_dsp(t_resample *x, t_sample *in, int insize, t_sample *out, int outsize, int method);
! EXTERN void resamplefrom_dsp(t_resample *x, t_sample *in, int insize, int outsize, int method);
! EXTERN void resampleto_dsp(t_resample *x, t_sample *out, int insize, int outsize, int method);
! /* } IOhannes */
! 
! /* ----------------------- utility functions for signals -------------- */
! EXTERN float mtof(float);
! EXTERN float ftom(float);
! EXTERN float rmstodb(float);
! EXTERN float powtodb(float);
! EXTERN float dbtorms(float);
! EXTERN float dbtopow(float);
! 
! EXTERN float q8_sqrt(float);
! EXTERN float q8_rsqrt(float);
! #ifndef N32 	
! EXTERN float qsqrt(float);  /* old names kept for extern compatibility */
! EXTERN float qrsqrt(float);
! #endif
! /* --------------------- data --------------------------------- */
! 
!     /* graphical arrays */
! EXTERN_STRUCT _garray;
! #define t_garray struct _garray
! 
! EXTERN t_class *garray_class;
! EXTERN int garray_getfloatarray(t_garray *x, int *size, t_float **vec);
! EXTERN float garray_get(t_garray *x, t_symbol *s, t_int indx);
! EXTERN void garray_redraw(t_garray *x);
! EXTERN double garray_updatetime(t_garray *x); /* T.Grill - get last update time (clock_getlogicaltime) */
! EXTERN int garray_npoints(t_garray *x);
! EXTERN char *garray_vec(t_garray *x);
! EXTERN void garray_resize(t_garray *x, t_floatarg f);
! EXTERN void garray_usedindsp(t_garray *x);
! EXTERN void garray_setsaveit(t_garray *x, int saveit);
! EXTERN t_class *scalar_class;
! 
! EXTERN t_float *value_get(t_symbol *s);
! EXTERN void value_release(t_symbol *s);
! EXTERN int value_getfloat(t_symbol *s, t_float *f);
! EXTERN int value_setfloat(t_symbol *s, t_float f);
! 
! /* ------- GUI interface - functions to send strings to TK --------- */
! EXTERN void sys_vgui(char *fmt, ...);
! EXTERN void sys_gui(char *s);
! 
!     /* dialog window creation and destruction */
! EXTERN void gfxstub_new(t_pd *owner, void *key, const char *cmd);
! EXTERN void gfxstub_deleteforkey(void *key);
! 
! extern t_class *glob_pdobject;	/* object to send "pd" messages */
! 
! /*-------------  Max 0.26 compatibility --------------------*/
! 
! /* the following reflects the new way classes are laid out, with the class
!    pointing to the messlist and not vice versa. Externs shouldn't feel it. */
! typedef t_class *t_externclass;
! 
! EXTERN void c_extern(t_externclass *cls, t_newmethod newroutine,
!     t_method freeroutine, t_symbol *name, size_t size, int tiny, \
!     t_atomtype arg1, ...);
! EXTERN void c_addmess(t_method fn, t_symbol *sel, t_atomtype arg1, ...);
! 
! #define t_getbytes getbytes
! #define t_freebytes freebytes
! #define t_resizebytes resizebytes
! #define typedmess pd_typedmess
! #define vmess pd_vmess
! 
! /* A definition to help gui objects straddle 0.34-0.35 changes.  If this is
! defined, there is a "te_xpix" field in objects, not a "te_xpos" as before: */
! 
! #define PD_USE_TE_XPIX
! 
! /* a test for NANs and denormals.  Shouldn't be necessary on Mac but can't
! test this just now. */
! 
! #define PD_BADFLOAT(f) ((((*(unsigned int*)&(f))&0x7f800000)==0) || \
!     (((*(unsigned int*)&(f))&0x7f800000)==0x7f800000))
! 
! #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
! }
! #endif
! 
! #define __m_pd_h_
! #endif /* __m_pd_h_ */
--- 1 ----
! #include "../../pd/src/m_pd.h"

Index: g_canvas.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/g_canvas.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** g_canvas.h	5 Nov 2003 11:26:09 -0000	1.4
--- g_canvas.h	12 Apr 2005 11:43:07 -0000	1.5
***************
*** 1,602 ****
! /* Copyright (c) 1997-1999 Miller Puckette.
! * For information on usage and redistribution, and for a DISCLAIMER OF ALL
! * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
! 
! /* this file defines the structure for "glists" and related structures and
! functions.  "Glists" and "canvases" and "graphs" used to be different
! structures until being unified in version 0.35.
! 
! A glist occupies its own window if the "gl_havewindow" flag is set.  Its
! appearance on its "parent" or "owner" (if it has one) is as a graph if
! "gl_isgraph" is set, and otherwise as a text box.
! 
! A glist is "root" if it has no owner, i.e., a document window.  In this
! case "gl_havewindow" is always set.
! 
! We maintain a list of root windows, so that we can traverse the whole
! collection of everything in a Pd process.
! 
! If a glist has a window it may still not be "mapped."  Miniaturized
! windows aren't mapped, for example, but a window is also not mapped
! immediately upon creation.  In either case gl_havewindow is true but
! gl_mapped is false.
! 
! Closing a non-root window makes it invisible; closing a root destroys it.
! 
! A glist that's just a text object on its parent is always "toplevel."  An
! embedded glist can switch back and forth to appear as a toplevel by double-
! clicking on it.  Single-clicking a text box makes the toplevel become visible
! and raises the window it's in.
! 
! If a glist shows up as a graph on its parent, the graph is blanked while the
! glist has its own window, even if miniaturized.
! 
! */
! 
! /* NOTE: this file describes Pd implementation details which may change
! in future releases.  The public (stable) API is in m_pd.h. */  
! 
! #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
! extern "C" {
! #endif
! 
! /* --------------------- geometry ---------------------------- */
! #define IOWIDTH 7   	/* width of an inlet/outlet in pixels */
! #define IOMIDDLE ((IOWIDTH-1)/2)
! #define GLIST_DEFGRAPHWIDTH 200
! #define GLIST_DEFGRAPHHEIGHT 140
! /* ----------------------- data ------------------------------- */
! 
! typedef struct _updateheader
! {
!     struct _updateheader *upd_next;
!     unsigned int upd_array:1;	    /* true if array, false if glist */
!     unsigned int upd_queued:1;	    /* true if we're queued */
! } t_updateheader;
! 
!     /* types to support glists grabbing mouse motion or keys from parent */
! typedef void (*t_glistmotionfn)(void *z, t_floatarg dx, t_floatarg dy);
! typedef void (*t_glistkeyfn)(void *z, t_floatarg key);
! 
! EXTERN_STRUCT _rtext;
! #define t_rtext struct _rtext
! 
! EXTERN_STRUCT _gtemplate;
! #define t_gtemplate struct _gtemplate
! 
! EXTERN_STRUCT _guiconnect;
! #define t_guiconnect struct _guiconnect
! 
! EXTERN_STRUCT _tscalar;
! #define t_tscalar struct _tscalar
! 
! EXTERN_STRUCT _canvasenvironment;
! #define t_canvasenvironment struct _canvasenvironment 
! 
! typedef struct _selection
! {
!     t_gobj *sel_what;
!     struct _selection *sel_next;
! } t_selection;
! 
!     /* this structure is instantiated whenever a glist becomes visible. */
! typedef struct _editor
! {
!     t_updateheader e_upd;   	    /* update header structure */
!     t_selection *e_updlist; 	    /* list of objects to update */
!     t_rtext *e_rtext;	    	    /* text responder linked list */
!     t_selection *e_selection;  	    /* head of the selection list */
!     t_rtext *e_textedfor;   	    /* the rtext if any that we are editing */
!     t_gobj *e_grab;	    	    /* object being "dragged" */
!     t_glistmotionfn e_motionfn;     /* ... motion callback */
!     t_glistkeyfn e_keyfn;	    /* ... keypress callback */
!     t_binbuf *e_connectbuf;	    /* connections to deleted objects */
!     t_binbuf *e_deleted;    	    /* last stuff we deleted */
!     t_guiconnect *e_guiconnect;     /* GUI connection for filtering messages */
!     struct _glist *e_glist;	    /* glist which owns this */
!     int e_xwas;   	    	    /* xpos on last mousedown or motion event */
!     int e_ywas;   	    	    /* ypos, similarly */
!     int e_selectline_index1;	    /* indices for the selected line if any */
!     int e_selectline_outno; 	    /* (only valid if e_selectedline is set) */
!     int e_selectline_index2;
!     int e_selectline_inno;
!     t_outconnect *e_selectline_tag;
!     unsigned int e_onmotion: 3;     /* action to take on motion */
!     unsigned int e_lastmoved: 1;    /* one if mouse has moved since click */
!     unsigned int e_textdirty: 1;    /* one if e_textedfor has changed */
!     unsigned int e_selectedline: 1; /* one if a line is selected */
! } t_editor;
! 
! #define MA_NONE    0 	/* e_onmotion: do nothing on mouse motion */
! #define MA_MOVE    1	/* drag the selection around */
! #define MA_CONNECT 2	/* make a connection */
! #define MA_REGION  3	/* selection region */
! #define MA_PASSOUT 4	/* send on to e_grab */
! #define MA_DRAGTEXT 5	/* drag in text editor to alter selection */
! 
! /* editor structure for "garrays".  We don't bother to delete and regenerate
! this structure when the "garray" becomes invisible or visible, although we
! could do so if the structure gets big (like the "editor" above.) */
!     
! typedef struct _arrayvis
! {
!     t_updateheader av_upd;   	    /* update header structure */
!     t_garray *av_garray;    	    /* owning structure */    
! } t_arrayvis;
! 
! /* the t_tick structure describes where to draw x and y "ticks" for a glist */
! 
! typedef struct _tick	/* where to put ticks on x or y axes */
! {
!     float k_point;  	/* one point to draw a big tick at */
!     float k_inc;    	/* x or y increment per little tick */
!     int k_lperb;    	/* little ticks per big; 0 if no ticks to draw */
! } t_tick;
! 
! /* the t_glist structure, which describes a list of elements that live on an
! area of a window.
! 
! */
! 
! struct _glist
! {  
!     t_object gl_obj; 	    	/* header in case we're a glist */
!     t_gobj *gl_list;	    	/* the actual data */
!     struct _gstub *gl_stub; 	/* safe pointer handler */
!     int gl_valid;   	    	/* incremented when pointers might be stale */
!     struct _glist *gl_owner;	/* parent glist, supercanvas, or 0 if none */
!     int gl_pixwidth;   	    	/* width in pixels (on parent, if a graph) */
!     int gl_pixheight;
!     float gl_x1;    	    	/* bounding rectangle in our own coordinates */
!     float gl_y1;
!     float gl_x2;
!     float gl_y2;
!     int gl_screenx1;	    	/* screen coordinates when toplevel */
!     int gl_screeny1;
!     int gl_screenx2;
!     int gl_screeny2;
!     t_tick gl_xtick; 	    	/* ticks marking X values */    
!     int gl_nxlabels;	    	/* number of X coordinate labels */
!     t_symbol **gl_xlabel;   	    /* ... an array to hold them */
!     float gl_xlabely;	    	    /* ... and their Y coordinates */
!     t_tick gl_ytick;	    	/* same as above for Y ticks and labels */
!     int gl_nylabels;
!     t_symbol **gl_ylabel;
!     float gl_ylabelx;
!     t_editor *gl_editor;    	/* editor structure when visible */
!     t_symbol *gl_name;	    	/* symbol bound here */
!     int gl_font;    	    	/* nominal font size in points, e.g., 10 */
!     struct _glist *gl_next; 	    /* link in list of toplevels */
!     t_canvasenvironment *gl_env;    /* root canvases and abstractions only */
!     unsigned int gl_havewindow:1;   /* true if we own a window */
!     unsigned int gl_mapped:1;       /* true if, moreover, it's "mapped" */
!     unsigned int gl_dirty:1; 	    /* (root canvas only:) patch has changed */
!     unsigned int gl_loading:1;	    /* am now loading from file */
!     unsigned int gl_willvis:1;	    /* make me visible after loading */ 
!     unsigned int gl_edit:1;  	    /* edit mode */
!     unsigned int gl_isdeleting:1;   /* we're inside glist_delete -- hack! */
!     unsigned int gl_stretch:1;	    /* stretch contents on resize */
!     unsigned int gl_isgraph:1;	    /* show as graph on parent */
! };
! 
! #define gl_gobj gl_obj.te_g
! #define gl_pd gl_gobj.g_pd
! 
! /* a data structure to describe a field in a pure datum */
! 
! #define DT_FLOAT 0
! #define DT_SYMBOL 1
! #define DT_LIST 2
! #define DT_ARRAY 3
! 
! typedef struct _dataslot
! {
!     int ds_type;
!     t_symbol *ds_name;
!     t_symbol *ds_arraytemplate;	    /* filled in for arrays only */
! } t_dataslot;
! 
! 
! /* T.Grill - changed t_pd member to t_pdobj to avoid name clashed */
! typedef struct _template
! {
!     t_pd t_pdobj;	    	/* header */
!     struct _gtemplate *t_list;	/* list of "struct"/gtemplate objects */
!     t_symbol *t_sym;	    	/* name */
!     int t_n;	    	    	/* number of dataslots (fields) */
!     t_dataslot *t_vec;	    	/* array of dataslots */
! } t_template;
! 
! struct _array
! {
!     int a_n;	    	/* number of elements */
!     int a_elemsize; 	/* size in bytes; LATER get this from template */
!     char *a_vec;  	/* array of elements */
!     t_symbol *a_templatesym;	/* template for elements */
!     int a_valid;    	/* protection against stale pointers into array */
!     t_gpointer a_gp;	/* pointer to scalar or array element we're in */
!     t_gstub *a_stub;
! };
! 
!     /* structure for traversing all the connections in a glist */
! typedef struct _linetraverser
! {
!     t_canvas *tr_x;
!     t_object *tr_ob;
!     int tr_nout;
!     int tr_outno;
!     t_object *tr_ob2;
!     t_outlet *tr_outlet;
!     t_inlet *tr_inlet;
!     int tr_nin;
!     int tr_inno;
!     int tr_x11, tr_y11, tr_x12, tr_y12;
!     int tr_x21, tr_y21, tr_x22, tr_y22;
!     int tr_lx1, tr_ly1, tr_lx2, tr_ly2;
!     t_outconnect *tr_nextoc;
!     int tr_nextoutno;
! } t_linetraverser;
! 
! /* function types used to define graphical behavior for gobjs, a bit like X
! widgets.  We don't use Pd methods because Pd's typechecking can't specify the
! types of pointer arguments.  Also it's more convenient this way, since
! every "patchable" object can just get the "text" behaviors. */
! 
!     	/* Call this to get a gobj's bounding rectangle in pixels */
! typedef void (*t_getrectfn)(t_gobj *x, struct _glist *glist,
!     int *x1, int *y1, int *x2, int *y2);
!     	/* and this to displace a gobj: */
! typedef void (*t_displacefn)(t_gobj *x, struct _glist *glist, int dx, int dy);
!     	/* change color to show selection: */
! typedef void (*t_selectfn)(t_gobj *x, struct _glist *glist, int state);
!     	/* change appearance to show activation/deactivation: */
! typedef void (*t_activatefn)(t_gobj *x, struct _glist *glist, int state);
!     	/* warn a gobj it's about to be deleted */
! typedef void (*t_deletefn)(t_gobj *x, struct _glist *glist);
!     	/*  making visible or invisible */
! typedef void (*t_visfn)(t_gobj *x, struct _glist *glist, int flag);
!     	/* field a mouse click (when not in "edit" mode) */
! typedef int (*t_clickfn)(t_gobj *x, struct _glist *glist,
!     int xpix, int ypix, int shift, int alt, int dbl, int doit);
!     	/* ... and later, resizing; getting/setting font or color... */
! 
! struct _widgetbehavior
! {
!     t_getrectfn w_getrectfn;
!     t_displacefn w_displacefn;
!     t_selectfn w_selectfn;
!     t_activatefn w_activatefn;
!     t_deletefn w_deletefn;
!     t_visfn w_visfn;
!     t_clickfn w_clickfn;
! };
! 
! /* -------- behaviors for scalars defined by objects in template --------- */
! /* these are set by "drawing commands" in g_template.c which add appearance to
! scalars, which live in some other window.  If the scalar is just included
! in a canvas the "parent" is a misnomer.  There is also a text scalar object
! which really does draw the scalar on the parent window; see g_scalar.c. */
! 
! /* note how the click function wants the whole scalar, not the "data", so
! doesn't work on array elements... LATER reconsider this */
! 
!     	/* bounding rectangle: */
! typedef void (*t_parentgetrectfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
!     int *x1, int *y1, int *x2, int *y2);
!     	/* displace it */
! typedef void (*t_parentdisplacefn)(t_gobj *x, struct _glist *glist, 
!     t_word *data, t_template *tmpl, float basex, float basey,
!     int dx, int dy);
!     	/* change color to show selection */
! typedef void (*t_parentselectfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
!     int state);
!     	/* change appearance to show activation/deactivation: */
! typedef void (*t_parentactivatefn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
!     int state);
!     	/*  making visible or invisible */
! typedef void (*t_parentvisfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
!     int flag);
!     	/*  field a mouse click */
! typedef int (*t_parentclickfn)(t_gobj *x, struct _glist *glist,
!     t_scalar *sc, t_template *tmpl, float basex, float basey,
!     int xpix, int ypix, int shift, int alt, int dbl, int doit);
! 
! struct _parentwidgetbehavior
! {
!     t_parentgetrectfn w_parentgetrectfn;
!     t_parentdisplacefn w_parentdisplacefn;
!     t_parentselectfn w_parentselectfn;
!     t_parentactivatefn w_parentactivatefn;
!     t_parentvisfn w_parentvisfn;
!     t_parentclickfn w_parentclickfn;
! };
! 
!     /* cursor definitions; used as return value for t_parentclickfn */
! #define CURSOR_RUNMODE_NOTHING 0
! #define CURSOR_RUNMODE_CLICKME 1
! #define CURSOR_RUNMODE_THICKEN 2
! #define CURSOR_RUNMODE_ADDPOINT 3
! #define CURSOR_EDITMODE_NOTHING 4
! #define CURSOR_EDITMODE_CONNECT 5
! #define CURSOR_EDITMODE_DISCONNECT 6
! EXTERN void canvas_setcursor(t_glist *x, unsigned int cursornum);
! 
! extern t_canvas *canvas_editing;    /* last canvas to start text edting */ 
! extern t_canvas *canvas_whichfind;  /* last canvas we did a find in */ 
! extern t_canvas *canvas_list;	    /* list of all root canvases */
! extern t_class *vinlet_class, *voutlet_class;
! extern int glist_valid;     	/* incremented when pointers might be stale */
! 
! /* ------------------- functions on any gobj ----------------------------- */
! EXTERN void gobj_getrect(t_gobj *x, t_glist *owner, int *x1, int *y1,
!     int *x2, int *y2);
! EXTERN void gobj_displace(t_gobj *x, t_glist *owner, int dx, int dy);
! EXTERN void gobj_select(t_gobj *x, t_glist *owner, int state);
! EXTERN void gobj_activate(t_gobj *x, t_glist *owner, int state);
! EXTERN void gobj_delete(t_gobj *x, t_glist *owner);
! EXTERN void gobj_vis(t_gobj *x, t_glist *glist, int flag);
! EXTERN int gobj_click(t_gobj *x, struct _glist *glist,
!     int xpix, int ypix, int shift, int alt, int dbl, int doit);
! EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
! EXTERN void gobj_properties(t_gobj *x, struct _glist *glist);
! EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
! 
! /* -------------------- functions on glists --------------------- */
! EXTERN t_glist *glist_new( void);
! EXTERN void glist_init(t_glist *x);
! EXTERN void glist_add(t_glist *x, t_gobj *g);
! EXTERN void glist_cleanup(t_glist *x);
! EXTERN void glist_free(t_glist *x);
! 
! EXTERN void glist_clear(t_glist *x);
! EXTERN t_canvas *glist_getcanvas(t_glist *x);
! EXTERN int glist_isselected(t_glist *x, t_gobj *y);
! EXTERN void glist_select(t_glist *x, t_gobj *y);
! EXTERN void glist_deselect(t_glist *x, t_gobj *y);
! EXTERN void glist_noselect(t_glist *x);
! EXTERN void glist_selectall(t_glist *x);
! EXTERN void glist_delete(t_glist *x, t_gobj *y);
! EXTERN void glist_retext(t_glist *x, t_text *y);
! EXTERN void glist_grab(t_glist *x, t_gobj *y, t_glistmotionfn motionfn,
!     t_glistkeyfn keyfn, int xpos, int ypos);
! EXTERN int glist_isvisible(t_glist *x);
! EXTERN int glist_istoplevel(t_glist *x);
! EXTERN t_glist *glist_findgraph(t_glist *x);
! EXTERN int glist_getfont(t_glist *x);
! EXTERN void glist_sort(t_glist *canvas);
! EXTERN void glist_read(t_glist *x, t_symbol *filename, t_symbol *format);
! EXTERN void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format);
! 
! EXTERN float glist_pixelstox(t_glist *x, float xpix);
! EXTERN float glist_pixelstoy(t_glist *x, float ypix);
! EXTERN float glist_xtopixels(t_glist *x, float xval);
! EXTERN float glist_ytopixels(t_glist *x, float yval);
! EXTERN float glist_dpixtodx(t_glist *x, float dxpix);
! EXTERN float glist_dpixtody(t_glist *x, float dypix);
! 
! EXTERN void glist_redrawitem(t_glist *owner, t_gobj *gobj);
! EXTERN void glist_getnextxy(t_glist *gl, int *xval, int *yval);
! EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
! EXTERN t_glist *glist_addglist(t_glist *g, t_symbol *sym,
!     float x1, float y1, float x2, float y2,
!     float px1, float py1, float px2, float py2);
! EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name,
!     t_floatarg size, t_floatarg saveit, t_floatarg newgraph);
! EXTERN t_binbuf *glist_writetobinbuf(t_glist *x, int wholething);
! EXTERN int glist_isgraph(t_glist *x);
! EXTERN void glist_redraw(t_glist *x);
! EXTERN void glist_drawiofor(t_glist *glist, t_object *ob, int firsttime,
!     char *tag, int x1, int y1, int x2, int y2);
! EXTERN void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag);
! EXTERN void canvas_create_editor(t_glist *x, int createit);
! void canvas_deletelinesforio(t_canvas *x, t_text *text,
!     t_inlet *inp, t_outlet *outp);
! 
! 
! /* -------------------- functions on texts ------------------------- */
! EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize);
! EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag,
!     int width, int height, int firsttime);
! EXTERN void text_eraseborder(t_text *x, t_glist *glist, char *tag);
! EXTERN int text_xcoord(t_text *x, t_glist *glist);
! EXTERN int text_ycoord(t_text *x, t_glist *glist);
! EXTERN int text_xpix(t_text *x, t_glist *glist);
! EXTERN int text_ypix(t_text *x, t_glist *glist);
! EXTERN int text_shouldvis(t_text *x, t_glist *glist);
! 
! /* -------------------- functions on rtexts ------------------------- */
! #define RTEXT_DOWN 1
! #define RTEXT_DRAG 2
! #define RTEXT_DBL 3
! #define RTEXT_SHIFT 4
! 
! EXTERN t_rtext *rtext_new(t_glist *glist, t_text *who);
! EXTERN t_rtext *glist_findrtext(t_glist *gl, t_text *who);
! EXTERN void rtext_draw(t_rtext *x);
! EXTERN void rtext_erase(t_rtext *x);
! EXTERN t_rtext *rtext_remove(t_rtext *first, t_rtext *x);
! EXTERN int rtext_height(t_rtext *x);
! EXTERN void rtext_displace(t_rtext *x, int dx, int dy);
! EXTERN void rtext_select(t_rtext *x, int state);
! EXTERN void rtext_activate(t_rtext *x, int state);
! EXTERN void rtext_free(t_rtext *x);
! EXTERN void rtext_key(t_rtext *x, int n, t_symbol *s);
! EXTERN void rtext_mouse(t_rtext *x, int xval, int yval, int flag);
! EXTERN void rtext_retext(t_rtext *x);
! EXTERN int rtext_width(t_rtext *x);
! EXTERN int rtext_height(t_rtext *x);
! EXTERN char *rtext_gettag(t_rtext *x);
! EXTERN void rtext_gettext(t_rtext *x, char **buf, int *bufsize);
! 
! /* -------------------- functions on canvases ------------------------ */
! EXTERN t_class *canvas_class;
! 
! EXTERN t_canvas *canvas_new(void *dummy, t_symbol *sel, int argc, t_atom *argv);
! EXTERN t_symbol *canvas_makebindsym(t_symbol *s);
! EXTERN void canvas_vistext(t_canvas *x, t_text *y);
! EXTERN void canvas_fixlinesfor(t_canvas *x, t_text *text);
! EXTERN void canvas_deletelinesfor(t_canvas *x, t_text *text);
! EXTERN void canvas_stowconnections(t_canvas *x);
! EXTERN void canvas_restoreconnections(t_canvas *x);
! EXTERN void canvas_redraw(t_canvas *x);
! 
! EXTERN t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *sym);
! EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip);
! EXTERN t_outlet *canvas_addoutlet(t_canvas *x, t_pd *who, t_symbol *sym);
! EXTERN void canvas_rmoutlet(t_canvas *x, t_outlet *op);
! EXTERN void canvas_redrawallfortemplate(t_canvas *tmpl);
! EXTERN void canvas_zapallfortemplate(t_canvas *tmpl);
! EXTERN void canvas_setusedastemplate(t_canvas *x);
! EXTERN t_canvas *canvas_getcurrent(void);
! EXTERN void canvas_setcurrent(t_canvas *x);
! EXTERN void canvas_unsetcurrent(t_canvas *x);
! EXTERN t_symbol *canvas_realizedollar(t_canvas *x, t_symbol *s);
! EXTERN t_canvas *canvas_getrootfor(t_canvas *x);
! EXTERN void canvas_dirty(t_canvas *x, t_int n);
! EXTERN int canvas_getfont(t_canvas *x);
! typedef int (*t_canvasapply)(t_canvas *x, t_int x1, t_int x2, t_int x3);
! 
! EXTERN t_int *canvas_recurapply(t_canvas *x, t_canvasapply *fn,
!     t_int x1, t_int x2, t_int x3);
! 
! EXTERN void canvas_resortinlets(t_canvas *x);
! EXTERN void canvas_resortoutlets(t_canvas *x);
! EXTERN void canvas_free(t_canvas *x);
! EXTERN void canvas_updatewindowlist( void);
! EXTERN void canvas_editmode(t_canvas *x, t_floatarg yesplease);
! EXTERN int canvas_isabstraction(t_canvas *x);
! EXTERN int canvas_istable(t_canvas *x);
! EXTERN int canvas_showtext(t_canvas *x);
! EXTERN void canvas_vis(t_canvas *x, t_floatarg f);
! EXTERN t_canvasenvironment *canvas_getenv(t_canvas *x);
! EXTERN void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir);
! EXTERN void canvas_loadbang(t_canvas *x);
! EXTERN int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos,
!     int *x1p, int *y1p, int *x2p, int *y2p);
! EXTERN int canvas_setdeleting(t_canvas *x, int flag);
! 
! typedef void (*t_undofn)(t_canvas *canvas, void *buf,
!     int action);	/* a function that does UNDO/REDO */
! #define UNDO_FREE 0	    	    	/* free current undo/redo buffer */
! #define UNDO_UNDO 1 	    	    	/* undo */
! #define UNDO_REDO 2 	    	    	/* redo */
! EXTERN void canvas_setundo(t_canvas *x, t_undofn undofn, void *buf,
!     const char *name);
! EXTERN void canvas_noundo(t_canvas *x);
! EXTERN int canvas_getindex(t_canvas *x, t_gobj *y);
! 
! /* T.Grill - made public for dynamic object creation */
! /* in g_editor.c */
! EXTERN void canvas_connect(t_canvas *x,
!     t_floatarg fwhoout, t_floatarg foutno,t_floatarg fwhoin, t_floatarg finno);
! EXTERN void canvas_disconnect(t_canvas *x,
!     float index1, float outno, float index2, float inno);
! EXTERN int canvas_isconnected (t_canvas *x,
!     t_text *ob1, int n1, t_text *ob2, int n2);
! EXTERN void canvas_selectinrect(t_canvas *x, int lox, int loy, int hix, int hiy);
! 
! 
! /* ---- functions on canvasses as objects  --------------------- */
! 
! EXTERN void canvas_fattenforscalars(t_canvas *x,
!     int *x1, int *y1, int *x2, int *y2);
! EXTERN void canvas_visforscalars(t_canvas *x, t_glist *glist, int vis);
! EXTERN int canvas_clicksub(t_canvas *x, int xpix, int ypix, int shift,
!     int alt, int dbl, int doit);
! EXTERN t_glist *canvas_getglistonsuper(void);
! 
! EXTERN void linetraverser_start(t_linetraverser *t, t_canvas *x);
! EXTERN t_outconnect *linetraverser_next(t_linetraverser *t);
! EXTERN void linetraverser_skipobject(t_linetraverser *t);
! 
! /* --------------------- functions on tscalars --------------------- */
! 
! EXTERN void tscalar_getrect(t_tscalar *x, t_glist *owner,
!     int *xp1, int *yp1, int *xp2, int *yp2);
! EXTERN void tscalar_vis(t_tscalar *x, t_glist *owner, int flag);
! EXTERN int tscalar_click(t_tscalar *x, int xpix, int ypix, int shift,
!     int alt, int dbl, int doit);
! 
! /* --------- functions on garrays (graphical arrays) -------------------- */
! 
! EXTERN t_template *garray_template(t_garray *x);
! 
! /* -------------------- arrays --------------------- */
! EXTERN t_garray *graph_array(t_glist *gl, t_symbol *s, t_symbol *tmpl,
!     t_floatarg f, t_floatarg saveit);
! EXTERN t_array *array_new(t_symbol *templatesym, t_gpointer *parent);
! EXTERN void array_resize(t_array *x, t_template *tmpl, int n);
! EXTERN void array_free(t_array *x);
! 
! /* --------------------- gpointers and stubs ---------------- */
! EXTERN t_gstub *gstub_new(t_glist *gl, t_array *a);
! EXTERN void gstub_cutoff(t_gstub *gs);
! EXTERN void gpointer_setglist(t_gpointer *gp, t_glist *glist, t_scalar *x);
! 
! /* --------------------- scalars ------------------------- */
! EXTERN void word_init(t_word *wp, t_template *tmpl, t_gpointer *gp);
! EXTERN void word_restore(t_word *wp, t_template *tmpl,
!     int argc, t_atom *argv);
! EXTERN t_scalar *scalar_new(t_glist *owner,
!     t_symbol *templatesym);
! EXTERN void scalar_getbasexy(t_scalar *x, float *basex, float *basey);
! 
! /* ------helper routines for "garrays" and "plots" -------------- */
! EXTERN int array_doclick(t_array *array, t_glist *glist, t_gobj *gobj,
!     t_symbol *elemtemplatesym,
!     float linewidth, float xloc, float xinc, float yloc,
!     int xpix, int ypix, int shift, int alt, int dbl, int doit);
! 
! EXTERN void array_getcoordinate(t_glist *glist,
!     char *elem, int xonset, int yonset, int wonset, int indx,
!     float basex, float basey, float xinc,
!     float *xp, float *yp, float *wp);
! 
! EXTERN int array_getfields(t_symbol *elemtemplatesym,
!     t_canvas **elemtemplatecanvasp,
!     t_template **elemtemplatep, int *elemsizep,
!     int *xonsetp, int *yonsetp, int *wonsetp);
! 
! /* --------------------- templates ------------------------- */
! EXTERN t_template *template_new(t_symbol *sym, int argc, t_atom *argv);
! EXTERN void template_free(t_template *x);
! EXTERN int template_match(t_template *x1, t_template *x2);
! EXTERN int template_find_field(t_template *x, t_symbol *name, int *p_onset,
!     int *p_type, t_symbol **p_arraytype);
! EXTERN t_float template_getfloat(t_template *x, t_symbol *fieldname, t_word *wp,
!     int loud);
! EXTERN void template_setfloat(t_template *x, t_symbol *fieldname, t_word *wp,
!     t_float f, int loud);
! EXTERN t_symbol *template_getsymbol(t_template *x, t_symbol *fieldname,
!     t_word *wp, int loud);
! EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
!     t_word *wp, t_symbol *s, int loud);
! 
! EXTERN t_template *gtemplate_get(t_gtemplate *x);
! EXTERN t_template *template_findbyname(t_symbol *s);
! EXTERN t_canvas *template_findcanvas(t_template *tmpl);
! 
! EXTERN t_float template_getfloat(t_template *x, t_symbol *fieldname,
!     t_word *wp, int loud);
! EXTERN void template_setfloat(t_template *x, t_symbol *fieldname,
!     t_word *wp, t_float f, int loud);
! EXTERN t_symbol *template_getsymbol(t_template *x, t_symbol *fieldname,
!     t_word *wp, int loud);
! EXTERN void template_setsymbol(t_template *x, t_symbol *fieldname,
!     t_word *wp, t_symbol *s, int loud);
! 
! /* ----------------------- guiconnects, g_guiconnect.c --------- */
! EXTERN t_guiconnect *guiconnect_new(t_pd *who, t_symbol *sym);
! EXTERN void guiconnect_notarget(t_guiconnect *x, double timedelay);
! 
! /* ------------- IEMGUI routines used in other g_ files ---------------- */
! EXTERN t_symbol *iemgui_raute2dollar(t_symbol *s);
! EXTERN t_symbol *iemgui_dollar2raute(t_symbol *s);
! 
! #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
! }
! #endif
--- 1 ----
! #include "../../pd/src/g_canvas.h"

Index: s_stuff.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/s_stuff.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** s_stuff.h	5 Nov 2003 11:26:09 -0000	1.2
--- s_stuff.h	12 Apr 2005 11:43:07 -0000	1.3
***************
*** 1,218 ****
! /* Copyright (c) 1997-1999 Miller Puckette.
! * For information on usage and redistribution, and for a DISCLAIMER OF ALL
! * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
! 
! /* Audio and MIDI I/O, and other scheduling and system stuff. */
! 
! /* NOTE: this file describes Pd implementation details which may change
! in future releases.  The public (stable) API is in m_pd.h. */  
! 
! /* in s_file.c */
! typedef struct _namelist
! {
!     struct _namelist *nl_next;
!     char *nl_string;
! } t_namelist;
! 
! t_namelist *namelist_append(t_namelist *listwas, const char *s);
! void namelist_free(t_namelist *listwas);
! 
! /* s_main.c */
! extern int sys_debuglevel;
! extern int sys_verbose;
! extern int sys_noloadbang;
! extern int sys_nogui;
! extern char *sys_guicmd;
! 
! EXTERN int sys_nearestfontsize(int fontsize);
! EXTERN int sys_hostfontsize(int fontsize);
! 
! extern int sys_defaultfont;
! extern t_symbol *sys_libdir;	/* library directory for auxilliary files */
! 
! /* s_loader.c */
! int sys_load_lib(char *dirname, char *filename);
! 
! /* s_audio.c */
! 
! #define SENDDACS_NO 0	    	/* return values for sys_send_dacs() */
! #define SENDDACS_YES 1 
! #define SENDDACS_SLEPT 2
! 
! #define DEFDACBLKSIZE 64
! extern int sys_schedblocksize;	/* audio block size for scheduler */
! extern int sys_hipriority;   	/* real-time flag, true if priority boosted */
! extern t_sample *sys_soundout;
! extern t_sample *sys_soundin;
! extern int sys_inchannels;
! extern int sys_outchannels;
! extern int sys_advance_samples; /* scheduler advance in samples */
! extern int sys_blocksize;   	/* audio I/O block size in sample frames */
! extern float sys_dacsr;
! extern int sys_schedadvance;
! extern int sys_sleepgrain;
! void sys_open_audio(int naudioindev, int *audioindev,
!     int nchindev, int *chindev,
!     int naudiooutdev, int *audiooutdev, int nchoutdev, int *choutdev,
!     int srate, int advance, int enable);
! void sys_close_audio(void);
! 
!     /* s_midi.c */
! void sys_open_midi(int nmidiin, int *midiinvec, int nmidiout, int *midioutvec);
! 
!     /* implemented in the system dependent MIDI code (s_midi_pm.c, etc. ) */
! void sys_do_open_midi(int nmidiin, int *midiinvec,
!     int nmidiout, int *midioutvec);
! void sys_close_midi(void);
! void midi_getdevs(char *indevlist, int *nindevs,
!     char *outdevlist, int *noutdevs, int maxndev, int devdescsize);
! 
! int sys_send_dacs(void);
! void sys_reportidle(void);
! void sys_set_priority(int higher);
! void sys_audiobuf(int nbufs);
! void sys_getmeters(float *inmax, float *outmax);
! void sys_listdevs(void);
! void sys_setblocksize(int n);
! 
! /* s_midi.c */
! #define MAXMIDIINDEV 16    	/* max. number of input ports */
! #define MAXMIDIOUTDEV 16    	/* max. number of output ports */
! extern int sys_nmidiin;
! extern int sys_nmidiout;
! extern int sys_midiindevlist[];
! extern int sys_midioutdevlist[];
! 
! EXTERN void sys_putmidimess(int portno, int a, int b, int c);
! EXTERN void sys_putmidibyte(int portno, int a);
! EXTERN void sys_poll_midi(void);
! EXTERN void sys_setmiditimediff(double inbuftime, double outbuftime);
! EXTERN void sys_midibytein(int portno, int byte);
! 
! /* m_sched.c */
! EXTERN void sys_log_error(int type);
! #define ERR_NOTHING 0
! #define ERR_ADCSLEPT 1
! #define ERR_DACSLEPT 2
! #define ERR_RESYNC 3
! #define ERR_DATALATE 4
! void sched_set_using_dacs(int flag);
! 
! /* s_inter.c */
! 
! EXTERN void sys_microsleep(int microsec);
! 
! EXTERN void sys_bail(int exitcode);
! EXTERN int sys_pollgui(void);
! 
! EXTERN_STRUCT _socketreceiver;
! #define t_socketreceiver struct _socketreceiver
! 
! typedef void (*t_socketnotifier)(void *x);
! typedef void (*t_socketreceivefn)(void *x, t_binbuf *b);
! 
! EXTERN t_socketreceiver *socketreceiver_new(void *owner,
!     t_socketnotifier notifier, t_socketreceivefn socketreceivefn, int udp);
! EXTERN void socketreceiver_read(t_socketreceiver *x, int fd);
! EXTERN void sys_sockerror(char *s);
! EXTERN void sys_closesocket(int fd);
! 
! typedef void (*t_fdpollfn)(void *ptr, int fd);
! EXTERN void sys_addpollfn(int fd, t_fdpollfn fn, void *ptr);
! EXTERN void sys_rmpollfn(int fd);
! #ifdef UNIX
! void sys_setalarm(int microsec);
! void sys_setvirtualalarm( void);
! #endif
! 
! #define API_ALSA 1
! #define API_OSS 2
! #define API_MMIO 3
! #define API_PORTAUDIO 4
! #define API_JACK 5
! 
! #ifdef __linux__
! #define API_DEFAULT API_OSS
! #define API_DEFSTRING "OSS"
! #endif
! #ifdef MSW
! #define API_DEFAULT API_MMIO
! #define API_DEFSTRING "MMIO"
! #endif
! #ifdef MACOSX
! #define API_DEFAULT API_PORTAUDIO
! #define API_DEFSTRING "portaudio"
! #endif
! #define DEFAULTAUDIODEV 0
! 
! #define MAXAUDIOINDEV 4
! #define MAXAUDIOOUTDEV 4
! 
! #define DEFMIDIDEV 0
! 
! #define DEFAULTSRATE 44100
! #ifdef MSW
! #define DEFAULTADVANCE 70
! #else
! #define DEFAULTADVANCE 50
! #endif
! 
! int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin,
!     t_sample *soundout, int framesperbuf, int nbuffers,
!     int indeviceno, int outdeviceno);
! void pa_close_audio(void);
! int pa_send_dacs(void);
! void sys_reportidle(void);
! void pa_listdevs(void);
! void pa_getdevs(char *indevlist, int *nindevs,
!     char *outdevlist, int *noutdevs, int *canmulti, 
!     	int maxndev, int devdescsize);
! 
! int oss_open_audio(int naudioindev, int *audioindev, int nchindev,
!     int *chindev, int naudiooutdev, int *audiooutdev, int nchoutdev,
!     int *choutdev, int rate); /* IOhannes */
! void oss_close_audio(void);
! int oss_send_dacs(void);
! void oss_reportidle(void);
! void oss_getdevs(char *indevlist, int *nindevs,
!     char *outdevlist, int *noutdevs, int *canmulti, 
!     	int maxndev, int devdescsize);
! 
! int alsa_open_audio(int naudioindev, int *audioindev, int nchindev,
!     int *chindev, int naudiooutdev, int *audiooutdev, int nchoutdev,
!     int *choutdev, int rate);
! void alsa_close_audio(void);
! int alsa_send_dacs(void);
! void alsa_reportidle(void);
! void alsa_getdevs(char *indevlist, int *nindevs,
!     char *outdevlist, int *noutdevs, int *canmulti, 
!     	int maxndev, int devdescsize);
! 
! int jack_open_audio(int wantinchans, int wantoutchans, int srate);
! void jack_close_audio(void);
! int jack_send_dacs(void);
! void jack_reportidle(void);
! void jack_getdevs(char *indevlist, int *nindevs,
!     char *outdevlist, int *noutdevs, int *canmulti, 
!     	int maxndev, int devdescsize);
! void jack_listdevs(void);
! 
! void mmio_open_audio(int naudioindev, int *audioindev,
!     int nchindev, int *chindev, int naudiooutdev, int *audiooutdev,
!     int nchoutdev, int *choutdev, int rate);
! void mmio_close_audio( void);
! void mmio_reportidle(void);
! int mmio_send_dacs(void);
! void mmio_getdevs(char *indevlist, int *nindevs,
!     char *outdevlist, int *noutdevs, int *canmulti, 
!     	int maxndev, int devdescsize);
! 
! void sys_listmididevs(void);
! void sys_set_audio_api(int whichapi);
! void sys_get_audio_apis(char *buf);
! extern int sys_audioapi;
! void sys_set_audio_state(int onoff);
! 
! /* API dependent audio flags and settings */
! void oss_set32bit( void);
! void linux_alsa_devname(char *devname);
--- 1 ----
! #include "../../pd/src/s_stuff.h"

Index: g_all_guis.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/g_all_guis.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** g_all_guis.h	5 Nov 2003 11:26:09 -0000	1.3
--- g_all_guis.h	12 Apr 2005 11:43:06 -0000	1.4
***************
*** 1,323 ****
! /* Copyright (c) 1997-1999 Miller Puckette.
! * For information on usage and redistribution, and for a DISCLAIMER OF ALL
! * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
! /* g_7_guis.h written by Thomas Musil (c) IEM KUG Graz Austria 2000-2001 */
! 
! 
! #define IEM_GUI_COLNR_WHITE          0
! #define IEM_GUI_COLNR_ML_GREY        1
! #define IEM_GUI_COLNR_D_GREY         2
! #define IEM_GUI_COLNR_L_RED          3
! #define IEM_GUI_COLNR_L_ORANGE       4
! #define IEM_GUI_COLNR_L_YELLOW       5
! #define IEM_GUI_COLNR_L_GREEN        6
! #define IEM_GUI_COLNR_L_CYAN         7
! #define IEM_GUI_COLNR_L_BLUE         8
! #define IEM_GUI_COLNR_L_MAGENTA      9
! 
! #define IEM_GUI_COLNR_LL_GREY        10
! #define IEM_GUI_COLNR_M_GREY         11
! #define IEM_GUI_COLNR_DD_GREY        12
! #define IEM_GUI_COLNR_RED            13
! #define IEM_GUI_COLNR_ORANGE         14
! #define IEM_GUI_COLNR_YELLOW         15
! #define IEM_GUI_COLNR_GREEN          16
! #define IEM_GUI_COLNR_CYAN           17
! #define IEM_GUI_COLNR_BLUE           18
! #define IEM_GUI_COLNR_MAGENTA        19
! 
! #define IEM_GUI_COLNR_L_GREY         20
! #define IEM_GUI_COLNR_MD_GREY        21
! #define IEM_GUI_COLNR_BLACK          22
! #define IEM_GUI_COLNR_D_RED          23
! #define IEM_GUI_COLNR_D_ORANGE       24
! #define IEM_GUI_COLNR_D_YELLOW       25
! #define IEM_GUI_COLNR_D_GREEN        26
! #define IEM_GUI_COLNR_D_CYAN         27
! #define IEM_GUI_COLNR_D_BLUE         28
! #define IEM_GUI_COLNR_D_MAGENTA      29
! 
! #define IEM_GUI_COLOR_SELECTED       255
! #define IEM_GUI_COLOR_NORMAL         0
! 
! #define IEM_GUI_MAX_COLOR            30
! 
! #define IEM_GUI_DEFAULTSIZE 15
! #define IEM_GUI_MINSIZE 8
! #define IEM_GUI_MAXSIZE 1000
! #define IEM_SL_DEFAULTSIZE 128
! #define IEM_SL_MINSIZE 2
! #define IEM_FONT_MINSIZE 4
! 
! #define IEM_BNG_DEFAULTHOLDFLASHTIME 250
! #define IEM_BNG_DEFAULTBREAKFLASHTIME 50
! #define IEM_BNG_MINHOLDFLASHTIME 50
! #define IEM_BNG_MINBREAKFLASHTIME 10
! 
! #define IEM_VU_DEFAULTSIZE 3
! #define IEM_VU_LARGESMALL  2
! #define IEM_VU_MINSIZE     2
! #define IEM_VU_MAXSIZE     25
! #define IEM_VU_STEPS       40
! 
! #define IEM_VU_MINDB    -99.9
! #define IEM_VU_MAXDB    12.0
! #define IEM_VU_OFFSET   100.0
! 
! #define IEM_RADIO_MAX   128
! 
! #define IEM_SYM_UNIQUE_SND  256
! #define IEM_SYM_UNIQUE_RCV  512
! #define IEM_SYM_UNIQUE_LAB  1024
! #define IEM_SYM_UNIQUE_ALL  1792
! #define IEM_FONT_STYLE_ALL  255
! 
! #define IEM_MAX_SYM_LEN      127
! 
! #define IEM_GUI_DRAW_MODE_UPDATE 0
! #define IEM_GUI_DRAW_MODE_MOVE   1
! #define IEM_GUI_DRAW_MODE_NEW    2
! #define IEM_GUI_DRAW_MODE_SELECT 3
! #define IEM_GUI_DRAW_MODE_ERASE  4
! #define IEM_GUI_DRAW_MODE_CONFIG 5
! #define IEM_GUI_DRAW_MODE_IO     6
! 
! 
! #define IS_A_POINTER(atom,index) ((atom+index)->a_type == A_POINTER)
! #define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT)
! #define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL)
! #define IS_A_DOLLAR(atom,index) ((atom+index)->a_type == A_DOLLAR)
! #define IS_A_DOLLSYM(atom,index) ((atom+index)->a_type == A_DOLLSYM)
! 
! #define IEM_FSTYLE_FLAGS_ALL 0x007fffff
! #define IEM_INIT_ARGS_ALL    0x01ffffff
! 
! #define IEM_GUI_OLD_SND_FLAG 1
! #define IEM_GUI_OLD_RCV_FLAG 2
! 
! #define IEM_GUI_COLOR_EDITED 16711680
! #define IEMGUI_MAX_NUM_LEN 32
! 
! typedef struct _iem_fstyle_flags
! {
!     unsigned int x_font_style:6;
!     unsigned int x_rcv_able:1;
!     unsigned int x_snd_able:1;
!     unsigned int x_lab_is_unique:1;
!     unsigned int x_rcv_is_unique:1;
!     unsigned int x_snd_is_unique:1;
!     unsigned int x_lab_arg_tail_len:6;
!     unsigned int x_lab_is_arg_num:6;
!     unsigned int x_shiftdown:1;
!     unsigned int x_selected:1;
!     unsigned int x_finemoved:1;
!     unsigned int x_put_in2out:1;
!     unsigned int x_change:1;
!     unsigned int x_thick:1;
!     unsigned int x_lin0_log1:1;
!     unsigned int x_steady:1;
!     unsigned int dummy:1;
! } t_iem_fstyle_flags;
! 
! typedef struct _iem_init_symargs
! {
!     unsigned int x_loadinit:1;
!     unsigned int x_rcv_arg_tail_len:6;
!     unsigned int x_snd_arg_tail_len:6;
!     unsigned int x_rcv_is_arg_num:6;
!     unsigned int x_snd_is_arg_num:6;
!     unsigned int x_scale:1;
!     unsigned int x_flashed:1;
!     unsigned int x_locked:1;
!     unsigned int x_reverse:1; /* bugfix */
!     unsigned int dummy:3;
! } t_iem_init_symargs;
! 
! typedef void (*t_iemfunptr)(void *x, t_glist *glist, int mode);
! 
! typedef struct _iemgui
! {
!     t_object           x_obj;
!     t_glist            *x_glist;
!     t_iemfunptr        x_draw;
!     int                x_h;
!     int                x_w;
!     int                x_ldx;
!     int                x_ldy;
!     char               x_font[16];
!     t_iem_fstyle_flags x_fsf;
!     int                x_fontsize;
!     t_iem_init_symargs x_isa;
!     int                x_fcol;
!     int                x_bcol;
!     int                x_lcol;
!     int                x_unique_num;
!     t_symbol           *x_snd;
!     t_symbol           *x_rcv;
!     t_symbol           *x_lab;
! } t_iemgui;
! 
! typedef struct _iemguidummy
! {
!     t_iemgui x_gui;
!     int      x_dum1;
!     int      x_dum2;
!     int      x_dum3;
! } t_iemguidummy;
! 
! typedef struct _bng
! {
!     t_iemgui x_gui;
!     int      x_flashed;
!     int      x_flashtime_break;
!     int      x_flashtime_hold;
!     t_clock  *x_clock_hld;
!     t_clock  *x_clock_brk;
!     t_clock  *x_clock_lck;
! } t_bng;
! 
! typedef struct _hslider
! {
!     t_iemgui x_gui;
!     int      x_pos;
!     int      x_val;
!     int      x_center;
!     int      x_thick;
!     int      x_lin0_log1;
!     int      x_steady;
!     double   x_min;
!     double   x_max;
!     double   x_k;
! } t_hslider;
! 
! typedef struct _hdial
! {
!     t_iemgui x_gui;
!     int      x_on;
!     int      x_on_old;
!     int      x_change;
!     int      x_number;
!     t_atom   x_at[2];
! } t_hdial;
! 
! typedef struct _toggle
! {
!     t_iemgui x_gui;
!     float    x_on;
!     float    x_nonzero;
! } t_toggle;
! 
! typedef struct _my_canvas
! {
!     t_iemgui x_gui;
!     t_atom   x_at[3];
!     int      x_vis_w;
!     int      x_vis_h;
! } t_my_canvas;
! 
! typedef struct _vslider
! {
!     t_iemgui x_gui;
!     int      x_pos;
!     int      x_val;
!     int      x_lin0_log1;
!     int      x_steady;
!     double   x_min;
!     double   x_max;
!     double   x_k;
! } t_vslider;
! 
! typedef struct _vu
! {
!     t_iemgui x_gui;
!     int      x_led_size;
!     int      x_peak;
!     int      x_rms;
!     float    x_fp;
!     float    x_fr;
!     int      x_scale;
!     void     *x_out_rms;
!     void     *x_out_peak;
! } t_vu;
! 
! typedef struct _my_numbox
! {
!     t_iemgui x_gui;
!     t_clock  *x_clock_reset;
!     t_clock  *x_clock_wait;
!     double   x_val;
!     double   x_min;
!     double   x_max;
!     double   x_k;
!     int      x_lin0_log1;
!     char     x_buf[IEMGUI_MAX_NUM_LEN];
!     int      x_numwidth;
!     int      x_log_height;
! } t_my_numbox;
! 
! typedef struct _vdial
! {
!     t_iemgui x_gui;
!     int      x_on;
!     int      x_on_old;
!     int      x_change;
!     int      x_number;
!     t_atom   x_at[2];
! } t_vdial;
! 
! #define t_vradio t_vdial
! #define t_hradio t_hdial
! 
! extern int sys_noloadbang;
! extern int iemgui_color_hex[];
! extern int iemgui_vu_db2i[];
! extern int iemgui_vu_col[];
! extern char *iemgui_vu_scale_str[];
! 
! EXTERN int iemgui_clip_size(int size);
! EXTERN int iemgui_clip_font(int size);
! EXTERN int iemgui_modulo_color(int col);
! EXTERN t_symbol *iemgui_unique2dollarzero(t_symbol *s, int unique_num, int and_unique_flag);
! EXTERN t_symbol *iemgui_sym2dollararg(t_symbol *s, int nth_arg, int tail_len);
! EXTERN t_symbol *iemgui_dollarzero2unique(t_symbol *s, int unique_num);
! EXTERN t_symbol *iemgui_dollararg2sym(t_symbol *s, int nth_arg, int tail_len, int pargc, t_atom *pargv);
! EXTERN int iemgui_is_dollarzero(t_symbol *s);
! EXTERN int iemgui_is_dollararg(t_symbol *s, int *tail_len);
! EXTERN void iemgui_fetch_unique(t_iemgui *iemgui);
! EXTERN void iemgui_fetch_parent_args(t_iemgui *iemgui, int *pargc, t_atom **pargv);
! EXTERN void iemgui_verify_snd_ne_rcv(t_iemgui *iemgui);
! EXTERN void iemgui_all_unique2dollarzero(t_iemgui *iemgui, t_symbol **srlsym);
! EXTERN void iemgui_all_sym2dollararg(t_iemgui *iemgui, t_symbol **srlsym);
! EXTERN void iemgui_all_dollarzero2unique(t_iemgui *iemgui, t_symbol **srlsym);
! EXTERN void iemgui_all_dollararg2sym(t_iemgui *iemgui, t_symbol **srlsym);
! EXTERN void iemgui_first_dollararg2sym(t_iemgui *iemgui, t_symbol **srlsym);
! EXTERN void iemgui_all_col2save(t_iemgui *iemgui, int *bflcol);
! EXTERN void iemgui_all_colfromload(t_iemgui *iemgui, int *bflcol);
! EXTERN int iemgui_compatible_col(int i);
! EXTERN void iemgui_all_dollar2raute(t_symbol **srlsym);
! EXTERN void iemgui_all_raute2dollar(t_symbol **srlsym);
! EXTERN void iemgui_send(void *x, t_iemgui *iemgui, t_symbol *s);
! EXTERN void iemgui_receive(void *x, t_iemgui *iemgui, t_symbol *s);
! EXTERN void iemgui_label(void *x, t_iemgui *iemgui, t_symbol *s);
! EXTERN void iemgui_label_pos(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
! EXTERN void iemgui_label_font(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
! EXTERN void iemgui_size(void *x, t_iemgui *iemgui);
! EXTERN void iemgui_delta(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
! EXTERN void iemgui_pos(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
! EXTERN void iemgui_color(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
! EXTERN int iemgui_list(void *x, t_iemgui *iemgui, t_symbol *s, int ac, t_atom *av);
! EXTERN void iemgui_displace(t_gobj *z, t_glist *glist, int dx, int dy);
! EXTERN void iemgui_select(t_gobj *z, t_glist *glist, int selected);
! EXTERN void iemgui_delete(t_gobj *z, t_glist *glist);
! EXTERN void iemgui_vis(t_gobj *z, t_glist *glist, int vis);
! EXTERN void iemgui_save(t_iemgui *iemgui, t_symbol **srl, int *bflcol);
! EXTERN void iemgui_properties(t_iemgui *iemgui, t_symbol **srl);
! EXTERN int iemgui_dialog(t_iemgui *iemgui, t_symbol **srl, int argc, t_atom *argv);
! 
! EXTERN int canvas_getdollarzero(void);
! EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
! 
! EXTERN void iem_inttosymargs(t_iem_init_symargs *symargp, int n);
! EXTERN int iem_symargstoint(t_iem_init_symargs *symargp);
! EXTERN void iem_inttofstyle(t_iem_fstyle_flags *fstylep, int n);
! EXTERN int iem_fstyletoint(t_iem_fstyle_flags *fstylep);
--- 1 ----
! #include "../../pd/src/g_all_guis.h"

Index: m_imp.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/m_imp.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** m_imp.h	5 Nov 2003 11:26:09 -0000	1.4
--- m_imp.h	12 Apr 2005 11:43:07 -0000	1.5
***************
*** 1,78 ****
! /* Copyright (c) 1997-1999 Miller Puckette.
! * For information on usage and redistribution, and for a DISCLAIMER OF ALL
! * WARRANTIES, see the file, "LICENSE.txt," in this distribution.  */
! 
! /* This file contains function prototypes and data types used to implement
! Pd, but not shared with Pd objects. */
! 
! /* NOTE: this file describes Pd implementation details which may change
! in future releases.  The public (stable) API is in m_pd.h. */  
! 
! /* LATER consider whether to use 'char' for method arg types to save space */
! 
! /* the structure for a method handler ala Max */
! typedef struct _methodentry
! {
!     t_symbol *me_name;
!     t_gotfn me_fun;
!     t_atomtype me_arg[MAXPDARG+1];
! } t_methodentry;
! 
! EXTERN_STRUCT _widgetbehavior;
! 
! typedef void (*t_bangmethod)(t_pd *x);
! typedef void (*t_pointermethod)(t_pd *x, t_gpointer *gp);
! typedef void (*t_floatmethod)(t_pd *x, t_float f);
! typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s);
! 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);
! 
! struct _class
! {
!     t_symbol *c_name;	    	    	/* name (mostly for error reporting) */
!     t_symbol *c_helpname;   	    	/* name of help file */
!     t_symbol *c_externdir;  	    	/* directory extern was loaded from */
!     size_t c_size;  	    	    	/* size of an instance */
!     t_methodentry *c_methods;	    	/* methods other than bang, etc below */
!     int c_nmethod;  	    	    	/* number of methods */
!     t_method c_freemethod;	    	/* function to call before freeing */
!     t_bangmethod c_bangmethod;	    	/* common methods */
!     t_pointermethod c_pointermethod;
!     t_floatmethod c_floatmethod;
!     t_symbolmethod c_symbolmethod;
!     t_listmethod c_listmethod;
!     t_anymethod c_anymethod;
!     struct _widgetbehavior *c_wb; 	/* "gobjs" only */
!     struct _parentwidgetbehavior *c_pwb;/* widget behavior in parent */
!     t_savefn c_savefn;	    	    	/* function to call when saving */
!     t_propertiesfn c_propertiesfn; 	/* function to start prop dialog */
!     int c_floatsignalin; 	    	/* onset to float for signal input */
!     char c_gobj;	    		/* true if is a gobj */
!     char c_patchable;	    	    	/* true if we have a t_object header */
!     char c_firstin; 	    	    /* if patchable, true if draw first inlet */
!     char c_drawcommand; 	    /* a drawing command for a template */
! };
! 
! 
! /* m_obj.c */
! EXTERN int obj_noutlets(t_object *x);
! EXTERN int obj_ninlets(t_object *x);
! EXTERN t_outconnect *obj_starttraverseoutlet(t_object *x, t_outlet **op,
!     int nout);
! EXTERN t_outconnect *obj_nexttraverseoutlet(t_outconnect *lastconnect,
!     t_object **destp, t_inlet **inletp, int *whichp);
! EXTERN t_outconnect *obj_connect(t_object *source, int outno,
!     t_object *sink, int inno);
! EXTERN void obj_disconnect(t_object *source, int outno, t_object *sink,
!     int inno);
! EXTERN void outlet_setstacklim(void);
! EXTERN int obj_issignalinlet(t_object *x, int m);
! EXTERN int obj_issignaloutlet(t_object *x, int m);
! EXTERN int obj_nsiginlets(t_object *x);
! EXTERN int obj_nsigoutlets(t_object *x);
! EXTERN int obj_siginletindex(t_object *x, int m);
! EXTERN int obj_sigoutletindex(t_object *x, int m);
! 
! /* misc */
! EXTERN void glob_evalfile(t_pd *ignore, t_symbol *name, t_symbol *dir);
! EXTERN void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv);
--- 1 ----
! #include "../../pd/src/m_imp.h"





More information about the Pd-cvs mailing list