22 typedef struct extra {
28 #define EXTRA ((t_extra*)x->extra)
67 void in_perform64(
TTPtr self, t_object *dsp64,
double **ins,
long numins,
double **outs,
long numouts,
long sampleframes,
long flags,
void *userparam);
70 void in_dsp64(
TTPtr self, t_object *dsp64,
short *count,
double samplerate,
long maxvectorsize,
long flags);
77 void in_reset(
TTPtr self);
82 void in_setup(
TTPtr self);
121 void in_list(
TTPtr self, t_symbol *msg,
long argc, t_atom *argv);
143 ModularSpec *spec =
new ModularSpec;
167 class_addmethod(c->maxClass, (method)
in_assist,
"assist", A_CANT, 0L);
170 class_addmethod(c->maxClass, (method)in_dsp64,
"dsp64", A_CANT, 0);
174 class_addmethod(c->maxClass, (method)in_reset,
"audio.reset", A_CANT, 0);
175 class_addmethod(c->maxClass, (method)in_setup,
"audio.setup", A_CANT, 0);
176 class_addmethod(c->maxClass, (method)in_connect,
"audio.connect", A_OBJ, A_LONG, 0);
181 class_addmethod(c->maxClass, (method)
in_return_signal,
"return_signal", A_CANT, 0);
183 class_addmethod(c->maxClass, (method)
in_bang,
"bang", 0L);
184 class_addmethod(c->maxClass, (method)
in_int,
"int", A_LONG, 0L);
185 class_addmethod(c->maxClass, (method)
in_float,
"float", A_FLOAT, 0L);
186 class_addmethod(c->maxClass, (method)
in_list,
"list", A_GIMME, 0L);
194 #pragma mark Object life
199 long attrstart = attr_args_offset(argc, argv);
207 if (attrstart && argv) {
213 EXTRA->instance =
TTSymbol(sInstance.data());
216 EXTRA->instance = kTTSymEmpty;
219 EXTRA->modelOrView = NULL;
227 dsp_setup((t_pxobject *)x, 1);
228 x->
obj.z_misc = Z_NO_INPLACE | Z_PUT_FIRST;
230 outlet_new((t_pxobject *)x,
"signal");
238 x->
outlets[0] = outlet_new(x, 0L);
245 x->
outlets[0] = outlet_new(x, 0L);
250 attr_args_process(x, argc, argv);
255 defer_low((t_object*)x, (method)
in_subscribe, NULL, 0, NULL);
263 dsp_free((t_pxobject *)x);
270 #pragma mark NodeLib association
281 TTAddress returnedAddress, parentAddress;
282 TTString formatDescription, sInstance;
316 if (!EXTRA->modelOrView)
320 if (EXTRA->modelOrView)
321 object_method_typed(EXTRA->modelOrView, gensym(
"input_created"), 0, NULL, NULL);
326 #pragma mark Methods bound to input/inlets
332 strcpy(dst,
"(signal) input of the model");
335 strcpy(dst,
"(signal) connect to the algorithm");
337 strcpy(dst,
"dumpout");
343 #pragma mark Methods relating to audio processing
347 void in_perform64(
TTPtr self, t_object *dsp64,
double **ins,
long numins,
double **outs,
long numouts,
long sampleframes,
long flags,
void *userparam)
353 anInput->
process(ins[0], outs[0], sampleframes);
358 void in_dsp64(
TTPtr self, t_object *dsp64,
short *count,
double samplerate,
long maxvectorsize,
long flags)
365 object_method(dsp64, gensym(
"dsp_add64"), x, in_perform64, 0, NULL);
372 #pragma mark Methods relating to audiograph processing
374 void in_reset(
TTPtr self)
401 void in_setup(
TTPtr self)
412 atom_setobj(a+0, (t_object*)anInput->mSignalOut.instance());
413 atom_setlong(a+1, 0);
414 outlet_anything(x->
outlets[signal_out], gensym(
"audio.connect"), 2, a);
448 #pragma mark Methods relating to any data processing
452 in_list(
self, _sym_bang, 0, NULL);
459 atom_setlong(&a, value);
460 in_list(
self, _sym_int, 1, &a);
467 atom_setfloat(&a, value);
468 in_list(
self, _sym_float, 1, &a);
483 if (msg == _sym_nothing)
484 outlet_atoms(x->
outlets[signal_out], argc, argv);
486 outlet_anything(x->
outlets[signal_out], msg, argc, argv);
496 if (msg != _sym_nothing && msg != _sym_jit_matrix && msg != _sym_jit_gl_texture && msg != _sym_dictionary) {
499 if (!EXTRA->modelOrView)
502 object_method_typed(EXTRA->modelOrView, msg, 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_free(TTPtr self)
Wrapper for the j.in deconstructor class, called when an instance is destroyed.
TTSymbol & getInstance()
Get the instance part.
TTHandle outlets
an array of outlet
TTErr wrapTTModularClassAsMaxClass(TTSymbol &ttblueClassName, const char *maxClassName, WrappedClassPtr *c, ModularSpec *specificities)
Wrap a Jamoma class as a Max class.
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 ...
int C74_EXPORT main(void)
Set up this class as a Max external the first time an object of this kind is instantiated.
The TTAddress class is used to represent a string and efficiently pass and compare that string...
void in_return_signal(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
Method used to pass messages from the module outlet.
void in_list(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
list handler for j.in
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 in_bang(TTPtr self)
bang handler for j.in
void WrapTTInputClass(WrappedClassPtr c)
Wrap the j.in class as a Max object.
void * TTPtr
A generic pointer.
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...
TTObject wrappedObject
The instance of the Jamoma object we are wrapping.
TTErr getAddress(TTAddress &returnedAddress, TTAddress from=kTTAdrsEmpty)
Get the address of the node.
Data Structure for this object.
void WrappedInputClass_anything(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
anything else handler for j.in
void in_int(TTPtr self, long value)
int handler for j.in
void in_assist(TTPtr self, TTPtr b, long msg, long arg, char *dst)
Assistance Method.
The TTAudioGraphObjectBase wraps a TTDSP object such that it is possible to build a dynamic graph of ...
Wraps Jamoma Core classes as objects for Max/MSP.
void in_float(TTPtr self, double value)
float handler for j.in
void in_subscribe(TTPtr self)
Associate j.in(~) with NodeLib.
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 WrappedInputClass_new(TTPtr self, long argc, t_atom *argv)
Wrapper for the j.in constructor class, called when an instance is created.