pure-data/src/m_imp.h

/* 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. */

#ifndef __m_imp_h_

/* the structure for a method handler ala Max */
t_methodentry;

EXTERN_STRUCT _widgetbehavior;

t_bangmethod;
t_pointermethod;
t_floatmethod;
t_symbolmethod;
t_listmethod;
t_anymethod;

t_bangmethodr;
t_pointermethodr;
t_floatmethodr;
t_symbolmethodr;
t_listmethodr;
t_anymethodr;

struct _class
{};

/* m_pd.c */
EXTERN void pd_init_systems(void);
EXTERN void pd_term_systems(void);

/* m_class.c */
EXTERN void pd_emptylist(t_pd *x);

/* m_obj.c */
EXTERN int obj_noutlets(const t_object *x);
EXTERN int obj_ninlets(const t_object *x);
EXTERN t_outconnect *obj_starttraverseoutlet(const 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(const t_object *x, int m);
EXTERN int obj_issignaloutlet(const t_object *x, int m);
EXTERN int obj_nsiginlets(const t_object *x);
EXTERN int obj_nsigoutlets(const t_object *x);
EXTERN int obj_siginletindex(const t_object *x, int m);
EXTERN int obj_sigoutletindex(const t_object *x, int m);
EXTERN t_float *obj_findsignalscalar(const t_object *x, int m);

/* s_inter.c */
void pd_globallock(void);
void pd_globalunlock(void);

/* misc */
#ifndef SYMTABHASHSIZE  /* set this to, say, 1024 for small memory footprint */
#define SYMTABHASHSIZE
#endif /* SYMTABHASHSIZE */

EXTERN t_pd *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_exit(void *dummy, t_float status);
EXTERN void glob_watchdog(void *dummy); /* glob_exit(0); */
EXTERN void open_via_helppath(const char *name, const char *dir);

#define __m_imp_h_
#endif /* __m_imp_h_ */