Update of /cvsroot/pure-data/externals/grill/flext/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23250/source
Modified Files: fldsp.h flext.h flstdc.h Log Message: more robust structure pack setting for Max/MSP @ Windows attribute generation is now determined exclusively by the object class setup (not library as before). some minor changes after valgrind run - preprocessor symbol FLEXT_COMPATIBLE - if defined don't implement specialities of either PD or Max/MSP fixed bug for Max/MSP when there's no signal inlet - Max: fixed reported bug (#67), where list elements are distributed over inlets
Index: fldsp.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/fldsp.h,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** fldsp.h 15 May 2006 23:03:52 -0000 1.20 --- fldsp.h 29 May 2006 10:19:27 -0000 1.21 *************** *** 65,70 **** { int i = CntInSig(); ! // we have at least one actual dsp in vector return vecs+(i?i:1); }
--- 65,76 ---- { int i = CntInSig(); ! // in PD we have at least one actual dsp in vector ! #if FLEXT_SYS == FLEXT_SYS_PD return vecs+(i?i:1); + #elif FLEXT_SYS == FLEXT_SYS_MAX + return vecs+i; + #else + #error + #endif }
Index: flstdc.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flstdc.h,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** flstdc.h 19 Nov 2005 23:10:54 -0000 1.37 --- flstdc.h 29 May 2006 10:19:27 -0000 1.38 *************** *** 97,100 **** --- 97,105 ---- /* Max/MSP definitions start here */
+ // 2-byte alignment for Max/MSP structures + #ifdef _MSC_VER + #pragma pack(push,flext_maxsdk) + #pragma pack(2) + #endif
// Include the relevant Max/MSP header files *************** *** 118,122 **** #endif
- // necessary for the old OS9 SDK extern "C" { --- 123,126 ---- *************** *** 138,142 **** #undef WIN_VERSION
- typedef t_pxobject t_sigobj; // that's the all-in-one object type of Max/MSP (not very memory-efficent, i guess) typedef t_patcher t_canvas; --- 142,145 ---- *************** *** 188,221 **** #endif
! #elif FLEXT_SYS == FLEXT_SYS_JMAX ! ! extern "C" { ! // Wow, the jMax developers made excessive use of C++ reserved words ! // good hit! ! #define typeid c_typeid_ ! #define template c_template_ ! #define this c_this_ ! #define class c_class_ ! ! #include <fts/fts.h> ! ! // undefine them again ! #undef typeid ! #undef template ! #undef this ! #undef class ! } ! ! typedef fts_dsp_object t_sigobj; ! typedef void t_canvas; // decide type later on ! ! typedef char t_symbol; ! typedef fts_atom_t t_atom; ! typedef fts_class_t t_class; ! typedef float t_sample; // is there no sample type in jMax? ! ! typedef fts_timebase_entry_t t_clock; ! typedef fts_timebase_entry_t t_qelem;
#endif // FLEXT_SYS
--- 191,200 ---- #endif
! #ifdef _MSC_VER ! #pragma pack(pop,flext_maxsdk) ! #endif
+ #else + #error Platform not supported #endif // FLEXT_SYS
Index: flext.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flext.h,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** flext.h 15 May 2006 23:03:52 -0000 1.28 --- flext.h 29 May 2006 10:19:27 -0000 1.29 *************** *** 57,66 ****
- #if FLEXT_SYS == FLEXT_SYS_MAX && FLEXT_OS == FLEXT_OS_WIN - // for wmax alignment must be 2 bytes! - #pragma pack(2) - #endif - - // include all the flext interface definitions #include "fldefs.h" --- 57,60 ---- *************** *** 72,79 **** #include "fldsp.h"
- /* - #if FLEXT_SYS == FLEXT_SYS_MAX && FLEXT_OS == FLEXT_OS_WIN - #pragma pack(pop) - #endif - */ #endif // FLEXT_H --- 66,68 ----