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 Lesser General Public License
7  * as published by the Free Software Foundation; either version 2.1 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  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free
17  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18  * 02110-1301, USA
19  */
20 
21 #ifndef _FLUID_AUDRIVER_H
22 #define _FLUID_AUDRIVER_H
23 
24 #include "fluidsynth_priv.h"
25 
26 /*
27  * fluid_audio_driver_t
28  */
29 
30 typedef struct _fluid_audriver_definition_t fluid_audriver_definition_t;
31 
32 struct _fluid_audio_driver_t
33 {
34     const fluid_audriver_definition_t *define;
35 };
36 
37 void fluid_audio_driver_settings(fluid_settings_t *settings);
38 
39 /* Defined in fluid_filerenderer.c */
40 void fluid_file_renderer_settings(fluid_settings_t *settings);
41 
42 #if PULSE_SUPPORT
43 fluid_audio_driver_t *new_fluid_pulse_audio_driver(fluid_settings_t *settings,
44         fluid_synth_t *synth);
45 fluid_audio_driver_t *new_fluid_pulse_audio_driver2(fluid_settings_t *settings,
46         fluid_audio_func_t func, void *data);
47 void delete_fluid_pulse_audio_driver(fluid_audio_driver_t *p);
48 void fluid_pulse_audio_driver_settings(fluid_settings_t *settings);
49 #endif
50 
51 #if ALSA_SUPPORT
52 fluid_audio_driver_t *new_fluid_alsa_audio_driver(fluid_settings_t *settings,
53         fluid_synth_t *synth);
54 fluid_audio_driver_t *new_fluid_alsa_audio_driver2(fluid_settings_t *settings,
55         fluid_audio_func_t func, void *data);
56 void delete_fluid_alsa_audio_driver(fluid_audio_driver_t *p);
57 void fluid_alsa_audio_driver_settings(fluid_settings_t *settings);
58 #endif
59 
60 #if OSS_SUPPORT
61 fluid_audio_driver_t *new_fluid_oss_audio_driver(fluid_settings_t *settings,
62         fluid_synth_t *synth);
63 fluid_audio_driver_t *new_fluid_oss_audio_driver2(fluid_settings_t *settings,
64         fluid_audio_func_t func, void *data);
65 void delete_fluid_oss_audio_driver(fluid_audio_driver_t *p);
66 void fluid_oss_audio_driver_settings(fluid_settings_t *settings);
67 #endif
68 
69 #if OPENSLES_SUPPORT
70 fluid_audio_driver_t*
71 new_fluid_opensles_audio_driver(fluid_settings_t* settings,
72 		fluid_synth_t* synth);
73 void delete_fluid_opensles_audio_driver(fluid_audio_driver_t* p);
74 void fluid_opensles_audio_driver_settings(fluid_settings_t* settings);
75 #endif
76 
77 #if OBOE_SUPPORT
78 fluid_audio_driver_t*
79 new_fluid_oboe_audio_driver(fluid_settings_t* settings,
80 		fluid_synth_t* synth);
81 void delete_fluid_oboe_audio_driver(fluid_audio_driver_t* p);
82 void fluid_oboe_audio_driver_settings(fluid_settings_t* settings);
83 #endif
84 
85 #if COREAUDIO_SUPPORT
86 fluid_audio_driver_t *new_fluid_core_audio_driver(fluid_settings_t *settings,
87         fluid_synth_t *synth);
88 fluid_audio_driver_t *new_fluid_core_audio_driver2(fluid_settings_t *settings,
89         fluid_audio_func_t func,
90         void *data);
91 void delete_fluid_core_audio_driver(fluid_audio_driver_t *p);
92 void fluid_core_audio_driver_settings(fluid_settings_t *settings);
93 #endif
94 
95 #if DSOUND_SUPPORT
96 fluid_audio_driver_t *new_fluid_dsound_audio_driver(fluid_settings_t *settings,
97         fluid_synth_t *synth);
98 fluid_audio_driver_t *new_fluid_dsound_audio_driver2(fluid_settings_t *settings,
99         fluid_audio_func_t func,
100         void *data);
101 void delete_fluid_dsound_audio_driver(fluid_audio_driver_t *p);
102 void fluid_dsound_audio_driver_settings(fluid_settings_t *settings);
103 #endif
104 
105 #if WASAPI_SUPPORT
106 fluid_audio_driver_t *new_fluid_wasapi_audio_driver(fluid_settings_t *settings,
107         fluid_synth_t *synth);
108 fluid_audio_driver_t *new_fluid_wasapi_audio_driver2(fluid_settings_t *settings,
109         fluid_audio_func_t func,
110         void *data);
111 void delete_fluid_wasapi_audio_driver(fluid_audio_driver_t *p);
112 void fluid_wasapi_audio_driver_settings(fluid_settings_t *settings);
113 #endif
114 
115 #if WAVEOUT_SUPPORT
116 fluid_audio_driver_t *new_fluid_waveout_audio_driver(fluid_settings_t *settings,
117         fluid_synth_t *synth);
118 fluid_audio_driver_t *new_fluid_waveout_audio_driver2(fluid_settings_t *settings,
119         fluid_audio_func_t func,
120         void *data);
121 void delete_fluid_waveout_audio_driver(fluid_audio_driver_t *p);
122 void fluid_waveout_audio_driver_settings(fluid_settings_t *settings);
123 #endif
124 
125 #if PORTAUDIO_SUPPORT
126 void fluid_portaudio_driver_settings(fluid_settings_t *settings);
127 fluid_audio_driver_t *new_fluid_portaudio_driver(fluid_settings_t *settings,
128         fluid_synth_t *synth);
129 void delete_fluid_portaudio_driver(fluid_audio_driver_t *p);
130 #endif
131 
132 #if SNDIO_SUPPORT
133 fluid_audio_driver_t *new_fluid_sndio_audio_driver(fluid_settings_t *settings, fluid_synth_t *synth);
134 fluid_audio_driver_t *new_fluid_sndio_audio_driver2(fluid_settings_t *settings,
135         fluid_audio_func_t func, void *data);
136 void delete_fluid_sndio_audio_driver(fluid_audio_driver_t *p);
137 void fluid_sndio_audio_driver_settings(fluid_settings_t *settings);
138 #endif
139 
140 #if JACK_SUPPORT
141 fluid_audio_driver_t *new_fluid_jack_audio_driver(fluid_settings_t *settings, fluid_synth_t *synth);
142 fluid_audio_driver_t *new_fluid_jack_audio_driver2(fluid_settings_t *settings,
143         fluid_audio_func_t func, void *data);
144 void delete_fluid_jack_audio_driver(fluid_audio_driver_t *p);
145 void fluid_jack_audio_driver_settings(fluid_settings_t *settings);
146 int fluid_jack_obtain_synth(fluid_settings_t *settings, fluid_synth_t **synth);
147 #endif
148 
149 #if SNDMAN_SUPPORT
150 fluid_audio_driver_t *new_fluid_sndmgr_audio_driver(fluid_settings_t *settings,
151         fluid_synth_t *synth);
152 fluid_audio_driver_t *new_fluid_sndmgr_audio_driver2(fluid_settings_t *settings,
153         fluid_audio_func_t func,
154         void *data);
155 void delete_fluid_sndmgr_audio_driver(fluid_audio_driver_t *p);
156 #endif
157 
158 #if DART_SUPPORT
159 fluid_audio_driver_t *new_fluid_dart_audio_driver(fluid_settings_t *settings,
160         fluid_synth_t *synth);
161 void delete_fluid_dart_audio_driver(fluid_audio_driver_t *p);
162 void fluid_dart_audio_driver_settings(fluid_settings_t *settings);
163 #endif
164 
165 #if SDL2_SUPPORT
166 fluid_audio_driver_t *new_fluid_sdl2_audio_driver(fluid_settings_t *settings,
167         fluid_synth_t *synth);
168 void delete_fluid_sdl2_audio_driver(fluid_audio_driver_t *p);
169 void fluid_sdl2_audio_driver_settings(fluid_settings_t *settings);
170 #endif
171 
172 #if AUFILE_SUPPORT
173 fluid_audio_driver_t *new_fluid_file_audio_driver(fluid_settings_t *settings,
174         fluid_synth_t *synth);
175 void delete_fluid_file_audio_driver(fluid_audio_driver_t *p);
176 #endif
177 
178 
179 
180 #endif  /* _FLUID_AUDRIVER_H */
181