X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/faust-0.9.47mr3/tools/faust2ck-1.0/src/chuck_faust.template diff --git a/interpretor/faust-0.9.47mr3/tools/faust2ck-1.0/src/chuck_faust.template b/interpretor/faust-0.9.47mr3/tools/faust2ck-1.0/src/chuck_faust.template deleted file mode 100644 index ba0c353..0000000 --- a/interpretor/faust-0.9.47mr3/tools/faust2ck-1.0/src/chuck_faust.template +++ /dev/null @@ -1,126 +0,0 @@ - -#include "ugen_clip.h" -#include "chuck_type.h" -#include "chuck_ugen.h" -#include "chuck_vm.h" -#include "chuck_globals.h" - -/* UI class - do-nothing (from FAUST/minimal.cpp) */ - -class UI -{ - bool fStopped; -public: - - UI() : fStopped(false) {} - virtual ~UI() {} - - virtual void addButton(const char* label, float* zone) {} - virtual void addToggleButton(const char* label, float* zone) {} - virtual void addCheckButton(const char* label, float* zone) {} - virtual void addVerticalSlider(const char* label, float* zone, float init, float min, float max, float step) {} - virtual void addHorizontalSlider(const char* label, float* zone, float init, float min, float max, float step) {} - virtual void addNumEntry(const char* label, float* zone, float init, float min, float max, float step) {} - - virtual void openFrameBox(const char* label) {} - virtual void openTabBox(const char* label) {} - virtual void openHorizontalBox(const char* label) {} - virtual void openVerticalBox(const char* label) {} - virtual void closeBox() {} - - virtual void run() {} - - void stop() { fStopped = true; } - bool stopped() { return fStopped; } -}; - -class dsp { public: float fSamplingFreq; }; - -/* - * FAUST intrinsic - */ -<> - -/* - * FAUST defines UI values as private, but provides no getters/setters. - * In our particular case it's way more convenient to access them directly - * than to set up a complicated UI structure. Also get rid of everything - * being "virtual", since it may stop the compiler from inlining properly! - */ -#define private public -#define virtual - -/* Rename the class the name of our DSP. */ -#define mydsp %dsp_name% - -/* - * FAUST class - */ -<> - -#undef private -#undef virtual -#undef mydsp - -/* - * ChucK glue code - */ -static t_CKUINT %dsp_name%_offset_data = 0; -static int g_sr = 44100; - -static void %dsp_name%_ctor( Chuck_Object * SELF, void * ARGS, Chuck_VM_Shred * SHRED ) -{ - // return data to be used later - %dsp_name% *d = new %dsp_name%; - OBJ_MEMBER_UINT(SELF, %dsp_name%_offset_data) = (t_CKUINT)d; - d->init(g_sr); -} - -static void %dsp_name%_dtor( Chuck_Object * SELF, Chuck_VM_Shred * SHRED ) -{ - delete (%dsp_name%*) OBJ_MEMBER_UINT(SELF, %dsp_name%_offset_data); - OBJ_MEMBER_UINT(SELF, %dsp_name%_offset_data) = 0; -} - -static t_CKBOOL %dsp_name%_tick( Chuck_Object * SELF, float in, float * out, Chuck_VM_Shred * SHRED ) -{ - %dsp_name% *d = (%dsp_name%*)OBJ_MEMBER_UINT(SELF, %dsp_name%_offset_data); - float * input, * output; - input = ∈ - output = out; - d->compute (1, &input, &output); - return TRUE; -} - -%ctrl_cget_functions% - -DLL_QUERY %dsp_name%_query( Chuck_DL_Query * QUERY ) -{ - Chuck_Env * env = Chuck_Env::instance(); - Chuck_DL_Func * func = NULL; - - g_sr = QUERY->srate; - - if( !type_engine_import_ugen_begin( env, "%dsp_name%", "UGen", env->global(), - %dsp_name%_ctor, %dsp_name%_dtor, %dsp_name%_tick, NULL ) ) - return FALSE; - - // add member variable - %dsp_name%_offset_data = type_engine_import_mvar( env, "int", "@%dsp_name%_data", FALSE ); - if( %dsp_name%_offset_data == CK_INVALID_OFFSET ) goto error; - - %ctrl_cget_query% - - // end import - if( !type_engine_import_class_end( env ) ) - return FALSE; - - return TRUE; - -error: - // end import - if( !type_engine_import_class_end( env ) ) - return FALSE; - - return FALSE; -}