ardour
vst_types.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2010 Paul Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 #ifndef __ardour_vst_types_h__
21 #define __ardour_vst_types_h__
22 
23 #include <pthread.h>
26 
28 {
30  int special;
32  int character;
33 };
34 
35 typedef struct _VSTKey VSTKey;
36 
38 {
39  char *name;
40  char *creator;
41  int UniqueID;
42  char *Category;
43 
44  int numInputs;
46  int numParams;
47 
48  int wantMidi;
50  int hasEditor;
52 
53  char** ParamNames;
54  char** ParamLabels;
55 };
56 
57 typedef struct _VSTInfo VSTInfo;
58 
59 typedef AEffect * (* main_entry_t) (audioMasterCallback);
60 
62 {
63  void* dll;
64  char* name;
65  char* path;
66 
68 
69  int plugincnt;
70 };
71 
72 typedef struct _VSTHandle VSTHandle;
73 
75 {
77 
78  /* Linux */
81 
82  /* Windows */
84 
85  int xid;
86 
88  void* extra_data;
89 
91  void (* eventProc) (void * event);
92 
94 
95  int width;
96  int height;
97  int wantIdle;
98 
99  int voffset;
100  int hoffset;
102  int destroy;
105 
107 
111  unsigned char * wanted_chunk;
113  float * want_params;
114  float * set_params;
115 
116  VSTKey pending_keys[16];
117 
125 
126  struct _VSTState * next;
127  pthread_mutex_t lock;
128  pthread_cond_t window_status_change;
129  pthread_cond_t plugin_dispatcher_called;
130  pthread_cond_t window_created;
132 };
133 
134 typedef struct _VSTState VSTState;
135 
136 #endif
int vst_version
Definition: vst_types.h:103
void * dispatcher_ptr
Definition: vst_types.h:122
void * event_callback_thisptr
Definition: vst_types.h:90
int hasEditor
Definition: vst_types.h:50
pthread_cond_t window_status_change
Definition: vst_types.h:128
int UniqueID
Definition: vst_types.h:41
intptr_t(* audioMasterCallback)(AEffect *, int32_t, int32_t, intptr_t, void *, float)
Definition: aeffectx.h:329
int numOutputs
Definition: vst_types.h:45
int want_resize
Set to signal the plugin resized its UI.
Definition: vst_types.h:87
char ** ParamNames
Definition: vst_types.h:53
float * set_params
Definition: vst_types.h:114
int wanted_chunk_size
Definition: vst_types.h:112
int plugincnt
Definition: vst_types.h:69
int linux_plugin_ui_window
The ID of the plugin UI window created by the plugin.
Definition: vst_types.h:80
pthread_cond_t plugin_dispatcher_called
Definition: vst_types.h:129
int want_chunk
Definition: vst_types.h:109
int dispatcher_wantcall
Definition: vst_types.h:118
AEffect *(* main_entry_t)(audioMasterCallback)
Definition: vst_types.h:59
void * windows_window
Definition: vst_types.h:83
int wantMidi
Definition: vst_types.h:48
struct _VSTState * next
Definition: vst_types.h:126
int character
Definition: vst_types.h:32
int program_set_without_editor
Definition: vst_types.h:106
int wantIdle
Definition: vst_types.h:97
int has_editor
Definition: vst_types.h:104
char * Category
Definition: vst_types.h:42
char ** ParamLabels
Definition: vst_types.h:54
pthread_cond_t window_created
Definition: vst_types.h:130
pthread_mutex_t lock
Definition: vst_types.h:127
int dispatcher_opcode
Definition: vst_types.h:119
main_entry_t main_entry
Definition: vst_types.h:67
int numInputs
Definition: vst_types.h:44
void * dll
Definition: vst_types.h:63
int dispatcher_val
Definition: vst_types.h:121
char * name
Definition: vst_types.h:39
int xid
X11 XWindow.
Definition: vst_types.h:85
int dispatcher_index
Definition: vst_types.h:120
int special
Definition: vst_types.h:30
int height
Definition: vst_types.h:96
#define LIBARDOUR_API
int wantEvents
Definition: vst_types.h:49
VSTHandle * handle
Definition: vst_types.h:93
int n_pending_keys
Definition: vst_types.h:110
int want_program
Definition: vst_types.h:108
int voffset
Definition: vst_types.h:99
AEffect * plugin
Definition: vst_types.h:76
float * want_params
Definition: vst_types.h:113
void * extra_data
Pointer to any extra data.
Definition: vst_types.h:88
int width
Definition: vst_types.h:95
int canProcessReplacing
Definition: vst_types.h:51
int hoffset
Definition: vst_types.h:100
int gui_shown
Definition: vst_types.h:101
int destroy
Definition: vst_types.h:102
char * creator
Definition: vst_types.h:40
unsigned char * wanted_chunk
Definition: vst_types.h:111
int been_activated
Definition: vst_types.h:131
int dispatcher_retval
Definition: vst_types.h:124
char * name
Definition: vst_types.h:64
int numParams
Definition: vst_types.h:46
float dispatcher_opt
Definition: vst_types.h:123
char * path
Definition: vst_types.h:65
int linux_window
The plugin's parent X11 XWindow.
Definition: vst_types.h:79