use a note tracker to resolve notes cut off during render by the end of the region
[ardour.git] / libs / fst / fst.h
1 /*
2  * Copyright (C) 2006-2018 Paul Davis <paul@linuxaudiosystems.com>
3  * Copyright (C) 2010-2011 Carl Hetherington <carl@carlh.net>
4  * Copyright (C) 2014 Robin Gareus <robin@gareus.org>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License along
17  * with this program; if not, write to the Free Software Foundation, Inc.,
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19  */
20
21 #ifndef __fst_fst_h__
22 #define __fst_fst_h__
23
24 #include <setjmp.h>
25 #include <signal.h>
26 #include <pthread.h>
27
28 #include "ardour/libardour_visibility.h"
29 #include "ardour/vst_types.h"
30 #include "ardour/vestige/vestige.h"
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 LIBARDOUR_API int        fst_init (void* possible_hmodule);
37 LIBARDOUR_API void       fst_exit (void);
38
39 LIBARDOUR_API VSTHandle* fst_load (const char*);
40 LIBARDOUR_API int        fst_unload (VSTHandle**);
41
42 LIBARDOUR_API VSTState * fst_instantiate (VSTHandle *, audioMasterCallback amc, void* userptr);
43 LIBARDOUR_API void       fst_close (VSTState *);
44
45 LIBARDOUR_API int  fst_run_editor (VSTState *, void* window_parent);
46 LIBARDOUR_API void fst_destroy_editor (VSTState *);
47 LIBARDOUR_API void fst_move_window_into_view (VSTState *);
48
49 LIBARDOUR_API void fst_event_loop_remove_plugin (VSTState* fst);
50 LIBARDOUR_API void fst_start_threading(void);
51 LIBARDOUR_API void fst_stop_threading(void);
52 LIBARDOUR_API void fst_audio_master_idle(void);
53
54 #ifdef __cplusplus
55 }
56 #endif
57
58 #endif /* __fst_fst_h__ */