2008-06-02 17:41:35 -04:00
|
|
|
#ifndef __fst_fst_h__
|
|
|
|
#define __fst_fst_h__
|
|
|
|
|
|
|
|
#include <setjmp.h>
|
|
|
|
#include <signal.h>
|
|
|
|
#include <pthread.h>
|
|
|
|
|
2014-04-11 11:30:37 -04:00
|
|
|
#include "ardour/libardour_visibility.h"
|
2011-11-21 17:46:20 -05:00
|
|
|
#include "ardour/vst_types.h"
|
2011-11-21 20:28:27 -05:00
|
|
|
#include "ardour/vestige/aeffectx.h"
|
2011-11-21 17:46:20 -05:00
|
|
|
|
2014-04-11 11:48:12 -04:00
|
|
|
#include "pbd/libpbd_visibility.h"
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Display FST error message.
|
|
|
|
*
|
|
|
|
* Set via fst_set_error_function(), otherwise a FST-provided
|
|
|
|
* default will print @a msg (plus a newline) to stderr.
|
|
|
|
*
|
|
|
|
* @param msg error message text (no newline at end).
|
|
|
|
*/
|
2014-04-11 14:10:26 -04:00
|
|
|
LIBARDOUR void (*fst_error_callback)(const char *msg);
|
2014-04-11 11:48:12 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the @ref fst_error_callback for error message display.
|
|
|
|
*
|
|
|
|
* The FST library provides two built-in callbacks for this purpose:
|
|
|
|
* default_fst_error_callback() and silent_fst_error_callback().
|
|
|
|
*/
|
|
|
|
void fst_set_error_function (void (*func)(const char *));
|
|
|
|
|
|
|
|
void fst_error (const char *fmt, ...);
|
|
|
|
|
2008-06-02 17:41:35 -04:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2014-04-11 11:48:12 -04:00
|
|
|
extern int fst_init (void* possible_hmodule);
|
|
|
|
extern void fst_exit (void);
|
2008-06-02 17:41:35 -04:00
|
|
|
|
2014-04-11 11:48:12 -04:00
|
|
|
extern VSTHandle* fst_load (const char*);
|
|
|
|
extern int fst_unload (VSTHandle**);
|
2008-06-02 17:41:35 -04:00
|
|
|
|
2014-04-11 11:48:12 -04:00
|
|
|
extern VSTState * fst_instantiate (VSTHandle *, audioMasterCallback amc, void* userptr);
|
|
|
|
extern void fst_close (VSTState *);
|
2008-06-02 17:41:35 -04:00
|
|
|
|
2014-04-11 11:48:12 -04:00
|
|
|
//these funcs get called from gtk2_ardour, so need to be visible
|
2014-04-11 11:30:37 -04:00
|
|
|
LIBARDOUR_API int fst_run_editor (VSTState *, void* window_parent);
|
|
|
|
LIBARDOUR_API void fst_destroy_editor (VSTState *);
|
|
|
|
LIBARDOUR_API void fst_move_window_into_view (VSTState *);
|
2014-04-11 11:48:12 -04:00
|
|
|
//----
|
|
|
|
|
|
|
|
extern void fst_event_loop_remove_plugin (VSTState* fst);
|
|
|
|
|
|
|
|
#ifndef PLATFORM_WINDOWS /* linux + wine */
|
|
|
|
extern void fst_start_threading(void);
|
|
|
|
extern void fst_stop_threading(void);
|
|
|
|
#endif
|
2008-06-02 17:41:35 -04:00
|
|
|
|
2014-04-11 11:48:12 -04:00
|
|
|
extern void fst_audio_master_idle(void);
|
2009-04-15 20:43:41 -04:00
|
|
|
|
2008-06-02 17:41:35 -04:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* __fst_fst_h__ */
|