24 typedef struct extra {
27 #define EXTRA ((t_extra*)x->extra)
30 void WrapTTMapperClass(WrappedClassPtr c);
31 void WrappedMapperClass_new(
TTPtr self,
long argc, t_atom *argv);
32 void WrappedMapperClass_free(
TTPtr self);
34 void map_return_value(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
35 void map_return_input_going_down(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
36 void map_return_input_going_up(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
37 void map_return_output_going_down(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
38 void map_return_output_going_up(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
40 void map_float(
TTPtr self, t_float value);
41 void map_list(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
43 void map_reset(
TTPtr self);
45 void map_subscribe(
TTPtr self);
47 extern "C" void JAMOMA_EXPORT_MAXOBJ setup_j0x2emap(
void)
49 ModularSpec *spec =
new ModularSpec;
50 spec->_wrap = &WrapTTMapperClass;
51 spec->_new = &WrappedMapperClass_new;
52 spec->_free = &WrappedMapperClass_free;
59 void WrapTTMapperClass(WrappedClassPtr c)
61 eclass_addmethod(c->pdClass, (method)map_return_value,
"return_value", A_CANT, 0);
62 eclass_addmethod(c->pdClass, (method)map_return_input_going_down,
"return_input_going_down", A_CANT, 0);
63 eclass_addmethod(c->pdClass, (method)map_return_input_going_up,
"return_input_going_up", A_CANT, 0);
64 eclass_addmethod(c->pdClass, (method)map_return_output_going_down,
"return_output_going_down", A_CANT, 0);
65 eclass_addmethod(c->pdClass, (method)map_return_output_going_up,
"return_output_going_up", A_CANT, 0);
67 eclass_addmethod(c->pdClass, (method)map_float,
"float", A_FLOAT, 0L);
68 eclass_addmethod(c->pdClass, (method)map_list,
"list", A_GIMME, 0L);
70 eclass_addmethod(c->pdClass, (method)map_reset,
"reset", A_NULL, 0L);
71 eclass_addmethod(c->pdClass, (method)map_subscribe,
"loadbang", A_NULL, 0L);
74 void WrappedMapperClass_new(
TTPtr self,
long argc, t_atom *argv)
77 t_symbol *relativeAddress;
78 long attrstart = attr_args_offset(argc, argv);
81 if (attrstart && argv)
82 relativeAddress = atom_getsym(argv);
84 relativeAddress = _sym_nothing;
92 x->
outlets[data_out] = outlet_new((t_object*)x, NULL);
93 x->dumpOut = outlet_new((t_object*)x, NULL);
96 attr_args_process(x, argc, argv);
100 EXTRA->arguments =
new TTValue();
110 void WrappedMapperClass_free(
TTPtr self)
113 delete EXTRA->arguments;
121 void map_subscribe(
TTPtr self)
169 void map_return_value(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv)
172 outlet_anything((t_outlet*)x->
outlets[data_out], _sym_list, argc, argv);
175 void map_return_input_going_down(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv)
178 outlet_anything((t_outlet*)x->dumpOut, gensym(
"input/going/down"), argc, argv);
181 void map_return_input_going_up(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv)
184 outlet_anything((t_outlet*)x->dumpOut, gensym(
"input/going/up"), argc, argv);
187 void map_return_output_going_down(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv)
190 outlet_anything((t_outlet*)x->dumpOut, gensym(
"output/going/down"), argc, argv);
193 void map_return_output_going_up(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv)
196 outlet_anything((t_outlet*)x->dumpOut, gensym(
"output/going/up"), argc, argv);
199 void map_bang(
TTPtr self)
201 map_list(
self, _sym_bang, 0, NULL);
204 void map_float(
TTPtr self, t_float value)
208 atom_setfloat(&a, value);
209 map_list(
self, _sym_float, 1, &a);
212 void map_list(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv)
215 TTValue inputValue, outputValue;
224 void map_reset(
TTPtr self)
233 attr_args_process(x, argc, argv);
TTErr send(const TTSymbol aName)
Send a message to this object with no arguments.
TTHandle outlets
an array of outlet
TTAddress address
sometime external needs to store an address (e.g. send, receive, view, ...)
The TTAddress class is used to represent a string and efficiently pass and compare that string...
void * extra
used to keep very specific things
void * TTPtr
A generic pointer.
TTErr set(const TTSymbol aName, T aValue)
Set an attribute value for an object.
TTObject wrappedObject
The instance of the Jamoma object we are wrapping.
Wraps Jamoma Core classes as objects for PureData.
Data Structure for this object.
WrappedModularInstance * WrappedModularInstancePtr
Pointer to a wrapped instance of our object.
[doxygenAppendixC_copyExample]
TTErr wrapTTModularClassAsPdClass(TTSymbol &ttblueClassName, const char *pdClassName, WrappedClassPtr *c, ModularSpec *specificities)
Wrap a Jamoma class as a Pd class.