10 #include "PureAudioGraph.h"
16 TTAudioGraphObjectPtr audioGraphObject;
18 SymbolPtr attrOperator;
25 extern "C" void setup_jcom_op0x3d(
void);
26 OpPtr OpNew (SymbolPtr msg, AtomCount argc, AtomPtr argv);
27 void OpFree (OpPtr
self);
28 TTErr OpReset (OpPtr
self,
long vectorSize);
29 TTErr OpSetup (OpPtr
self);
30 TTErr OpConnect (OpPtr
self, TTAudioGraphObjectPtr audioSourceObject,
long sourceOutletNumber);
31 void OpSetOperator (OpPtr
self, SymbolPtr value);
32 void OpSetOperand (OpPtr
self, t_floatarg value);
36 static ClassPtr sOpClass;
42 void setup_jcom_op0x3d(
void)
46 sOpClass = class_new(gensym(
"jcom_op="), (t_newmethod)OpNew, (t_method)OpFree,
sizeof(Op), 0, A_GIMME, 0);
48 class_addmethod(sOpClass, (t_method)OpReset, gensym(
"audio.reset"), A_CANT, 0);
49 class_addmethod(sOpClass, (t_method)OpSetup, gensym(
"audio.setup"), A_CANT, 0);
50 class_addmethod(sOpClass, (t_method)OpConnect, gensym(
"audio.connect"), A_POINTER, A_POINTER, 0);
51 class_addmethod(sOpClass, (t_method)OpSetOperator, gensym(
"operator"), A_SYMBOL, 0);
52 class_addmethod(sOpClass, (t_method)OpSetOperand, gensym(
"operand"), A_FLOAT, 0);
54 class_sethelpsymbol(sOpClass, gensym(
"help-jcom_op=.pd"));
61 OpPtr OpNew(SymbolPtr msg, AtomCount argc, AtomPtr argv)
67 self = OpPtr(pd_new(sOpClass));
69 self->outlet = outlet_new(SELF, gensym(
"audio.connect"));
72 v.
set(0,
TT(
"operator"));
74 err = TTObjectInstantiate(
TT(
"audio.object"), (TTObjectPtr*)&self->audioGraphObject, v);
76 if (!self->audioGraphObject->getUnitGenerator()) {
77 error(
"op≈: cannot load Jamoma DSP object");
86 void OpFree(OpPtr
self)
88 TTObjectRelease((TTObjectPtr*)&self->audioGraphObject);
96 TTErr OpReset(OpPtr
self,
long vectorSize)
98 return self->audioGraphObject->resetAudio();
102 TTErr OpSetup(OpPtr
self)
106 a[0].a_type = A_POINTER;
107 a[1].a_type = A_POINTER;
108 a[0].a_w.w_symbol = SymbolPtr(self->audioGraphObject);
109 a[1].a_w.w_symbol = 0;
111 outlet_anything(self->outlet, gensym(
"audio.connect"), 2, a);
116 TTErr OpConnect(OpPtr
self, TTAudioGraphObjectPtr audioSourceObject,
TTPtrSizedInt sourceOutletNumber)
118 return self->audioGraphObject->connectAudio(audioSourceObject, sourceOutletNumber);
124 void OpSetOperator(OpPtr
self, SymbolPtr value)
126 self->attrOperator = value;
127 self->audioGraphObject->getUnitGenerator()->setAttributeValue(
TT(
"Operator"),
TT(self->attrOperator->s_name));
131 void OpSetOperand(OpPtr
self, t_floatarg value)
133 self->attrOperand = value;
134 self->audioGraphObject->getUnitGenerator()->setAttributeValue(
TT(
"Operand"), self->attrOperand);
#define TT
This macro is defined as a shortcut for doing a lookup in the symbol table.
void setSize(const TTUInt16 arg)
DEPRECATED.
float TTFloat32
32 bit floating point number
void set(const TTUInt16 index, const T &anElementValue)
DEPRECATED.
long TTPtrSizedInt
An integer that is the same size as a pointer.
TTErr
Jamoma Error Codes Enumeration of error codes that might be returned by any of the TTBlue functions a...
std::uint32_t TTUInt32
32 bit unsigned integer
[doxygenAppendixC_copyExample]