From 76fd627a763f708d764d5f70b3c71cebc8bdbf4f Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Mon, 22 Aug 2005 19:20:27 +0000 Subject: adapted for pd-devel 0.39 - better handling of click callback - more compatible handling of attributes in patcher (hiding is now an option - define FLEXT_ATTRHIDE) added flfeatures.h for compile-time version-specific feature detection changes for devel_0_39 support svn path=/trunk/; revision=3445 --- externals/grill/flext/changes.txt | 1 + externals/grill/flext/flext.vcproj | 6 +++--- externals/grill/flext/package.txt | 5 +++-- externals/grill/flext/source/flbuf.cpp | 22 ++++++-------------- externals/grill/flext/source/flfeatures.h | 34 +++++++++++++++++++++++++++++++ 5 files changed, 47 insertions(+), 21 deletions(-) create mode 100644 externals/grill/flext/source/flfeatures.h (limited to 'externals') diff --git a/externals/grill/flext/changes.txt b/externals/grill/flext/changes.txt index 95fa2879..516e10ca 100644 --- a/externals/grill/flext/changes.txt +++ b/externals/grill/flext/changes.txt @@ -14,6 +14,7 @@ Version history: - added GetCanvasDir to retrieve folder in which the patcher resides - better handling of click callback - more compatible handling of attributes in patcher (hiding is now an option - define FLEXT_ATTRHIDE) +- added header file flfeatures.h for compile-time detection of version-specific features 0.5.0: - fixes for 64 bit builds (size_t is integer type of pointer size) diff --git a/externals/grill/flext/flext.vcproj b/externals/grill/flext/flext.vcproj index f73c2a09..4dde8462 100644 --- a/externals/grill/flext/flext.vcproj +++ b/externals/grill/flext/flext.vcproj @@ -122,9 +122,9 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="c:\data\pd\pd-cvs\src;c:\data\prog\audio\sndobj\include;c:\data\prog\audio\stk\include" - PreprocessorDefinitions="WIN32;_DEBUG;_LIB;FLEXT_SYS_PD;FLEXT_THREADS;FLEXT_USE_SIMD;FLEXT_EXPORTS;xFLEXT_ATTRHIDE;xFLEXT_NOATTREDIT" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;FLEXT_SYS_PD;FLEXT_THREADS;FLEXT_USE_SIMD;FLEXT_EXPORTS;xFLEXT_ATTRHIDE;xFLEXT_NOATTREDIT;_WIN32_WINNT=0x501" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" RuntimeTypeInfo="TRUE" UsePrecompiledHeader="2" PrecompiledHeaderThrough="flext.h" @@ -691,7 +691,7 @@ copy F:\prog\max\flext\max-msvc\flext.max.dll f:\prog\dll FavorSizeOrSpeed="0" EnableFiberSafeOptimizations="FALSE" AdditionalIncludeDirectories=""C:\data\prog\audio\maxmspsdk_win\4.5 headers\c74support\max-includes";"C:\data\prog\audio\maxmspsdk_win\4.5 headers\c74support\msp-includes";c:\data\prog\audio\sndobj\include;c:\data\prog\audio\stk\include" - PreprocessorDefinitions="WIN32;_DEBUG;_LIB;FLEXT_SYS_MAX;FLEXT_THREADS;FLEXT_USE_SIMD;FLEXT_EXPORTS" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;FLEXT_SYS_MAX;FLEXT_THREADS;FLEXT_USE_SIMD;FLEXT_EXPORTS;_WIN32_WINNT=0x501" StringPooling="TRUE" RuntimeLibrary="1" StructMemberAlignment="2" diff --git a/externals/grill/flext/package.txt b/externals/grill/flext/package.txt index 01f0d076..c4b2d9a9 100644 --- a/externals/grill/flext/package.txt +++ b/externals/grill/flext/package.txt @@ -33,7 +33,9 @@ SRCS= \ flatom_part.cpp flitem.cpp flmeth.cpp flmsg.cpp \ flproxy.cpp flqueue.cpp flbind.cpp flmap.cpp HDRS= \ - flprefix.h flstdc.h flbase.h flclass.h flext.h flsupport.h flmap.h fldsp.h flinternal.h flcontainers.h \ + flext.h flprefix.h flstdc.h flinternal.h flfeatures.h \ + flbase.h flclass.h flsupport.h fldsp.h \ + flmap.h flcontainers.h \ fldefs.h fldefs_hdr.h fldefs_setup.h \ fldefs_methcb.h fldefs_meththr.h fldefs_methadd.h fldefs_methbind.h fldefs_methcall.h \ fldefs_attrcb.h fldefs_attrvar.h fldefs_attradd.h @@ -43,5 +45,4 @@ SRCS_SNDOBJ=flsndobj.cpp HDRS_SNDOBJ=flsndobj.h SRCS_STK=flstk.cpp - HDRS_STK=flstk.h diff --git a/externals/grill/flext/source/flbuf.cpp b/externals/grill/flext/source/flbuf.cpp index c19909b8..529d32d0 100644 --- a/externals/grill/flext/source/flbuf.cpp +++ b/externals/grill/flext/source/flbuf.cpp @@ -13,6 +13,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. */ #include "flext.h" +#include "flfeatures.h" #if FLEXT_SYS != FLEXT_SYS_JMAX @@ -20,15 +21,6 @@ WARRANTIES, see the file, "license.txt," in this distribution. #define DIRTY_INTERVAL 0 // buffer dirty check in msec #endif -// check if PD API supports buffer dirty time -#if defined(PD_DEVEL_VERSION) && defined(PD_MAJOR_VERSION) && defined(PD_MINOR_VERSION) -#if PD_MINOR_VERSION >= 36 && PD_MINOR_VERSION <= 38 -// garray_updatetime has been removed in devel_0_39 - #define FLEXT_HAVE_GARRAYUPDATETIME - #define FLEXT_HAVE_GARRAYLOCKS -#endif -#endif - #if FLEXT_SYS == FLEXT_SYS_MAX // defined in flsupport.cpp extern const t_symbol *sym_buffer,*sym_size; @@ -184,19 +176,18 @@ flext::buffer::lock_t flext::buffer::Lock() FLEXT_ASSERT(sym); #if FLEXT_SYS == FLEXT_SYS_PD FLEXT_ASSERT(arr); -#ifdef FLEXT_HAVE_GARRAYLOCKS +#ifdef _FLEXT_HAVE_PD_GARRAYLOCKS garray_lock(arr); #endif return false; #elif FLEXT_SYS == FLEXT_SYS_MAX t_buffer *p = (t_buffer *)sym->s_thing; FLEXT_ASSERT(p); -#if defined(MAC_VERSION) || defined(WIN_VERSION) +#ifdef _FLEXT_HAVE_MAX_INUSEFLAG long old = p->b_inuse; p->b_inuse = 1; return old; #else - // undefined for OS9 return 0; #endif #else @@ -209,14 +200,13 @@ void flext::buffer::Unlock(flext::buffer::lock_t prv) FLEXT_ASSERT(sym); #if FLEXT_SYS == FLEXT_SYS_PD FLEXT_ASSERT(arr); -#ifdef FLEXT_HAVE_GARRAYLOCKS +#ifdef _FLEXT_HAVE_PD_GARRAYLOCKS garray_unlock(arr); #endif #elif FLEXT_SYS == FLEXT_SYS_MAX t_buffer *p = (t_buffer *)sym->s_thing; FLEXT_ASSERT(p); -#if defined(MAC_VERSION) || defined(WIN_VERSION) - // not for OS9 +#ifdef _FLEXT_HAVE_MAX_INUSEFLAG p->b_inuse = prv; #endif #else @@ -339,7 +329,7 @@ bool flext::buffer::IsDirty() const FLEXT_ASSERT(sym); #if FLEXT_SYS == FLEXT_SYS_PD FLEXT_ASSERT(arr); - #ifdef FLEXT_HAVE_GARRAYUPDATETIME + #ifdef _FLEXT_HAVE_PD_GARRAYUPDATETIME return isdirty || garray_updatetime(arr) > cleantime; #else // Don't know.... (no method in PD judging whether buffer has been changed from outside flext...) diff --git a/externals/grill/flext/source/flfeatures.h b/externals/grill/flext/source/flfeatures.h new file mode 100644 index 00000000..915f44a9 --- /dev/null +++ b/externals/grill/flext/source/flfeatures.h @@ -0,0 +1,34 @@ +/* + +flext - C++ layer for Max/MSP and pd (pure data) externals + +Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org) +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "license.txt," in this distribution. + +*/ + +/*! \file flfeatures.h + \brief Detect version-specific features. +*/ + +#ifndef __FLFEATURES_H +#define __FLFEATURES_H + +// check if PD API supports buffer dirty time +#if defined(PD_DEVEL_VERSION) && defined(PD_MAJOR_VERSION) && defined(PD_MINOR_VERSION) +#if PD_MINOR_VERSION >= 36 && PD_MINOR_VERSION <= 38 +// array locks have been removed in devel_0_39 + #define _FLEXT_HAVE_PD_GARRAYLOCKS +#endif +#if PD_MINOR_VERSION >= 36 + #define _FLEXT_HAVE_PD_GARRAYUPDATETIME +#endif +#endif + +#if defined(MAC_VERSION) || defined(WIN_VERSION) + // not for OS9 + #define _FLEXT_HAVE_MAX_INUSEFLAG +#endif + +#endif -- cgit v1.2.1