diff --git a/externals/build/include/extlib_util.h b/externals/build/include/extlib_util.h deleted file mode 100644 index 8ab253f457c3fa85ece844ec7810848ac2014f8b..0000000000000000000000000000000000000000 --- a/externals/build/include/extlib_util.h +++ /dev/null @@ -1,13 +0,0 @@ -#include "../../creb/include/extlib_util.h" - -float milliseconds_2_one_minus_realpole(float time) -{ - float r; - - if (time < 0.0f) time = 0.0f; - r = -expm1(1000.0f * log(ENVELOPE_RANGE) / (sys_getsr() * time)); - if (!(r < 1.0f)) r = 1.0f; - - return r; -} - diff --git a/externals/build/include/g_all_guis.h b/externals/build/include/g_all_guis.h deleted file mode 100644 index 9f8dd9659a340164e4be209e63c79144a8814131..0000000000000000000000000000000000000000 --- a/externals/build/include/g_all_guis.h +++ /dev/null @@ -1,283 +0,0 @@ -/* 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_DEFAULTSIZE 15 -#define IEM_GUI_MINSIZE 8 -#define IEM_SL_DEFAULTSIZE 128 -#define IEM_SL_MINSIZE 2 -#define IEM_FONT_MINSIZE 4 - -#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_CONFIG 5 - -#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 IEM_GUI_OLD_SND_FLAG 1 -#define IEM_GUI_OLD_RCV_FLAG 2 - -#define IEMGUI_MAX_NUM_LEN 32 - -#define SCALE_NUM_MINWIDTH 1 -#define SCALE_NUM_MINHEIGHT 8 -#define SCALE_GOP_MINWIDTH 12 -#define SCALE_GOP_MINHEIGHT 12 -#define SCALEHANDLE_WIDTH 5 -#define SCALEHANDLE_HEIGHT 5 -#define LABELHANDLE_WIDTH 5 -#define LABELHANDLE_HEIGHT 5 - -typedef void (*t_iemfunptr)(void *x, t_glist *glist, int mode); - -struct _scalehandle; -typedef void (*t_clickhandlefn)(struct _scalehandle *sh, int newstate); -typedef void (*t_motionhandlefn)(struct _scalehandle *sh, t_floatarg f1, t_floatarg f2); - -EXTERN t_class *scalehandle_class; - -typedef struct _scalehandle -{ - t_pd h_pd; - t_object *h_master; - t_glist *h_glist; // this is the canvas to draw on. Note that when objects are edited, "glist" and "canvas" mean the same. - t_symbol *h_bindsym; - int h_scale; // bool - char h_pathname[37]; // max size for ".x%lx.h%lx" = 5+4*sizeof(long) - char h_outlinetag[18]; // max size for "h%lx" = 2+2*sizeof(long) - int h_dragon; // bool - int h_dragx; - int h_dragy; - int h_offset_x; - int h_offset_y; - int h_vis; // bool - t_clickhandlefn h_clickfn; - t_motionhandlefn h_motionfn; -} t_scalehandle; - -typedef struct _iemgui -{ - t_object x_obj; - t_glist *x_glist; - t_iemfunptr x_draw; //29 /* this should be static */ - int x_h; //unsigned //80 - int x_w; //unsigned //119 - int x_ldx; //33 - int x_ldy; //33 - int x_fontsize;//uns. //41 - int x_fcol;//iemcolor //35 /* foreground */ - int x_bcol;//iemcolor //41 /* background */ - int x_lcol;//iemcolor //21 /* label */ - t_symbol *x_snd; //18 /* send symbol */ - t_symbol *x_rcv; //33 /* receive */ - t_symbol *x_lab; //15 /* label */ - t_symbol *x_snd_unexpanded; //7 /* same 3, with '$' unexpanded */ - t_symbol *x_rcv_unexpanded; //7 - t_symbol *x_lab_unexpanded; //6 - int x_binbufindex; //4 /* where in binbuf to find these (this should be static) */ - int x_labelbindex; //5 /* where in binbuf to find label (this should be static) */ - t_scalehandle *x_handle; //24 - t_scalehandle *x_lhandle; //19 - int x_vis; //bool //64 /* is the object drawn? */ - int x_changed; //bool //30 /* has the value changed so that we need to do graphic update */ - - // grep -w "$1" *.[ch]|wc -l - t_glist *x_selected; // 24 matches - // from t_iem_fstyle_flags - unsigned int x_font_style:6; // 33 matches - unsigned int x_finemoved:1; // 7 matches (sliders and [nbx] only) - unsigned int x_put_in2out:1; // 9 matches - unsigned int x_change:1; // 28 matches // what's this and why is there also a x_changed ? - // from t_iem_init_symargs - unsigned int x_loadinit:1; // 21 matches - unsigned int x_locked:1; // 7 matches ([bng] only) - unsigned int x_reverse:1; // 4 matches (sliders only) - unsigned int dummy:20; -} t_iemgui; - -typedef struct _bng -{ - t_iemgui x_gui; - int x_flashed; // bool - int x_flashtime_break; // >= 0 - int x_flashtime_hold; // >= 0 - t_clock *x_clock_hld; - t_clock *x_clock_brk; - t_clock *x_clock_lck; -} t_bng; - -typedef struct _slider -{ - t_iemgui x_gui; - int x_pos; - int x_val; - int x_center; // is this necessary ? - int x_thick; // bool - int x_lin0_log1; // bool - int x_steady; // bool - double x_min; - double x_max; - double x_k; - double x_last; - int x_is_last_float; // bool - int x_orient; // bool: 0=horizontal ([hsl]), 1=vertical ([vsl]) -} t_slider; - -typedef struct _radio -{ - t_iemgui x_gui; - int x_on; // unsigned < x_number - int x_on_old; /* for use by [hdl] [vdl] */ - int x_change; // bool - int x_number; // unsigned > 0 - int x_drawn; // unsigned < x_number - t_atom x_at[2]; // tmp buffer for outlet_list - int x_orient; // bool: 0=horiz, 1=vert -} t_radio; - -typedef struct _toggle -{ - t_iemgui x_gui; - t_float x_on; - t_float x_nonzero; -} t_toggle; - -typedef struct _my_canvas -{ - t_iemgui x_gui; - t_atom x_at[2]; // tmp buffer for outlet_list - int x_vis_w; // unsigned - int x_vis_h; // unsigned -} t_my_canvas; - -typedef struct _vu -{ - t_iemgui x_gui; - int x_led_size; // unsigned - int x_peak; // 1..40 if visible ; 0 if invisible - int x_rms; // 1..40 if visible ; 0 if invisible - t_float x_fp; // value for outlet 1 - t_float x_fr; // value for outlet 0 - int x_scale; // bool - t_outlet *x_out_rms; // outlet 0 - t_outlet *x_out_peak; // outlet 1 - unsigned int x_updaterms:1; - unsigned int x_updatepeak:1; -} 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; // bool - char x_buf[IEMGUI_MAX_NUM_LEN]; - int x_numwidth; // unsigned - int x_scalewidth; /* temporary value for scalehandle */ - int x_scaleheight; /* temporary value for scalehandle */ - int x_tmpfontsize; /* temporary value for scalehandle */ - int x_log_height; - int x_hide_frame; /* 0 default, 1 just arrow, 2, just frame, 3 both */ -} t_my_numbox; - -extern int sys_noloadbang; -extern int iemgui_color_hex[]; - -EXTERN int iemgui_clip_size(int size); -EXTERN int iemgui_clip_font(int size); -EXTERN void iemgui_verify_snd_ne_rcv(t_iemgui *iemgui); -EXTERN t_symbol *iemgui_getfloatsym(t_atom *a); -EXTERN t_symbol *iemgui_getfloatsymarg(int i, int argc, t_atom *argv); -EXTERN void iemgui_new_getnames(t_iemgui *iemgui, int indx, t_atom *argv); -EXTERN void iemgui_all_colfromload(t_iemgui *iemgui, int *bflcol); -EXTERN void iemgui_send(t_iemgui *x, t_symbol *s); -EXTERN void iemgui_receive(t_iemgui *x, t_symbol *s); -EXTERN void iemgui_label(t_iemgui *x, t_symbol *s); -EXTERN void iemgui_label_pos(t_iemgui *x, t_symbol *s, int ac, t_atom *av); -EXTERN void iemgui_label_font(t_iemgui *x, t_symbol *s, int ac, t_atom *av); -EXTERN void iemgui_label_getrect(t_iemgui x_gui, t_glist *x, int *xp1, int *yp1, int *xp2, int *yp2); -EXTERN void iemgui_shouldvis(t_iemgui *x, int mode); -EXTERN void iemgui_size(t_iemgui *x); -EXTERN void iemgui_delta(t_iemgui *x, t_symbol *s, int ac, t_atom *av); -EXTERN void iemgui_pos(t_iemgui *x, t_symbol *s, int ac, t_atom *av); -EXTERN void iemgui_color(t_iemgui *x, 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_displace_withtag(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 *x, t_symbol **srl, int *bflcol); -EXTERN void iemgui_properties(t_iemgui *x, t_symbol **srl); -EXTERN int iemgui_dialog(t_iemgui *x, int argc, t_atom *argv); - -EXTERN void iem_inttosymargs(t_iemgui *x, int n); -EXTERN int iem_symargstoint(t_iemgui *x); -EXTERN void iem_inttofstyle(t_iemgui *x, int n); -EXTERN int iem_fstyletoint(t_iemgui *x); - -EXTERN void canvas_apply_setundo(t_canvas *x, t_gobj *y); - -// scalehandle code, as refactored by Mathieu -EXTERN void scalehandle_bind(t_scalehandle *h); -EXTERN void scalehandle_draw_select(t_scalehandle *h, int px, int py); -EXTERN void scalehandle_draw_select2(t_iemgui *x); -EXTERN void scalehandle_draw_erase(t_scalehandle *h); -EXTERN void scalehandle_draw_erase2(t_iemgui *x); -EXTERN void scalehandle_draw(t_iemgui *x); -EXTERN t_scalehandle *scalehandle_new(t_object *x, t_glist *glist, int scale, t_clickhandlefn chf, t_motionhandlefn mhf); -EXTERN void scalehandle_free(t_scalehandle *h); -EXTERN void properties_set_field_int(long props, const char *gui_field, int value); -EXTERN void scalehandle_dragon_label(t_scalehandle *h, float f1, float f2); -EXTERN void scalehandle_unclick_label(t_scalehandle *h); -EXTERN void scalehandle_click_label(t_scalehandle *h); -EXTERN void scalehandle_click_scale(t_scalehandle *h); -EXTERN void scalehandle_unclick_scale(t_scalehandle *h); -EXTERN void scalehandle_drag_scale(t_scalehandle *h); -EXTERN void iemgui__clickhook3(t_scalehandle *sh, int newstate); - -EXTERN int mini(int a, int b); -EXTERN int maxi(int a, int b); -EXTERN float minf(float a, float b); -EXTERN float maxf(float a, float b); - -// other refactor by Mathieu -EXTERN void iemgui_tag_selected( t_iemgui *x); -EXTERN void iemgui_label_draw_new( t_iemgui *x); -EXTERN void iemgui_label_draw_move( t_iemgui *x); -EXTERN void iemgui_label_draw_config(t_iemgui *x); -EXTERN void iemgui_label_draw_select(t_iemgui *x); -EXTERN void iemgui_io_draw_move(t_iemgui *x); -EXTERN void iemgui_draw_io(t_iemgui *x, int old_sr_flags); -EXTERN void iemgui_base_draw_new(t_iemgui *x); -EXTERN void iemgui_base_draw_move(t_iemgui *x); -EXTERN void iemgui_base_draw_config(t_iemgui *x); -EXTERN void iemgui_draw_new(t_iemgui *x); -EXTERN void iemgui_draw_config(t_iemgui *x); -EXTERN void iemgui_draw_move(t_iemgui *x); -EXTERN void iemgui_draw_erase(t_iemgui *x); -EXTERN void wb_init(t_widgetbehavior *wb, t_getrectfn gr, t_clickfn cl); // rename this to iemgui_wb_init - -extern t_symbol *s_empty; -EXTERN const char *selection_color; - -static inline int iemgui_has_snd (t_iemgui *x) {return x->x_snd!=s_empty;} -static inline int iemgui_has_rcv (t_iemgui *x) {return x->x_rcv!=s_empty;} -EXTERN const char *iemgui_font(t_iemgui *x); -EXTERN const char *iemgui_typeface(t_iemgui *x); - -EXTERN void iemgui_class_addmethods(t_class *c); -EXTERN void scrollbar_update(t_glist *glist); -EXTERN void iemgui_init(t_iemgui *x, t_floatarg f); - -EXTERN void iemgui_out_bang(t_iemgui *x, int o, int chk_putin); -EXTERN void iemgui_out_float(t_iemgui *x, int o, int chk_putin, t_float f); -EXTERN void iemgui_out_list(t_iemgui *x, int o, int chk_putin, t_symbol *s, int argc, t_atom *argv); - diff --git a/externals/build/include/g_canvas.h b/externals/build/include/g_canvas.h deleted file mode 100644 index d847b51b0e1a8baeaee1014c787cce4720b6828b..0000000000000000000000000000000000000000 --- a/externals/build/include/g_canvas.h +++ /dev/null @@ -1,781 +0,0 @@ -/* 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", also called "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. */ - -#ifndef PD_G_CANVAS_H -#define PD_G_CANVAS_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 - -EXTERN_STRUCT _fielddesc; -#define t_fielddesc struct _fielddesc - -// jsarlo -EXTERN_STRUCT _magicGlass; -#define t_magicGlass struct _magicGlass -// end jsarlo - -// undo stuff -EXTERN_STRUCT _undo_action; -#define t_undo_action struct _undo_action - -// preset hub stuff -EXTERN_STRUCT _preset_hub; -#define t_preset_hub struct _preset_hub - -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_magicGlass *gl_magic_glass; /* magic glass object */ - char canvas_cnct_inlet_tag[4096]; /* tags for currently highlighted nlets */ - char canvas_cnct_outlet_tag[4096]; - t_clock *e_clock; /* clock to filter GUI move messages */ - int e_xnew; /* xpos for next move event */ - int e_ynew; /* ypos, similarly */ -} 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 */ -#define MA_RESIZE 6 /* drag to resize */ -#define MA_SCROLL 7 /* scroll with middle click onto empty canvas */ - -/* 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; - -t_garray* array_garray; /* used for sending bangs when - array is changed via gui */ - -/* 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 */ -{ - t_float k_point; /* one point to draw a big tick at */ - t_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. - -*/ - -//#include "g_undo.h" - -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; - t_float gl_x1; /* bounding rectangle in our own coordinates */ - t_float gl_y1; - t_float gl_x2; - t_float gl_y2; - int gl_screenx1; /* screen coordinates when toplevel */ - int gl_screeny1; - int gl_screenx2; - int gl_screeny2; - int gl_xmargin; /* origin for GOP rectangle */ - int gl_ymargin; - 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 */ - t_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; - t_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_unloading:1; /* we're inside canvas_free */ - unsigned int gl_goprect:1; /* draw rectangle for graph-on-parent */ - unsigned int gl_isgraph:1; /* show as graph on parent */ - unsigned int gl_hidetext:1; /* hide object-name + args when doing graph on parent */ - unsigned int gl_gop_initialized:1; /* used for tagged moving of gop-ed objects to avoid redundant reinit */ - //global preset array pointer - t_preset_hub *gl_phub; - //infinite undo goodies (have to stay here rather than the editor to prevent its obliteration when editor is deleted) - t_undo_action *u_queue; - t_undo_action *u_last; - //dpsaha@vt.edu for the gop dynamic resizing & move handle (refactored by mathieu) - struct _scalehandle *x_handle; - struct _scalehandle *x_mhandle; - t_pd *gl_svg; -}; - -#define gl_gobj gl_obj.te_g -#define gl_pd gl_gobj.g_pd - -/*-------------------universal preset stuff---------------------*/ -// for the universal preset_node ability (see g_editor.c doconnect/disconnect functions) -// this is where all the classes capable of being controlled via preset should be defined - -// preset objects -t_class *preset_hub_class; -t_class *preset_node_class; - -// special case objects -extern t_class *print_class; -extern t_class *message_class; -/*-----------------end universal preset stuff-------------------*/ - -/* 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; - -typedef struct _template -{ - t_pd t_pdobj; /* header */ - struct _gtemplate *t_list; /* list of "struct"/gtemplate objects */ - t_symbol *t_sym; /* name */ - int t_transformable; /* counts number of arrays in template - drawn objects that depend on this - template can only be transformed - (scaled/skewed,rotated, etc.) - if this var is 0 */ - 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; /* stub for pointing into this array */ -}; - - /* 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; - -EXTERN int outconnect_visible(t_outconnect *oc); -EXTERN int outconnect_setvisible(t_outconnect *oc, int vis); - -/* 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 this to displace a gobj using tags: */ -typedef void (*t_displacefnwtag)(t_gobj *x, struct _glist *glist, int dx, int dy); - /* ... 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; - t_displacefnwtag w_displacefnwtag; -}; - -/* -------- 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, t_float basex, t_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, t_float basex, t_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, t_float basex, t_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, t_float basex, t_float basey, - int state); - /* making visible or invisible */ -typedef void (*t_parentvisfn)(t_gobj *x, struct _glist *glist, - struct _glist *parentglist, t_scalar *sc, - t_word *data, t_template *tmpl, t_float basex, t_float basey, - int flag); - /* field a mouse click */ -typedef int (*t_parentclickfn)(t_gobj *x, struct _glist *glist, - t_word *data, t_template *tmpl, t_scalar *sc, t_array *ap, - t_float basex, t_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 -#define CURSOR_EDITMODE_RESIZE 7 -#define CURSOR_EDITMODE_RESIZE_BOTTOM_RIGHT 8 -#define CURSOR_SCROLL 9 -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 */ - -#define PLOTSTYLE_POINTS 0 /* plotting styles for arrays */ -#define PLOTSTYLE_POLY 1 -#define PLOTSTYLE_BEZ 2 -#define PLOTSTYLE_BARS 3 - -/* ------------------- 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 int gobj_shouldvis(t_gobj *x, struct _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_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 t_float glist_pixelstox(t_glist *x, t_float xpix); -EXTERN t_float glist_pixelstoy(t_glist *x, t_float ypix); -EXTERN t_float glist_xtopixels(t_glist *x, t_float xval); -EXTERN t_float glist_ytopixels(t_glist *x, t_float yval); -EXTERN t_float glist_dpixtodx(t_glist *x, t_float dxpix); -EXTERN t_float glist_dpixtody(t_glist *x, t_float dypix); - -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, - t_float x1, t_float y1, t_float x2, t_float y2, - t_float px1, t_float py1, t_float px2, t_float py2); -EXTERN void glist_arraydialog(t_glist *parent, t_symbol *s, - int argc, t_atom *argv); -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); -EXTERN void canvas_destroy_editor(t_glist *x); -EXTERN void canvas_deletelinesforio(t_canvas *x, t_text *text, - t_inlet *inp, t_outlet *outp); -EXTERN int glist_amreloadingabstractions; /* stop GUI changes while reloading */ -EXTERN int canvas_restore_original_position(t_glist *x, t_gobj *y, const char *objtag, int dir); - -/* -------------------- functions on texts ------------------------- */ -EXTERN void text_setto(t_text *x, t_glist *glist, char *buf, int bufsize, int pos); -EXTERN void text_drawborder(t_text *x, t_glist *glist, char *tag, - int width, int height, int firsttime); -EXTERN void text_drawborder_withtag(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); - -/* -------------------- functions on rtexts ------------------------- */ -#define RTEXT_DOWN 1 -#define RTEXT_DRAG 2 -#define RTEXT_DBL 3 -#define RTEXT_SHIFT 4 - -// number in comment is the number in grep -w|wc -EXTERN t_rtext *rtext_new(t_glist *glist, t_text *who); //5 -EXTERN t_rtext *glist_findrtext(t_glist *gl, t_text *who); //53 -EXTERN void rtext_draw(t_rtext *x); //4 -EXTERN void rtext_erase(t_rtext *x); //4 -EXTERN int rtext_width(t_rtext *x); //9 -EXTERN int rtext_height(t_rtext *x); //9 -EXTERN void rtext_displace(t_rtext *x, int dx, int dy); //3 -EXTERN void rtext_select(t_rtext *x, int state); //4 -EXTERN void rtext_activate(t_rtext *x, int state); //3 -EXTERN void rtext_free(t_rtext *x); //4 -EXTERN void rtext_key(t_rtext *x, int n, t_symbol *s); //6 -EXTERN void rtext_mouse(t_rtext *x, int xval, int yval, int flag); //5 -EXTERN void rtext_retext(t_rtext *x); //5 -EXTERN char *rtext_gettag(t_rtext *x); //47 -EXTERN void rtext_gettext(t_rtext *x, char **buf, int *bufsize); //9 -EXTERN void rtext_getseltext(t_rtext *x, char **buf, int *bufsize); //4 - -/* -------------------- 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_eraselinesfor(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_template *tmpl, int action); -EXTERN void canvas_redrawallfortemplatecanvas(t_canvas *x, int action); -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_floatarg 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 t_gobj *canvas_findhitbox(t_canvas *x, int xpos, int ypos, - int *x1p, int *y1p, int *x2p, int *y2p); -EXTERN int canvas_setdeleting(t_canvas *x, int flag); -EXTERN int canvas_hasarray(t_canvas *x); - -/* ---- for parsing @pd_extra and other sys paths in filenames --------------------- */ - -EXTERN void sys_expandpathelems(const char *name, const char *result); - -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); - -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, - t_float index1, t_float outno, t_float index2, t_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 garrays (graphical arrays) -------------------- */ - -EXTERN t_template *garray_template(t_garray *x); - -/* -------------------- arrays --------------------- */ -EXTERN t_garray *graph_array(t_glist *gl, t_symbol *s, int argc, t_atom *argv); -EXTERN t_array *array_new(t_symbol *templatesym, t_gpointer *parent); -EXTERN void array_resize(t_array *x, int n); -EXTERN void array_free(t_array *x); -int array_joc; /* for "jump on click" array inside a graph */ - -/* --------------------- 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); -EXTERN void gpointer_setarray(t_gpointer *gp, t_array *array, t_word *w); - -/* --------------------- 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 word_free(t_word *wp, t_template *tmpl); -EXTERN void scalar_getbasexy(t_scalar *x, t_float *basex, t_float *basey); -EXTERN void scalar_redraw(t_scalar *x, t_glist *glist); -EXTERN int template_has_elemtemplate(t_template *t, t_template *tmp); - -/* ------helper routines for "garrays" and "plots" -------------- */ -EXTERN int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap, - t_symbol *elemtemplatesym, - t_float linewidth, t_float xloc, t_float xinc, t_float yloc, t_float scalarvis, - t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield, - 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, - t_float basex, t_float basey, t_float xinc, - t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc, - t_float *xp1, t_float *xp2, t_float *yp, t_float *wp); - -EXTERN int array_getfields(t_symbol *elemtemplatesym, - t_canvas **elemtemplatecanvasp, - t_template **elemtemplatep, int *elemsizep, - t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc, - 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 int template_cancreate(t_template *tmp); -EXTERN int template_hasxy(t_template *tmp); -EXTERN t_canvas *template_findcanvas(t_template *tmpl); -EXTERN void template_notify(t_template *tmpl, - t_symbol *s, int argc, t_atom *argv); - -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_float fielddesc_getcoord(t_fielddesc *f, t_template *tmpl, - t_word *wp, int loud); -EXTERN void fielddesc_setcoord(t_fielddesc *f, t_template *tmpl, - t_word *wp, t_float pix, int loud); -EXTERN t_float fielddesc_cvttocoord(t_fielddesc *f, t_float val); -EXTERN t_float fielddesc_cvtfromcoord(t_fielddesc *f, t_float coord); - -/* ----------------------- 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); - -/* ---------- infinite undo/redo routines found in g_undo.c ------------ */ - -EXTERN t_undo_action *canvas_undo_init(t_canvas *x); -EXTERN t_undo_action *canvas_undo_add(t_canvas *x, - int type, const char *name, void *data); -EXTERN void canvas_undo_undo(t_canvas *x); -EXTERN void canvas_undo_redo(t_canvas *x); -EXTERN void canvas_undo_rebranch(t_canvas *x); -EXTERN void canvas_undo_check_canvas_pointers(t_canvas *x); -EXTERN void canvas_undo_purge_abstraction_actions(t_canvas *x); -EXTERN void canvas_undo_free(t_canvas *x); - -/* --------- 1. connect ---------- */ - -EXTERN void *canvas_undo_set_connect(t_canvas *x, - int index1, int outno, int index2, int inno); -EXTERN void canvas_undo_connect(t_canvas *x, void *z, int action); - -/* --------- 2. disconnect ------- */ - -EXTERN void *canvas_undo_set_disconnect(t_canvas *x, - int index1, int outno, int index2, int inno); -EXTERN void canvas_undo_disconnect(t_canvas *x, void *z, int action); - -/* --------- 3. cut -------------- */ - -EXTERN void *canvas_undo_set_cut(t_canvas *x, int mode); -EXTERN void canvas_undo_cut(t_canvas *x, void *z, int action); - -/* --------- 4. move ------------- */ - -EXTERN void *canvas_undo_set_move(t_canvas *x, int selected); -EXTERN void canvas_undo_move(t_canvas *x, void *z, int action); - -/* --------- 5. paste ------------ */ - -EXTERN void *canvas_undo_set_paste(t_canvas *x, int offset, int duplicate, int d_offset); -EXTERN void canvas_undo_paste(t_canvas *x, void *z, int action); - -/* --------- 6. apply ------------ */ - -EXTERN void *canvas_undo_set_apply(t_canvas *x, int n); -EXTERN void canvas_undo_apply(t_canvas *x, void *z, int action); - -/* --------- 7. arrange ---------- */ - -EXTERN void *canvas_undo_set_arrange(t_canvas *x, t_gobj *obj, int newindex); -EXTERN void canvas_undo_arrange(t_canvas *x, void *z, int action); - -/* --------- 8. canvas apply ----- */ - -EXTERN void *canvas_undo_set_canvas(t_canvas *x); -EXTERN void canvas_undo_canvas_apply(t_canvas *x, void *z, int action); - -/* --------- 9. create ----------- */ - -EXTERN void canvas_undo_create(t_canvas *x, void *z, int action); -EXTERN void *canvas_undo_set_create(t_canvas *x); - -/* --------- 10. recreate -------- */ - -EXTERN void canvas_undo_recreate(t_canvas *x, void *z, int action); -EXTERN void *canvas_undo_set_recreate(t_canvas *x, t_gobj *y, int old_pos); - -/* --------- 11. font ------------ */ - -EXTERN void canvas_undo_font(t_canvas *x, void *z, int action); -EXTERN void *canvas_undo_set_font(t_canvas *x, int font); - -/* ------------------------------- */ - - -/* ---------- interface to Qt (libQt5) with threads -------------------- */ - -void *qt_thread_main (void *); - -/* ---------- other things added by Mathieu (aug.2014) ----------------- */ - -void canvas_raise_all_cords (t_canvas *x); -void canvas_getscroll (t_canvas *x); - -/* --------------------------------------------------------------------- */ - -#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) -} -#endif - -#endif // PD_G_CANVAS_H diff --git a/externals/build/include/m_imp.h b/externals/build/include/m_imp.h deleted file mode 100644 index 8e42696bc12a23f46e72accf63479d1faf8f2d3e..0000000000000000000000000000000000000000 --- a/externals/build/include/m_imp.h +++ /dev/null @@ -1,84 +0,0 @@ -/* 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_blobmethod)(t_pd *x, t_blob *st); /* MP20061226 blob type */ -typedef void (*t_listmethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); -typedef void (*t_anymethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); - -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_blobmethod c_blobmethod; /* MP20061226 blob type */ - 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); -EXTERN void glob_quit(void *dummy); -#define __m_imp_h_ -#endif /* __m_imp_h_ */ diff --git a/externals/build/include/m_pd.h b/externals/build/include/m_pd.h deleted file mode 100644 index 10acfefad741289ecbc44d235fb6d3acbaa6d92c..0000000000000000000000000000000000000000 --- a/externals/build/include/m_pd.h +++ /dev/null @@ -1,722 +0,0 @@ -/* 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 - -#include <stdarg.h> - -#define PD_MAJOR_VERSION 0 -#define PD_MINOR_VERSION 42 -#define PD_BUGFIX_VERSION 7 -#define PD_TEST_VERSION "20140813" -#define PDL2ORK - -/* 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 - -/* These pragmas are only used for MSVC, not MinGW or Cygwin <hans@at.or.at> */ -#ifdef _MSC_VER -/* #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 */ -/* not using GNU C, __attribute__ means nothing */ -# define __attribute__(x) -#endif /* _MSC_VER */ - - - /* 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 /* must be >= FILENAME_MAX */ -#define MAXPDARG 5 /* max number of args we can typecheck today */ - -/* signed and unsigned integer types the size of a pointer: */ -#if !defined(PD_LONGINTTYPE) -#define PD_LONGINTTYPE long -#endif -#if !defined(PD_FLOATTYPE) -#define PD_FLOATTYPE float -#endif -typedef PD_LONGINTTYPE t_int; /* pointer-size integer */ -typedef PD_FLOATTYPE t_float; /* a float type at most the same size */ -typedef PD_FLOATTYPE t_floatarg; /* float 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; - -#define PD_BLOBS 1 /* MP20070211 Use this to test for blob capability */ -/* MP20061223 blob type: */ -typedef struct _blob /* pointer to a blob */ -{ - unsigned long s_length; /* length of blob in bytes */ - unsigned char *s_data; /* pointer to 1st byte of blob */ -} t_blob; -/* ...MP20061223 blob type */ - - -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_blob *w_blob; /* MP20061223 blob type */ -} 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, - A_BLOB /* MP20061223 blob type */ -} 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) */ - int sc_x1; /* cached bbox... which is already in the */ - int sc_x2; /* GUI. Doing this right would require me */ - int sc_y1; /* to redesign the whole program. Instead */ - int sc_y2; /* please enjoy the duplication of a bbox */ - int sc_bboxcache; /* caching mechanism already in tkpath. */ - t_glist *sc_selected; /* I'm really sorry... I can't figure out - a non-stupid and non-hacky way to make - scalars in a gop patch displace right. - Pd Vanilla just redraws all of the gop - contents-- dumb. Here I keep the owner - glist handy so I can compare it to the - glist in scalar_displace_withtag. Then - if they don't match it's a gop, so the - x/y fields do not need to get updated. - That's dumb, too, but slightly less so - which is another way to say "progress" */ - 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 */ - unsigned int te_iemgui:1; /* if this is an iemgui (for nlets color) */ -} 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 style 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_blob; -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(const 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 SETBLOB(atom, st) ((atom)->a_type = A_BLOB, (atom)->a_w.w_blob = (st)) /* MP 20061226 blob type */ -#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_blob *atom_getblob(t_atom *a);/* MP 20070108 blob type */ -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_canvas(t_binbuf *b, char *filename, t_canvas *canvas, - 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_blob(t_pd *x, t_blob *st); /* MP 20061226 blob type */ -EXTERN void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv); -EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv); -#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 t_inlet *signalinlet_new(t_object *owner, t_float f); -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_blob(t_outlet *x, t_blob *st); /* MP 20061226 blob type */ -EXTERN void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv); -EXTERN void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv); -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 char sys_font[]; /* default typeface set in s_main.c */ -EXTERN char sys_fontweight[]; /* default font weight set in s_main.c */ -EXTERN int sys_fontwidth(int fontsize); -EXTERN int sys_fontheight(int fontsize); -EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b); -EXTERN int canvas_open(t_canvas *x, const char *name, const char *ext, - char *dirresult, char **nameresult, unsigned int size, int bin); - -/* ---------------- 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_addblob(t_class *c, t_method fn);/* MP 20061226 blob type */ -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); -EXTERN void class_set_extern_dir(t_symbol *s); -#define CLASS_MAINSIGNALIN(c, type, field) \ - class_domainsignalin(c, (char *)(&((type *)0)->field) - (char *)0) - - /* classtable functions */ -EXTERN t_class *classtable_findbyname(t_symbol *s); -EXTERN int classtable_size(void); -EXTERN void classtable_tovec(int size, t_atom *vec); - - /* 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_addblob(x, y) class_addblob((x), (t_method)(y)) /* MP20061226 blob type */ -#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(t_floatarg f); -EXTERN void postatom(int argc, t_atom *argv); -EXTERN void endpost(void); -EXTERN void error(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); -EXTERN void verbose(int level, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); -EXTERN void bug(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); -EXTERN void pd_error(void *object, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); -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 int sys_isabsolutepath(const char *dir); -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 ------------------- */ -EXTERN void sys_lock(void); -EXTERN void sys_unlock(void); -EXTERN int sys_trylock(void); - - -/* --------------- signals ----------------------------------- */ - -typedef PD_FLOATTYPE 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 */ - t_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 */ - int s_vecsize; /* allocated size of array in points */ -} 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_float *in, t_sample *out, int n); -EXTERN void dsp_add_zero(t_sample *out, int n); - -EXTERN int sys_getblksize(void); -EXTERN t_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(t_float *buf, int npoints, int inverse); -EXTERN int ilog2(int n); - -EXTERN void mayer_fht(t_sample *fz, int n); -EXTERN void mayer_fft(int n, t_sample *real, t_sample *imag); -EXTERN void mayer_ifft(int n, t_sample *real, t_sample *imag); -EXTERN void mayer_realfft(int n, t_sample *real); -EXTERN void mayer_realifft(int n, t_sample *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); -EXTERN int canvas_dspstate; - -/* up/downsampling */ -typedef struct _resample -{ - int method; /* up/downsampling method ID */ - - t_int downsample; /* downsampling factor */ - t_int upsample; /* upsampling factor */ - - t_sample *s_vec; /* here we hold the resampled data */ - int s_n; - - t_sample *coeffs; /* coefficients for filtering... */ - int coefsize; - - t_sample *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); - -/* ----------------------- utility functions for signals -------------- */ -EXTERN t_float mtof(t_float); -EXTERN t_float ftom(t_float); -EXTERN t_float rmstodb(t_float); -EXTERN t_float powtodb(t_float); -EXTERN t_float dbtorms(t_float); -EXTERN t_float dbtopow(t_float); - -EXTERN t_float q8_sqrt(t_float); -EXTERN t_float q8_rsqrt(t_float); -#ifndef N32 -EXTERN t_float qsqrt(t_float); /* old names kept for extern compatibility */ -EXTERN t_float qrsqrt(t_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 int garray_getfloatwords(t_garray *x, int *size, t_word **vec); -EXTERN t_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); - -#ifdef CHECK_VGUI_ARGS -EXTERN void sys_vgui(const char *fmt, ...) - __attribute__((format(printf,1,2))); -EXTERN void sys_vguid(const char *file, int line, const char *fmt, ...) - __attribute__((format(printf,1,2))); -EXTERN void sys_vvguid(const char *file, int line, const char *fmt, va_list) - __attribute__((format(printf,3,4))); -#else -EXTERN void sys_vgui(const char *fmt, ...); -EXTERN void sys_vguid(const char *file, int line, const char *fmt, ...); -EXTERN void sys_vvguid(const char *file, int line, const char *fmt, va_list); -#endif -EXTERN void sys_gui(const char *s); -#define sys_vgui(args...) sys_vguid(__FILE__,__LINE__,args) -#define sys_gui(s) sys_vguid(__FILE__,__LINE__,"%s",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 - -// jsarlo -EXTERN char sys_signal_line_color[8]; -EXTERN char sys_control_line_color[8]; -EXTERN char sys_iolet_select_color[8]; -EXTERN int sys_iolet_select_width; -EXTERN int sys_dropshadow; -// end jsarlo - -/* 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 - -#if defined(__i386__) || defined(__x86_64__) -/* 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 - - /* get version number at run time */ -EXTERN void sys_getversion(int *major, int *minor, int *bugfix); - -#if defined(_LANGUAGE_C_PLUS_PLUS) || defined(__cplusplus) -} -#endif - -#define __m_pd_h_ -#endif /* __m_pd_h_ */ diff --git a/externals/build/include/s_stuff.h b/externals/build/include/s_stuff.h deleted file mode 100644 index 862b2a44ce81a9f880fefd2404fbf94149b2aece..0000000000000000000000000000000000000000 --- a/externals/build/include/s_stuff.h +++ /dev/null @@ -1,415 +0,0 @@ -/* 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. */ - -#ifndef __s_stuff_h_ -#define __s_stuff_h_ - -/* in s_path.c */ - -typedef struct _namelist /* element in a linked list of stored strings */ -{ - struct _namelist *nl_next; /* next in list */ - char *nl_string; /* the string */ -} t_namelist; - -t_namelist *pd_extrapath; -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; -int sys_open_absolute(const char *name, const char* ext, - char *dirresult, char **nameresult, unsigned int size, int bin, int *fdp); -int sys_trytoopenone(const char *dir, const char *name, const char* ext, - char *dirresult, char **nameresult, unsigned int size, int bin); -t_symbol *sys_decodedialog(t_symbol *s); - -/* 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; -#ifdef QTGUI -extern int sys_qtcanvas; -#endif - -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 */ -extern t_symbol *sys_guidir; /* directory holding pd_gui, u_pdsend, etc */ - -/* s_loader.c */ -typedef int (*loader_t)(t_canvas *canvas, char *classname); /* callback type */ -EXTERN int sys_load_lib(t_canvas *canvas, char *filename); -EXTERN void sys_register_loader(loader_t loader); - -/* 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 t_float sys_dacsr; -extern int sys_schedadvance; -extern int sys_sleepgrain; -void sys_set_audio_settings(int naudioindev, int *audioindev, - int nchindev, int *chindev, - int naudiooutdev, int *audiooutdev, int nchoutdev, int *choutdev, - int srate, int advance, int callback); -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(t_sample *inmax, t_sample *outmax); -void sys_listdevs(void); -void sys_setblocksize(int n); - -EXTERN void sys_get_audio_devs(char *indevlist, int *nindevs, - char *outdevlist, int *noutdevs, int *canmulti, int *cancallback, - int maxndev, int devdescsize); -EXTERN void sys_get_audio_apis(char *buf); - -/* s_midi.c */ -#define MAXMIDIINDEV 16 /* max. number of input ports */ -#define MAXMIDIOUTDEV 16 /* max. number of output ports */ -extern int sys_midiapi; -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); - -EXTERN void sys_get_midi_apis(char *buf); -EXTERN void sys_get_midi_devs(char *indevlist, int *nindevs, - char *outdevlist, int *noutdevs, - int maxndev, int devdescsize); -void sys_get_midi_params(int *pnmidiindev, int *pmidiindev, - int *pnmidioutdev, int *pmidioutdev); - -void sys_get_midi_apis(char *buf); - -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); - -#ifdef USEAPI_ALSA -EXTERN void sys_alsa_putmidimess(int portno, int a, int b, int c); -EXTERN void sys_alsa_putmidibyte(int portno, int a); -EXTERN void sys_alsa_poll_midi(void); -EXTERN void sys_alsa_setmiditimediff(double inbuftime, double outbuftime); -EXTERN void sys_alsa_midibytein(int portno, int byte); -EXTERN void sys_alsa_close_midi( void); - - - /* implemented in the system dependent MIDI code (s_midi_pm.c, etc. ) */ -void midi_alsa_getdevs(char *indevlist, int *nindevs, - char *outdevlist, int *noutdevs, int maxndev, int devdescsize); -void sys_alsa_do_open_midi(int nmidiindev, int *midiindev, - int nmidioutdev, int *midioutdev); -#endif - -/* 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 - -#define SCHED_AUDIO_NONE 0 -#define SCHED_AUDIO_POLL 1 -#define SCHED_AUDIO_CALLBACK 2 -void sched_set_using_audio(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_NONE 0 -#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_ALSA -#define API_DEFSTRING "ALSA" -#endif -#ifdef MSW -#define API_DEFAULT API_MMIO -#define API_DEFSTRING "MMIO" -#endif -#ifdef __APPLE__ -#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 _WIN32 -#define DEFAULTADVANCE 100 -#endif -#ifdef __linux__ -#define DEFAULTADVANCE 50 -#endif -#ifdef __APPLE__ -#define DEFAULTADVANCE 20 -#endif - -typedef void (*t_audiocallback)(void); - -int pa_open_audio(int inchans, int outchans, int rate, t_sample *soundin, - t_sample *soundout, int framesperbuf, int nbuffers, - int indeviceno, int outdeviceno, t_audiocallback callback); -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); -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); - -int 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_midi_api(int whichapi); -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, int *callback); -void sys_save_audio_params( - int naudioindev, int *audioindev, int *chindev, - int naudiooutdev, int *audiooutdev, int *choutdev, - int rate, int advance, int callback); - -/* s_file.c */ - -typedef void (*t_printhook)(const char *s); -extern t_printhook sys_printhook; /* set this to override printing */ -extern int sys_printtostderr; -extern int sys_k12_mode; - -/* 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 t_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 */ -extern t_widgetbehavior text_widgetbehavior; - -/* in x_list.c */ - /* List element for storage. Keep an atom and, in case it's a pointer, - an associated 'gpointer' to protect against stale pointers. */ -typedef struct _listelem -{ - t_atom l_a; - t_gpointer l_p; -} t_listelem; - -struct _alist -{ - t_pd l_pd; /* object to point inlets to */ - int l_n; /* number of items */ - int l_npointer; /* number of pointers */ - t_listelem *l_vec; /* pointer to items */ -}; - -#ifndef t_alist -#define t_alist struct _alist -#endif - -#if 0 /* probably won't use this version... */ -#ifdef HAVE_ALLOCA -#define LIST_ALLOCA(x, n) ( \ - (x).l_n = (n), \ - (x).l_vec = (t_listelem *)((n) < LIST_NGETBYTE ? \ - alloca((n) * sizeof(t_listelem)) : getbytes((n) * sizeof(t_listelem)))) \ -#define LIST_FREEA(x) ( \ - ((x).l_n < LIST_NGETBYTE || - (freebytes((x).l_vec, (x).l_n * sizeof(t_listelem)), 0))) - -#else -#define LIST_ALLOCA(x, n) ( \ - (x).l_n = (n), \ - (x).l_vec = (t_listelem *)getbytes((n) * sizeof(t_listelem))) -#define LIST_FREEA(x) (freebytes((x).l_vec, (x).l_n * sizeof(t_listelem))) -#endif -#endif - -#if HAVE_ALLOCA -#define XL_ATOMS_ALLOCA(x, n) ((x) = (t_atom *)((n) < LIST_NGETBYTE ? \ - alloca((n) * sizeof(t_atom)) : getbytes((n) * sizeof(t_atom)))) -#define XL_ATOMS_FREEA(x, n) ( \ - ((n) < LIST_NGETBYTE || (freebytes((x), (n) * sizeof(t_atom)), 0))) -#else -#define XL_ATOMS_ALLOCA(x, n) ((x) = (t_atom *)getbytes((n) * sizeof(t_atom))) -#define XL_ATOMS_FREEA(x, n) (freebytes((x), (n) * sizeof(t_atom))) -#endif - -EXTERN void atoms_copy(int argc, t_atom *from, t_atom *to); -EXTERN t_class *alist_class; -EXTERN void alist_init(t_alist *x); -EXTERN void alist_clear(t_alist *x); -EXTERN void alist_list(t_alist *x, t_symbol *s, int argc, t_atom *argv); -EXTERN void alist_anything(t_alist *x, t_symbol *s, int argc, t_atom *argv); -EXTERN void alist_toatoms(t_alist *x, t_atom *to); -EXTERN void alist_clone(t_alist *x, t_alist *y); - -#endif /* __s_stuff_h_ */ diff --git a/externals/build/include/t_tk.h b/externals/build/include/t_tk.h deleted file mode 100644 index a6943679c23c5ca35811bf9651e1c8fe53963833..0000000000000000000000000000000000000000 --- a/externals/build/include/t_tk.h +++ /dev/null @@ -1,10 +0,0 @@ -/* 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 diff --git a/externals/iem16/src/tab16read.d.16832 b/externals/iem16/src/tab16read.d.16832 deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/externals/iem16/src/tab16read~.d.6324 b/externals/iem16/src/tab16read~.d.6324 deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000