ftmax.h
上传用户:tjmskj2
上传日期:2020-08-17
资源大小:577k
文件大小:2k
源码类别:

midi

开发平台:

C/C++

  1. /***************************************************************************************
  2.  *
  3.  *   Copyright (C) 2004 by IRCAM-Centre Georges Pompidou, Paris, France.
  4.  *   Author: Norbert.Schnell@ircam.fr
  5.  *
  6.  *   FTS -> MAX/MSP utilities
  7.  *
  8.  */
  9. /*
  10.  *  This program is free software; you can redistribute it and/or
  11.  *  modify it under the terms of the GNU General Public License
  12.  *  as published by the Free Software Foundation; either version 2.1
  13.  *  of the License, or (at your option) any later version.
  14.  *  
  15.  *  See file COPYING.LIB for further informations on licensing terms.
  16.  * 
  17.  *  This program is distributed in the hope that it will be useful,
  18.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20.  *  GNU General Public License for more details.
  21.  * 
  22.  *  You should have received a copy of the GNU General Public License
  23.  *  along with this program; if not, write to the Free Software
  24.  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  25.  *
  26.  */
  27. #ifndef _FTMAX_H_
  28. #define _FTMAX_H_
  29. #include <stdlib.h>
  30. #ifndef MAGIC
  31. #include "ext.h"
  32. #include "z_dsp.h"
  33. #endif
  34. #define ftm_malloc(s) NewPtr(s)
  35. #define ftmax_realloc NO_realloc
  36. #define ftmax_free(p) DisposePtr((char *)(p))
  37. #define restrict
  38. #define M_TWOPI 6.283185308
  39. //#define M_PI 3.141592654
  40. #define ftmax_object_t t_object
  41. #define ftmax_dsp_object_t t_pxobject
  42. typedef t_atom ftmax_atom_t;
  43. typedef t_symbol *ftmax_symbol_t;
  44. typedef t_messlist ftmax_class_t;
  45. typedef method ftmax_method_t;
  46. #define ftmax_is_int(a) ((a)->a_type == A_LONG)
  47. #define ftmax_is_float(a) ((a)->a_type == A_FLOAT)
  48. #define ftmax_is_number(a) ((a)->a_type == A_LONG || (a)->a_type == A_FLOAT)
  49. #define ftmax_is_symbol(a) ((a)->a_type == A_SYM)
  50. #define ftmax_get_int(a) ((a)->a_w.w_long)
  51. #define ftmax_get_float(a) ((a)->a_w.w_float)
  52. #define ftmax_get_number_int(a) (((a)->a_type == A_LONG)? ((a)->a_w.w_long): (int)((a)->a_w.w_float))
  53. #define ftmax_get_number_float(a) (((a)->a_type == A_FLOAT)? (double)((a)->a_w.w_float): (double)((a)->a_w.w_long))
  54. #define ftmax_get_symbol(a) ((a)->a_w.w_sym)
  55. #define ftmax_set_int(a, v) ((a)->a_type = A_LONG, (a)->a_w.w_long = (v))
  56. #define ftmax_set_float(a, v) ((a)->a_type = A_FLOAT, (a)->a_w.w_float = (v))
  57. #define ftmax_set_symbol(a, v) ((a)->a_type = A_SYM, (a)->a_w.w_sym = (v))
  58. #define ftmax_symbol_name(s) ((s)->s_name)
  59. #define ftmax_new_symbol(s) gensym(s)
  60. extern void ftmax_class_message_varargs(ftmax_class_t *cl, ftmax_symbol_t sym, void *method);
  61. #endif