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