param_types.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:1k
源码类别:

midi

开发平台:

Unix_Linux

  1. #ifndef PARAM_TYPES_H
  2. #define PARAM_TYPES_H
  3. #include "expr_types.h"
  4. #define P_CREATE 1
  5. #define P_NONE 0
  6. #define P_TYPE_BOOL 0
  7. #define P_TYPE_INT 1
  8. #define P_TYPE_DOUBLE 2
  9. #define P_FLAG_NONE 0
  10. #define P_FLAG_READONLY 1
  11. #define P_FLAG_USERDEF (1 << 1)
  12. #define P_FLAG_QVAR (1 << 2)
  13. #define P_FLAG_TVAR (1 << 3)
  14. #define P_FLAG_ALWAYS_MATRIX (1 << 4)
  15. #define P_FLAG_DONT_FREE_MATRIX (1 << 5)
  16. #define P_FLAG_PER_PIXEL (1 << 6)
  17. #define P_FLAG_PER_POINT (1 << 7)
  18. typedef union VALUE_T {
  19.   int bool_val;
  20.   int int_val;
  21.   double double_val;
  22. } value_t;
  23. /* Parameter Type */
  24. typedef struct PARAM_T {
  25.   char name[MAX_TOKEN_SIZE]; /* name of the parameter, not necessary but useful neverthless */
  26.   short int type; /* parameter number type (int, bool, or double) */
  27.   short int flags; /* read, write, user defined, etc */
  28.   short int matrix_flag; /* for optimization purposes */
  29.   void * engine_val; /* pointer to the engine variable */
  30.   void * matrix; /* per pixel / per point matrix for this variable */
  31.   value_t default_init_val; /* a default initial condition value */
  32.   value_t upper_bound; /* this parameter's upper bound */
  33.   value_t lower_bound; /* this parameter's lower bound */
  34. } param_t;
  35. #endif