X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Ffst%2Ffst.h;h=ec36cf1360d7df7f5629f5f64c70b6f0bfbf5c3a;hb=2ec45cfd1b09343b874726f1b3f38ac6a1ed49e3;hp=493cb2e5722e7424bfda435a023b991776efb219;hpb=27cd4034bdfd6ad0218e275bcf417b5bb8495259;p=ardour.git diff --git a/libs/fst/fst.h b/libs/fst/fst.h index 493cb2e572..ec36cf1360 100644 --- a/libs/fst/fst.h +++ b/libs/fst/fst.h @@ -5,102 +5,64 @@ #include #include +#include "ardour/vst_types.h" +#include "ardour/vestige/aeffectx.h" + /** * Display FST error message. * - * @param fmt printf-style formatting specification + * 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 (const char *fmt, ...); +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(). - * - * The default will print the message (plus a newline) to stderr. - * + * default_fst_error_callback() and silent_fst_error_callback(). */ void fst_set_error_function (void (*func)(const char *)); -#include - -typedef struct _FST FST; -typedef struct _FSTHandle FSTHandle; -typedef struct _FSTInfo FSTInfo; - -struct _FSTInfo -{ - char *name; - int UniqueID; - char *Category; - - int numInputs; - int numOutputs; - int numParams; - - int wantMidi; - int wantEvents; - int hasEditor; - int canProcessReplacing; // what do we need this for ? - - // i think we should save the parameter Info Stuff soon. - // struct VstParameterInfo *infos; - char **ParamNames; - char **ParamLabels; -}; - -struct _FSTHandle -{ - void* dll; - char* name; - char* nameptr; /* ptr returned from strdup() etc. */ - AEffect* (*main_entry)(audioMasterCallback); - - int plugincnt; -}; - -struct _FST -{ - AEffect* plugin; - void* window; /* win32 HWND */ - int xid; /* X11 XWindow */ - FSTHandle* handle; - int width; - int height; - int destroy; - - struct _FST* next; - - pthread_mutex_t lock; - pthread_cond_t window_status_change; - int been_activated; -}; +void fst_error (const char *fmt, ...); #ifdef __cplusplus extern "C" { #endif -extern int fst_init (); -extern void fst_finish (); +extern int fst_init (void* possible_hmodule); +extern void fst_exit (); + +extern VSTHandle* fst_load (const char*); +extern int fst_unload (VSTHandle*); -extern FSTHandle* fst_load (const char*); -extern int fst_unload (FSTHandle*); +extern VSTState * fst_instantiate (VSTHandle *, audioMasterCallback amc, void* userptr); +extern void fst_close (VSTState *); -extern FST* fst_instantiate (FSTHandle*, audioMasterCallback amc, void* userptr); -extern void fst_close (FST*); +extern int fst_create_editor (VSTState* fst); +extern int fst_run_editor (VSTState *); +extern void fst_destroy_editor (VSTState *); +extern void fst_move_window_into_view (VSTState *); -extern void fst_event_loop_remove_plugin (FST* fst); -extern void fst_event_loop_add_plugin (FST* fst); +extern VSTInfo *fst_get_info (char *dllpathname); +extern void fst_free_info (VSTInfo *info); +extern void fst_event_loop_remove_plugin (VSTState* fst); +extern int fst_call_dispatcher (VSTState *, int, int, int, void *, float); -extern int fst_run_editor (FST*); -extern void fst_destroy_editor (FST*); -extern int fst_get_XID (FST*); +/** + * Load a plugin state from a file. + */ +extern int fst_load_state (VSTState *, char *); + +/** + * Save a plugin state to a file. + */ +extern int fst_save_state (VSTState *, char *); -extern void fst_signal_handler (int sig, siginfo_t* info, void* context); +extern int wine_pthread_create (pthread_t* thread_id, const pthread_attr_t* attr, void *(*function)(void*), void* arg); -extern FSTInfo *fst_get_info( char *dllpathname ); -extern void fst_free_info( FSTInfo *info ); #ifdef __cplusplus }