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

Hans-Christoph Steiner eighthave at users.sourceforge.net
Tue Apr 12 17:59:05 CEST 2005


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

Modified Files:
	g_all_guis.h g_canvas.h m_imp.h m_pd.h s_stuff.h t_tk.h 
Added Files:
	README 
Log Message:

- added headers from 0.38-4 to externals/build/include and added README so
  people don't repeat the same mistake of removing/etc.

- added Pd src to include search before externals/build/include so if the Pd
  src is in the standard dev layout, externals will be compiled with those
  headers instead of externals/build/include


Index: t_tk.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/t_tk.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** t_tk.h	12 Apr 2005 11:43:07 -0000	1.2
--- t_tk.h	12 Apr 2005 15:59:02 -0000	1.3
***************
*** 1 ****
! #include "../../pd/src/t_tk.h"
--- 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

Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/m_pd.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** m_pd.h	12 Apr 2005 11:43:07 -0000	1.3
--- m_pd.h	12 Apr 2005 15:59:02 -0000	1.4
***************
*** 1 ****
! #include "../../pd/src/m_pd.h"
--- 1,635 ----
! /* 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_MAJOR_VERSION 0
! #define PD_MINOR_VERSION 38   
! 
! /* 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 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 void canvas_getargs(int *argcp, t_atom **argvp);
! 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(const char *fmt, ...);
! EXTERN void startpost(const char *fmt, ...);
! EXTERN void poststring(const char *s);
! EXTERN void postfloat(float f);
! EXTERN void postatom(int argc, t_atom *argv);
! EXTERN void endpost(void);
! EXTERN void error(const char *fmt, ...);
! EXTERN void bug(const char *fmt, ...);
! EXTERN void pd_error(void *object, const char *fmt, ...);
! EXTERN void sys_logerror(const char *object, const char *s);
! EXTERN void sys_unixerror(const char *object);
! EXTERN void sys_ouch(void);
! 
! 
! /* ------------  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);
! EXTERN int (*sys_idlehook)(void);   /* hook to add idle time computation */
! 
! 
! /* ------------  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 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 --------- */
! typedef void (*t_guicallbackfn)(t_gobj *client, t_glist *glist);
! 
! EXTERN void sys_vgui(char *fmt, ...);
! EXTERN void sys_gui(char *s);
! EXTERN void sys_pretendguibytes(int n);
! EXTERN void sys_queuegui(void *client, t_glist *glist, t_guicallbackfn f);
! EXTERN void sys_unqueuegui(void *client);
!     /* 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
! 
! 
! #ifdef __i386__
! /* a test for NANs and denormals.  Should only be necessary on i386. */
! #define PD_BADFLOAT(f) ((((*(unsigned int*)&(f))&0x7f800000)==0) || \
!     (((*(unsigned int*)&(f))&0x7f800000)==0x7f800000))
! /* more stringent test: anything not between 1e-19 and 1e19 in absolute val */
! #define PD_BIGORSMALL(f) ((((*(unsigned int*)&(f))&0x60000000)==0) || \
!     (((*(unsigned int*)&(f))&0x60000000)==0x60000000))
! #else
! #define PD_BADFLOAT(f) 0
! #define PD_BIGORSMALL(f) 0
! #endif
! 
! #if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus)
! }
! #endif
! 
! #define __m_pd_h_
! #endif /* __m_pd_h_ */

