X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fvst_types.h;h=7bce34f05a22c0129d7461165215050314065cc0;hb=8a4518d76fe78e5fb99900ff5ff71a22e5912395;hp=47308aff735d56c8d7bfcc7be43ae32bce58d03b;hpb=9aacefc17010a889222425f97b99050171165038;p=ardour.git diff --git a/libs/ardour/ardour/vst_types.h b/libs/ardour/ardour/vst_types.h index 47308aff73..7bce34f05a 100644 --- a/libs/ardour/ardour/vst_types.h +++ b/libs/ardour/ardour/vst_types.h @@ -20,8 +20,9 @@ #ifndef __ardour_vst_types_h__ #define __ardour_vst_types_h__ +#include #include "ardour/libardour_visibility.h" -#include "ardour/vestige/aeffectx.h" +#include "ardour/vestige/vestige.h" struct LIBARDOUR_API _VSTKey { @@ -33,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; }; @@ -61,71 +63,84 @@ struct LIBARDOUR_API _VSTHandle { void* dll; char* name; - char* nameptr; - + 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; - int wantIdle; - 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 width; + int height; + int wantIdle; + + int voffset; + int hoffset; + int gui_shown; + 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_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