export fst functions (for MSVC)
[ardour.git] / libs / fst / fst.h
1 #ifndef __fst_fst_h__
2 #define __fst_fst_h__
3
4 #include <setjmp.h>
5 #include <signal.h>
6 #include <pthread.h>
7
8 #include "ardour/libardour_visibility.h"
9 #include "ardour/vst_types.h"
10 #include "ardour/vestige/aeffectx.h"
11
12 /**
13  * Display FST error message.
14  *
15  * Set via fst_set_error_function(), otherwise a FST-provided
16  * default will print @a msg (plus a newline) to stderr.
17  *
18  * @param msg error message text (no newline at end).
19  */
20 LIBARDOUR_API void (*fst_error_callback)(const char *msg);
21
22 /**
23  * Set the @ref fst_error_callback for error message display.
24  *
25  * The FST library provides two built-in callbacks for this purpose:
26  * default_fst_error_callback() and silent_fst_error_callback().
27  */
28 void fst_set_error_function (void (*func)(const char *));
29
30 void  fst_error (const char *fmt, ...);
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__ */