From d62e56f4df9594f72ce501f5e19c974fd18e7295 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 22 Oct 2002 23:07:10 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r186, which included commits to RCS files with non-trunk default branches. svn path=/trunk/; revision=187 --- externals/grill/flext/source/flinternal.h | 111 ++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 externals/grill/flext/source/flinternal.h (limited to 'externals/grill/flext/source/flinternal.h') diff --git a/externals/grill/flext/source/flinternal.h b/externals/grill/flext/source/flinternal.h new file mode 100644 index 00000000..20989b1b --- /dev/null +++ b/externals/grill/flext/source/flinternal.h @@ -0,0 +1,111 @@ +/* + +flext - C++ layer for Max/MSP and pd (pure data) externals + +Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "license.txt," in this distribution. + +*/ + +/*! \file flinternal.h + \brief Definitions for internal flext usage + \internal + + Here, a few shortcuts for common MaxMSP or PD library calls and type definitions + are declared +*/ + +#ifndef __FLEXT_INTERNALS_H +#define __FLEXT_INTERNALS_H + +#include "flstdc.h" + + +#ifdef PD + +#define object_new(clss) pd_new(clss) +#define object_free(obj) pd_free(&(obj).ob_pd) + + + +#define add_dsp(clss,meth) class_addmethod(clss, (t_method)meth,gensym("dsp"),A_NULL) +#define add_bang(clss,meth) class_addbang(clss, (t_method)meth) +#define add_float(clss,meth) class_addfloat(clss, (t_method)meth) +#define add_floatn(clss,meth,n) class_addmethod(clss, (t_method)meth,gensym("ft" #n),A_FLOAT,A_NULL) +#define add_flint(clss,meth) class_addfloat(clss, (t_method)meth) +#define add_flintn(clss,meth,n) class_addmethod(clss, (t_method)meth,gensym("ft" #n),A_FLOAT,A_NULL) +#define add_method(clss,meth,text) class_addmethod(clss, (t_method)meth, gensym(text), A_NULL) +#define add_methodG(clss,meth,text) class_addmethod(clss, (t_method)meth, gensym(text), A_GIMME,A_NULL) +#define add_method1(clss,meth,text,a1) class_addmethod(clss, (t_method)meth, gensym(text), a1,A_NULL) +#define add_method2(clss,meth,text,a1,a2) class_addmethod(clss, (t_method)meth, gensym(text), a1,a2,A_NULL) +#define add_method3(clss,meth,text,a1,a2,a3) class_addmethod(clss, (t_method)meth, gensym(text), a1,a2,a3,A_NULL) +#define add_method4(clss,meth,text,a1,a2,a3,a4) class_addmethod(clss, (t_method)meth, gensym(text), a1,a2,a3,a4,A_NULL) +#define add_method5(clss,meth,text,a1,a2,a3,a5) class_addmethod(clss, (t_method)meth, gensym(text), a1,a2,a3,a4,a5,A_NULL) +#define add_loadbang(clss,meth) class_addmethod(clss,(t_method)meth, gensym("loadbang"), A_CANT, A_NULL) +#define add_anything(clss,meth) class_addanything(clss,meth) + + +#define newout_signal(clss) outlet_new(clss,&s_signal) +#define newout_float(clss) outlet_new(clss,&s_float) +#define newout_flint(clss) outlet_new(clss,&s_float) +#define newout_list(clss) outlet_new(clss,&s_list) +#define newout_symbol(clss) outlet_new(clss,&s_symbol) +#define newout_anything(clss) outlet_new(clss,&s_anything) + +#define outlet_flint(o,v) outlet_float(o,(float)(v)) + +typedef t_perfroutine t_dspmethod; + +#define qelem_new clock_new +#define qelem_free clock_free +#define qelem_set clock_set +#define qelem_unset clock_unset + +#elif defined(MAXMSP) + +/* +typedef void _inlet; +typedef _inlet t_inlet; +*/ + +typedef void t_outlet; +//typedef _outlet t_outlet; + +#define object_new(clss) pd_new(clss) +#define object_free(obj) freeobject((object *)obj) + +#define add_dsp(clss,meth) addmess((method)meth,"dsp",A_CANT,A_NOTHING) +#define add_bang(clss,meth) addbang((method)meth) +#define add_float(clss,meth) addfloat((method)meth) +#define add_floatn(clss,meth,n) addftx((method)meth,n) +#define add_flint(clss,meth) addint((method)meth) +#define add_flintn(clss,meth,n) addinx((method)meth,n) +#define add_method(clss,meth,text) addmess((method)meth, text, A_NOTHING) +#define add_methodG(clss,meth,text) addmess((method)meth, text, A_GIMME,A_NOTHING) +#define add_method1(clss,meth,text,a1) addmess((method)meth, text, a1,A_NOTHING) +#define add_method2(clss,meth,text,a1,a2) addmess((method)meth, text, a1,a2,A_NOTHING) +#define add_method3(clss,meth,text,a1,a2,a3) addmess((method)meth, text, a1,a2,a3,A_NOTHING) +#define add_method4(clss,meth,text,a1,a2,a3,a4) addmess((method)meth, text, a1,a2,a3,a4,A_NOTHING) +#define add_method5(clss,meth,text,a1,a2,a3,a5) addmess((method)meth, text, a1,a2,a3,a4,a5,A_NOTHING) +#define add_anything(clss,meth) addmess((method)meth, "anything", A_GIMME,A_NOTHING) + +#define add_assist(clss,meth) addmess((method)meth, "assist", A_CANT, A_NULL) +#define add_loadbang(clss,meth) addmess((method)meth, "loadbang", A_CANT, A_NULL) + +#define newout_signal(clss) outlet_new(clss,"signal") +#define newout_float(clss) outlet_new(clss,"float") +#define newout_flint(clss) outlet_new(clss,"int") +#define newout_list(clss) outlet_new(clss,"list") +#define newout_symbol(clss) outlet_new(clss,"symbol") +#define newout_anything(clss) outlet_new(clss,"anything") + +#define outlet_flint(o,v) outlet_int(o,(int)(v)) +#define outlet_symbol(o,s) outlet_anything(o,s,0,NULL) + +typedef t_perfroutine t_dspmethod; + +#endif + + +#endif -- cgit v1.2.1