A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
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