コード例 #1
0
ファイル: GEMglStencilOp.cpp プロジェクト: kmatheussen/libpd
void GEMglStencilOp :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglStencilOp::failMessCallback),  	gensym("fail"), A_GIMME, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglStencilOp::zfailMessCallback),  	gensym("zfail"), A_GIMME, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglStencilOp::zpassMessCallback),  	gensym("zpass"), A_GIMME, A_NULL);
};
コード例 #2
0
ファイル: GEMglRasterPos2i.cpp プロジェクト: avilleret/Gem
void GEMglRasterPos2i :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglRasterPos2i::xMessCallback),  	gensym("x"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglRasterPos2i::yMessCallback),  	gensym("y"), A_DEFFLOAT, A_NULL);
};
コード例 #3
0
ファイル: soundfonts.c プロジェクト: EQ4/Pd-for-LibPd
void soundfonts_setup(void)
{
    soundfonts_class = class_new(gensym("soundfonts"),
                                       (t_newmethod)soundfonts_new,
                                       0,
                                       sizeof(t_soundfonts),
                                       CLASS_DEFAULT,
                                       0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_dsp, gensym("dsp"), 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_set, gensym("set"), A_DEFSYMBOL, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_set2, gensym("set2"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_polyphony, gensym("polyphony"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_cc, gensym("cc"), A_FLOAT, A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_nrpn, gensym("nrpn"), A_FLOAT, A_FLOAT, A_FLOAT, 0);

    class_addmethod(soundfonts_class, (t_method)soundfonts_flush, gensym("flush"), 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_sustain, gensym("sustain"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_volume, gensym("volume"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_pan, gensym("pan"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod, gensym("mod"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_vol_delay, gensym("volume_delay"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_vol_attack, gensym("volume_attack"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_vol_hold, gensym("volume_hold"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_vol_decay, gensym("volume_decay"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_vol_sustain, gensym("volume_sustain"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_vol_release, gensym("volume_release"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_lfo_pitch, gensym("mod_lfo_pitch"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_lfo_filter, gensym("mod_lfo_filter"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_lfo_volume, gensym("mod_lfo_volume"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_lfo_delay, gensym("mod_lfo_delay"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_lfo_freq, gensym("mod_lfo_frequency"), A_FLOAT, 0);
  
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_pitch, gensym("mod_env_pitch"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_filter, gensym("mod_env_filter"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_delay, gensym("mod_env_delay"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_attack, gensym("mod_env_attack"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_hold, gensym("mod_env_hold"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_decay, gensym("mod_env_decay"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_sustain, gensym("mod_env_sustain"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_env_release, gensym("mod_env_release"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_vib_lfo_delay, gensym("vib_lfo_delay"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_vib_lfo_freq, gensym("vib_lfo_frequency"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_vib_lfo_pitch, gensym("vib_lfo_amount"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_fc, gensym("filter_frequency"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_q, gensym("filter_q"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_vol_adsr, gensym("volume_adsr"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_mod_adsr, gensym("mod_adsr"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_coarse_tune, gensym("coarse_tune"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_fine_tune, gensym("fine_tune"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_velocity_range, gensym("velocity_range"), A_FLOAT, A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_key_range, gensym("key_range"), A_FLOAT, A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_chorus_amount, gensym("chorus_amount"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_chorus_depth, gensym("chorus_depth"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_chorus_level, gensym("chorus_level"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_chorus_speed, gensym("chorus_speed"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_chorus_n, gensym("chorus_n"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_chorus_type, gensym("chorus_type"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_reverb_amount, gensym("reverb_amount"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_reverb_damping, gensym("reverb_damping"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_reverb_level, gensym("reverb_level"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_reverb_size, gensym("reverb_size"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_reverb_width, gensym("reverb_width"), A_FLOAT, 0);
    
    class_addmethod(soundfonts_class, (t_method)soundfonts_pitchbend, gensym("pitchbend"), A_FLOAT, 0);
    class_addmethod(soundfonts_class, (t_method)soundfonts_pitchbend_range, gensym("pitchbend_range"), A_FLOAT, 0);
    
    
    class_addlist(soundfonts_class, soundfonts_note);
}
コード例 #4
0
ファイル: hoa.scope~.cpp プロジェクト: natcl/HoaLibrary
extern "C" void setup_hoa0x2escope_tilde(void)
{
	t_eclass *c;

	c = class_new("hoa.scope~", (method)scope_new, (method)scope_free, (short)sizeof(t_scope), 0L, A_GIMME, 0);

	class_dspinitjbox(c);
    
	jbox_initclass(c, JBOX_COLOR | JBOX_FIXWIDTH);

	class_addmethod(c, (method)scope_dsp,			"dsp",          A_CANT, 0);
	class_addmethod(c, (method)scope_assist,		"assist",		A_CANT,	0);
	class_addmethod(c, (method)scope_paint,			"paint",		A_CANT,	0);
	class_addmethod(c, (method)scope_notify,		"notify",		A_CANT, 0);
	class_addmethod(c, (method)scope_getdrawparams, "getdrawparams", A_CANT, 0);
	class_addmethod(c, (method)scope_oksize,		"oksize",		A_CANT, 0);

	CLASS_ATTR_DEFAULT			(c, "size", 0, "225 225");

    CLASS_ATTR_LONG             (c, "order", 0, t_scope, f_order);
    CLASS_ATTR_ACCESSORS        (c, "order", (method)NULL,(method)scope_setattr_order);
	CLASS_ATTR_CATEGORY			(c, "order", 0, "Behavior");
	CLASS_ATTR_ORDER			(c, "order", 0, "1");
	CLASS_ATTR_LABEL			(c, "order", 0, "Ambisonic Order");
	CLASS_ATTR_FILTER_MIN		(c, "order", 1);
	CLASS_ATTR_DEFAULT			(c, "order", 0, "3");
	CLASS_ATTR_SAVE				(c, "order", 1);
    
    CLASS_ATTR_FLOAT            (c, "gain", 0, t_scope, f_normalize);
	CLASS_ATTR_CATEGORY			(c, "gain", 0, "Behavior");
	CLASS_ATTR_ORDER			(c, "gain", 0, "2");
	CLASS_ATTR_LABEL			(c, "gain", 0, "Gain factor");
	CLASS_ATTR_FILTER_MIN		(c, "gain", 1.);
	CLASS_ATTR_DEFAULT			(c, "gain", 0, "1.");
	CLASS_ATTR_SAVE				(c, "gain", 1);

	CLASS_ATTR_LONG             (c, "interval", 0, t_scope, f_interval);
	CLASS_ATTR_CATEGORY			(c, "interval", 0, "Behavior");
	CLASS_ATTR_ORDER			(c, "interval", 0, "3");
	CLASS_ATTR_LABEL			(c, "interval", 0, "Refresh Interval in Milliseconds");
	CLASS_ATTR_FILTER_MIN		(c, "interval", 20);
	CLASS_ATTR_DEFAULT			(c, "interval", 0, "100");
	CLASS_ATTR_SAVE				(c, "interval", 1);
    
    CLASS_ATTR_LONG             (c, "drawcircle", 0, t_scope, f_drawCircle);
	CLASS_ATTR_CATEGORY			(c, "drawcircle", 0, "Appearance");
	CLASS_ATTR_ORDER			(c, "drawcircle", 0, "1");
	CLASS_ATTR_STYLE            (c, "drawcircle", 0, "onoff");
    CLASS_ATTR_LABEL			(c, "drawcircle", 0, "Draw Circle");
	CLASS_ATTR_DEFAULT			(c, "drawcircle", 0, "1");
	CLASS_ATTR_SAVE				(c, "drawcircle", 1);
    
    CLASS_ATTR_LONG             (c, "drawangles", 0, t_scope, f_drawAngles);
	CLASS_ATTR_CATEGORY			(c, "drawangles", 0, "Appearance");
	CLASS_ATTR_ORDER			(c, "drawangles", 0, "2");
    CLASS_ATTR_STYLE            (c, "drawangles", 0, "onoff");
    CLASS_ATTR_LABEL			(c, "drawangles", 0, "Draw Angles");
	CLASS_ATTR_DEFAULT			(c, "drawangles", 0, "1");
	CLASS_ATTR_SAVE				(c, "drawangles", 1);
    
    CLASS_ATTR_LONG             (c, "drawcontrib", 0, t_scope, f_drawContributions);
	CLASS_ATTR_CATEGORY			(c, "drawcontrib", 0, "Appearance");
	CLASS_ATTR_ORDER			(c, "drawcontrib", 0, "3");
    CLASS_ATTR_STYLE            (c, "drawcontrib", 0, "onoff");
    CLASS_ATTR_LABEL			(c, "drawcontrib", 0, "Draw Contributions");
	CLASS_ATTR_DEFAULT			(c, "drawcontrib", 0, "1");
	CLASS_ATTR_SAVE				(c, "drawcontrib", 1);
	
	CLASS_ATTR_INVISIBLE		(c, "color", 0);
	CLASS_ATTR_INVISIBLE		(c, "textcolor", 0);
	
	CLASS_ATTR_RGBA				(c, "bgcolor", 0, t_scope, f_colorBackground);
	CLASS_ATTR_CATEGORY			(c, "bgcolor", 0, "Color");
	CLASS_ATTR_STYLE			(c, "bgcolor", 0, "rgba");
	CLASS_ATTR_LABEL			(c, "bgcolor", 0, "Background Color");
	CLASS_ATTR_ORDER			(c, "bgcolor", 0, "1");
	CLASS_ATTR_DEFAULT_SAVE_PAINT(c, "bgcolor", 0, "0.76 0.76 0.76 1.");
    
    CLASS_ATTR_RGBA				(c, "bdcolor", 0, t_scope, f_bordercolor);
	CLASS_ATTR_CATEGORY			(c, "bdcolor", 0, "Color");
	CLASS_ATTR_STYLE			(c, "bdcolor", 0, "rgba");
	CLASS_ATTR_LABEL			(c, "bdcolor", 0, "Border Color");
	CLASS_ATTR_ORDER			(c, "bdcolor", 0, "2");
	CLASS_ATTR_DEFAULT_SAVE_PAINT(c, "bdcolor", 0, "0.7 0.7 0.7 1.");
	
	CLASS_ATTR_RGBA				(c, "txcolor", 0, t_scope, f_colorText);
	CLASS_ATTR_CATEGORY			(c, "txcolor", 0, "Color");
	CLASS_ATTR_STYLE			(c, "txcolor", 0, "rgba");
	CLASS_ATTR_LABEL			(c, "txcolor", 0, "Text Color");
	CLASS_ATTR_ORDER			(c, "txcolor", 0, "3");
	CLASS_ATTR_DEFAULT_SAVE_PAINT(c, "txcolor", 0, "0. 0. 0. 7.");
	
	CLASS_ATTR_RGBA				(c, "phcolor", 0, t_scope, f_colorPositif);
	CLASS_ATTR_CATEGORY			(c, "phcolor", 0, "Color");
	CLASS_ATTR_STYLE			(c, "phcolor", 0, "rgba");
	CLASS_ATTR_LABEL			(c, "phcolor", 0, "Positifs Harmonics");
	CLASS_ATTR_ORDER			(c, "phcolor", 0, "4");
	CLASS_ATTR_DEFAULT_SAVE_PAINT(c, "phcolor", 0, "1. 0. 0. 1.");
	
	CLASS_ATTR_RGBA				(c, "nhcolor", 0, t_scope, f_colorNegatif);
	CLASS_ATTR_CATEGORY			(c, "nhcolor", 0, "Color");
	CLASS_ATTR_STYLE			(c, "nhcolor", 0, "rgba");
	CLASS_ATTR_LABEL			(c, "nhcolor", 0, "Negatifs Harmonics");
	CLASS_ATTR_ORDER			(c, "nhcolor", 0, "5");
	CLASS_ATTR_DEFAULT_SAVE_PAINT(c, "nhcolor", 0, "0. 0. 1. 1.");
	
    class_register(CLASS_NOBOX, c);
	scope_class = c;
	
}
コード例 #5
0
ファイル: GEMglClearIndex.cpp プロジェクト: avilleret/Gem
void GEMglClearIndex :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglClearIndex::cMessCallback),  	gensym("c"), A_DEFFLOAT, A_NULL);
};
コード例 #6
0
ファイル: jcom.hub.cpp プロジェクト: alexarje/JamomaModular
int JAMOMA_EXPORT_MAXOBJ main(void)
{
	t_class *c;
	
	// Initialize Globals
	jamoma_init();
	common_symbols_init();

	// Define our class
	c = class_new("jcom.hub",(method)hub_new, (method)hub_free, sizeof(t_hub), (method)0L, A_GIMME, 0);
	
	// Make methods accessible for our class:
 	class_addmethod(c, (method)hub_symbol,				"anything",					A_GIMME, 0L);

	class_addmethod(c, (method)hub_getobj_audioin,		"getobj_audioin",			A_CANT, 0);		// return a pointer to the jcom.in~ object
	class_addmethod(c, (method)hub_getobj_audioout,		"getobj_audioout",			A_CANT, 0);		// return a pointer to the jcom.out~ object

	class_addmethod(c, (method)hub_bang,				"bang",						0);				// bang is used by one of the ramp driving mechanisms to calculate values

	class_addmethod(c, (method)hub_subscribe,			"subscribe",				A_CANT, 0L);	// client object subscribing
	class_addmethod(c, (method)hub_unsubscribe,			"unsubscribe",				A_CANT, 0L);	// client object unsubscribing
	class_addmethod(c, (method)hub_subscriptions_refresh,	"refreshSubscriptions",	0);
	class_addmethod(c, (method)hub_receive,				"__feedback__",				A_GIMME, 0L);	// feedback from parameters and such
	class_addmethod(c, (method)hub_private,				"private", 					A_GIMME, 0L);	// internal communications such as jcom.remote
	class_addmethod(c, (method)hub_return,				"return",					A_GIMME, 0L);	// feedback from jcom.return
	class_addmethod(c, (method)hub_return_extended,		"return_extended",			A_GIMME, 0L);	// feedback from jcom.return
//	class_addmethod(c, (method)hub_autodoc,				"documentation/generate",	0);
//	class_addmethod(c, (method)hub_autodoc,				"/documentation/generate",	0);
//	class_addmethod(c, (method)hub_presets_post,		"preset/post",	0); 
//	class_addmethod(c, (method)hub_presets_post,		"/preset/post",	0); 
	class_addmethod(c, (method)hub_paramnames_get,		"parameter_names:/dump",		0L);
	class_addmethod(c, (method)hub_paramnames_get,		"/parameter_names:/dump", 	0L);
	class_addmethod(c, (method)hub_messagenames_get,	"message_names:/dump",		0L);
	class_addmethod(c, (method)hub_messagenames_get,	"/message_names:/dump",		0L);
	class_addmethod(c, (method)hub_returnnames_get,		"return_names:/dump",		0L);
	class_addmethod(c, (method)hub_returnnames_get,		"/return_names:/dump",		0L);
	class_addmethod(c, (method)hub_allnames_get,		"*_names:/dump",				0L);
	class_addmethod(c, (method)hub_allnames_get,		"/*_names:/dump",			0L);
	class_addmethod(c, (method)hub_paramvalues_get,		"parameter_values:/dump",	0L);
	class_addmethod(c, (method)hub_paramvalues_get,		"/parameter_values:/dump",	0L);
	class_addmethod(c, (method)hub_modulename_get,		"module_name:/get", 0L);
	class_addmethod(c, (method)hub_modulename_get,		"/module_name:/get",			0L);
	class_addmethod(c, (method)core_modulename_get,		"core_module_name:/get",			0L);
	class_addmethod(c, (method)hub_algorithmtype_get,	"algorithm_type:/get", A_CANT);
	class_addmethod(c, (method)hub_algorithmtype_get,	"/algorithm_type:/get",		A_CANT);
	
	class_addmethod(c, (method)hub_paramnames_linklist,		"fetchParameterNamesInLinklist",	A_CANT, 0); // used by the ui ref menu
	class_addmethod(c, (method)hub_messagenames_linklist,	"fetchMessageNamesInLinklist",		A_CANT, 0); // used by the ui ref menu
	class_addmethod(c, (method)hub_returnnames_linklist,	"fetchReturnNamesInLinklist",		A_CANT, 0); // used by the ui ref menu
	class_addmethod(c, (method)hub_presetnames_linklist,	"fetchPresetNamesInLinklist",		A_CANT, 0); // used by the ui menu

	class_addmethod(c, (method)hub_module_help,				"module/help",			A_CANT, 0); // used by the ui ref menu
	class_addmethod(c, (method)hub_module_help,				"/module/help",			A_CANT, 0); // used by the ui ref menu
	class_addmethod(c, (method)hub_module_reference,		"module/reference",		A_CANT, 0); // used by the ui ref menu	
	class_addmethod(c, (method)hub_module_reference,		"/module/reference",		A_CANT, 0); // used by the ui ref menu	
	
	//class_addmethod(c, (method)hub_examine_context,		"loadbang", A_CANT, 0);
	class_addmethod(c, (method)hub_notify,				"notify",					A_CANT, 0);
	class_addmethod(c, (method)hub_assist,				"assist",					A_CANT, 0L); 
    class_addmethod(c, (method)object_obex_dumpout,		"dumpout",					A_CANT,	0);

	class_addmethod(c, (method)hub_edclose,				"edclose",	A_CANT, 0);		// notification of closing the /getstate text editor window

	CLASS_ATTR_SYM(c,		"name",				0,	t_hub,	osc_name);				// instance name (osc)
	CLASS_ATTR_ACCESSORS(c,	"name",				NULL,	hub_attr_setname);

	CLASS_ATTR_SYM(c,		"class",			0,	t_hub,	attr_name);				// module class name
	CLASS_ATTR_SYM(c,		"module_type",		0,	t_hub,	attr_type);
	CLASS_ATTR_SYM(c,		"algorithm_type",	0,	t_hub,	attr_algorithm_type);
	CLASS_ATTR_SYM(c,		"description",		0,	t_hub,	attr_description);
	
	CLASS_ATTR_SYM(c,		"user_path",		0,	t_hub,	user_path);	// the path of the last file used to save the presets

	// Finalize our class
	class_register(_sym_box, c);
	s_hub_class = c;
	
	return 0;
}
コード例 #7
0
ファイル: GEMglEvalCoord1f.cpp プロジェクト: megrimm/Gem
void GEMglEvalCoord1f :: obj_setupCallback(t_class *classPtr)
{
  class_addmethod(classPtr,
                  reinterpret_cast<t_method>(&GEMglEvalCoord1f::uMessCallback),
                  gensym("u"), A_DEFFLOAT, A_NULL);
}
コード例 #8
0
ファイル: GEMglGetMapfv.cpp プロジェクト: Jackovic/Gem
void GEMglGetMapfv :: obj_setupCallback(t_class *classPtr) {
  class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglGetMapfv::targetMessCallback), gensym("target"), A_DEFFLOAT, A_NULL);
  class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglGetMapfv::queryMessCallback), gensym("query"), A_DEFFLOAT, A_NULL);
}
コード例 #9
0
void GEMglPixelTransferf :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglPixelTransferf::pnameMessCallback),  	gensym("pname"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglPixelTransferf::paramMessCallback),  	gensym("param"), A_DEFFLOAT, A_NULL);
};
コード例 #10
0
ファイル: lms~.c プロジェクト: Angeldude/pd
void lms_tilde_setup(void)
{
  lms_tilde_class = class_new(gensym("lms~"), (t_newmethod)lms_tilde_new, 
                    (t_method)lms_tilde_free, sizeof(t_lms_tilde), 
                    CLASS_DEFAULT, A_GIMME, 0);

  class_addmethod(lms_tilde_class, (t_method)lms_tilde_a,
                  gensym("adaptation"), A_DEFFLOAT, 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_geta,
                  gensym("getadaptation"), 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_mu, 
                  gensym("mu"), A_DEFFLOAT, 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_getmu,
                  gensym("getmu"), 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_getN,
                  gensym("getN"), 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_init,
                  gensym("init_unity"), 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_clear,
                  gensym("clear"), 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_print,
                  gensym("print"), 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_write, 
                  gensym("write"), A_DEFSYMBOL, 0);
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_read, 
                  gensym("read"), A_DEFSYMBOL, 0);

  class_addmethod(lms_tilde_class, (t_method)lms_tilde_dsp, gensym("dsp"), 0);
  CLASS_MAINSIGNALIN(lms_tilde_class, t_lms_tilde, f);
  
  class_addmethod(lms_tilde_class, (t_method)lms_tilde_helper, gensym("help"), 0);
}
コード例 #11
0
ファイル: shininess.cpp プロジェクト: kmatheussen/libpd
/////////////////////////////////////////////////////////
// static member function
//
/////////////////////////////////////////////////////////
void shininess :: obj_setupCallback(t_class *classPtr)
{
    class_addmethod(classPtr, reinterpret_cast<t_method>(&shininess::shininessMessCallback),
    	    gensym("shininess"), A_FLOAT, A_NULL); 
}
コード例 #12
0
ファイル: detect~.c プロジェクト: porres/Porres-ELS
void detect_tilde_setup(void){
    detect_class = class_new(gensym("detect~"), (t_newmethod)detect_new,
        (t_method)detect_free, sizeof(t_detect), CLASS_DEFAULT, A_GIMME, 0);
    class_addmethod(detect_class, nullfn, gensym("signal"), 0);
    class_addmethod(detect_class, (t_method) detect_dsp, gensym("dsp"), A_CANT, 0);
}
コード例 #13
0
void jucebox_initclass(t_class* c, method paint, long flags)
{
    jbox_initclass(c, flags);
	class_addmethod(c, (method)jucebox_paint, "paint", A_CANT, 0);
    class_addmethod(c, (method)paint, "jucebox_paint", A_CANT, 0);
}
コード例 #14
0
ファイル: GEMglNormal3b.cpp プロジェクト: Jackovic/Gem
void GEMglNormal3b :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglNormal3b::nxMessCallback),  	gensym("nx"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglNormal3b::nyMessCallback),  	gensym("ny"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglNormal3b::nzMessCallback),  	gensym("nz"), A_DEFFLOAT, A_NULL);
};
コード例 #15
0
ファイル: GEMglTexCoord4s.cpp プロジェクト: Jackovic/Gem
void GEMglTexCoord4s :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexCoord4s::sMessCallback),  	gensym("s"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexCoord4s::tMessCallback),  	gensym("t"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexCoord4s::rMessCallback),  	gensym("r"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexCoord4s::qMessCallback),  	gensym("q"), A_DEFFLOAT, A_NULL);
};
コード例 #16
0
ファイル: GEMglDrawElements.cpp プロジェクト: Jackovic/Gem
void GEMglDrawElements :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglDrawElements::modeMessCallback),  	gensym("mode"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglDrawElements::countMessCallback),  	gensym("count"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglDrawElements::typeMessCallback),  	gensym("type"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglDrawElements::indicesMessCallback),  	gensym("indices"), A_GIMME, A_NULL);
}
コード例 #17
0
ファイル: specCentroid.c プロジェクト: avilleret/timbreID
void specCentroid_setup(void)
{
    specCentroid_class =
    class_new(
    	gensym("specCentroid"),
    	(t_newmethod)specCentroid_new,
    	(t_method)specCentroid_free,
        sizeof(t_specCentroid),
        CLASS_DEFAULT,
        A_DEFSYM,
		0
    );

	class_addbang(specCentroid_class, specCentroid_bang);

	class_addmethod(
		specCentroid_class,
        (t_method)specCentroid_analyze,
		gensym("analyze"),
        A_DEFFLOAT,
        A_DEFFLOAT,
		0
	);

	class_addmethod(
		specCentroid_class,
		(t_method)specCentroid_set,
		gensym("set"),
		A_SYMBOL,
		0
	);

	class_addmethod(
		specCentroid_class,
		(t_method)specCentroid_print,
		gensym("print"),
		0
	);

	class_addmethod(
		specCentroid_class,
        (t_method)specCentroid_samplerate,
		gensym("samplerate"),
		A_DEFFLOAT,
		0
	);

	class_addmethod(
		specCentroid_class,
        (t_method)specCentroid_max_window,
		gensym("max_window"),
		A_DEFFLOAT,
		0
	);

	class_addmethod(
		specCentroid_class,
        (t_method)specCentroid_windowFunction,
		gensym("window_function"),
		A_DEFFLOAT,
		0
	);

	class_addmethod(
		specCentroid_class,
        (t_method)specCentroid_powerSpectrum,
		gensym("power_spectrum"),
		A_DEFFLOAT,
		0
	);
}
コード例 #18
0
ファイル: pix_freeframe.cpp プロジェクト: ch-nry/Gem
void pix_freeframe :: obj_setupCallback(t_class *classPtr)
{
  class_addanything(classPtr, reinterpret_cast<t_method>(&pix_freeframe::parmCallback));
  class_addmethod  (classPtr, reinterpret_cast<t_method>(&pix_freeframe::openCallback), gensym("load"), A_SYMBOL, A_NULL);
  gem_register_loader(freeframe_loader);
}
コード例 #19
0
ファイル: scramble~.c プロジェクト: Angeldude/pd
void scramble_tilde_setup(void)
{
    scramble_tilde_class = class_new(gensym("scramble~"), (t_newmethod) scramble_tilde_new, 0,
    	sizeof(t_scramble_tilde), 0, A_DEFFLOAT,A_DEFFLOAT, 0);
    class_addfloat(scramble_tilde_class,scramble_tilde_float);
    class_addmethod(scramble_tilde_class, nullfn, gensym("signal"), 0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_dsp, gensym("dsp"), 0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_buffer, gensym("buffer"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_threshold, gensym("threshold"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_grains, gensym("grains"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_mindist, gensym("min_length"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_direction, gensym("direction"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_autofollow, gensym("autofollow"),0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_pitch, gensym("pitch"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_autopitch, gensym("autopitch"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_semitones, gensym("semitones"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_flush, gensym("flush"), 0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_normalize, gensym("normalize"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_analize, gensym("analize"), A_DEFFLOAT,0);
    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_playmode, gensym("playmode"), A_DEFFLOAT,0);
}
コード例 #20
0
int main()
{
    this_class = class_new("irmeasure~",
                            (method) irmeasure_new,
                            (method)irmeasure_free,
                            sizeof(t_irmeasure),
                            0L,
                            A_GIMME,
                            0);

    class_addmethod(this_class, (method)irmeasure_assist, "assist", A_CANT, 0L);
    class_addmethod(this_class, (method)irmeasure_dsp, "dsp", A_CANT, 0L);
    class_addmethod(this_class, (method)irmeasure_dsp64, "dsp64", A_CANT, 0L);

    class_addmethod(this_class, (method)irmeasure_sweep, "sweep", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_mls, "mls", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_noise, "white", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_noise, "brown", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_noise, "pink", A_GIMME, 0L);

    class_addmethod(this_class, (method)irmeasure_tone, "tone", A_FLOAT, A_DEFLONG, 0L);
    class_addmethod(this_class, (method)irmeasure_stop, "stop", 0L);
    class_addmethod(this_class, (method)irmeasure_clear, "clear", 0L);

    class_addmethod(this_class, (method)irmeasure_active_ins, "activeins", A_LONG, 0L);
    class_addmethod(this_class, (method)irmeasure_active_outs, "activeouts", A_LONG, 0L);

    class_addmethod(this_class, (method)irmeasure_reprocess, "reprocess", 0L);

    class_addmethod(this_class, (method)irmeasure_extract, "extract", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_dump, "dump", A_GIMME, 0L);
    class_addmethod(this_class, (method)irmeasure_getir, "getir", A_GIMME, 0L);

    declare_HIRT_common_attributes(this_class);

    CLASS_ATTR_LONG(this_class, "absprogress", 0, t_irmeasure, abs_progress);
    CLASS_ATTR_STYLE_LABEL(this_class,"absprogress",0,"onoff","Absolute Progress");

    CLASS_ATTR_DOUBLE(this_class, "amp", 0, t_irmeasure, amp);
    CLASS_ATTR_LABEL(this_class,"amp", 0, "Signal Amplitude (dB)");

    CLASS_ATTR_LONG(this_class, "invamp", 0, t_irmeasure, inv_amp);
    CLASS_ATTR_STYLE_LABEL(this_class,"invamp",0,"onoff","Invert Amplitude");

    CLASS_ATTR_LONG(this_class, "bandlimit", 0, t_irmeasure, bandlimit);
    CLASS_ATTR_STYLE_LABEL(this_class,"bandlimit",0,"onoff","Bandlimit Sweep Measurements");

    class_dspinit(this_class);

    class_register(CLASS_BOX, this_class);

    buffer_access_init();

    return 0;
}
コード例 #21
0
ファイル: GEMglMultMatrixf.cpp プロジェクト: avilleret/Gem
void GEMglMultMatrixf :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglMultMatrixf::matrixMessCallback),
										gensym("list"), A_GIMME, A_NULL);
}
コード例 #22
0
int JAMOMA_EXPORT_MAXOBJ main(void)
{
	t_class *c;
	
	jamoma_init();
	common_symbols_init();

	// Define our class
	c = class_new("jcom.ramp",(method)ramp_new, (method)ramp_free, sizeof(t_ramp), (method)0L, A_GIMME, 0);
	
	// Make methods accessible for our class:
	class_addmethod(c, (method)ramp_bang,					"bang",						0);
	class_addmethod(c, (method)ramp_int,					"int",						A_DEFLONG,	0);
	class_addmethod(c, (method)ramp_float,					"float",					A_DEFFLOAT,	0);
 	class_addmethod(c, (method)ramp_list,					"list",						A_GIMME,	0);
	class_addmethod(c, (method)ramp_set,					"set",						A_GIMME,	0);
	class_addmethod(c, (method)ramp_stop,					"stop",						0);
	class_addmethod(c, (method)ramp_attrset,				"attrset",					A_GIMME, 	0);
	class_addmethod(c, (method)ramp_attrget,				"attrget",					A_GIMME,	0);
	class_addmethod(c, (method)ramp_getFunctionParameter,	"function.parameter.get",	A_GIMME,	0);
	class_addmethod(c, (method)ramp_setFunctionParameter,	"function.parameter",		A_GIMME,	0);
	class_addmethod(c, (method)ramp_getDrives,				"drives.get",				0);
	class_addmethod(c, (method)ramp_getFunctions,			"functions.get",			0);
	class_addmethod(c, (method)ramp_clock,					"clock",					A_SYM,		0);
	class_addmethod(c, (method)ramp_assist,					"assist",					A_CANT,		0); 
    class_addmethod(c, (method)object_obex_dumpout,			"dumpout",					A_CANT,		0);

	// ATTRIBUTE: rampunit
	class_addattr(c, 
		attr_offset_new("drive", _sym_symbol, 0,
		(method)0, (method)ramp_setrampunit, calcoffset(t_ramp, attr_rampunit)));
	
	// ATTRIBUTE: function
	class_addattr(c, 
		attr_offset_new("function", _sym_symbol, 0,
		(method)0, (method)ramp_setFunction, calcoffset(t_ramp, attr_function)));	

	// Finalize our class
	class_register(CLASS_BOX, c);
	ramp_class = c;
	
	return 0;
}
コード例 #23
0
ファイル: tap.filecontainer.cpp プロジェクト: tap/TapTools
extern "C" int C74_EXPORT main(void)
{
    t_class *c;

    c = class_new("tap.filecontainer", (method)filecontainer_new, (method)filecontainer_free, sizeof(t_filecontainer), (method)0L, A_GIMME, 0);

    common_symbols_init();

    // MESSAGES:
    class_addmethod(c, (method)filecontainer_addfile,			"addfile",			A_DEFSYM, 0L);
    class_addmethod(c, (method)filecontainer_removefile,		"removefile",		A_SYM, 0L);
    class_addmethod(c, (method)filecontainer_getnumfiles,		"getnumfiles",		0L);
    class_addmethod(c, (method)filecontainer_getfilenames,		"getfilenames",		0L);
    class_addmethod(c, (method)filecontainer_getfilepath,		"getfilepath",		A_SYM, 0L);

    class_addmethod(c, (method)filecontainer_addfileattr,		"addfileattr",		A_GIMME, 0L);
    class_addmethod(c, (method)filecontainer_removefileattr,	"removefileattr",	A_GIMME, 0L);
    class_addmethod(c, (method)filecontainer_getnumfileattrs,	"getnumfileattrs",	A_SYM, 0L);
    class_addmethod(c, (method)filecontainer_getfileattrnames,	"getfileattrnames",	A_SYM, 0L);
    class_addmethod(c, (method)filecontainer_getfileattrvalue,	"getfileattrvalue",	A_GIMME, 0L);

    class_addmethod(c, (method)filecontainer_sql,				"sql",				A_SYM, 0L);
    class_addmethod(c, (method)filecontainer_open,				"open",				A_DEFSYM, 0L);	//	create a cache of temp files
    class_addmethod(c, (method)filecontainer_close,				"close",			0L);			//	remove temp files
//	class_addmethod(c, (method)filecontainer_spoolfile,			"sync",				A_GIMME, 0L);	//	sync temp files and the db based on moddates

    class_addmethod(c, (method)filecontainer_assist,			"assist",			A_CANT, 0L);
    class_addmethod(c, (method)stdinletinfo,					"inletinfo",		A_CANT, 0);

    // Finalize our class
    class_register(_sym_box, c);
    s_filecontainer_class = c;

    ps_getblob				= gensym("getblob");
    ps_setblob				= gensym("setblob");
    ps_getlastinsertid		= gensym("getlastinsertid");
    ps_starttransaction		= gensym("starttransaction");
    ps_endtransaction		= gensym("endtransaction");
}
コード例 #24
0
ファイル: d_osc.c プロジェクト: BurntBrunch/rockbox-fft
static void noise_setup(void)
{
    noise_class = class_new(gensym("noise~"), (t_newmethod)noise_new, 0,
    	sizeof(t_noise), 0, 0);
    class_addmethod(noise_class, (t_method)noise_dsp, gensym("dsp"), 0);
}
コード例 #25
0
ファイル: GEMglColor3us.cpp プロジェクト: Jackovic/Gem
void GEMglColor3us :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglColor3us::redMessCallback),  	gensym("red"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglColor3us::greenMessCallback),  	gensym("green"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglColor3us::blueMessCallback),  	gensym("blue"), A_DEFFLOAT, A_NULL);
};
コード例 #26
0
ファイル: GEMglTexSubImage1D.cpp プロジェクト: Jackovic/Gem
void GEMglTexSubImage1D :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexSubImage1D::targetMessCallback),  	gensym("target"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexSubImage1D::levelMessCallback),  	gensym("level"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexSubImage1D::xoffsetMessCallback),  	gensym("xoffset"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexSubImage1D::widthMessCallback),  	gensym("width"), A_DEFFLOAT, A_NULL);
}
コード例 #27
0
ファイル: GEMglRects.cpp プロジェクト: Jackovic/Gem
void GEMglRects :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglRects::x1MessCallback),  	gensym("x1"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglRects::y1MessCallback),  	gensym("y1"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglRects::x2MessCallback),  	gensym("x2"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglRects::y2MessCallback),  	gensym("y2"), A_DEFFLOAT, A_NULL);
};
コード例 #28
0
ファイル: GEMglTexEnvi.cpp プロジェクト: avilleret/Gem
void GEMglTexEnvi :: obj_setupCallback(t_class *classPtr) {
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexEnvi::targetMessCallback),  	gensym("target"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexEnvi::pnameMessCallback),  	gensym("pname"), A_DEFFLOAT, A_NULL);
	 class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexEnvi::paramMessCallback),  	gensym("param"), A_DEFFLOAT, A_NULL);
};
コード例 #29
0
ファイル: GEMglTexCoord4dv.cpp プロジェクト: jptrkz/Gem
void GEMglTexCoord4dv :: obj_setupCallback(t_class *classPtr) {
    class_addmethod(classPtr, reinterpret_cast<t_method>(&GEMglTexCoord4dv::vMessCallback),  	gensym("v"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_NULL);
}
コード例 #30
0
int C74_EXPORT main(void)
{
    t_class *c;
    c = class_new("el.multigrain~", (method)multigrain_new, (method)dsp_free, sizeof(t_multigrain), 0,A_GIMME, 0);
    
    class_addmethod(c,(method)multigrain_dsp64, "dsp64", A_CANT, 0);
    class_addmethod(c,(method)multigrain_assist,"assist",A_CANT,0);
    class_addmethod(c,(method)multigrain_dblclick, "dblclick", A_CANT, 0);
    class_addmethod(c,(method)multigrain_setbuf, "setbuf", A_SYM, A_SYM, 0);
    class_addmethod(c,(method)multigrain_spray, "spray",  0);
    class_addmethod(c,(method)multigrain_pitchspray, "pitchspray",  0);
    class_addmethod(c,(method)multigrain_transpose, "transpose", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_events, "events", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_pitchdev, "pitchdev", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_lowblock, "lowblock", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_highblock, "highblock", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_interpolate, "interpolate", A_FLOAT, 0);
    class_addmethod(c,(method)multigrain_retro_odds, "retro_odds", A_FLOAT, 0);
    class_addmethod(c,(method)multigrain_nopan, "nopan", A_FLOAT, 0);
    class_addmethod(c,(method)multigrain_seed, "seed", A_FLOAT, 0);
    class_addmethod(c,(method)multigrain_mute, "mute", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_steady, "steady", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_interpolate, "interpolate", A_FLOAT, 0);
    class_addmethod(c,(method)multigrain_interpolate_envelope, "interpolate_envelope", A_FLOAT, 0);
    class_addmethod(c,(method)multigrain_constrain_scale, "constrain_scale", A_DEFFLOAT, 0);
    class_addmethod(c,(method)multigrain_grist, "grist", A_GIMME, 0);
    class_addmethod(c,(method)multigrain_grain, "grain", A_GIMME, 0);
    class_addmethod(c,(method)multigrain_setscale, "setscale", A_GIMME, 0);
    class_addmethod(c,(method)multigrain_chanrange, "chanrange", A_GIMME, 0);
    class_addmethod(c,(method)multigrain_setgroup, "setgroup", A_GIMME, 0);
    class_addmethod(c,(method)multigrain_info, "info", 0);
    
    class_addmethod(c, (method)multigrain_notify, "notify", A_CANT, 0);
    class_dspinit(c);
    class_register(CLASS_BOX, c);
    multigrain_class = c;
    
    potpourri_announce(OBJECT_NAME);
    return 0;
}