ref: 66fa8ef996ffb3ded8ad1f9b6eb756727e0aa705
dir: /dsp/arch.c/
/* mydsp Plan 9 C architecture for Faust. */ #include <u.h> #include <libc.h> #include "uiglue.h" #define max(x,y) (((x) > (y)) ? (x) : (y)) #define min(x,y) (((x) < (y)) ? (x) : (y)) <<includeIntrinsic>> <<includeclass>> static mydsp *clonemydsp(mydsp *dsp) { return memmove(newmydsp(), dsp, sizeof(*dsp)); } static void *statemydsp(mydsp *dsp, int *sz) { *sz = sizeof(*dsp); return dsp; } #define DSP mydsp #include "dspf.h" static DSPf dspf = { .new = newmydsp, .clone = clonemydsp, .state = statemydsp, .init = instanceInitmydsp, .delete = deletemydsp, .metadata = metadatamydsp, .num_in = getNumInputsmydsp, .num_out = getNumOutputsmydsp, .clear = instanceClearmydsp, .reset_ui = instanceResetUserInterfacemydsp, .build_ui = buildUserInterfacemydsp, .compute = computemydsp, }; void * class_init(int rate) { classInitmydsp(rate); return &dspf; }