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

midi

开发平台:

C/C++

  1. /* FluidSynth - A Software Synthesizer
  2.  *
  3.  * Copyright (C) 2003  Peter Hanappe and others.
  4.  *
  5.  * This library is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU Library General Public License
  7.  * as published by the Free Software Foundation; either version 2 of
  8.  * the License, or (at your option) any later version.
  9.  *
  10.  * This library 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.  See the GNU
  13.  * Library General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU Library General Public
  16.  * License along with this library; if not, write to the Free
  17.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  18.  * 02111-1307, USA
  19.  */
  20. #ifndef _FLUIDSYNTH_PRIV_H
  21. #define _FLUIDSYNTH_PRIV_H
  22. #include <glib.h>
  23. #if HAVE_CONFIG_H
  24. #include "config.h"
  25. #endif
  26. #if defined(__POWERPC__) && !(defined(__APPLE__) && defined(__MACH__))
  27. #include "config_maxmsp43.h"
  28. #endif
  29. #if defined(WIN32) && !defined(MINGW32)
  30. #include "config_win32.h"
  31. #endif
  32. #if HAVE_STRING_H
  33. #include <string.h>
  34. #endif
  35. #if HAVE_STDLIB_H
  36. #include <stdlib.h>
  37. #endif
  38. #if HAVE_STDIO_H
  39. #include <stdio.h>
  40. #endif
  41. #if HAVE_MATH_H
  42. #include <math.h>
  43. #endif
  44. #if HAVE_ERRNO_H
  45. #include <errno.h>
  46. #endif
  47. #if HAVE_STDARG_H
  48. #include <stdarg.h>
  49. #endif
  50. #if HAVE_UNISTD_H
  51. #include <unistd.h>
  52. #endif
  53. #if HAVE_FCNTL_H
  54. #include <fcntl.h>
  55. #endif
  56. #if HAVE_SYS_MMAN_H
  57. #include <sys/mman.h>
  58. #endif
  59. #if HAVE_SYS_TYPES_H
  60. #include <sys/types.h>
  61. #endif
  62. #if HAVE_SYS_STAT_H
  63. #include <sys/stat.h>
  64. #endif
  65. #if HAVE_SYS_TIME_H
  66. #include <sys/time.h>
  67. #endif
  68. #if HAVE_SYS_SOCKET_H
  69. #include <sys/socket.h>
  70. #endif
  71. #if HAVE_NETINET_IN_H
  72. #include <netinet/in.h>
  73. #endif
  74. #if HAVE_NETINET_TCP_H
  75. #include <netinet/tcp.h>
  76. #endif
  77. #if HAVE_ARPA_INET_H
  78. #include <arpa/inet.h>
  79. #endif
  80. #if HAVE_LIMITS_H
  81. #include <limits.h>
  82. #endif
  83. #if HAVE_PTHREAD_H
  84. #include <pthread.h>
  85. #endif
  86. #if HAVE_IO_H
  87. #include <io.h>
  88. #endif
  89. #if HAVE_WINDOWS_H
  90. #include <winsock2.h>
  91. #include <ws2tcpip.h>
  92. #include <windows.h>
  93. #endif
  94. /* MinGW32 special defines */
  95. #ifdef MINGW32
  96. #include <stdint.h>
  97. #define snprintf _snprintf
  98. #define vsnprintf _vsnprintf
  99. #define DSOUND_SUPPORT 1
  100. #define WINMIDI_SUPPORT 1
  101. #define STDIN_FILENO 0
  102. #define STDOUT_FILENO 1
  103. #define STDERR_FILENO 2
  104. #endif
  105. /* Darwin special defines (taken from config_macosx.h) */
  106. #ifdef DARWIN
  107. #define MACINTOSH
  108. #define __Types__
  109. #define WITHOUT_SERVER 1
  110. #endif
  111. #include "fluidsynth.h"
  112. /***************************************************************
  113.  *
  114.  *         BASIC TYPES
  115.  */
  116. #if defined(WITH_FLOAT)
  117. typedef float fluid_real_t;
  118. #else
  119. typedef double fluid_real_t;
  120. #endif
  121. #if defined(WIN32)
  122. typedef SOCKET fluid_socket_t;
  123. #else
  124. typedef int fluid_socket_t;
  125. #define INVALID_SOCKET -1
  126. #endif
  127. /** Integer types  */
  128. typedef gint8              sint8;
  129. typedef guint8             uint8;
  130. typedef gint16             sint16;
  131. typedef guint16            uint16;
  132. typedef gint32             sint32;
  133. typedef guint32            uint32;
  134. typedef gint64             sint64;
  135. typedef guint64            uint64;
  136. /***************************************************************
  137.  *
  138.  *       FORWARD DECLARATIONS
  139.  */
  140. typedef struct _fluid_env_data_t fluid_env_data_t;
  141. typedef struct _fluid_adriver_definition_t fluid_adriver_definition_t;
  142. typedef struct _fluid_channel_t fluid_channel_t;
  143. typedef struct _fluid_tuning_t fluid_tuning_t;
  144. typedef struct _fluid_hashtable_t  fluid_hashtable_t;
  145. typedef struct _fluid_client_t fluid_client_t;
  146. typedef struct _fluid_server_socket_t fluid_server_socket_t;
  147. typedef struct _fluid_sample_timer_t fluid_sample_timer_t;
  148. /***************************************************************
  149.  *
  150.  *                      CONSTANTS
  151.  */
  152. #define FLUID_BUFSIZE                64         /**< FluidSynth internal buffer size (in samples) */
  153. #define FLUID_MAX_EVENTS_PER_BUFSIZE 1024       /**< Maximum queued MIDI events per #FLUID_BUFSIZE */
  154. #define FLUID_MAX_RETURN_EVENTS      1024       /**< Maximum queued synthesis thread return events */
  155. #define FLUID_MAX_EVENT_QUEUES       16         /**< Maximum number of unique threads queuing events */
  156. #define FLUID_DEFAULT_AUDIO_RT_PRIO  60         /**< Default setting for audio.realtime-prio */
  157. #define FLUID_DEFAULT_MIDI_RT_PRIO   50         /**< Default setting for midi.realtime-prio */
  158. #ifndef PI
  159. #define PI                          3.141592654
  160. #endif
  161. /***************************************************************
  162.  *
  163.  *                      SYSTEM INTERFACE
  164.  */
  165. typedef FILE*  fluid_file;
  166. #define FLUID_MALLOC(_n)             malloc(_n)
  167. #define FLUID_REALLOC(_p,_n)         realloc(_p,_n)
  168. #define FLUID_NEW(_t)                (_t*)malloc(sizeof(_t))
  169. #define FLUID_ARRAY(_t,_n)           (_t*)malloc((_n)*sizeof(_t))
  170. #define FLUID_FREE(_p)               free(_p)
  171. #define FLUID_FOPEN(_f,_m)           fopen(_f,_m)
  172. #define FLUID_FCLOSE(_f)             fclose(_f)
  173. #define FLUID_FREAD(_p,_s,_n,_f)     fread(_p,_s,_n,_f)
  174. #define FLUID_FSEEK(_f,_n,_set)      fseek(_f,_n,_set)
  175. #define FLUID_MEMCPY(_dst,_src,_n)   memcpy(_dst,_src,_n)
  176. #define FLUID_MEMSET(_s,_c,_n)       memset(_s,_c,_n)
  177. #define FLUID_STRLEN(_s)             strlen(_s)
  178. #define FLUID_STRCMP(_s,_t)          strcmp(_s,_t)
  179. #define FLUID_STRNCMP(_s,_t,_n)      strncmp(_s,_t,_n)
  180. #define FLUID_STRCPY(_dst,_src)      strcpy(_dst,_src)
  181. #define FLUID_STRNCPY(_dst,_src,_n)  strncpy(_dst,_src,_n)
  182. #define FLUID_STRCHR(_s,_c)          strchr(_s,_c)
  183. #define FLUID_STRRCHR(_s,_c)         strrchr(_s,_c)
  184. #ifdef strdup
  185. #define FLUID_STRDUP(s)              strdup(s)
  186. #else
  187. #define FLUID_STRDUP(s)      FLUID_STRCPY(FLUID_MALLOC(FLUID_STRLEN(s) + 1), s)
  188. #endif
  189. #define FLUID_SPRINTF                sprintf
  190. #define FLUID_FPRINTF                fprintf
  191. #define fluid_clip(_val, _min, _max) 
  192. { (_val) = ((_val) < (_min))? (_min) : (((_val) > (_max))? (_max) : (_val)); }
  193. #if WITH_FTS
  194. #define FLUID_PRINTF                 post
  195. #define FLUID_FLUSH()
  196. #else
  197. #define FLUID_PRINTF                 printf
  198. #define FLUID_FLUSH()                fflush(stdout)
  199. #endif
  200. #define FLUID_LOG                    fluid_log
  201. #ifndef M_PI
  202. #define M_PI 3.1415926535897932384626433832795
  203. #endif
  204. #define FLUID_ASSERT(a,b)
  205. #define FLUID_ASSERT_P(a,b)
  206. char* fluid_error(void);
  207. /* Internationalization */
  208. #define _(s) s
  209. #endif /* _FLUIDSYNTH_PRIV_H */