Path: blob/master/libs/fluidsynth/src/rvoice/fluid_rvoice_mixer.h
4396 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*/192021#ifndef _FLUID_RVOICE_MIXER_H22#define _FLUID_RVOICE_MIXER_H2324#include "fluidsynth_priv.h"25#include "fluid_rvoice.h"26#include "fluid_ladspa.h"2728typedef struct _fluid_rvoice_mixer_t fluid_rvoice_mixer_t;2930int fluid_rvoice_mixer_render(fluid_rvoice_mixer_t *mixer, int blockcount);31int fluid_rvoice_mixer_get_bufs(fluid_rvoice_mixer_t *mixer,32fluid_real_t **left, fluid_real_t **right);33int fluid_rvoice_mixer_get_fx_bufs(fluid_rvoice_mixer_t *mixer,34fluid_real_t **fx_left, fluid_real_t **fx_right);35int fluid_rvoice_mixer_get_bufcount(fluid_rvoice_mixer_t *mixer);36#if WITH_PROFILING37int fluid_rvoice_mixer_get_active_voices(fluid_rvoice_mixer_t *mixer);38#endif39fluid_rvoice_mixer_t *new_fluid_rvoice_mixer(int buf_count, int fx_buf_count, int fx_units,40fluid_real_t sample_rate_max, fluid_real_t sample_rate,41fluid_rvoice_eventhandler_t *, int, int);4243void delete_fluid_rvoice_mixer(fluid_rvoice_mixer_t *);4445void46fluid_rvoice_mixer_set_reverb_full(const fluid_rvoice_mixer_t *mixer,47int fx_group, int set, const double values[]);4849double50fluid_rvoice_mixer_reverb_get_param(const fluid_rvoice_mixer_t *mixer,51int fx_group, int param);52void53fluid_rvoice_mixer_set_chorus_full(const fluid_rvoice_mixer_t *mixer,54int fx_group, int set, const double values[]);55double56fluid_rvoice_mixer_chorus_get_param(const fluid_rvoice_mixer_t *mixer,57int fx_group, int param);585960DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_add_voice);61DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_set_samplerate);62DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_set_polyphony);6364/* @deprecated */65DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_set_chorus_enabled);66/* @deprecated */67DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_set_reverb_enabled);6869DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_reverb_enable);70DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_chorus_enable);7172DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_set_chorus_params);73DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_set_reverb_params);7475DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_reset_reverb);76DECLARE_FLUID_RVOICE_FUNCTION(fluid_rvoice_mixer_reset_chorus);77787980void fluid_rvoice_mixer_set_mix_fx(fluid_rvoice_mixer_t *mixer, int on);81#ifdef LADSPA82void fluid_rvoice_mixer_set_ladspa(fluid_rvoice_mixer_t *mixer,83fluid_ladspa_fx_t *ladspa_fx, int audio_groups);84#endif8586#endif878889