Index: g_canvas.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/g_canvas.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** g_canvas.h	12 Apr 2005 11:43:07 -0000	1.5
--- g_canvas.h	12 Apr 2005 15:59:02 -0000	1.6
***************
*** 1 ****
! #include "../../pd/src/g_canvas.h"
--- 1,604 ----
! /* 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);
! EXTERN void gobj_redraw(t_gobj *gobj, t_glist *glist);
! 
! /* -------------------- 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);
! EXTERN void rtext_getseltext(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

Index: s_stuff.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/s_stuff.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** s_stuff.h	12 Apr 2005 11:43:07 -0000	1.3
--- s_stuff.h	12 Apr 2005 15:59:02 -0000	1.4
***************
*** 1 ****
! #include "../../pd/src/s_stuff.h"
--- 1,300 ----
! /* 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_path.c */
! 
! typedef struct _namelist
! {
!     struct _namelist *nl_next;
!     char *nl_string;
! } t_namelist;
! 
! t_namelist *namelist_append(t_namelist *listwas, const char *s, int allowdup);
! t_namelist *namelist_append_files(t_namelist *listwas, const char *s);
! void namelist_free(t_namelist *listwas);
! char *namelist_get(t_namelist *namelist, int n);
! void sys_setextrapath(const char *p);
! extern int sys_usestdpath;
! extern t_namelist *sys_externlist;
! extern t_namelist *sys_searchpath;
! extern t_namelist *sys_helppath;
! 
! /* s_file.c */
! 
! void sys_loadpreferences( void);
! void sys_savepreferences( void);
! extern int sys_defeatrt;
! extern t_symbol *sys_flags;
! 
! /* 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_reopen_audio( void);
! void sys_close_audio(void);
! 
! 
! 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[];
! 
! void sys_open_midi(int nmidiin, int *midiinvec,
!     int nmidiout, int *midioutvec, int enable);
! void sys_get_midi_params(int *pnmidiindev, int *pmidiindev,
!     int *pnmidioutdev, int *pmidioutdev);
! 
! void sys_reopen_midi( void);
! void sys_close_midi( void);
! 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);
! 
!     /* implemented in the system dependent MIDI code (s_midi_pm.c, etc. ) */
! void midi_getdevs(char *indevlist, int *nindevs,
!     char *outdevlist, int *noutdevs, int maxndev, int devdescsize);
! void sys_do_open_midi(int nmidiindev, int *midiindev,
!     int nmidioutdev, int *midioutdev);
! 
! /* 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
! #define API_SGI 6
! 
! #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
! #ifdef IRIX
! #define API_DEFAULT API_SGI
! #define API_DEFSTRING "SGI Digital Media"
! #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);
! 
! void sys_get_audio_params(
!     int *pnaudioindev, int *paudioindev, int *chindev,
!     int *pnaudiooutdev, int *paudiooutdev, int *choutdev,
!     int *prate, int *padvance);
! void sys_save_audio_params(
!     int naudioindev, int *audioindev, int *chindev,
!     int naudiooutdev, int *audiooutdev, int *choutdev,
!     int rate, int advance);
! 
! /* s_file.c */
! 
! typedef void (*t_printhook)(const char *s);
! extern t_printhook sys_printhook;  /* set this to override printing */
! extern int sys_printtostderr;
! #ifdef MSW
! #define vsnprintf  _vsnprintf /* jsarlo -- alias this name for msw */
! #endif
! 
! /* jsarlo { */
! 
! EXTERN double sys_time;
! EXTERN double sys_time_per_dsp_tick;
! EXTERN int sys_externalschedlib;
! 
! EXTERN t_sample* get_sys_soundout(void ) ;
! EXTERN t_sample* get_sys_soundin(void ) ;
! EXTERN int* get_sys_main_advance(void ) ;
! EXTERN double* get_sys_time_per_dsp_tick(void ) ;
! EXTERN int* get_sys_schedblocksize(void ) ;
! EXTERN double* get_sys_time(void ) ;
! EXTERN float* get_sys_dacsr(void ) ;
! EXTERN int* get_sys_sleepgrain(void ) ;
! EXTERN int* get_sys_schedadvance(void ) ;
! 
! EXTERN void sys_clearhist(void );
! EXTERN void sys_initmidiqueue(void );
! EXTERN int sys_addhist(int phase);
! EXTERN void sys_setmiditimediff(double inbuftime, double outbuftime);
! EXTERN void sched_tick(double next_sys_time);
! EXTERN void sys_pollmidiqueue(void );
! EXTERN int sys_pollgui(void );
! EXTERN void sys_setchsr(int chin, int chout, int sr);
! 
! EXTERN void inmidi_noteon(int portno, int channel, int pitch, int velo);
! EXTERN void inmidi_controlchange(int portno,
!                                  int channel,
!                                  int ctlnumber,
!                                  int value);
! EXTERN void inmidi_programchange(int portno, int channel, int value);
! EXTERN void inmidi_pitchbend(int portno, int channel, int value);
! EXTERN void inmidi_aftertouch(int portno, int channel, int value);
! EXTERN void inmidi_polyaftertouch(int portno,
!                                   int channel,
!                                   int pitch,
!                                   int value);
! /* } jsarlo */

--- NEW FILE: README ---

The complete headers need to be here.  "externals/build/include" is
mostly there for building the debian package.  All of the source code for
building the externals package needs to be included within the "externals"
directory in order for the Debian auto-builders to build properly.

The other option would be to make a debian source package for Pd, then we
could get rid of "externals/build/include".
 

Index: g_all_guis.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/g_all_guis.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** g_all_guis.h	12 Apr 2005 11:43:06 -0000	1.4
--- g_all_guis.h	12 Apr 2005 15:59:02 -0000	1.5
***************
*** 1 ****
! #include "../../pd/src/g_all_guis.h"
--- 1,329 ----
! /* 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;
!     t_symbol           *x_snd;              /* send symbol */
!     t_symbol           *x_rcv;              /* receive */
!     t_symbol           *x_lab;              /* label */
!     t_symbol           *x_snd_unexpanded;   /* same 3, with '$' unexpanded */
!     t_symbol           *x_rcv_unexpanded;
!     t_symbol           *x_lab_unexpanded;
!     int                x_binbufindex;       /* where in binbuf to find these */
!     int                x_labelbindex;       /* where in binbuf to find label */
! } 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 t_symbol *iemgui_new_dogetname(t_iemgui *iemgui, int indx, t_atom *argv);
! EXTERN void iemgui_new_getnames(t_iemgui *iemgui, int indx, t_atom *argv);
! 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);

Index: m_imp.h
===================================================================
RCS file: /cvsroot/pure-data/externals/build/include/m_imp.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** m_imp.h	12 Apr 2005 11:43:07 -0000	1.5
--- m_imp.h	12 Apr 2005 15:59:02 -0000	1.6
***************
*** 1 ****
! #include "../../pd/src/m_imp.h"
--- 1,82 ----
! /* 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 */
! #ifndef __m_imp_h_
! 
! /* 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);
! 
! #define __m_imp_h_
! #endif /* __m_imp_h_ */





More information about the Pd-cvs mailing list