19#if defined(_MSC_VER) && (_MSC_VER < 0x1300)
34#if FLEXT_SYS == FLEXT_SYS_PD
39 #pragma warning (push)
40 #pragma warning (disable:4091 4005)
43#if FLEXT_OS == FLEXT_OS_WIN && !defined(NT)
81#define internal_error(fmt, ...) pd_error(NULL, fmt, __VA_ARGS__)
92#define A_NOTHING A_NULL
93#define A_FLINT A_FLOAT
94#define A_DEFFLINT A_DEFFLOAT
95#define A_DEFSYMBOL A_DEFSYM
100#elif FLEXT_SYS == FLEXT_SYS_MAX
106#pragma pack(push,flext_maxsdk)
112#if FLEXT_OS == FLEXT_OS_MAC
113 #if FLEXT_OSAPI == FLEXT_OSAPI_MAC_MACH
115 #include <Carbon/Carbon.h>
123 #include <MacTypes.h>
125#elif FLEXT_OS == FLEXT_OS_WIN
126 #define WIN_VERSION 1
127 #define WIN_EXT_VERSION 1
131#ifdef FLEXT_USE_MAXAPI
135 using namespace c74::max;
143 #define _FLEXT_MAX5SDK
151 #include "ext_user.h"
153 #if FLEXT_OS != FLEXT_OS_MAC || defined(MAC_VERSION)
155 #include "ext_critical.h"
163 #include "ext_obex.h"
166 #include "commonsyms.h"
168#if C74_MAX_SDK_VERSION >= 0x0500 || COMMON_SYMBOLS_VERSION >= 500
169 #define _FLEXT_MAX5SDK
187#ifndef _FLEXT_MAX5SDK
189 #if FLEXT_OS == FLEXT_OS_MAC
196#ifndef FLEXT_USE_MAXAPI
204#ifndef _FLEXT_MAX5SDK
211#define clock_free(tick) freeobject((object *)tick)
213#define A_NULL A_NOTHING
214#define A_DEFFLINT A_DEFLONG
221#define A_DEFINT A_DEFLONG
225#define A_SYMBOL A_SYM
229#define A_DEFSYMBOL A_DEFSYM
232#if FLEXT_OS == FLEXT_OS_MAC && !defined(MAC_VERSION)
234#define critical_enter(N)
235#define critical_exit(N)
238#define internal_error error
241#pragma pack(pop,flext_maxsdk)
247#error Platform not supported
263#define FLEXT_LOG(s) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s)
264#define FLEXT_LOG1(s,v1) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1)
265#define FLEXT_LOG2(s,v1,v2) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2)
266#define FLEXT_LOG3(s,v1,v2,v3) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2,v3)
267#define FLEXT_LOG4(s,v1,v2,v3,v4) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2,v3,v4)
268#define FLEXT_LOG5(s,v1,v2,v3,v4,v5) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2,v3,v4,v5)
269#define FLEXT_LOG6(s,v1,v2,v3,v4,v5,v6) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2,v3,v4,v5,v6)
270#define FLEXT_LOG7(s,v1,v2,v3,v4,v5,v6,v7) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2,v3,v4,v5,v6,v7)
271#define FLEXT_LOG8(s,v1,v2,v3,v4,v5,v6,v7,v8) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2,v3,v4,v5,v6,v7,v8)
272#define FLEXT_LOG9(s,v1,v2,v3,v4,v5,v6,v7,v8,v9) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",s,v1,v2,v3,v4,v5,v6,v7,v8,v9)
274#define FLEXT_LOG(s) post(s)
275#define FLEXT_LOG1(s,v1) post(s,v1)
276#define FLEXT_LOG2(s,v1,v2) post(s,v1,v2)
277#define FLEXT_LOG3(s,v1,v2,v3) post(s,v1,v2,v3)
278#define FLEXT_LOG4(s,v1,v2,v3,v4) post(s,v1,v2,v3,v4)
279#define FLEXT_LOG5(s,v1,v2,v3,v4,v5) post(s,v1,v2,v3,v4,v5)
280#define FLEXT_LOG6(s,v1,v2,v3,v4,v5,v6) post(s,v1,v2,v3,v4,v5,v6)
281#define FLEXT_LOG7(s,v1,v2,v3,v4,v5,v6,v7) post(s,v1,v2,v3,v4,v5,v6,v7)
282#define FLEXT_LOG8(s,v1,v2,v3,v4,v5,v6,v7,v8) post(s,v1,v2,v3,v4,v5,v6,v7,v8)
283#define FLEXT_LOG9(s,v1,v2,v3,v4,v5,v6,v7,v8,v9) post(s,v1,v2,v3,v4,v5,v6,v7,v8,v9)
289#define FLEXT_LOG(s) ((void)0)
290#define FLEXT_LOG1(s,v1) ((void)0)
291#define FLEXT_LOG2(s,v1,v2) ((void)0)
292#define FLEXT_LOG3(s,v1,v2,v3) ((void)0)
293#define FLEXT_LOG4(s,v1,v2,v3,v4) ((void)0)
294#define FLEXT_LOG5(s,v1,v2,v3,v4,v5) ((void)0)
295#define FLEXT_LOG6(s,v1,v2,v3,v4,v5,v6) ((void)0)
296#define FLEXT_LOG7(s,v1,v2,v3,v4,v5,v6,v7) ((void)0)
297#define FLEXT_LOG8(s,v1,v2,v3,v4,v5,v6,v7,v8) ((void)0)
298#define FLEXT_LOG9(s,v1,v2,v3,v4,v5,v6,v7,v8,v9) ((void)0)
302#define FLEXT_UNUSED(x) (void)(x)
306#define FLEXT_ASSERT(b) do { if(!(b)) _CrtDbgReport(_CRT_ASSERT,__FILE__,__LINE__,"flext",#b); } while(false)
307#define FLEXT_WARN(str) _CrtDbgReport(_CRT_WARN,__FILE__,__LINE__,"flext",NULL)
308#define FLEXT_ERROR(str) _CrtDbgReport(_CRT_ERROR,__FILE__,__LINE__,"flext",NULL)
310#define FLEXT_ASSERT(b) assert(b)
312#define FLEXT_WARN(str) internal_error("Warning: in " __FILE__ " line %i",(int)__LINE__)
313#define FLEXT_ERROR(str) internal_error("Error: in " __FILE__ " line %i",(int)__LINE__)
316#define FLEXT_ASSERT(b) FLEXT_UNUSED(b)
317#define FLEXT_WARN(str) FLEXT_UNUSED(str)
318#define FLEXT_ERROR(str) internal_error("Error: in " __FILE__ " line %i",(int)__LINE__)
321#define ERRINTERNAL() internal_error("flext: Internal error in file " __FILE__ ", line %i - please report",(int)__LINE__)
324#ifndef PD_MAJOR_VERSION
325# undef FLEXT_NOATTREDIT
326# define FLEXT_NOATTREDIT
331#if FLEXT_SYS == FLEXT_SYS_PD && PD_MINOR_VERSION >= 37
338# if FLEXT_SYS == FLEXT_SYS_PD && PD_MINOR_VERSION >= 38 && defined(PD_DEVEL_VERSION)
340# define FLEXT_QMODE 1
341# elif defined(FLEXT_PDLOCK)
343# if FLEXT_SYS == FLEXT_SYS_PD
346# define FLEXT_QMODE 2
348# define FLEXT_QMODE 0
351# error FLEXT_PDLOCK can only be defined with PD
354# define FLEXT_QMODE 0
359# error Internal error: Queueing mode not defined
Definition of the Max/MSP buffer structure.
t_symbol * t_symptr
Definition flstdc.h:255
#define FLEXT_CAST
Switch for compilation of derived virtual classes.
Definition fldefs.h:27