lv2_sys/linux/
x86_64.rs

1/* automatically generated by rust-bindgen */
2
3pub const LV2_ATOM_URI: &'static [u8; 30usize] = b"http://lv2plug.in/ns/ext/atom\0";
4pub const LV2_ATOM_PREFIX: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/atom#\0";
5pub const LV2_ATOM__Atom: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/atom#Atom\0";
6pub const LV2_ATOM__AtomPort: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/atom#AtomPort\0";
7pub const LV2_ATOM__Blank: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/atom#Blank\0";
8pub const LV2_ATOM__Bool: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/atom#Bool\0";
9pub const LV2_ATOM__Chunk: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/atom#Chunk\0";
10pub const LV2_ATOM__Double: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/atom#Double\0";
11pub const LV2_ATOM__Event: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/atom#Event\0";
12pub const LV2_ATOM__Float: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/atom#Float\0";
13pub const LV2_ATOM__Int: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/atom#Int\0";
14pub const LV2_ATOM__Literal: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/atom#Literal\0";
15pub const LV2_ATOM__Long: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/atom#Long\0";
16pub const LV2_ATOM__Number: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/atom#Number\0";
17pub const LV2_ATOM__Object: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/atom#Object\0";
18pub const LV2_ATOM__Path: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/atom#Path\0";
19pub const LV2_ATOM__Property: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/atom#Property\0";
20pub const LV2_ATOM__Resource: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/atom#Resource\0";
21pub const LV2_ATOM__Sequence: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/atom#Sequence\0";
22pub const LV2_ATOM__Sound: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/atom#Sound\0";
23pub const LV2_ATOM__String: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/atom#String\0";
24pub const LV2_ATOM__Tuple: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/atom#Tuple\0";
25pub const LV2_ATOM__URI: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/atom#URI\0";
26pub const LV2_ATOM__URID: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/atom#URID\0";
27pub const LV2_ATOM__Vector: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/atom#Vector\0";
28pub const LV2_ATOM__atomTransfer: &'static [u8; 43usize] =
29    b"http://lv2plug.in/ns/ext/atom#atomTransfer\0";
30pub const LV2_ATOM__beatTime: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/atom#beatTime\0";
31pub const LV2_ATOM__bufferType: &'static [u8; 41usize] =
32    b"http://lv2plug.in/ns/ext/atom#bufferType\0";
33pub const LV2_ATOM__childType: &'static [u8; 40usize] =
34    b"http://lv2plug.in/ns/ext/atom#childType\0";
35pub const LV2_ATOM__eventTransfer: &'static [u8; 44usize] =
36    b"http://lv2plug.in/ns/ext/atom#eventTransfer\0";
37pub const LV2_ATOM__frameTime: &'static [u8; 40usize] =
38    b"http://lv2plug.in/ns/ext/atom#frameTime\0";
39pub const LV2_ATOM__supports: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/atom#supports\0";
40pub const LV2_ATOM__timeUnit: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/atom#timeUnit\0";
41pub const LV2_ATOM_REFERENCE_TYPE: u32 = 0;
42pub const LV2_URID_URI: &'static [u8; 30usize] = b"http://lv2plug.in/ns/ext/urid\0";
43pub const LV2_URID_PREFIX: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/urid#\0";
44pub const LV2_URID__map: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/urid#map\0";
45pub const LV2_URID__unmap: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/urid#unmap\0";
46pub const LV2_URID_MAP_URI: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/urid#map\0";
47pub const LV2_URID_UNMAP_URI: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/urid#unmap\0";
48pub const LV2_BUF_SIZE_URI: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/buf-size\0";
49pub const LV2_BUF_SIZE_PREFIX: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/buf-size#\0";
50pub const LV2_BUF_SIZE__boundedBlockLength: &'static [u8; 53usize] =
51    b"http://lv2plug.in/ns/ext/buf-size#boundedBlockLength\0";
52pub const LV2_BUF_SIZE__fixedBlockLength: &'static [u8; 51usize] =
53    b"http://lv2plug.in/ns/ext/buf-size#fixedBlockLength\0";
54pub const LV2_BUF_SIZE__maxBlockLength: &'static [u8; 49usize] =
55    b"http://lv2plug.in/ns/ext/buf-size#maxBlockLength\0";
56pub const LV2_BUF_SIZE__minBlockLength: &'static [u8; 49usize] =
57    b"http://lv2plug.in/ns/ext/buf-size#minBlockLength\0";
58pub const LV2_BUF_SIZE__nominalBlockLength: &'static [u8; 53usize] =
59    b"http://lv2plug.in/ns/ext/buf-size#nominalBlockLength\0";
60pub const LV2_BUF_SIZE__powerOf2BlockLength: &'static [u8; 54usize] =
61    b"http://lv2plug.in/ns/ext/buf-size#powerOf2BlockLength\0";
62pub const LV2_BUF_SIZE__sequenceSize: &'static [u8; 47usize] =
63    b"http://lv2plug.in/ns/ext/buf-size#sequenceSize\0";
64pub const LV2_CORE_URI: &'static [u8; 29usize] = b"http://lv2plug.in/ns/lv2core\0";
65pub const LV2_CORE_PREFIX: &'static [u8; 30usize] = b"http://lv2plug.in/ns/lv2core#\0";
66pub const LV2_CORE__AllpassPlugin: &'static [u8; 43usize] =
67    b"http://lv2plug.in/ns/lv2core#AllpassPlugin\0";
68pub const LV2_CORE__AmplifierPlugin: &'static [u8; 45usize] =
69    b"http://lv2plug.in/ns/lv2core#AmplifierPlugin\0";
70pub const LV2_CORE__AnalyserPlugin: &'static [u8; 44usize] =
71    b"http://lv2plug.in/ns/lv2core#AnalyserPlugin\0";
72pub const LV2_CORE__AudioPort: &'static [u8; 39usize] = b"http://lv2plug.in/ns/lv2core#AudioPort\0";
73pub const LV2_CORE__BandpassPlugin: &'static [u8; 44usize] =
74    b"http://lv2plug.in/ns/lv2core#BandpassPlugin\0";
75pub const LV2_CORE__CVPort: &'static [u8; 36usize] = b"http://lv2plug.in/ns/lv2core#CVPort\0";
76pub const LV2_CORE__ChorusPlugin: &'static [u8; 42usize] =
77    b"http://lv2plug.in/ns/lv2core#ChorusPlugin\0";
78pub const LV2_CORE__CombPlugin: &'static [u8; 40usize] =
79    b"http://lv2plug.in/ns/lv2core#CombPlugin\0";
80pub const LV2_CORE__CompressorPlugin: &'static [u8; 46usize] =
81    b"http://lv2plug.in/ns/lv2core#CompressorPlugin\0";
82pub const LV2_CORE__ConstantPlugin: &'static [u8; 44usize] =
83    b"http://lv2plug.in/ns/lv2core#ConstantPlugin\0";
84pub const LV2_CORE__ControlPort: &'static [u8; 41usize] =
85    b"http://lv2plug.in/ns/lv2core#ControlPort\0";
86pub const LV2_CORE__ConverterPlugin: &'static [u8; 45usize] =
87    b"http://lv2plug.in/ns/lv2core#ConverterPlugin\0";
88pub const LV2_CORE__DelayPlugin: &'static [u8; 41usize] =
89    b"http://lv2plug.in/ns/lv2core#DelayPlugin\0";
90pub const LV2_CORE__DistortionPlugin: &'static [u8; 46usize] =
91    b"http://lv2plug.in/ns/lv2core#DistortionPlugin\0";
92pub const LV2_CORE__DynamicsPlugin: &'static [u8; 44usize] =
93    b"http://lv2plug.in/ns/lv2core#DynamicsPlugin\0";
94pub const LV2_CORE__EQPlugin: &'static [u8; 38usize] = b"http://lv2plug.in/ns/lv2core#EQPlugin\0";
95pub const LV2_CORE__EnvelopePlugin: &'static [u8; 44usize] =
96    b"http://lv2plug.in/ns/lv2core#EnvelopePlugin\0";
97pub const LV2_CORE__ExpanderPlugin: &'static [u8; 44usize] =
98    b"http://lv2plug.in/ns/lv2core#ExpanderPlugin\0";
99pub const LV2_CORE__ExtensionData: &'static [u8; 43usize] =
100    b"http://lv2plug.in/ns/lv2core#ExtensionData\0";
101pub const LV2_CORE__Feature: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#Feature\0";
102pub const LV2_CORE__FilterPlugin: &'static [u8; 42usize] =
103    b"http://lv2plug.in/ns/lv2core#FilterPlugin\0";
104pub const LV2_CORE__FlangerPlugin: &'static [u8; 43usize] =
105    b"http://lv2plug.in/ns/lv2core#FlangerPlugin\0";
106pub const LV2_CORE__FunctionPlugin: &'static [u8; 44usize] =
107    b"http://lv2plug.in/ns/lv2core#FunctionPlugin\0";
108pub const LV2_CORE__GatePlugin: &'static [u8; 40usize] =
109    b"http://lv2plug.in/ns/lv2core#GatePlugin\0";
110pub const LV2_CORE__GeneratorPlugin: &'static [u8; 45usize] =
111    b"http://lv2plug.in/ns/lv2core#GeneratorPlugin\0";
112pub const LV2_CORE__HighpassPlugin: &'static [u8; 44usize] =
113    b"http://lv2plug.in/ns/lv2core#HighpassPlugin\0";
114pub const LV2_CORE__InputPort: &'static [u8; 39usize] = b"http://lv2plug.in/ns/lv2core#InputPort\0";
115pub const LV2_CORE__InstrumentPlugin: &'static [u8; 46usize] =
116    b"http://lv2plug.in/ns/lv2core#InstrumentPlugin\0";
117pub const LV2_CORE__LimiterPlugin: &'static [u8; 43usize] =
118    b"http://lv2plug.in/ns/lv2core#LimiterPlugin\0";
119pub const LV2_CORE__LowpassPlugin: &'static [u8; 43usize] =
120    b"http://lv2plug.in/ns/lv2core#LowpassPlugin\0";
121pub const LV2_CORE__MixerPlugin: &'static [u8; 41usize] =
122    b"http://lv2plug.in/ns/lv2core#MixerPlugin\0";
123pub const LV2_CORE__ModulatorPlugin: &'static [u8; 45usize] =
124    b"http://lv2plug.in/ns/lv2core#ModulatorPlugin\0";
125pub const LV2_CORE__MultiEQPlugin: &'static [u8; 43usize] =
126    b"http://lv2plug.in/ns/lv2core#MultiEQPlugin\0";
127pub const LV2_CORE__OscillatorPlugin: &'static [u8; 46usize] =
128    b"http://lv2plug.in/ns/lv2core#OscillatorPlugin\0";
129pub const LV2_CORE__OutputPort: &'static [u8; 40usize] =
130    b"http://lv2plug.in/ns/lv2core#OutputPort\0";
131pub const LV2_CORE__ParaEQPlugin: &'static [u8; 42usize] =
132    b"http://lv2plug.in/ns/lv2core#ParaEQPlugin\0";
133pub const LV2_CORE__PhaserPlugin: &'static [u8; 42usize] =
134    b"http://lv2plug.in/ns/lv2core#PhaserPlugin\0";
135pub const LV2_CORE__PitchPlugin: &'static [u8; 41usize] =
136    b"http://lv2plug.in/ns/lv2core#PitchPlugin\0";
137pub const LV2_CORE__Plugin: &'static [u8; 36usize] = b"http://lv2plug.in/ns/lv2core#Plugin\0";
138pub const LV2_CORE__PluginBase: &'static [u8; 40usize] =
139    b"http://lv2plug.in/ns/lv2core#PluginBase\0";
140pub const LV2_CORE__Point: &'static [u8; 35usize] = b"http://lv2plug.in/ns/lv2core#Point\0";
141pub const LV2_CORE__Port: &'static [u8; 34usize] = b"http://lv2plug.in/ns/lv2core#Port\0";
142pub const LV2_CORE__PortProperty: &'static [u8; 42usize] =
143    b"http://lv2plug.in/ns/lv2core#PortProperty\0";
144pub const LV2_CORE__Resource: &'static [u8; 38usize] = b"http://lv2plug.in/ns/lv2core#Resource\0";
145pub const LV2_CORE__ReverbPlugin: &'static [u8; 42usize] =
146    b"http://lv2plug.in/ns/lv2core#ReverbPlugin\0";
147pub const LV2_CORE__ScalePoint: &'static [u8; 40usize] =
148    b"http://lv2plug.in/ns/lv2core#ScalePoint\0";
149pub const LV2_CORE__SimulatorPlugin: &'static [u8; 45usize] =
150    b"http://lv2plug.in/ns/lv2core#SimulatorPlugin\0";
151pub const LV2_CORE__SpatialPlugin: &'static [u8; 43usize] =
152    b"http://lv2plug.in/ns/lv2core#SpatialPlugin\0";
153pub const LV2_CORE__Specification: &'static [u8; 43usize] =
154    b"http://lv2plug.in/ns/lv2core#Specification\0";
155pub const LV2_CORE__SpectralPlugin: &'static [u8; 44usize] =
156    b"http://lv2plug.in/ns/lv2core#SpectralPlugin\0";
157pub const LV2_CORE__UtilityPlugin: &'static [u8; 43usize] =
158    b"http://lv2plug.in/ns/lv2core#UtilityPlugin\0";
159pub const LV2_CORE__WaveshaperPlugin: &'static [u8; 46usize] =
160    b"http://lv2plug.in/ns/lv2core#WaveshaperPlugin\0";
161pub const LV2_CORE__appliesTo: &'static [u8; 39usize] = b"http://lv2plug.in/ns/lv2core#appliesTo\0";
162pub const LV2_CORE__binary: &'static [u8; 36usize] = b"http://lv2plug.in/ns/lv2core#binary\0";
163pub const LV2_CORE__connectionOptional: &'static [u8; 48usize] =
164    b"http://lv2plug.in/ns/lv2core#connectionOptional\0";
165pub const LV2_CORE__control: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#control\0";
166pub const LV2_CORE__default: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#default\0";
167pub const LV2_CORE__designation: &'static [u8; 41usize] =
168    b"http://lv2plug.in/ns/lv2core#designation\0";
169pub const LV2_CORE__documentation: &'static [u8; 43usize] =
170    b"http://lv2plug.in/ns/lv2core#documentation\0";
171pub const LV2_CORE__enumeration: &'static [u8; 41usize] =
172    b"http://lv2plug.in/ns/lv2core#enumeration\0";
173pub const LV2_CORE__extensionData: &'static [u8; 43usize] =
174    b"http://lv2plug.in/ns/lv2core#extensionData\0";
175pub const LV2_CORE__freeWheeling: &'static [u8; 42usize] =
176    b"http://lv2plug.in/ns/lv2core#freeWheeling\0";
177pub const LV2_CORE__hardRTCapable: &'static [u8; 43usize] =
178    b"http://lv2plug.in/ns/lv2core#hardRTCapable\0";
179pub const LV2_CORE__inPlaceBroken: &'static [u8; 43usize] =
180    b"http://lv2plug.in/ns/lv2core#inPlaceBroken\0";
181pub const LV2_CORE__index: &'static [u8; 35usize] = b"http://lv2plug.in/ns/lv2core#index\0";
182pub const LV2_CORE__integer: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#integer\0";
183pub const LV2_CORE__isLive: &'static [u8; 36usize] = b"http://lv2plug.in/ns/lv2core#isLive\0";
184pub const LV2_CORE__latency: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#latency\0";
185pub const LV2_CORE__maximum: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#maximum\0";
186pub const LV2_CORE__microVersion: &'static [u8; 42usize] =
187    b"http://lv2plug.in/ns/lv2core#microVersion\0";
188pub const LV2_CORE__minimum: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#minimum\0";
189pub const LV2_CORE__minorVersion: &'static [u8; 42usize] =
190    b"http://lv2plug.in/ns/lv2core#minorVersion\0";
191pub const LV2_CORE__name: &'static [u8; 34usize] = b"http://lv2plug.in/ns/lv2core#name\0";
192pub const LV2_CORE__optionalFeature: &'static [u8; 45usize] =
193    b"http://lv2plug.in/ns/lv2core#optionalFeature\0";
194pub const LV2_CORE__port: &'static [u8; 34usize] = b"http://lv2plug.in/ns/lv2core#port\0";
195pub const LV2_CORE__portProperty: &'static [u8; 42usize] =
196    b"http://lv2plug.in/ns/lv2core#portProperty\0";
197pub const LV2_CORE__project: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#project\0";
198pub const LV2_CORE__prototype: &'static [u8; 39usize] = b"http://lv2plug.in/ns/lv2core#prototype\0";
199pub const LV2_CORE__reportsLatency: &'static [u8; 44usize] =
200    b"http://lv2plug.in/ns/lv2core#reportsLatency\0";
201pub const LV2_CORE__requiredFeature: &'static [u8; 45usize] =
202    b"http://lv2plug.in/ns/lv2core#requiredFeature\0";
203pub const LV2_CORE__sampleRate: &'static [u8; 40usize] =
204    b"http://lv2plug.in/ns/lv2core#sampleRate\0";
205pub const LV2_CORE__scalePoint: &'static [u8; 40usize] =
206    b"http://lv2plug.in/ns/lv2core#scalePoint\0";
207pub const LV2_CORE__symbol: &'static [u8; 36usize] = b"http://lv2plug.in/ns/lv2core#symbol\0";
208pub const LV2_CORE__toggled: &'static [u8; 37usize] = b"http://lv2plug.in/ns/lv2core#toggled\0";
209pub const LV2_DATA_ACCESS_URI: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/data-access\0";
210pub const LV2_DATA_ACCESS_PREFIX: &'static [u8; 38usize] =
211    b"http://lv2plug.in/ns/ext/data-access#\0";
212pub const LV2_DYN_MANIFEST_URI: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/dynmanifest\0";
213pub const LV2_DYN_MANIFEST_PREFIX: &'static [u8; 38usize] =
214    b"http://lv2plug.in/ns/ext/dynmanifest#\0";
215pub const LV2_EVENT_URI: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/event\0";
216pub const LV2_EVENT_PREFIX: &'static [u8; 32usize] = b"http://lv2plug.in/ns/ext/event#\0";
217pub const LV2_EVENT__Event: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/event#Event\0";
218pub const LV2_EVENT__EventPort: &'static [u8; 41usize] =
219    b"http://lv2plug.in/ns/ext/event#EventPort\0";
220pub const LV2_EVENT__FrameStamp: &'static [u8; 42usize] =
221    b"http://lv2plug.in/ns/ext/event#FrameStamp\0";
222pub const LV2_EVENT__TimeStamp: &'static [u8; 41usize] =
223    b"http://lv2plug.in/ns/ext/event#TimeStamp\0";
224pub const LV2_EVENT__generatesTimeStamp: &'static [u8; 50usize] =
225    b"http://lv2plug.in/ns/ext/event#generatesTimeStamp\0";
226pub const LV2_EVENT__generic: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/event#generic\0";
227pub const LV2_EVENT__inheritsEvent: &'static [u8; 45usize] =
228    b"http://lv2plug.in/ns/ext/event#inheritsEvent\0";
229pub const LV2_EVENT__inheritsTimeStamp: &'static [u8; 49usize] =
230    b"http://lv2plug.in/ns/ext/event#inheritsTimeStamp\0";
231pub const LV2_EVENT__supportsEvent: &'static [u8; 45usize] =
232    b"http://lv2plug.in/ns/ext/event#supportsEvent\0";
233pub const LV2_EVENT__supportsTimeStamp: &'static [u8; 49usize] =
234    b"http://lv2plug.in/ns/ext/event#supportsTimeStamp\0";
235pub const LV2_EVENT_AUDIO_STAMP: u32 = 0;
236pub const LV2_INSTANCE_ACCESS_URI: &'static [u8; 41usize] =
237    b"http://lv2plug.in/ns/ext/instance-access\0";
238pub const LV2_LOG_URI: &'static [u8; 29usize] = b"http://lv2plug.in/ns/ext/log\0";
239pub const LV2_LOG_PREFIX: &'static [u8; 30usize] = b"http://lv2plug.in/ns/ext/log#\0";
240pub const LV2_LOG__Entry: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/log#Entry\0";
241pub const LV2_LOG__Error: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/log#Error\0";
242pub const LV2_LOG__Note: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/log#Note\0";
243pub const LV2_LOG__Trace: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/log#Trace\0";
244pub const LV2_LOG__Warning: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/log#Warning\0";
245pub const LV2_LOG__log: &'static [u8; 33usize] = b"http://lv2plug.in/ns/ext/log#log\0";
246pub const LV2_MIDI_URI: &'static [u8; 30usize] = b"http://lv2plug.in/ns/ext/midi\0";
247pub const LV2_MIDI_PREFIX: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/midi#\0";
248pub const LV2_MIDI__ActiveSense: &'static [u8; 42usize] =
249    b"http://lv2plug.in/ns/ext/midi#ActiveSense\0";
250pub const LV2_MIDI__Aftertouch: &'static [u8; 41usize] =
251    b"http://lv2plug.in/ns/ext/midi#Aftertouch\0";
252pub const LV2_MIDI__Bender: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/midi#Bender\0";
253pub const LV2_MIDI__ChannelPressure: &'static [u8; 46usize] =
254    b"http://lv2plug.in/ns/ext/midi#ChannelPressure\0";
255pub const LV2_MIDI__Chunk: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/midi#Chunk\0";
256pub const LV2_MIDI__Clock: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/midi#Clock\0";
257pub const LV2_MIDI__Continue: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/midi#Continue\0";
258pub const LV2_MIDI__Controller: &'static [u8; 41usize] =
259    b"http://lv2plug.in/ns/ext/midi#Controller\0";
260pub const LV2_MIDI__MidiEvent: &'static [u8; 40usize] =
261    b"http://lv2plug.in/ns/ext/midi#MidiEvent\0";
262pub const LV2_MIDI__NoteOff: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/midi#NoteOff\0";
263pub const LV2_MIDI__NoteOn: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/midi#NoteOn\0";
264pub const LV2_MIDI__ProgramChange: &'static [u8; 44usize] =
265    b"http://lv2plug.in/ns/ext/midi#ProgramChange\0";
266pub const LV2_MIDI__QuarterFrame: &'static [u8; 43usize] =
267    b"http://lv2plug.in/ns/ext/midi#QuarterFrame\0";
268pub const LV2_MIDI__Reset: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/midi#Reset\0";
269pub const LV2_MIDI__SongPosition: &'static [u8; 43usize] =
270    b"http://lv2plug.in/ns/ext/midi#SongPosition\0";
271pub const LV2_MIDI__SongSelect: &'static [u8; 41usize] =
272    b"http://lv2plug.in/ns/ext/midi#SongSelect\0";
273pub const LV2_MIDI__Start: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/midi#Start\0";
274pub const LV2_MIDI__Stop: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/midi#Stop\0";
275pub const LV2_MIDI__SystemCommon: &'static [u8; 43usize] =
276    b"http://lv2plug.in/ns/ext/midi#SystemCommon\0";
277pub const LV2_MIDI__SystemExclusive: &'static [u8; 46usize] =
278    b"http://lv2plug.in/ns/ext/midi#SystemExclusive\0";
279pub const LV2_MIDI__SystemMessage: &'static [u8; 44usize] =
280    b"http://lv2plug.in/ns/ext/midi#SystemMessage\0";
281pub const LV2_MIDI__SystemRealtime: &'static [u8; 45usize] =
282    b"http://lv2plug.in/ns/ext/midi#SystemRealtime\0";
283pub const LV2_MIDI__Tick: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/midi#Tick\0";
284pub const LV2_MIDI__TuneRequest: &'static [u8; 42usize] =
285    b"http://lv2plug.in/ns/ext/midi#TuneRequest\0";
286pub const LV2_MIDI__VoiceMessage: &'static [u8; 43usize] =
287    b"http://lv2plug.in/ns/ext/midi#VoiceMessage\0";
288pub const LV2_MIDI__benderValue: &'static [u8; 42usize] =
289    b"http://lv2plug.in/ns/ext/midi#benderValue\0";
290pub const LV2_MIDI__binding: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/midi#binding\0";
291pub const LV2_MIDI__byteNumber: &'static [u8; 41usize] =
292    b"http://lv2plug.in/ns/ext/midi#byteNumber\0";
293pub const LV2_MIDI__channel: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/midi#channel\0";
294pub const LV2_MIDI__chunk: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/midi#chunk\0";
295pub const LV2_MIDI__controllerNumber: &'static [u8; 47usize] =
296    b"http://lv2plug.in/ns/ext/midi#controllerNumber\0";
297pub const LV2_MIDI__controllerValue: &'static [u8; 46usize] =
298    b"http://lv2plug.in/ns/ext/midi#controllerValue\0";
299pub const LV2_MIDI__noteNumber: &'static [u8; 41usize] =
300    b"http://lv2plug.in/ns/ext/midi#noteNumber\0";
301pub const LV2_MIDI__pressure: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/midi#pressure\0";
302pub const LV2_MIDI__programNumber: &'static [u8; 44usize] =
303    b"http://lv2plug.in/ns/ext/midi#programNumber\0";
304pub const LV2_MIDI__property: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/midi#property\0";
305pub const LV2_MIDI__songNumber: &'static [u8; 41usize] =
306    b"http://lv2plug.in/ns/ext/midi#songNumber\0";
307pub const LV2_MIDI__songPosition: &'static [u8; 43usize] =
308    b"http://lv2plug.in/ns/ext/midi#songPosition\0";
309pub const LV2_MIDI__status: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/midi#status\0";
310pub const LV2_MIDI__statusMask: &'static [u8; 41usize] =
311    b"http://lv2plug.in/ns/ext/midi#statusMask\0";
312pub const LV2_MIDI__velocity: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/midi#velocity\0";
313pub const LV2_MORPH_URI: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/morph\0";
314pub const LV2_MORPH_PREFIX: &'static [u8; 32usize] = b"http://lv2plug.in/ns/ext/morph#\0";
315pub const LV2_MORPH__AutoMorphPort: &'static [u8; 45usize] =
316    b"http://lv2plug.in/ns/ext/morph#AutoMorphPort\0";
317pub const LV2_MORPH__MorphPort: &'static [u8; 41usize] =
318    b"http://lv2plug.in/ns/ext/morph#MorphPort\0";
319pub const LV2_MORPH__interface: &'static [u8; 41usize] =
320    b"http://lv2plug.in/ns/ext/morph#interface\0";
321pub const LV2_MORPH__supportsType: &'static [u8; 44usize] =
322    b"http://lv2plug.in/ns/ext/morph#supportsType\0";
323pub const LV2_MORPH__currentType: &'static [u8; 43usize] =
324    b"http://lv2plug.in/ns/ext/morph#currentType\0";
325pub const LV2_OPTIONS_URI: &'static [u8; 33usize] = b"http://lv2plug.in/ns/ext/options\0";
326pub const LV2_OPTIONS_PREFIX: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/options#\0";
327pub const LV2_OPTIONS__Option: &'static [u8; 40usize] =
328    b"http://lv2plug.in/ns/ext/options#Option\0";
329pub const LV2_OPTIONS__interface: &'static [u8; 43usize] =
330    b"http://lv2plug.in/ns/ext/options#interface\0";
331pub const LV2_OPTIONS__options: &'static [u8; 41usize] =
332    b"http://lv2plug.in/ns/ext/options#options\0";
333pub const LV2_OPTIONS__requiredOption: &'static [u8; 48usize] =
334    b"http://lv2plug.in/ns/ext/options#requiredOption\0";
335pub const LV2_OPTIONS__supportedOption: &'static [u8; 49usize] =
336    b"http://lv2plug.in/ns/ext/options#supportedOption\0";
337pub const LV2_PARAMETERS_URI: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/parameters\0";
338pub const LV2_PARAMETERS_PREFIX: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/parameters#\0";
339pub const LV2_PARAMETERS__CompressorControls: &'static [u8; 55usize] =
340    b"http://lv2plug.in/ns/ext/parameters#CompressorControls\0";
341pub const LV2_PARAMETERS__ControlGroup: &'static [u8; 49usize] =
342    b"http://lv2plug.in/ns/ext/parameters#ControlGroup\0";
343pub const LV2_PARAMETERS__EnvelopeControls: &'static [u8; 53usize] =
344    b"http://lv2plug.in/ns/ext/parameters#EnvelopeControls\0";
345pub const LV2_PARAMETERS__FilterControls: &'static [u8; 51usize] =
346    b"http://lv2plug.in/ns/ext/parameters#FilterControls\0";
347pub const LV2_PARAMETERS__OscillatorControls: &'static [u8; 55usize] =
348    b"http://lv2plug.in/ns/ext/parameters#OscillatorControls\0";
349pub const LV2_PARAMETERS__amplitude: &'static [u8; 46usize] =
350    b"http://lv2plug.in/ns/ext/parameters#amplitude\0";
351pub const LV2_PARAMETERS__attack: &'static [u8; 43usize] =
352    b"http://lv2plug.in/ns/ext/parameters#attack\0";
353pub const LV2_PARAMETERS__bypass: &'static [u8; 43usize] =
354    b"http://lv2plug.in/ns/ext/parameters#bypass\0";
355pub const LV2_PARAMETERS__cutoffFrequency: &'static [u8; 52usize] =
356    b"http://lv2plug.in/ns/ext/parameters#cutoffFrequency\0";
357pub const LV2_PARAMETERS__decay: &'static [u8; 42usize] =
358    b"http://lv2plug.in/ns/ext/parameters#decay\0";
359pub const LV2_PARAMETERS__delay: &'static [u8; 42usize] =
360    b"http://lv2plug.in/ns/ext/parameters#delay\0";
361pub const LV2_PARAMETERS__dryLevel: &'static [u8; 45usize] =
362    b"http://lv2plug.in/ns/ext/parameters#dryLevel\0";
363pub const LV2_PARAMETERS__frequency: &'static [u8; 46usize] =
364    b"http://lv2plug.in/ns/ext/parameters#frequency\0";
365pub const LV2_PARAMETERS__gain: &'static [u8; 41usize] =
366    b"http://lv2plug.in/ns/ext/parameters#gain\0";
367pub const LV2_PARAMETERS__hold: &'static [u8; 41usize] =
368    b"http://lv2plug.in/ns/ext/parameters#hold\0";
369pub const LV2_PARAMETERS__pulseWidth: &'static [u8; 47usize] =
370    b"http://lv2plug.in/ns/ext/parameters#pulseWidth\0";
371pub const LV2_PARAMETERS__ratio: &'static [u8; 42usize] =
372    b"http://lv2plug.in/ns/ext/parameters#ratio\0";
373pub const LV2_PARAMETERS__release: &'static [u8; 44usize] =
374    b"http://lv2plug.in/ns/ext/parameters#release\0";
375pub const LV2_PARAMETERS__resonance: &'static [u8; 46usize] =
376    b"http://lv2plug.in/ns/ext/parameters#resonance\0";
377pub const LV2_PARAMETERS__sampleRate: &'static [u8; 47usize] =
378    b"http://lv2plug.in/ns/ext/parameters#sampleRate\0";
379pub const LV2_PARAMETERS__sustain: &'static [u8; 44usize] =
380    b"http://lv2plug.in/ns/ext/parameters#sustain\0";
381pub const LV2_PARAMETERS__threshold: &'static [u8; 46usize] =
382    b"http://lv2plug.in/ns/ext/parameters#threshold\0";
383pub const LV2_PARAMETERS__waveform: &'static [u8; 45usize] =
384    b"http://lv2plug.in/ns/ext/parameters#waveform\0";
385pub const LV2_PARAMETERS__wetDryRatio: &'static [u8; 48usize] =
386    b"http://lv2plug.in/ns/ext/parameters#wetDryRatio\0";
387pub const LV2_PARAMETERS__wetLevel: &'static [u8; 45usize] =
388    b"http://lv2plug.in/ns/ext/parameters#wetLevel\0";
389pub const LV2_PATCH_URI: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/patch\0";
390pub const LV2_PATCH_PREFIX: &'static [u8; 32usize] = b"http://lv2plug.in/ns/ext/patch#\0";
391pub const LV2_PATCH__Ack: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/patch#Ack\0";
392pub const LV2_PATCH__Delete: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/patch#Delete\0";
393pub const LV2_PATCH__Copy: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/patch#Copy\0";
394pub const LV2_PATCH__Error: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/patch#Error\0";
395pub const LV2_PATCH__Get: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/patch#Get\0";
396pub const LV2_PATCH__Message: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/patch#Message\0";
397pub const LV2_PATCH__Move: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/patch#Move\0";
398pub const LV2_PATCH__Patch: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/patch#Patch\0";
399pub const LV2_PATCH__Post: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/patch#Post\0";
400pub const LV2_PATCH__Put: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/patch#Put\0";
401pub const LV2_PATCH__Request: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/patch#Request\0";
402pub const LV2_PATCH__Response: &'static [u8; 40usize] =
403    b"http://lv2plug.in/ns/ext/patch#Response\0";
404pub const LV2_PATCH__Set: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/patch#Set\0";
405pub const LV2_PATCH__accept: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/patch#accept\0";
406pub const LV2_PATCH__add: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/patch#add\0";
407pub const LV2_PATCH__body: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/patch#body\0";
408pub const LV2_PATCH__context: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/patch#context\0";
409pub const LV2_PATCH__destination: &'static [u8; 43usize] =
410    b"http://lv2plug.in/ns/ext/patch#destination\0";
411pub const LV2_PATCH__property: &'static [u8; 40usize] =
412    b"http://lv2plug.in/ns/ext/patch#property\0";
413pub const LV2_PATCH__readable: &'static [u8; 40usize] =
414    b"http://lv2plug.in/ns/ext/patch#readable\0";
415pub const LV2_PATCH__remove: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/patch#remove\0";
416pub const LV2_PATCH__request: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/patch#request\0";
417pub const LV2_PATCH__subject: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/patch#subject\0";
418pub const LV2_PATCH__sequenceNumber: &'static [u8; 46usize] =
419    b"http://lv2plug.in/ns/ext/patch#sequenceNumber\0";
420pub const LV2_PATCH__value: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/patch#value\0";
421pub const LV2_PATCH__wildcard: &'static [u8; 40usize] =
422    b"http://lv2plug.in/ns/ext/patch#wildcard\0";
423pub const LV2_PATCH__writable: &'static [u8; 40usize] =
424    b"http://lv2plug.in/ns/ext/patch#writable\0";
425pub const LV2_PORT_GROUPS_URI: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/port-groups\0";
426pub const LV2_PORT_GROUPS_PREFIX: &'static [u8; 38usize] =
427    b"http://lv2plug.in/ns/ext/port-groups#\0";
428pub const LV2_PORT_GROUPS__DiscreteGroup: &'static [u8; 51usize] =
429    b"http://lv2plug.in/ns/ext/port-groups#DiscreteGroup\0";
430pub const LV2_PORT_GROUPS__Element: &'static [u8; 45usize] =
431    b"http://lv2plug.in/ns/ext/port-groups#Element\0";
432pub const LV2_PORT_GROUPS__FivePointOneGroup: &'static [u8; 55usize] =
433    b"http://lv2plug.in/ns/ext/port-groups#FivePointOneGroup\0";
434pub const LV2_PORT_GROUPS__FivePointZeroGroup: &'static [u8; 56usize] =
435    b"http://lv2plug.in/ns/ext/port-groups#FivePointZeroGroup\0";
436pub const LV2_PORT_GROUPS__FourPointZeroGroup: &'static [u8; 56usize] =
437    b"http://lv2plug.in/ns/ext/port-groups#FourPointZeroGroup\0";
438pub const LV2_PORT_GROUPS__Group: &'static [u8; 43usize] =
439    b"http://lv2plug.in/ns/ext/port-groups#Group\0";
440pub const LV2_PORT_GROUPS__InputGroup: &'static [u8; 48usize] =
441    b"http://lv2plug.in/ns/ext/port-groups#InputGroup\0";
442pub const LV2_PORT_GROUPS__MidSideGroup: &'static [u8; 50usize] =
443    b"http://lv2plug.in/ns/ext/port-groups#MidSideGroup\0";
444pub const LV2_PORT_GROUPS__MonoGroup: &'static [u8; 47usize] =
445    b"http://lv2plug.in/ns/ext/port-groups#MonoGroup\0";
446pub const LV2_PORT_GROUPS__OutputGroup: &'static [u8; 49usize] =
447    b"http://lv2plug.in/ns/ext/port-groups#OutputGroup\0";
448pub const LV2_PORT_GROUPS__SevenPointOneGroup: &'static [u8; 56usize] =
449    b"http://lv2plug.in/ns/ext/port-groups#SevenPointOneGroup\0";
450pub const LV2_PORT_GROUPS__SevenPointOneWideGroup: &'static [u8; 60usize] =
451    b"http://lv2plug.in/ns/ext/port-groups#SevenPointOneWideGroup\0";
452pub const LV2_PORT_GROUPS__SixPointOneGroup: &'static [u8; 54usize] =
453    b"http://lv2plug.in/ns/ext/port-groups#SixPointOneGroup\0";
454pub const LV2_PORT_GROUPS__StereoGroup: &'static [u8; 49usize] =
455    b"http://lv2plug.in/ns/ext/port-groups#StereoGroup\0";
456pub const LV2_PORT_GROUPS__ThreePointZeroGroup: &'static [u8; 57usize] =
457    b"http://lv2plug.in/ns/ext/port-groups#ThreePointZeroGroup\0";
458pub const LV2_PORT_GROUPS__center: &'static [u8; 44usize] =
459    b"http://lv2plug.in/ns/ext/port-groups#center\0";
460pub const LV2_PORT_GROUPS__centerLeft: &'static [u8; 48usize] =
461    b"http://lv2plug.in/ns/ext/port-groups#centerLeft\0";
462pub const LV2_PORT_GROUPS__centerRight: &'static [u8; 49usize] =
463    b"http://lv2plug.in/ns/ext/port-groups#centerRight\0";
464pub const LV2_PORT_GROUPS__element: &'static [u8; 45usize] =
465    b"http://lv2plug.in/ns/ext/port-groups#element\0";
466pub const LV2_PORT_GROUPS__group: &'static [u8; 43usize] =
467    b"http://lv2plug.in/ns/ext/port-groups#group\0";
468pub const LV2_PORT_GROUPS__left: &'static [u8; 42usize] =
469    b"http://lv2plug.in/ns/ext/port-groups#left\0";
470pub const LV2_PORT_GROUPS__lowFrequencyEffects: &'static [u8; 57usize] =
471    b"http://lv2plug.in/ns/ext/port-groups#lowFrequencyEffects\0";
472pub const LV2_PORT_GROUPS__mainInput: &'static [u8; 47usize] =
473    b"http://lv2plug.in/ns/ext/port-groups#mainInput\0";
474pub const LV2_PORT_GROUPS__mainOutput: &'static [u8; 48usize] =
475    b"http://lv2plug.in/ns/ext/port-groups#mainOutput\0";
476pub const LV2_PORT_GROUPS__rearCenter: &'static [u8; 48usize] =
477    b"http://lv2plug.in/ns/ext/port-groups#rearCenter\0";
478pub const LV2_PORT_GROUPS__rearLeft: &'static [u8; 46usize] =
479    b"http://lv2plug.in/ns/ext/port-groups#rearLeft\0";
480pub const LV2_PORT_GROUPS__rearRight: &'static [u8; 47usize] =
481    b"http://lv2plug.in/ns/ext/port-groups#rearRight\0";
482pub const LV2_PORT_GROUPS__right: &'static [u8; 43usize] =
483    b"http://lv2plug.in/ns/ext/port-groups#right\0";
484pub const LV2_PORT_GROUPS__side: &'static [u8; 42usize] =
485    b"http://lv2plug.in/ns/ext/port-groups#side\0";
486pub const LV2_PORT_GROUPS__sideChainOf: &'static [u8; 49usize] =
487    b"http://lv2plug.in/ns/ext/port-groups#sideChainOf\0";
488pub const LV2_PORT_GROUPS__sideLeft: &'static [u8; 46usize] =
489    b"http://lv2plug.in/ns/ext/port-groups#sideLeft\0";
490pub const LV2_PORT_GROUPS__sideRight: &'static [u8; 47usize] =
491    b"http://lv2plug.in/ns/ext/port-groups#sideRight\0";
492pub const LV2_PORT_GROUPS__source: &'static [u8; 44usize] =
493    b"http://lv2plug.in/ns/ext/port-groups#source\0";
494pub const LV2_PORT_GROUPS__subGroupOf: &'static [u8; 48usize] =
495    b"http://lv2plug.in/ns/ext/port-groups#subGroupOf\0";
496pub const LV2_PORT_PROPS_URI: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/port-props\0";
497pub const LV2_PORT_PROPS_PREFIX: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/port-props#\0";
498pub const LV2_PORT_PROPS__causesArtifacts: &'static [u8; 52usize] =
499    b"http://lv2plug.in/ns/ext/port-props#causesArtifacts\0";
500pub const LV2_PORT_PROPS__continuousCV: &'static [u8; 49usize] =
501    b"http://lv2plug.in/ns/ext/port-props#continuousCV\0";
502pub const LV2_PORT_PROPS__discreteCV: &'static [u8; 47usize] =
503    b"http://lv2plug.in/ns/ext/port-props#discreteCV\0";
504pub const LV2_PORT_PROPS__displayPriority: &'static [u8; 52usize] =
505    b"http://lv2plug.in/ns/ext/port-props#displayPriority\0";
506pub const LV2_PORT_PROPS__expensive: &'static [u8; 46usize] =
507    b"http://lv2plug.in/ns/ext/port-props#expensive\0";
508pub const LV2_PORT_PROPS__hasStrictBounds: &'static [u8; 52usize] =
509    b"http://lv2plug.in/ns/ext/port-props#hasStrictBounds\0";
510pub const LV2_PORT_PROPS__logarithmic: &'static [u8; 48usize] =
511    b"http://lv2plug.in/ns/ext/port-props#logarithmic\0";
512pub const LV2_PORT_PROPS__notAutomatic: &'static [u8; 49usize] =
513    b"http://lv2plug.in/ns/ext/port-props#notAutomatic\0";
514pub const LV2_PORT_PROPS__notOnGUI: &'static [u8; 45usize] =
515    b"http://lv2plug.in/ns/ext/port-props#notOnGUI\0";
516pub const LV2_PORT_PROPS__rangeSteps: &'static [u8; 47usize] =
517    b"http://lv2plug.in/ns/ext/port-props#rangeSteps\0";
518pub const LV2_PORT_PROPS__supportsStrictBounds: &'static [u8; 57usize] =
519    b"http://lv2plug.in/ns/ext/port-props#supportsStrictBounds\0";
520pub const LV2_PORT_PROPS__trigger: &'static [u8; 44usize] =
521    b"http://lv2plug.in/ns/ext/port-props#trigger\0";
522pub const LV2_PRESETS_URI: &'static [u8; 33usize] = b"http://lv2plug.in/ns/ext/presets\0";
523pub const LV2_PRESETS_PREFIX: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/presets#\0";
524pub const LV2_PRESETS__Bank: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/presets#Bank\0";
525pub const LV2_PRESETS__Preset: &'static [u8; 40usize] =
526    b"http://lv2plug.in/ns/ext/presets#Preset\0";
527pub const LV2_PRESETS__bank: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/presets#bank\0";
528pub const LV2_PRESETS__preset: &'static [u8; 40usize] =
529    b"http://lv2plug.in/ns/ext/presets#preset\0";
530pub const LV2_PRESETS__value: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/presets#value\0";
531pub const LV2_RESIZE_PORT_URI: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/resize-port\0";
532pub const LV2_RESIZE_PORT_PREFIX: &'static [u8; 38usize] =
533    b"http://lv2plug.in/ns/ext/resize-port#\0";
534pub const LV2_RESIZE_PORT__asLargeAs: &'static [u8; 47usize] =
535    b"http://lv2plug.in/ns/ext/resize-port#asLargeAs\0";
536pub const LV2_RESIZE_PORT__minimumSize: &'static [u8; 49usize] =
537    b"http://lv2plug.in/ns/ext/resize-port#minimumSize\0";
538pub const LV2_RESIZE_PORT__resize: &'static [u8; 44usize] =
539    b"http://lv2plug.in/ns/ext/resize-port#resize\0";
540pub const LV2_STATE_URI: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/state\0";
541pub const LV2_STATE_PREFIX: &'static [u8; 32usize] = b"http://lv2plug.in/ns/ext/state#\0";
542pub const LV2_STATE__State: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/state#State\0";
543pub const LV2_STATE__interface: &'static [u8; 41usize] =
544    b"http://lv2plug.in/ns/ext/state#interface\0";
545pub const LV2_STATE__loadDefaultState: &'static [u8; 48usize] =
546    b"http://lv2plug.in/ns/ext/state#loadDefaultState\0";
547pub const LV2_STATE__freePath: &'static [u8; 40usize] =
548    b"http://lv2plug.in/ns/ext/state#freePath\0";
549pub const LV2_STATE__makePath: &'static [u8; 40usize] =
550    b"http://lv2plug.in/ns/ext/state#makePath\0";
551pub const LV2_STATE__mapPath: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/state#mapPath\0";
552pub const LV2_STATE__state: &'static [u8; 37usize] = b"http://lv2plug.in/ns/ext/state#state\0";
553pub const LV2_STATE__threadSafeRestore: &'static [u8; 49usize] =
554    b"http://lv2plug.in/ns/ext/state#threadSafeRestore\0";
555pub const LV2_STATE__StateChanged: &'static [u8; 44usize] =
556    b"http://lv2plug.in/ns/ext/state#StateChanged\0";
557pub const LV2_TIME_URI: &'static [u8; 30usize] = b"http://lv2plug.in/ns/ext/time\0";
558pub const LV2_TIME_PREFIX: &'static [u8; 31usize] = b"http://lv2plug.in/ns/ext/time#\0";
559pub const LV2_TIME__Time: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/time#Time\0";
560pub const LV2_TIME__Position: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/time#Position\0";
561pub const LV2_TIME__Rate: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/time#Rate\0";
562pub const LV2_TIME__position: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/time#position\0";
563pub const LV2_TIME__barBeat: &'static [u8; 38usize] = b"http://lv2plug.in/ns/ext/time#barBeat\0";
564pub const LV2_TIME__bar: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/time#bar\0";
565pub const LV2_TIME__beat: &'static [u8; 35usize] = b"http://lv2plug.in/ns/ext/time#beat\0";
566pub const LV2_TIME__beatUnit: &'static [u8; 39usize] = b"http://lv2plug.in/ns/ext/time#beatUnit\0";
567pub const LV2_TIME__beatsPerBar: &'static [u8; 42usize] =
568    b"http://lv2plug.in/ns/ext/time#beatsPerBar\0";
569pub const LV2_TIME__beatsPerMinute: &'static [u8; 45usize] =
570    b"http://lv2plug.in/ns/ext/time#beatsPerMinute\0";
571pub const LV2_TIME__frame: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/time#frame\0";
572pub const LV2_TIME__framesPerSecond: &'static [u8; 46usize] =
573    b"http://lv2plug.in/ns/ext/time#framesPerSecond\0";
574pub const LV2_TIME__speed: &'static [u8; 36usize] = b"http://lv2plug.in/ns/ext/time#speed\0";
575pub const LV2_UI_URI: &'static [u8; 35usize] = b"http://lv2plug.in/ns/extensions/ui\0";
576pub const LV2_UI_PREFIX: &'static [u8; 36usize] = b"http://lv2plug.in/ns/extensions/ui#\0";
577pub const LV2_UI__CocoaUI: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/ui#CocoaUI\0";
578pub const LV2_UI__Gtk3UI: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/ui#Gtk3UI\0";
579pub const LV2_UI__GtkUI: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/ui#GtkUI\0";
580pub const LV2_UI__PortNotification: &'static [u8; 52usize] =
581    b"http://lv2plug.in/ns/extensions/ui#PortNotification\0";
582pub const LV2_UI__PortProtocol: &'static [u8; 48usize] =
583    b"http://lv2plug.in/ns/extensions/ui#PortProtocol\0";
584pub const LV2_UI__Qt4UI: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/ui#Qt4UI\0";
585pub const LV2_UI__Qt5UI: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/ui#Qt5UI\0";
586pub const LV2_UI__UI: &'static [u8; 38usize] = b"http://lv2plug.in/ns/extensions/ui#UI\0";
587pub const LV2_UI__WindowsUI: &'static [u8; 45usize] =
588    b"http://lv2plug.in/ns/extensions/ui#WindowsUI\0";
589pub const LV2_UI__X11UI: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/ui#X11UI\0";
590pub const LV2_UI__binary: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/ui#binary\0";
591pub const LV2_UI__fixedSize: &'static [u8; 45usize] =
592    b"http://lv2plug.in/ns/extensions/ui#fixedSize\0";
593pub const LV2_UI__idleInterface: &'static [u8; 49usize] =
594    b"http://lv2plug.in/ns/extensions/ui#idleInterface\0";
595pub const LV2_UI__noUserResize: &'static [u8; 48usize] =
596    b"http://lv2plug.in/ns/extensions/ui#noUserResize\0";
597pub const LV2_UI__notifyType: &'static [u8; 46usize] =
598    b"http://lv2plug.in/ns/extensions/ui#notifyType\0";
599pub const LV2_UI__parent: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/ui#parent\0";
600pub const LV2_UI__plugin: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/ui#plugin\0";
601pub const LV2_UI__portIndex: &'static [u8; 45usize] =
602    b"http://lv2plug.in/ns/extensions/ui#portIndex\0";
603pub const LV2_UI__portMap: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/ui#portMap\0";
604pub const LV2_UI__portNotification: &'static [u8; 52usize] =
605    b"http://lv2plug.in/ns/extensions/ui#portNotification\0";
606pub const LV2_UI__portSubscribe: &'static [u8; 49usize] =
607    b"http://lv2plug.in/ns/extensions/ui#portSubscribe\0";
608pub const LV2_UI__protocol: &'static [u8; 44usize] =
609    b"http://lv2plug.in/ns/extensions/ui#protocol\0";
610pub const LV2_UI__requestValue: &'static [u8; 48usize] =
611    b"http://lv2plug.in/ns/extensions/ui#requestValue\0";
612pub const LV2_UI__floatProtocol: &'static [u8; 49usize] =
613    b"http://lv2plug.in/ns/extensions/ui#floatProtocol\0";
614pub const LV2_UI__peakProtocol: &'static [u8; 48usize] =
615    b"http://lv2plug.in/ns/extensions/ui#peakProtocol\0";
616pub const LV2_UI__resize: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/ui#resize\0";
617pub const LV2_UI__showInterface: &'static [u8; 49usize] =
618    b"http://lv2plug.in/ns/extensions/ui#showInterface\0";
619pub const LV2_UI__touch: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/ui#touch\0";
620pub const LV2_UI__ui: &'static [u8; 38usize] = b"http://lv2plug.in/ns/extensions/ui#ui\0";
621pub const LV2_UI__updateRate: &'static [u8; 46usize] =
622    b"http://lv2plug.in/ns/extensions/ui#updateRate\0";
623pub const LV2_UI__windowTitle: &'static [u8; 47usize] =
624    b"http://lv2plug.in/ns/extensions/ui#windowTitle\0";
625pub const LV2_UI__scaleFactor: &'static [u8; 47usize] =
626    b"http://lv2plug.in/ns/extensions/ui#scaleFactor\0";
627pub const LV2_UI__foregroundColor: &'static [u8; 51usize] =
628    b"http://lv2plug.in/ns/extensions/ui#foregroundColor\0";
629pub const LV2_UI__backgroundColor: &'static [u8; 51usize] =
630    b"http://lv2plug.in/ns/extensions/ui#backgroundColor\0";
631pub const LV2_UNITS_URI: &'static [u8; 38usize] = b"http://lv2plug.in/ns/extensions/units\0";
632pub const LV2_UNITS_PREFIX: &'static [u8; 39usize] = b"http://lv2plug.in/ns/extensions/units#\0";
633pub const LV2_UNITS__Conversion: &'static [u8; 49usize] =
634    b"http://lv2plug.in/ns/extensions/units#Conversion\0";
635pub const LV2_UNITS__Unit: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#Unit\0";
636pub const LV2_UNITS__bar: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/units#bar\0";
637pub const LV2_UNITS__beat: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#beat\0";
638pub const LV2_UNITS__bpm: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/units#bpm\0";
639pub const LV2_UNITS__cent: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#cent\0";
640pub const LV2_UNITS__cm: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/units#cm\0";
641pub const LV2_UNITS__coef: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#coef\0";
642pub const LV2_UNITS__conversion: &'static [u8; 49usize] =
643    b"http://lv2plug.in/ns/extensions/units#conversion\0";
644pub const LV2_UNITS__db: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/units#db\0";
645pub const LV2_UNITS__degree: &'static [u8; 45usize] =
646    b"http://lv2plug.in/ns/extensions/units#degree\0";
647pub const LV2_UNITS__frame: &'static [u8; 44usize] =
648    b"http://lv2plug.in/ns/extensions/units#frame\0";
649pub const LV2_UNITS__hz: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/units#hz\0";
650pub const LV2_UNITS__inch: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#inch\0";
651pub const LV2_UNITS__khz: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/units#khz\0";
652pub const LV2_UNITS__km: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/units#km\0";
653pub const LV2_UNITS__m: &'static [u8; 40usize] = b"http://lv2plug.in/ns/extensions/units#m\0";
654pub const LV2_UNITS__mhz: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/units#mhz\0";
655pub const LV2_UNITS__midiNote: &'static [u8; 47usize] =
656    b"http://lv2plug.in/ns/extensions/units#midiNote\0";
657pub const LV2_UNITS__mile: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#mile\0";
658pub const LV2_UNITS__min: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/units#min\0";
659pub const LV2_UNITS__mm: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/units#mm\0";
660pub const LV2_UNITS__ms: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/units#ms\0";
661pub const LV2_UNITS__name: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#name\0";
662pub const LV2_UNITS__oct: &'static [u8; 42usize] = b"http://lv2plug.in/ns/extensions/units#oct\0";
663pub const LV2_UNITS__pc: &'static [u8; 41usize] = b"http://lv2plug.in/ns/extensions/units#pc\0";
664pub const LV2_UNITS__prefixConversion: &'static [u8; 55usize] =
665    b"http://lv2plug.in/ns/extensions/units#prefixConversion\0";
666pub const LV2_UNITS__render: &'static [u8; 45usize] =
667    b"http://lv2plug.in/ns/extensions/units#render\0";
668pub const LV2_UNITS__s: &'static [u8; 40usize] = b"http://lv2plug.in/ns/extensions/units#s\0";
669pub const LV2_UNITS__semitone12TET: &'static [u8; 52usize] =
670    b"http://lv2plug.in/ns/extensions/units#semitone12TET\0";
671pub const LV2_UNITS__symbol: &'static [u8; 45usize] =
672    b"http://lv2plug.in/ns/extensions/units#symbol\0";
673pub const LV2_UNITS__unit: &'static [u8; 43usize] = b"http://lv2plug.in/ns/extensions/units#unit\0";
674pub const LV2_URI_MAP_URI: &'static [u8; 33usize] = b"http://lv2plug.in/ns/ext/uri-map\0";
675pub const LV2_URI_MAP_PREFIX: &'static [u8; 34usize] = b"http://lv2plug.in/ns/ext/uri-map#\0";
676pub const LV2_WORKER_URI: &'static [u8; 32usize] = b"http://lv2plug.in/ns/ext/worker\0";
677pub const LV2_WORKER_PREFIX: &'static [u8; 33usize] = b"http://lv2plug.in/ns/ext/worker#\0";
678pub const LV2_WORKER__interface: &'static [u8; 42usize] =
679    b"http://lv2plug.in/ns/ext/worker#interface\0";
680pub const LV2_WORKER__schedule: &'static [u8; 41usize] =
681    b"http://lv2plug.in/ns/ext/worker#schedule\0";
682pub type __uint8_t = ::std::os::raw::c_uchar;
683pub type __uint16_t = ::std::os::raw::c_ushort;
684pub type __int32_t = ::std::os::raw::c_int;
685pub type __uint32_t = ::std::os::raw::c_uint;
686pub type __int64_t = ::std::os::raw::c_long;
687#[doc = " The header of an atom:Atom."]
688#[repr(C)]
689#[derive(Debug, Copy, Clone)]
690pub struct LV2_Atom {
691    #[doc = "< Size in bytes, not including type and size."]
692    pub size: u32,
693    #[doc = "< Type of this atom (mapped URI)."]
694    pub type_: u32,
695}
696#[doc = " An atom:Int or atom:Bool.  May be cast to LV2_Atom."]
697#[repr(C)]
698#[derive(Debug, Copy, Clone)]
699pub struct LV2_Atom_Int {
700    #[doc = "< Atom header."]
701    pub atom: LV2_Atom,
702    #[doc = "< Integer value."]
703    pub body: i32,
704}
705#[doc = " An atom:Long.  May be cast to LV2_Atom."]
706#[repr(C)]
707#[derive(Debug, Copy, Clone)]
708pub struct LV2_Atom_Long {
709    #[doc = "< Atom header."]
710    pub atom: LV2_Atom,
711    #[doc = "< Integer value."]
712    pub body: i64,
713}
714#[doc = " An atom:Float.  May be cast to LV2_Atom."]
715#[repr(C)]
716#[derive(Debug, Copy, Clone)]
717pub struct LV2_Atom_Float {
718    #[doc = "< Atom header."]
719    pub atom: LV2_Atom,
720    #[doc = "< Floating point value."]
721    pub body: f32,
722}
723#[doc = " An atom:Double.  May be cast to LV2_Atom."]
724#[repr(C)]
725#[derive(Debug, Copy, Clone)]
726pub struct LV2_Atom_Double {
727    #[doc = "< Atom header."]
728    pub atom: LV2_Atom,
729    #[doc = "< Floating point value."]
730    pub body: f64,
731}
732#[doc = " An atom:Bool.  May be cast to LV2_Atom."]
733pub type LV2_Atom_Bool = LV2_Atom_Int;
734#[doc = " An atom:URID.  May be cast to LV2_Atom."]
735#[repr(C)]
736#[derive(Debug, Copy, Clone)]
737pub struct LV2_Atom_URID {
738    #[doc = "< Atom header."]
739    pub atom: LV2_Atom,
740    #[doc = "< URID."]
741    pub body: u32,
742}
743#[doc = " An atom:String.  May be cast to LV2_Atom."]
744#[repr(C)]
745#[derive(Debug, Copy, Clone)]
746pub struct LV2_Atom_String {
747    #[doc = "< Atom header."]
748    pub atom: LV2_Atom,
749}
750#[doc = " The body of an atom:Literal."]
751#[repr(C)]
752#[derive(Debug, Copy, Clone)]
753pub struct LV2_Atom_Literal_Body {
754    #[doc = "< Datatype URID."]
755    pub datatype: u32,
756    #[doc = "< Language URID."]
757    pub lang: u32,
758}
759#[doc = " An atom:Literal.  May be cast to LV2_Atom."]
760#[repr(C)]
761#[derive(Debug, Copy, Clone)]
762pub struct LV2_Atom_Literal {
763    #[doc = "< Atom header."]
764    pub atom: LV2_Atom,
765    #[doc = "< Body."]
766    pub body: LV2_Atom_Literal_Body,
767}
768#[doc = " An atom:Tuple.  May be cast to LV2_Atom."]
769#[repr(C)]
770#[derive(Debug, Copy, Clone)]
771pub struct LV2_Atom_Tuple {
772    #[doc = "< Atom header."]
773    pub atom: LV2_Atom,
774}
775#[doc = " The body of an atom:Vector."]
776#[repr(C)]
777#[derive(Debug, Copy, Clone)]
778pub struct LV2_Atom_Vector_Body {
779    #[doc = "< The size of each element in the vector."]
780    pub child_size: u32,
781    #[doc = "< The type of each element in the vector."]
782    pub child_type: u32,
783}
784#[doc = " An atom:Vector.  May be cast to LV2_Atom."]
785#[repr(C)]
786#[derive(Debug, Copy, Clone)]
787pub struct LV2_Atom_Vector {
788    #[doc = "< Atom header."]
789    pub atom: LV2_Atom,
790    #[doc = "< Body."]
791    pub body: LV2_Atom_Vector_Body,
792}
793#[doc = " The body of an atom:Property (typically in an atom:Object)."]
794#[repr(C)]
795#[derive(Debug, Copy, Clone)]
796pub struct LV2_Atom_Property_Body {
797    #[doc = "< Key (predicate) (mapped URI)."]
798    pub key: u32,
799    #[doc = "< Context URID (may be, and generally is, 0)."]
800    pub context: u32,
801    #[doc = "< Value atom header."]
802    pub value: LV2_Atom,
803}
804#[doc = " An atom:Property.  May be cast to LV2_Atom."]
805#[repr(C)]
806#[derive(Debug, Copy, Clone)]
807pub struct LV2_Atom_Property {
808    #[doc = "< Atom header."]
809    pub atom: LV2_Atom,
810    #[doc = "< Body."]
811    pub body: LV2_Atom_Property_Body,
812}
813#[doc = " The body of an atom:Object. May be cast to LV2_Atom."]
814#[repr(C)]
815#[derive(Debug, Copy, Clone)]
816pub struct LV2_Atom_Object_Body {
817    #[doc = "< URID, or 0 for blank."]
818    pub id: u32,
819    #[doc = "< Type URID (same as rdf:type, for fast dispatch)."]
820    pub otype: u32,
821}
822#[doc = " An atom:Object.  May be cast to LV2_Atom."]
823#[repr(C)]
824#[derive(Debug, Copy, Clone)]
825pub struct LV2_Atom_Object {
826    #[doc = "< Atom header."]
827    pub atom: LV2_Atom,
828    #[doc = "< Body."]
829    pub body: LV2_Atom_Object_Body,
830}
831#[doc = " The header of an atom:Event.  Note this type is NOT an LV2_Atom."]
832#[repr(C)]
833#[derive(Copy, Clone)]
834pub struct LV2_Atom_Event {
835    pub time: LV2_Atom_Event__bindgen_ty_1,
836    #[doc = "< Event body atom header."]
837    pub body: LV2_Atom,
838}
839#[doc = " Time stamp.  Which type is valid is determined by context."]
840#[repr(C)]
841#[derive(Copy, Clone)]
842pub union LV2_Atom_Event__bindgen_ty_1 {
843    #[doc = "< Time in audio frames."]
844    pub frames: i64,
845    #[doc = "< Time in beats."]
846    pub beats: f64,
847    _bindgen_union_align: u64,
848}
849#[doc = "The body of an atom:Sequence (a sequence of events)."]
850#[doc = ""]
851#[doc = "The unit field is either a URID that described an appropriate time stamp"]
852#[doc = "type, or may be 0 where a default stamp type is known.  For"]
853#[doc = "LV2_Descriptor::run(), the default stamp type is audio frames."]
854#[doc = ""]
855#[doc = "The contents of a sequence is a series of LV2_Atom_Event, each aligned"]
856#[doc = "to 64-bits, for example:"]
857#[doc = "<pre>"]
858#[doc = "| Event 1 (size 6)                              | Event 2"]
859#[doc = "|       |       |       |       |       |       |       |       |"]
860#[doc = "| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |"]
861#[doc = "|FRAMES |SUBFRMS|TYPE   |SIZE   |DATADATADATAPAD|FRAMES |SUBFRMS|..."]
862#[doc = "</pre>"]
863#[repr(C)]
864#[derive(Debug, Copy, Clone)]
865pub struct LV2_Atom_Sequence_Body {
866    #[doc = "< URID of unit of event time stamps."]
867    pub unit: u32,
868    #[doc = "< Currently unused."]
869    pub pad: u32,
870}
871#[doc = " An atom:Sequence."]
872#[repr(C)]
873#[derive(Debug, Copy, Clone)]
874pub struct LV2_Atom_Sequence {
875    #[doc = "< Atom header."]
876    pub atom: LV2_Atom,
877    #[doc = "< Body."]
878    pub body: LV2_Atom_Sequence_Body,
879}
880pub type va_list = __builtin_va_list;
881#[doc = " A single entry in an Object query."]
882#[repr(C)]
883#[derive(Debug, Copy, Clone)]
884pub struct LV2_Atom_Object_Query {
885    #[doc = "< Key to query (input set by user)"]
886    pub key: u32,
887    #[doc = "< Found value (output set by query function)"]
888    pub value: *mut *const LV2_Atom,
889}
890extern "C" {
891    pub static LV2_ATOM_OBJECT_QUERY_END: LV2_Atom_Object_Query;
892}
893#[doc = "Opaque pointer to host data for LV2_URID_Map."]
894pub type LV2_URID_Map_Handle = *mut ::std::os::raw::c_void;
895#[doc = "Opaque pointer to host data for LV2_URID_Unmap."]
896pub type LV2_URID_Unmap_Handle = *mut ::std::os::raw::c_void;
897#[doc = "URI mapped to an integer."]
898pub type LV2_URID = u32;
899#[doc = "URID Map Feature (LV2_URID__map)"]
900#[repr(C)]
901#[derive(Debug, Copy, Clone)]
902pub struct LV2_URID_Map {
903    #[doc = "Opaque pointer to host data."]
904    #[doc = ""]
905    #[doc = "This MUST be passed to map_uri() whenever it is called."]
906    #[doc = "Otherwise, it must not be interpreted in any way."]
907    pub handle: LV2_URID_Map_Handle,
908    #[doc = "Get the numeric ID of a URI."]
909    #[doc = ""]
910    #[doc = "If the ID does not already exist, it will be created."]
911    #[doc = ""]
912    #[doc = "This function is referentially transparent; any number of calls with the"]
913    #[doc = "same arguments is guaranteed to return the same value over the life of a"]
914    #[doc = "plugin instance.  Note, however, that several URIs MAY resolve to the"]
915    #[doc = "same ID if the host considers those URIs equivalent."]
916    #[doc = ""]
917    #[doc = "This function is not necessarily very fast or RT-safe: plugins SHOULD"]
918    #[doc = "cache any IDs they might need in performance critical situations."]
919    #[doc = ""]
920    #[doc = "The return value 0 is reserved and indicates that an ID for that URI"]
921    #[doc = "could not be created for whatever reason.  However, hosts SHOULD NOT"]
922    #[doc = "return 0 from this function in non-exceptional circumstances (i.e. the"]
923    #[doc = "URI map SHOULD be dynamic)."]
924    #[doc = ""]
925    #[doc = "@param handle Must be the callback_data member of this struct."]
926    #[doc = "@param uri The URI to be mapped to an integer ID."]
927    pub map: ::std::option::Option<
928        unsafe extern "C" fn(
929            handle: LV2_URID_Map_Handle,
930            uri: *const ::std::os::raw::c_char,
931        ) -> LV2_URID,
932    >,
933}
934#[doc = "URI Unmap Feature (LV2_URID__unmap)"]
935#[repr(C)]
936#[derive(Debug, Copy, Clone)]
937pub struct LV2_URID_Unmap {
938    #[doc = "Opaque pointer to host data."]
939    #[doc = ""]
940    #[doc = "This MUST be passed to unmap() whenever it is called."]
941    #[doc = "Otherwise, it must not be interpreted in any way."]
942    pub handle: LV2_URID_Unmap_Handle,
943    #[doc = "Get the URI for a previously mapped numeric ID."]
944    #[doc = ""]
945    #[doc = "Returns NULL if `urid` is not yet mapped.  Otherwise, the corresponding"]
946    #[doc = "URI is returned in a canonical form.  This MAY not be the exact same"]
947    #[doc = "string that was originally passed to LV2_URID_Map::map(), but it MUST be"]
948    #[doc = "an identical URI according to the URI syntax specification (RFC3986).  A"]
949    #[doc = "non-NULL return for a given `urid` will always be the same for the life"]
950    #[doc = "of the plugin.  Plugins that intend to perform string comparison on"]
951    #[doc = "unmapped URIs SHOULD first canonicalise URI strings with a call to"]
952    #[doc = "map_uri() followed by a call to unmap_uri()."]
953    #[doc = ""]
954    #[doc = "@param handle Must be the callback_data member of this struct."]
955    #[doc = "@param urid The ID to be mapped back to the URI string."]
956    pub unmap: ::std::option::Option<
957        unsafe extern "C" fn(
958            handle: LV2_URID_Unmap_Handle,
959            urid: LV2_URID,
960        ) -> *const ::std::os::raw::c_char,
961    >,
962}
963#[doc = " Handle for LV2_Atom_Forge_Sink."]
964pub type LV2_Atom_Forge_Sink_Handle = *mut ::std::os::raw::c_void;
965#[doc = " A reference to a chunk of written output."]
966pub type LV2_Atom_Forge_Ref = isize;
967#[doc = " Sink function for writing output.  See lv2_atom_forge_set_sink()."]
968pub type LV2_Atom_Forge_Sink = ::std::option::Option<
969    unsafe extern "C" fn(
970        handle: LV2_Atom_Forge_Sink_Handle,
971        buf: *const ::std::os::raw::c_void,
972        size: u32,
973    ) -> LV2_Atom_Forge_Ref,
974>;
975#[doc = " Function for resolving a reference.  See lv2_atom_forge_set_sink()."]
976pub type LV2_Atom_Forge_Deref_Func = ::std::option::Option<
977    unsafe extern "C" fn(
978        handle: LV2_Atom_Forge_Sink_Handle,
979        ref_: LV2_Atom_Forge_Ref,
980    ) -> *mut LV2_Atom,
981>;
982#[doc = " A stack frame used for keeping track of nested Atom containers."]
983#[repr(C)]
984#[derive(Debug, Copy, Clone)]
985pub struct LV2_Atom_Forge_Frame {
986    pub parent: *mut LV2_Atom_Forge_Frame,
987    pub ref_: LV2_Atom_Forge_Ref,
988}
989#[doc = " A \"forge\" for creating atoms by appending to a buffer."]
990#[repr(C)]
991#[derive(Debug, Copy, Clone)]
992pub struct LV2_Atom_Forge {
993    pub buf: *mut u8,
994    pub offset: u32,
995    pub size: u32,
996    pub sink: LV2_Atom_Forge_Sink,
997    pub deref: LV2_Atom_Forge_Deref_Func,
998    pub handle: LV2_Atom_Forge_Sink_Handle,
999    pub stack: *mut LV2_Atom_Forge_Frame,
1000    pub Blank: LV2_URID,
1001    pub Bool: LV2_URID,
1002    pub Chunk: LV2_URID,
1003    pub Double: LV2_URID,
1004    pub Float: LV2_URID,
1005    pub Int: LV2_URID,
1006    pub Long: LV2_URID,
1007    pub Literal: LV2_URID,
1008    pub Object: LV2_URID,
1009    pub Path: LV2_URID,
1010    pub Property: LV2_URID,
1011    pub Resource: LV2_URID,
1012    pub Sequence: LV2_URID,
1013    pub String: LV2_URID,
1014    pub Tuple: LV2_URID,
1015    pub URI: LV2_URID,
1016    pub URID: LV2_URID,
1017    pub Vector: LV2_URID,
1018}
1019#[doc = "Plugin Instance Handle."]
1020#[doc = ""]
1021#[doc = "This is a handle for one particular instance of a plugin.  It is valid to"]
1022#[doc = "compare to NULL (or 0 for C++) but otherwise the host MUST NOT attempt to"]
1023#[doc = "interpret it."]
1024pub type LV2_Handle = *mut ::std::os::raw::c_void;
1025#[doc = "Feature."]
1026#[doc = ""]
1027#[doc = "Features allow hosts to make additional functionality available to plugins"]
1028#[doc = "without requiring modification to the LV2 API.  Extensions may define new"]
1029#[doc = "features and specify the `URI` and `data` to be used if necessary."]
1030#[doc = "Some features, such as lv2:isLive, do not require the host to pass data."]
1031#[repr(C)]
1032#[derive(Debug, Copy, Clone)]
1033pub struct LV2_Feature {
1034    #[doc = "A globally unique, case-sensitive identifier (URI) for this feature."]
1035    #[doc = ""]
1036    #[doc = "This MUST be a valid URI string as defined by RFC 3986."]
1037    pub URI: *const ::std::os::raw::c_char,
1038    #[doc = "Pointer to arbitrary data."]
1039    #[doc = ""]
1040    #[doc = "The format of this data is defined by the extension which describes the"]
1041    #[doc = "feature with the given `URI`."]
1042    pub data: *mut ::std::os::raw::c_void,
1043}
1044#[doc = "Plugin Descriptor."]
1045#[doc = ""]
1046#[doc = "This structure provides the core functions necessary to instantiate and use"]
1047#[doc = "a plugin."]
1048#[repr(C)]
1049#[derive(Debug, Copy, Clone)]
1050pub struct LV2_Descriptor {
1051    #[doc = "A globally unique, case-sensitive identifier for this plugin."]
1052    #[doc = ""]
1053    #[doc = "This MUST be a valid URI string as defined by RFC 3986.  All plugins with"]
1054    #[doc = "the same URI MUST be compatible to some degree, see"]
1055    #[doc = "http://lv2plug.in/ns/lv2core for details."]
1056    pub URI: *const ::std::os::raw::c_char,
1057    #[doc = "Instantiate the plugin."]
1058    #[doc = ""]
1059    #[doc = "Note that instance initialisation should generally occur in activate()"]
1060    #[doc = "rather than here. If a host calls instantiate(), it MUST call cleanup()"]
1061    #[doc = "at some point in the future."]
1062    #[doc = ""]
1063    #[doc = "@param descriptor Descriptor of the plugin to instantiate."]
1064    #[doc = ""]
1065    #[doc = "@param sample_rate Sample rate, in Hz, for the new plugin instance."]
1066    #[doc = ""]
1067    #[doc = "@param bundle_path Path to the LV2 bundle which contains this plugin"]
1068    #[doc = "binary. It MUST include the trailing directory separator so that simply"]
1069    #[doc = "appending a filename will yield the path to that file in the bundle."]
1070    #[doc = ""]
1071    #[doc = "@param features A NULL terminated array of LV2_Feature structs which"]
1072    #[doc = "represent the features the host supports. Plugins may refuse to"]
1073    #[doc = "instantiate if required features are not found here. However, hosts MUST"]
1074    #[doc = "NOT use this as a discovery mechanism: instead, use the RDF data to"]
1075    #[doc = "determine which features are required and do not attempt to instantiate"]
1076    #[doc = "unsupported plugins at all. This parameter MUST NOT be NULL, i.e. a host"]
1077    #[doc = "that supports no features MUST pass a single element array containing"]
1078    #[doc = "NULL."]
1079    #[doc = ""]
1080    #[doc = "@return A handle for the new plugin instance, or NULL if instantiation"]
1081    #[doc = "has failed."]
1082    pub instantiate: ::std::option::Option<
1083        unsafe extern "C" fn(
1084            descriptor: *const LV2_Descriptor,
1085            sample_rate: f64,
1086            bundle_path: *const ::std::os::raw::c_char,
1087            features: *const *const LV2_Feature,
1088        ) -> LV2_Handle,
1089    >,
1090    #[doc = "Connect a port on a plugin instance to a memory location."]
1091    #[doc = ""]
1092    #[doc = "Plugin writers should be aware that the host may elect to use the same"]
1093    #[doc = "buffer for more than one port and even use the same buffer for both"]
1094    #[doc = "input and output (see lv2:inPlaceBroken in lv2.ttl)."]
1095    #[doc = ""]
1096    #[doc = "If the plugin has the feature lv2:hardRTCapable then there are various"]
1097    #[doc = "things that the plugin MUST NOT do within the connect_port() function;"]
1098    #[doc = "see lv2core.ttl for details."]
1099    #[doc = ""]
1100    #[doc = "connect_port() MUST be called at least once for each port before run()"]
1101    #[doc = "is called, unless that port is lv2:connectionOptional. The plugin must"]
1102    #[doc = "pay careful attention to the block size passed to run() since the block"]
1103    #[doc = "allocated may only just be large enough to contain the data, and is not"]
1104    #[doc = "guaranteed to remain constant between run() calls."]
1105    #[doc = ""]
1106    #[doc = "connect_port() may be called more than once for a plugin instance to"]
1107    #[doc = "allow the host to change the buffers that the plugin is reading or"]
1108    #[doc = "writing. These calls may be made before or after activate() or"]
1109    #[doc = "deactivate() calls."]
1110    #[doc = ""]
1111    #[doc = "@param instance Plugin instance containing the port."]
1112    #[doc = ""]
1113    #[doc = "@param port Index of the port to connect. The host MUST NOT try to"]
1114    #[doc = "connect a port index that is not defined in the plugin's RDF data. If"]
1115    #[doc = "it does, the plugin's behaviour is undefined (a crash is likely)."]
1116    #[doc = ""]
1117    #[doc = "@param data_location Pointer to data of the type defined by the port"]
1118    #[doc = "type in the plugin's RDF data (for example, an array of float for an"]
1119    #[doc = "lv2:AudioPort). This pointer must be stored by the plugin instance and"]
1120    #[doc = "used to read/write data when run() is called. Data present at the time"]
1121    #[doc = "of the connect_port() call MUST NOT be considered meaningful."]
1122    pub connect_port: ::std::option::Option<
1123        unsafe extern "C" fn(
1124            instance: LV2_Handle,
1125            port: u32,
1126            data_location: *mut ::std::os::raw::c_void,
1127        ),
1128    >,
1129    #[doc = "Initialise a plugin instance and activate it for use."]
1130    #[doc = ""]
1131    #[doc = "This is separated from instantiate() to aid real-time support and so"]
1132    #[doc = "that hosts can reinitialise a plugin instance by calling deactivate()"]
1133    #[doc = "and then activate(). In this case the plugin instance MUST reset all"]
1134    #[doc = "state information dependent on the history of the plugin instance except"]
1135    #[doc = "for any data locations provided by connect_port(). If there is nothing"]
1136    #[doc = "for activate() to do then this field may be NULL."]
1137    #[doc = ""]
1138    #[doc = "When present, hosts MUST call this function once before run() is called"]
1139    #[doc = "for the first time. This call SHOULD be made as close to the run() call"]
1140    #[doc = "as possible and indicates to real-time plugins that they are now live,"]
1141    #[doc = "however plugins MUST NOT rely on a prompt call to run() after"]
1142    #[doc = "activate()."]
1143    #[doc = ""]
1144    #[doc = "The host MUST NOT call activate() again until deactivate() has been"]
1145    #[doc = "called first. If a host calls activate(), it MUST call deactivate() at"]
1146    #[doc = "some point in the future. Note that connect_port() may be called before"]
1147    #[doc = "or after activate()."]
1148    pub activate: ::std::option::Option<unsafe extern "C" fn(instance: LV2_Handle)>,
1149    #[doc = "Run a plugin instance for a block."]
1150    #[doc = ""]
1151    #[doc = "Note that if an activate() function exists then it must be called before"]
1152    #[doc = "run(). If deactivate() is called for a plugin instance then run() may"]
1153    #[doc = "not be called until activate() has been called again."]
1154    #[doc = ""]
1155    #[doc = "If the plugin has the feature lv2:hardRTCapable then there are various"]
1156    #[doc = "things that the plugin MUST NOT do within the run() function (see"]
1157    #[doc = "lv2core.ttl for details)."]
1158    #[doc = ""]
1159    #[doc = "As a special case, when `sample_count` is 0, the plugin should update"]
1160    #[doc = "any output ports that represent a single instant in time (for example,"]
1161    #[doc = "control ports, but not audio ports). This is particularly useful for"]
1162    #[doc = "latent plugins, which should update their latency output port so hosts"]
1163    #[doc = "can pre-roll plugins to compute latency. Plugins MUST NOT crash when"]
1164    #[doc = "`sample_count` is 0."]
1165    #[doc = ""]
1166    #[doc = "@param instance Instance to be run."]
1167    #[doc = ""]
1168    #[doc = "@param sample_count The block size (in samples) for which the plugin"]
1169    #[doc = "instance must run."]
1170    pub run: ::std::option::Option<unsafe extern "C" fn(instance: LV2_Handle, sample_count: u32)>,
1171    #[doc = "Deactivate a plugin instance (counterpart to activate())."]
1172    #[doc = ""]
1173    #[doc = "Hosts MUST deactivate all activated instances after they have been run()"]
1174    #[doc = "for the last time. This call SHOULD be made as close to the last run()"]
1175    #[doc = "call as possible and indicates to real-time plugins that they are no"]
1176    #[doc = "longer live, however plugins MUST NOT rely on prompt deactivation. If"]
1177    #[doc = "there is nothing for deactivate() to do then this field may be NULL"]
1178    #[doc = ""]
1179    #[doc = "Deactivation is not similar to pausing since the plugin instance will be"]
1180    #[doc = "reinitialised by activate(). However, deactivate() itself MUST NOT fully"]
1181    #[doc = "reset plugin state. For example, the host may deactivate a plugin, then"]
1182    #[doc = "store its state (using some extension to do so)."]
1183    #[doc = ""]
1184    #[doc = "Hosts MUST NOT call deactivate() unless activate() was previously"]
1185    #[doc = "called. Note that connect_port() may be called before or after"]
1186    #[doc = "deactivate()."]
1187    pub deactivate: ::std::option::Option<unsafe extern "C" fn(instance: LV2_Handle)>,
1188    #[doc = "Clean up a plugin instance (counterpart to instantiate())."]
1189    #[doc = ""]
1190    #[doc = "Once an instance of a plugin has been finished with it must be deleted"]
1191    #[doc = "using this function. The instance handle passed ceases to be valid after"]
1192    #[doc = "this call."]
1193    #[doc = ""]
1194    #[doc = "If activate() was called for a plugin instance then a corresponding call"]
1195    #[doc = "to deactivate() MUST be made before cleanup() is called. Hosts MUST NOT"]
1196    #[doc = "call cleanup() unless instantiate() was previously called."]
1197    pub cleanup: ::std::option::Option<unsafe extern "C" fn(instance: LV2_Handle)>,
1198    #[doc = "Return additional plugin data defined by some extenion."]
1199    #[doc = ""]
1200    #[doc = "A typical use of this facility is to return a struct containing function"]
1201    #[doc = "pointers to extend the LV2_Descriptor API."]
1202    #[doc = ""]
1203    #[doc = "The actual type and meaning of the returned object MUST be specified"]
1204    #[doc = "precisely by the extension. This function MUST return NULL for any"]
1205    #[doc = "unsupported URI. If a plugin does not support any extension data, this"]
1206    #[doc = "field may be NULL."]
1207    #[doc = ""]
1208    #[doc = "The host is never responsible for freeing the returned value."]
1209    pub extension_data: ::std::option::Option<
1210        unsafe extern "C" fn(uri: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_void,
1211    >,
1212}
1213#[doc = "Type of the lv2_descriptor() function in a library (old discovery API)."]
1214pub type LV2_Descriptor_Function =
1215    ::std::option::Option<unsafe extern "C" fn(index: u32) -> *const LV2_Descriptor>;
1216#[doc = "Handle for a library descriptor."]
1217pub type LV2_Lib_Handle = *mut ::std::os::raw::c_void;
1218#[doc = "Descriptor for a plugin library."]
1219#[doc = ""]
1220#[doc = "To access a plugin library, the host creates an LV2_Lib_Descriptor via the"]
1221#[doc = "lv2_lib_descriptor() function in the shared object."]
1222#[repr(C)]
1223#[derive(Debug, Copy, Clone)]
1224pub struct LV2_Lib_Descriptor {
1225    #[doc = "Opaque library data which must be passed as the first parameter to all"]
1226    #[doc = "the methods of this struct."]
1227    pub handle: LV2_Lib_Handle,
1228    #[doc = "The total size of this struct.  This allows for this struct to be"]
1229    #[doc = "expanded in the future if necessary.  This MUST be set by the library to"]
1230    #[doc = "sizeof(LV2_Lib_Descriptor).  The host MUST NOT access any fields of this"]
1231    #[doc = "struct beyond get_plugin() unless this field indicates they are present."]
1232    pub size: u32,
1233    #[doc = "Destroy this library descriptor and free all related resources."]
1234    pub cleanup: ::std::option::Option<unsafe extern "C" fn(handle: LV2_Lib_Handle)>,
1235    #[doc = "Plugin accessor."]
1236    #[doc = ""]
1237    #[doc = "Plugins are accessed by index using values from 0 upwards.  Out of range"]
1238    #[doc = "indices MUST result in this function returning NULL, so the host can"]
1239    #[doc = "enumerate plugins by increasing `index` until NULL is returned."]
1240    pub get_plugin: ::std::option::Option<
1241        unsafe extern "C" fn(handle: LV2_Lib_Handle, index: u32) -> *const LV2_Descriptor,
1242    >,
1243}
1244#[doc = "Type of the lv2_lib_descriptor() function in an LV2 library."]
1245pub type LV2_Lib_Descriptor_Function = ::std::option::Option<
1246    unsafe extern "C" fn(
1247        bundle_path: *const ::std::os::raw::c_char,
1248        features: *const *const LV2_Feature,
1249    ) -> *const LV2_Lib_Descriptor,
1250>;
1251#[doc = "The data field of the LV2_Feature for this extension."]
1252#[doc = ""]
1253#[doc = "To support this feature the host must pass an LV2_Feature struct to the"]
1254#[doc = "instantiate method with URI \"http://lv2plug.in/ns/ext/data-access\""]
1255#[doc = "and data pointed to an instance of this struct."]
1256#[repr(C)]
1257#[derive(Debug, Copy, Clone)]
1258pub struct LV2_Extension_Data_Feature {
1259    #[doc = "A pointer to a method the UI can call to get data (of a type specified"]
1260    #[doc = "by some other extension) from the plugin."]
1261    #[doc = ""]
1262    #[doc = "This call never is never guaranteed to return anything, UIs should"]
1263    #[doc = "degrade gracefully if direct access to the plugin data is not possible"]
1264    #[doc = "(in which case this function will return NULL)."]
1265    #[doc = ""]
1266    #[doc = "This is for access to large data that can only possibly work if the UI"]
1267    #[doc = "and plugin are running in the same process.  For all other things, use"]
1268    #[doc = "the normal LV2 UI communication system."]
1269    pub data_access: ::std::option::Option<
1270        unsafe extern "C" fn(uri: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_void,
1271    >,
1272}
1273#[doc = "Dynamic manifest generator handle."]
1274#[doc = ""]
1275#[doc = "This handle indicates a particular status of a dynamic manifest generator."]
1276#[doc = "The host MUST NOT attempt to interpret it and, unlikely LV2_Handle, it is"]
1277#[doc = "NOT even valid to compare this to NULL. The dynamic manifest generator MAY"]
1278#[doc = "use it to reference internal data."]
1279pub type LV2_Dyn_Manifest_Handle = *mut ::std::os::raw::c_void;
1280pub const LV2_EVENT_PPQN: u32 = 3136573440;
1281#[doc = "An LV2 event (header only)."]
1282#[doc = ""]
1283#[doc = "LV2 events are generic time-stamped containers for any type of event."]
1284#[doc = "The type field defines the format of a given event's contents."]
1285#[doc = ""]
1286#[doc = "This struct defines the header of an LV2 event. An LV2 event is a single"]
1287#[doc = "chunk of POD (plain old data), usually contained in a flat buffer (see"]
1288#[doc = "LV2_EventBuffer below). Unless a required feature says otherwise, hosts may"]
1289#[doc = "assume a deep copy of an LV2 event can be created safely using a simple:"]
1290#[doc = ""]
1291#[doc = "memcpy(ev_copy, ev, sizeof(LV2_Event) + ev->size);  (or equivalent)"]
1292#[repr(C)]
1293#[derive(Debug, Copy, Clone)]
1294pub struct LV2_Event {
1295    #[doc = "The frames portion of timestamp. The units used here can optionally be"]
1296    #[doc = "set for a port (with the lv2ev:timeUnits property), otherwise this is"]
1297    #[doc = "audio frames, corresponding to the sample_count parameter of the LV2 run"]
1298    #[doc = "method (frame 0 is the first frame for that call to run)."]
1299    pub frames: u32,
1300    #[doc = "The sub-frames portion of timestamp. The units used here can optionally"]
1301    #[doc = "be set for a port (with the lv2ev:timeUnits property), otherwise this is"]
1302    #[doc = "1/(2^32) of an audio frame."]
1303    pub subframes: u32,
1304    #[doc = "The type of this event, as a number which represents some URI"]
1305    #[doc = "defining an event type. This value MUST be some value previously"]
1306    #[doc = "returned from a call to the uri_to_id function defined in the LV2"]
1307    #[doc = "URI map extension (see lv2_uri_map.h)."]
1308    #[doc = "There are special rules which must be followed depending on the type"]
1309    #[doc = "of an event. If the plugin recognizes an event type, the definition"]
1310    #[doc = "of that event type will describe how to interpret the event, and"]
1311    #[doc = "any required behaviour. Otherwise, if the type is 0, this event is a"]
1312    #[doc = "non-POD event and lv2_event_unref MUST be called if the event is"]
1313    #[doc = "'dropped' (see above). Even if the plugin does not understand an event,"]
1314    #[doc = "it may pass the event through to an output by simply copying (and NOT"]
1315    #[doc = "calling lv2_event_unref). These rules are designed to allow for generic"]
1316    #[doc = "event handling plugins and large non-POD events, but with minimal hassle"]
1317    #[doc = "on simple plugins that \"don't care\" about these more advanced features."]
1318    pub type_: u16,
1319    #[doc = "The size of the data portion of this event in bytes, which immediately"]
1320    #[doc = "follows. The header size (12 bytes) is not included in this value."]
1321    pub size: u16,
1322}
1323#[doc = "A buffer of LV2 events (header only)."]
1324#[doc = ""]
1325#[doc = "Like events (which this contains) an event buffer is a single chunk of POD:"]
1326#[doc = "the entire buffer (including contents) can be copied with a single memcpy."]
1327#[doc = "The first contained event begins sizeof(LV2_EventBuffer) bytes after the"]
1328#[doc = "start of this struct."]
1329#[doc = ""]
1330#[doc = "After this header, the buffer contains an event header (defined by struct"]
1331#[doc = "LV2_Event), followed by that event's contents (padded to 64 bits), followed"]
1332#[doc = "by another header, etc:"]
1333#[doc = ""]
1334#[doc = "|       |       |       |       |       |       |"]
1335#[doc = "| | | | | | | | | | | | | | | | | | | | | | | | |"]
1336#[doc = "|FRAMES |SUBFRMS|TYP|LEN|DATA..DATA..PAD|FRAMES | ..."]
1337#[repr(C)]
1338#[derive(Debug, Copy, Clone)]
1339pub struct LV2_Event_Buffer {
1340    #[doc = "The contents of the event buffer. This may or may not reside in the"]
1341    #[doc = "same block of memory as this header, plugins must not assume either."]
1342    #[doc = "The host guarantees this points to at least capacity bytes of allocated"]
1343    #[doc = "memory (though only size bytes of that are valid events)."]
1344    pub data: *mut u8,
1345    #[doc = "The size of this event header in bytes (including everything)."]
1346    #[doc = ""]
1347    #[doc = "This is to allow for extending this header in the future without"]
1348    #[doc = "breaking binary compatibility. Whenever this header is copied,"]
1349    #[doc = "it MUST be done using this field (and NOT the sizeof this struct)."]
1350    pub header_size: u16,
1351    #[doc = "The type of the time stamps for events in this buffer."]
1352    #[doc = "As a special exception, '0' always means audio frames and subframes"]
1353    #[doc = "(1/UINT32_MAX'th of a frame) in the sample rate passed to instantiate."]
1354    #[doc = ""]
1355    #[doc = "INPUTS: The host must set this field to the numeric ID of some URI"]
1356    #[doc = "defining the meaning of the frames/subframes fields of contained events"]
1357    #[doc = "(obtained by the LV2 URI Map uri_to_id function with the URI of this"]
1358    #[doc = "extension as the 'map' argument, see lv2_uri_map.h).  The host must"]
1359    #[doc = "never pass a plugin a buffer which uses a stamp type the plugin does not"]
1360    #[doc = "'understand'. The value of this field must never change, except when"]
1361    #[doc = "connect_port is called on the input port, at which time the host MUST"]
1362    #[doc = "have set the stamp_type field to the value that will be used for all"]
1363    #[doc = "subsequent run calls."]
1364    #[doc = ""]
1365    #[doc = "OUTPUTS: The plugin may set this to any value that has been returned"]
1366    #[doc = "from uri_to_id with the URI of this extension for a 'map' argument."]
1367    #[doc = "When connected to a buffer with connect_port, output ports MUST set this"]
1368    #[doc = "field to the type of time stamp they will be writing. On any call to"]
1369    #[doc = "connect_port on an event input port, the plugin may change this field on"]
1370    #[doc = "any output port, it is the responsibility of the host to check if any of"]
1371    #[doc = "these values have changed and act accordingly."]
1372    pub stamp_type: u16,
1373    #[doc = "The number of events in this buffer."]
1374    #[doc = ""]
1375    #[doc = "INPUTS: The host must set this field to the number of events contained"]
1376    #[doc = "in the data buffer before calling run(). The plugin must not change"]
1377    #[doc = "this field."]
1378    #[doc = ""]
1379    #[doc = "OUTPUTS: The plugin must set this field to the number of events it has"]
1380    #[doc = "written to the buffer before returning from run(). Any initial value"]
1381    #[doc = "should be ignored by the plugin."]
1382    pub event_count: u32,
1383    #[doc = "The size of the data buffer in bytes."]
1384    #[doc = "This is set by the host and must not be changed by the plugin."]
1385    #[doc = "The host is allowed to change this between run() calls."]
1386    pub capacity: u32,
1387    #[doc = "The size of the initial portion of the data buffer containing data."]
1388    #[doc = ""]
1389    #[doc = "INPUTS: The host must set this field to the number of bytes used"]
1390    #[doc = "by all events it has written to the buffer (including headers)"]
1391    #[doc = "before calling the plugin's run()."]
1392    #[doc = "The plugin must not change this field."]
1393    #[doc = ""]
1394    #[doc = "OUTPUTS: The plugin must set this field to the number of bytes"]
1395    #[doc = "used by all events it has written to the buffer (including headers)"]
1396    #[doc = "before returning from run()."]
1397    #[doc = "Any initial value should be ignored by the plugin."]
1398    pub size: u32,
1399}
1400pub type LV2_Event_Callback_Data = *mut ::std::os::raw::c_void;
1401#[doc = "Non-POD events feature."]
1402#[doc = ""]
1403#[doc = "To support this feature the host must pass an LV2_Feature struct to the"]
1404#[doc = "plugin's instantiate method with URI \"http://lv2plug.in/ns/ext/event\""]
1405#[doc = "and data pointed to an instance of this struct.  Note this feature"]
1406#[doc = "is not mandatory to support the event extension."]
1407#[repr(C)]
1408#[derive(Debug, Copy, Clone)]
1409pub struct LV2_Event_Feature {
1410    #[doc = "Opaque pointer to host data."]
1411    #[doc = ""]
1412    #[doc = "The plugin MUST pass this to any call to functions in this struct."]
1413    #[doc = "Otherwise, it must not be interpreted in any way."]
1414    pub callback_data: LV2_Event_Callback_Data,
1415    #[doc = "Take a reference to a non-POD event."]
1416    #[doc = ""]
1417    #[doc = "If a plugin receives an event with type 0, it means the event is a"]
1418    #[doc = "pointer to some object in memory and not a flat sequence of bytes"]
1419    #[doc = "in the buffer. When receiving a non-POD event, the plugin already"]
1420    #[doc = "has an implicit reference to the event. If the event is stored AND"]
1421    #[doc = "passed to an output, lv2_event_ref MUST be called on that event."]
1422    #[doc = "If the event is only stored OR passed through, this is not necessary"]
1423    #[doc = "(as the plugin already has 1 implicit reference)."]
1424    #[doc = ""]
1425    #[doc = "@param event An event received at an input that will not be copied to"]
1426    #[doc = "an output or stored in any way."]
1427    #[doc = ""]
1428    #[doc = "@param context The calling context. Like event types, this is a mapped"]
1429    #[doc = "URI, see lv2_context.h. Simple plugin with just a run() method should"]
1430    #[doc = "pass 0 here (the ID of the 'standard' LV2 run context). The host"]
1431    #[doc = "guarantees that this function is realtime safe iff the context is"]
1432    #[doc = "realtime safe."]
1433    #[doc = ""]
1434    #[doc = "PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS."]
1435    pub lv2_event_ref: ::std::option::Option<
1436        unsafe extern "C" fn(callback_data: LV2_Event_Callback_Data, event: *mut LV2_Event) -> u32,
1437    >,
1438    #[doc = "Drop a reference to a non-POD event."]
1439    #[doc = ""]
1440    #[doc = "If a plugin receives an event with type 0, it means the event is a"]
1441    #[doc = "pointer to some object in memory and not a flat sequence of bytes"]
1442    #[doc = "in the buffer. If the plugin does not pass the event through to"]
1443    #[doc = "an output or store it internally somehow, it MUST call this function"]
1444    #[doc = "on the event (more information on using non-POD events below)."]
1445    #[doc = ""]
1446    #[doc = "@param event An event received at an input that will not be copied to an"]
1447    #[doc = "output or stored in any way."]
1448    #[doc = ""]
1449    #[doc = "@param context The calling context. Like event types, this is a mapped"]
1450    #[doc = "URI, see lv2_context.h. Simple plugin with just a run() method should"]
1451    #[doc = "pass 0 here (the ID of the 'standard' LV2 run context). The host"]
1452    #[doc = "guarantees that this function is realtime safe iff the context is"]
1453    #[doc = "realtime safe."]
1454    #[doc = ""]
1455    #[doc = "PLUGINS THAT VIOLATE THESE RULES MAY CAUSE CRASHES AND MEMORY LEAKS."]
1456    pub lv2_event_unref: ::std::option::Option<
1457        unsafe extern "C" fn(callback_data: LV2_Event_Callback_Data, event: *mut LV2_Event) -> u32,
1458    >,
1459}
1460#[doc = " An iterator over an LV2_Event_Buffer."]
1461#[doc = ""]
1462#[doc = " Multiple simultaneous read iterators over a single buffer is fine,"]
1463#[doc = " but changing the buffer invalidates all iterators."]
1464#[repr(C)]
1465#[derive(Debug, Copy, Clone)]
1466pub struct LV2_Event_Iterator {
1467    pub buf: *mut LV2_Event_Buffer,
1468    pub offset: u32,
1469}
1470#[doc = "Opaque data to host data for LV2_Log_Log."]
1471pub type LV2_Log_Handle = *mut ::std::os::raw::c_void;
1472#[doc = "Log feature (LV2_LOG__log)"]
1473#[repr(C)]
1474#[derive(Debug, Copy, Clone)]
1475pub struct LV2_Log_Log {
1476    #[doc = "Opaque pointer to host data."]
1477    #[doc = ""]
1478    #[doc = "This MUST be passed to methods in this struct whenever they are called."]
1479    #[doc = "Otherwise, it must not be interpreted in any way."]
1480    pub handle: LV2_Log_Handle,
1481    #[doc = "Log a message, passing format parameters directly."]
1482    #[doc = ""]
1483    #[doc = "The API of this function matches that of the standard C printf function,"]
1484    #[doc = "except for the addition of the first two parameters.  This function may"]
1485    #[doc = "be called from any non-realtime context, or from any context if `type`"]
1486    #[doc = "is @ref LV2_LOG__Trace."]
1487    pub printf: ::std::option::Option<
1488        unsafe extern "C" fn(
1489            handle: LV2_Log_Handle,
1490            type_: LV2_URID,
1491            fmt: *const ::std::os::raw::c_char,
1492            ...
1493        ) -> ::std::os::raw::c_int,
1494    >,
1495    #[doc = "Log a message, passing format parameters in a va_list."]
1496    #[doc = ""]
1497    #[doc = "The API of this function matches that of the standard C vprintf"]
1498    #[doc = "function, except for the addition of the first two parameters.  This"]
1499    #[doc = "function may be called from any non-realtime context, or from any"]
1500    #[doc = "context if `type` is @ref LV2_LOG__Trace."]
1501    pub vprintf: ::std::option::Option<
1502        unsafe extern "C" fn(
1503            handle: LV2_Log_Handle,
1504            type_: LV2_URID,
1505            fmt: *const ::std::os::raw::c_char,
1506            ap: *mut __va_list_tag,
1507        ) -> ::std::os::raw::c_int,
1508    >,
1509}
1510#[doc = "Logger convenience API state."]
1511#[repr(C)]
1512#[derive(Debug, Copy, Clone)]
1513pub struct LV2_Log_Logger {
1514    pub log: *mut LV2_Log_Log,
1515    pub Error: LV2_URID,
1516    pub Note: LV2_URID,
1517    pub Trace: LV2_URID,
1518    pub Warning: LV2_URID,
1519}
1520#[doc = "< Invalid Message"]
1521pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_INVALID: LV2_Midi_Message_Type = 0;
1522#[doc = "< Note Off"]
1523pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_NOTE_OFF: LV2_Midi_Message_Type = 128;
1524#[doc = "< Note On"]
1525pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_NOTE_ON: LV2_Midi_Message_Type = 144;
1526#[doc = "< Note Pressure"]
1527pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_NOTE_PRESSURE: LV2_Midi_Message_Type = 160;
1528#[doc = "< Controller"]
1529pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_CONTROLLER: LV2_Midi_Message_Type = 176;
1530#[doc = "< Program Change"]
1531pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_PGM_CHANGE: LV2_Midi_Message_Type = 192;
1532#[doc = "< Channel Pressure"]
1533pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_CHANNEL_PRESSURE: LV2_Midi_Message_Type = 208;
1534#[doc = "< Pitch Bender"]
1535pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_BENDER: LV2_Midi_Message_Type = 224;
1536#[doc = "< System Exclusive Begin"]
1537pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_SYSTEM_EXCLUSIVE: LV2_Midi_Message_Type = 240;
1538#[doc = "< MTC Quarter Frame"]
1539pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_MTC_QUARTER: LV2_Midi_Message_Type = 241;
1540#[doc = "< Song Position"]
1541pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_SONG_POS: LV2_Midi_Message_Type = 242;
1542#[doc = "< Song Select"]
1543pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_SONG_SELECT: LV2_Midi_Message_Type = 243;
1544#[doc = "< Tune Request"]
1545pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_TUNE_REQUEST: LV2_Midi_Message_Type = 246;
1546#[doc = "< Clock"]
1547pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_CLOCK: LV2_Midi_Message_Type = 248;
1548#[doc = "< Start"]
1549pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_START: LV2_Midi_Message_Type = 250;
1550#[doc = "< Continue"]
1551pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_CONTINUE: LV2_Midi_Message_Type = 251;
1552#[doc = "< Stop"]
1553pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_STOP: LV2_Midi_Message_Type = 252;
1554#[doc = "< Active Sensing"]
1555pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_ACTIVE_SENSE: LV2_Midi_Message_Type = 254;
1556#[doc = "< Reset"]
1557pub const LV2_Midi_Message_Type_LV2_MIDI_MSG_RESET: LV2_Midi_Message_Type = 255;
1558#[doc = "MIDI Message Type."]
1559#[doc = ""]
1560#[doc = "This includes both voice messages (which have a channel) and system messages"]
1561#[doc = "(which do not), as well as a sentinel value for invalid messages.  To get"]
1562#[doc = "the type of a message suitable for use in a switch statement, use"]
1563#[doc = "lv2_midi_get_type() on the status byte."]
1564pub type LV2_Midi_Message_Type = u32;
1565#[doc = "< Bank Selection"]
1566pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_BANK: LV2_Midi_Controller = 0;
1567#[doc = "< Modulation"]
1568pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_MODWHEEL: LV2_Midi_Controller = 1;
1569#[doc = "< Breath"]
1570pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_BREATH: LV2_Midi_Controller = 2;
1571#[doc = "< Foot"]
1572pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_FOOT: LV2_Midi_Controller = 4;
1573#[doc = "< Portamento Time"]
1574pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_PORTAMENTO_TIME: LV2_Midi_Controller = 5;
1575#[doc = "< Data Entry"]
1576pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_DATA_ENTRY: LV2_Midi_Controller = 6;
1577#[doc = "< Main Volume"]
1578pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_MAIN_VOLUME: LV2_Midi_Controller = 7;
1579#[doc = "< Balance"]
1580pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_BALANCE: LV2_Midi_Controller = 8;
1581#[doc = "< Panpot"]
1582pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_PAN: LV2_Midi_Controller = 10;
1583#[doc = "< Expression"]
1584pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_EXPRESSION: LV2_Midi_Controller = 11;
1585#[doc = "< Effect1"]
1586pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_EFFECT1: LV2_Midi_Controller = 12;
1587#[doc = "< Effect2"]
1588pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_EFFECT2: LV2_Midi_Controller = 13;
1589#[doc = "< General Purpose 1"]
1590pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_GENERAL_PURPOSE1: LV2_Midi_Controller = 16;
1591#[doc = "< General Purpose 2"]
1592pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_GENERAL_PURPOSE2: LV2_Midi_Controller = 17;
1593#[doc = "< General Purpose 3"]
1594pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_GENERAL_PURPOSE3: LV2_Midi_Controller = 18;
1595#[doc = "< General Purpose 4"]
1596pub const LV2_Midi_Controller_LV2_MIDI_CTL_MSB_GENERAL_PURPOSE4: LV2_Midi_Controller = 19;
1597#[doc = "< Bank Selection"]
1598pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_BANK: LV2_Midi_Controller = 32;
1599#[doc = "< Modulation"]
1600pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_MODWHEEL: LV2_Midi_Controller = 33;
1601#[doc = "< Breath"]
1602pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_BREATH: LV2_Midi_Controller = 34;
1603#[doc = "< Foot"]
1604pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_FOOT: LV2_Midi_Controller = 36;
1605#[doc = "< Portamento Time"]
1606pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_PORTAMENTO_TIME: LV2_Midi_Controller = 37;
1607#[doc = "< Data Entry"]
1608pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_DATA_ENTRY: LV2_Midi_Controller = 38;
1609#[doc = "< Main Volume"]
1610pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_MAIN_VOLUME: LV2_Midi_Controller = 39;
1611#[doc = "< Balance"]
1612pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_BALANCE: LV2_Midi_Controller = 40;
1613#[doc = "< Panpot"]
1614pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_PAN: LV2_Midi_Controller = 42;
1615#[doc = "< Expression"]
1616pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_EXPRESSION: LV2_Midi_Controller = 43;
1617#[doc = "< Effect1"]
1618pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_EFFECT1: LV2_Midi_Controller = 44;
1619#[doc = "< Effect2"]
1620pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_EFFECT2: LV2_Midi_Controller = 45;
1621#[doc = "< General Purpose 1"]
1622pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_GENERAL_PURPOSE1: LV2_Midi_Controller = 48;
1623#[doc = "< General Purpose 2"]
1624pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_GENERAL_PURPOSE2: LV2_Midi_Controller = 49;
1625#[doc = "< General Purpose 3"]
1626pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_GENERAL_PURPOSE3: LV2_Midi_Controller = 50;
1627#[doc = "< General Purpose 4"]
1628pub const LV2_Midi_Controller_LV2_MIDI_CTL_LSB_GENERAL_PURPOSE4: LV2_Midi_Controller = 51;
1629#[doc = "< Sustain Pedal"]
1630pub const LV2_Midi_Controller_LV2_MIDI_CTL_SUSTAIN: LV2_Midi_Controller = 64;
1631#[doc = "< Portamento"]
1632pub const LV2_Midi_Controller_LV2_MIDI_CTL_PORTAMENTO: LV2_Midi_Controller = 65;
1633#[doc = "< Sostenuto"]
1634pub const LV2_Midi_Controller_LV2_MIDI_CTL_SOSTENUTO: LV2_Midi_Controller = 66;
1635#[doc = "< Soft Pedal"]
1636pub const LV2_Midi_Controller_LV2_MIDI_CTL_SOFT_PEDAL: LV2_Midi_Controller = 67;
1637#[doc = "< Legato Foot Switch"]
1638pub const LV2_Midi_Controller_LV2_MIDI_CTL_LEGATO_FOOTSWITCH: LV2_Midi_Controller = 68;
1639#[doc = "< Hold2"]
1640pub const LV2_Midi_Controller_LV2_MIDI_CTL_HOLD2: LV2_Midi_Controller = 69;
1641#[doc = "< SC1 Sound Variation"]
1642pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC1_SOUND_VARIATION: LV2_Midi_Controller = 70;
1643#[doc = "< SC2 Timbre"]
1644pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC2_TIMBRE: LV2_Midi_Controller = 71;
1645#[doc = "< SC3 Release Time"]
1646pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC3_RELEASE_TIME: LV2_Midi_Controller = 72;
1647#[doc = "< SC4 Attack Time"]
1648pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC4_ATTACK_TIME: LV2_Midi_Controller = 73;
1649#[doc = "< SC5 Brightness"]
1650pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC5_BRIGHTNESS: LV2_Midi_Controller = 74;
1651#[doc = "< SC6"]
1652pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC6: LV2_Midi_Controller = 75;
1653#[doc = "< SC7"]
1654pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC7: LV2_Midi_Controller = 76;
1655#[doc = "< SC8"]
1656pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC8: LV2_Midi_Controller = 77;
1657#[doc = "< SC9"]
1658pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC9: LV2_Midi_Controller = 78;
1659#[doc = "< SC10"]
1660pub const LV2_Midi_Controller_LV2_MIDI_CTL_SC10: LV2_Midi_Controller = 79;
1661#[doc = "< General Purpose 5"]
1662pub const LV2_Midi_Controller_LV2_MIDI_CTL_GENERAL_PURPOSE5: LV2_Midi_Controller = 80;
1663#[doc = "< General Purpose 6"]
1664pub const LV2_Midi_Controller_LV2_MIDI_CTL_GENERAL_PURPOSE6: LV2_Midi_Controller = 81;
1665#[doc = "< General Purpose 7"]
1666pub const LV2_Midi_Controller_LV2_MIDI_CTL_GENERAL_PURPOSE7: LV2_Midi_Controller = 82;
1667#[doc = "< General Purpose 8"]
1668pub const LV2_Midi_Controller_LV2_MIDI_CTL_GENERAL_PURPOSE8: LV2_Midi_Controller = 83;
1669#[doc = "< Portamento Control"]
1670pub const LV2_Midi_Controller_LV2_MIDI_CTL_PORTAMENTO_CONTROL: LV2_Midi_Controller = 84;
1671#[doc = "< E1 Reverb Depth"]
1672pub const LV2_Midi_Controller_LV2_MIDI_CTL_E1_REVERB_DEPTH: LV2_Midi_Controller = 91;
1673#[doc = "< E2 Tremolo Depth"]
1674pub const LV2_Midi_Controller_LV2_MIDI_CTL_E2_TREMOLO_DEPTH: LV2_Midi_Controller = 92;
1675#[doc = "< E3 Chorus Depth"]
1676pub const LV2_Midi_Controller_LV2_MIDI_CTL_E3_CHORUS_DEPTH: LV2_Midi_Controller = 93;
1677#[doc = "< E4 Detune Depth"]
1678pub const LV2_Midi_Controller_LV2_MIDI_CTL_E4_DETUNE_DEPTH: LV2_Midi_Controller = 94;
1679#[doc = "< E5 Phaser Depth"]
1680pub const LV2_Midi_Controller_LV2_MIDI_CTL_E5_PHASER_DEPTH: LV2_Midi_Controller = 95;
1681#[doc = "< Data Increment"]
1682pub const LV2_Midi_Controller_LV2_MIDI_CTL_DATA_INCREMENT: LV2_Midi_Controller = 96;
1683#[doc = "< Data Decrement"]
1684pub const LV2_Midi_Controller_LV2_MIDI_CTL_DATA_DECREMENT: LV2_Midi_Controller = 97;
1685#[doc = "< Non-registered Parameter Number"]
1686pub const LV2_Midi_Controller_LV2_MIDI_CTL_NRPN_LSB: LV2_Midi_Controller = 98;
1687#[doc = "< Non-registered Parameter Number"]
1688pub const LV2_Midi_Controller_LV2_MIDI_CTL_NRPN_MSB: LV2_Midi_Controller = 99;
1689#[doc = "< Registered Parameter Number"]
1690pub const LV2_Midi_Controller_LV2_MIDI_CTL_RPN_LSB: LV2_Midi_Controller = 100;
1691#[doc = "< Registered Parameter Number"]
1692pub const LV2_Midi_Controller_LV2_MIDI_CTL_RPN_MSB: LV2_Midi_Controller = 101;
1693#[doc = "< All Sounds Off"]
1694pub const LV2_Midi_Controller_LV2_MIDI_CTL_ALL_SOUNDS_OFF: LV2_Midi_Controller = 120;
1695#[doc = "< Reset Controllers"]
1696pub const LV2_Midi_Controller_LV2_MIDI_CTL_RESET_CONTROLLERS: LV2_Midi_Controller = 121;
1697#[doc = "< Local Control Switch"]
1698pub const LV2_Midi_Controller_LV2_MIDI_CTL_LOCAL_CONTROL_SWITCH: LV2_Midi_Controller = 122;
1699#[doc = "< All Notes Off"]
1700pub const LV2_Midi_Controller_LV2_MIDI_CTL_ALL_NOTES_OFF: LV2_Midi_Controller = 123;
1701#[doc = "< Omni Off"]
1702pub const LV2_Midi_Controller_LV2_MIDI_CTL_OMNI_OFF: LV2_Midi_Controller = 124;
1703#[doc = "< Omni On"]
1704pub const LV2_Midi_Controller_LV2_MIDI_CTL_OMNI_ON: LV2_Midi_Controller = 125;
1705#[doc = "< Mono1"]
1706pub const LV2_Midi_Controller_LV2_MIDI_CTL_MONO1: LV2_Midi_Controller = 126;
1707#[doc = "< Mono2"]
1708pub const LV2_Midi_Controller_LV2_MIDI_CTL_MONO2: LV2_Midi_Controller = 127;
1709#[doc = "Standard MIDI Controller Numbers."]
1710pub type LV2_Midi_Controller = u32;
1711#[doc = "This option applies to the instance itself.  The subject must be"]
1712#[doc = "ignored."]
1713pub const LV2_Options_Context_LV2_OPTIONS_INSTANCE: LV2_Options_Context = 0;
1714#[doc = "This option applies to some named resource.  The subject is a URI mapped"]
1715#[doc = "to an integer (a LV2_URID, like the key)"]
1716pub const LV2_Options_Context_LV2_OPTIONS_RESOURCE: LV2_Options_Context = 1;
1717#[doc = "This option applies to some blank node.  The subject is a blank node"]
1718#[doc = "identifier, which is valid only within the current local scope."]
1719pub const LV2_Options_Context_LV2_OPTIONS_BLANK: LV2_Options_Context = 2;
1720#[doc = "This option applies to a port on the instance.  The subject is the"]
1721#[doc = "port's index."]
1722pub const LV2_Options_Context_LV2_OPTIONS_PORT: LV2_Options_Context = 3;
1723#[doc = "The context of an Option, which defines the subject it applies to."]
1724pub type LV2_Options_Context = u32;
1725#[doc = "An option."]
1726#[doc = ""]
1727#[doc = "This is a property with a subject, also known as a triple or statement."]
1728#[doc = ""]
1729#[doc = "This struct is useful anywhere a statement needs to be passed where no"]
1730#[doc = "memory ownership issues are present (since the value is a const pointer)."]
1731#[doc = ""]
1732#[doc = "Options can be passed to an instance via the feature LV2_OPTIONS__options"]
1733#[doc = "with data pointed to an array of options terminated by a zeroed option, or"]
1734#[doc = "accessed/manipulated using LV2_Options_Interface."]
1735#[repr(C)]
1736#[derive(Debug, Copy, Clone)]
1737pub struct LV2_Options_Option {
1738    #[doc = "< Context (type of subject)."]
1739    pub context: LV2_Options_Context,
1740    #[doc = "< Subject."]
1741    pub subject: u32,
1742    #[doc = "< Key (property)."]
1743    pub key: LV2_URID,
1744    #[doc = "< Size of value in bytes."]
1745    pub size: u32,
1746    #[doc = "< Type of value (datatype)."]
1747    pub type_: LV2_URID,
1748    #[doc = "< Pointer to value (object)."]
1749    pub value: *const ::std::os::raw::c_void,
1750}
1751#[doc = "< Completed successfully."]
1752pub const LV2_Options_Status_LV2_OPTIONS_SUCCESS: LV2_Options_Status = 0;
1753#[doc = "< Unknown error."]
1754pub const LV2_Options_Status_LV2_OPTIONS_ERR_UNKNOWN: LV2_Options_Status = 1;
1755#[doc = "< Invalid/unsupported subject."]
1756pub const LV2_Options_Status_LV2_OPTIONS_ERR_BAD_SUBJECT: LV2_Options_Status = 2;
1757#[doc = "< Invalid/unsupported key."]
1758pub const LV2_Options_Status_LV2_OPTIONS_ERR_BAD_KEY: LV2_Options_Status = 4;
1759#[doc = "< Invalid/unsupported value."]
1760pub const LV2_Options_Status_LV2_OPTIONS_ERR_BAD_VALUE: LV2_Options_Status = 8;
1761#[doc = " A status code for option functions."]
1762pub type LV2_Options_Status = u32;
1763#[doc = "Interface for dynamically setting options (LV2_OPTIONS__interface)."]
1764#[repr(C)]
1765#[derive(Debug, Copy, Clone)]
1766pub struct LV2_Options_Interface {
1767    #[doc = "Get the given options."]
1768    #[doc = ""]
1769    #[doc = "Each element of the passed options array MUST have type, subject, and"]
1770    #[doc = "key set.  All other fields (size, type, value) MUST be initialised to"]
1771    #[doc = "zero, and are set to the option value if such an option is found."]
1772    #[doc = ""]
1773    #[doc = "This function is in the \"instantiation\" LV2 threading class, so no other"]
1774    #[doc = "instance functions may be called concurrently."]
1775    #[doc = ""]
1776    #[doc = "@return Bitwise OR of LV2_Options_Status values."]
1777    pub get: ::std::option::Option<
1778        unsafe extern "C" fn(instance: LV2_Handle, options: *mut LV2_Options_Option) -> u32,
1779    >,
1780    #[doc = "Set the given options."]
1781    #[doc = ""]
1782    #[doc = "This function is in the \"instantiation\" LV2 threading class, so no other"]
1783    #[doc = "instance functions may be called concurrently."]
1784    #[doc = ""]
1785    #[doc = "@return Bitwise OR of LV2_Options_Status values."]
1786    pub set: ::std::option::Option<
1787        unsafe extern "C" fn(instance: LV2_Handle, options: *const LV2_Options_Option) -> u32,
1788    >,
1789}
1790#[doc = "< Completed successfully."]
1791pub const LV2_Resize_Port_Status_LV2_RESIZE_PORT_SUCCESS: LV2_Resize_Port_Status = 0;
1792#[doc = "< Unknown error."]
1793pub const LV2_Resize_Port_Status_LV2_RESIZE_PORT_ERR_UNKNOWN: LV2_Resize_Port_Status = 1;
1794#[doc = "< Insufficient space."]
1795pub const LV2_Resize_Port_Status_LV2_RESIZE_PORT_ERR_NO_SPACE: LV2_Resize_Port_Status = 2;
1796#[doc = " A status code for state functions."]
1797pub type LV2_Resize_Port_Status = u32;
1798#[doc = " Opaque data for resize method."]
1799pub type LV2_Resize_Port_Feature_Data = *mut ::std::os::raw::c_void;
1800#[doc = " Host feature to allow plugins to resize their port buffers."]
1801#[repr(C)]
1802#[derive(Debug, Copy, Clone)]
1803pub struct LV2_Resize_Port_Resize {
1804    #[doc = " Opaque data for resize method."]
1805    pub data: LV2_Resize_Port_Feature_Data,
1806    #[doc = "Resize a port buffer to at least `size` bytes."]
1807    #[doc = ""]
1808    #[doc = "This function MAY return an error, in which case the port buffer was not"]
1809    #[doc = "resized and the port is still connected to the same location.  Plugins"]
1810    #[doc = "MUST gracefully handle this situation."]
1811    #[doc = ""]
1812    #[doc = "This function is in the audio threading class."]
1813    #[doc = ""]
1814    #[doc = "The host MUST preserve the contents of the port buffer when resizing."]
1815    #[doc = ""]
1816    #[doc = "Plugins MAY resize a port many times in a single run callback.  Hosts"]
1817    #[doc = "SHOULD make this as inexpensive as possible."]
1818    pub resize: ::std::option::Option<
1819        unsafe extern "C" fn(
1820            data: LV2_Resize_Port_Feature_Data,
1821            index: u32,
1822            size: usize,
1823        ) -> LV2_Resize_Port_Status,
1824    >,
1825}
1826pub type LV2_State_Handle = *mut ::std::os::raw::c_void;
1827pub type LV2_State_Free_Path_Handle = *mut ::std::os::raw::c_void;
1828pub type LV2_State_Map_Path_Handle = *mut ::std::os::raw::c_void;
1829pub type LV2_State_Make_Path_Handle = *mut ::std::os::raw::c_void;
1830impl LV2_State_Flags {
1831    #[doc = "Plain Old Data."]
1832    #[doc = ""]
1833    #[doc = "Values with this flag contain no pointers or references to other areas"]
1834    #[doc = "of memory.  It is safe to copy POD values with a simple memcpy and store"]
1835    #[doc = "them for the duration of the process.  A POD value is not necessarily"]
1836    #[doc = "safe to trasmit between processes or machines (for example, filenames"]
1837    #[doc = "are POD), see LV2_STATE_IS_PORTABLE for details."]
1838    #[doc = ""]
1839    #[doc = "Implementations MUST NOT attempt to copy or serialise a non-POD value if"]
1840    #[doc = "they do not understand its type (and thus know how to correctly do so)."]
1841    pub const LV2_STATE_IS_POD: LV2_State_Flags = LV2_State_Flags(1);
1842}
1843impl LV2_State_Flags {
1844    #[doc = "Portable (architecture independent) data."]
1845    #[doc = ""]
1846    #[doc = "Values with this flag are in a format that is usable on any"]
1847    #[doc = "architecture.  A portable value saved on one machine can be restored on"]
1848    #[doc = "another machine regardless of architecture.  The format of portable"]
1849    #[doc = "values MUST NOT depend on architecture-specific properties like"]
1850    #[doc = "endianness or alignment.  Portable values MUST NOT contain filenames."]
1851    pub const LV2_STATE_IS_PORTABLE: LV2_State_Flags = LV2_State_Flags(2);
1852}
1853impl LV2_State_Flags {
1854    #[doc = "Native data."]
1855    #[doc = ""]
1856    #[doc = "This flag is used by the host to indicate that the saved data is only"]
1857    #[doc = "going to be used locally in the currently running process (for things"]
1858    #[doc = "like instance duplication or snapshots), so the plugin should use the"]
1859    #[doc = "most efficient representation possible and not worry about serialisation"]
1860    #[doc = "and portability."]
1861    pub const LV2_STATE_IS_NATIVE: LV2_State_Flags = LV2_State_Flags(4);
1862}
1863impl ::std::ops::BitOr<LV2_State_Flags> for LV2_State_Flags {
1864    type Output = Self;
1865    #[inline]
1866    fn bitor(self, other: Self) -> Self {
1867        LV2_State_Flags(self.0 | other.0)
1868    }
1869}
1870impl ::std::ops::BitOrAssign for LV2_State_Flags {
1871    #[inline]
1872    fn bitor_assign(&mut self, rhs: LV2_State_Flags) {
1873        self.0 |= rhs.0;
1874    }
1875}
1876impl ::std::ops::BitAnd<LV2_State_Flags> for LV2_State_Flags {
1877    type Output = Self;
1878    #[inline]
1879    fn bitand(self, other: Self) -> Self {
1880        LV2_State_Flags(self.0 & other.0)
1881    }
1882}
1883impl ::std::ops::BitAndAssign for LV2_State_Flags {
1884    #[inline]
1885    fn bitand_assign(&mut self, rhs: LV2_State_Flags) {
1886        self.0 &= rhs.0;
1887    }
1888}
1889#[repr(transparent)]
1890#[doc = "Flags describing value characteristics."]
1891#[doc = ""]
1892#[doc = "These flags are used along with the value's type URI to determine how to"]
1893#[doc = "(de-)serialise the value data, or whether it is even possible to do so."]
1894#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1895pub struct LV2_State_Flags(pub u32);
1896#[doc = "< Completed successfully."]
1897pub const LV2_State_Status_LV2_STATE_SUCCESS: LV2_State_Status = 0;
1898#[doc = "< Unknown error."]
1899pub const LV2_State_Status_LV2_STATE_ERR_UNKNOWN: LV2_State_Status = 1;
1900#[doc = "< Failed due to unsupported type."]
1901pub const LV2_State_Status_LV2_STATE_ERR_BAD_TYPE: LV2_State_Status = 2;
1902#[doc = "< Failed due to unsupported flags."]
1903pub const LV2_State_Status_LV2_STATE_ERR_BAD_FLAGS: LV2_State_Status = 3;
1904#[doc = "< Failed due to missing features."]
1905pub const LV2_State_Status_LV2_STATE_ERR_NO_FEATURE: LV2_State_Status = 4;
1906#[doc = "< Failed due to missing property."]
1907pub const LV2_State_Status_LV2_STATE_ERR_NO_PROPERTY: LV2_State_Status = 5;
1908#[doc = "< Failed due to insufficient space."]
1909pub const LV2_State_Status_LV2_STATE_ERR_NO_SPACE: LV2_State_Status = 6;
1910#[doc = " A status code for state functions."]
1911pub type LV2_State_Status = u32;
1912#[doc = "A host-provided function to store a property."]
1913#[doc = "@param handle Must be the handle passed to LV2_State_Interface.save()."]
1914#[doc = "@param key The key to store `value` under (URID)."]
1915#[doc = "@param value Pointer to the value to be stored."]
1916#[doc = "@param size The size of `value` in bytes."]
1917#[doc = "@param type The type of `value` (URID)."]
1918#[doc = "@param flags LV2_State_Flags for `value`."]
1919#[doc = "@return 0 on success, otherwise a non-zero error code."]
1920#[doc = ""]
1921#[doc = "The host passes a callback of this type to LV2_State_Interface.save(). This"]
1922#[doc = "callback is called repeatedly by the plugin to store all the properties that"]
1923#[doc = "describe its current state."]
1924#[doc = ""]
1925#[doc = "DO NOT INVENT NONSENSE URI SCHEMES FOR THE KEY.  Best is to use keys from"]
1926#[doc = "existing vocabularies.  If nothing appropriate is available, use http URIs"]
1927#[doc = "that point to somewhere you can host documents so documentation can be made"]
1928#[doc = "resolvable (typically a child of the plugin or project URI).  If this is not"]
1929#[doc = "possible, invent a URN scheme, e.g. urn:myproj:whatever.  The plugin MUST"]
1930#[doc = "NOT pass an invalid URI key."]
1931#[doc = ""]
1932#[doc = "The host MAY fail to store a property for whatever reason, but SHOULD"]
1933#[doc = "store any property that is LV2_STATE_IS_POD and LV2_STATE_IS_PORTABLE."]
1934#[doc = "Implementations SHOULD use the types from the LV2 Atom extension"]
1935#[doc = "(http://lv2plug.in/ns/ext/atom) wherever possible.  The plugin SHOULD"]
1936#[doc = "attempt to fall-back and avoid the error if possible."]
1937#[doc = ""]
1938#[doc = "Note that `size` MUST be > 0, and `value` MUST point to a valid region of"]
1939#[doc = "memory `size` bytes long (this is required to make restore unambiguous)."]
1940#[doc = ""]
1941#[doc = "The plugin MUST NOT attempt to use this function outside of the"]
1942#[doc = "LV2_State_Interface.restore() context."]
1943pub type LV2_State_Store_Function = ::std::option::Option<
1944    unsafe extern "C" fn(
1945        handle: LV2_State_Handle,
1946        key: u32,
1947        value: *const ::std::os::raw::c_void,
1948        size: usize,
1949        type_: u32,
1950        flags: u32,
1951    ) -> LV2_State_Status,
1952>;
1953#[doc = "A host-provided function to retrieve a property."]
1954#[doc = "@param handle Must be the handle passed to LV2_State_Interface.restore()."]
1955#[doc = "@param key The key of the property to retrieve (URID)."]
1956#[doc = "@param size (Output) If non-NULL, set to the size of the restored value."]
1957#[doc = "@param type (Output) If non-NULL, set to the type of the restored value."]
1958#[doc = "@param flags (Output) If non-NULL, set to the flags for the restored value."]
1959#[doc = "@return A pointer to the restored value (object), or NULL if no value"]
1960#[doc = "has been stored under `key`."]
1961#[doc = ""]
1962#[doc = "A callback of this type is passed by the host to"]
1963#[doc = "LV2_State_Interface.restore().  This callback is called repeatedly by the"]
1964#[doc = "plugin to retrieve any properties it requires to restore its state."]
1965#[doc = ""]
1966#[doc = "The returned value MUST remain valid until LV2_State_Interface.restore()"]
1967#[doc = "returns.  The plugin MUST NOT attempt to use this function, or any value"]
1968#[doc = "returned from it, outside of the LV2_State_Interface.restore() context."]
1969pub type LV2_State_Retrieve_Function = ::std::option::Option<
1970    unsafe extern "C" fn(
1971        handle: LV2_State_Handle,
1972        key: u32,
1973        size: *mut usize,
1974        type_: *mut u32,
1975        flags: *mut u32,
1976    ) -> *const ::std::os::raw::c_void,
1977>;
1978#[doc = "LV2 Plugin State Interface."]
1979#[doc = ""]
1980#[doc = "When the plugin's extension_data is called with argument"]
1981#[doc = "LV2_STATE__interface, the plugin MUST return an LV2_State_Interface"]
1982#[doc = "structure, which remains valid for the lifetime of the plugin."]
1983#[doc = ""]
1984#[doc = "The host can use the contained function pointers to save and restore the"]
1985#[doc = "state of a plugin instance at any time, provided the threading restrictions"]
1986#[doc = "of the functions are met."]
1987#[doc = ""]
1988#[doc = "Stored data is only guaranteed to be compatible between instances of plugins"]
1989#[doc = "with the same URI (i.e. if a change to a plugin would cause a fatal error"]
1990#[doc = "when restoring state saved by a previous version of that plugin, the plugin"]
1991#[doc = "URI MUST change just as it must when ports change incompatibly).  Plugin"]
1992#[doc = "authors should consider this possibility, and always store sensible data"]
1993#[doc = "with meaningful types to avoid such problems in the future."]
1994#[repr(C)]
1995#[derive(Debug, Copy, Clone)]
1996pub struct LV2_State_Interface {
1997    #[doc = "Save plugin state using a host-provided `store` callback."]
1998    #[doc = ""]
1999    #[doc = "@param instance The instance handle of the plugin."]
2000    #[doc = "@param store The host-provided store callback."]
2001    #[doc = "@param handle An opaque pointer to host data which MUST be passed as the"]
2002    #[doc = "handle parameter to `store` if it is called."]
2003    #[doc = "@param flags Flags describing desired properties of this save.  These"]
2004    #[doc = "flags may be used to determine the most appropriate values to store."]
2005    #[doc = "@param features Extensible parameter for passing any additional"]
2006    #[doc = "features to be used for this save."]
2007    #[doc = ""]
2008    #[doc = "The plugin is expected to store everything necessary to completely"]
2009    #[doc = "restore its state later.  Plugins SHOULD store simple POD data whenever"]
2010    #[doc = "possible, and consider the possibility of state being restored much"]
2011    #[doc = "later on a different machine."]
2012    #[doc = ""]
2013    #[doc = "The `handle` pointer and `store` function MUST NOT be used"]
2014    #[doc = "beyond the scope of save()."]
2015    #[doc = ""]
2016    #[doc = "This function has its own special threading class: it may not be called"]
2017    #[doc = "concurrently with any \"Instantiation\" function, but it may be called"]
2018    #[doc = "concurrently with functions in any other class, unless the definition of"]
2019    #[doc = "that class prohibits it (for example, it may not be called concurrently"]
2020    #[doc = "with a \"Discovery\" function, but it may be called concurrently with an"]
2021    #[doc = "\"Audio\" function.  The plugin is responsible for any locking or"]
2022    #[doc = "lock-free techniques necessary to make this possible."]
2023    #[doc = ""]
2024    #[doc = "Note that in the simple case where state is only modified by restore(),"]
2025    #[doc = "there are no synchronization issues since save() is never called"]
2026    #[doc = "concurrently with restore() (though run() may read it during a save)."]
2027    #[doc = ""]
2028    #[doc = "Plugins that dynamically modify state while running, however, must take"]
2029    #[doc = "care to do so in such a way that a concurrent call to save() will save a"]
2030    #[doc = "consistent representation of plugin state for a single instant in time."]
2031    pub save: ::std::option::Option<
2032        unsafe extern "C" fn(
2033            instance: LV2_Handle,
2034            store: LV2_State_Store_Function,
2035            handle: LV2_State_Handle,
2036            flags: u32,
2037            features: *const *const LV2_Feature,
2038        ) -> LV2_State_Status,
2039    >,
2040    #[doc = "Restore plugin state using a host-provided `retrieve` callback."]
2041    #[doc = ""]
2042    #[doc = "@param instance The instance handle of the plugin."]
2043    #[doc = "@param retrieve The host-provided retrieve callback."]
2044    #[doc = "@param handle An opaque pointer to host data which MUST be passed as the"]
2045    #[doc = "handle parameter to `retrieve` if it is called."]
2046    #[doc = "@param flags Currently unused."]
2047    #[doc = "@param features Extensible parameter for passing any additional"]
2048    #[doc = "features to be used for this restore."]
2049    #[doc = ""]
2050    #[doc = "The plugin MAY assume a restored value was set by a previous call to"]
2051    #[doc = "LV2_State_Interface.save() by a plugin with the same URI."]
2052    #[doc = ""]
2053    #[doc = "The plugin MUST gracefully fall back to a default value when a value can"]
2054    #[doc = "not be retrieved.  This allows the host to reset the plugin state with"]
2055    #[doc = "an empty map."]
2056    #[doc = ""]
2057    #[doc = "The `handle` pointer and `store` function MUST NOT be used"]
2058    #[doc = "beyond the scope of restore()."]
2059    #[doc = ""]
2060    #[doc = "This function is in the \"Instantiation\" threading class as defined by"]
2061    #[doc = "LV2. This means it MUST NOT be called concurrently with any other"]
2062    #[doc = "function on the same plugin instance."]
2063    pub restore: ::std::option::Option<
2064        unsafe extern "C" fn(
2065            instance: LV2_Handle,
2066            retrieve: LV2_State_Retrieve_Function,
2067            handle: LV2_State_Handle,
2068            flags: u32,
2069            features: *const *const LV2_Feature,
2070        ) -> LV2_State_Status,
2071    >,
2072}
2073#[doc = "Feature data for state:mapPath (@ref LV2_STATE__mapPath)."]
2074#[repr(C)]
2075#[derive(Debug, Copy, Clone)]
2076pub struct LV2_State_Map_Path {
2077    #[doc = "Opaque host data."]
2078    pub handle: LV2_State_Map_Path_Handle,
2079    #[doc = "Map an absolute path to an abstract path for use in plugin state."]
2080    #[doc = "@param handle MUST be the `handle` member of this struct."]
2081    #[doc = "@param absolute_path The absolute path of a file."]
2082    #[doc = "@return An abstract path suitable for use in plugin state."]
2083    #[doc = ""]
2084    #[doc = "The plugin MUST use this function to map any paths that will be stored"]
2085    #[doc = "in plugin state.  The returned value is an abstract path which MAY not"]
2086    #[doc = "be an actual file system path; absolute_path() MUST be used to map"]
2087    #[doc = "it to an actual path in order to use the file."]
2088    #[doc = ""]
2089    #[doc = "Plugins MUST NOT make any assumptions about abstract paths except that"]
2090    #[doc = "they can be mapped back to the absolute path of the \"same\" file (though"]
2091    #[doc = "not necessarily the same original path) using absolute_path()."]
2092    #[doc = ""]
2093    #[doc = "This function may only be called within the context of"]
2094    #[doc = "LV2_State_Interface methods.  The caller must free the returned value"]
2095    #[doc = "with LV2_State_Free_Path.free_path()."]
2096    pub abstract_path: ::std::option::Option<
2097        unsafe extern "C" fn(
2098            handle: LV2_State_Map_Path_Handle,
2099            absolute_path: *const ::std::os::raw::c_char,
2100        ) -> *mut ::std::os::raw::c_char,
2101    >,
2102    #[doc = "Map an abstract path from plugin state to an absolute path."]
2103    #[doc = "@param handle MUST be the `handle` member of this struct."]
2104    #[doc = "@param abstract_path An abstract path (typically from plugin state)."]
2105    #[doc = "@return An absolute file system path."]
2106    #[doc = ""]
2107    #[doc = "The plugin MUST use this function in order to actually open or otherwise"]
2108    #[doc = "use any paths loaded from plugin state."]
2109    #[doc = ""]
2110    #[doc = "This function may only be called within the context of"]
2111    #[doc = "LV2_State_Interface methods.  The caller must free the returned value"]
2112    #[doc = "with LV2_State_Free_Path.free_path()."]
2113    pub absolute_path: ::std::option::Option<
2114        unsafe extern "C" fn(
2115            handle: LV2_State_Map_Path_Handle,
2116            abstract_path: *const ::std::os::raw::c_char,
2117        ) -> *mut ::std::os::raw::c_char,
2118    >,
2119}
2120#[doc = "Feature data for state:makePath (@ref LV2_STATE__makePath)."]
2121#[repr(C)]
2122#[derive(Debug, Copy, Clone)]
2123pub struct LV2_State_Make_Path {
2124    #[doc = "Opaque host data."]
2125    pub handle: LV2_State_Make_Path_Handle,
2126    #[doc = "Return a path the plugin may use to create a new file."]
2127    #[doc = "@param handle MUST be the `handle` member of this struct."]
2128    #[doc = "@param path The path of the new file within a namespace unique to this"]
2129    #[doc = "plugin instance."]
2130    #[doc = "@return The absolute path to use for the new file."]
2131    #[doc = ""]
2132    #[doc = "This function can be used by plugins to create files and directories,"]
2133    #[doc = "either at state saving time (if this feature is passed to"]
2134    #[doc = "LV2_State_Interface.save()) or any time (if this feature is passed to"]
2135    #[doc = "LV2_Descriptor.instantiate())."]
2136    #[doc = ""]
2137    #[doc = "The host MUST do whatever is necessary for the plugin to be able to"]
2138    #[doc = "create a file at the returned path (for example, using fopen()),"]
2139    #[doc = "including creating any leading directories."]
2140    #[doc = ""]
2141    #[doc = "If this function is passed to LV2_Descriptor.instantiate(), it may be"]
2142    #[doc = "called from any non-realtime context.  If it is passed to"]
2143    #[doc = "LV2_State_Interface.save(), it may only be called within the dynamic"]
2144    #[doc = "scope of that function call."]
2145    #[doc = ""]
2146    #[doc = "The caller must free the returned value with"]
2147    #[doc = "LV2_State_Free_Path.free_path()."]
2148    pub path: ::std::option::Option<
2149        unsafe extern "C" fn(
2150            handle: LV2_State_Make_Path_Handle,
2151            path: *const ::std::os::raw::c_char,
2152        ) -> *mut ::std::os::raw::c_char,
2153    >,
2154}
2155#[doc = "Feature data for state:freePath (@ref LV2_STATE__freePath)."]
2156#[repr(C)]
2157#[derive(Debug, Copy, Clone)]
2158pub struct LV2_State_Free_Path {
2159    #[doc = "Opaque host data."]
2160    pub handle: LV2_State_Free_Path_Handle,
2161    #[doc = "Free a path returned by a state feature."]
2162    #[doc = ""]
2163    #[doc = "@param handle MUST be the `handle` member of this struct."]
2164    #[doc = "@param path The path previously returned by a state feature."]
2165    #[doc = ""]
2166    #[doc = "This function can be used by plugins to free paths allocated by the host"]
2167    #[doc = "and returned by state features (LV2_State_Map_Path.abstract_path(),"]
2168    #[doc = "LV2_State_Map_Path.absolute_path(), and LV2_State_Make_Path.path())."]
2169    pub free_path: ::std::option::Option<
2170        unsafe extern "C" fn(handle: LV2_State_Free_Path_Handle, path: *mut ::std::os::raw::c_char),
2171    >,
2172}
2173#[doc = "A pointer to some widget or other type of UI handle."]
2174#[doc = ""]
2175#[doc = "The actual type is defined by the type of the UI."]
2176pub type LV2UI_Widget = *mut ::std::os::raw::c_void;
2177#[doc = "A pointer to UI instance internals."]
2178#[doc = ""]
2179#[doc = "The host may compare this to NULL, but otherwise MUST NOT interpret it."]
2180pub type LV2UI_Handle = *mut ::std::os::raw::c_void;
2181#[doc = "A pointer to a controller provided by the host."]
2182#[doc = ""]
2183#[doc = "The UI may compare this to NULL, but otherwise MUST NOT interpret it."]
2184pub type LV2UI_Controller = *mut ::std::os::raw::c_void;
2185#[doc = "A pointer to opaque data for a feature."]
2186pub type LV2UI_Feature_Handle = *mut ::std::os::raw::c_void;
2187#[doc = "A host-provided function that sends data to a plugin's input ports."]
2188#[doc = ""]
2189#[doc = "@param controller The opaque controller pointer passed to"]
2190#[doc = "LV2UI_Descriptor::instantiate()."]
2191#[doc = ""]
2192#[doc = "@param port_index Index of the port to update."]
2193#[doc = ""]
2194#[doc = "@param buffer Buffer containing `buffer_size` bytes of data."]
2195#[doc = ""]
2196#[doc = "@param buffer_size Size of `buffer` in bytes."]
2197#[doc = ""]
2198#[doc = "@param port_protocol Either 0 or the URID for a ui:PortProtocol.  If 0, the"]
2199#[doc = "protocol is implicitly ui:floatProtocol, the port MUST be an lv2:ControlPort"]
2200#[doc = "input, `buffer` MUST point to a single float value, and `buffer_size` MUST"]
2201#[doc = "be sizeof(float).  The UI SHOULD NOT use a protocol not supported by the"]
2202#[doc = "host, but the host MUST gracefully ignore any protocol it does not"]
2203#[doc = "understand."]
2204pub type LV2UI_Write_Function = ::std::option::Option<
2205    unsafe extern "C" fn(
2206        controller: LV2UI_Controller,
2207        port_index: u32,
2208        buffer_size: u32,
2209        port_protocol: u32,
2210        buffer: *const ::std::os::raw::c_void,
2211    ),
2212>;
2213#[doc = "A plugin UI."]
2214#[doc = ""]
2215#[doc = "A pointer to an object of this type is returned by the lv2ui_descriptor()"]
2216#[doc = "function."]
2217#[repr(C)]
2218#[derive(Debug, Copy, Clone)]
2219pub struct LV2UI_Descriptor {
2220    #[doc = "The URI for this UI (not for the plugin it controls)."]
2221    pub URI: *const ::std::os::raw::c_char,
2222    #[doc = "Create a new UI and return a handle to it.  This function works"]
2223    #[doc = "similarly to LV2_Descriptor::instantiate()."]
2224    #[doc = ""]
2225    #[doc = "@param descriptor The descriptor for the UI to instantiate."]
2226    #[doc = ""]
2227    #[doc = "@param plugin_uri The URI of the plugin that this UI will control."]
2228    #[doc = ""]
2229    #[doc = "@param bundle_path The path to the bundle containing this UI, including"]
2230    #[doc = "the trailing directory separator."]
2231    #[doc = ""]
2232    #[doc = "@param write_function A function that the UI can use to send data to the"]
2233    #[doc = "plugin's input ports."]
2234    #[doc = ""]
2235    #[doc = "@param controller A handle for the UI instance to be passed as the"]
2236    #[doc = "first parameter of UI methods."]
2237    #[doc = ""]
2238    #[doc = "@param widget (output) widget pointer.  The UI points this at its main"]
2239    #[doc = "widget, which has the type defined by the UI type in the data file."]
2240    #[doc = ""]
2241    #[doc = "@param features An array of LV2_Feature pointers.  The host must pass"]
2242    #[doc = "all feature URIs that it and the UI supports and any additional data, as"]
2243    #[doc = "in LV2_Descriptor::instantiate().  Note that UI features and plugin"]
2244    #[doc = "features are not necessarily the same."]
2245    #[doc = ""]
2246    pub instantiate: ::std::option::Option<
2247        unsafe extern "C" fn(
2248            descriptor: *const LV2UI_Descriptor,
2249            plugin_uri: *const ::std::os::raw::c_char,
2250            bundle_path: *const ::std::os::raw::c_char,
2251            write_function: LV2UI_Write_Function,
2252            controller: LV2UI_Controller,
2253            widget: *mut LV2UI_Widget,
2254            features: *const *const LV2_Feature,
2255        ) -> LV2UI_Handle,
2256    >,
2257    #[doc = "Destroy the UI.  The host must not try to access the widget after"]
2258    #[doc = "calling this function."]
2259    pub cleanup: ::std::option::Option<unsafe extern "C" fn(ui: LV2UI_Handle)>,
2260    #[doc = "Tell the UI that something interesting has happened at a plugin port."]
2261    #[doc = ""]
2262    #[doc = "What is \"interesting\" and how it is written to `buffer` is defined by"]
2263    #[doc = "`format`, which has the same meaning as in LV2UI_Write_Function()."]
2264    #[doc = "Format 0 is a special case for lv2:ControlPort, where this function"]
2265    #[doc = "should be called when the port value changes (but not necessarily for"]
2266    #[doc = "every change), `buffer_size` must be sizeof(float), and `buffer`"]
2267    #[doc = "points to a single IEEE-754 float."]
2268    #[doc = ""]
2269    #[doc = "By default, the host should only call this function for lv2:ControlPort"]
2270    #[doc = "inputs.  However, the UI can request updates for other ports statically"]
2271    #[doc = "with ui:portNotification or dynamicaly with ui:portSubscribe."]
2272    #[doc = ""]
2273    #[doc = "The UI MUST NOT retain any reference to `buffer` after this function"]
2274    #[doc = "returns, it is only valid for the duration of the call."]
2275    #[doc = ""]
2276    #[doc = "This member may be NULL if the UI is not interested in any port events."]
2277    pub port_event: ::std::option::Option<
2278        unsafe extern "C" fn(
2279            ui: LV2UI_Handle,
2280            port_index: u32,
2281            buffer_size: u32,
2282            format: u32,
2283            buffer: *const ::std::os::raw::c_void,
2284        ),
2285    >,
2286    #[doc = "Return a data structure associated with an extension URI, typically an"]
2287    #[doc = "interface struct with additional function pointers"]
2288    #[doc = ""]
2289    #[doc = "This member may be set to NULL if the UI is not interested in supporting"]
2290    #[doc = "any extensions. This is similar to LV2_Descriptor::extension_data()."]
2291    #[doc = ""]
2292    pub extension_data: ::std::option::Option<
2293        unsafe extern "C" fn(uri: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_void,
2294    >,
2295}
2296#[doc = "Feature/interface for resizable UIs (LV2_UI__resize)."]
2297#[doc = ""]
2298#[doc = "This structure is used in two ways: as a feature passed by the host via"]
2299#[doc = "LV2UI_Descriptor::instantiate(), or as an interface provided by a UI via"]
2300#[doc = "LV2UI_Descriptor::extension_data())."]
2301#[repr(C)]
2302#[derive(Debug, Copy, Clone)]
2303pub struct LV2UI_Resize {
2304    #[doc = "Pointer to opaque data which must be passed to ui_resize()."]
2305    pub handle: LV2UI_Feature_Handle,
2306    #[doc = "Request/advertise a size change."]
2307    #[doc = ""]
2308    #[doc = "When provided by the host, the UI may call this function to inform the"]
2309    #[doc = "host about the size of the UI."]
2310    #[doc = ""]
2311    #[doc = "When provided by the UI, the host may call this function to notify the"]
2312    #[doc = "UI that it should change its size accordingly.  In this case, the host"]
2313    #[doc = "must pass the LV2UI_Handle to provide access to the UI instance."]
2314    #[doc = ""]
2315    #[doc = "@return 0 on success."]
2316    pub ui_resize: ::std::option::Option<
2317        unsafe extern "C" fn(
2318            handle: LV2UI_Feature_Handle,
2319            width: ::std::os::raw::c_int,
2320            height: ::std::os::raw::c_int,
2321        ) -> ::std::os::raw::c_int,
2322    >,
2323}
2324#[doc = "Feature to map port symbols to UIs."]
2325#[doc = ""]
2326#[doc = "This can be used by the UI to get the index for a port with the given"]
2327#[doc = "symbol.  This makes it possible to implement and distribute a UI separately"]
2328#[doc = "from the plugin (since symbol, unlike index, is a stable port identifier)."]
2329#[repr(C)]
2330#[derive(Debug, Copy, Clone)]
2331pub struct LV2UI_Port_Map {
2332    #[doc = "Pointer to opaque data which must be passed to port_index()."]
2333    pub handle: LV2UI_Feature_Handle,
2334    #[doc = "Get the index for the port with the given `symbol`."]
2335    #[doc = ""]
2336    #[doc = "@return The index of the port, or LV2UI_INVALID_PORT_INDEX if no such"]
2337    #[doc = "port is found."]
2338    pub port_index: ::std::option::Option<
2339        unsafe extern "C" fn(
2340            handle: LV2UI_Feature_Handle,
2341            symbol: *const ::std::os::raw::c_char,
2342        ) -> u32,
2343    >,
2344}
2345#[doc = "Feature to subscribe to port updates (LV2_UI__portSubscribe)."]
2346#[repr(C)]
2347#[derive(Debug, Copy, Clone)]
2348pub struct LV2UI_Port_Subscribe {
2349    #[doc = "Pointer to opaque data which must be passed to subscribe() and"]
2350    #[doc = "unsubscribe()."]
2351    pub handle: LV2UI_Feature_Handle,
2352    #[doc = "Subscribe to updates for a port."]
2353    #[doc = ""]
2354    #[doc = "This means that the host will call the UI's port_event() function when"]
2355    #[doc = "the port value changes (as defined by protocol)."]
2356    #[doc = ""]
2357    #[doc = "Calling this function with the same `port_index` and `port_protocol`"]
2358    #[doc = "as an already active subscription has no effect."]
2359    #[doc = ""]
2360    #[doc = "@param handle The handle field of this struct."]
2361    #[doc = "@param port_index The index of the port."]
2362    #[doc = "@param port_protocol The URID of the ui:PortProtocol."]
2363    #[doc = "@param features Features for this subscription."]
2364    #[doc = "@return 0 on success."]
2365    pub subscribe: ::std::option::Option<
2366        unsafe extern "C" fn(
2367            handle: LV2UI_Feature_Handle,
2368            port_index: u32,
2369            port_protocol: u32,
2370            features: *const *const LV2_Feature,
2371        ) -> u32,
2372    >,
2373    #[doc = "Unsubscribe from updates for a port."]
2374    #[doc = ""]
2375    #[doc = "This means that the host will cease calling calling port_event() when"]
2376    #[doc = "the port value changes."]
2377    #[doc = ""]
2378    #[doc = "Calling this function with a `port_index` and `port_protocol` that"]
2379    #[doc = "does not refer to an active port subscription has no effect."]
2380    #[doc = ""]
2381    #[doc = "@param handle The handle field of this struct."]
2382    #[doc = "@param port_index The index of the port."]
2383    #[doc = "@param port_protocol The URID of the ui:PortProtocol."]
2384    #[doc = "@param features Features for this subscription."]
2385    #[doc = "@return 0 on success."]
2386    pub unsubscribe: ::std::option::Option<
2387        unsafe extern "C" fn(
2388            handle: LV2UI_Feature_Handle,
2389            port_index: u32,
2390            port_protocol: u32,
2391            features: *const *const LV2_Feature,
2392        ) -> u32,
2393    >,
2394}
2395#[doc = "A feature to notify the host that the user has grabbed a UI control."]
2396#[repr(C)]
2397#[derive(Debug, Copy, Clone)]
2398pub struct LV2UI_Touch {
2399    #[doc = "Pointer to opaque data which must be passed to ui_resize()."]
2400    pub handle: LV2UI_Feature_Handle,
2401    #[doc = "Notify the host that a control has been grabbed or released."]
2402    #[doc = ""]
2403    #[doc = "The host should cease automating the port or otherwise manipulating the"]
2404    #[doc = "port value until the control has been ungrabbed."]
2405    #[doc = ""]
2406    #[doc = "@param handle The handle field of this struct."]
2407    #[doc = "@param port_index The index of the port associated with the control."]
2408    #[doc = "@param grabbed If true, the control has been grabbed, otherwise the"]
2409    #[doc = "control has been released."]
2410    pub touch: ::std::option::Option<
2411        unsafe extern "C" fn(handle: LV2UI_Feature_Handle, port_index: u32, grabbed: bool),
2412    >,
2413}
2414#[doc = "Completed successfully."]
2415#[doc = ""]
2416#[doc = "The host will set the parameter later if the user choses a new value."]
2417pub const LV2UI_Request_Value_Status_LV2UI_REQUEST_VALUE_SUCCESS: LV2UI_Request_Value_Status = 0;
2418#[doc = "Parameter already being requested."]
2419#[doc = ""]
2420#[doc = "The host is already requesting a parameter from the user (for example, a"]
2421#[doc = "dialog is visible), or the UI is otherwise busy and can not make this"]
2422#[doc = "request."]
2423pub const LV2UI_Request_Value_Status_LV2UI_REQUEST_VALUE_BUSY: LV2UI_Request_Value_Status = 1;
2424#[doc = "Unknown parameter."]
2425#[doc = ""]
2426#[doc = "The host is not aware of this parameter, and is not able to set a new"]
2427#[doc = "value for it."]
2428pub const LV2UI_Request_Value_Status_LV2UI_REQUEST_VALUE_ERR_UNKNOWN: LV2UI_Request_Value_Status =
2429    2;
2430#[doc = "Unsupported parameter."]
2431#[doc = ""]
2432#[doc = "The host knows about this parameter, but does not support requesting a"]
2433#[doc = "new value for it from the user.  This is likely because the host does"]
2434#[doc = "not have UI support for choosing a value with the appropriate type."]
2435pub const LV2UI_Request_Value_Status_LV2UI_REQUEST_VALUE_ERR_UNSUPPORTED:
2436    LV2UI_Request_Value_Status = 3;
2437#[doc = "A status code for LV2UI_Request_Value::request()."]
2438pub type LV2UI_Request_Value_Status = u32;
2439#[doc = "A feature to request a new parameter value from the host."]
2440#[repr(C)]
2441#[derive(Debug, Copy, Clone)]
2442pub struct LV2UI_Request_Value {
2443    #[doc = "Pointer to opaque data which must be passed to request()."]
2444    pub handle: LV2UI_Feature_Handle,
2445    #[doc = "Request a value for a parameter from the host."]
2446    #[doc = ""]
2447    #[doc = "This is mainly used by UIs to request values for complex parameters that"]
2448    #[doc = "don't change often, such as file paths, but it may be used to request"]
2449    #[doc = "any parameter value."]
2450    #[doc = ""]
2451    #[doc = "This function returns immediately, and the return value indicates"]
2452    #[doc = "whether the host can fulfill the request.  The host may notify the"]
2453    #[doc = "plugin about the new parameter value, for example when a file is"]
2454    #[doc = "selected by the user, via the usual mechanism.  Typically, the host will"]
2455    #[doc = "send a message to the plugin that sets the new parameter value, and the"]
2456    #[doc = "plugin will notify the UI via a message as usual for any other parameter"]
2457    #[doc = "change."]
2458    #[doc = ""]
2459    #[doc = "To provide an appropriate UI, the host can determine details about the"]
2460    #[doc = "parameter from the plugin data as usual.  The additional parameters of"]
2461    #[doc = "this function provide support for more advanced use cases, but in the"]
2462    #[doc = "simple common case, the plugin will simply pass the key of the desired"]
2463    #[doc = "parameter and zero for everything else."]
2464    #[doc = ""]
2465    #[doc = "@param handle The handle field of this struct."]
2466    #[doc = ""]
2467    #[doc = "@param key The URID of the parameter."]
2468    #[doc = ""]
2469    #[doc = "@param type The optional type of the value to request.  This can be used"]
2470    #[doc = "to request a specific value type for parameters that support several."]
2471    #[doc = "If non-zero, it must be the URID of an instance of rdfs:Class or"]
2472    #[doc = "rdfs:Datatype."]
2473    #[doc = ""]
2474    #[doc = "@param features Additional features for this request, or NULL."]
2475    #[doc = ""]
2476    #[doc = "@return A status code which is 0 on success."]
2477    pub request: ::std::option::Option<
2478        unsafe extern "C" fn(
2479            handle: LV2UI_Feature_Handle,
2480            key: LV2_URID,
2481            type_: LV2_URID,
2482            features: *const *const LV2_Feature,
2483        ) -> LV2UI_Request_Value_Status,
2484    >,
2485}
2486#[doc = "UI Idle Interface (LV2_UI__idleInterface)"]
2487#[doc = ""]
2488#[doc = "UIs can provide this interface to have an idle() callback called by the host"]
2489#[doc = "rapidly to update the UI."]
2490#[repr(C)]
2491#[derive(Debug, Copy, Clone)]
2492pub struct LV2UI_Idle_Interface {
2493    #[doc = "Run a single iteration of the UI's idle loop."]
2494    #[doc = ""]
2495    #[doc = "This will be called rapidly in the UI thread at a rate appropriate"]
2496    #[doc = "for a toolkit main loop.  There are no precise timing guarantees, but"]
2497    #[doc = "the host should attempt to call idle() at a high enough rate for smooth"]
2498    #[doc = "animation, at least 30Hz."]
2499    #[doc = ""]
2500    #[doc = "@return non-zero if the UI has been closed, in which case the host"]
2501    #[doc = "should stop calling idle(), and can either completely destroy the UI, or"]
2502    #[doc = "re-show it and resume calling idle()."]
2503    pub idle:
2504        ::std::option::Option<unsafe extern "C" fn(ui: LV2UI_Handle) -> ::std::os::raw::c_int>,
2505}
2506#[doc = "UI Show Interface (LV2_UI__showInterface)"]
2507#[doc = ""]
2508#[doc = "UIs can provide this interface to show and hide a window, which allows them"]
2509#[doc = "to function in hosts unable to embed their widget.  This allows any UI to"]
2510#[doc = "provide a fallback for embedding that works in any host."]
2511#[doc = ""]
2512#[doc = "If used:"]
2513#[doc = "- The host MUST use LV2UI_Idle_Interface to drive the UI."]
2514#[doc = "- The UI MUST return non-zero from LV2UI_Idle_Interface::idle() when it has been closed."]
2515#[doc = "- If idle() returns non-zero, the host MUST call hide() and stop calling"]
2516#[doc = "idle().  It MAY later call show() then resume calling idle()."]
2517#[repr(C)]
2518#[derive(Debug, Copy, Clone)]
2519pub struct LV2UI_Show_Interface {
2520    #[doc = "Show a window for this UI."]
2521    #[doc = ""]
2522    #[doc = "The window title MAY have been passed by the host to"]
2523    #[doc = "LV2UI_Descriptor::instantiate() as an LV2_Options_Option with key"]
2524    #[doc = "LV2_UI__windowTitle."]
2525    #[doc = ""]
2526    #[doc = "@return 0 on success, or anything else to stop being called."]
2527    pub show:
2528        ::std::option::Option<unsafe extern "C" fn(ui: LV2UI_Handle) -> ::std::os::raw::c_int>,
2529    #[doc = "Hide the window for this UI."]
2530    #[doc = ""]
2531    #[doc = "@return 0 on success, or anything else to stop being called."]
2532    pub hide:
2533        ::std::option::Option<unsafe extern "C" fn(ui: LV2UI_Handle) -> ::std::os::raw::c_int>,
2534}
2535#[doc = "Peak data for a slice of time, the update format for ui:peakProtocol."]
2536#[repr(C)]
2537#[derive(Debug, Copy, Clone)]
2538pub struct LV2UI_Peak_Data {
2539    #[doc = "The start of the measurement period.  This is just a running counter"]
2540    #[doc = "that is only meaningful in comparison to previous values and must not be"]
2541    #[doc = "interpreted as an absolute time."]
2542    pub period_start: u32,
2543    #[doc = "The size of the measurement period, in the same units as period_start."]
2544    pub period_size: u32,
2545    #[doc = "The peak value for the measurement period. This should be the maximal"]
2546    #[doc = "value for abs(sample) over all the samples in the period."]
2547    pub peak: f32,
2548}
2549#[doc = "The type of the lv2ui_descriptor() function."]
2550pub type LV2UI_DescriptorFunction =
2551    ::std::option::Option<unsafe extern "C" fn(index: u32) -> *const LV2UI_Descriptor>;
2552pub type LV2_URI_Map_Callback_Data = *mut ::std::os::raw::c_void;
2553#[doc = "URI Map Feature."]
2554#[doc = ""]
2555#[doc = "To support this feature the host must pass an LV2_Feature struct to the"]
2556#[doc = "plugin's instantiate method with URI \"http://lv2plug.in/ns/ext/uri-map\""]
2557#[doc = "and data pointed to an instance of this struct."]
2558#[repr(C)]
2559#[derive(Debug, Copy, Clone)]
2560pub struct LV2_URI_Map_Feature {
2561    #[doc = "Opaque pointer to host data."]
2562    #[doc = ""]
2563    #[doc = "The plugin MUST pass this to any call to functions in this struct."]
2564    #[doc = "Otherwise, it must not be interpreted in any way."]
2565    pub callback_data: LV2_URI_Map_Callback_Data,
2566    #[doc = "Get the numeric ID of a URI from the host."]
2567    #[doc = ""]
2568    #[doc = "@param callback_data Must be the callback_data member of this struct."]
2569    #[doc = "@param map The 'context' of this URI. Certain extensions may define a"]
2570    #[doc = "URI that must be passed here with certain restrictions on the return"]
2571    #[doc = "value (e.g. limited range). This value may be NULL if the plugin needs"]
2572    #[doc = "an ID for a URI in general. Extensions SHOULD NOT define a context"]
2573    #[doc = "unless there is a specific need to do so, e.g. to restrict the range of"]
2574    #[doc = "the returned value."]
2575    #[doc = "@param uri The URI to be mapped to an integer ID."]
2576    #[doc = ""]
2577    #[doc = "This function is referentially transparent; any number of calls with the"]
2578    #[doc = "same arguments is guaranteed to return the same value over the life of a"]
2579    #[doc = "plugin instance (though the same URI may return different values with a"]
2580    #[doc = "different map parameter). However, this function is not necessarily very"]
2581    #[doc = "fast: plugins SHOULD cache any IDs they might need in performance"]
2582    #[doc = "critical situations."]
2583    #[doc = ""]
2584    #[doc = "The return value 0 is reserved and indicates that an ID for that URI"]
2585    #[doc = "could not be created for whatever reason. Extensions MAY define more"]
2586    #[doc = "precisely what this means in a certain context, but in general plugins"]
2587    #[doc = "SHOULD handle this situation as gracefully as possible. However, hosts"]
2588    #[doc = "SHOULD NOT return 0 from this function in non-exceptional circumstances"]
2589    #[doc = "(e.g. the URI map SHOULD be dynamic). Hosts that statically support only"]
2590    #[doc = "a fixed set of URIs should not expect plugins to function correctly."]
2591    pub uri_to_id: ::std::option::Option<
2592        unsafe extern "C" fn(
2593            callback_data: LV2_URI_Map_Callback_Data,
2594            map: *const ::std::os::raw::c_char,
2595            uri: *const ::std::os::raw::c_char,
2596        ) -> u32,
2597    >,
2598}
2599#[doc = "< Completed successfully."]
2600pub const LV2_Worker_Status_LV2_WORKER_SUCCESS: LV2_Worker_Status = 0;
2601#[doc = "< Unknown error."]
2602pub const LV2_Worker_Status_LV2_WORKER_ERR_UNKNOWN: LV2_Worker_Status = 1;
2603#[doc = "< Failed due to lack of space."]
2604pub const LV2_Worker_Status_LV2_WORKER_ERR_NO_SPACE: LV2_Worker_Status = 2;
2605#[doc = "Status code for worker functions."]
2606pub type LV2_Worker_Status = u32;
2607#[doc = " Opaque handle for LV2_Worker_Interface::work()."]
2608pub type LV2_Worker_Respond_Handle = *mut ::std::os::raw::c_void;
2609#[doc = "A function to respond to run() from the worker method."]
2610#[doc = ""]
2611#[doc = "The `data` MUST be safe for the host to copy and later pass to"]
2612#[doc = "work_response(), and the host MUST guarantee that it will be eventually"]
2613#[doc = "passed to work_response() if this function returns LV2_WORKER_SUCCESS."]
2614pub type LV2_Worker_Respond_Function = ::std::option::Option<
2615    unsafe extern "C" fn(
2616        handle: LV2_Worker_Respond_Handle,
2617        size: u32,
2618        data: *const ::std::os::raw::c_void,
2619    ) -> LV2_Worker_Status,
2620>;
2621#[doc = "Plugin Worker Interface."]
2622#[doc = ""]
2623#[doc = "This is the interface provided by the plugin to implement a worker method."]
2624#[doc = "The plugin's extension_data() method should return an LV2_Worker_Interface"]
2625#[doc = "when called with LV2_WORKER__interface as its argument."]
2626#[repr(C)]
2627#[derive(Debug, Copy, Clone)]
2628pub struct LV2_Worker_Interface {
2629    #[doc = "The worker method.  This is called by the host in a non-realtime context"]
2630    #[doc = "as requested, possibly with an arbitrary message to handle."]
2631    #[doc = ""]
2632    #[doc = "A response can be sent to run() using `respond`.  The plugin MUST NOT"]
2633    #[doc = "make any assumptions about which thread calls this method, except that"]
2634    #[doc = "there are no real-time requirements and only one call may be executed at"]
2635    #[doc = "a time.  That is, the host MAY call this method from any non-real-time"]
2636    #[doc = "thread, but MUST NOT make concurrent calls to this method from several"]
2637    #[doc = "threads."]
2638    #[doc = ""]
2639    #[doc = "@param instance The LV2 instance this is a method on."]
2640    #[doc = "@param respond  A function for sending a response to run()."]
2641    #[doc = "@param handle   Must be passed to `respond` if it is called."]
2642    #[doc = "@param size     The size of `data`."]
2643    #[doc = "@param data     Data from run(), or NULL."]
2644    pub work: ::std::option::Option<
2645        unsafe extern "C" fn(
2646            instance: LV2_Handle,
2647            respond: LV2_Worker_Respond_Function,
2648            handle: LV2_Worker_Respond_Handle,
2649            size: u32,
2650            data: *const ::std::os::raw::c_void,
2651        ) -> LV2_Worker_Status,
2652    >,
2653    #[doc = "Handle a response from the worker.  This is called by the host in the"]
2654    #[doc = "run() context when a response from the worker is ready."]
2655    #[doc = ""]
2656    #[doc = "@param instance The LV2 instance this is a method on."]
2657    #[doc = "@param size     The size of `body`."]
2658    #[doc = "@param body     Message body, or NULL."]
2659    pub work_response: ::std::option::Option<
2660        unsafe extern "C" fn(
2661            instance: LV2_Handle,
2662            size: u32,
2663            body: *const ::std::os::raw::c_void,
2664        ) -> LV2_Worker_Status,
2665    >,
2666    #[doc = "Called when all responses for this cycle have been delivered."]
2667    #[doc = ""]
2668    #[doc = "Since work_response() may be called after run() finished, this provides"]
2669    #[doc = "a hook for code that must run after the cycle is completed."]
2670    #[doc = ""]
2671    #[doc = "This field may be NULL if the plugin has no use for it.  Otherwise, the"]
2672    #[doc = "host MUST call it after every run(), regardless of whether or not any"]
2673    #[doc = "responses were sent that cycle."]
2674    pub end_run:
2675        ::std::option::Option<unsafe extern "C" fn(instance: LV2_Handle) -> LV2_Worker_Status>,
2676}
2677#[doc = " Opaque handle for LV2_Worker_Schedule."]
2678pub type LV2_Worker_Schedule_Handle = *mut ::std::os::raw::c_void;
2679#[doc = "Schedule Worker Host Feature."]
2680#[doc = ""]
2681#[doc = "The host passes this feature to provide a schedule_work() function, which"]
2682#[doc = "the plugin can use to schedule a worker call from run()."]
2683#[repr(C)]
2684#[derive(Debug, Copy, Clone)]
2685pub struct LV2_Worker_Schedule {
2686    #[doc = "Opaque host data."]
2687    pub handle: LV2_Worker_Schedule_Handle,
2688    #[doc = "Request from run() that the host call the worker."]
2689    #[doc = ""]
2690    #[doc = "This function is in the audio threading class.  It should be called from"]
2691    #[doc = "run() to request that the host call the work() method in a non-realtime"]
2692    #[doc = "context with the given arguments."]
2693    #[doc = ""]
2694    #[doc = "This function is always safe to call from run(), but it is not"]
2695    #[doc = "guaranteed that the worker is actually called from a different thread."]
2696    #[doc = "In particular, when free-wheeling (for example, during offline"]
2697    #[doc = "rendering), the worker may be executed immediately.  This allows"]
2698    #[doc = "single-threaded processing with sample accuracy and avoids timing"]
2699    #[doc = "problems when run() is executing much faster or slower than real-time."]
2700    #[doc = ""]
2701    #[doc = "Plugins SHOULD be written in such a way that if the worker runs"]
2702    #[doc = "immediately, and responses from the worker are delivered immediately,"]
2703    #[doc = "the effect of the work takes place immediately with sample accuracy."]
2704    #[doc = ""]
2705    #[doc = "The `data` MUST be safe for the host to copy and later pass to work(),"]
2706    #[doc = "and the host MUST guarantee that it will be eventually passed to work()"]
2707    #[doc = "if this function returns LV2_WORKER_SUCCESS."]
2708    #[doc = ""]
2709    #[doc = "@param handle The handle field of this struct."]
2710    #[doc = "@param size   The size of `data`."]
2711    #[doc = "@param data   Message to pass to work(), or NULL."]
2712    pub schedule_work: ::std::option::Option<
2713        unsafe extern "C" fn(
2714            handle: LV2_Worker_Schedule_Handle,
2715            size: u32,
2716            data: *const ::std::os::raw::c_void,
2717        ) -> LV2_Worker_Status,
2718    >,
2719}
2720pub type __builtin_va_list = [__va_list_tag; 1usize];
2721#[repr(C)]
2722#[derive(Debug, Copy, Clone)]
2723pub struct __va_list_tag {
2724    pub gp_offset: ::std::os::raw::c_uint,
2725    pub fp_offset: ::std::os::raw::c_uint,
2726    pub overflow_arg_area: *mut ::std::os::raw::c_void,
2727    pub reg_save_area: *mut ::std::os::raw::c_void,
2728}