Max 5 API Reference
00001 // ext_maxtypes.h: Max data types and structure definitions for external objects 00002 // Copyright 1990-2004 IRCAM/Cycling '74 -- All rights reserved 00003 00004 #ifndef _EXT_MAXTYPES_H_ 00005 #define _EXT_MAXTYPES_H_ 00006 00007 00008 #ifdef __cplusplus 00009 extern "C" { 00010 #endif 00011 00012 #if C74_PRAGMA_STRUCT_PACKPUSH 00013 #pragma pack(push, 2) 00014 #elif C74_PRAGMA_STRUCT_PACK 00015 #pragma pack(2) 00016 #endif 00017 00018 00019 /** A patcher. As of Max 5, the patcher struct is opaque. 00020 Messages can be sent to a patcher using object_method() or object_method_typed(), or by using @ref attr accessors. 00021 @ingroup patcher 00022 */ 00023 typedef t_object t_patcher; 00024 00025 00026 /** A box. As of Max 5, the box struct is opaque. 00027 Messages can be sent to a box using object_method() or object_method_typed(), or by using @ref attr accessors. 00028 @ingroup patcher 00029 */ 00030 typedef t_object t_box; 00031 00032 00033 /** A clock. 00034 @ingroup clocks 00035 */ 00036 typedef t_object t_clock; 00037 00038 00039 /** A qelem. 00040 @ingroup qelems 00041 */ 00042 typedef void* t_qelem; 00043 00044 00045 /** patcher iteration flags 00046 @ingroup patcher 00047 */ 00048 enum { 00049 PI_DEEP = 1, ///< descend into subpatchers (not used by audio library) 00050 PI_REQUIREFIRSTIN = 2, ///< if b->b_firstin is NULL, do not call function 00051 PI_WANTBOX = 4 ///< instead, of b->b_firstin, pass b to function, whether or not b->b_firstin is NULL 00052 }; 00053 00054 00055 /** The atombuf struct provides a way to pass a collection of atoms. 00056 @ingroup atombuf 00057 */ 00058 typedef struct atombuf { 00059 long a_argc; ///< the number of atoms 00060 t_atom a_argv[1]; ///< the first of the array of atoms 00061 } t_atombuf; 00062 00063 00064 /** A simple doubly-linked list used by the #t_funbuff object. 00065 @ingroup funbuff 00066 */ 00067 typedef struct zll 00068 { /* note: no obj header */ 00069 long z_x; 00070 long z_y; 00071 struct zll *z_next; 00072 struct zll *z_prev; 00073 } Zll, t_zll; 00074 00075 00076 /** The structure of a funbuff object 00077 @ingroup funbuff 00078 */ 00079 typedef struct funbuff 00080 { 00081 t_object f_obj; 00082 void *f_outlet; 00083 void *f_outlet1; 00084 void *f_outlet2; 00085 t_zll f_head; ///< head of double linked list of function elements 00086 t_zll *f_foot; ///< foot in the door pointer for list 00087 long f_gotoDelta; ///< used by goto and next 00088 long f_selectX; ///< selected region start 00089 long f_selectW; ///< selected region width 00090 t_symbol *f_sym; ///< filename 00091 long f_y; ///< y-value from inlet 00092 char f_yvalid; ///< flag that y has been set since x has 00093 char f_embed; ///< flag for embedding funbuff values in patcher 00094 } Funbuff, t_funbuff; 00095 00096 00097 #if C74_PRAGMA_STRUCT_PACKPUSH 00098 #pragma pack(pop) 00099 #elif C74_PRAGMA_STRUCT_PACK 00100 #pragma pack() 00101 #endif 00102 00103 #ifdef __cplusplus 00104 } 00105 #endif 00106 00107 #endif // _EXT_MAXTYPES_H_
Copyright © 2008, Cycling '74