23 typedef struct extra {
26 t_object *modelOrView;
29 #define EXTRA ((t_extra*)x->extra)
68 void in_perform64(
TTPtr self, t_object *dsp64,
double **ins,
long numins,
double **outs,
long numouts,
long sampleframes,
long flags,
void *userparam);
71 void in_dsp64(
TTPtr self, t_object *dsp64,
short *count,
double samplerate,
long maxvectorsize,
long flags);
78 void in_reset(
TTPtr self);
83 void in_setup(
TTPtr self);
115 void in_list(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
135 extern "C" void JAMOMA_EXPORT_MAXOBJ setup_j0x2ein(
void)
137 ModularSpec *spec =
new ModularSpec;
161 eclass_addmethod(c->pdClass, (method)
in_assist,
"assist", A_CANT, 0L);
164 eclass_addmethod(c->pdClass, (method)in_dsp64,
"dsp64", A_CANT, 0);
168 eclass_addmethod(c->pdClass, (method)in_reset,
"audio.reset", A_CANT, 0);
169 eclass_addmethod(c->pdClass, (method)in_setup,
"audio.setup", A_CANT, 0);
170 eclass_addmethod(c->pdClass, (method)in_connect,
"audio.connect", A_OBJ, A_LONG, 0);
175 eclass_addmethod(c->pdClass, (method)
in_return_signal,
"return_signal", A_CANT, 0);
177 eclass_addmethod(c->pdClass, (method)
in_bang,
"bang", A_NULL, 0L);
178 eclass_addmethod(c->pdClass, (method)
in_float,
"float", A_FLOAT, 0L);
179 eclass_addmethod(c->pdClass, (method)
in_list,
"list", A_GIMME, 0L);
188 #pragma mark Object life
193 long attrstart = attr_args_offset(argc, argv);
201 if (attrstart && argv) {
207 EXTRA->instance =
TTSymbol(sInstance.data());
210 EXTRA->instance = kTTSymEmpty;
213 EXTRA->modelOrView = NULL;
221 dsp_setup((t_pxobject *)x, 1);
222 x->
obj.z_misc = Z_NO_INPLACE | Z_PUT_FIRST;
224 outlet_new((t_pxobject *)x,
"signal");
232 x->
outlets[0] = outlet_new(x, 0L);
239 x->
outlets[0] = outlet_new((t_object*)x, 0L);
244 attr_args_process(x, argc, argv);
258 dsp_free((t_pxobject *)x);
265 #pragma mark NodeLib association
276 TTAddress returnedAddress, parentAddress;
277 TTString formatDescription, sInstance;
311 if (!EXTRA->modelOrView)
315 if (EXTRA->modelOrView)
316 object_method_typed(EXTRA->modelOrView, gensym(
"input_created"), NULL, 0, NULL);
321 #pragma mark Methods bound to input/inlets
327 strcpy(dst,
"(signal) input of the model");
330 strcpy(dst,
"(signal) connect to the algorithm");
332 strcpy(dst,
"dumpout");
338 #pragma mark Methods relating to audio processing
342 void in_perform64(
TTPtr self, t_object *dsp64,
double **ins,
long numins,
double **outs,
long numouts,
long sampleframes,
long flags,
void *userparam)
348 anInput->
process(ins[0], outs[0], sampleframes);
353 void in_dsp64(
TTPtr self, t_object *dsp64,
short *count,
double samplerate,
long maxvectorsize,
long flags)
360 object_method(dsp64, gensym(
"dsp_add64"), x, in_perform64, 0, NULL);
367 #pragma mark Methods relating to audiograph processing
369 void in_reset(
TTPtr self)
396 void in_setup(
TTPtr self)
407 atom_setobj(a+0, (t_object*)anInput->mSignalOut.instance());
408 atom_setlong(a+1, 0);
409 outlet_anything(x->
outlets[signal_out], gensym(
"audio.connect"), 2, a);
443 #pragma mark Methods relating to any data processing
447 in_list(
self, _sym_bang, 0, NULL);
454 atom_setfloat(&a, value);
455 in_list(
self, _sym_float, 1, &a);
470 if (msg == _sym_nothing)
471 outlet_anything((t_outlet*)x->
outlets[signal_out], NULL, argc, argv);
473 outlet_anything((t_outlet*)x->
outlets[signal_out], msg, argc, argv);
484 if (msg != _sym_nothing ) {
487 if (!EXTRA->modelOrView)
490 zgetfn((t_pd*)x,msg)((t_object*)EXTRA->modelOrView, argc, argv, NULL);
TTAddress appendAddress(const TTAddress &toAppend)
Return a new TTAddress with the appended part.
TTObject subscriberObject
The instance of a TTSubscriber object used to register the wrapped object in the tree structure...
void WrappedInputClass_anything(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
anything else handler for j.in
TTSymbol & getInstance()
Get the instance part.
TTHandle outlets
an array of outlet
void WrapTTInputClass(WrappedClassPtr c)
Wrap the j.in class as a Max object.
TTString toString(TTBoolean quotes=YES) const
Return the content as a single string with spaces between elements.
We build a directory of TTNodes, and you can request a pointer for any TTNode, or add an observer to ...
void in_return_signal(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
Method used to pass messages from the module outlet.
The TTAddress class is used to represent a string and efficiently pass and compare that string...
void * extra
used to keep very specific things
TTAddress appendInstance(const TTSymbol anInstance)
Return a new TTAddress with a instance part.
t_object * patcherPtr
the patcher in which the external is (ignoring subpatcher)
void * TTPtr
A generic pointer.
void in_list(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
list handler for j.in
void in_bang(TTPtr self)
bang handler for j.in
t_object obj
Max control object header.
TTErr set(const TTSymbol aName, T aValue)
Set an attribute value for an object.
The TTSymbol class is used to represent a string and efficiently pass and compare that string...
void WrappedInputClass_free(TTPtr self)
Wrapper for the j.in deconstructor class, called when an instance is destroyed.
void in_assist(TTPtr self, TTPtr b, long msg, long arg, char *dst)
Assistance Method.
TTObject wrappedObject
The instance of the Jamoma object we are wrapping.
void WrappedInputClass_new(TTPtr self, long argc, t_atom *argv)
Wrapper for the j.in constructor class, called when an instance is created.
void in_subscribe(TTPtr self)
Associate j.in(~) with NodeLib.
Wraps Jamoma Core classes as objects for PureData.
TTErr getAddress(TTAddress &returnedAddress, TTAddress from=kTTAdrsEmpty)
Get the address of the node.
Data Structure for this object.
The TTAudioGraphObjectBase wraps a TTDSP object such that it is possible to build a dynamic graph of ...
TTObjectBase * instance() const
Return a direct pointer to the internal instance.
The TTString class is used to represent a string.
WrappedModularInstance * WrappedModularInstancePtr
Pointer to a wrapped instance of our object.
[doxygenAppendixC_copyExample]
TTNodePtr getParent()
Get a pointer to the parent node of the node.
void in_float(TTPtr self, t_float value)
float handler for j.in
TTErr wrapTTModularClassAsPdClass(TTSymbol &ttblueClassName, const char *pdClassName, WrappedClassPtr *c, ModularSpec *specificities)
Wrap a Jamoma class as a Pd class.