8 #include "ardour/vst_types.h"
11 * Display FST error message.
13 * Set via fst_set_error_function(), otherwise a FST-provided
14 * default will print @a msg (plus a newline) to stderr.
16 * @param msg error message text (no newline at end).
18 extern void (*fst_error_callback)(const char *msg);
21 * Set the @ref fst_error_callback for error message display.
23 * The FST library provides two built-in callbacks for this purpose:
24 * default_fst_error_callback() and silent_fst_error_callback().
26 void fst_set_error_function (void (*func)(const char *));
28 void fst_error (const char *fmt, ...);
30 #define VESTIGE_HEADER
33 #include <vestige/aeffectx.h>
36 typedef struct _FST FST;
37 typedef struct _FSTHandle FSTHandle;
38 typedef struct _FSTInfo FSTInfo;
54 int canProcessReplacing; // what do we need this for ?
56 // i think we should save the parameter Info Stuff soon.
57 // struct VstParameterInfo *infos;
62 typedef struct AEffect * (*main_entry_t)(audioMasterCallback);
68 char* nameptr; /* ptr returned from strdup() etc. */
69 //struct AEffect* (*main_entry)(audioMasterCallback);
70 main_entry_t main_entry;
77 struct AEffect* plugin;
78 void* window; /* win32 HWND */
79 int xid; /* X11 XWindow */
88 int program_set_without_editor;
91 unsigned char *wanted_chunk;
92 int wanted_chunk_size;
97 VSTKey pending_keys[16];
100 int dispatcher_wantcall;
101 int dispatcher_opcode;
102 int dispatcher_index;
104 void * dispatcher_ptr;
105 float dispatcher_opt;
106 int dispatcher_retval;
109 pthread_mutex_t lock;
110 pthread_cond_t window_status_change;
111 pthread_cond_t plugin_dispatcher_called;
119 extern int fst_init (void* possible_hmodule);
120 extern void fst_exit ();
122 extern FSTHandle* fst_load (const char*);
123 extern int fst_unload (FSTHandle*);
125 extern FST* fst_instantiate (FSTHandle*, audioMasterCallback amc, void* userptr);
126 extern void fst_close (FST*);
128 extern int fst_create_editor (FST* fst);
129 extern int fst_run_editor (FST*);
130 extern void fst_destroy_editor (FST*);
131 extern int fst_get_XID (FST*);
132 extern void fst_move_window_into_view (FST*);
134 extern FSTInfo *fst_get_info (char *dllpathname);
135 extern void fst_free_info (FSTInfo *info);
136 extern void fst_event_loop_remove_plugin (FST* fst);
137 extern int fst_call_dispatcher(FST *fst, int opcode, int index, int val, void *ptr, float opt );
140 * Load a plugin state from a file.
142 extern int fst_load_state (FST * fst, char * filename);
145 * Save a plugin state to a file.
147 extern int fst_save_state (FST * fst, char * filename);
149 extern int wine_pthread_create (pthread_t* thread_id, const pthread_attr_t* attr, void *(*function)(void*), void* arg);
156 #endif /* __fst_fst_h__ */