A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 79 lines 3.4 kB view raw
1/* Copyright (c) 1997-1999 Miller Puckette. 2* For information on usage and redistribution, and for a DISCLAIMER OF ALL 3* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ 4 5/* This file contains function prototypes and data types used to implement 6Pd, but not shared with Pd objects. */ 7 8/* NOTE: this file describes Pd implementation details which may change 9in future releases. The public (stable) API is in m_pd.h. */ 10 11/* LATER consider whether to use 'char' for method arg types to save space */ 12 13/* the structure for a method handler ala Max */ 14typedef struct _methodentry 15{ 16 t_symbol *me_name; 17 t_gotfn me_fun; 18 t_atomtype me_arg[MAXPDARG+1]; 19} t_methodentry; 20 21EXTERN_STRUCT _widgetbehavior; 22 23typedef void (*t_bangmethod)(t_pd *x); 24typedef void (*t_pointermethod)(t_pd *x, t_gpointer *gp); 25typedef void (*t_floatmethod)(t_pd *x, t_float f); 26typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s); 27typedef void (*t_listmethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); 28typedef void (*t_anymethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv); 29 30struct _class 31{ 32 t_symbol *c_name; /* name (mostly for error reporting) */ 33 t_symbol *c_helpname; /* name of help file */ 34 t_symbol *c_externdir; /* directory extern was loaded from */ 35 size_t c_size; /* size of an instance */ 36 t_methodentry *c_methods; /* methods other than bang, etc below */ 37 int c_nmethod; /* number of methods */ 38 t_method c_freemethod; /* function to call before freeing */ 39 t_bangmethod c_bangmethod; /* common methods */ 40 t_pointermethod c_pointermethod; 41 t_floatmethod c_floatmethod; 42 t_symbolmethod c_symbolmethod; 43 t_listmethod c_listmethod; 44 t_anymethod c_anymethod; 45 struct _widgetbehavior *c_wb; /* "gobjs" only */ 46 struct _parentwidgetbehavior *c_pwb;/* widget behavior in parent */ 47 t_savefn c_savefn; /* function to call when saving */ 48 t_propertiesfn c_propertiesfn; /* function to start prop dialog */ 49 int c_floatsignalin; /* onset to float for signal input */ 50 char c_gobj; /* true if is a gobj */ 51 char c_patchable; /* true if we have a t_object header */ 52 char c_firstin; /* if patchable, true if draw first inlet */ 53 char c_drawcommand; /* a drawing command for a template */ 54}; 55 56 57/* m_obj.c */ 58EXTERN int obj_noutlets(t_object *x); 59EXTERN int obj_ninlets(t_object *x); 60EXTERN t_outconnect *obj_starttraverseoutlet(t_object *x, t_outlet **op, 61 int nout); 62EXTERN t_outconnect *obj_nexttraverseoutlet(t_outconnect *lastconnect, 63 t_object **destp, t_inlet **inletp, int *whichp); 64EXTERN t_outconnect *obj_connect(t_object *source, int outno, 65 t_object *sink, int inno); 66EXTERN void obj_disconnect(t_object *source, int outno, t_object *sink, 67 int inno); 68EXTERN void outlet_setstacklim(void); 69EXTERN int obj_issignalinlet(t_object *x, int m); 70EXTERN int obj_issignaloutlet(t_object *x, int m); 71EXTERN int obj_nsiginlets(t_object *x); 72EXTERN int obj_nsigoutlets(t_object *x); 73EXTERN int obj_siginletindex(t_object *x, int m); 74EXTERN int obj_sigoutletindex(t_object *x, int m); 75 76/* misc */ 77EXTERN void glob_evalfile(t_pd *ignore, t_symbol *name, t_symbol *dir); 78EXTERN void glob_initfromgui(void *dummy, t_symbol *s, int argc, t_atom *argv); 79