int JAMOMA_EXPORT_MAXOBJ main(void) { long attrflags = 0; t_class *c; t_object *attr; jamoma_init(); common_symbols_init(); // Define our class c = class_new("jcom.stats",(method)stats_new, (method)stats_free, sizeof(t_stats), (method)0L, A_GIMME, 0); // Make methods accessible for our class: class_addmethod(c, (method)stats_bang, "bang", 0); class_addmethod(c, (method)stats_int, "int", A_LONG, 0); class_addmethod(c, (method)stats_float, "float", A_FLOAT, 0); class_addmethod(c, (method)stats_assist, "assist", A_CANT, 0); class_addmethod(c, (method)stats_set, "set", A_FLOAT, 0); class_addmethod(c, (method)stats_window, "window_size", A_LONG, 0); class_addmethod(c, (method)stats_clear, "clear", 0); class_addmethod(c, (method)object_obex_dumpout, "dumpout", A_CANT, 0); // ATTRIBUTE: windowed attr = attr_offset_new("windowed", _sym_long, attrflags, (method)0, (method)stats_setwindowed, calcoffset(t_stats, attr_windowed)); class_addattr(c, attr); // Finalize our class class_register(CLASS_BOX, c); this_class = c; return 0; }
int JAMOMA_EXPORT_MAXOBJ main(void) { //long attrflags = 0; t_class *c; //t_object *attr; // Initialize Globals jamoma_init(); common_symbols_init(); // Define our class c = class_new("jcom.oscroute",(method)oscroute_new, (method)oscroute_free, sizeof(t_oscroute), (method)0L, A_GIMME, 0); // Make methods accessible for our class: class_addmethod(c, (method)oscroute_bang, "bang", 0L, 0L); class_addmethod(c, (method)oscroute_int, "int", A_DEFLONG, 0L); class_addmethod(c, (method)oscroute_float, "float", A_DEFFLOAT, 0L); class_addmethod(c, (method)oscroute_list, "list", A_GIMME, 0L); class_addmethod(c, (method)oscroute_symbol, "anything", A_GIMME, 0L); class_addmethod(c, (method)oscroute_assist, "assist", A_CANT, 0L); class_addmethod(c, (method)object_obex_dumpout, "dumpout", A_CANT, 0); // ATTRIBUTE: strip /*attr = attr_offset_new("strip", _sym_long, attrflags, (method)0, (method)0, calcoffset(t_oscroute, attr_strip)); class_addattr(c, attr); */ // Finalize our class class_register(CLASS_BOX, c); oscroute_class = c; return 0; }
int JAMOMA_EXPORT_MAXOBJ main(void) { t_class *c; t_object *attr = NULL; long numDataspaces = 0; SymbolPtr* dataspaceNames = NULL; char dataspaces[2048]; short i; jamoma_init(); common_symbols_init(); jamoma_getDataspaceList(&numDataspaces, &dataspaceNames); dataspaces[0] = 0; for (i=0; i<numDataspaces; i++) { strcat(dataspaces, dataspaceNames[i]->s_name); strcat(dataspaces, " "); } // Define our class c = class_new("jcom.return",(method)return_new, (method)return_free, sizeof(t_return), (method)0L, A_GIMME, 0); // Make methods accessible for our class: class_addmethod(c, (method)return_bang, "bang", A_CANT, 0L); class_addmethod(c, (method)return_int, "int", A_DEFLONG, 0L); class_addmethod(c, (method)return_float, "float", A_DEFFLOAT, 0L); class_addmethod(c, (method)return_list, "list", A_GIMME, 0L); class_addmethod(c, (method)return_symbol, "anything", A_GIMME, 0L); class_addmethod(c, (method)return_dump, "dump", 0L); class_addmethod(c, (method)return_updatename, "update_name", A_CANT, 0L); class_addmethod(c, (method)return_assist, "assist", A_CANT, 0L); jcom_core_subscriber_classinit_extended(c, attr); // ATTRIBUTE: type - options are generic, integer, decimal, string, boolean jamoma_class_attr_new(c, "type", _sym_symbol, (method)return_attr_settype, (method)return_attr_gettype); // ATTRIBUTES: dataspace stuff CLASS_ATTR_SYM(c, "dataspace", 0, t_return, attrDataspace); CLASS_ATTR_LABEL(c, "dataspace", 0, "dataspace"); CLASS_ATTR_ENUM(c, "dataspace", 0, dataspaces); CLASS_ATTR_SYM(c, "dataspace/unit/native", 0, t_return, attrUnitNative); CLASS_ATTR_LABEL(c, "dataspace/unit/native", 0, "dataspace/unit/native"); CLASS_ATTR_CHAR(c, "enable", 0, t_return, attrEnable); CLASS_ATTR_STYLE(c, "enable", 0, "onoff"); // Finalize our class class_register(CLASS_BOX, c); return_class = c; return 0; }
/** Class Definition */ int JAMOMA_EXPORT_MAXOBJ main(void) { //post("main"); long attrflags = 0; t_class *c; t_object *attr; jamoma_init(); common_symbols_init(); jps_symbol = gensym("symbol"); jps_long = gensym("long"); jps_float32 = gensym("float32"); jps_dumpout = gensym("dumpout"); // Define our class c = class_new("jcom.envexp",(method)envExp_new, 0L, sizeof(t_envExp), (method)0L, A_GIMME, 0); // Make methods accessible for our class: class_addmethod(c, (method)envExp_bang, "bang", A_CANT, 0); class_addmethod(c, (method)envExp_float, "float", A_FLOAT, 0); class_addmethod(c, (method)envExp_assist, "assist", A_CANT, 0); class_addmethod(c, (method)object_obex_dumpout, "dumpout", A_CANT, 0); // ATTRIBUTE: attack attr = attr_offset_new("attack", jps_float32, attrflags, (method)0L, (method)envExp_setattack, calcoffset(t_envExp, attr_attack)); class_addattr(c, attr); // ATTRIBUTE: maximum amplitude attr = attr_offset_new("amplitude", jps_float32, attrflags, (method)0L, (method)envExp_setamplitude, calcoffset(t_envExp, attr_amplitude)); class_addattr(c, attr); // ATTRIBUTE: decay rate attr = attr_offset_new("decayrate", jps_float32, attrflags, (method)0L, (method)envExp_setdecayrate, calcoffset(t_envExp, attr_decayrate)); class_addattr(c, attr); // ATTRIBUTE: low threshold attr = attr_offset_new("threshold", jps_float32, attrflags, (method)0L, (method)envExp_setthreshold, calcoffset(t_envExp, attr_threshold)); class_addattr(c, attr); // ATTRIBUTE: note stealing attr = attr_offset_new("steal", jps_long, attrflags, (method)0L, (method)0L, calcoffset(t_envExp, attr_steal)); class_addattr(c, attr); // Finalize our class class_register(CLASS_BOX, c); this_class = c; return 0; }
int JAMOMA_EXPORT_MAXOBJ main(void) { long attrflags = 0; t_class *c; t_object *attr = NULL; jamoma_init(); common_symbols_init(); // Define our class #ifdef JCOM_OUT_TILDE c = class_new("jcom.out~",(method)out_new, (method)out_free, sizeof(t_out), (method)0L, A_GIMME, 0); #else c = class_new("jcom.out",(method)out_new, (method)out_free, sizeof(t_out), (method)0L, A_GIMME, 0); #endif // Make methods accessible for our class: class_addmethod(c, (method)out_dispatched, "dispatched", A_GIMME, 0L); class_addmethod(c, (method)out_algorithm_message, "algorithm_message", A_GIMME, 0L); class_addmethod(c, (method)out_link_to_in_object, "link_in", A_CANT, 0L); class_addmethod(c, (method)out_unlink, "unlink_in", 0L); class_addmethod(c, (method)out_register_meter, "register_meter", A_CANT, 0L); class_addmethod(c, (method)out_remove_meters, "remove_meters", A_CANT, 0L); class_addmethod(c, (method)out_register_preview, "register_preview", A_CANT, 0L); #ifdef JCOM_OUT_TILDE class_addmethod(c, (method)out_getAudioForChannel, "getAudioForChannel", A_CANT, 0); class_addmethod(c, (method)out_dsp, "dsp", A_CANT, 0L); #else class_addmethod(c, (method)out_anything, "anything", A_GIMME, 0L); class_addmethod(c, (method)out_sendbypassedvalue, "sendbypassedvalue", A_CANT, 0L); class_addmethod(c, (method)out_sendlastvalue, "sendlastvalue", A_CANT, 0L); #endif class_addmethod(c, (method)out_release, "release", A_CANT, 0L); // notification of hub being freed class_addmethod(c, (method)out_assist, "assist", A_CANT, 0L); jcom_core_subscriber_classinit_common(c, attr); // ATTRIBUTE: num_inputs attr = attr_offset_new("num_outputs", _sym_long, attrflags, (method)0, (method)0, calcoffset(t_out, numOutputs)); class_addattr(c, attr); #ifdef JCOM_OUT_TILDE // Setup our class to work with MSP class_dspinit(c); #endif // Finalize our class class_register(CLASS_BOX, c); out_class = c; return 0; }
int JAMOMA_EXPORT_MAXOBJ main(void) { t_class *c; jamoma_init(); common_symbols_init(); // Define our class c = class_new("jcom.loader",(method)loader_new, (method)NULL, sizeof(t_loader), (method)NULL, A_GIMME, 0); // Finalize our class class_register(CLASS_BOX, c); loader_class = c; return 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; }
int JAMOMA_EXPORT_MAXOBJ main(void) { t_class *c; jamoma_init(); common_symbols_init(); // Define our class c = class_new("j.init",(method)init_new, (method)init_free, sizeof(t_init), (method)0L, A_GIMME, 0); // Make methods accessible for our class: //class_addmethod(c, (method)init_bang, "bang", 0L); class_addmethod(c, (method)init_return_address, "return_address", A_CANT, 0); class_addmethod(c, (method)init_return_value, "return_value", A_CANT, 0); class_addmethod(c, (method)init_assist, "assist", A_CANT, 0L); // Finalize our class class_register(CLASS_BOX, c); g_init_class = c; return 0; }
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; }
int JAMOMA_EXPORT_MAXOBJ main(void) { long flags; t_class* c; long numDataspaces = 0; t_symbol** dataspaceNames = NULL; TTValue functionNames; TTSymbol* functionName; char dataspaces[2048]; char functions[2048]; char tempstr[64]; short i; jamoma_init(); common_symbols_init(); jamoma_getDataspaceList(&numDataspaces, &dataspaceNames); dataspaces[0] = 0; for(i=0; i<numDataspaces; i++){ strcat(dataspaces, dataspaceNames[i]->s_name); strcat(dataspaces, " "); } FunctionLib::getUnitNames(functionNames); functions[0] = 0; for(i=0; i<functionNames.getSize(); i++){ functionNames.get(i, &functionName); strcat(functions, functionName->getCString()); strcat(functions, " "); } c = class_new("jcom.paramui", (method)paramui_new, (method)paramui_free, sizeof(t_paramui), (method)NULL, A_GIMME, 0L); flags = JBOX_TEXTFIELD | JBOX_COLOR; jbox_initclass(c, flags); c->c_flags |= CLASS_FLAG_NEWDICTIONARY; // to specify dictionary constructor class_addmethod(c, (method)paramui_notify, "notify", A_CANT, 0); class_addmethod(c, (method)paramui_paint, "paint", A_CANT, 0); class_addmethod(c, (method)paramui_mousedown, "mousedown", A_CANT, 0); class_addmethod(c, (method)paramui_mousedragdelta, "mousedragdelta", A_CANT, 0); class_addmethod(c, (method)paramui_mouseup, "mouseup", A_CANT, 0); class_addmethod(c, (method)paramui_oksize, "oksize", A_CANT, 0); CLASS_ATTR_DEFAULT(c, "patching_rect", 0, "0. 0. 144. 20."); CLASS_ATTR_DEFAULT(c, "fontname", 0, JAMOMA_DEFAULT_FONT); snprintf(tempstr, 64, "%f", JAMOMA_DEFAULT_FONTSIZE); CLASS_ATTR_DEFAULT(c, "fontsize", 0, tempstr); CLASS_STICKY_ATTR(c, "category", 0, "Jamoma"); CLASS_ATTR_SYM(c, "name", 0, t_paramui, attr_name); CLASS_ATTR_LABEL(c, "name", 0, "Parameter Name"); CLASS_ATTR_DEFAULT(c, "name", 0, "my/parameter"); CLASS_ATTR_SAVE(c, "name", 0); CLASS_ATTR_ACCESSORS(c, "name", paramui_getName, paramui_setName); CLASS_ATTR_SYM(c, "label", 0, t_paramui, attr_label); CLASS_ATTR_LABEL(c, "label", 0, "Parameter Label"); CLASS_ATTR_STYLE(c, "label", 0, "text_onesymbol"); CLASS_ATTR_DEFAULT(c, "label", 0, ""); CLASS_ATTR_SAVE(c, "label", 0); CLASS_ATTR_SYM(c, "type", 0, t_paramui, attr_type); CLASS_ATTR_LABEL(c, "type", 0, "Data Type"); CLASS_ATTR_ENUM(c, "type", 0, "decimal integer string boolean"); CLASS_ATTR_DEFAULT(c, "type", 0, "decimal"); CLASS_ATTR_SAVE(c, "type", 0); CLASS_ATTR_ACCESSORS(c, "type", paramui_getType, paramui_setType); CLASS_ATTR_FLOAT_VARSIZE(c, "value/default", 0, t_paramui, attr_default, attr_defaultSize, LISTSIZE); CLASS_ATTR_LABEL(c, "value/default", 0, "Default Value"); CLASS_ATTR_DEFAULT(c, "value/default", 0, "0."); CLASS_ATTR_SAVE(c, "value/default", 0); CLASS_ATTR_ACCESSORS(c, "value/default", paramui_getDefault, paramui_setDefault); CLASS_ATTR_SYM(c, "ramp/drive", 0, t_paramui, attr_rampDrive); CLASS_ATTR_LABEL(c, "ramp/drive", 0, "Ramp Drive"); CLASS_ATTR_DEFAULT(c, "ramp/drive", 0, "none"); CLASS_ATTR_SAVE(c, "ramp/drive", 0); CLASS_ATTR_ACCESSORS(c, "ramp/drive", paramui_getRampDrive, paramui_setRampDrive); CLASS_ATTR_SYM(c, "ramp/function", 0, t_paramui, attr_rampFunction); CLASS_ATTR_LABEL(c, "ramp/function", 0, "Ramp Function/Shape"); CLASS_ATTR_ENUM(c, "ramp/function", 0, functions); CLASS_ATTR_DEFAULT(c, "ramp/function", 0, "linear"); CLASS_ATTR_SAVE(c, "ramp/function", 0); CLASS_ATTR_ACCESSORS(c, "ramp/function", paramui_getRampFunction, paramui_setRampFunction); CLASS_ATTR_LONG(c, "view/freeze", 0, t_paramui, attr_uiFreeze); CLASS_ATTR_LABEL(c, "view/freeze", 0, "Freeze the UI"); CLASS_ATTR_STYLE(c, "view/freeze", 0, "onoff"); CLASS_ATTR_DEFAULT(c, "view/freeze", 0, "0"); CLASS_ATTR_SAVE(c, "view/freeze", 0); CLASS_ATTR_ACCESSORS(c, "view/freeze", paramui_getUIFreeze, paramui_setUIFreeze); CLASS_ATTR_FLOAT(c, "value/stepsize", 0, t_paramui, attr_stepsize); CLASS_ATTR_LABEL(c, "value/stepsize", 0, "Step Size for inc/dec"); CLASS_ATTR_DEFAULT(c, "value/stepsize", 0, "1.0"); CLASS_ATTR_SAVE(c, "value/stepsize", 0); CLASS_ATTR_ACCESSORS(c, "value/stepsize", paramui_getStepsize, paramui_setStepsize); CLASS_ATTR_LONG(c, "priority", 0, t_paramui, attr_priority); CLASS_ATTR_LABEL(c, "priority", 0, "Priority when Recalled from Presets"); CLASS_ATTR_DEFAULT(c, "priority", 0, "0"); CLASS_ATTR_SAVE(c, "priority", 0); CLASS_ATTR_ACCESSORS(c, "priority", paramui_getPriority, paramui_setPriority); CLASS_ATTR_FLOAT_ARRAY(c, "range/bounds", 0, t_paramui, attr_range, 2); CLASS_ATTR_LABEL(c, "range/bounds", 0, "Range"); CLASS_ATTR_DEFAULT(c, "range/bounds", 0, "0.0 1.0"); CLASS_ATTR_SAVE(c, "range/bounds", 0); CLASS_ATTR_ACCESSORS(c, "range/bounds", paramui_getRange, paramui_setRange); CLASS_ATTR_LONG(c, "repetitions/allow", 0, t_paramui, attr_repetitions); CLASS_ATTR_LABEL(c, "repetitions/allow", 0, "Allow Repeated Values"); CLASS_ATTR_STYLE(c, "repetitions/allow", 0, "onoff"); CLASS_ATTR_DEFAULT(c, "repetitions/allow", 0, "0"); CLASS_ATTR_SAVE(c, "repetitions/allow", 0); CLASS_ATTR_ACCESSORS(c, "repetitions/allow", paramui_getRepetitions, paramui_setRepetitions); CLASS_ATTR_SYM(c, "range/clipmode", 0, t_paramui, attr_clipmode); CLASS_ATTR_LABEL(c, "range/clipmode", 0, "Mode for Clipping to Range"); CLASS_ATTR_ENUM(c, "range/clipmode", 0, "none low high both"); CLASS_ATTR_DEFAULT(c, "range/clipmode", 0, "none"); CLASS_ATTR_SAVE(c, "range/clipmode", 0); CLASS_ATTR_ACCESSORS(c, "range/clipmode", paramui_getClipmode, paramui_setClipmode); CLASS_ATTR_SYM(c, "description", 0, t_paramui, attr_description); CLASS_ATTR_LABEL(c, "description", 0, "Parameter Description"); //CLASS_ATTR_STYLE(c, "description", 0, "text_large"); CLASS_ATTR_STYLE(c, "description", 0, "text_onesymbol"); CLASS_ATTR_DEFAULT(c, "description", 0, "This parameter should do something."); CLASS_ATTR_SAVE(c, "description", 0); CLASS_ATTR_ACCESSORS(c, "description", paramui_getDescription, paramui_setDescription); CLASS_ATTR_SYM(c, "dataspace", 0, t_paramui, attr_dataspace); CLASS_ATTR_LABEL(c, "dataspace", 0, "Dataspace"); CLASS_ATTR_ENUM(c, "dataspace", 0, dataspaces); CLASS_ATTR_DEFAULT(c, "dataspace", 0, "none"); CLASS_ATTR_SAVE(c, "dataspace", 0); CLASS_ATTR_ACCESSORS(c, "dataspace", paramui_getDataspace, paramui_setDataspace); CLASS_ATTR_SYM(c, "dataspace/unit/active", 0, t_paramui, attr_unitActive); CLASS_ATTR_LABEL(c, "dataspace/unit/active", 0, "Active Unit within the Dataspace"); CLASS_ATTR_DEFAULT(c, "dataspace/unit/active", 0, "none"); CLASS_ATTR_SAVE(c, "dataspace/unit/active", 0); CLASS_ATTR_ACCESSORS(c, "dataspace/unit/active", paramui_getUnitActive, paramui_setUnitActive); CLASS_ATTR_SYM(c, "dataspace/unit/native", 0, t_paramui, attr_unitNative); CLASS_ATTR_LABEL(c, "dataspace/unit/native", 0, "Native Unit within the Dataspace"); CLASS_ATTR_DEFAULT(c, "dataspace/unit/native", 0, "none"); CLASS_ATTR_SAVE(c, "dataspace/unit/native", 0); CLASS_ATTR_ACCESSORS(c, "dataspace/unit/native", paramui_getUnitNative, paramui_setUnitNative); CLASS_STICKY_ATTR_CLEAR(c, "category"); class_register(CLASS_BOX, c); s_ui_class = c; sysmem_freeptr(dataspaceNames); return 0; }
TTErr wrapTTModularClassAsMaxClass(TTSymbol& ttblueClassName, const char* maxClassName, WrappedClassPtr* c, ModularSpec* specificities) { TTObject o; TTValue v, args; WrappedClass* wrappedMaxClass = NULL; TTSymbol TTName; t_symbol *MaxName = NULL; TTUInt16 i; jamoma_init(); common_symbols_init(); if (!wrappedMaxClasses) wrappedMaxClasses = hashtab_new(0); wrappedMaxClass = new WrappedClass; wrappedMaxClass->maxClassName = gensym(maxClassName); wrappedMaxClass->maxClass = class_new( maxClassName, (method)wrappedModularClass_new, (method)wrappedModularClass_free, sizeof(WrappedModularInstance), (method)0L, A_GIMME, 0); wrappedMaxClass->ttblueClassName = ttblueClassName; wrappedMaxClass->validityCheck = NULL; wrappedMaxClass->validityCheckArgument = NULL; wrappedMaxClass->options = NULL; wrappedMaxClass->maxNamesToTTNames = hashtab_new(0); wrappedMaxClass->specificities = specificities; #ifdef AUDIO_EXTERNAL // Setup our class to work with MSP class_dspinit(wrappedMaxClass->maxClass); #endif // Create a temporary instance of the class so that we can query it. o = TTObject(ttblueClassName); // Register Messages as Max method o.messages(v); for (i = 0; i < v.size(); i++) { TTName = v[i]; if (TTName == TTSymbol("test") || TTName == TTSymbol("getProcessingBenchmark") || TTName == TTSymbol("resetBenchmarking")) continue; else if ((MaxName = jamoma_TTName_To_MaxName(TTName))) { hashtab_store(wrappedMaxClass->maxNamesToTTNames, MaxName, (t_object*)(TTName.rawpointer())); class_addmethod(wrappedMaxClass->maxClass, (method)wrappedModularClass_anything, MaxName->s_name, A_GIMME, 0); } } // Register Attributes as Max attr o.attributes(v); for (i = 0; i < v.size(); i++) { TTAttributePtr attr = NULL; t_symbol *maxType = _sym_atom; TTName = v[i]; #ifdef AUDIO_EXTERNAL // the enable word is already used by a message declared in the dsp_init method if (TTName == TTSymbol("enable")) continue; #endif // we want to hide service attribute for Max external if (TTName == TTSymbol("service")) continue; if ((MaxName = jamoma_TTName_To_MaxName(TTName))) { if (TTName == kTTSym_bypass && wrappedMaxClass->maxClassName != gensym("j.in") && wrappedMaxClass->maxClassName != gensym("j.in~")) continue; o.instance()->findAttribute(TTName, &attr); if (attr->type == kTypeFloat32) maxType = _sym_float32; else if (attr->type == kTypeFloat64) maxType = _sym_float64; else if (attr->type == kTypeSymbol || attr->type == kTypeString) maxType = _sym_symbol; else if (attr->type == kTypeLocalValue) maxType = _sym_atom; hashtab_store(wrappedMaxClass->maxNamesToTTNames, MaxName, (t_object*)(TTName.rawpointer())); class_addattr(wrappedMaxClass->maxClass, attr_offset_new(MaxName->s_name, maxType, 0, (method)wrappedModularClass_attrGet, (method)wrappedModularClass_attrSet, 0)); // Add display styles for the Max 5 inspector if (attr->type == kTypeBoolean) CLASS_ATTR_STYLE(wrappedMaxClass->maxClass, (char*)TTName.c_str(), 0, "onoff"); if (TTName == TTSymbol("fontFace")) CLASS_ATTR_STYLE(wrappedMaxClass->maxClass, "fontFace", 0, "font"); } } // standalone support: class_addmethod(wrappedMaxClass->maxClass, (method)jamoma_fileusage, "fileusage", A_CANT, 0); class_addmethod(wrappedMaxClass->maxClass, (method)stdinletinfo, "inletinfo", A_CANT, 0); class_addmethod(wrappedMaxClass->maxClass, (method)wrappedModularClass_notify, "notify", A_CANT, 0); class_addmethod(wrappedMaxClass->maxClass, (method)wrappedModularClass_shareContextNode, "share_context_node", A_CANT, 0); class_addmethod(wrappedMaxClass->maxClass, (method)wrappedModularClass_anything, "anything", A_GIMME, 0); // Register specific methods and do specific things if (specificities) { if (specificities->_wrap) specificities->_wrap(wrappedMaxClass); } class_addmethod(wrappedMaxClass->maxClass, (method)wrappedModularClass_dump, "dump", A_GIMME, 0); #ifdef ARRAY_EXTERNAL class_addmethod(wrappedMaxClass->maxClass, (method)wrappedModularClass_ArraySelect, "array/select", A_GIMME,0); class_addmethod(wrappedMaxClass->maxClass, (method)wrappedModularClass_ArrayResize, "array/resize", A_LONG,0); CLASS_ATTR_SYM(wrappedMaxClass->maxClass, "format", 0, WrappedModularInstance, arrayAttrFormat); CLASS_ATTR_ACCESSORS(wrappedMaxClass->maxClass, "format", wrappedModularClass_FormatGet, wrappedModularClass_FormatSet); CLASS_ATTR_ENUM(wrappedMaxClass->maxClass, "format", 0, "single array"); #endif class_register(_sym_box, wrappedMaxClass->maxClass); if (c) *c = wrappedMaxClass; hashtab_store(wrappedMaxClasses, wrappedMaxClass->maxClassName, (t_object*)(wrappedMaxClass)); return kTTErrNone; }