X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Ffst%2Ffst.h;h=7b9a67125e5b381e2aab97105b5c51667522a9e9;hb=93c24e4433d69fe1de28d4d2ed2045aa7cb3596b;hp=545bfaf165decc5929348819c2c0829f45c894ec;hpb=ff98e0490d240e1010da92460601b0e7fb5ee848;p=ardour.git diff --git a/libs/fst/fst.h b/libs/fst/fst.h index 545bfaf165..7b9a67125e 100644 --- a/libs/fst/fst.h +++ b/libs/fst/fst.h @@ -5,107 +5,31 @@ #include #include +#include "ardour/libardour_visibility.h" #include "ardour/vst_types.h" #include "ardour/vestige/aeffectx.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). - */ -extern void (*fst_error_callback)(const char *msg); - -/** - * 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, ...); - -typedef struct _FST FST; - -struct _FST -{ - AEffect* plugin; - void* window; /* win32 HWND */ - int xid; /* X11 XWindow */ - VSTHandle* handle; - int width; - int height; - int wantIdle; - int destroy; - int vst_version; - int has_editor; - - int program_set_without_editor; - int want_program; - int want_chunk; - unsigned char *wanted_chunk; - int wanted_chunk_size; - int current_program; - float *want_params; - float *set_params; - - VSTKey pending_keys[16]; - int n_pending_keys; - - int dispatcher_wantcall; - int dispatcher_opcode; - int dispatcher_index; - int dispatcher_val; - void * dispatcher_ptr; - float dispatcher_opt; - int dispatcher_retval; - - struct _FST* next; - pthread_mutex_t lock; - pthread_cond_t window_status_change; - pthread_cond_t plugin_dispatcher_called; - int been_activated; -}; - #ifdef __cplusplus extern "C" { #endif -extern int fst_init (void* possible_hmodule); -extern void fst_exit (); - -extern VSTHandle* fst_load (const char*); -extern int fst_unload (VSTHandle*); - -extern FST* fst_instantiate (VSTHandle*, audioMasterCallback amc, void* userptr); -extern void fst_close (FST*); - -extern int fst_create_editor (FST* fst); -extern int fst_run_editor (FST*); -extern void fst_destroy_editor (FST*); -extern int fst_get_XID (FST*); -extern void fst_move_window_into_view (FST*); - -extern VSTInfo *fst_get_info (char *dllpathname); -extern void fst_free_info (VSTInfo *info); -extern void fst_event_loop_remove_plugin (FST* fst); -extern int fst_call_dispatcher(FST *fst, int opcode, int index, int val, void *ptr, float opt ); +LIBARDOUR_API int fst_init (void* possible_hmodule); +LIBARDOUR_API void fst_exit (void); -/** - * Load a plugin state from a file. - */ -extern int fst_load_state (FST * fst, char * filename); +LIBARDOUR_API VSTHandle* fst_load (const char*); +LIBARDOUR_API int fst_unload (VSTHandle**); -/** - * Save a plugin state to a file. - */ -extern int fst_save_state (FST * fst, char * filename); +LIBARDOUR_API VSTState * fst_instantiate (VSTHandle *, audioMasterCallback amc, void* userptr); +LIBARDOUR_API void fst_close (VSTState *); -extern int wine_pthread_create (pthread_t* thread_id, const pthread_attr_t* attr, void *(*function)(void*), void* arg); +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 *); +LIBARDOUR_API void fst_event_loop_remove_plugin (VSTState* fst); +LIBARDOUR_API void fst_start_threading(void); +LIBARDOUR_API void fst_stop_threading(void); +LIBARDOUR_API void fst_audio_master_idle(void); #ifdef __cplusplus }