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