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 _FLUIDSYNTH_H
22#define _FLUIDSYNTH_H
23
24#include <stdio.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#cmakedefine01 BUILD_SHARED_LIBS
31
32#if (BUILD_SHARED_LIBS == 0)
33    #define FLUIDSYNTH_API // building static lib? no visibility control then
34#elif defined(WIN32)
35    #if defined(FLUIDSYNTH_NOT_A_DLL)
36        #define FLUIDSYNTH_API
37    #elif defined(FLUIDSYNTH_DLL_EXPORTS)
38        #define FLUIDSYNTH_API __declspec(dllexport)
39    #else
40        #define FLUIDSYNTH_API __declspec(dllimport)
41    #endif
42
43#elif defined(MACOS9)
44#define FLUIDSYNTH_API __declspec(export)
45
46#elif defined(__OS2__)
47#define FLUIDSYNTH_API __declspec(dllexport)
48
49#elif defined(__GNUC__)
50#define FLUIDSYNTH_API __attribute__ ((visibility ("default")))
51
52#else
53#define FLUIDSYNTH_API
54
55#endif
56
57#if defined(__GNUC__) || defined(__clang__)
58#    define FLUID_DEPRECATED __attribute__((deprecated))
59#elif defined(_MSC_VER) && _MSC_VER > 1200
60#    define FLUID_DEPRECATED __declspec(deprecated)
61#else
62#    define FLUID_DEPRECATED
63#endif
64
65
66/**
67 * @file fluidsynth.h
68 * @brief FluidSynth is a real-time synthesizer designed for SoundFont(R) files.
69 *
70 * This is the header of the fluidsynth library and contains the
71 * synthesizer's public API.
72 *
73 * Depending on how you want to use or extend the synthesizer you
74 * will need different API functions. You probably do not need all
75 * of them. Here is what you might want to do:
76 *
77 * - Embedded synthesizer: create a new synthesizer and send MIDI
78 *   events to it. The sound goes directly to the audio output of
79 *   your system.
80 *
81 * - Plugin synthesizer: create a synthesizer and send MIDI events
82 *   but pull the audio back into your application.
83 *
84 * - SoundFont plugin: create a new type of "SoundFont" and allow
85 *   the synthesizer to load your type of SoundFonts.
86 *
87 * - MIDI input: Create a MIDI handler to read the MIDI input on your
88 *   machine and send the MIDI events directly to the synthesizer.
89 *
90 * - MIDI files: Open MIDI files and send the MIDI events to the
91 *   synthesizer.
92 *
93 * - Command lines: You can send textual commands to the synthesizer.
94 *
95 * SoundFont(R) is a registered trademark of E-mu Systems, Inc.
96 */
97
98#include "fluidsynth/types.h"
99#include "fluidsynth/settings.h"
100#include "fluidsynth/synth.h"
101#include "fluidsynth/shell.h"
102#include "fluidsynth/sfont.h"
103#include "fluidsynth/audio.h"
104#include "fluidsynth/event.h"
105#include "fluidsynth/midi.h"
106#include "fluidsynth/seq.h"
107#include "fluidsynth/seqbind.h"
108#include "fluidsynth/log.h"
109#include "fluidsynth/misc.h"
110#include "fluidsynth/mod.h"
111#include "fluidsynth/gen.h"
112#include "fluidsynth/voice.h"
113#include "fluidsynth/version.h"
114#include "fluidsynth/ladspa.h"
115
116
117#ifdef __cplusplus
118}
119#endif
120
121#endif /* _FLUIDSYNTH_H */
122