oo_DESCRIPTION.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. /* oo_DESCRIPTION.h
  2. *
  3. * Copyright (C) 1994-2013,2015-2018 Paul Boersma
  4. *
  5. * This code is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 2 of the License, or (at
  8. * your option) any later version.
  9. *
  10. * This code is distributed in the hope that it will be useful, but
  11. * WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. * See the GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this work. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. #include "oo_undef.h"
  19. #undef oo_BYTE
  20. #define oo_BYTE(x) { U"" #x, bytewa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  21. #undef oo_INT16
  22. #define oo_INT16(x) { U"" #x, int16wa, Melder_offsetof (ooSTRUCT, x), sizeof (int16), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  23. #undef oo_INT
  24. #define oo_INT(x) { U"" #x, intwa, Melder_offsetof (ooSTRUCT, x), sizeof (int), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  25. #undef oo_INT32
  26. #define oo_INT32(x) { U"" #x, intwa, Melder_offsetof (ooSTRUCT, x), sizeof (int32), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  27. #undef oo_INTEGER
  28. #define oo_INTEGER(x) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  29. #undef oo_UBYTE
  30. #define oo_UBYTE(x) { U"" #x, ubytewa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned char), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  31. #undef oo_UINT
  32. #define oo_UINT(x) { U"" #x, uintwa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned int), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  33. #undef oo_UINTEGER
  34. #define oo_UINTEGER(x) { U"" #x, uintegerwa, Melder_offsetof (ooSTRUCT, x), sizeof (uinteger), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  35. #undef oo_FLOAT
  36. #define oo_FLOAT(x) { U"" #x, floatwa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  37. #undef oo_DOUBLE
  38. #define oo_DOUBLE(x) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  39. #undef oo_COMPLEX
  40. #define oo_COMPLEX(x) { U"" #x, complexwa, Melder_offsetof (ooSTRUCT, x), sizeof (dcomplex), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  41. #undef oo_BYTE_SET
  42. #define oo_BYTE_SET(x,setType) { U"" #x, bytewa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr }, /* BUG function pointer to pointer */
  43. #undef oo_INT_SET
  44. #define oo_INT_SET(x,setType) { U"" #x, intwa, Melder_offsetof (ooSTRUCT, x), sizeof (int), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  45. #undef oo_INTEGER_SET
  46. #define oo_INTEGER_SET(x,setType) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  47. #undef oo_UBYTE_SET
  48. #define oo_UBYTE_SET(x,setType) { U"" #x, ubytewa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned char), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  49. #undef oo_UINT_SET
  50. #define oo_UINT_SET(x,setType) { U"" #x, uintwa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned int), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  51. #undef oo_UINTEGER_SET
  52. #define oo_UINTEGER_SET(x,setType) { U"" #x, uintegerwa, Melder_offsetof (ooSTRUCT, x), sizeof (uinteger), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  53. #undef oo_FLOAT_SET
  54. #define oo_FLOAT_SET(x,setType) { U"" #x, floatwa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  55. #undef oo_DOUBLE_SET
  56. #define oo_DOUBLE_SET(x,setType) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  57. #undef oo_COMPLEX_SET
  58. #define oo_COMPLEX_SET(x,setType) { U"" #x, complexwa, Melder_offsetof (ooSTRUCT, x), sizeof (dcomplex), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  59. #undef oo_BYTE_VECTOR_FROM
  60. #define oo_BYTE_VECTOR_FROM(x,min,max) { U"" #x, bytewa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  61. #undef oo_INT_VECTOR_FROM
  62. #define oo_INT_VECTOR_FROM(x,min,max) { U"" #x, intwa, Melder_offsetof (ooSTRUCT, x), sizeof (int), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  63. #undef oo_INTEGER_VECTOR_FROM
  64. #define oo_INTEGER_VECTOR_FROM(x,min,max) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  65. #undef oo_UBYTE_VECTOR_FROM
  66. #define oo_UBYTE_VECTOR_FROM(x,min,max) { U"" #x, ubytewa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned char), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  67. #undef oo_UINT_VECTOR_FROM
  68. #define oo_UINT_VECTOR_FROM(x,min,max) { U"" #x, uintwa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned int), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  69. #undef oo_UINTEGER_VECTOR_FROM
  70. #define oo_UINTEGER_VECTOR_FROM(x,min,max) { U"" #x, uintegerwa, Melder_offsetof (ooSTRUCT, x), sizeof (uinteger), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  71. #undef oo_FLOAT_VECTOR_FROM
  72. #define oo_FLOAT_VECTOR_FROM(x,min,max) { U"" #x, floatwa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  73. #undef oo_DOUBLE_VECTOR_FROM
  74. #define oo_DOUBLE_VECTOR_FROM(x,min,max) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  75. #undef oo_COMPLEX_VECTOR_FROM
  76. #define oo_COMPLEX_VECTOR_FROM(x,min,max) { U"" #x, complexwa, Melder_offsetof (ooSTRUCT, x), sizeof (dcomplex), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  77. #undef oo_BYTE_MATRIX_FROM
  78. #define oo_BYTE_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, bytewa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  79. #undef oo_INT_MATRIX_FROM
  80. #define oo_INT_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, intwa, Melder_offsetof (ooSTRUCT, x), sizeof (int), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  81. #undef oo_INTEGER_MATRIX_FROM
  82. #define oo_INTEGER_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  83. #undef oo_UBYTE_MATRIX_FROM
  84. #define oo_UBYTE_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, ubytewa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned char), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  85. #undef oo_UINT_MATRIX_FROM
  86. #define oo_UINT_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, uintwa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned int), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  87. #undef oo_UINTEGER_MATRIX_FROM
  88. #define oo_UINTEGER_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, uintegerwa, Melder_offsetof (ooSTRUCT, x), sizeof (uinteger), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  89. #undef oo_FLOAT_MATRIX_FROM
  90. #define oo_FLOAT_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, floatwa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  91. #undef oo_DOUBLE_MATRIX_FROM
  92. #define oo_DOUBLE_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  93. #undef oo_COMPLEX_MATRIX_FROM
  94. #define oo_COMPLEX_MATRIX_FROM(x,r1,r2,c1,c2) { U"" #x, complexwa, Melder_offsetof (ooSTRUCT, x), sizeof (dcomplex), nullptr, nullptr, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  95. #undef oo_BYTE_VECTOR
  96. #define oo_BYTE_VECTOR(x,n) { U"" #x, bytewa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  97. #undef oo_INT_VECTOR
  98. #define oo_INT_VECTOR(x,n) { U"" #x, intwa, Melder_offsetof (ooSTRUCT, x), sizeof (int), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  99. #undef oo_INTEGER_VECTOR
  100. #define oo_INTEGER_VECTOR(x,n) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  101. #undef oo_UBYTE_VECTOR
  102. #define oo_UBYTE_VECTOR(x,n) { U"" #x, ubytewa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned char), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  103. #undef oo_UINT_VECTOR
  104. #define oo_UINT_VECTOR(x,n) { U"" #x, uintwa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned int), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  105. #undef oo_UINTEGER_VECTOR
  106. #define oo_UINTEGER_VECTOR(x,n) { U"" #x, uintegerwa, Melder_offsetof (ooSTRUCT, x), sizeof (uinteger), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  107. #undef oo_FLOAT_VECTOR
  108. #define oo_FLOAT_VECTOR(x,n) { U"" #x, floatwa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  109. #undef oo_DOUBLE_VECTOR
  110. #define oo_DOUBLE_VECTOR(x,n) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  111. #undef oo_COMPLEX_VECTOR
  112. #define oo_COMPLEX_VECTOR(x,n) { U"" #x, complexwa, Melder_offsetof (ooSTRUCT, x), sizeof (dcomplex), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  113. #undef oo_VEC
  114. #define oo_VEC(x,n) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  115. #undef oo_INTVEC
  116. #define oo_INTVEC(x,n) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  117. #undef oo_INTVEC16
  118. #define oo_INTVEC16(x,n) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  119. #undef oo_BYTE_MATRIX
  120. #define oo_BYTE_MATRIX(x,nrow,ncol) { U"" #x, bytewa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  121. #undef oo_INT_MATRIX
  122. #define oo_INT_MATRIX(x,nrow,ncol) { U"" #x, intwa, Melder_offsetof (ooSTRUCT, x), sizeof (int), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  123. #undef oo_INTEGER_MATRIX
  124. #define oo_INTEGER_MATRIX(x,nrow,ncol) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  125. #undef oo_UBYTE_MATRIX
  126. #define oo_UBYTE_MATRIX(x,nrow,ncol) { U"" #x, ubytewa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned char), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  127. #undef oo_UINT_MATRIX
  128. #define oo_UINT_MATRIX(x,nrow,ncol) { U"" #x, uintwa, Melder_offsetof (ooSTRUCT, x), sizeof (unsigned int), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  129. #undef oo_UINTEGER_MATRIX
  130. #define oo_UINTEGER_MATRIX(x,nrow,ncol) { U"" #x, uintegerwa, Melder_offsetof (ooSTRUCT, x), sizeof (uinteger), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  131. #undef oo_FLOAT_MATRIX
  132. #define oo_FLOAT_MATRIX(x,nrow,ncol) { U"" #x, floatwa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  133. #undef oo_DOUBLE_MATRIX
  134. #define oo_DOUBLE_MATRIX(x,nrow,ncol) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  135. #undef oo_COMPLEX_MATRIX
  136. #define oo_COMPLEX_MATRIX(x,nrow,ncol) { U"" #x, complexwa, Melder_offsetof (ooSTRUCT, x), sizeof (dcomplex), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  137. #undef oo_MAT
  138. #define oo_MAT(x,nrow,ncol) { U"" #x, doublewa, Melder_offsetof (ooSTRUCT, x), sizeof (double), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  139. #undef oo_INTMAT
  140. #define oo_INTMAT(x,nrow,ncol) { U"" #x, integerwa, Melder_offsetof (ooSTRUCT, x), sizeof (integer), nullptr, nullptr, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  141. #undef oo_ENUM
  142. #define oo_ENUM(Type,x) { U"" #x, enumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), U"" #Type, (void *) Type##_getText, 0, nullptr, nullptr, nullptr, nullptr },
  143. #undef oo_LENUM
  144. #define oo_LENUM(Type,x) { U"" #x, lenumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed short), U"" #Type, (void *) Type##_getText, 0, nullptr, nullptr, nullptr, nullptr },
  145. #undef oo_ENUM_SET
  146. #define oo_ENUM_SET(Type,x,setType) { U"" #x, enumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), U"" #Type, (void *) Type##_getText, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  147. #undef oo_LENUM_SET
  148. #define oo_LENUM_SET(Type,x,setType) { U"" #x, lenumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed short), U"" #Type, (void *) Type##_getText, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  149. #undef oo_ENUM_VECTOR_FROM
  150. #define oo_ENUM_VECTOR_FROM(Type,x,min,max) { U"" #x, enumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), U"" #Type, (void *) Type##_getText, 1, U"" #min, U"" #max, nullptr, nullptr },
  151. #undef oo_LENUM_VECTOR_FROM
  152. #define oo_LENUM_VECTOR_FROM(Type,x,min,max) { U"" #x, lenumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed short), U"" #Type, (void *) Type##_getText, 1, U"" #min, U"" #max, nullptr, nullptr },
  153. #undef oo_ENUM_VECTOR
  154. #define oo_ENUM_VECTOR(Type,x,n) { U"" #x, enumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed char), U"" #Type, (void *) Type##_getText, 1, nullptr, U"" #n, nullptr, nullptr },
  155. #undef oo_LENUM_VECTOR
  156. #define oo_LENUM_VECTOR(Type,x,n) { U"" #x, lenumwa, Melder_offsetof (ooSTRUCT, x), sizeof (signed short), U"" #Type, (void *) Type##_getText, 1, nullptr, U"" #n, nullptr, nullptr },
  157. #undef oo_BOOLEAN
  158. #define oo_BOOLEAN(x) { U"" #x, booleanwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  159. #undef oo_BOOLEAN_SET
  160. #define oo_BOOLEAN_SET(x,setType) { U"" #x, booleanwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  161. #undef oo_BOOLEAN_VECTOR_FROM
  162. #define oo_BOOLEAN_VECTOR_FROM(x,min,max) { U"" #x, booleanwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  163. #undef oo_BOOLEAN_VECTOR
  164. #define oo_BOOLEAN_VECTOR(x,n) { U"" #x, booleanwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  165. #undef oo_QUESTION
  166. #define oo_QUESTION(x) { U"" #x, questionwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  167. #undef oo_QUESTION_SET
  168. #define oo_QUESTION_SET(x,setType) { U"" #x, questionwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  169. #undef oo_QUESTION_VECTOR_FROM
  170. #define oo_QUESTION_VECTOR_FROM(x,min,max) { U"" #x, questionwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 1, U"" #min, U"" #max, nullptr, nullptr },
  171. #undef oo_QUESTION_VECTOR
  172. #define oo_QUESTION_VECTOR(x,n) { U"" #x, questionwa, Melder_offsetof (ooSTRUCT, x), sizeof (bool), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  173. #undef oo_STRING
  174. #define oo_STRING(x) { U"" #x, stringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  175. #undef oo_LSTRING
  176. #define oo_LSTRING(x) { U"" #x, lstringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), nullptr, nullptr, 0, nullptr, nullptr, nullptr, nullptr },
  177. #undef oo_STRING_SET
  178. #define oo_STRING_SET(x,setType) { U"" #x, stringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  179. #undef oo_LSTRING_SET
  180. #define oo_LSTRING_SET(x,setType) { U"" #x, lstringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), nullptr, nullptr, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  181. #undef oo_STRING_VECTOR
  182. #define oo_STRING_VECTOR(x,n) { U"" #x, stringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  183. #undef oo_LSTRING_VECTOR
  184. #define oo_LSTRING_VECTOR(x,n) { U"" #x, lstringwa, Melder_offsetof (ooSTRUCT, x), sizeof (char32 *), nullptr, nullptr, 1, nullptr, U"" #n, nullptr, nullptr },
  185. #define oo_STRUCT(Type,x) { U"" #x, structwa, Melder_offsetof (ooSTRUCT, x), sizeof (struct struct##Type), U"" #Type, & struct##Type :: s_description, 0, nullptr, nullptr, nullptr, nullptr },
  186. #define oo_STRUCT_SET(Type,x,setType) { U"" #x, structwa, Melder_offsetof (ooSTRUCT, x), sizeof (struct struct##Type), U"" #Type, & struct##Type :: s_description, 3, (conststring32) setType##_getText, (conststring32) setType##_getValue, nullptr, nullptr },
  187. #define oo_STRUCT_VECTOR_FROM(Type,x,min,max) { U"" #x, structwa, Melder_offsetof (ooSTRUCT, x), sizeof (struct struct##Type), U"" #Type, & struct##Type :: s_description, 1, U"" #min, U"" #max, nullptr, nullptr },
  188. #undef oo_STRUCT_VECTOR
  189. #define oo_STRUCT_VECTOR(Type,x,n) { U"" #x, structwa, Melder_offsetof (ooSTRUCT, x), sizeof (struct struct##Type), U"" #Type, & struct##Type :: s_description, 1, nullptr, U"" #n, nullptr, nullptr },
  190. #define oo_STRUCT_MATRIX_FROM(Type,x,r1,r2,c1,c2) { U"" #x, structwa, Melder_offsetof (ooSTRUCT, x), sizeof (struct struct##Type), U"" #Type, & struct##Type :: s_description, 2, U"" #r1, U"" #r2, U"" #c1, U"" #c2 },
  191. #undef oo_STRUCT_MATRIX
  192. #define oo_STRUCT_MATRIX(Type,x,nrow,ncol) { U"" #x, structwa, Melder_offsetof (ooSTRUCT, x), sizeof (struct struct##Type), U"" #Type, & struct##Type :: s_description, 2, nullptr, U"" #nrow, nullptr, U"" #ncol },
  193. #define oo_OBJECT(Type,version,x) { U"" #x, objectwa, Melder_offsetof (ooSTRUCT, x), sizeof (Type), U"" #Type, & theClassInfo_##Type, 0, nullptr, nullptr, nullptr, nullptr },
  194. #define oo_COLLECTION_OF(Type,x,ItemType,version) { U"" #x, collectionofwa, Melder_offsetof (ooSTRUCT, x), sizeof (class struct##ItemType), U"" #Type, & theClassInfo_Collection, 0, (conststring32) & theClassInfo_##ItemType, nullptr, nullptr, nullptr },
  195. #define oo_COLLECTION(Type,x,ItemType,version) { U"" #x, collectionwa, Melder_offsetof (ooSTRUCT, x), sizeof (class struct##ItemType), U"" #Type, & theClassInfo_##Type, 0, (conststring32) & theClassInfo_##ItemType, nullptr, nullptr, nullptr },
  196. #define oo_FILE(x)
  197. #define oo_DIR(x)
  198. #define oo_DEFINE_STRUCT(Type) \
  199. static struct structData_Description the##Type##_description [] = {
  200. #define oo_END_STRUCT(Type) \
  201. { } \
  202. }; \
  203. Data_Description struct##Type :: s_description = & the##Type##_description [0];
  204. #define oo_DEFINE_CLASS(Class,Parent) \
  205. static struct structData_Description the##Class##_description [] = { \
  206. { U"" #Class, inheritwa, 0, sizeof (class struct##Class), U"" #Class, & theClassInfo_##Parent, 0, nullptr, nullptr, nullptr, nullptr },
  207. #define oo_END_CLASS(Class) \
  208. { } \
  209. }; \
  210. Data_Description struct##Class :: s_description = & the##Class##_description [0];
  211. #define oo_FROM(from)
  212. #define oo_ENDFROM
  213. #define oo_DECLARING 0
  214. #define oo_DESTROYING 0
  215. #define oo_COPYING 0
  216. #define oo_COMPARING 0
  217. #define oo_VALIDATING_ENCODING 0
  218. #define oo_READING 0
  219. #define oo_READING_TEXT 0
  220. #define oo_READING_BINARY 0
  221. #define oo_WRITING 0
  222. #define oo_WRITING_TEXT 0
  223. #define oo_WRITING_BINARY 0
  224. #define oo_DESCRIBING 1
  225. /* End of file oo_DESCRIPTION.h */