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#include "m_pd.h"
6#include "m_imp.h"
7
8t_class *glob_pdobject;
9static t_class *maxclass;
10
11/* These "glob" routines, which implement messages to Pd, are from all
12over. Some others are prototyped in m_imp.h as well. */
13
14void glob_setfilename(void *dummy, t_symbol *name, t_symbol *dir);
15void glob_quit(void *dummy);
16void glob_dsp(void *dummy, t_symbol *s, int argc, t_atom *argv);
17void glob_meters(void *dummy, t_floatarg f);
18void glob_key(void *dummy, t_symbol *s, int ac, t_atom *av);
19void glob_audiostatus(void);
20void glob_finderror(t_pd *dummy);
21void glob_audio_properties(t_pd *dummy, t_floatarg flongform);
22void glob_audio_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv);
23void glob_audio_setapi(t_pd *dummy, t_floatarg f);
24void glob_midi_properties(t_pd *dummy, t_floatarg flongform);
25void glob_midi_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv);
26void glob_start_path_dialog(t_pd *dummy, t_floatarg flongform);
27void glob_path_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv);
28void glob_ping(t_pd *dummy);
29
30void alsa_resync( void);
31
32
33#ifdef MSW
34void glob_audio(void *dummy, t_floatarg adc, t_floatarg dac);
35#endif
36
37/* a method you add for debugging printout */
38void glob_foo(void *dummy, t_symbol *s, int argc, t_atom *argv);
39
40#if 0
41void glob_foo(void *dummy, t_symbol *s, int argc, t_atom *argv)
42{
43 *(int *)1 = 3;
44}
45#endif
46
47void max_default(t_pd *x, t_symbol *s, int argc, t_atom *argv)
48{
49 int i;
50 char str[80];
51 startpost("%s: unknown message %s ", class_getname(pd_class(x)),
52 s->s_name);
53 for (i = 0; i < argc; i++)
54 {
55 atom_string(argv+i, str, 80);
56 poststring(str);
57 }
58 endpost();
59}
60
61void glob_init(void)
62{
63 maxclass = class_new(gensym("max"), 0, 0, sizeof(t_pd),
64 CLASS_DEFAULT, A_NULL);
65 class_addanything(maxclass, max_default);
66 pd_bind(&maxclass, gensym("max"));
67
68 glob_pdobject = class_new(gensym("pd"), 0, 0, sizeof(t_pd),
69 CLASS_DEFAULT, A_NULL);
70 class_addmethod(glob_pdobject, (t_method)glob_initfromgui, gensym("init"),
71 A_GIMME, 0);
72 class_addmethod(glob_pdobject, (t_method)glob_setfilename, gensym("filename"),
73 A_SYMBOL, A_SYMBOL, 0);
74 class_addmethod(glob_pdobject, (t_method)glob_evalfile, gensym("open"),
75 A_SYMBOL, A_SYMBOL, 0);
76 class_addmethod(glob_pdobject, (t_method)glob_quit, gensym("quit"), 0);
77 class_addmethod(glob_pdobject, (t_method)glob_foo, gensym("foo"), A_GIMME, 0);
78 class_addmethod(glob_pdobject, (t_method)glob_dsp, gensym("dsp"), A_GIMME, 0);
79 class_addmethod(glob_pdobject, (t_method)glob_meters, gensym("meters"),
80 A_FLOAT, 0);
81 class_addmethod(glob_pdobject, (t_method)glob_key, gensym("key"), A_GIMME, 0);
82 class_addmethod(glob_pdobject, (t_method)glob_audiostatus,
83 gensym("audiostatus"), 0);
84 class_addmethod(glob_pdobject, (t_method)glob_finderror,
85 gensym("finderror"), 0);
86#ifndef ROCKBOX
87 class_addmethod(glob_pdobject, (t_method)glob_audio_properties,
88 gensym("audio-properties"), A_DEFFLOAT, 0);
89 class_addmethod(glob_pdobject, (t_method)glob_audio_dialog,
90 gensym("audio-dialog"), A_GIMME, 0);
91 class_addmethod(glob_pdobject, (t_method)glob_audio_setapi,
92 gensym("audio-setapi"), A_FLOAT, 0);
93 class_addmethod(glob_pdobject, (t_method)glob_midi_properties,
94 gensym("midi-properties"), A_DEFFLOAT, 0);
95 class_addmethod(glob_pdobject, (t_method)glob_midi_dialog,
96 gensym("midi-dialog"), A_GIMME, 0);
97#endif /* ROCKBOX */
98 class_addmethod(glob_pdobject, (t_method)glob_start_path_dialog,
99 gensym("start-path-dialog"), A_DEFFLOAT, 0);
100 class_addmethod(glob_pdobject, (t_method)glob_path_dialog,
101 gensym("path-dialog"), A_GIMME, 0);
102#ifdef __linux__
103 class_addmethod(glob_pdobject, (t_method)glob_ping, gensym("ping"), 0);
104#endif
105 class_addanything(glob_pdobject, max_default);
106 pd_bind(&glob_pdobject, gensym("pd"));
107}
108