t_jit_err GainMatrixCalc(t_gain* self, void *inputs, void *outputs) { t_jit_err err = JIT_ERR_NONE; long in_savelock; long out_savelock; void *in_matrix; void *out_matrix; in_matrix = jit_object_method(inputs,_jit_sym_getindex,0); out_matrix = jit_object_method(outputs,_jit_sym_getindex,0); if (self && in_matrix && out_matrix) { in_savelock = TTMatrixReferenceJitterMatrix(*self->m_x, in_matrix, false); // we're just scaling, and this is a trivial example, so we don't copy out_savelock = TTMatrixReferenceJitterMatrix(*self->m_y, out_matrix, false); // we're just scaling, and this is a trivial example, so we don't copy self->m_gain->calculate(*self->m_x, *self->m_y); jit_object_method(out_matrix, _jit_sym_lock, out_savelock); jit_object_method(in_matrix, _jit_sym_lock, in_savelock); } else return JIT_ERR_INVALID_PTR; return err; }
t_jit_err StencilMatrixCalc(StencilObjectPtr self, void *inputs, void *outputs) { t_jit_err err = JIT_ERR_NONE; long in_savelock; long out_savelock; void *in_matrix; void *out_matrix; in_matrix = jit_object_method(inputs,_jit_sym_getindex,0); out_matrix = jit_object_method(outputs,_jit_sym_getindex,0); if (self && in_matrix && out_matrix) { in_savelock = TTMatrixReferenceJitterMatrix(self->x, in_matrix); out_savelock = TTMatrixReferenceJitterMatrix(self->y, out_matrix); TTMatrixCopyDataFromJitterMatrix(self->x, in_matrix); self->stencilObject->calculate(self->x, self->y); TTMatrixCopyDataToJitterMatrix(self->y, out_matrix); jit_object_method(out_matrix, _jit_sym_lock, out_savelock); jit_object_method(in_matrix, _jit_sym_lock, in_savelock); } else return JIT_ERR_INVALID_PTR; return err; }