void grab_setup(void) { t_symbol *s = gensym("grab"); grab_class = class_new(s, (t_newmethod)grab_new, (t_method)grab_free, sizeof(t_grab), 0, A_DEFFLOAT, A_DEFSYMBOL, 0); class_addfloat(grab_class, grab_float); class_addbang(grab_class, grab_bang); class_addsymbol(grab_class, grab_symbol); class_addpointer(grab_class, grab_pointer); class_addlist(grab_class, grab_list); class_addanything(grab_class, grab_anything); class_addmethod(grab_class, (t_method)grab_set, gensym("set"), A_SYMBOL, 0); if (!bindlist_class) { t_class *c = grab_class; pd_bind(&grab_class, s); pd_bind(&c, s); if (!s->s_thing || !(bindlist_class = *s->s_thing) || bindlist_class->c_name != gensym("bindlist")) error("grab: failure to initialize remote grabbing feature"); pd_unbind(&c, s); pd_unbind(&grab_class, s); } }
void glob_init(void) { maxclass = class_new(gensym("max"), 0, 0, sizeof(t_pd), CLASS_DEFAULT, A_NULL); class_addanything(maxclass, max_default); pd_bind(&maxclass, gensym("max")); glob_pdobject = class_new(gensym("pd"), 0, 0, sizeof(t_pd), CLASS_DEFAULT, A_NULL); class_addmethod(glob_pdobject, (t_method)glob_initfromgui, gensym("init"), A_GIMME, 0); class_addmethod(glob_pdobject, (t_method)glob_setfilename, gensym("filename"), A_SYMBOL, A_SYMBOL, 0); class_addmethod(glob_pdobject, (t_method)glob_evalfile, gensym("open"), A_SYMBOL, A_SYMBOL, 0); class_addmethod(glob_pdobject, (t_method)glob_quit, gensym("quit"), 0); class_addmethod(glob_pdobject, (t_method)glob_verifyquit, gensym("verifyquit"), A_DEFFLOAT, 0); // class_addmethod(glob_pdobject, (t_method)glob_foo, gensym("foo"), A_GIMME, 0); class_addmethod(glob_pdobject, (t_method)glob_dsp, gensym("dsp"), A_GIMME, 0); class_addmethod(glob_pdobject, (t_method)glob_meters, gensym("meters"), A_FLOAT, 0); class_addmethod(glob_pdobject, (t_method)glob_key, gensym("key"), A_GIMME, 0); class_addmethod(glob_pdobject, (t_method)glob_audiostatus, gensym("audiostatus"), 0); class_addmethod(glob_pdobject, (t_method)glob_finderror, gensym("finderror"), 0); // class_addmethod(glob_pdobject, (t_method)glob_audio_properties, // gensym("audio-properties"), A_DEFFLOAT, 0); // class_addmethod(glob_pdobject, (t_method)glob_audio_dialog, // gensym("audio-dialog"), A_GIMME, 0); // class_addmethod(glob_pdobject, (t_method)glob_audio_setapi, // gensym("audio-setapi"), A_FLOAT, 0); // class_addmethod(glob_pdobject, (t_method)glob_midi_setapi, // gensym("midi-setapi"), A_FLOAT, 0); // class_addmethod(glob_pdobject, (t_method)glob_midi_properties, // gensym("midi-properties"), A_DEFFLOAT, 0); // class_addmethod(glob_pdobject, (t_method)glob_midi_dialog, // gensym("midi-dialog"), A_GIMME, 0); class_addmethod(glob_pdobject, (t_method)glob_start_path_dialog, gensym("start-path-dialog"), 0); class_addmethod(glob_pdobject, (t_method)glob_path_dialog, gensym("path-dialog"), A_GIMME, 0); class_addmethod(glob_pdobject, (t_method)glob_start_startup_dialog, gensym("start-startup-dialog"), 0); class_addmethod(glob_pdobject, (t_method)glob_startup_dialog, gensym("startup-dialog"), A_GIMME, 0); class_addmethod(glob_pdobject, (t_method)glob_ping, gensym("ping"), 0); // class_addmethod(glob_pdobject, (t_method)glob_savepreferences, // gensym("save-preferences"), 0); class_addmethod(glob_pdobject, (t_method)glob_version, gensym("version"), A_FLOAT, 0); class_addmethod(glob_pdobject, (t_method)glob_perf, gensym("perf"), A_FLOAT, 0); class_addanything(glob_pdobject, max_default); pd_bind(&glob_pdobject, gensym("pd")); }
void *masse_new(t_symbol *s, t_floatarg M, t_floatarg X) { t_masse *x = (t_masse *)pd_new(masse_class); x->x_sym = s; pd_bind(&x->x_obj.ob_pd, s); x->position_new=outlet_new(&x->x_obj, 0); x->force_out=outlet_new(&x->x_obj, 0); x->vitesse_out=outlet_new(&x->x_obj, 0); x->Xinit=X; x->pos_old_1 = X; x->pos_old_2 = X; x->force=0; x->masse=M; x->minX = -100000; x->maxX = 100000; if (x->masse<=0) x->masse=1; return (void *)x; }
void *liaKD_new(t_symbol *s, t_floatarg L, t_floatarg K, t_floatarg D, t_floatarg D2 ) { t_liaKD *x = (t_liaKD *)pd_new(liaKD_class); x->x_sym = s; pd_bind(&x->x_obj.ob_pd, s); floatinlet_new(&x->x_obj, &x->position2); x->force1=outlet_new(&x->x_obj, 0); x->force2=outlet_new(&x->x_obj, 0); x->position1 = 0; x->position2 = 0; x->raideur=K; x->viscosite=D; x->D2=D2; x->Lmin= 0; x->Lmax= 10000; x->longueur=L; return (void *)x; }
void *libpdreceive_new(t_symbol *s, void *data) { t_libpdrec *x = (t_libpdrec *)pd_new(libpdrec_class); x->x_sym = s; x->data = data; pd_bind(&x->x_obj.ob_pd, s); return x; }
static void *keyup_new( void) { t_keyup *x = (t_keyup *)pd_new(keyup_class); outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, keyup_sym); return (x); }
EXTERN t_pdinstance *pdinstance_new(void) { t_pdinstance *x = (t_pdinstance *)getbytes(sizeof(t_pdinstance)); t_class *c; int i; pd_this = x; s_inter_newpdinstance(); pdinstance_init(x); sys_lock(); pd_globallock(); pd_instances = (t_pdinstance **)resizebytes(pd_instances, pd_ninstances * sizeof(*pd_instances), (pd_ninstances+1) * sizeof(*pd_instances)); pd_instances[pd_ninstances] = x; for (c = class_list; c; c = c->c_next) { c->c_methods = (t_methodentry **)t_resizebytes(c->c_methods, pd_ninstances * sizeof(*c->c_methods), (pd_ninstances + 1) * sizeof(*c->c_methods)); c->c_methods[pd_ninstances] = t_getbytes(0); for (i = 0; i < c->c_nmethod; i++) class_addmethodtolist(c, &c->c_methods[pd_ninstances], i, c->c_methods[0][i].me_fun, dogensym(c->c_methods[0][i].me_name->s_name, 0, x), c->c_methods[0][i].me_arg, x); } pd_ninstances++; pdinstance_renumber(); pd_bind(&glob_pdobject, gensym("pd")); text_template_init(); garray_init(); pd_globalunlock(); sys_unlock(); return (x); }
void *lia2D_new(t_symbol *s, t_floatarg l, t_floatarg K, t_floatarg D, t_floatarg D2) { t_lia2D *x = (t_lia2D *)pd_new(lia2D_class); x->x_sym = s; pd_bind(&x->x_obj.ob_pd, s); inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("position2D"), gensym("position2D2")); x->force1=outlet_new(&x->x_obj, 0); x->force2=outlet_new(&x->x_obj, 0); x->position2Dx1 = 0; x->position2Dx2 = 0; x->position2Dy1 = 0; x->position2Dy2 = 0; x->raideur=K; x->viscosite=D; x->longueur = l; x->D2=D2; x->Lmin= 0; x->Lmax= 10000; x->muscle= 1; x->distance_old = x->longueur; return (x); }
static void multireceive_add(t_multireceive *x, t_symbol*s) { t_symlist*sl=x->x_symlist; t_symlist*element=NULL; if(sl) { while(sl->next) { if(s==sl->s) { // already bound to this symbol return; } sl=sl->next; } } element=(t_symlist*)getbytes(sizeof(t_symlist)); element->s=s; element->next=NULL; pd_bind(&x->x_proxy->x_obj.ob_pd, s); if(sl) { sl->next=element; } else { x->x_symlist=element; } }
void iemgui_receive(t_iemgui *x, t_symbol *s) { t_symbol *rcv; if (s == &s_) s = s_empty; //tb: fix for empty label int oldsndrcvable=0; if(iemgui_has_rcv(x)) oldsndrcvable += IEM_GUI_OLD_RCV_FLAG; if(iemgui_has_snd(x)) oldsndrcvable += IEM_GUI_OLD_SND_FLAG; rcv = iemgui_raute2dollar(s); x->x_rcv_unexpanded = rcv; rcv = canvas_realizedollar(x->x_glist, rcv); if(s!=s_empty) { if(rcv!=x->x_rcv) { if(iemgui_has_rcv(x)) pd_unbind((t_pd *)x, x->x_rcv); x->x_rcv = rcv; pd_bind((t_pd *)x, x->x_rcv); } } else if(s==s_empty && iemgui_has_rcv(x)) { pd_unbind((t_pd *)x, x->x_rcv); x->x_rcv = rcv; } iemgui_verify_snd_ne_rcv(x); iemgui_draw_io(x, oldsndrcvable); }
static void *receive_new(t_symbol *s) { t_receive *x = (t_receive *)pd_new(receive_class); x->x_sym = s; pd_bind(&x->x_obj.ob_pd, s); outlet_new(&x->x_obj, 0); return (x); }
///////////////////////////////////////////////////////// // // GemBase // ///////////////////////////////////////////////////////// // Constructor // ///////////////////////////////////////////////////////// GemBase :: GemBase(void) : gem_amRendering(false), m_cache(NULL), m_modified(true), m_out1(NULL), m_enabled(true), m_state(INIT) { m_out1 = outlet_new(this->x_obj, 0); pd_bind(&this->x_obj->ob_pd, gensym("__gemBase")); }
static void *keyname_new( void) { t_keyname *x = (t_keyname *)pd_new(keyname_class); x->x_outlet1 = outlet_new(&x->x_obj, &s_float); x->x_outlet2 = outlet_new(&x->x_obj, &s_symbol); pd_bind(&x->x_obj.ob_pd, keyname_sym); return (x); }
static void *sysexin_new( void) { t_midiin *x = (t_midiin *)pd_new(sysexin_class); x->x_outlet1 = outlet_new(&x->x_obj, &s_float); x->x_outlet2 = outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, sysexin_sym); return (x); }
static void *midirealtimein_new( void) { t_midirealtimein *x = (t_midirealtimein *)pd_new(midirealtimein_class); x->x_outlet1 = outlet_new(&x->x_obj, &s_float); x->x_outlet2 = outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, pd_this->pd_midirealtimein_sym); return (x); }
t_guiconnect *guiconnect_new(t_pd *who, t_symbol *sym) { t_guiconnect *x = (t_guiconnect *)pd_new(guiconnect_class); x->x_who = who; x->x_sym = sym; pd_bind(&x->x_obj.ob_pd, sym); return (x); }
static void *midiclkin_new(t_floatarg f) { t_midiclkin *x = (t_midiclkin *)pd_new(midiclkin_class); x->x_outlet1 = outlet_new(&x->x_obj, &s_float); x->x_outlet2 = outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, midiclkin_sym); return (x); }
static void *namecanvas_new(t_symbol *s) { t_namecanvas *x = (t_namecanvas *)pd_new(namecanvas_class); x->x_owner = (t_pd *)canvas_getcurrent(); x->x_sym = s; if (*s->s_name) pd_bind(x->x_owner, s); return (x); }
static void *touchin_new(t_floatarg f) { t_touchin *x = (t_touchin *)pd_new(touchin_class); x->x_channel = f; x->x_outlet1 = outlet_new(&x->x_obj, &s_float); if (f == 0) x->x_outlet2 = outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, pd_this->pd_touchin_sym); return (x); }
static void *notein_new(t_floatarg f) { t_notein *x = (t_notein *)pd_new(notein_class); x->x_channel = f; x->x_outlet1 = outlet_new(&x->x_obj, &s_float); x->x_outlet2 = outlet_new(&x->x_obj, &s_float); if (f == 0) x->x_outlet3 = outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, notein_sym); return (x); }
static void *openpanel_new( void) { char buf[50]; t_openpanel *x = (t_openpanel *)pd_new(openpanel_class); sprintf(buf, "d%lx", (t_int)x); x->x_s = gensym(buf); pd_bind(&x->x_obj.ob_pd, x->x_s); outlet_new(&x->x_obj, &s_symbol); return (x); }
static void *midirealtimein_new( void) { t_midirealtimein *x = (t_midirealtimein *)pd_new(midirealtimein_class); x->x_outlet1 = outlet_new(&x->x_obj, &s_float); x->x_outlet2 = outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, midirealtimein_sym); #ifndef MSW pd_error(x, "midirealtimein: works under MSW only"); #endif return (x); }
static void *sysexin_new( void) { t_midiin *x = (t_midiin *)pd_new(sysexin_class); x->x_outlet1 = outlet_new(&x->x_obj, &s_float); x->x_outlet2 = outlet_new(&x->x_obj, &s_float); pd_bind(&x->x_obj.ob_pd, sysexin_sym); #ifdef WIN32 pd_error(x, "sysexin: windows: not supported"); #endif return (x); }
void *sigcatch13_new(t_symbol *s) { t_sigcatch13 *x = (t_sigcatch13 *)pd_new(sigcatch13_class); if (!*s->s_name) s = gensym("catch~"); pd_bind(&x->x_obj.ob_pd, s); x->x_sym = s; x->x_n = DEFSENDVS; x->x_vec = (float *)getbytes(DEFSENDVS * sizeof(float)); outlet_new(&x->x_obj, &s_signal); return (x); }
static void *savepanel_new( void) { char buf[50]; t_savepanel *x = (t_savepanel *)pd_new(savepanel_class); sprintf(buf, "d%lx", (t_int)x); x->x_s = gensym(buf); x->x_canvas = canvas_getcurrent(); pd_bind(&x->x_obj.ob_pd, x->x_s); outlet_new(&x->x_obj, &s_symbol); return (x); }
static void draw_select(t_tg* tg,t_glist* glist) { t_canvas *canvas = glist_getcanvas(glist); if(tg->selected) { pd_bind(&tg->x_obj.ob_pd, tg->name); sys_vgui(".x%lx.c itemconfigure %lxTGLBOUND -outline #0000FF\n", canvas, tg); } else { pd_unbind(&tg->x_obj.ob_pd, tg->name); sys_vgui(".x%lx.c itemconfigure %lxTGLBOUND -outline #000000\n", canvas, tg); } }
static void *lreceive_new(t_symbol *s) { t_lreceive *x = (t_lreceive *)pd_new(lreceive_class); char mysym[MAXPDSTRING]; sprintf(mysym,"%s%p",s->s_name,canvas_getcurrent()); x->x_sym = gensym(mysym); pd_bind(&x->x_obj.ob_pd, x->x_sym); outlet_new(&x->x_obj, 0); return (x); }
static void *colorpanel_new( void) { char buf[MAXPDSTRING]; t_colorpanel *x = (t_colorpanel *)pd_new(colorpanel_class); sprintf(buf, "#%lx", (t_int)x); x->x_s = gensym(buf); pd_bind(&x->x_obj.ob_pd, x->x_s); outlet_new(&x->x_obj, &s_list); strcpy(x->current_color,"#ffffff"); return(x); }
static void *scommon_new(t_symbol *s) { t_scommon *x = (t_scommon *)pd_new(scommon_class); x->c_refcount = 0; x->c_sym=s; pd_bind((t_pd *)x, s); x->first=0; return (x); }
static void *iem_event_new(t_symbol *s, int argc, t_atom *argv) { t_iem_event *x = (t_iem_event *)pd_new(iem_event_class); t_int w=32, h=32; x->x_gui.x_snd = gensym("empty"); x->x_gui.x_rcv = gensym("empty"); x->x_gui.x_lab = gensym("empty"); x->x_gui.x_fsf.x_font_style = 0; if((argc >= 6)&&IS_A_FLOAT(argv,0)&&IS_A_FLOAT(argv,1) &&IS_A_FLOAT(argv,2)&&IS_A_FLOAT(argv,3) &&(IS_A_SYMBOL(argv,4)||IS_A_FLOAT(argv,4)) &&(IS_A_SYMBOL(argv,5)||IS_A_FLOAT(argv,5))) { w = (int)atom_getintarg(0, argc, argv); h = (int)atom_getintarg(1, argc, argv); iem_inttosymargs(&x->x_gui.x_isa, atom_getintarg(2, argc, argv)); iem_inttofstyle(&x->x_gui.x_fsf, atom_getintarg(3, argc, argv)); iemgui_new_getnames(&x->x_gui, 4, argv); } else if((argc >= 2)&&IS_A_FLOAT(argv,0)&&IS_A_FLOAT(argv,1)) { w = (int)atom_getintarg(0, argc, argv); h = (int)atom_getintarg(1, argc, argv); } x->x_gui.x_draw = (t_iemfunptr)iem_event_draw; x->x_gui.x_fsf.x_snd_able = 1; x->x_gui.x_fsf.x_rcv_able = 1; x->x_gui.x_glist = (t_glist *)canvas_getcurrent(); if(!strcmp(x->x_gui.x_snd->s_name, "empty")) x->x_gui.x_fsf.x_snd_able = 0; if(!strcmp(x->x_gui.x_rcv->s_name, "empty")) x->x_gui.x_fsf.x_rcv_able = 0; if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv); if(w < 4) w = 4; x->x_gui.x_w = w; if(h < 4) h = 4; x->x_gui.x_h = h; iemgui_verify_snd_ne_rcv(&x->x_gui); outlet_new(&x->x_gui.x_obj, &s_list); x->x_mouse_shft_alt = gensym("mouse_shft_alt"); x->x_dragg_x_y = gensym("dragg_x_y"); x->x_key = gensym("key"); x->x_move_x_y = gensym("move_x_y"); x->x_x = 0; x->x_y = 0; x->x_doit = 0; return (x); }