24 typedef struct extra {
29 #define EXTRA ((t_extra*)x->extra)
71 void out_perform64(
TTPtr self, t_object *dsp64,
double **ins,
long numins,
double **outs,
long numouts,
long sampleframes,
long flags,
void *userparam);
74 void out_dsp64(
TTPtr self, t_object *dsp64,
short *count,
double samplerate,
long maxvectorsize,
long flags);
83 void out_reset(
TTPtr self);
88 void out_setup(
TTPtr self);
121 void out_list(
TTPtr self, t_symbol* msg,
long argc, t_atom* argv);
146 extern "C" void JAMOMA_EXPORT_MAXOBJ setup_j0x2eout(
void)
148 ModularSpec *spec =
new ModularSpec;
155 return (
void)wrapTTModularClassAspdClass(kTTSym_OutputAudio,
"j.out~", NULL, spec);
160 return (
void)wrapTTModularClassAspdClass(kTTSym_OutputAudio,
"j.out=", NULL, spec);
173 eclass_addmethod(c->pdClass, (method)
out_assist,
"assist", A_CANT, 0L);
176 eclass_addmethod(c->pdClass, (method)out_dsp64,
"dsp64", A_CANT, 0);
180 eclass_addmethod(c->pdClass, (method)out_reset,
"audio.reset", A_CANT, 0);
181 eclass_addmethod(c->pdClass, (method)out_setup,
"audio.setup", A_CANT, 0);
182 eclass_addmethod(c->pdClass, (method)out_connect,
"audio.connect", A_OBJ, A_LONG, 0);
187 eclass_addmethod(c->pdClass, (method)
out_return_signal,
"return_signal", A_CANT, 0);
189 eclass_addmethod(c->pdClass, (method)
out_bang,
"bang", A_NULL, 0L);
190 eclass_addmethod(c->pdClass, (method)
out_float,
"float", A_FLOAT, 0L);
191 eclass_addmethod(c->pdClass, (method)
out_list,
"list", A_GIMME, 0L);
202 #pragma mark Object life
207 long attrstart = attr_args_offset(argc, argv);
215 if (attrstart && argv) {
221 EXTRA->instance =
TTSymbol(sInstance.data());
224 EXTRA->instance = kTTSymEmpty;
232 dsp_setup((t_pxobject *)x, 1);
233 x->
obj.z_misc = Z_NO_INPLACE | Z_PUT_FIRST;
235 outlet_new((t_pxobject *)x,
"signal");
242 x->
outlets[0] = outlet_new(x, 0L);
249 x->
outlets[0] = outlet_new((t_object*)x, 0L);
254 attr_args_process(x, argc, argv);
268 dsp_free((t_pxobject *)x);
275 #pragma mark NodeLib association
286 TTAddress returnedAddress, parentAddress;
287 TTString formatDescription, sInstance;
288 t_object *modelOrView = NULL;
326 object_method_typed(modelOrView, gensym(
"output_created"), 0, NULL, NULL);
331 #pragma mark Methods bound to input/inlets
337 strcpy(dst,
"(signal) connect to the algorithm");
340 strcpy(dst,
"(signal) output of the model");
342 strcpy(dst,
"dumpout");
348 #pragma mark Methods relating to audio processing
352 void out_perform64(
TTPtr self, t_object *dsp64,
double **ins,
long numins,
double **outs,
long numouts,
long sampleframes,
long flags,
void *userparam)
358 anOutput->process(ins[0], outs[0], sampleframes);
363 void out_dsp64(
TTPtr self, t_object *dsp64,
short *count,
double samplerate,
long maxvectorsize,
long flags)
369 anOutput->setupAudioSignals(maxvectorsize, samplerate);
370 object_method(dsp64, gensym(
"dsp_add64"), x, out_perform64, 0, NULL);
377 #pragma mark Methods relating to audiograph processing
379 void out_reset(
TTPtr self)
394 void out_setup(
TTPtr self)
405 atom_setobj(a+0, (t_object*)anOutput->mSignalOut.instance());
406 atom_setlong(a+1, 0);
407 outlet_anything(x->
outlets[signal_out], gensym(
"audio.connect"), 2, a);
429 #pragma mark Methods relating to any data processing
440 atom_setfloat(&a, value);
463 if (msg == _sym_nothing)
464 outlet_anything((t_outlet*)x->
outlets[signal_out], NULL, argc, argv);
466 outlet_anything((t_outlet*)x->
outlets[signal_out], msg, argc, argv);
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...
TTSymbol & getInstance()
Get the instance part.
TTHandle outlets
an array of outlet
TTString toString(TTBoolean quotes=YES) const
Return the content as a single string with spaces between elements.
void WrapTTOutputClass(WrappedClassPtr c)
Wrap the j.out class as a Max object.
We build a directory of TTNodes, and you can request a pointer for any TTNode, or add an observer to ...
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.
void out_assist(TTPtr self, TTPtr b, long msg, long arg, char *dst)
Assistance Method.
t_object * patcherPtr
the patcher in which the external is (ignoring subpatcher)
void out_return_signal(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
Method used to pass message to the module outlet.
void out_subscribe(TTPtr self)
Associate j.out(~) with NodeLib.
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.
void WrappedOutputClass_new(TTPtr self, long argc, t_atom *argv)
Wrapper for the j.out constructor class, called when an instance is created.
void WrappedOutputClass_anything(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
anything else handler for j.out
void WrappedOutputClass_free(TTPtr self)
Wrapper for the j.out deconstructor class, called when an instance is destroyed.
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.
void out_float(TTPtr self, t_float value)
float handler for j.out
void out_bang(TTPtr self)
bang handler for j.out
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.
An audio output component for Jamoma models.
void out_list(TTPtr self, t_symbol *msg, long argc, t_atom *argv)
list handler for j.out
WrappedModularInstance * WrappedModularInstancePtr
Pointer to a wrapped instance of our object.
[doxygenAppendixC_copyExample]
TTNodePtr getParent()
Get a pointer to the parent node of the node.
TTErr wrapTTModularClassAsPdClass(TTSymbol &ttblueClassName, const char *pdClassName, WrappedClassPtr *c, ModularSpec *specificities)
Wrap a Jamoma class as a Pd class.