Path: blob/master/libs/fluidsynth/include/fluidsynth.h
4389 views
/* FluidSynth - A Software Synthesizer1*2* Copyright (C) 2003 Peter Hanappe and others.3*4* This library is free software; you can redistribute it and/or5* modify it under the terms of the GNU Lesser General Public License6* as published by the Free Software Foundation; either version 2.1 of7* the License, or (at your option) any later version.8*9* This library is distributed in the hope that it will be useful, but10* WITHOUT ANY WARRANTY; without even the implied warranty of11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU12* Lesser General Public License for more details.13*14* You should have received a copy of the GNU Lesser General Public15* License along with this library; if not, write to the Free16* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA17* 02110-1301, USA18*/1920#ifndef _FLUIDSYNTH_H21#define _FLUIDSYNTH_H2223#include <stdio.h>2425#ifdef __cplusplus26extern "C" {27#endif2829#define BUILD_SHARED_LIBS 03031#if (BUILD_SHARED_LIBS == 0)32#define FLUIDSYNTH_API // building static lib? no visibility control then33#elif defined(WIN32)34#if defined(FLUIDSYNTH_NOT_A_DLL)35#define FLUIDSYNTH_API36#elif defined(FLUIDSYNTH_DLL_EXPORTS)37#define FLUIDSYNTH_API __declspec(dllexport)38#else39#define FLUIDSYNTH_API __declspec(dllimport)40#endif4142#elif defined(MACOS9)43#define FLUIDSYNTH_API __declspec(export)4445#elif defined(__OS2__)46#define FLUIDSYNTH_API __declspec(dllexport)4748#elif defined(__GNUC__)49#define FLUIDSYNTH_API __attribute__ ((visibility ("default")))5051#else52#define FLUIDSYNTH_API5354#endif5556#if 1 /* Wine-specific code */57# define FLUID_DEPRECATED58#else /* Wine-specific code */59#if defined(__GNUC__) || defined(__clang__)60# define FLUID_DEPRECATED __attribute__((deprecated))61#elif defined(_MSC_VER) && _MSC_VER > 120062# define FLUID_DEPRECATED __declspec(deprecated)63#else64# define FLUID_DEPRECATED65#endif66#endif /* Wine-specific code */676869/**70* @file fluidsynth.h71* @brief FluidSynth is a real-time synthesizer designed for SoundFont(R) files.72*73* This is the header of the fluidsynth library and contains the74* synthesizer's public API.75*76* Depending on how you want to use or extend the synthesizer you77* will need different API functions. You probably do not need all78* of them. Here is what you might want to do:79*80* - Embedded synthesizer: create a new synthesizer and send MIDI81* events to it. The sound goes directly to the audio output of82* your system.83*84* - Plugin synthesizer: create a synthesizer and send MIDI events85* but pull the audio back into your application.86*87* - SoundFont plugin: create a new type of "SoundFont" and allow88* the synthesizer to load your type of SoundFonts.89*90* - MIDI input: Create a MIDI handler to read the MIDI input on your91* machine and send the MIDI events directly to the synthesizer.92*93* - MIDI files: Open MIDI files and send the MIDI events to the94* synthesizer.95*96* - Command lines: You can send textual commands to the synthesizer.97*98* SoundFont(R) is a registered trademark of E-mu Systems, Inc.99*/100101#include "fluidsynth/types.h"102#include "fluidsynth/settings.h"103#include "fluidsynth/synth.h"104#include "fluidsynth/shell.h"105#include "fluidsynth/sfont.h"106#include "fluidsynth/audio.h"107#include "fluidsynth/event.h"108#include "fluidsynth/midi.h"109#include "fluidsynth/seq.h"110#include "fluidsynth/seqbind.h"111#include "fluidsynth/log.h"112#include "fluidsynth/misc.h"113#include "fluidsynth/mod.h"114#include "fluidsynth/gen.h"115#include "fluidsynth/voice.h"116#include "fluidsynth/version.h"117#include "fluidsynth/ladspa.h"118119120#ifdef __cplusplus121}122#endif123124#endif /* _FLUIDSYNTH_H */125126127