17 #include "jit.common.h"
18 #include "TTClassWrapperMax.h"
22 typedef struct _j_gain {
29 typedef GainObject* GainObjectPtr;
33 t_jit_err GainClassInit (
void);
34 GainObjectPtr GainNew (
void);
35 void GainFree (GainObjectPtr
self);
36 t_jit_err GainMatrixCalc (GainObjectPtr
self,
void *inputs,
void *outputs);
37 t_jit_err GainGetGain (GainObjectPtr
self, Ptr attr, AtomCount* ac, AtomPtr* av);
38 t_jit_err GainSetGain (GainObjectPtr
self, Ptr attr, AtomCount ac, AtomPtr av);
42 static ClassPtr sGainClass = NULL;
47 t_jit_err GainClassInit(
void)
53 sGainClass = (ClassPtr)jit_class_new((
char*)
"j_gain", (method)GainNew, (method)GainFree,
sizeof(GainObject), 0);
56 mop = (t_jit_object*)jit_object_new(_jit_sym_jit_mop, 1, 1);
57 jit_class_addadornment(sGainClass, mop);
60 jit_class_addmethod(sGainClass, (method)GainMatrixCalc, (
char*)
"matrix_calc", A_CANT, 0);
63 attr = (t_jit_object*)jit_object_new(_jit_sym_jit_attr_offset,
67 (method)GainGetGain, (method)GainSetGain,
69 jit_class_addattr(sGainClass, attr);
72 jit_class_register(sGainClass);
80 GainObjectPtr GainNew(
void)
82 GainObjectPtr
self = (GainObjectPtr)jit_object_alloc(sGainClass);
95 void GainFree(GainObjectPtr
self)
108 t_jit_err GainMatrixCalc(GainObjectPtr
self,
void *inputs,
void *outputs)
110 t_jit_err err = JIT_ERR_NONE;
116 in_matrix = jit_object_method(inputs,_jit_sym_getindex,0);
117 out_matrix = jit_object_method(outputs,_jit_sym_getindex,0);
119 if (
self && in_matrix && out_matrix) {
120 in_savelock = TTMatrixReferenceJitterMatrix(self->x, in_matrix,
false);
121 out_savelock = TTMatrixReferenceJitterMatrix(self->y, out_matrix,
false);
123 self->gainObject->calculate(self->x, self->y);
125 jit_object_method(out_matrix, _jit_sym_lock, out_savelock);
126 jit_object_method(in_matrix, _jit_sym_lock, in_savelock);
129 return JIT_ERR_INVALID_PTR;
138 t_jit_err GainGetGain(GainObjectPtr
self, Ptr attr, AtomCount* ac, AtomPtr* av)
146 *av = (AtomPtr)sysmem_newptr(
sizeof(Atom));
150 self->gainObject->getAttributeValue(kTTSym_gain, gain);
151 atom_setfloat(*av, gain);
156 t_jit_err GainSetGain(GainObjectPtr
self, Ptr attr, AtomCount ac, AtomPtr av)
158 self->gainObject->setAttributeValue(kTTSym_gain, atom_getfloat(av));
TTErr TTObjectBaseRelease(TTObjectBasePtr *anObject)
DEPRECATED.
TTDataObjectBase is the base class for all data generating and processing objects.
Base class for all first-class Jamoma objects.
double TTFloat64
64 bit floating point number
#define TT
This macro is defined as a shortcut for doing a lookup in the symbol table.
TTErr TTObjectBaseInstantiate(const TTSymbol className, TTObjectBasePtr *returnedObjectPtr, const TTValue arguments)
DEPRECATED.
TTErr
Jamoma Error Codes Enumeration of error codes that might be returned by any of the TTBlue functions a...
[doxygenAppendixC_copyExample]