X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fvst_types.h;h=7bce34f05a22c0129d7461165215050314065cc0;hb=8a4518d76fe78e5fb99900ff5ff71a22e5912395;hp=35b52435ab96612a45404eec353fdce2ad7a8be0;hpb=23e7cf10191270d70357ccf0ed9294f020c7b7ab;p=ardour.git diff --git a/libs/ardour/ardour/vst_types.h b/libs/ardour/ardour/vst_types.h index 35b52435ab..7bce34f05a 100644 --- a/libs/ardour/ardour/vst_types.h +++ b/libs/ardour/ardour/vst_types.h @@ -22,7 +22,7 @@ #include #include "ardour/libardour_visibility.h" -#include "ardour/vestige/aeffectx.h" +#include "ardour/vestige/vestige.h" struct LIBARDOUR_API _VSTKey { @@ -34,22 +34,23 @@ struct LIBARDOUR_API _VSTKey typedef struct _VSTKey VSTKey; -struct LIBARDOUR_API _VSTInfo +struct LIBARDOUR_API _VSTInfo { char *name; char *creator; int UniqueID; char *Category; - + int numInputs; int numOutputs; int numParams; - + int wantMidi; int wantEvents; int hasEditor; + int isInstrument; // still unused int canProcessReplacing; - + char** ParamNames; char** ParamLabels; }; @@ -63,34 +64,34 @@ struct LIBARDOUR_API _VSTHandle void* dll; char* name; char* path; - + main_entry_t main_entry; int plugincnt; +#ifdef MACVST_SUPPORT + int32_t res_file_id; +#endif }; typedef struct _VSTHandle VSTHandle; struct LIBARDOUR_API _VSTState { - AEffect* plugin; + AEffect* plugin; + VSTHandle* handle; + audioMasterCallback amc; - /* Linux */ + void* gtk_window_parent; + int xid; ///< X11 XWindow (wine + lxvst) + + /* LXVST/X11 */ int linux_window; ///< The plugin's parent X11 XWindow int linux_plugin_ui_window; ///< The ID of the plugin UI window created by the plugin + void (* eventProc) (void * event); ///< X11 UI _XEventProc /* Windows */ void* windows_window; - int xid; ///< X11 XWindow - - int want_resize; ///< Set to signal the plugin resized its UI - void* extra_data; ///< Pointer to any extra data - - void * event_callback_thisptr; - void (* eventProc) (void * event); - - VSTHandle* handle; int width; int height; @@ -102,35 +103,44 @@ struct LIBARDOUR_API _VSTState int destroy; int vst_version; int has_editor; - - int program_set_without_editor; - - int want_program; - int want_chunk; - int n_pending_keys; - unsigned char * wanted_chunk; - int wanted_chunk_size; - float * want_params; - float * set_params; - - VSTKey pending_keys[16]; - - int dispatcher_wantcall; - int dispatcher_opcode; - int dispatcher_index; - int dispatcher_val; - void * dispatcher_ptr; - float dispatcher_opt; - int dispatcher_retval; - - struct _VSTState * next; - pthread_mutex_t lock; - pthread_cond_t window_status_change; - pthread_cond_t plugin_dispatcher_called; - pthread_cond_t window_created; - int been_activated; + + int program_set_without_editor; + int want_program; + int want_chunk; + int n_pending_keys; + unsigned char* wanted_chunk; + int wanted_chunk_size; + float* want_params; + float* set_params; + + VSTKey pending_keys[16]; + + int dispatcher_wantcall; + int dispatcher_opcode; + int dispatcher_index; + int dispatcher_val; + void* dispatcher_ptr; + float dispatcher_opt; + int dispatcher_retval; + + struct _VSTState* next; + pthread_mutex_t lock; + pthread_mutex_t state_lock; + pthread_cond_t window_status_change; + pthread_cond_t plugin_dispatcher_called; + pthread_cond_t window_created; + int been_activated; }; typedef struct _VSTState VSTState; +#ifdef __cplusplus +extern "C" { +#endif +LIBARDOUR_API extern void vststate_init (VSTState* state); +LIBARDOUR_API extern void vststate_maybe_set_program (VSTState* state); +#ifdef __cplusplus +} +#endif + #endif