reaper_low/
reaper.rs

1# ! [ doc = r" This file is automatically generated by executing `cargo build --features generate`." ] # ! [ doc = r"" ] # ! [ doc = r" **Make adjustments in `build.rs`, not in this file!**" ] # ! [ allow ( non_upper_case_globals ) ] # ! [ allow ( non_camel_case_types ) ] # ! [ allow ( non_snake_case ) ]use super::{bindings::root, ReaperPluginContext};
2use c_str_macro::c_str;
3#[doc = r" This is the low-level API access point to all REAPER functions."]
4#[doc = r""]
5#[doc = r" In order to use it, you first must obtain an instance of this struct by invoking [`load()`]."]
6#[doc = r""]
7#[doc = r" # Panics"]
8#[doc = r""]
9#[doc = r" Please note that it's possible that functions are *not available*. This can be the case if"]
10#[doc = r" the user runs your plug-in in an older version of REAPER which doesn't have that function yet."]
11#[doc = r" The availability of a function can be checked by inspecting the respective function pointer"]
12#[doc = r" option accessible via the [`pointers()`] method. The actual methods in this structs are just"]
13#[doc = r" convenience methods which unwrap the function pointers and panic if they are not available."]
14#[doc = r""]
15#[doc = r" [`load()`]: #method.load"]
16#[doc = r" [`pointers()`]: #method.pointers"]
17#[derive(Copy, Clone, Debug, Default)]
18pub struct Reaper {
19    pub(crate) pointers: ReaperFunctionPointers,
20}
21impl Reaper {
22    #[doc = r" Loads all available REAPER functions from the given plug-in context."]
23    #[doc = r""]
24    #[doc = r" Returns a low-level `Reaper` instance which allows you to call these functions."]
25    pub fn load(context: &ReaperPluginContext) -> Reaper {
26        let get_func = &context.function_provider;
27        let pointers = unsafe {
28            ReaperFunctionPointers {
29                __mergesort: std::mem::transmute(get_func(c_str!(stringify!(__mergesort)))),
30                AddCustomizableMenu: std::mem::transmute(get_func(c_str!(stringify!(
31                    AddCustomizableMenu
32                )))),
33                AddExtensionsMainMenu: std::mem::transmute(get_func(c_str!(stringify!(
34                    AddExtensionsMainMenu
35                )))),
36                AddMediaItemToTrack: std::mem::transmute(get_func(c_str!(stringify!(
37                    AddMediaItemToTrack
38                )))),
39                AddProjectMarker: std::mem::transmute(get_func(c_str!(stringify!(
40                    AddProjectMarker
41                )))),
42                AddProjectMarker2: std::mem::transmute(get_func(c_str!(stringify!(
43                    AddProjectMarker2
44                )))),
45                AddRemoveReaScript: std::mem::transmute(get_func(c_str!(stringify!(
46                    AddRemoveReaScript
47                )))),
48                AddTakeToMediaItem: std::mem::transmute(get_func(c_str!(stringify!(
49                    AddTakeToMediaItem
50                )))),
51                AddTempoTimeSigMarker: std::mem::transmute(get_func(c_str!(stringify!(
52                    AddTempoTimeSigMarker
53                )))),
54                adjustZoom: std::mem::transmute(get_func(c_str!(stringify!(adjustZoom)))),
55                AnyTrackSolo: std::mem::transmute(get_func(c_str!(stringify!(AnyTrackSolo)))),
56                APIExists: std::mem::transmute(get_func(c_str!(stringify!(APIExists)))),
57                APITest: std::mem::transmute(get_func(c_str!(stringify!(APITest)))),
58                ApplyNudge: std::mem::transmute(get_func(c_str!(stringify!(ApplyNudge)))),
59                ArmCommand: std::mem::transmute(get_func(c_str!(stringify!(ArmCommand)))),
60                Audio_Init: std::mem::transmute(get_func(c_str!(stringify!(Audio_Init)))),
61                Audio_IsPreBuffer: std::mem::transmute(get_func(c_str!(stringify!(
62                    Audio_IsPreBuffer
63                )))),
64                Audio_IsRunning: std::mem::transmute(get_func(c_str!(stringify!(Audio_IsRunning)))),
65                Audio_Quit: std::mem::transmute(get_func(c_str!(stringify!(Audio_Quit)))),
66                Audio_RegHardwareHook: std::mem::transmute(get_func(c_str!(stringify!(
67                    Audio_RegHardwareHook
68                )))),
69                AudioAccessorStateChanged: std::mem::transmute(get_func(c_str!(stringify!(
70                    AudioAccessorStateChanged
71                )))),
72                AudioAccessorUpdate: std::mem::transmute(get_func(c_str!(stringify!(
73                    AudioAccessorUpdate
74                )))),
75                AudioAccessorValidateState: std::mem::transmute(get_func(c_str!(stringify!(
76                    AudioAccessorValidateState
77                )))),
78                BypassFxAllTracks: std::mem::transmute(get_func(c_str!(stringify!(
79                    BypassFxAllTracks
80                )))),
81                CalculatePeaks: std::mem::transmute(get_func(c_str!(stringify!(CalculatePeaks)))),
82                CalculatePeaksFloatSrcPtr: std::mem::transmute(get_func(c_str!(stringify!(
83                    CalculatePeaksFloatSrcPtr
84                )))),
85                ClearAllRecArmed: std::mem::transmute(get_func(c_str!(stringify!(
86                    ClearAllRecArmed
87                )))),
88                ClearConsole: std::mem::transmute(get_func(c_str!(stringify!(ClearConsole)))),
89                ClearPeakCache: std::mem::transmute(get_func(c_str!(stringify!(ClearPeakCache)))),
90                ColorFromNative: std::mem::transmute(get_func(c_str!(stringify!(ColorFromNative)))),
91                ColorToNative: std::mem::transmute(get_func(c_str!(stringify!(ColorToNative)))),
92                CountActionShortcuts: std::mem::transmute(get_func(c_str!(stringify!(
93                    CountActionShortcuts
94                )))),
95                CountAutomationItems: std::mem::transmute(get_func(c_str!(stringify!(
96                    CountAutomationItems
97                )))),
98                CountEnvelopePoints: std::mem::transmute(get_func(c_str!(stringify!(
99                    CountEnvelopePoints
100                )))),
101                CountEnvelopePointsEx: std::mem::transmute(get_func(c_str!(stringify!(
102                    CountEnvelopePointsEx
103                )))),
104                CountMediaItems: std::mem::transmute(get_func(c_str!(stringify!(CountMediaItems)))),
105                CountProjectMarkers: std::mem::transmute(get_func(c_str!(stringify!(
106                    CountProjectMarkers
107                )))),
108                CountSelectedMediaItems: std::mem::transmute(get_func(c_str!(stringify!(
109                    CountSelectedMediaItems
110                )))),
111                CountSelectedTracks: std::mem::transmute(get_func(c_str!(stringify!(
112                    CountSelectedTracks
113                )))),
114                CountSelectedTracks2: std::mem::transmute(get_func(c_str!(stringify!(
115                    CountSelectedTracks2
116                )))),
117                CountTakeEnvelopes: std::mem::transmute(get_func(c_str!(stringify!(
118                    CountTakeEnvelopes
119                )))),
120                CountTakes: std::mem::transmute(get_func(c_str!(stringify!(CountTakes)))),
121                CountTCPFXParms: std::mem::transmute(get_func(c_str!(stringify!(CountTCPFXParms)))),
122                CountTempoTimeSigMarkers: std::mem::transmute(get_func(c_str!(stringify!(
123                    CountTempoTimeSigMarkers
124                )))),
125                CountTrackEnvelopes: std::mem::transmute(get_func(c_str!(stringify!(
126                    CountTrackEnvelopes
127                )))),
128                CountTrackMediaItems: std::mem::transmute(get_func(c_str!(stringify!(
129                    CountTrackMediaItems
130                )))),
131                CountTracks: std::mem::transmute(get_func(c_str!(stringify!(CountTracks)))),
132                CreateLocalOscHandler: std::mem::transmute(get_func(c_str!(stringify!(
133                    CreateLocalOscHandler
134                )))),
135                CreateMIDIInput: std::mem::transmute(get_func(c_str!(stringify!(CreateMIDIInput)))),
136                CreateMIDIOutput: std::mem::transmute(get_func(c_str!(stringify!(
137                    CreateMIDIOutput
138                )))),
139                CreateNewMIDIItemInProj: std::mem::transmute(get_func(c_str!(stringify!(
140                    CreateNewMIDIItemInProj
141                )))),
142                CreateTakeAudioAccessor: std::mem::transmute(get_func(c_str!(stringify!(
143                    CreateTakeAudioAccessor
144                )))),
145                CreateTrackAudioAccessor: std::mem::transmute(get_func(c_str!(stringify!(
146                    CreateTrackAudioAccessor
147                )))),
148                CreateTrackSend: std::mem::transmute(get_func(c_str!(stringify!(CreateTrackSend)))),
149                CSurf_FlushUndo: std::mem::transmute(get_func(c_str!(stringify!(CSurf_FlushUndo)))),
150                CSurf_GetTouchState: std::mem::transmute(get_func(c_str!(stringify!(
151                    CSurf_GetTouchState
152                )))),
153                CSurf_GoEnd: std::mem::transmute(get_func(c_str!(stringify!(CSurf_GoEnd)))),
154                CSurf_GoStart: std::mem::transmute(get_func(c_str!(stringify!(CSurf_GoStart)))),
155                CSurf_NumTracks: std::mem::transmute(get_func(c_str!(stringify!(CSurf_NumTracks)))),
156                CSurf_OnArrow: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnArrow)))),
157                CSurf_OnFwd: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnFwd)))),
158                CSurf_OnFXChange: std::mem::transmute(get_func(c_str!(stringify!(
159                    CSurf_OnFXChange
160                )))),
161                CSurf_OnInputMonitorChange: std::mem::transmute(get_func(c_str!(stringify!(
162                    CSurf_OnInputMonitorChange
163                )))),
164                CSurf_OnInputMonitorChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
165                    CSurf_OnInputMonitorChangeEx
166                )))),
167                CSurf_OnMuteChange: std::mem::transmute(get_func(c_str!(stringify!(
168                    CSurf_OnMuteChange
169                )))),
170                CSurf_OnMuteChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
171                    CSurf_OnMuteChangeEx
172                )))),
173                CSurf_OnOscControlMessage: std::mem::transmute(get_func(c_str!(stringify!(
174                    CSurf_OnOscControlMessage
175                )))),
176                CSurf_OnPanChange: std::mem::transmute(get_func(c_str!(stringify!(
177                    CSurf_OnPanChange
178                )))),
179                CSurf_OnPanChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
180                    CSurf_OnPanChangeEx
181                )))),
182                CSurf_OnPause: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnPause)))),
183                CSurf_OnPlay: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnPlay)))),
184                CSurf_OnPlayRateChange: std::mem::transmute(get_func(c_str!(stringify!(
185                    CSurf_OnPlayRateChange
186                )))),
187                CSurf_OnRecArmChange: std::mem::transmute(get_func(c_str!(stringify!(
188                    CSurf_OnRecArmChange
189                )))),
190                CSurf_OnRecArmChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
191                    CSurf_OnRecArmChangeEx
192                )))),
193                CSurf_OnRecord: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnRecord)))),
194                CSurf_OnRecvPanChange: std::mem::transmute(get_func(c_str!(stringify!(
195                    CSurf_OnRecvPanChange
196                )))),
197                CSurf_OnRecvVolumeChange: std::mem::transmute(get_func(c_str!(stringify!(
198                    CSurf_OnRecvVolumeChange
199                )))),
200                CSurf_OnRew: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnRew)))),
201                CSurf_OnRewFwd: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnRewFwd)))),
202                CSurf_OnScroll: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnScroll)))),
203                CSurf_OnSelectedChange: std::mem::transmute(get_func(c_str!(stringify!(
204                    CSurf_OnSelectedChange
205                )))),
206                CSurf_OnSendPanChange: std::mem::transmute(get_func(c_str!(stringify!(
207                    CSurf_OnSendPanChange
208                )))),
209                CSurf_OnSendVolumeChange: std::mem::transmute(get_func(c_str!(stringify!(
210                    CSurf_OnSendVolumeChange
211                )))),
212                CSurf_OnSoloChange: std::mem::transmute(get_func(c_str!(stringify!(
213                    CSurf_OnSoloChange
214                )))),
215                CSurf_OnSoloChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
216                    CSurf_OnSoloChangeEx
217                )))),
218                CSurf_OnStop: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnStop)))),
219                CSurf_OnTempoChange: std::mem::transmute(get_func(c_str!(stringify!(
220                    CSurf_OnTempoChange
221                )))),
222                CSurf_OnTrackSelection: std::mem::transmute(get_func(c_str!(stringify!(
223                    CSurf_OnTrackSelection
224                )))),
225                CSurf_OnVolumeChange: std::mem::transmute(get_func(c_str!(stringify!(
226                    CSurf_OnVolumeChange
227                )))),
228                CSurf_OnVolumeChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
229                    CSurf_OnVolumeChangeEx
230                )))),
231                CSurf_OnWidthChange: std::mem::transmute(get_func(c_str!(stringify!(
232                    CSurf_OnWidthChange
233                )))),
234                CSurf_OnWidthChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
235                    CSurf_OnWidthChangeEx
236                )))),
237                CSurf_OnZoom: std::mem::transmute(get_func(c_str!(stringify!(CSurf_OnZoom)))),
238                CSurf_ResetAllCachedVolPanStates: std::mem::transmute(get_func(c_str!(
239                    stringify!(CSurf_ResetAllCachedVolPanStates)
240                ))),
241                CSurf_ScrubAmt: std::mem::transmute(get_func(c_str!(stringify!(CSurf_ScrubAmt)))),
242                CSurf_SetAutoMode: std::mem::transmute(get_func(c_str!(stringify!(
243                    CSurf_SetAutoMode
244                )))),
245                CSurf_SetPlayState: std::mem::transmute(get_func(c_str!(stringify!(
246                    CSurf_SetPlayState
247                )))),
248                CSurf_SetRepeatState: std::mem::transmute(get_func(c_str!(stringify!(
249                    CSurf_SetRepeatState
250                )))),
251                CSurf_SetSurfaceMute: std::mem::transmute(get_func(c_str!(stringify!(
252                    CSurf_SetSurfaceMute
253                )))),
254                CSurf_SetSurfacePan: std::mem::transmute(get_func(c_str!(stringify!(
255                    CSurf_SetSurfacePan
256                )))),
257                CSurf_SetSurfaceRecArm: std::mem::transmute(get_func(c_str!(stringify!(
258                    CSurf_SetSurfaceRecArm
259                )))),
260                CSurf_SetSurfaceSelected: std::mem::transmute(get_func(c_str!(stringify!(
261                    CSurf_SetSurfaceSelected
262                )))),
263                CSurf_SetSurfaceSolo: std::mem::transmute(get_func(c_str!(stringify!(
264                    CSurf_SetSurfaceSolo
265                )))),
266                CSurf_SetSurfaceVolume: std::mem::transmute(get_func(c_str!(stringify!(
267                    CSurf_SetSurfaceVolume
268                )))),
269                CSurf_SetTrackListChange: std::mem::transmute(get_func(c_str!(stringify!(
270                    CSurf_SetTrackListChange
271                )))),
272                CSurf_TrackFromID: std::mem::transmute(get_func(c_str!(stringify!(
273                    CSurf_TrackFromID
274                )))),
275                CSurf_TrackToID: std::mem::transmute(get_func(c_str!(stringify!(CSurf_TrackToID)))),
276                DB2SLIDER: std::mem::transmute(get_func(c_str!(stringify!(DB2SLIDER)))),
277                DeleteActionShortcut: std::mem::transmute(get_func(c_str!(stringify!(
278                    DeleteActionShortcut
279                )))),
280                DeleteEnvelopePointEx: std::mem::transmute(get_func(c_str!(stringify!(
281                    DeleteEnvelopePointEx
282                )))),
283                DeleteEnvelopePointRange: std::mem::transmute(get_func(c_str!(stringify!(
284                    DeleteEnvelopePointRange
285                )))),
286                DeleteEnvelopePointRangeEx: std::mem::transmute(get_func(c_str!(stringify!(
287                    DeleteEnvelopePointRangeEx
288                )))),
289                DeleteExtState: std::mem::transmute(get_func(c_str!(stringify!(DeleteExtState)))),
290                DeleteProjectMarker: std::mem::transmute(get_func(c_str!(stringify!(
291                    DeleteProjectMarker
292                )))),
293                DeleteProjectMarkerByIndex: std::mem::transmute(get_func(c_str!(stringify!(
294                    DeleteProjectMarkerByIndex
295                )))),
296                DeleteTakeStretchMarkers: std::mem::transmute(get_func(c_str!(stringify!(
297                    DeleteTakeStretchMarkers
298                )))),
299                DeleteTempoTimeSigMarker: std::mem::transmute(get_func(c_str!(stringify!(
300                    DeleteTempoTimeSigMarker
301                )))),
302                DeleteTrack: std::mem::transmute(get_func(c_str!(stringify!(DeleteTrack)))),
303                DeleteTrackMediaItem: std::mem::transmute(get_func(c_str!(stringify!(
304                    DeleteTrackMediaItem
305                )))),
306                DestroyAudioAccessor: std::mem::transmute(get_func(c_str!(stringify!(
307                    DestroyAudioAccessor
308                )))),
309                DestroyLocalOscHandler: std::mem::transmute(get_func(c_str!(stringify!(
310                    DestroyLocalOscHandler
311                )))),
312                DoActionShortcutDialog: std::mem::transmute(get_func(c_str!(stringify!(
313                    DoActionShortcutDialog
314                )))),
315                Dock_UpdateDockID: std::mem::transmute(get_func(c_str!(stringify!(
316                    Dock_UpdateDockID
317                )))),
318                DockGetPosition: std::mem::transmute(get_func(c_str!(stringify!(DockGetPosition)))),
319                DockIsChildOfDock: std::mem::transmute(get_func(c_str!(stringify!(
320                    DockIsChildOfDock
321                )))),
322                DockWindowActivate: std::mem::transmute(get_func(c_str!(stringify!(
323                    DockWindowActivate
324                )))),
325                DockWindowAdd: std::mem::transmute(get_func(c_str!(stringify!(DockWindowAdd)))),
326                DockWindowAddEx: std::mem::transmute(get_func(c_str!(stringify!(DockWindowAddEx)))),
327                DockWindowRefresh: std::mem::transmute(get_func(c_str!(stringify!(
328                    DockWindowRefresh
329                )))),
330                DockWindowRefreshForHWND: std::mem::transmute(get_func(c_str!(stringify!(
331                    DockWindowRefreshForHWND
332                )))),
333                DockWindowRemove: std::mem::transmute(get_func(c_str!(stringify!(
334                    DockWindowRemove
335                )))),
336                DuplicateCustomizableMenu: std::mem::transmute(get_func(c_str!(stringify!(
337                    DuplicateCustomizableMenu
338                )))),
339                EditTempoTimeSigMarker: std::mem::transmute(get_func(c_str!(stringify!(
340                    EditTempoTimeSigMarker
341                )))),
342                EnsureNotCompletelyOffscreen: std::mem::transmute(get_func(c_str!(stringify!(
343                    EnsureNotCompletelyOffscreen
344                )))),
345                EnumerateFiles: std::mem::transmute(get_func(c_str!(stringify!(EnumerateFiles)))),
346                EnumerateSubdirectories: std::mem::transmute(get_func(c_str!(stringify!(
347                    EnumerateSubdirectories
348                )))),
349                EnumPitchShiftModes: std::mem::transmute(get_func(c_str!(stringify!(
350                    EnumPitchShiftModes
351                )))),
352                EnumPitchShiftSubModes: std::mem::transmute(get_func(c_str!(stringify!(
353                    EnumPitchShiftSubModes
354                )))),
355                EnumProjectMarkers: std::mem::transmute(get_func(c_str!(stringify!(
356                    EnumProjectMarkers
357                )))),
358                EnumProjectMarkers2: std::mem::transmute(get_func(c_str!(stringify!(
359                    EnumProjectMarkers2
360                )))),
361                EnumProjectMarkers3: std::mem::transmute(get_func(c_str!(stringify!(
362                    EnumProjectMarkers3
363                )))),
364                EnumProjects: std::mem::transmute(get_func(c_str!(stringify!(EnumProjects)))),
365                EnumProjExtState: std::mem::transmute(get_func(c_str!(stringify!(
366                    EnumProjExtState
367                )))),
368                EnumRegionRenderMatrix: std::mem::transmute(get_func(c_str!(stringify!(
369                    EnumRegionRenderMatrix
370                )))),
371                EnumTrackMIDIProgramNames: std::mem::transmute(get_func(c_str!(stringify!(
372                    EnumTrackMIDIProgramNames
373                )))),
374                EnumTrackMIDIProgramNamesEx: std::mem::transmute(get_func(c_str!(stringify!(
375                    EnumTrackMIDIProgramNamesEx
376                )))),
377                Envelope_Evaluate: std::mem::transmute(get_func(c_str!(stringify!(
378                    Envelope_Evaluate
379                )))),
380                Envelope_FormatValue: std::mem::transmute(get_func(c_str!(stringify!(
381                    Envelope_FormatValue
382                )))),
383                Envelope_GetParentTake: std::mem::transmute(get_func(c_str!(stringify!(
384                    Envelope_GetParentTake
385                )))),
386                Envelope_GetParentTrack: std::mem::transmute(get_func(c_str!(stringify!(
387                    Envelope_GetParentTrack
388                )))),
389                Envelope_SortPoints: std::mem::transmute(get_func(c_str!(stringify!(
390                    Envelope_SortPoints
391                )))),
392                Envelope_SortPointsEx: std::mem::transmute(get_func(c_str!(stringify!(
393                    Envelope_SortPointsEx
394                )))),
395                ExecProcess: std::mem::transmute(get_func(c_str!(stringify!(ExecProcess)))),
396                file_exists: std::mem::transmute(get_func(c_str!(stringify!(file_exists)))),
397                FindTempoTimeSigMarker: std::mem::transmute(get_func(c_str!(stringify!(
398                    FindTempoTimeSigMarker
399                )))),
400                format_timestr: std::mem::transmute(get_func(c_str!(stringify!(format_timestr)))),
401                format_timestr_len: std::mem::transmute(get_func(c_str!(stringify!(
402                    format_timestr_len
403                )))),
404                format_timestr_pos: std::mem::transmute(get_func(c_str!(stringify!(
405                    format_timestr_pos
406                )))),
407                FreeHeapPtr: std::mem::transmute(get_func(c_str!(stringify!(FreeHeapPtr)))),
408                genGuid: std::mem::transmute(get_func(c_str!(stringify!(genGuid)))),
409                get_config_var: std::mem::transmute(get_func(c_str!(stringify!(get_config_var)))),
410                get_config_var_string: std::mem::transmute(get_func(c_str!(stringify!(
411                    get_config_var_string
412                )))),
413                get_ini_file: std::mem::transmute(get_func(c_str!(stringify!(get_ini_file)))),
414                get_midi_config_var: std::mem::transmute(get_func(c_str!(stringify!(
415                    get_midi_config_var
416                )))),
417                GetActionShortcutDesc: std::mem::transmute(get_func(c_str!(stringify!(
418                    GetActionShortcutDesc
419                )))),
420                GetActiveTake: std::mem::transmute(get_func(c_str!(stringify!(GetActiveTake)))),
421                GetAllProjectPlayStates: std::mem::transmute(get_func(c_str!(stringify!(
422                    GetAllProjectPlayStates
423                )))),
424                GetAppVersion: std::mem::transmute(get_func(c_str!(stringify!(GetAppVersion)))),
425                GetArmedCommand: std::mem::transmute(get_func(c_str!(stringify!(GetArmedCommand)))),
426                GetAudioAccessorEndTime: std::mem::transmute(get_func(c_str!(stringify!(
427                    GetAudioAccessorEndTime
428                )))),
429                GetAudioAccessorHash: std::mem::transmute(get_func(c_str!(stringify!(
430                    GetAudioAccessorHash
431                )))),
432                GetAudioAccessorSamples: std::mem::transmute(get_func(c_str!(stringify!(
433                    GetAudioAccessorSamples
434                )))),
435                GetAudioAccessorStartTime: std::mem::transmute(get_func(c_str!(stringify!(
436                    GetAudioAccessorStartTime
437                )))),
438                GetAudioDeviceInfo: std::mem::transmute(get_func(c_str!(stringify!(
439                    GetAudioDeviceInfo
440                )))),
441                GetColorTheme: std::mem::transmute(get_func(c_str!(stringify!(GetColorTheme)))),
442                GetColorThemeStruct: std::mem::transmute(get_func(c_str!(stringify!(
443                    GetColorThemeStruct
444                )))),
445                GetConfigWantsDock: std::mem::transmute(get_func(c_str!(stringify!(
446                    GetConfigWantsDock
447                )))),
448                GetContextMenu: std::mem::transmute(get_func(c_str!(stringify!(GetContextMenu)))),
449                GetCurrentProjectInLoadSave: std::mem::transmute(get_func(c_str!(stringify!(
450                    GetCurrentProjectInLoadSave
451                )))),
452                GetCursorContext: std::mem::transmute(get_func(c_str!(stringify!(
453                    GetCursorContext
454                )))),
455                GetCursorContext2: std::mem::transmute(get_func(c_str!(stringify!(
456                    GetCursorContext2
457                )))),
458                GetCursorPosition: std::mem::transmute(get_func(c_str!(stringify!(
459                    GetCursorPosition
460                )))),
461                GetCursorPositionEx: std::mem::transmute(get_func(c_str!(stringify!(
462                    GetCursorPositionEx
463                )))),
464                GetDisplayedMediaItemColor: std::mem::transmute(get_func(c_str!(stringify!(
465                    GetDisplayedMediaItemColor
466                )))),
467                GetDisplayedMediaItemColor2: std::mem::transmute(get_func(c_str!(stringify!(
468                    GetDisplayedMediaItemColor2
469                )))),
470                GetEnvelopeInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
471                    GetEnvelopeInfo_Value
472                )))),
473                GetEnvelopeName: std::mem::transmute(get_func(c_str!(stringify!(GetEnvelopeName)))),
474                GetEnvelopePoint: std::mem::transmute(get_func(c_str!(stringify!(
475                    GetEnvelopePoint
476                )))),
477                GetEnvelopePointByTime: std::mem::transmute(get_func(c_str!(stringify!(
478                    GetEnvelopePointByTime
479                )))),
480                GetEnvelopePointByTimeEx: std::mem::transmute(get_func(c_str!(stringify!(
481                    GetEnvelopePointByTimeEx
482                )))),
483                GetEnvelopePointEx: std::mem::transmute(get_func(c_str!(stringify!(
484                    GetEnvelopePointEx
485                )))),
486                GetEnvelopeScalingMode: std::mem::transmute(get_func(c_str!(stringify!(
487                    GetEnvelopeScalingMode
488                )))),
489                GetEnvelopeStateChunk: std::mem::transmute(get_func(c_str!(stringify!(
490                    GetEnvelopeStateChunk
491                )))),
492                GetExePath: std::mem::transmute(get_func(c_str!(stringify!(GetExePath)))),
493                GetExtState: std::mem::transmute(get_func(c_str!(stringify!(GetExtState)))),
494                GetFocusedFX: std::mem::transmute(get_func(c_str!(stringify!(GetFocusedFX)))),
495                GetFreeDiskSpaceForRecordPath: std::mem::transmute(get_func(c_str!(stringify!(
496                    GetFreeDiskSpaceForRecordPath
497                )))),
498                GetFXEnvelope: std::mem::transmute(get_func(c_str!(stringify!(GetFXEnvelope)))),
499                GetGlobalAutomationOverride: std::mem::transmute(get_func(c_str!(stringify!(
500                    GetGlobalAutomationOverride
501                )))),
502                GetHZoomLevel: std::mem::transmute(get_func(c_str!(stringify!(GetHZoomLevel)))),
503                GetIconThemePointer: std::mem::transmute(get_func(c_str!(stringify!(
504                    GetIconThemePointer
505                )))),
506                GetIconThemePointerForDPI: std::mem::transmute(get_func(c_str!(stringify!(
507                    GetIconThemePointerForDPI
508                )))),
509                GetIconThemeStruct: std::mem::transmute(get_func(c_str!(stringify!(
510                    GetIconThemeStruct
511                )))),
512                GetInputChannelName: std::mem::transmute(get_func(c_str!(stringify!(
513                    GetInputChannelName
514                )))),
515                GetInputOutputLatency: std::mem::transmute(get_func(c_str!(stringify!(
516                    GetInputOutputLatency
517                )))),
518                GetItemEditingTime2: std::mem::transmute(get_func(c_str!(stringify!(
519                    GetItemEditingTime2
520                )))),
521                GetItemFromPoint: std::mem::transmute(get_func(c_str!(stringify!(
522                    GetItemFromPoint
523                )))),
524                GetItemProjectContext: std::mem::transmute(get_func(c_str!(stringify!(
525                    GetItemProjectContext
526                )))),
527                GetItemStateChunk: std::mem::transmute(get_func(c_str!(stringify!(
528                    GetItemStateChunk
529                )))),
530                GetLastColorThemeFile: std::mem::transmute(get_func(c_str!(stringify!(
531                    GetLastColorThemeFile
532                )))),
533                GetLastMarkerAndCurRegion: std::mem::transmute(get_func(c_str!(stringify!(
534                    GetLastMarkerAndCurRegion
535                )))),
536                GetLastTouchedFX: std::mem::transmute(get_func(c_str!(stringify!(
537                    GetLastTouchedFX
538                )))),
539                GetLastTouchedTrack: std::mem::transmute(get_func(c_str!(stringify!(
540                    GetLastTouchedTrack
541                )))),
542                GetMainHwnd: std::mem::transmute(get_func(c_str!(stringify!(GetMainHwnd)))),
543                GetMasterMuteSoloFlags: std::mem::transmute(get_func(c_str!(stringify!(
544                    GetMasterMuteSoloFlags
545                )))),
546                GetMasterTrack: std::mem::transmute(get_func(c_str!(stringify!(GetMasterTrack)))),
547                GetMasterTrackVisibility: std::mem::transmute(get_func(c_str!(stringify!(
548                    GetMasterTrackVisibility
549                )))),
550                GetMaxMidiInputs: std::mem::transmute(get_func(c_str!(stringify!(
551                    GetMaxMidiInputs
552                )))),
553                GetMaxMidiOutputs: std::mem::transmute(get_func(c_str!(stringify!(
554                    GetMaxMidiOutputs
555                )))),
556                GetMediaItem: std::mem::transmute(get_func(c_str!(stringify!(GetMediaItem)))),
557                GetMediaItem_Track: std::mem::transmute(get_func(c_str!(stringify!(
558                    GetMediaItem_Track
559                )))),
560                GetMediaItemInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
561                    GetMediaItemInfo_Value
562                )))),
563                GetMediaItemNumTakes: std::mem::transmute(get_func(c_str!(stringify!(
564                    GetMediaItemNumTakes
565                )))),
566                GetMediaItemTake: std::mem::transmute(get_func(c_str!(stringify!(
567                    GetMediaItemTake
568                )))),
569                GetMediaItemTake_Item: std::mem::transmute(get_func(c_str!(stringify!(
570                    GetMediaItemTake_Item
571                )))),
572                GetMediaItemTake_Peaks: std::mem::transmute(get_func(c_str!(stringify!(
573                    GetMediaItemTake_Peaks
574                )))),
575                GetMediaItemTake_Source: std::mem::transmute(get_func(c_str!(stringify!(
576                    GetMediaItemTake_Source
577                )))),
578                GetMediaItemTake_Track: std::mem::transmute(get_func(c_str!(stringify!(
579                    GetMediaItemTake_Track
580                )))),
581                GetMediaItemTakeByGUID: std::mem::transmute(get_func(c_str!(stringify!(
582                    GetMediaItemTakeByGUID
583                )))),
584                GetMediaItemTakeInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
585                    GetMediaItemTakeInfo_Value
586                )))),
587                GetMediaItemTrack: std::mem::transmute(get_func(c_str!(stringify!(
588                    GetMediaItemTrack
589                )))),
590                GetMediaSourceFileName: std::mem::transmute(get_func(c_str!(stringify!(
591                    GetMediaSourceFileName
592                )))),
593                GetMediaSourceLength: std::mem::transmute(get_func(c_str!(stringify!(
594                    GetMediaSourceLength
595                )))),
596                GetMediaSourceNumChannels: std::mem::transmute(get_func(c_str!(stringify!(
597                    GetMediaSourceNumChannels
598                )))),
599                GetMediaSourceParent: std::mem::transmute(get_func(c_str!(stringify!(
600                    GetMediaSourceParent
601                )))),
602                GetMediaSourceSampleRate: std::mem::transmute(get_func(c_str!(stringify!(
603                    GetMediaSourceSampleRate
604                )))),
605                GetMediaSourceType: std::mem::transmute(get_func(c_str!(stringify!(
606                    GetMediaSourceType
607                )))),
608                GetMediaTrackInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
609                    GetMediaTrackInfo_Value
610                )))),
611                GetMIDIInputName: std::mem::transmute(get_func(c_str!(stringify!(
612                    GetMIDIInputName
613                )))),
614                GetMIDIOutputName: std::mem::transmute(get_func(c_str!(stringify!(
615                    GetMIDIOutputName
616                )))),
617                GetMixerScroll: std::mem::transmute(get_func(c_str!(stringify!(GetMixerScroll)))),
618                GetMouseModifier: std::mem::transmute(get_func(c_str!(stringify!(
619                    GetMouseModifier
620                )))),
621                GetMousePosition: std::mem::transmute(get_func(c_str!(stringify!(
622                    GetMousePosition
623                )))),
624                GetNumAudioInputs: std::mem::transmute(get_func(c_str!(stringify!(
625                    GetNumAudioInputs
626                )))),
627                GetNumAudioOutputs: std::mem::transmute(get_func(c_str!(stringify!(
628                    GetNumAudioOutputs
629                )))),
630                GetNumMIDIInputs: std::mem::transmute(get_func(c_str!(stringify!(
631                    GetNumMIDIInputs
632                )))),
633                GetNumMIDIOutputs: std::mem::transmute(get_func(c_str!(stringify!(
634                    GetNumMIDIOutputs
635                )))),
636                GetNumTracks: std::mem::transmute(get_func(c_str!(stringify!(GetNumTracks)))),
637                GetOS: std::mem::transmute(get_func(c_str!(stringify!(GetOS)))),
638                GetOutputChannelName: std::mem::transmute(get_func(c_str!(stringify!(
639                    GetOutputChannelName
640                )))),
641                GetOutputLatency: std::mem::transmute(get_func(c_str!(stringify!(
642                    GetOutputLatency
643                )))),
644                GetParentTrack: std::mem::transmute(get_func(c_str!(stringify!(GetParentTrack)))),
645                GetPeakFileName: std::mem::transmute(get_func(c_str!(stringify!(GetPeakFileName)))),
646                GetPeakFileNameEx: std::mem::transmute(get_func(c_str!(stringify!(
647                    GetPeakFileNameEx
648                )))),
649                GetPeakFileNameEx2: std::mem::transmute(get_func(c_str!(stringify!(
650                    GetPeakFileNameEx2
651                )))),
652                GetPeaksBitmap: std::mem::transmute(get_func(c_str!(stringify!(GetPeaksBitmap)))),
653                GetPlayPosition: std::mem::transmute(get_func(c_str!(stringify!(GetPlayPosition)))),
654                GetPlayPosition2: std::mem::transmute(get_func(c_str!(stringify!(
655                    GetPlayPosition2
656                )))),
657                GetPlayPosition2Ex: std::mem::transmute(get_func(c_str!(stringify!(
658                    GetPlayPosition2Ex
659                )))),
660                GetPlayPositionEx: std::mem::transmute(get_func(c_str!(stringify!(
661                    GetPlayPositionEx
662                )))),
663                GetPlayState: std::mem::transmute(get_func(c_str!(stringify!(GetPlayState)))),
664                GetPlayStateEx: std::mem::transmute(get_func(c_str!(stringify!(GetPlayStateEx)))),
665                GetPreferredDiskReadMode: std::mem::transmute(get_func(c_str!(stringify!(
666                    GetPreferredDiskReadMode
667                )))),
668                GetPreferredDiskReadModePeak: std::mem::transmute(get_func(c_str!(stringify!(
669                    GetPreferredDiskReadModePeak
670                )))),
671                GetPreferredDiskWriteMode: std::mem::transmute(get_func(c_str!(stringify!(
672                    GetPreferredDiskWriteMode
673                )))),
674                GetProjectLength: std::mem::transmute(get_func(c_str!(stringify!(
675                    GetProjectLength
676                )))),
677                GetProjectName: std::mem::transmute(get_func(c_str!(stringify!(GetProjectName)))),
678                GetProjectPath: std::mem::transmute(get_func(c_str!(stringify!(GetProjectPath)))),
679                GetProjectPathEx: std::mem::transmute(get_func(c_str!(stringify!(
680                    GetProjectPathEx
681                )))),
682                GetProjectStateChangeCount: std::mem::transmute(get_func(c_str!(stringify!(
683                    GetProjectStateChangeCount
684                )))),
685                GetProjectTimeOffset: std::mem::transmute(get_func(c_str!(stringify!(
686                    GetProjectTimeOffset
687                )))),
688                GetProjectTimeSignature: std::mem::transmute(get_func(c_str!(stringify!(
689                    GetProjectTimeSignature
690                )))),
691                GetProjectTimeSignature2: std::mem::transmute(get_func(c_str!(stringify!(
692                    GetProjectTimeSignature2
693                )))),
694                GetProjExtState: std::mem::transmute(get_func(c_str!(stringify!(GetProjExtState)))),
695                GetResourcePath: std::mem::transmute(get_func(c_str!(stringify!(GetResourcePath)))),
696                GetSelectedEnvelope: std::mem::transmute(get_func(c_str!(stringify!(
697                    GetSelectedEnvelope
698                )))),
699                GetSelectedMediaItem: std::mem::transmute(get_func(c_str!(stringify!(
700                    GetSelectedMediaItem
701                )))),
702                GetSelectedTrack: std::mem::transmute(get_func(c_str!(stringify!(
703                    GetSelectedTrack
704                )))),
705                GetSelectedTrack2: std::mem::transmute(get_func(c_str!(stringify!(
706                    GetSelectedTrack2
707                )))),
708                GetSelectedTrackEnvelope: std::mem::transmute(get_func(c_str!(stringify!(
709                    GetSelectedTrackEnvelope
710                )))),
711                GetSet_ArrangeView2: std::mem::transmute(get_func(c_str!(stringify!(
712                    GetSet_ArrangeView2
713                )))),
714                GetSet_LoopTimeRange: std::mem::transmute(get_func(c_str!(stringify!(
715                    GetSet_LoopTimeRange
716                )))),
717                GetSet_LoopTimeRange2: std::mem::transmute(get_func(c_str!(stringify!(
718                    GetSet_LoopTimeRange2
719                )))),
720                GetSetAutomationItemInfo: std::mem::transmute(get_func(c_str!(stringify!(
721                    GetSetAutomationItemInfo
722                )))),
723                GetSetAutomationItemInfo_String: std::mem::transmute(get_func(c_str!(stringify!(
724                    GetSetAutomationItemInfo_String
725                )))),
726                GetSetEnvelopeInfo_String: std::mem::transmute(get_func(c_str!(stringify!(
727                    GetSetEnvelopeInfo_String
728                )))),
729                GetSetEnvelopeState: std::mem::transmute(get_func(c_str!(stringify!(
730                    GetSetEnvelopeState
731                )))),
732                GetSetEnvelopeState2: std::mem::transmute(get_func(c_str!(stringify!(
733                    GetSetEnvelopeState2
734                )))),
735                GetSetItemState: std::mem::transmute(get_func(c_str!(stringify!(GetSetItemState)))),
736                GetSetItemState2: std::mem::transmute(get_func(c_str!(stringify!(
737                    GetSetItemState2
738                )))),
739                GetSetMediaItemInfo: std::mem::transmute(get_func(c_str!(stringify!(
740                    GetSetMediaItemInfo
741                )))),
742                GetSetMediaItemInfo_String: std::mem::transmute(get_func(c_str!(stringify!(
743                    GetSetMediaItemInfo_String
744                )))),
745                GetSetMediaItemTakeInfo: std::mem::transmute(get_func(c_str!(stringify!(
746                    GetSetMediaItemTakeInfo
747                )))),
748                GetSetMediaItemTakeInfo_String: std::mem::transmute(get_func(c_str!(stringify!(
749                    GetSetMediaItemTakeInfo_String
750                )))),
751                GetSetMediaTrackInfo: std::mem::transmute(get_func(c_str!(stringify!(
752                    GetSetMediaTrackInfo
753                )))),
754                GetSetMediaTrackInfo_String: std::mem::transmute(get_func(c_str!(stringify!(
755                    GetSetMediaTrackInfo_String
756                )))),
757                GetSetObjectState: std::mem::transmute(get_func(c_str!(stringify!(
758                    GetSetObjectState
759                )))),
760                GetSetObjectState2: std::mem::transmute(get_func(c_str!(stringify!(
761                    GetSetObjectState2
762                )))),
763                GetSetProjectAuthor: std::mem::transmute(get_func(c_str!(stringify!(
764                    GetSetProjectAuthor
765                )))),
766                GetSetProjectGrid: std::mem::transmute(get_func(c_str!(stringify!(
767                    GetSetProjectGrid
768                )))),
769                GetSetProjectInfo: std::mem::transmute(get_func(c_str!(stringify!(
770                    GetSetProjectInfo
771                )))),
772                GetSetProjectInfo_String: std::mem::transmute(get_func(c_str!(stringify!(
773                    GetSetProjectInfo_String
774                )))),
775                GetSetProjectNotes: std::mem::transmute(get_func(c_str!(stringify!(
776                    GetSetProjectNotes
777                )))),
778                GetSetRepeat: std::mem::transmute(get_func(c_str!(stringify!(GetSetRepeat)))),
779                GetSetRepeatEx: std::mem::transmute(get_func(c_str!(stringify!(GetSetRepeatEx)))),
780                GetSetTrackGroupMembership: std::mem::transmute(get_func(c_str!(stringify!(
781                    GetSetTrackGroupMembership
782                )))),
783                GetSetTrackGroupMembershipHigh: std::mem::transmute(get_func(c_str!(stringify!(
784                    GetSetTrackGroupMembershipHigh
785                )))),
786                GetSetTrackMIDISupportFile: std::mem::transmute(get_func(c_str!(stringify!(
787                    GetSetTrackMIDISupportFile
788                )))),
789                GetSetTrackSendInfo: std::mem::transmute(get_func(c_str!(stringify!(
790                    GetSetTrackSendInfo
791                )))),
792                GetSetTrackSendInfo_String: std::mem::transmute(get_func(c_str!(stringify!(
793                    GetSetTrackSendInfo_String
794                )))),
795                GetSetTrackState: std::mem::transmute(get_func(c_str!(stringify!(
796                    GetSetTrackState
797                )))),
798                GetSetTrackState2: std::mem::transmute(get_func(c_str!(stringify!(
799                    GetSetTrackState2
800                )))),
801                GetSubProjectFromSource: std::mem::transmute(get_func(c_str!(stringify!(
802                    GetSubProjectFromSource
803                )))),
804                GetTake: std::mem::transmute(get_func(c_str!(stringify!(GetTake)))),
805                GetTakeEnvelope: std::mem::transmute(get_func(c_str!(stringify!(GetTakeEnvelope)))),
806                GetTakeEnvelopeByName: std::mem::transmute(get_func(c_str!(stringify!(
807                    GetTakeEnvelopeByName
808                )))),
809                GetTakeName: std::mem::transmute(get_func(c_str!(stringify!(GetTakeName)))),
810                GetTakeNumStretchMarkers: std::mem::transmute(get_func(c_str!(stringify!(
811                    GetTakeNumStretchMarkers
812                )))),
813                GetTakeStretchMarker: std::mem::transmute(get_func(c_str!(stringify!(
814                    GetTakeStretchMarker
815                )))),
816                GetTakeStretchMarkerSlope: std::mem::transmute(get_func(c_str!(stringify!(
817                    GetTakeStretchMarkerSlope
818                )))),
819                GetTCPFXParm: std::mem::transmute(get_func(c_str!(stringify!(GetTCPFXParm)))),
820                GetTempoMatchPlayRate: std::mem::transmute(get_func(c_str!(stringify!(
821                    GetTempoMatchPlayRate
822                )))),
823                GetTempoTimeSigMarker: std::mem::transmute(get_func(c_str!(stringify!(
824                    GetTempoTimeSigMarker
825                )))),
826                GetToggleCommandState: std::mem::transmute(get_func(c_str!(stringify!(
827                    GetToggleCommandState
828                )))),
829                GetToggleCommandState2: std::mem::transmute(get_func(c_str!(stringify!(
830                    GetToggleCommandState2
831                )))),
832                GetToggleCommandStateEx: std::mem::transmute(get_func(c_str!(stringify!(
833                    GetToggleCommandStateEx
834                )))),
835                GetToggleCommandStateThroughHooks: std::mem::transmute(get_func(c_str!(
836                    stringify!(GetToggleCommandStateThroughHooks)
837                ))),
838                GetTooltipWindow: std::mem::transmute(get_func(c_str!(stringify!(
839                    GetTooltipWindow
840                )))),
841                GetTrack: std::mem::transmute(get_func(c_str!(stringify!(GetTrack)))),
842                GetTrackAutomationMode: std::mem::transmute(get_func(c_str!(stringify!(
843                    GetTrackAutomationMode
844                )))),
845                GetTrackColor: std::mem::transmute(get_func(c_str!(stringify!(GetTrackColor)))),
846                GetTrackDepth: std::mem::transmute(get_func(c_str!(stringify!(GetTrackDepth)))),
847                GetTrackEnvelope: std::mem::transmute(get_func(c_str!(stringify!(
848                    GetTrackEnvelope
849                )))),
850                GetTrackEnvelopeByChunkName: std::mem::transmute(get_func(c_str!(stringify!(
851                    GetTrackEnvelopeByChunkName
852                )))),
853                GetTrackEnvelopeByName: std::mem::transmute(get_func(c_str!(stringify!(
854                    GetTrackEnvelopeByName
855                )))),
856                GetTrackFromPoint: std::mem::transmute(get_func(c_str!(stringify!(
857                    GetTrackFromPoint
858                )))),
859                GetTrackGUID: std::mem::transmute(get_func(c_str!(stringify!(GetTrackGUID)))),
860                GetTrackInfo: std::mem::transmute(get_func(c_str!(stringify!(GetTrackInfo)))),
861                GetTrackMediaItem: std::mem::transmute(get_func(c_str!(stringify!(
862                    GetTrackMediaItem
863                )))),
864                GetTrackMIDILyrics: std::mem::transmute(get_func(c_str!(stringify!(
865                    GetTrackMIDILyrics
866                )))),
867                GetTrackMIDINoteName: std::mem::transmute(get_func(c_str!(stringify!(
868                    GetTrackMIDINoteName
869                )))),
870                GetTrackMIDINoteNameEx: std::mem::transmute(get_func(c_str!(stringify!(
871                    GetTrackMIDINoteNameEx
872                )))),
873                GetTrackMIDINoteRange: std::mem::transmute(get_func(c_str!(stringify!(
874                    GetTrackMIDINoteRange
875                )))),
876                GetTrackName: std::mem::transmute(get_func(c_str!(stringify!(GetTrackName)))),
877                GetTrackNumMediaItems: std::mem::transmute(get_func(c_str!(stringify!(
878                    GetTrackNumMediaItems
879                )))),
880                GetTrackNumSends: std::mem::transmute(get_func(c_str!(stringify!(
881                    GetTrackNumSends
882                )))),
883                GetTrackReceiveName: std::mem::transmute(get_func(c_str!(stringify!(
884                    GetTrackReceiveName
885                )))),
886                GetTrackReceiveUIMute: std::mem::transmute(get_func(c_str!(stringify!(
887                    GetTrackReceiveUIMute
888                )))),
889                GetTrackReceiveUIVolPan: std::mem::transmute(get_func(c_str!(stringify!(
890                    GetTrackReceiveUIVolPan
891                )))),
892                GetTrackSendInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
893                    GetTrackSendInfo_Value
894                )))),
895                GetTrackSendName: std::mem::transmute(get_func(c_str!(stringify!(
896                    GetTrackSendName
897                )))),
898                GetTrackSendUIMute: std::mem::transmute(get_func(c_str!(stringify!(
899                    GetTrackSendUIMute
900                )))),
901                GetTrackSendUIVolPan: std::mem::transmute(get_func(c_str!(stringify!(
902                    GetTrackSendUIVolPan
903                )))),
904                GetTrackState: std::mem::transmute(get_func(c_str!(stringify!(GetTrackState)))),
905                GetTrackStateChunk: std::mem::transmute(get_func(c_str!(stringify!(
906                    GetTrackStateChunk
907                )))),
908                GetTrackUIMute: std::mem::transmute(get_func(c_str!(stringify!(GetTrackUIMute)))),
909                GetTrackUIPan: std::mem::transmute(get_func(c_str!(stringify!(GetTrackUIPan)))),
910                GetTrackUIVolPan: std::mem::transmute(get_func(c_str!(stringify!(
911                    GetTrackUIVolPan
912                )))),
913                GetUnderrunTime: std::mem::transmute(get_func(c_str!(stringify!(GetUnderrunTime)))),
914                GetUserFileNameForRead: std::mem::transmute(get_func(c_str!(stringify!(
915                    GetUserFileNameForRead
916                )))),
917                GetUserInputs: std::mem::transmute(get_func(c_str!(stringify!(GetUserInputs)))),
918                GoToMarker: std::mem::transmute(get_func(c_str!(stringify!(GoToMarker)))),
919                GoToRegion: std::mem::transmute(get_func(c_str!(stringify!(GoToRegion)))),
920                GR_SelectColor: std::mem::transmute(get_func(c_str!(stringify!(GR_SelectColor)))),
921                GSC_mainwnd: std::mem::transmute(get_func(c_str!(stringify!(GSC_mainwnd)))),
922                guidToString: std::mem::transmute(get_func(c_str!(stringify!(guidToString)))),
923                HasExtState: std::mem::transmute(get_func(c_str!(stringify!(HasExtState)))),
924                HasTrackMIDIPrograms: std::mem::transmute(get_func(c_str!(stringify!(
925                    HasTrackMIDIPrograms
926                )))),
927                HasTrackMIDIProgramsEx: std::mem::transmute(get_func(c_str!(stringify!(
928                    HasTrackMIDIProgramsEx
929                )))),
930                Help_Set: std::mem::transmute(get_func(c_str!(stringify!(Help_Set)))),
931                HiresPeaksFromSource: std::mem::transmute(get_func(c_str!(stringify!(
932                    HiresPeaksFromSource
933                )))),
934                image_resolve_fn: std::mem::transmute(get_func(c_str!(stringify!(
935                    image_resolve_fn
936                )))),
937                InsertAutomationItem: std::mem::transmute(get_func(c_str!(stringify!(
938                    InsertAutomationItem
939                )))),
940                InsertEnvelopePoint: std::mem::transmute(get_func(c_str!(stringify!(
941                    InsertEnvelopePoint
942                )))),
943                InsertEnvelopePointEx: std::mem::transmute(get_func(c_str!(stringify!(
944                    InsertEnvelopePointEx
945                )))),
946                InsertMedia: std::mem::transmute(get_func(c_str!(stringify!(InsertMedia)))),
947                InsertMediaSection: std::mem::transmute(get_func(c_str!(stringify!(
948                    InsertMediaSection
949                )))),
950                InsertTrackAtIndex: std::mem::transmute(get_func(c_str!(stringify!(
951                    InsertTrackAtIndex
952                )))),
953                IsInRealTimeAudio: std::mem::transmute(get_func(c_str!(stringify!(
954                    IsInRealTimeAudio
955                )))),
956                IsItemTakeActiveForPlayback: std::mem::transmute(get_func(c_str!(stringify!(
957                    IsItemTakeActiveForPlayback
958                )))),
959                IsMediaExtension: std::mem::transmute(get_func(c_str!(stringify!(
960                    IsMediaExtension
961                )))),
962                IsMediaItemSelected: std::mem::transmute(get_func(c_str!(stringify!(
963                    IsMediaItemSelected
964                )))),
965                IsProjectDirty: std::mem::transmute(get_func(c_str!(stringify!(IsProjectDirty)))),
966                IsREAPER: std::mem::transmute(get_func(c_str!(stringify!(IsREAPER)))),
967                IsTrackSelected: std::mem::transmute(get_func(c_str!(stringify!(IsTrackSelected)))),
968                IsTrackVisible: std::mem::transmute(get_func(c_str!(stringify!(IsTrackVisible)))),
969                joystick_create: std::mem::transmute(get_func(c_str!(stringify!(joystick_create)))),
970                joystick_destroy: std::mem::transmute(get_func(c_str!(stringify!(
971                    joystick_destroy
972                )))),
973                joystick_enum: std::mem::transmute(get_func(c_str!(stringify!(joystick_enum)))),
974                joystick_getaxis: std::mem::transmute(get_func(c_str!(stringify!(
975                    joystick_getaxis
976                )))),
977                joystick_getbuttonmask: std::mem::transmute(get_func(c_str!(stringify!(
978                    joystick_getbuttonmask
979                )))),
980                joystick_getinfo: std::mem::transmute(get_func(c_str!(stringify!(
981                    joystick_getinfo
982                )))),
983                joystick_getpov: std::mem::transmute(get_func(c_str!(stringify!(joystick_getpov)))),
984                joystick_update: std::mem::transmute(get_func(c_str!(stringify!(joystick_update)))),
985                kbd_enumerateActions: std::mem::transmute(get_func(c_str!(stringify!(
986                    kbd_enumerateActions
987                )))),
988                kbd_formatKeyName: std::mem::transmute(get_func(c_str!(stringify!(
989                    kbd_formatKeyName
990                )))),
991                kbd_getCommandName: std::mem::transmute(get_func(c_str!(stringify!(
992                    kbd_getCommandName
993                )))),
994                kbd_getTextFromCmd: std::mem::transmute(get_func(c_str!(stringify!(
995                    kbd_getTextFromCmd
996                )))),
997                KBD_OnMainActionEx: std::mem::transmute(get_func(c_str!(stringify!(
998                    KBD_OnMainActionEx
999                )))),
1000                kbd_OnMidiEvent: std::mem::transmute(get_func(c_str!(stringify!(kbd_OnMidiEvent)))),
1001                kbd_OnMidiList: std::mem::transmute(get_func(c_str!(stringify!(kbd_OnMidiList)))),
1002                kbd_ProcessActionsMenu: std::mem::transmute(get_func(c_str!(stringify!(
1003                    kbd_ProcessActionsMenu
1004                )))),
1005                kbd_processMidiEventActionEx: std::mem::transmute(get_func(c_str!(stringify!(
1006                    kbd_processMidiEventActionEx
1007                )))),
1008                kbd_reprocessMenu: std::mem::transmute(get_func(c_str!(stringify!(
1009                    kbd_reprocessMenu
1010                )))),
1011                kbd_RunCommandThroughHooks: std::mem::transmute(get_func(c_str!(stringify!(
1012                    kbd_RunCommandThroughHooks
1013                )))),
1014                kbd_translateAccelerator: std::mem::transmute(get_func(c_str!(stringify!(
1015                    kbd_translateAccelerator
1016                )))),
1017                kbd_translateMouse: std::mem::transmute(get_func(c_str!(stringify!(
1018                    kbd_translateMouse
1019                )))),
1020                LICE__Destroy: std::mem::transmute(get_func(c_str!(stringify!(LICE__Destroy)))),
1021                LICE__DestroyFont: std::mem::transmute(get_func(c_str!(stringify!(
1022                    LICE__DestroyFont
1023                )))),
1024                LICE__DrawText: std::mem::transmute(get_func(c_str!(stringify!(LICE__DrawText)))),
1025                LICE__GetBits: std::mem::transmute(get_func(c_str!(stringify!(LICE__GetBits)))),
1026                LICE__GetDC: std::mem::transmute(get_func(c_str!(stringify!(LICE__GetDC)))),
1027                LICE__GetHeight: std::mem::transmute(get_func(c_str!(stringify!(LICE__GetHeight)))),
1028                LICE__GetRowSpan: std::mem::transmute(get_func(c_str!(stringify!(
1029                    LICE__GetRowSpan
1030                )))),
1031                LICE__GetWidth: std::mem::transmute(get_func(c_str!(stringify!(LICE__GetWidth)))),
1032                LICE__IsFlipped: std::mem::transmute(get_func(c_str!(stringify!(LICE__IsFlipped)))),
1033                LICE__resize: std::mem::transmute(get_func(c_str!(stringify!(LICE__resize)))),
1034                LICE__SetBkColor: std::mem::transmute(get_func(c_str!(stringify!(
1035                    LICE__SetBkColor
1036                )))),
1037                LICE__SetFromHFont: std::mem::transmute(get_func(c_str!(stringify!(
1038                    LICE__SetFromHFont
1039                )))),
1040                LICE__SetTextColor: std::mem::transmute(get_func(c_str!(stringify!(
1041                    LICE__SetTextColor
1042                )))),
1043                LICE__SetTextCombineMode: std::mem::transmute(get_func(c_str!(stringify!(
1044                    LICE__SetTextCombineMode
1045                )))),
1046                LICE_Arc: std::mem::transmute(get_func(c_str!(stringify!(LICE_Arc)))),
1047                LICE_Blit: std::mem::transmute(get_func(c_str!(stringify!(LICE_Blit)))),
1048                LICE_Blur: std::mem::transmute(get_func(c_str!(stringify!(LICE_Blur)))),
1049                LICE_BorderedRect: std::mem::transmute(get_func(c_str!(stringify!(
1050                    LICE_BorderedRect
1051                )))),
1052                LICE_Circle: std::mem::transmute(get_func(c_str!(stringify!(LICE_Circle)))),
1053                LICE_Clear: std::mem::transmute(get_func(c_str!(stringify!(LICE_Clear)))),
1054                LICE_ClearRect: std::mem::transmute(get_func(c_str!(stringify!(LICE_ClearRect)))),
1055                LICE_ClipLine: std::mem::transmute(get_func(c_str!(stringify!(LICE_ClipLine)))),
1056                LICE_Copy: std::mem::transmute(get_func(c_str!(stringify!(LICE_Copy)))),
1057                LICE_CreateBitmap: std::mem::transmute(get_func(c_str!(stringify!(
1058                    LICE_CreateBitmap
1059                )))),
1060                LICE_CreateFont: std::mem::transmute(get_func(c_str!(stringify!(LICE_CreateFont)))),
1061                LICE_DrawCBezier: std::mem::transmute(get_func(c_str!(stringify!(
1062                    LICE_DrawCBezier
1063                )))),
1064                LICE_DrawChar: std::mem::transmute(get_func(c_str!(stringify!(LICE_DrawChar)))),
1065                LICE_DrawGlyph: std::mem::transmute(get_func(c_str!(stringify!(LICE_DrawGlyph)))),
1066                LICE_DrawRect: std::mem::transmute(get_func(c_str!(stringify!(LICE_DrawRect)))),
1067                LICE_DrawText: std::mem::transmute(get_func(c_str!(stringify!(LICE_DrawText)))),
1068                LICE_FillCBezier: std::mem::transmute(get_func(c_str!(stringify!(
1069                    LICE_FillCBezier
1070                )))),
1071                LICE_FillCircle: std::mem::transmute(get_func(c_str!(stringify!(LICE_FillCircle)))),
1072                LICE_FillConvexPolygon: std::mem::transmute(get_func(c_str!(stringify!(
1073                    LICE_FillConvexPolygon
1074                )))),
1075                LICE_FillRect: std::mem::transmute(get_func(c_str!(stringify!(LICE_FillRect)))),
1076                LICE_FillTrapezoid: std::mem::transmute(get_func(c_str!(stringify!(
1077                    LICE_FillTrapezoid
1078                )))),
1079                LICE_FillTriangle: std::mem::transmute(get_func(c_str!(stringify!(
1080                    LICE_FillTriangle
1081                )))),
1082                LICE_GetPixel: std::mem::transmute(get_func(c_str!(stringify!(LICE_GetPixel)))),
1083                LICE_GradRect: std::mem::transmute(get_func(c_str!(stringify!(LICE_GradRect)))),
1084                LICE_Line: std::mem::transmute(get_func(c_str!(stringify!(LICE_Line)))),
1085                LICE_LineInt: std::mem::transmute(get_func(c_str!(stringify!(LICE_LineInt)))),
1086                LICE_LoadPNG: std::mem::transmute(get_func(c_str!(stringify!(LICE_LoadPNG)))),
1087                LICE_LoadPNGFromResource: std::mem::transmute(get_func(c_str!(stringify!(
1088                    LICE_LoadPNGFromResource
1089                )))),
1090                LICE_MeasureText: std::mem::transmute(get_func(c_str!(stringify!(
1091                    LICE_MeasureText
1092                )))),
1093                LICE_MultiplyAddRect: std::mem::transmute(get_func(c_str!(stringify!(
1094                    LICE_MultiplyAddRect
1095                )))),
1096                LICE_PutPixel: std::mem::transmute(get_func(c_str!(stringify!(LICE_PutPixel)))),
1097                LICE_RotatedBlit: std::mem::transmute(get_func(c_str!(stringify!(
1098                    LICE_RotatedBlit
1099                )))),
1100                LICE_RoundRect: std::mem::transmute(get_func(c_str!(stringify!(LICE_RoundRect)))),
1101                LICE_ScaledBlit: std::mem::transmute(get_func(c_str!(stringify!(LICE_ScaledBlit)))),
1102                LICE_SimpleFill: std::mem::transmute(get_func(c_str!(stringify!(LICE_SimpleFill)))),
1103                Loop_OnArrow: std::mem::transmute(get_func(c_str!(stringify!(Loop_OnArrow)))),
1104                Main_OnCommand: std::mem::transmute(get_func(c_str!(stringify!(Main_OnCommand)))),
1105                Main_OnCommandEx: std::mem::transmute(get_func(c_str!(stringify!(
1106                    Main_OnCommandEx
1107                )))),
1108                Main_openProject: std::mem::transmute(get_func(c_str!(stringify!(
1109                    Main_openProject
1110                )))),
1111                Main_SaveProject: std::mem::transmute(get_func(c_str!(stringify!(
1112                    Main_SaveProject
1113                )))),
1114                Main_UpdateLoopInfo: std::mem::transmute(get_func(c_str!(stringify!(
1115                    Main_UpdateLoopInfo
1116                )))),
1117                MarkProjectDirty: std::mem::transmute(get_func(c_str!(stringify!(
1118                    MarkProjectDirty
1119                )))),
1120                MarkTrackItemsDirty: std::mem::transmute(get_func(c_str!(stringify!(
1121                    MarkTrackItemsDirty
1122                )))),
1123                Master_GetPlayRate: std::mem::transmute(get_func(c_str!(stringify!(
1124                    Master_GetPlayRate
1125                )))),
1126                Master_GetPlayRateAtTime: std::mem::transmute(get_func(c_str!(stringify!(
1127                    Master_GetPlayRateAtTime
1128                )))),
1129                Master_GetTempo: std::mem::transmute(get_func(c_str!(stringify!(Master_GetTempo)))),
1130                Master_NormalizePlayRate: std::mem::transmute(get_func(c_str!(stringify!(
1131                    Master_NormalizePlayRate
1132                )))),
1133                Master_NormalizeTempo: std::mem::transmute(get_func(c_str!(stringify!(
1134                    Master_NormalizeTempo
1135                )))),
1136                MB: std::mem::transmute(get_func(c_str!(stringify!(MB)))),
1137                MediaItemDescendsFromTrack: std::mem::transmute(get_func(c_str!(stringify!(
1138                    MediaItemDescendsFromTrack
1139                )))),
1140                MIDI_CountEvts: std::mem::transmute(get_func(c_str!(stringify!(MIDI_CountEvts)))),
1141                MIDI_DeleteCC: std::mem::transmute(get_func(c_str!(stringify!(MIDI_DeleteCC)))),
1142                MIDI_DeleteEvt: std::mem::transmute(get_func(c_str!(stringify!(MIDI_DeleteEvt)))),
1143                MIDI_DeleteNote: std::mem::transmute(get_func(c_str!(stringify!(MIDI_DeleteNote)))),
1144                MIDI_DeleteTextSysexEvt: std::mem::transmute(get_func(c_str!(stringify!(
1145                    MIDI_DeleteTextSysexEvt
1146                )))),
1147                MIDI_DisableSort: std::mem::transmute(get_func(c_str!(stringify!(
1148                    MIDI_DisableSort
1149                )))),
1150                MIDI_EnumSelCC: std::mem::transmute(get_func(c_str!(stringify!(MIDI_EnumSelCC)))),
1151                MIDI_EnumSelEvts: std::mem::transmute(get_func(c_str!(stringify!(
1152                    MIDI_EnumSelEvts
1153                )))),
1154                MIDI_EnumSelNotes: std::mem::transmute(get_func(c_str!(stringify!(
1155                    MIDI_EnumSelNotes
1156                )))),
1157                MIDI_EnumSelTextSysexEvts: std::mem::transmute(get_func(c_str!(stringify!(
1158                    MIDI_EnumSelTextSysexEvts
1159                )))),
1160                MIDI_eventlist_Create: std::mem::transmute(get_func(c_str!(stringify!(
1161                    MIDI_eventlist_Create
1162                )))),
1163                MIDI_eventlist_Destroy: std::mem::transmute(get_func(c_str!(stringify!(
1164                    MIDI_eventlist_Destroy
1165                )))),
1166                MIDI_GetAllEvts: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetAllEvts)))),
1167                MIDI_GetCC: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetCC)))),
1168                MIDI_GetCCShape: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetCCShape)))),
1169                MIDI_GetEvt: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetEvt)))),
1170                MIDI_GetGrid: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetGrid)))),
1171                MIDI_GetHash: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetHash)))),
1172                MIDI_GetNote: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetNote)))),
1173                MIDI_GetPPQPos_EndOfMeasure: std::mem::transmute(get_func(c_str!(stringify!(
1174                    MIDI_GetPPQPos_EndOfMeasure
1175                )))),
1176                MIDI_GetPPQPos_StartOfMeasure: std::mem::transmute(get_func(c_str!(stringify!(
1177                    MIDI_GetPPQPos_StartOfMeasure
1178                )))),
1179                MIDI_GetPPQPosFromProjQN: std::mem::transmute(get_func(c_str!(stringify!(
1180                    MIDI_GetPPQPosFromProjQN
1181                )))),
1182                MIDI_GetPPQPosFromProjTime: std::mem::transmute(get_func(c_str!(stringify!(
1183                    MIDI_GetPPQPosFromProjTime
1184                )))),
1185                MIDI_GetProjQNFromPPQPos: std::mem::transmute(get_func(c_str!(stringify!(
1186                    MIDI_GetProjQNFromPPQPos
1187                )))),
1188                MIDI_GetProjTimeFromPPQPos: std::mem::transmute(get_func(c_str!(stringify!(
1189                    MIDI_GetProjTimeFromPPQPos
1190                )))),
1191                MIDI_GetScale: std::mem::transmute(get_func(c_str!(stringify!(MIDI_GetScale)))),
1192                MIDI_GetTextSysexEvt: std::mem::transmute(get_func(c_str!(stringify!(
1193                    MIDI_GetTextSysexEvt
1194                )))),
1195                MIDI_GetTrackHash: std::mem::transmute(get_func(c_str!(stringify!(
1196                    MIDI_GetTrackHash
1197                )))),
1198                MIDI_InsertCC: std::mem::transmute(get_func(c_str!(stringify!(MIDI_InsertCC)))),
1199                MIDI_InsertEvt: std::mem::transmute(get_func(c_str!(stringify!(MIDI_InsertEvt)))),
1200                MIDI_InsertNote: std::mem::transmute(get_func(c_str!(stringify!(MIDI_InsertNote)))),
1201                MIDI_InsertTextSysexEvt: std::mem::transmute(get_func(c_str!(stringify!(
1202                    MIDI_InsertTextSysexEvt
1203                )))),
1204                midi_reinit: std::mem::transmute(get_func(c_str!(stringify!(midi_reinit)))),
1205                MIDI_SelectAll: std::mem::transmute(get_func(c_str!(stringify!(MIDI_SelectAll)))),
1206                MIDI_SetAllEvts: std::mem::transmute(get_func(c_str!(stringify!(MIDI_SetAllEvts)))),
1207                MIDI_SetCC: std::mem::transmute(get_func(c_str!(stringify!(MIDI_SetCC)))),
1208                MIDI_SetCCShape: std::mem::transmute(get_func(c_str!(stringify!(MIDI_SetCCShape)))),
1209                MIDI_SetEvt: std::mem::transmute(get_func(c_str!(stringify!(MIDI_SetEvt)))),
1210                MIDI_SetItemExtents: std::mem::transmute(get_func(c_str!(stringify!(
1211                    MIDI_SetItemExtents
1212                )))),
1213                MIDI_SetNote: std::mem::transmute(get_func(c_str!(stringify!(MIDI_SetNote)))),
1214                MIDI_SetTextSysexEvt: std::mem::transmute(get_func(c_str!(stringify!(
1215                    MIDI_SetTextSysexEvt
1216                )))),
1217                MIDI_Sort: std::mem::transmute(get_func(c_str!(stringify!(MIDI_Sort)))),
1218                MIDIEditor_GetActive: std::mem::transmute(get_func(c_str!(stringify!(
1219                    MIDIEditor_GetActive
1220                )))),
1221                MIDIEditor_GetMode: std::mem::transmute(get_func(c_str!(stringify!(
1222                    MIDIEditor_GetMode
1223                )))),
1224                MIDIEditor_GetSetting_int: std::mem::transmute(get_func(c_str!(stringify!(
1225                    MIDIEditor_GetSetting_int
1226                )))),
1227                MIDIEditor_GetSetting_str: std::mem::transmute(get_func(c_str!(stringify!(
1228                    MIDIEditor_GetSetting_str
1229                )))),
1230                MIDIEditor_GetTake: std::mem::transmute(get_func(c_str!(stringify!(
1231                    MIDIEditor_GetTake
1232                )))),
1233                MIDIEditor_LastFocused_OnCommand: std::mem::transmute(get_func(c_str!(
1234                    stringify!(MIDIEditor_LastFocused_OnCommand)
1235                ))),
1236                MIDIEditor_OnCommand: std::mem::transmute(get_func(c_str!(stringify!(
1237                    MIDIEditor_OnCommand
1238                )))),
1239                MIDIEditor_SetSetting_int: std::mem::transmute(get_func(c_str!(stringify!(
1240                    MIDIEditor_SetSetting_int
1241                )))),
1242                mkpanstr: std::mem::transmute(get_func(c_str!(stringify!(mkpanstr)))),
1243                mkvolpanstr: std::mem::transmute(get_func(c_str!(stringify!(mkvolpanstr)))),
1244                mkvolstr: std::mem::transmute(get_func(c_str!(stringify!(mkvolstr)))),
1245                MoveEditCursor: std::mem::transmute(get_func(c_str!(stringify!(MoveEditCursor)))),
1246                MoveMediaItemToTrack: std::mem::transmute(get_func(c_str!(stringify!(
1247                    MoveMediaItemToTrack
1248                )))),
1249                MuteAllTracks: std::mem::transmute(get_func(c_str!(stringify!(MuteAllTracks)))),
1250                my_getViewport: std::mem::transmute(get_func(c_str!(stringify!(my_getViewport)))),
1251                NamedCommandLookup: std::mem::transmute(get_func(c_str!(stringify!(
1252                    NamedCommandLookup
1253                )))),
1254                OnPauseButton: std::mem::transmute(get_func(c_str!(stringify!(OnPauseButton)))),
1255                OnPauseButtonEx: std::mem::transmute(get_func(c_str!(stringify!(OnPauseButtonEx)))),
1256                OnPlayButton: std::mem::transmute(get_func(c_str!(stringify!(OnPlayButton)))),
1257                OnPlayButtonEx: std::mem::transmute(get_func(c_str!(stringify!(OnPlayButtonEx)))),
1258                OnStopButton: std::mem::transmute(get_func(c_str!(stringify!(OnStopButton)))),
1259                OnStopButtonEx: std::mem::transmute(get_func(c_str!(stringify!(OnStopButtonEx)))),
1260                OpenColorThemeFile: std::mem::transmute(get_func(c_str!(stringify!(
1261                    OpenColorThemeFile
1262                )))),
1263                OpenMediaExplorer: std::mem::transmute(get_func(c_str!(stringify!(
1264                    OpenMediaExplorer
1265                )))),
1266                OscLocalMessageToHost: std::mem::transmute(get_func(c_str!(stringify!(
1267                    OscLocalMessageToHost
1268                )))),
1269                parse_timestr: std::mem::transmute(get_func(c_str!(stringify!(parse_timestr)))),
1270                parse_timestr_len: std::mem::transmute(get_func(c_str!(stringify!(
1271                    parse_timestr_len
1272                )))),
1273                parse_timestr_pos: std::mem::transmute(get_func(c_str!(stringify!(
1274                    parse_timestr_pos
1275                )))),
1276                parsepanstr: std::mem::transmute(get_func(c_str!(stringify!(parsepanstr)))),
1277                PCM_Sink_Create: std::mem::transmute(get_func(c_str!(stringify!(PCM_Sink_Create)))),
1278                PCM_Sink_CreateEx: std::mem::transmute(get_func(c_str!(stringify!(
1279                    PCM_Sink_CreateEx
1280                )))),
1281                PCM_Sink_CreateMIDIFile: std::mem::transmute(get_func(c_str!(stringify!(
1282                    PCM_Sink_CreateMIDIFile
1283                )))),
1284                PCM_Sink_CreateMIDIFileEx: std::mem::transmute(get_func(c_str!(stringify!(
1285                    PCM_Sink_CreateMIDIFileEx
1286                )))),
1287                PCM_Sink_Enum: std::mem::transmute(get_func(c_str!(stringify!(PCM_Sink_Enum)))),
1288                PCM_Sink_GetExtension: std::mem::transmute(get_func(c_str!(stringify!(
1289                    PCM_Sink_GetExtension
1290                )))),
1291                PCM_Sink_ShowConfig: std::mem::transmute(get_func(c_str!(stringify!(
1292                    PCM_Sink_ShowConfig
1293                )))),
1294                PCM_Source_CreateFromFile: std::mem::transmute(get_func(c_str!(stringify!(
1295                    PCM_Source_CreateFromFile
1296                )))),
1297                PCM_Source_CreateFromFileEx: std::mem::transmute(get_func(c_str!(stringify!(
1298                    PCM_Source_CreateFromFileEx
1299                )))),
1300                PCM_Source_CreateFromSimple: std::mem::transmute(get_func(c_str!(stringify!(
1301                    PCM_Source_CreateFromSimple
1302                )))),
1303                PCM_Source_CreateFromType: std::mem::transmute(get_func(c_str!(stringify!(
1304                    PCM_Source_CreateFromType
1305                )))),
1306                PCM_Source_Destroy: std::mem::transmute(get_func(c_str!(stringify!(
1307                    PCM_Source_Destroy
1308                )))),
1309                PCM_Source_GetPeaks: std::mem::transmute(get_func(c_str!(stringify!(
1310                    PCM_Source_GetPeaks
1311                )))),
1312                PCM_Source_GetSectionInfo: std::mem::transmute(get_func(c_str!(stringify!(
1313                    PCM_Source_GetSectionInfo
1314                )))),
1315                PeakBuild_Create: std::mem::transmute(get_func(c_str!(stringify!(
1316                    PeakBuild_Create
1317                )))),
1318                PeakBuild_CreateEx: std::mem::transmute(get_func(c_str!(stringify!(
1319                    PeakBuild_CreateEx
1320                )))),
1321                PeakGet_Create: std::mem::transmute(get_func(c_str!(stringify!(PeakGet_Create)))),
1322                PitchShiftSubModeMenu: std::mem::transmute(get_func(c_str!(stringify!(
1323                    PitchShiftSubModeMenu
1324                )))),
1325                PlayPreview: std::mem::transmute(get_func(c_str!(stringify!(PlayPreview)))),
1326                PlayPreviewEx: std::mem::transmute(get_func(c_str!(stringify!(PlayPreviewEx)))),
1327                PlayTrackPreview: std::mem::transmute(get_func(c_str!(stringify!(
1328                    PlayTrackPreview
1329                )))),
1330                PlayTrackPreview2: std::mem::transmute(get_func(c_str!(stringify!(
1331                    PlayTrackPreview2
1332                )))),
1333                PlayTrackPreview2Ex: std::mem::transmute(get_func(c_str!(stringify!(
1334                    PlayTrackPreview2Ex
1335                )))),
1336                plugin_getapi: std::mem::transmute(get_func(c_str!(stringify!(plugin_getapi)))),
1337                plugin_getFilterList: std::mem::transmute(get_func(c_str!(stringify!(
1338                    plugin_getFilterList
1339                )))),
1340                plugin_getImportableProjectFilterList: std::mem::transmute(get_func(c_str!(
1341                    stringify!(plugin_getImportableProjectFilterList)
1342                ))),
1343                plugin_register: std::mem::transmute(get_func(c_str!(stringify!(plugin_register)))),
1344                PluginWantsAlwaysRunFx: std::mem::transmute(get_func(c_str!(stringify!(
1345                    PluginWantsAlwaysRunFx
1346                )))),
1347                PreventUIRefresh: std::mem::transmute(get_func(c_str!(stringify!(
1348                    PreventUIRefresh
1349                )))),
1350                projectconfig_var_addr: std::mem::transmute(get_func(c_str!(stringify!(
1351                    projectconfig_var_addr
1352                )))),
1353                projectconfig_var_getoffs: std::mem::transmute(get_func(c_str!(stringify!(
1354                    projectconfig_var_getoffs
1355                )))),
1356                realloc_cmd_ptr: std::mem::transmute(get_func(c_str!(stringify!(realloc_cmd_ptr)))),
1357                ReaperGetPitchShiftAPI: std::mem::transmute(get_func(c_str!(stringify!(
1358                    ReaperGetPitchShiftAPI
1359                )))),
1360                ReaScriptError: std::mem::transmute(get_func(c_str!(stringify!(ReaScriptError)))),
1361                RecursiveCreateDirectory: std::mem::transmute(get_func(c_str!(stringify!(
1362                    RecursiveCreateDirectory
1363                )))),
1364                reduce_open_files: std::mem::transmute(get_func(c_str!(stringify!(
1365                    reduce_open_files
1366                )))),
1367                RefreshToolbar: std::mem::transmute(get_func(c_str!(stringify!(RefreshToolbar)))),
1368                RefreshToolbar2: std::mem::transmute(get_func(c_str!(stringify!(RefreshToolbar2)))),
1369                relative_fn: std::mem::transmute(get_func(c_str!(stringify!(relative_fn)))),
1370                RemoveTrackSend: std::mem::transmute(get_func(c_str!(stringify!(RemoveTrackSend)))),
1371                RenderFileSection: std::mem::transmute(get_func(c_str!(stringify!(
1372                    RenderFileSection
1373                )))),
1374                ReorderSelectedTracks: std::mem::transmute(get_func(c_str!(stringify!(
1375                    ReorderSelectedTracks
1376                )))),
1377                Resample_EnumModes: std::mem::transmute(get_func(c_str!(stringify!(
1378                    Resample_EnumModes
1379                )))),
1380                Resampler_Create: std::mem::transmute(get_func(c_str!(stringify!(
1381                    Resampler_Create
1382                )))),
1383                resolve_fn: std::mem::transmute(get_func(c_str!(stringify!(resolve_fn)))),
1384                resolve_fn2: std::mem::transmute(get_func(c_str!(stringify!(resolve_fn2)))),
1385                ReverseNamedCommandLookup: std::mem::transmute(get_func(c_str!(stringify!(
1386                    ReverseNamedCommandLookup
1387                )))),
1388                ScaleFromEnvelopeMode: std::mem::transmute(get_func(c_str!(stringify!(
1389                    ScaleFromEnvelopeMode
1390                )))),
1391                ScaleToEnvelopeMode: std::mem::transmute(get_func(c_str!(stringify!(
1392                    ScaleToEnvelopeMode
1393                )))),
1394                screenset_register: std::mem::transmute(get_func(c_str!(stringify!(
1395                    screenset_register
1396                )))),
1397                screenset_registerNew: std::mem::transmute(get_func(c_str!(stringify!(
1398                    screenset_registerNew
1399                )))),
1400                screenset_unregister: std::mem::transmute(get_func(c_str!(stringify!(
1401                    screenset_unregister
1402                )))),
1403                screenset_unregisterByParam: std::mem::transmute(get_func(c_str!(stringify!(
1404                    screenset_unregisterByParam
1405                )))),
1406                screenset_updateLastFocus: std::mem::transmute(get_func(c_str!(stringify!(
1407                    screenset_updateLastFocus
1408                )))),
1409                SectionFromUniqueID: std::mem::transmute(get_func(c_str!(stringify!(
1410                    SectionFromUniqueID
1411                )))),
1412                SelectAllMediaItems: std::mem::transmute(get_func(c_str!(stringify!(
1413                    SelectAllMediaItems
1414                )))),
1415                SelectProjectInstance: std::mem::transmute(get_func(c_str!(stringify!(
1416                    SelectProjectInstance
1417                )))),
1418                SendLocalOscMessage: std::mem::transmute(get_func(c_str!(stringify!(
1419                    SendLocalOscMessage
1420                )))),
1421                SetActiveTake: std::mem::transmute(get_func(c_str!(stringify!(SetActiveTake)))),
1422                SetAutomationMode: std::mem::transmute(get_func(c_str!(stringify!(
1423                    SetAutomationMode
1424                )))),
1425                SetCurrentBPM: std::mem::transmute(get_func(c_str!(stringify!(SetCurrentBPM)))),
1426                SetCursorContext: std::mem::transmute(get_func(c_str!(stringify!(
1427                    SetCursorContext
1428                )))),
1429                SetEditCurPos: std::mem::transmute(get_func(c_str!(stringify!(SetEditCurPos)))),
1430                SetEditCurPos2: std::mem::transmute(get_func(c_str!(stringify!(SetEditCurPos2)))),
1431                SetEnvelopePoint: std::mem::transmute(get_func(c_str!(stringify!(
1432                    SetEnvelopePoint
1433                )))),
1434                SetEnvelopePointEx: std::mem::transmute(get_func(c_str!(stringify!(
1435                    SetEnvelopePointEx
1436                )))),
1437                SetEnvelopeStateChunk: std::mem::transmute(get_func(c_str!(stringify!(
1438                    SetEnvelopeStateChunk
1439                )))),
1440                SetExtState: std::mem::transmute(get_func(c_str!(stringify!(SetExtState)))),
1441                SetGlobalAutomationOverride: std::mem::transmute(get_func(c_str!(stringify!(
1442                    SetGlobalAutomationOverride
1443                )))),
1444                SetItemStateChunk: std::mem::transmute(get_func(c_str!(stringify!(
1445                    SetItemStateChunk
1446                )))),
1447                SetMasterTrackVisibility: std::mem::transmute(get_func(c_str!(stringify!(
1448                    SetMasterTrackVisibility
1449                )))),
1450                SetMediaItemInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
1451                    SetMediaItemInfo_Value
1452                )))),
1453                SetMediaItemLength: std::mem::transmute(get_func(c_str!(stringify!(
1454                    SetMediaItemLength
1455                )))),
1456                SetMediaItemPosition: std::mem::transmute(get_func(c_str!(stringify!(
1457                    SetMediaItemPosition
1458                )))),
1459                SetMediaItemSelected: std::mem::transmute(get_func(c_str!(stringify!(
1460                    SetMediaItemSelected
1461                )))),
1462                SetMediaItemTake_Source: std::mem::transmute(get_func(c_str!(stringify!(
1463                    SetMediaItemTake_Source
1464                )))),
1465                SetMediaItemTakeInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
1466                    SetMediaItemTakeInfo_Value
1467                )))),
1468                SetMediaTrackInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
1469                    SetMediaTrackInfo_Value
1470                )))),
1471                SetMIDIEditorGrid: std::mem::transmute(get_func(c_str!(stringify!(
1472                    SetMIDIEditorGrid
1473                )))),
1474                SetMixerScroll: std::mem::transmute(get_func(c_str!(stringify!(SetMixerScroll)))),
1475                SetMouseModifier: std::mem::transmute(get_func(c_str!(stringify!(
1476                    SetMouseModifier
1477                )))),
1478                SetOnlyTrackSelected: std::mem::transmute(get_func(c_str!(stringify!(
1479                    SetOnlyTrackSelected
1480                )))),
1481                SetProjectGrid: std::mem::transmute(get_func(c_str!(stringify!(SetProjectGrid)))),
1482                SetProjectMarker: std::mem::transmute(get_func(c_str!(stringify!(
1483                    SetProjectMarker
1484                )))),
1485                SetProjectMarker2: std::mem::transmute(get_func(c_str!(stringify!(
1486                    SetProjectMarker2
1487                )))),
1488                SetProjectMarker3: std::mem::transmute(get_func(c_str!(stringify!(
1489                    SetProjectMarker3
1490                )))),
1491                SetProjectMarker4: std::mem::transmute(get_func(c_str!(stringify!(
1492                    SetProjectMarker4
1493                )))),
1494                SetProjectMarkerByIndex: std::mem::transmute(get_func(c_str!(stringify!(
1495                    SetProjectMarkerByIndex
1496                )))),
1497                SetProjectMarkerByIndex2: std::mem::transmute(get_func(c_str!(stringify!(
1498                    SetProjectMarkerByIndex2
1499                )))),
1500                SetProjExtState: std::mem::transmute(get_func(c_str!(stringify!(SetProjExtState)))),
1501                SetRegionRenderMatrix: std::mem::transmute(get_func(c_str!(stringify!(
1502                    SetRegionRenderMatrix
1503                )))),
1504                SetRenderLastError: std::mem::transmute(get_func(c_str!(stringify!(
1505                    SetRenderLastError
1506                )))),
1507                SetTakeStretchMarker: std::mem::transmute(get_func(c_str!(stringify!(
1508                    SetTakeStretchMarker
1509                )))),
1510                SetTakeStretchMarkerSlope: std::mem::transmute(get_func(c_str!(stringify!(
1511                    SetTakeStretchMarkerSlope
1512                )))),
1513                SetTempoTimeSigMarker: std::mem::transmute(get_func(c_str!(stringify!(
1514                    SetTempoTimeSigMarker
1515                )))),
1516                SetToggleCommandState: std::mem::transmute(get_func(c_str!(stringify!(
1517                    SetToggleCommandState
1518                )))),
1519                SetTrackAutomationMode: std::mem::transmute(get_func(c_str!(stringify!(
1520                    SetTrackAutomationMode
1521                )))),
1522                SetTrackColor: std::mem::transmute(get_func(c_str!(stringify!(SetTrackColor)))),
1523                SetTrackMIDILyrics: std::mem::transmute(get_func(c_str!(stringify!(
1524                    SetTrackMIDILyrics
1525                )))),
1526                SetTrackMIDINoteName: std::mem::transmute(get_func(c_str!(stringify!(
1527                    SetTrackMIDINoteName
1528                )))),
1529                SetTrackMIDINoteNameEx: std::mem::transmute(get_func(c_str!(stringify!(
1530                    SetTrackMIDINoteNameEx
1531                )))),
1532                SetTrackSelected: std::mem::transmute(get_func(c_str!(stringify!(
1533                    SetTrackSelected
1534                )))),
1535                SetTrackSendInfo_Value: std::mem::transmute(get_func(c_str!(stringify!(
1536                    SetTrackSendInfo_Value
1537                )))),
1538                SetTrackSendUIPan: std::mem::transmute(get_func(c_str!(stringify!(
1539                    SetTrackSendUIPan
1540                )))),
1541                SetTrackSendUIVol: std::mem::transmute(get_func(c_str!(stringify!(
1542                    SetTrackSendUIVol
1543                )))),
1544                SetTrackStateChunk: std::mem::transmute(get_func(c_str!(stringify!(
1545                    SetTrackStateChunk
1546                )))),
1547                ShowActionList: std::mem::transmute(get_func(c_str!(stringify!(ShowActionList)))),
1548                ShowConsoleMsg: std::mem::transmute(get_func(c_str!(stringify!(ShowConsoleMsg)))),
1549                ShowMessageBox: std::mem::transmute(get_func(c_str!(stringify!(ShowMessageBox)))),
1550                ShowPopupMenu: std::mem::transmute(get_func(c_str!(stringify!(ShowPopupMenu)))),
1551                SLIDER2DB: std::mem::transmute(get_func(c_str!(stringify!(SLIDER2DB)))),
1552                SnapToGrid: std::mem::transmute(get_func(c_str!(stringify!(SnapToGrid)))),
1553                SoloAllTracks: std::mem::transmute(get_func(c_str!(stringify!(SoloAllTracks)))),
1554                Splash_GetWnd: std::mem::transmute(get_func(c_str!(stringify!(Splash_GetWnd)))),
1555                SplitMediaItem: std::mem::transmute(get_func(c_str!(stringify!(SplitMediaItem)))),
1556                StopPreview: std::mem::transmute(get_func(c_str!(stringify!(StopPreview)))),
1557                StopTrackPreview: std::mem::transmute(get_func(c_str!(stringify!(
1558                    StopTrackPreview
1559                )))),
1560                StopTrackPreview2: std::mem::transmute(get_func(c_str!(stringify!(
1561                    StopTrackPreview2
1562                )))),
1563                stringToGuid: std::mem::transmute(get_func(c_str!(stringify!(stringToGuid)))),
1564                StuffMIDIMessage: std::mem::transmute(get_func(c_str!(stringify!(
1565                    StuffMIDIMessage
1566                )))),
1567                TakeFX_AddByName: std::mem::transmute(get_func(c_str!(stringify!(
1568                    TakeFX_AddByName
1569                )))),
1570                TakeFX_CopyToTake: std::mem::transmute(get_func(c_str!(stringify!(
1571                    TakeFX_CopyToTake
1572                )))),
1573                TakeFX_CopyToTrack: std::mem::transmute(get_func(c_str!(stringify!(
1574                    TakeFX_CopyToTrack
1575                )))),
1576                TakeFX_Delete: std::mem::transmute(get_func(c_str!(stringify!(TakeFX_Delete)))),
1577                TakeFX_EndParamEdit: std::mem::transmute(get_func(c_str!(stringify!(
1578                    TakeFX_EndParamEdit
1579                )))),
1580                TakeFX_FormatParamValue: std::mem::transmute(get_func(c_str!(stringify!(
1581                    TakeFX_FormatParamValue
1582                )))),
1583                TakeFX_FormatParamValueNormalized: std::mem::transmute(get_func(c_str!(
1584                    stringify!(TakeFX_FormatParamValueNormalized)
1585                ))),
1586                TakeFX_GetChainVisible: std::mem::transmute(get_func(c_str!(stringify!(
1587                    TakeFX_GetChainVisible
1588                )))),
1589                TakeFX_GetCount: std::mem::transmute(get_func(c_str!(stringify!(TakeFX_GetCount)))),
1590                TakeFX_GetEnabled: std::mem::transmute(get_func(c_str!(stringify!(
1591                    TakeFX_GetEnabled
1592                )))),
1593                TakeFX_GetEnvelope: std::mem::transmute(get_func(c_str!(stringify!(
1594                    TakeFX_GetEnvelope
1595                )))),
1596                TakeFX_GetFloatingWindow: std::mem::transmute(get_func(c_str!(stringify!(
1597                    TakeFX_GetFloatingWindow
1598                )))),
1599                TakeFX_GetFormattedParamValue: std::mem::transmute(get_func(c_str!(stringify!(
1600                    TakeFX_GetFormattedParamValue
1601                )))),
1602                TakeFX_GetFXGUID: std::mem::transmute(get_func(c_str!(stringify!(
1603                    TakeFX_GetFXGUID
1604                )))),
1605                TakeFX_GetFXName: std::mem::transmute(get_func(c_str!(stringify!(
1606                    TakeFX_GetFXName
1607                )))),
1608                TakeFX_GetIOSize: std::mem::transmute(get_func(c_str!(stringify!(
1609                    TakeFX_GetIOSize
1610                )))),
1611                TakeFX_GetNamedConfigParm: std::mem::transmute(get_func(c_str!(stringify!(
1612                    TakeFX_GetNamedConfigParm
1613                )))),
1614                TakeFX_GetNumParams: std::mem::transmute(get_func(c_str!(stringify!(
1615                    TakeFX_GetNumParams
1616                )))),
1617                TakeFX_GetOffline: std::mem::transmute(get_func(c_str!(stringify!(
1618                    TakeFX_GetOffline
1619                )))),
1620                TakeFX_GetOpen: std::mem::transmute(get_func(c_str!(stringify!(TakeFX_GetOpen)))),
1621                TakeFX_GetParam: std::mem::transmute(get_func(c_str!(stringify!(TakeFX_GetParam)))),
1622                TakeFX_GetParameterStepSizes: std::mem::transmute(get_func(c_str!(stringify!(
1623                    TakeFX_GetParameterStepSizes
1624                )))),
1625                TakeFX_GetParamEx: std::mem::transmute(get_func(c_str!(stringify!(
1626                    TakeFX_GetParamEx
1627                )))),
1628                TakeFX_GetParamName: std::mem::transmute(get_func(c_str!(stringify!(
1629                    TakeFX_GetParamName
1630                )))),
1631                TakeFX_GetParamNormalized: std::mem::transmute(get_func(c_str!(stringify!(
1632                    TakeFX_GetParamNormalized
1633                )))),
1634                TakeFX_GetPinMappings: std::mem::transmute(get_func(c_str!(stringify!(
1635                    TakeFX_GetPinMappings
1636                )))),
1637                TakeFX_GetPreset: std::mem::transmute(get_func(c_str!(stringify!(
1638                    TakeFX_GetPreset
1639                )))),
1640                TakeFX_GetPresetIndex: std::mem::transmute(get_func(c_str!(stringify!(
1641                    TakeFX_GetPresetIndex
1642                )))),
1643                TakeFX_GetUserPresetFilename: std::mem::transmute(get_func(c_str!(stringify!(
1644                    TakeFX_GetUserPresetFilename
1645                )))),
1646                TakeFX_NavigatePresets: std::mem::transmute(get_func(c_str!(stringify!(
1647                    TakeFX_NavigatePresets
1648                )))),
1649                TakeFX_SetEnabled: std::mem::transmute(get_func(c_str!(stringify!(
1650                    TakeFX_SetEnabled
1651                )))),
1652                TakeFX_SetNamedConfigParm: std::mem::transmute(get_func(c_str!(stringify!(
1653                    TakeFX_SetNamedConfigParm
1654                )))),
1655                TakeFX_SetOffline: std::mem::transmute(get_func(c_str!(stringify!(
1656                    TakeFX_SetOffline
1657                )))),
1658                TakeFX_SetOpen: std::mem::transmute(get_func(c_str!(stringify!(TakeFX_SetOpen)))),
1659                TakeFX_SetParam: std::mem::transmute(get_func(c_str!(stringify!(TakeFX_SetParam)))),
1660                TakeFX_SetParamNormalized: std::mem::transmute(get_func(c_str!(stringify!(
1661                    TakeFX_SetParamNormalized
1662                )))),
1663                TakeFX_SetPinMappings: std::mem::transmute(get_func(c_str!(stringify!(
1664                    TakeFX_SetPinMappings
1665                )))),
1666                TakeFX_SetPreset: std::mem::transmute(get_func(c_str!(stringify!(
1667                    TakeFX_SetPreset
1668                )))),
1669                TakeFX_SetPresetByIndex: std::mem::transmute(get_func(c_str!(stringify!(
1670                    TakeFX_SetPresetByIndex
1671                )))),
1672                TakeFX_Show: std::mem::transmute(get_func(c_str!(stringify!(TakeFX_Show)))),
1673                TakeIsMIDI: std::mem::transmute(get_func(c_str!(stringify!(TakeIsMIDI)))),
1674                ThemeLayout_GetLayout: std::mem::transmute(get_func(c_str!(stringify!(
1675                    ThemeLayout_GetLayout
1676                )))),
1677                ThemeLayout_GetParameter: std::mem::transmute(get_func(c_str!(stringify!(
1678                    ThemeLayout_GetParameter
1679                )))),
1680                ThemeLayout_RefreshAll: std::mem::transmute(get_func(c_str!(stringify!(
1681                    ThemeLayout_RefreshAll
1682                )))),
1683                ThemeLayout_SetLayout: std::mem::transmute(get_func(c_str!(stringify!(
1684                    ThemeLayout_SetLayout
1685                )))),
1686                ThemeLayout_SetParameter: std::mem::transmute(get_func(c_str!(stringify!(
1687                    ThemeLayout_SetParameter
1688                )))),
1689                time_precise: std::mem::transmute(get_func(c_str!(stringify!(time_precise)))),
1690                TimeMap2_beatsToTime: std::mem::transmute(get_func(c_str!(stringify!(
1691                    TimeMap2_beatsToTime
1692                )))),
1693                TimeMap2_GetDividedBpmAtTime: std::mem::transmute(get_func(c_str!(stringify!(
1694                    TimeMap2_GetDividedBpmAtTime
1695                )))),
1696                TimeMap2_GetNextChangeTime: std::mem::transmute(get_func(c_str!(stringify!(
1697                    TimeMap2_GetNextChangeTime
1698                )))),
1699                TimeMap2_QNToTime: std::mem::transmute(get_func(c_str!(stringify!(
1700                    TimeMap2_QNToTime
1701                )))),
1702                TimeMap2_timeToBeats: std::mem::transmute(get_func(c_str!(stringify!(
1703                    TimeMap2_timeToBeats
1704                )))),
1705                TimeMap2_timeToQN: std::mem::transmute(get_func(c_str!(stringify!(
1706                    TimeMap2_timeToQN
1707                )))),
1708                TimeMap_curFrameRate: std::mem::transmute(get_func(c_str!(stringify!(
1709                    TimeMap_curFrameRate
1710                )))),
1711                TimeMap_GetDividedBpmAtTime: std::mem::transmute(get_func(c_str!(stringify!(
1712                    TimeMap_GetDividedBpmAtTime
1713                )))),
1714                TimeMap_GetMeasureInfo: std::mem::transmute(get_func(c_str!(stringify!(
1715                    TimeMap_GetMeasureInfo
1716                )))),
1717                TimeMap_GetMetronomePattern: std::mem::transmute(get_func(c_str!(stringify!(
1718                    TimeMap_GetMetronomePattern
1719                )))),
1720                TimeMap_GetTimeSigAtTime: std::mem::transmute(get_func(c_str!(stringify!(
1721                    TimeMap_GetTimeSigAtTime
1722                )))),
1723                TimeMap_QNToMeasures: std::mem::transmute(get_func(c_str!(stringify!(
1724                    TimeMap_QNToMeasures
1725                )))),
1726                TimeMap_QNToTime: std::mem::transmute(get_func(c_str!(stringify!(
1727                    TimeMap_QNToTime
1728                )))),
1729                TimeMap_QNToTime_abs: std::mem::transmute(get_func(c_str!(stringify!(
1730                    TimeMap_QNToTime_abs
1731                )))),
1732                TimeMap_timeToQN: std::mem::transmute(get_func(c_str!(stringify!(
1733                    TimeMap_timeToQN
1734                )))),
1735                TimeMap_timeToQN_abs: std::mem::transmute(get_func(c_str!(stringify!(
1736                    TimeMap_timeToQN_abs
1737                )))),
1738                ToggleTrackSendUIMute: std::mem::transmute(get_func(c_str!(stringify!(
1739                    ToggleTrackSendUIMute
1740                )))),
1741                Track_GetPeakHoldDB: std::mem::transmute(get_func(c_str!(stringify!(
1742                    Track_GetPeakHoldDB
1743                )))),
1744                Track_GetPeakInfo: std::mem::transmute(get_func(c_str!(stringify!(
1745                    Track_GetPeakInfo
1746                )))),
1747                TrackCtl_SetToolTip: std::mem::transmute(get_func(c_str!(stringify!(
1748                    TrackCtl_SetToolTip
1749                )))),
1750                TrackFX_AddByName: std::mem::transmute(get_func(c_str!(stringify!(
1751                    TrackFX_AddByName
1752                )))),
1753                TrackFX_CopyToTake: std::mem::transmute(get_func(c_str!(stringify!(
1754                    TrackFX_CopyToTake
1755                )))),
1756                TrackFX_CopyToTrack: std::mem::transmute(get_func(c_str!(stringify!(
1757                    TrackFX_CopyToTrack
1758                )))),
1759                TrackFX_Delete: std::mem::transmute(get_func(c_str!(stringify!(TrackFX_Delete)))),
1760                TrackFX_EndParamEdit: std::mem::transmute(get_func(c_str!(stringify!(
1761                    TrackFX_EndParamEdit
1762                )))),
1763                TrackFX_FormatParamValue: std::mem::transmute(get_func(c_str!(stringify!(
1764                    TrackFX_FormatParamValue
1765                )))),
1766                TrackFX_FormatParamValueNormalized: std::mem::transmute(get_func(c_str!(
1767                    stringify!(TrackFX_FormatParamValueNormalized)
1768                ))),
1769                TrackFX_GetByName: std::mem::transmute(get_func(c_str!(stringify!(
1770                    TrackFX_GetByName
1771                )))),
1772                TrackFX_GetChainVisible: std::mem::transmute(get_func(c_str!(stringify!(
1773                    TrackFX_GetChainVisible
1774                )))),
1775                TrackFX_GetCount: std::mem::transmute(get_func(c_str!(stringify!(
1776                    TrackFX_GetCount
1777                )))),
1778                TrackFX_GetEnabled: std::mem::transmute(get_func(c_str!(stringify!(
1779                    TrackFX_GetEnabled
1780                )))),
1781                TrackFX_GetEQ: std::mem::transmute(get_func(c_str!(stringify!(TrackFX_GetEQ)))),
1782                TrackFX_GetEQBandEnabled: std::mem::transmute(get_func(c_str!(stringify!(
1783                    TrackFX_GetEQBandEnabled
1784                )))),
1785                TrackFX_GetEQParam: std::mem::transmute(get_func(c_str!(stringify!(
1786                    TrackFX_GetEQParam
1787                )))),
1788                TrackFX_GetFloatingWindow: std::mem::transmute(get_func(c_str!(stringify!(
1789                    TrackFX_GetFloatingWindow
1790                )))),
1791                TrackFX_GetFormattedParamValue: std::mem::transmute(get_func(c_str!(stringify!(
1792                    TrackFX_GetFormattedParamValue
1793                )))),
1794                TrackFX_GetFXGUID: std::mem::transmute(get_func(c_str!(stringify!(
1795                    TrackFX_GetFXGUID
1796                )))),
1797                TrackFX_GetFXName: std::mem::transmute(get_func(c_str!(stringify!(
1798                    TrackFX_GetFXName
1799                )))),
1800                TrackFX_GetInstrument: std::mem::transmute(get_func(c_str!(stringify!(
1801                    TrackFX_GetInstrument
1802                )))),
1803                TrackFX_GetIOSize: std::mem::transmute(get_func(c_str!(stringify!(
1804                    TrackFX_GetIOSize
1805                )))),
1806                TrackFX_GetNamedConfigParm: std::mem::transmute(get_func(c_str!(stringify!(
1807                    TrackFX_GetNamedConfigParm
1808                )))),
1809                TrackFX_GetNumParams: std::mem::transmute(get_func(c_str!(stringify!(
1810                    TrackFX_GetNumParams
1811                )))),
1812                TrackFX_GetOffline: std::mem::transmute(get_func(c_str!(stringify!(
1813                    TrackFX_GetOffline
1814                )))),
1815                TrackFX_GetOpen: std::mem::transmute(get_func(c_str!(stringify!(TrackFX_GetOpen)))),
1816                TrackFX_GetParam: std::mem::transmute(get_func(c_str!(stringify!(
1817                    TrackFX_GetParam
1818                )))),
1819                TrackFX_GetParameterStepSizes: std::mem::transmute(get_func(c_str!(stringify!(
1820                    TrackFX_GetParameterStepSizes
1821                )))),
1822                TrackFX_GetParamEx: std::mem::transmute(get_func(c_str!(stringify!(
1823                    TrackFX_GetParamEx
1824                )))),
1825                TrackFX_GetParamName: std::mem::transmute(get_func(c_str!(stringify!(
1826                    TrackFX_GetParamName
1827                )))),
1828                TrackFX_GetParamNormalized: std::mem::transmute(get_func(c_str!(stringify!(
1829                    TrackFX_GetParamNormalized
1830                )))),
1831                TrackFX_GetPinMappings: std::mem::transmute(get_func(c_str!(stringify!(
1832                    TrackFX_GetPinMappings
1833                )))),
1834                TrackFX_GetPreset: std::mem::transmute(get_func(c_str!(stringify!(
1835                    TrackFX_GetPreset
1836                )))),
1837                TrackFX_GetPresetIndex: std::mem::transmute(get_func(c_str!(stringify!(
1838                    TrackFX_GetPresetIndex
1839                )))),
1840                TrackFX_GetRecChainVisible: std::mem::transmute(get_func(c_str!(stringify!(
1841                    TrackFX_GetRecChainVisible
1842                )))),
1843                TrackFX_GetRecCount: std::mem::transmute(get_func(c_str!(stringify!(
1844                    TrackFX_GetRecCount
1845                )))),
1846                TrackFX_GetUserPresetFilename: std::mem::transmute(get_func(c_str!(stringify!(
1847                    TrackFX_GetUserPresetFilename
1848                )))),
1849                TrackFX_NavigatePresets: std::mem::transmute(get_func(c_str!(stringify!(
1850                    TrackFX_NavigatePresets
1851                )))),
1852                TrackFX_SetEnabled: std::mem::transmute(get_func(c_str!(stringify!(
1853                    TrackFX_SetEnabled
1854                )))),
1855                TrackFX_SetEQBandEnabled: std::mem::transmute(get_func(c_str!(stringify!(
1856                    TrackFX_SetEQBandEnabled
1857                )))),
1858                TrackFX_SetEQParam: std::mem::transmute(get_func(c_str!(stringify!(
1859                    TrackFX_SetEQParam
1860                )))),
1861                TrackFX_SetNamedConfigParm: std::mem::transmute(get_func(c_str!(stringify!(
1862                    TrackFX_SetNamedConfigParm
1863                )))),
1864                TrackFX_SetOffline: std::mem::transmute(get_func(c_str!(stringify!(
1865                    TrackFX_SetOffline
1866                )))),
1867                TrackFX_SetOpen: std::mem::transmute(get_func(c_str!(stringify!(TrackFX_SetOpen)))),
1868                TrackFX_SetParam: std::mem::transmute(get_func(c_str!(stringify!(
1869                    TrackFX_SetParam
1870                )))),
1871                TrackFX_SetParamNormalized: std::mem::transmute(get_func(c_str!(stringify!(
1872                    TrackFX_SetParamNormalized
1873                )))),
1874                TrackFX_SetPinMappings: std::mem::transmute(get_func(c_str!(stringify!(
1875                    TrackFX_SetPinMappings
1876                )))),
1877                TrackFX_SetPreset: std::mem::transmute(get_func(c_str!(stringify!(
1878                    TrackFX_SetPreset
1879                )))),
1880                TrackFX_SetPresetByIndex: std::mem::transmute(get_func(c_str!(stringify!(
1881                    TrackFX_SetPresetByIndex
1882                )))),
1883                TrackFX_Show: std::mem::transmute(get_func(c_str!(stringify!(TrackFX_Show)))),
1884                TrackList_AdjustWindows: std::mem::transmute(get_func(c_str!(stringify!(
1885                    TrackList_AdjustWindows
1886                )))),
1887                TrackList_UpdateAllExternalSurfaces: std::mem::transmute(get_func(c_str!(
1888                    stringify!(TrackList_UpdateAllExternalSurfaces)
1889                ))),
1890                Undo_BeginBlock: std::mem::transmute(get_func(c_str!(stringify!(Undo_BeginBlock)))),
1891                Undo_BeginBlock2: std::mem::transmute(get_func(c_str!(stringify!(
1892                    Undo_BeginBlock2
1893                )))),
1894                Undo_CanRedo2: std::mem::transmute(get_func(c_str!(stringify!(Undo_CanRedo2)))),
1895                Undo_CanUndo2: std::mem::transmute(get_func(c_str!(stringify!(Undo_CanUndo2)))),
1896                Undo_DoRedo2: std::mem::transmute(get_func(c_str!(stringify!(Undo_DoRedo2)))),
1897                Undo_DoUndo2: std::mem::transmute(get_func(c_str!(stringify!(Undo_DoUndo2)))),
1898                Undo_EndBlock: std::mem::transmute(get_func(c_str!(stringify!(Undo_EndBlock)))),
1899                Undo_EndBlock2: std::mem::transmute(get_func(c_str!(stringify!(Undo_EndBlock2)))),
1900                Undo_OnStateChange: std::mem::transmute(get_func(c_str!(stringify!(
1901                    Undo_OnStateChange
1902                )))),
1903                Undo_OnStateChange2: std::mem::transmute(get_func(c_str!(stringify!(
1904                    Undo_OnStateChange2
1905                )))),
1906                Undo_OnStateChange_Item: std::mem::transmute(get_func(c_str!(stringify!(
1907                    Undo_OnStateChange_Item
1908                )))),
1909                Undo_OnStateChangeEx: std::mem::transmute(get_func(c_str!(stringify!(
1910                    Undo_OnStateChangeEx
1911                )))),
1912                Undo_OnStateChangeEx2: std::mem::transmute(get_func(c_str!(stringify!(
1913                    Undo_OnStateChangeEx2
1914                )))),
1915                update_disk_counters: std::mem::transmute(get_func(c_str!(stringify!(
1916                    update_disk_counters
1917                )))),
1918                UpdateArrange: std::mem::transmute(get_func(c_str!(stringify!(UpdateArrange)))),
1919                UpdateItemInProject: std::mem::transmute(get_func(c_str!(stringify!(
1920                    UpdateItemInProject
1921                )))),
1922                UpdateTimeline: std::mem::transmute(get_func(c_str!(stringify!(UpdateTimeline)))),
1923                ValidatePtr: std::mem::transmute(get_func(c_str!(stringify!(ValidatePtr)))),
1924                ValidatePtr2: std::mem::transmute(get_func(c_str!(stringify!(ValidatePtr2)))),
1925                ViewPrefs: std::mem::transmute(get_func(c_str!(stringify!(ViewPrefs)))),
1926                WDL_VirtualWnd_ScaledBlitBG: std::mem::transmute(get_func(c_str!(stringify!(
1927                    WDL_VirtualWnd_ScaledBlitBG
1928                )))),
1929                GetMidiInput: std::mem::transmute(get_func(c_str!(stringify!(GetMidiInput)))),
1930                GetMidiOutput: std::mem::transmute(get_func(c_str!(stringify!(GetMidiOutput)))),
1931            }
1932        };
1933        Reaper { pointers }
1934    }
1935    pub unsafe fn __mergesort(
1936        &self,
1937        base: *mut ::std::os::raw::c_void,
1938        nmemb: usize,
1939        size: usize,
1940        cmpfunc: ::std::option::Option<
1941            unsafe extern "C" fn(
1942                arg1: *const ::std::os::raw::c_void,
1943                arg2: *const ::std::os::raw::c_void,
1944            ) -> ::std::os::raw::c_int,
1945        >,
1946        tmpspace: *mut ::std::os::raw::c_void,
1947    ) {
1948        match self.pointers.__mergesort {
1949            None => panic!(format!(
1950                "Attempt to use a REAPER function that has not been loaded: {}",
1951                stringify!(__mergesort)
1952            )),
1953            Some(f) => f(base, nmemb, size, cmpfunc, tmpspace),
1954        }
1955    }
1956    pub unsafe fn AddCustomizableMenu(
1957        &self,
1958        menuidstr: *const ::std::os::raw::c_char,
1959        menuname: *const ::std::os::raw::c_char,
1960        kbdsecname: *const ::std::os::raw::c_char,
1961        addtomainmenu: bool,
1962    ) -> bool {
1963        match self.pointers.AddCustomizableMenu {
1964            None => panic!(format!(
1965                "Attempt to use a REAPER function that has not been loaded: {}",
1966                stringify!(AddCustomizableMenu)
1967            )),
1968            Some(f) => f(menuidstr, menuname, kbdsecname, addtomainmenu),
1969        }
1970    }
1971    pub fn AddExtensionsMainMenu(&self) -> bool {
1972        match self.pointers.AddExtensionsMainMenu {
1973            None => panic!(format!(
1974                "Attempt to use a REAPER function that has not been loaded: {}",
1975                stringify!(AddExtensionsMainMenu)
1976            )),
1977            Some(f) => f(),
1978        }
1979    }
1980    pub unsafe fn AddMediaItemToTrack(&self, tr: *mut root::MediaTrack) -> *mut root::MediaItem {
1981        match self.pointers.AddMediaItemToTrack {
1982            None => panic!(format!(
1983                "Attempt to use a REAPER function that has not been loaded: {}",
1984                stringify!(AddMediaItemToTrack)
1985            )),
1986            Some(f) => f(tr),
1987        }
1988    }
1989    pub unsafe fn AddProjectMarker(
1990        &self,
1991        proj: *mut root::ReaProject,
1992        isrgn: bool,
1993        pos: f64,
1994        rgnend: f64,
1995        name: *const ::std::os::raw::c_char,
1996        wantidx: ::std::os::raw::c_int,
1997    ) -> ::std::os::raw::c_int {
1998        match self.pointers.AddProjectMarker {
1999            None => panic!(format!(
2000                "Attempt to use a REAPER function that has not been loaded: {}",
2001                stringify!(AddProjectMarker)
2002            )),
2003            Some(f) => f(proj, isrgn, pos, rgnend, name, wantidx),
2004        }
2005    }
2006    pub unsafe fn AddProjectMarker2(
2007        &self,
2008        proj: *mut root::ReaProject,
2009        isrgn: bool,
2010        pos: f64,
2011        rgnend: f64,
2012        name: *const ::std::os::raw::c_char,
2013        wantidx: ::std::os::raw::c_int,
2014        color: ::std::os::raw::c_int,
2015    ) -> ::std::os::raw::c_int {
2016        match self.pointers.AddProjectMarker2 {
2017            None => panic!(format!(
2018                "Attempt to use a REAPER function that has not been loaded: {}",
2019                stringify!(AddProjectMarker2)
2020            )),
2021            Some(f) => f(proj, isrgn, pos, rgnend, name, wantidx, color),
2022        }
2023    }
2024    pub unsafe fn AddRemoveReaScript(
2025        &self,
2026        add: bool,
2027        sectionID: ::std::os::raw::c_int,
2028        scriptfn: *const ::std::os::raw::c_char,
2029        commit: bool,
2030    ) -> ::std::os::raw::c_int {
2031        match self.pointers.AddRemoveReaScript {
2032            None => panic!(format!(
2033                "Attempt to use a REAPER function that has not been loaded: {}",
2034                stringify!(AddRemoveReaScript)
2035            )),
2036            Some(f) => f(add, sectionID, scriptfn, commit),
2037        }
2038    }
2039    pub unsafe fn AddTakeToMediaItem(
2040        &self,
2041        item: *mut root::MediaItem,
2042    ) -> *mut root::MediaItem_Take {
2043        match self.pointers.AddTakeToMediaItem {
2044            None => panic!(format!(
2045                "Attempt to use a REAPER function that has not been loaded: {}",
2046                stringify!(AddTakeToMediaItem)
2047            )),
2048            Some(f) => f(item),
2049        }
2050    }
2051    pub unsafe fn AddTempoTimeSigMarker(
2052        &self,
2053        proj: *mut root::ReaProject,
2054        timepos: f64,
2055        bpm: f64,
2056        timesig_num: ::std::os::raw::c_int,
2057        timesig_denom: ::std::os::raw::c_int,
2058        lineartempochange: bool,
2059    ) -> bool {
2060        match self.pointers.AddTempoTimeSigMarker {
2061            None => panic!(format!(
2062                "Attempt to use a REAPER function that has not been loaded: {}",
2063                stringify!(AddTempoTimeSigMarker)
2064            )),
2065            Some(f) => f(
2066                proj,
2067                timepos,
2068                bpm,
2069                timesig_num,
2070                timesig_denom,
2071                lineartempochange,
2072            ),
2073        }
2074    }
2075    pub fn adjustZoom(
2076        &self,
2077        amt: f64,
2078        forceset: ::std::os::raw::c_int,
2079        doupd: bool,
2080        centermode: ::std::os::raw::c_int,
2081    ) {
2082        match self.pointers.adjustZoom {
2083            None => panic!(format!(
2084                "Attempt to use a REAPER function that has not been loaded: {}",
2085                stringify!(adjustZoom)
2086            )),
2087            Some(f) => f(amt, forceset, doupd, centermode),
2088        }
2089    }
2090    pub unsafe fn AnyTrackSolo(&self, proj: *mut root::ReaProject) -> bool {
2091        match self.pointers.AnyTrackSolo {
2092            None => panic!(format!(
2093                "Attempt to use a REAPER function that has not been loaded: {}",
2094                stringify!(AnyTrackSolo)
2095            )),
2096            Some(f) => f(proj),
2097        }
2098    }
2099    pub unsafe fn APIExists(&self, function_name: *const ::std::os::raw::c_char) -> bool {
2100        match self.pointers.APIExists {
2101            None => panic!(format!(
2102                "Attempt to use a REAPER function that has not been loaded: {}",
2103                stringify!(APIExists)
2104            )),
2105            Some(f) => f(function_name),
2106        }
2107    }
2108    pub fn APITest(&self) {
2109        match self.pointers.APITest {
2110            None => panic!(format!(
2111                "Attempt to use a REAPER function that has not been loaded: {}",
2112                stringify!(APITest)
2113            )),
2114            Some(f) => f(),
2115        }
2116    }
2117    pub unsafe fn ApplyNudge(
2118        &self,
2119        project: *mut root::ReaProject,
2120        nudgeflag: ::std::os::raw::c_int,
2121        nudgewhat: ::std::os::raw::c_int,
2122        nudgeunits: ::std::os::raw::c_int,
2123        value: f64,
2124        reverse: bool,
2125        copies: ::std::os::raw::c_int,
2126    ) -> bool {
2127        match self.pointers.ApplyNudge {
2128            None => panic!(format!(
2129                "Attempt to use a REAPER function that has not been loaded: {}",
2130                stringify!(ApplyNudge)
2131            )),
2132            Some(f) => f(
2133                project, nudgeflag, nudgewhat, nudgeunits, value, reverse, copies,
2134            ),
2135        }
2136    }
2137    pub unsafe fn ArmCommand(
2138        &self,
2139        cmd: ::std::os::raw::c_int,
2140        sectionname: *const ::std::os::raw::c_char,
2141    ) {
2142        match self.pointers.ArmCommand {
2143            None => panic!(format!(
2144                "Attempt to use a REAPER function that has not been loaded: {}",
2145                stringify!(ArmCommand)
2146            )),
2147            Some(f) => f(cmd, sectionname),
2148        }
2149    }
2150    pub fn Audio_Init(&self) {
2151        match self.pointers.Audio_Init {
2152            None => panic!(format!(
2153                "Attempt to use a REAPER function that has not been loaded: {}",
2154                stringify!(Audio_Init)
2155            )),
2156            Some(f) => f(),
2157        }
2158    }
2159    pub fn Audio_IsPreBuffer(&self) -> ::std::os::raw::c_int {
2160        match self.pointers.Audio_IsPreBuffer {
2161            None => panic!(format!(
2162                "Attempt to use a REAPER function that has not been loaded: {}",
2163                stringify!(Audio_IsPreBuffer)
2164            )),
2165            Some(f) => f(),
2166        }
2167    }
2168    pub fn Audio_IsRunning(&self) -> ::std::os::raw::c_int {
2169        match self.pointers.Audio_IsRunning {
2170            None => panic!(format!(
2171                "Attempt to use a REAPER function that has not been loaded: {}",
2172                stringify!(Audio_IsRunning)
2173            )),
2174            Some(f) => f(),
2175        }
2176    }
2177    pub fn Audio_Quit(&self) {
2178        match self.pointers.Audio_Quit {
2179            None => panic!(format!(
2180                "Attempt to use a REAPER function that has not been loaded: {}",
2181                stringify!(Audio_Quit)
2182            )),
2183            Some(f) => f(),
2184        }
2185    }
2186    pub unsafe fn Audio_RegHardwareHook(
2187        &self,
2188        isAdd: bool,
2189        reg: *mut root::audio_hook_register_t,
2190    ) -> ::std::os::raw::c_int {
2191        match self.pointers.Audio_RegHardwareHook {
2192            None => panic!(format!(
2193                "Attempt to use a REAPER function that has not been loaded: {}",
2194                stringify!(Audio_RegHardwareHook)
2195            )),
2196            Some(f) => f(isAdd, reg),
2197        }
2198    }
2199    pub unsafe fn AudioAccessorStateChanged(
2200        &self,
2201        accessor: *mut root::reaper_functions::AudioAccessor,
2202    ) -> bool {
2203        match self.pointers.AudioAccessorStateChanged {
2204            None => panic!(format!(
2205                "Attempt to use a REAPER function that has not been loaded: {}",
2206                stringify!(AudioAccessorStateChanged)
2207            )),
2208            Some(f) => f(accessor),
2209        }
2210    }
2211    pub unsafe fn AudioAccessorUpdate(&self, accessor: *mut root::reaper_functions::AudioAccessor) {
2212        match self.pointers.AudioAccessorUpdate {
2213            None => panic!(format!(
2214                "Attempt to use a REAPER function that has not been loaded: {}",
2215                stringify!(AudioAccessorUpdate)
2216            )),
2217            Some(f) => f(accessor),
2218        }
2219    }
2220    pub unsafe fn AudioAccessorValidateState(
2221        &self,
2222        accessor: *mut root::reaper_functions::AudioAccessor,
2223    ) -> bool {
2224        match self.pointers.AudioAccessorValidateState {
2225            None => panic!(format!(
2226                "Attempt to use a REAPER function that has not been loaded: {}",
2227                stringify!(AudioAccessorValidateState)
2228            )),
2229            Some(f) => f(accessor),
2230        }
2231    }
2232    pub fn BypassFxAllTracks(&self, bypass: ::std::os::raw::c_int) {
2233        match self.pointers.BypassFxAllTracks {
2234            None => panic!(format!(
2235                "Attempt to use a REAPER function that has not been loaded: {}",
2236                stringify!(BypassFxAllTracks)
2237            )),
2238            Some(f) => f(bypass),
2239        }
2240    }
2241    pub unsafe fn CalculatePeaks(
2242        &self,
2243        srcBlock: *mut root::PCM_source_transfer_t,
2244        pksBlock: *mut root::PCM_source_peaktransfer_t,
2245    ) -> ::std::os::raw::c_int {
2246        match self.pointers.CalculatePeaks {
2247            None => panic!(format!(
2248                "Attempt to use a REAPER function that has not been loaded: {}",
2249                stringify!(CalculatePeaks)
2250            )),
2251            Some(f) => f(srcBlock, pksBlock),
2252        }
2253    }
2254    pub unsafe fn CalculatePeaksFloatSrcPtr(
2255        &self,
2256        srcBlock: *mut root::PCM_source_transfer_t,
2257        pksBlock: *mut root::PCM_source_peaktransfer_t,
2258    ) -> ::std::os::raw::c_int {
2259        match self.pointers.CalculatePeaksFloatSrcPtr {
2260            None => panic!(format!(
2261                "Attempt to use a REAPER function that has not been loaded: {}",
2262                stringify!(CalculatePeaksFloatSrcPtr)
2263            )),
2264            Some(f) => f(srcBlock, pksBlock),
2265        }
2266    }
2267    pub fn ClearAllRecArmed(&self) {
2268        match self.pointers.ClearAllRecArmed {
2269            None => panic!(format!(
2270                "Attempt to use a REAPER function that has not been loaded: {}",
2271                stringify!(ClearAllRecArmed)
2272            )),
2273            Some(f) => f(),
2274        }
2275    }
2276    pub fn ClearConsole(&self) {
2277        match self.pointers.ClearConsole {
2278            None => panic!(format!(
2279                "Attempt to use a REAPER function that has not been loaded: {}",
2280                stringify!(ClearConsole)
2281            )),
2282            Some(f) => f(),
2283        }
2284    }
2285    pub fn ClearPeakCache(&self) {
2286        match self.pointers.ClearPeakCache {
2287            None => panic!(format!(
2288                "Attempt to use a REAPER function that has not been loaded: {}",
2289                stringify!(ClearPeakCache)
2290            )),
2291            Some(f) => f(),
2292        }
2293    }
2294    pub unsafe fn ColorFromNative(
2295        &self,
2296        col: ::std::os::raw::c_int,
2297        rOut: *mut ::std::os::raw::c_int,
2298        gOut: *mut ::std::os::raw::c_int,
2299        bOut: *mut ::std::os::raw::c_int,
2300    ) {
2301        match self.pointers.ColorFromNative {
2302            None => panic!(format!(
2303                "Attempt to use a REAPER function that has not been loaded: {}",
2304                stringify!(ColorFromNative)
2305            )),
2306            Some(f) => f(col, rOut, gOut, bOut),
2307        }
2308    }
2309    pub fn ColorToNative(
2310        &self,
2311        r: ::std::os::raw::c_int,
2312        g: ::std::os::raw::c_int,
2313        b: ::std::os::raw::c_int,
2314    ) -> ::std::os::raw::c_int {
2315        match self.pointers.ColorToNative {
2316            None => panic!(format!(
2317                "Attempt to use a REAPER function that has not been loaded: {}",
2318                stringify!(ColorToNative)
2319            )),
2320            Some(f) => f(r, g, b),
2321        }
2322    }
2323    pub unsafe fn CountActionShortcuts(
2324        &self,
2325        section: *mut root::KbdSectionInfo,
2326        cmdID: ::std::os::raw::c_int,
2327    ) -> ::std::os::raw::c_int {
2328        match self.pointers.CountActionShortcuts {
2329            None => panic!(format!(
2330                "Attempt to use a REAPER function that has not been loaded: {}",
2331                stringify!(CountActionShortcuts)
2332            )),
2333            Some(f) => f(section, cmdID),
2334        }
2335    }
2336    pub unsafe fn CountAutomationItems(
2337        &self,
2338        env: *mut root::TrackEnvelope,
2339    ) -> ::std::os::raw::c_int {
2340        match self.pointers.CountAutomationItems {
2341            None => panic!(format!(
2342                "Attempt to use a REAPER function that has not been loaded: {}",
2343                stringify!(CountAutomationItems)
2344            )),
2345            Some(f) => f(env),
2346        }
2347    }
2348    pub unsafe fn CountEnvelopePoints(
2349        &self,
2350        envelope: *mut root::TrackEnvelope,
2351    ) -> ::std::os::raw::c_int {
2352        match self.pointers.CountEnvelopePoints {
2353            None => panic!(format!(
2354                "Attempt to use a REAPER function that has not been loaded: {}",
2355                stringify!(CountEnvelopePoints)
2356            )),
2357            Some(f) => f(envelope),
2358        }
2359    }
2360    pub unsafe fn CountEnvelopePointsEx(
2361        &self,
2362        envelope: *mut root::TrackEnvelope,
2363        autoitem_idx: ::std::os::raw::c_int,
2364    ) -> ::std::os::raw::c_int {
2365        match self.pointers.CountEnvelopePointsEx {
2366            None => panic!(format!(
2367                "Attempt to use a REAPER function that has not been loaded: {}",
2368                stringify!(CountEnvelopePointsEx)
2369            )),
2370            Some(f) => f(envelope, autoitem_idx),
2371        }
2372    }
2373    pub unsafe fn CountMediaItems(&self, proj: *mut root::ReaProject) -> ::std::os::raw::c_int {
2374        match self.pointers.CountMediaItems {
2375            None => panic!(format!(
2376                "Attempt to use a REAPER function that has not been loaded: {}",
2377                stringify!(CountMediaItems)
2378            )),
2379            Some(f) => f(proj),
2380        }
2381    }
2382    pub unsafe fn CountProjectMarkers(
2383        &self,
2384        proj: *mut root::ReaProject,
2385        num_markersOut: *mut ::std::os::raw::c_int,
2386        num_regionsOut: *mut ::std::os::raw::c_int,
2387    ) -> ::std::os::raw::c_int {
2388        match self.pointers.CountProjectMarkers {
2389            None => panic!(format!(
2390                "Attempt to use a REAPER function that has not been loaded: {}",
2391                stringify!(CountProjectMarkers)
2392            )),
2393            Some(f) => f(proj, num_markersOut, num_regionsOut),
2394        }
2395    }
2396    pub unsafe fn CountSelectedMediaItems(
2397        &self,
2398        proj: *mut root::ReaProject,
2399    ) -> ::std::os::raw::c_int {
2400        match self.pointers.CountSelectedMediaItems {
2401            None => panic!(format!(
2402                "Attempt to use a REAPER function that has not been loaded: {}",
2403                stringify!(CountSelectedMediaItems)
2404            )),
2405            Some(f) => f(proj),
2406        }
2407    }
2408    pub unsafe fn CountSelectedTracks(&self, proj: *mut root::ReaProject) -> ::std::os::raw::c_int {
2409        match self.pointers.CountSelectedTracks {
2410            None => panic!(format!(
2411                "Attempt to use a REAPER function that has not been loaded: {}",
2412                stringify!(CountSelectedTracks)
2413            )),
2414            Some(f) => f(proj),
2415        }
2416    }
2417    pub unsafe fn CountSelectedTracks2(
2418        &self,
2419        proj: *mut root::ReaProject,
2420        wantmaster: bool,
2421    ) -> ::std::os::raw::c_int {
2422        match self.pointers.CountSelectedTracks2 {
2423            None => panic!(format!(
2424                "Attempt to use a REAPER function that has not been loaded: {}",
2425                stringify!(CountSelectedTracks2)
2426            )),
2427            Some(f) => f(proj, wantmaster),
2428        }
2429    }
2430    pub unsafe fn CountTakeEnvelopes(
2431        &self,
2432        take: *mut root::MediaItem_Take,
2433    ) -> ::std::os::raw::c_int {
2434        match self.pointers.CountTakeEnvelopes {
2435            None => panic!(format!(
2436                "Attempt to use a REAPER function that has not been loaded: {}",
2437                stringify!(CountTakeEnvelopes)
2438            )),
2439            Some(f) => f(take),
2440        }
2441    }
2442    pub unsafe fn CountTakes(&self, item: *mut root::MediaItem) -> ::std::os::raw::c_int {
2443        match self.pointers.CountTakes {
2444            None => panic!(format!(
2445                "Attempt to use a REAPER function that has not been loaded: {}",
2446                stringify!(CountTakes)
2447            )),
2448            Some(f) => f(item),
2449        }
2450    }
2451    pub unsafe fn CountTCPFXParms(
2452        &self,
2453        project: *mut root::ReaProject,
2454        track: *mut root::MediaTrack,
2455    ) -> ::std::os::raw::c_int {
2456        match self.pointers.CountTCPFXParms {
2457            None => panic!(format!(
2458                "Attempt to use a REAPER function that has not been loaded: {}",
2459                stringify!(CountTCPFXParms)
2460            )),
2461            Some(f) => f(project, track),
2462        }
2463    }
2464    pub unsafe fn CountTempoTimeSigMarkers(
2465        &self,
2466        proj: *mut root::ReaProject,
2467    ) -> ::std::os::raw::c_int {
2468        match self.pointers.CountTempoTimeSigMarkers {
2469            None => panic!(format!(
2470                "Attempt to use a REAPER function that has not been loaded: {}",
2471                stringify!(CountTempoTimeSigMarkers)
2472            )),
2473            Some(f) => f(proj),
2474        }
2475    }
2476    pub unsafe fn CountTrackEnvelopes(
2477        &self,
2478        track: *mut root::MediaTrack,
2479    ) -> ::std::os::raw::c_int {
2480        match self.pointers.CountTrackEnvelopes {
2481            None => panic!(format!(
2482                "Attempt to use a REAPER function that has not been loaded: {}",
2483                stringify!(CountTrackEnvelopes)
2484            )),
2485            Some(f) => f(track),
2486        }
2487    }
2488    pub unsafe fn CountTrackMediaItems(
2489        &self,
2490        track: *mut root::MediaTrack,
2491    ) -> ::std::os::raw::c_int {
2492        match self.pointers.CountTrackMediaItems {
2493            None => panic!(format!(
2494                "Attempt to use a REAPER function that has not been loaded: {}",
2495                stringify!(CountTrackMediaItems)
2496            )),
2497            Some(f) => f(track),
2498        }
2499    }
2500    pub unsafe fn CountTracks(&self, proj: *mut root::ReaProject) -> ::std::os::raw::c_int {
2501        match self.pointers.CountTracks {
2502            None => panic!(format!(
2503                "Attempt to use a REAPER function that has not been loaded: {}",
2504                stringify!(CountTracks)
2505            )),
2506            Some(f) => f(proj),
2507        }
2508    }
2509    pub unsafe fn CreateLocalOscHandler(
2510        &self,
2511        obj: *mut ::std::os::raw::c_void,
2512        callback: *mut ::std::os::raw::c_void,
2513    ) -> *mut ::std::os::raw::c_void {
2514        match self.pointers.CreateLocalOscHandler {
2515            None => panic!(format!(
2516                "Attempt to use a REAPER function that has not been loaded: {}",
2517                stringify!(CreateLocalOscHandler)
2518            )),
2519            Some(f) => f(obj, callback),
2520        }
2521    }
2522    pub fn CreateMIDIInput(&self, dev: ::std::os::raw::c_int) -> *mut root::midi_Input {
2523        match self.pointers.CreateMIDIInput {
2524            None => panic!(format!(
2525                "Attempt to use a REAPER function that has not been loaded: {}",
2526                stringify!(CreateMIDIInput)
2527            )),
2528            Some(f) => f(dev),
2529        }
2530    }
2531    pub unsafe fn CreateMIDIOutput(
2532        &self,
2533        dev: ::std::os::raw::c_int,
2534        streamMode: bool,
2535        msoffset100: *mut ::std::os::raw::c_int,
2536    ) -> *mut root::midi_Output {
2537        match self.pointers.CreateMIDIOutput {
2538            None => panic!(format!(
2539                "Attempt to use a REAPER function that has not been loaded: {}",
2540                stringify!(CreateMIDIOutput)
2541            )),
2542            Some(f) => f(dev, streamMode, msoffset100),
2543        }
2544    }
2545    pub unsafe fn CreateNewMIDIItemInProj(
2546        &self,
2547        track: *mut root::MediaTrack,
2548        starttime: f64,
2549        endtime: f64,
2550        qnInOptional: *const bool,
2551    ) -> *mut root::MediaItem {
2552        match self.pointers.CreateNewMIDIItemInProj {
2553            None => panic!(format!(
2554                "Attempt to use a REAPER function that has not been loaded: {}",
2555                stringify!(CreateNewMIDIItemInProj)
2556            )),
2557            Some(f) => f(track, starttime, endtime, qnInOptional),
2558        }
2559    }
2560    pub unsafe fn CreateTakeAudioAccessor(
2561        &self,
2562        take: *mut root::MediaItem_Take,
2563    ) -> *mut root::reaper_functions::AudioAccessor {
2564        match self.pointers.CreateTakeAudioAccessor {
2565            None => panic!(format!(
2566                "Attempt to use a REAPER function that has not been loaded: {}",
2567                stringify!(CreateTakeAudioAccessor)
2568            )),
2569            Some(f) => f(take),
2570        }
2571    }
2572    pub unsafe fn CreateTrackAudioAccessor(
2573        &self,
2574        track: *mut root::MediaTrack,
2575    ) -> *mut root::reaper_functions::AudioAccessor {
2576        match self.pointers.CreateTrackAudioAccessor {
2577            None => panic!(format!(
2578                "Attempt to use a REAPER function that has not been loaded: {}",
2579                stringify!(CreateTrackAudioAccessor)
2580            )),
2581            Some(f) => f(track),
2582        }
2583    }
2584    pub unsafe fn CreateTrackSend(
2585        &self,
2586        tr: *mut root::MediaTrack,
2587        desttrInOptional: *mut root::MediaTrack,
2588    ) -> ::std::os::raw::c_int {
2589        match self.pointers.CreateTrackSend {
2590            None => panic!(format!(
2591                "Attempt to use a REAPER function that has not been loaded: {}",
2592                stringify!(CreateTrackSend)
2593            )),
2594            Some(f) => f(tr, desttrInOptional),
2595        }
2596    }
2597    pub fn CSurf_FlushUndo(&self, force: bool) {
2598        match self.pointers.CSurf_FlushUndo {
2599            None => panic!(format!(
2600                "Attempt to use a REAPER function that has not been loaded: {}",
2601                stringify!(CSurf_FlushUndo)
2602            )),
2603            Some(f) => f(force),
2604        }
2605    }
2606    pub unsafe fn CSurf_GetTouchState(
2607        &self,
2608        trackid: *mut root::MediaTrack,
2609        isPan: ::std::os::raw::c_int,
2610    ) -> bool {
2611        match self.pointers.CSurf_GetTouchState {
2612            None => panic!(format!(
2613                "Attempt to use a REAPER function that has not been loaded: {}",
2614                stringify!(CSurf_GetTouchState)
2615            )),
2616            Some(f) => f(trackid, isPan),
2617        }
2618    }
2619    pub fn CSurf_GoEnd(&self) {
2620        match self.pointers.CSurf_GoEnd {
2621            None => panic!(format!(
2622                "Attempt to use a REAPER function that has not been loaded: {}",
2623                stringify!(CSurf_GoEnd)
2624            )),
2625            Some(f) => f(),
2626        }
2627    }
2628    pub fn CSurf_GoStart(&self) {
2629        match self.pointers.CSurf_GoStart {
2630            None => panic!(format!(
2631                "Attempt to use a REAPER function that has not been loaded: {}",
2632                stringify!(CSurf_GoStart)
2633            )),
2634            Some(f) => f(),
2635        }
2636    }
2637    pub fn CSurf_NumTracks(&self, mcpView: bool) -> ::std::os::raw::c_int {
2638        match self.pointers.CSurf_NumTracks {
2639            None => panic!(format!(
2640                "Attempt to use a REAPER function that has not been loaded: {}",
2641                stringify!(CSurf_NumTracks)
2642            )),
2643            Some(f) => f(mcpView),
2644        }
2645    }
2646    pub fn CSurf_OnArrow(&self, whichdir: ::std::os::raw::c_int, wantzoom: bool) {
2647        match self.pointers.CSurf_OnArrow {
2648            None => panic!(format!(
2649                "Attempt to use a REAPER function that has not been loaded: {}",
2650                stringify!(CSurf_OnArrow)
2651            )),
2652            Some(f) => f(whichdir, wantzoom),
2653        }
2654    }
2655    pub fn CSurf_OnFwd(&self, seekplay: ::std::os::raw::c_int) {
2656        match self.pointers.CSurf_OnFwd {
2657            None => panic!(format!(
2658                "Attempt to use a REAPER function that has not been loaded: {}",
2659                stringify!(CSurf_OnFwd)
2660            )),
2661            Some(f) => f(seekplay),
2662        }
2663    }
2664    pub unsafe fn CSurf_OnFXChange(
2665        &self,
2666        trackid: *mut root::MediaTrack,
2667        en: ::std::os::raw::c_int,
2668    ) -> bool {
2669        match self.pointers.CSurf_OnFXChange {
2670            None => panic!(format!(
2671                "Attempt to use a REAPER function that has not been loaded: {}",
2672                stringify!(CSurf_OnFXChange)
2673            )),
2674            Some(f) => f(trackid, en),
2675        }
2676    }
2677    pub unsafe fn CSurf_OnInputMonitorChange(
2678        &self,
2679        trackid: *mut root::MediaTrack,
2680        monitor: ::std::os::raw::c_int,
2681    ) -> ::std::os::raw::c_int {
2682        match self.pointers.CSurf_OnInputMonitorChange {
2683            None => panic!(format!(
2684                "Attempt to use a REAPER function that has not been loaded: {}",
2685                stringify!(CSurf_OnInputMonitorChange)
2686            )),
2687            Some(f) => f(trackid, monitor),
2688        }
2689    }
2690    pub unsafe fn CSurf_OnInputMonitorChangeEx(
2691        &self,
2692        trackid: *mut root::MediaTrack,
2693        monitor: ::std::os::raw::c_int,
2694        allowgang: bool,
2695    ) -> ::std::os::raw::c_int {
2696        match self.pointers.CSurf_OnInputMonitorChangeEx {
2697            None => panic!(format!(
2698                "Attempt to use a REAPER function that has not been loaded: {}",
2699                stringify!(CSurf_OnInputMonitorChangeEx)
2700            )),
2701            Some(f) => f(trackid, monitor, allowgang),
2702        }
2703    }
2704    pub unsafe fn CSurf_OnMuteChange(
2705        &self,
2706        trackid: *mut root::MediaTrack,
2707        mute: ::std::os::raw::c_int,
2708    ) -> bool {
2709        match self.pointers.CSurf_OnMuteChange {
2710            None => panic!(format!(
2711                "Attempt to use a REAPER function that has not been loaded: {}",
2712                stringify!(CSurf_OnMuteChange)
2713            )),
2714            Some(f) => f(trackid, mute),
2715        }
2716    }
2717    pub unsafe fn CSurf_OnMuteChangeEx(
2718        &self,
2719        trackid: *mut root::MediaTrack,
2720        mute: ::std::os::raw::c_int,
2721        allowgang: bool,
2722    ) -> bool {
2723        match self.pointers.CSurf_OnMuteChangeEx {
2724            None => panic!(format!(
2725                "Attempt to use a REAPER function that has not been loaded: {}",
2726                stringify!(CSurf_OnMuteChangeEx)
2727            )),
2728            Some(f) => f(trackid, mute, allowgang),
2729        }
2730    }
2731    pub unsafe fn CSurf_OnOscControlMessage(
2732        &self,
2733        msg: *const ::std::os::raw::c_char,
2734        arg: *const f32,
2735    ) {
2736        match self.pointers.CSurf_OnOscControlMessage {
2737            None => panic!(format!(
2738                "Attempt to use a REAPER function that has not been loaded: {}",
2739                stringify!(CSurf_OnOscControlMessage)
2740            )),
2741            Some(f) => f(msg, arg),
2742        }
2743    }
2744    pub unsafe fn CSurf_OnPanChange(
2745        &self,
2746        trackid: *mut root::MediaTrack,
2747        pan: f64,
2748        relative: bool,
2749    ) -> f64 {
2750        match self.pointers.CSurf_OnPanChange {
2751            None => panic!(format!(
2752                "Attempt to use a REAPER function that has not been loaded: {}",
2753                stringify!(CSurf_OnPanChange)
2754            )),
2755            Some(f) => f(trackid, pan, relative),
2756        }
2757    }
2758    pub unsafe fn CSurf_OnPanChangeEx(
2759        &self,
2760        trackid: *mut root::MediaTrack,
2761        pan: f64,
2762        relative: bool,
2763        allowGang: bool,
2764    ) -> f64 {
2765        match self.pointers.CSurf_OnPanChangeEx {
2766            None => panic!(format!(
2767                "Attempt to use a REAPER function that has not been loaded: {}",
2768                stringify!(CSurf_OnPanChangeEx)
2769            )),
2770            Some(f) => f(trackid, pan, relative, allowGang),
2771        }
2772    }
2773    pub fn CSurf_OnPause(&self) {
2774        match self.pointers.CSurf_OnPause {
2775            None => panic!(format!(
2776                "Attempt to use a REAPER function that has not been loaded: {}",
2777                stringify!(CSurf_OnPause)
2778            )),
2779            Some(f) => f(),
2780        }
2781    }
2782    pub fn CSurf_OnPlay(&self) {
2783        match self.pointers.CSurf_OnPlay {
2784            None => panic!(format!(
2785                "Attempt to use a REAPER function that has not been loaded: {}",
2786                stringify!(CSurf_OnPlay)
2787            )),
2788            Some(f) => f(),
2789        }
2790    }
2791    pub fn CSurf_OnPlayRateChange(&self, playrate: f64) {
2792        match self.pointers.CSurf_OnPlayRateChange {
2793            None => panic!(format!(
2794                "Attempt to use a REAPER function that has not been loaded: {}",
2795                stringify!(CSurf_OnPlayRateChange)
2796            )),
2797            Some(f) => f(playrate),
2798        }
2799    }
2800    pub unsafe fn CSurf_OnRecArmChange(
2801        &self,
2802        trackid: *mut root::MediaTrack,
2803        recarm: ::std::os::raw::c_int,
2804    ) -> bool {
2805        match self.pointers.CSurf_OnRecArmChange {
2806            None => panic!(format!(
2807                "Attempt to use a REAPER function that has not been loaded: {}",
2808                stringify!(CSurf_OnRecArmChange)
2809            )),
2810            Some(f) => f(trackid, recarm),
2811        }
2812    }
2813    pub unsafe fn CSurf_OnRecArmChangeEx(
2814        &self,
2815        trackid: *mut root::MediaTrack,
2816        recarm: ::std::os::raw::c_int,
2817        allowgang: bool,
2818    ) -> bool {
2819        match self.pointers.CSurf_OnRecArmChangeEx {
2820            None => panic!(format!(
2821                "Attempt to use a REAPER function that has not been loaded: {}",
2822                stringify!(CSurf_OnRecArmChangeEx)
2823            )),
2824            Some(f) => f(trackid, recarm, allowgang),
2825        }
2826    }
2827    pub fn CSurf_OnRecord(&self) {
2828        match self.pointers.CSurf_OnRecord {
2829            None => panic!(format!(
2830                "Attempt to use a REAPER function that has not been loaded: {}",
2831                stringify!(CSurf_OnRecord)
2832            )),
2833            Some(f) => f(),
2834        }
2835    }
2836    pub unsafe fn CSurf_OnRecvPanChange(
2837        &self,
2838        trackid: *mut root::MediaTrack,
2839        recv_index: ::std::os::raw::c_int,
2840        pan: f64,
2841        relative: bool,
2842    ) -> f64 {
2843        match self.pointers.CSurf_OnRecvPanChange {
2844            None => panic!(format!(
2845                "Attempt to use a REAPER function that has not been loaded: {}",
2846                stringify!(CSurf_OnRecvPanChange)
2847            )),
2848            Some(f) => f(trackid, recv_index, pan, relative),
2849        }
2850    }
2851    pub unsafe fn CSurf_OnRecvVolumeChange(
2852        &self,
2853        trackid: *mut root::MediaTrack,
2854        recv_index: ::std::os::raw::c_int,
2855        volume: f64,
2856        relative: bool,
2857    ) -> f64 {
2858        match self.pointers.CSurf_OnRecvVolumeChange {
2859            None => panic!(format!(
2860                "Attempt to use a REAPER function that has not been loaded: {}",
2861                stringify!(CSurf_OnRecvVolumeChange)
2862            )),
2863            Some(f) => f(trackid, recv_index, volume, relative),
2864        }
2865    }
2866    pub fn CSurf_OnRew(&self, seekplay: ::std::os::raw::c_int) {
2867        match self.pointers.CSurf_OnRew {
2868            None => panic!(format!(
2869                "Attempt to use a REAPER function that has not been loaded: {}",
2870                stringify!(CSurf_OnRew)
2871            )),
2872            Some(f) => f(seekplay),
2873        }
2874    }
2875    pub fn CSurf_OnRewFwd(&self, seekplay: ::std::os::raw::c_int, dir: ::std::os::raw::c_int) {
2876        match self.pointers.CSurf_OnRewFwd {
2877            None => panic!(format!(
2878                "Attempt to use a REAPER function that has not been loaded: {}",
2879                stringify!(CSurf_OnRewFwd)
2880            )),
2881            Some(f) => f(seekplay, dir),
2882        }
2883    }
2884    pub fn CSurf_OnScroll(&self, xdir: ::std::os::raw::c_int, ydir: ::std::os::raw::c_int) {
2885        match self.pointers.CSurf_OnScroll {
2886            None => panic!(format!(
2887                "Attempt to use a REAPER function that has not been loaded: {}",
2888                stringify!(CSurf_OnScroll)
2889            )),
2890            Some(f) => f(xdir, ydir),
2891        }
2892    }
2893    pub unsafe fn CSurf_OnSelectedChange(
2894        &self,
2895        trackid: *mut root::MediaTrack,
2896        selected: ::std::os::raw::c_int,
2897    ) -> bool {
2898        match self.pointers.CSurf_OnSelectedChange {
2899            None => panic!(format!(
2900                "Attempt to use a REAPER function that has not been loaded: {}",
2901                stringify!(CSurf_OnSelectedChange)
2902            )),
2903            Some(f) => f(trackid, selected),
2904        }
2905    }
2906    pub unsafe fn CSurf_OnSendPanChange(
2907        &self,
2908        trackid: *mut root::MediaTrack,
2909        send_index: ::std::os::raw::c_int,
2910        pan: f64,
2911        relative: bool,
2912    ) -> f64 {
2913        match self.pointers.CSurf_OnSendPanChange {
2914            None => panic!(format!(
2915                "Attempt to use a REAPER function that has not been loaded: {}",
2916                stringify!(CSurf_OnSendPanChange)
2917            )),
2918            Some(f) => f(trackid, send_index, pan, relative),
2919        }
2920    }
2921    pub unsafe fn CSurf_OnSendVolumeChange(
2922        &self,
2923        trackid: *mut root::MediaTrack,
2924        send_index: ::std::os::raw::c_int,
2925        volume: f64,
2926        relative: bool,
2927    ) -> f64 {
2928        match self.pointers.CSurf_OnSendVolumeChange {
2929            None => panic!(format!(
2930                "Attempt to use a REAPER function that has not been loaded: {}",
2931                stringify!(CSurf_OnSendVolumeChange)
2932            )),
2933            Some(f) => f(trackid, send_index, volume, relative),
2934        }
2935    }
2936    pub unsafe fn CSurf_OnSoloChange(
2937        &self,
2938        trackid: *mut root::MediaTrack,
2939        solo: ::std::os::raw::c_int,
2940    ) -> bool {
2941        match self.pointers.CSurf_OnSoloChange {
2942            None => panic!(format!(
2943                "Attempt to use a REAPER function that has not been loaded: {}",
2944                stringify!(CSurf_OnSoloChange)
2945            )),
2946            Some(f) => f(trackid, solo),
2947        }
2948    }
2949    pub unsafe fn CSurf_OnSoloChangeEx(
2950        &self,
2951        trackid: *mut root::MediaTrack,
2952        solo: ::std::os::raw::c_int,
2953        allowgang: bool,
2954    ) -> bool {
2955        match self.pointers.CSurf_OnSoloChangeEx {
2956            None => panic!(format!(
2957                "Attempt to use a REAPER function that has not been loaded: {}",
2958                stringify!(CSurf_OnSoloChangeEx)
2959            )),
2960            Some(f) => f(trackid, solo, allowgang),
2961        }
2962    }
2963    pub fn CSurf_OnStop(&self) {
2964        match self.pointers.CSurf_OnStop {
2965            None => panic!(format!(
2966                "Attempt to use a REAPER function that has not been loaded: {}",
2967                stringify!(CSurf_OnStop)
2968            )),
2969            Some(f) => f(),
2970        }
2971    }
2972    pub fn CSurf_OnTempoChange(&self, bpm: f64) {
2973        match self.pointers.CSurf_OnTempoChange {
2974            None => panic!(format!(
2975                "Attempt to use a REAPER function that has not been loaded: {}",
2976                stringify!(CSurf_OnTempoChange)
2977            )),
2978            Some(f) => f(bpm),
2979        }
2980    }
2981    pub unsafe fn CSurf_OnTrackSelection(&self, trackid: *mut root::MediaTrack) {
2982        match self.pointers.CSurf_OnTrackSelection {
2983            None => panic!(format!(
2984                "Attempt to use a REAPER function that has not been loaded: {}",
2985                stringify!(CSurf_OnTrackSelection)
2986            )),
2987            Some(f) => f(trackid),
2988        }
2989    }
2990    pub unsafe fn CSurf_OnVolumeChange(
2991        &self,
2992        trackid: *mut root::MediaTrack,
2993        volume: f64,
2994        relative: bool,
2995    ) -> f64 {
2996        match self.pointers.CSurf_OnVolumeChange {
2997            None => panic!(format!(
2998                "Attempt to use a REAPER function that has not been loaded: {}",
2999                stringify!(CSurf_OnVolumeChange)
3000            )),
3001            Some(f) => f(trackid, volume, relative),
3002        }
3003    }
3004    pub unsafe fn CSurf_OnVolumeChangeEx(
3005        &self,
3006        trackid: *mut root::MediaTrack,
3007        volume: f64,
3008        relative: bool,
3009        allowGang: bool,
3010    ) -> f64 {
3011        match self.pointers.CSurf_OnVolumeChangeEx {
3012            None => panic!(format!(
3013                "Attempt to use a REAPER function that has not been loaded: {}",
3014                stringify!(CSurf_OnVolumeChangeEx)
3015            )),
3016            Some(f) => f(trackid, volume, relative, allowGang),
3017        }
3018    }
3019    pub unsafe fn CSurf_OnWidthChange(
3020        &self,
3021        trackid: *mut root::MediaTrack,
3022        width: f64,
3023        relative: bool,
3024    ) -> f64 {
3025        match self.pointers.CSurf_OnWidthChange {
3026            None => panic!(format!(
3027                "Attempt to use a REAPER function that has not been loaded: {}",
3028                stringify!(CSurf_OnWidthChange)
3029            )),
3030            Some(f) => f(trackid, width, relative),
3031        }
3032    }
3033    pub unsafe fn CSurf_OnWidthChangeEx(
3034        &self,
3035        trackid: *mut root::MediaTrack,
3036        width: f64,
3037        relative: bool,
3038        allowGang: bool,
3039    ) -> f64 {
3040        match self.pointers.CSurf_OnWidthChangeEx {
3041            None => panic!(format!(
3042                "Attempt to use a REAPER function that has not been loaded: {}",
3043                stringify!(CSurf_OnWidthChangeEx)
3044            )),
3045            Some(f) => f(trackid, width, relative, allowGang),
3046        }
3047    }
3048    pub fn CSurf_OnZoom(&self, xdir: ::std::os::raw::c_int, ydir: ::std::os::raw::c_int) {
3049        match self.pointers.CSurf_OnZoom {
3050            None => panic!(format!(
3051                "Attempt to use a REAPER function that has not been loaded: {}",
3052                stringify!(CSurf_OnZoom)
3053            )),
3054            Some(f) => f(xdir, ydir),
3055        }
3056    }
3057    pub fn CSurf_ResetAllCachedVolPanStates(&self) {
3058        match self.pointers.CSurf_ResetAllCachedVolPanStates {
3059            None => panic!(format!(
3060                "Attempt to use a REAPER function that has not been loaded: {}",
3061                stringify!(CSurf_ResetAllCachedVolPanStates)
3062            )),
3063            Some(f) => f(),
3064        }
3065    }
3066    pub fn CSurf_ScrubAmt(&self, amt: f64) {
3067        match self.pointers.CSurf_ScrubAmt {
3068            None => panic!(format!(
3069                "Attempt to use a REAPER function that has not been loaded: {}",
3070                stringify!(CSurf_ScrubAmt)
3071            )),
3072            Some(f) => f(amt),
3073        }
3074    }
3075    pub unsafe fn CSurf_SetAutoMode(
3076        &self,
3077        mode: ::std::os::raw::c_int,
3078        ignoresurf: *mut root::IReaperControlSurface,
3079    ) {
3080        match self.pointers.CSurf_SetAutoMode {
3081            None => panic!(format!(
3082                "Attempt to use a REAPER function that has not been loaded: {}",
3083                stringify!(CSurf_SetAutoMode)
3084            )),
3085            Some(f) => f(mode, ignoresurf),
3086        }
3087    }
3088    pub unsafe fn CSurf_SetPlayState(
3089        &self,
3090        play: bool,
3091        pause: bool,
3092        rec: bool,
3093        ignoresurf: *mut root::IReaperControlSurface,
3094    ) {
3095        match self.pointers.CSurf_SetPlayState {
3096            None => panic!(format!(
3097                "Attempt to use a REAPER function that has not been loaded: {}",
3098                stringify!(CSurf_SetPlayState)
3099            )),
3100            Some(f) => f(play, pause, rec, ignoresurf),
3101        }
3102    }
3103    pub unsafe fn CSurf_SetRepeatState(
3104        &self,
3105        rep: bool,
3106        ignoresurf: *mut root::IReaperControlSurface,
3107    ) {
3108        match self.pointers.CSurf_SetRepeatState {
3109            None => panic!(format!(
3110                "Attempt to use a REAPER function that has not been loaded: {}",
3111                stringify!(CSurf_SetRepeatState)
3112            )),
3113            Some(f) => f(rep, ignoresurf),
3114        }
3115    }
3116    pub unsafe fn CSurf_SetSurfaceMute(
3117        &self,
3118        trackid: *mut root::MediaTrack,
3119        mute: bool,
3120        ignoresurf: *mut root::IReaperControlSurface,
3121    ) {
3122        match self.pointers.CSurf_SetSurfaceMute {
3123            None => panic!(format!(
3124                "Attempt to use a REAPER function that has not been loaded: {}",
3125                stringify!(CSurf_SetSurfaceMute)
3126            )),
3127            Some(f) => f(trackid, mute, ignoresurf),
3128        }
3129    }
3130    pub unsafe fn CSurf_SetSurfacePan(
3131        &self,
3132        trackid: *mut root::MediaTrack,
3133        pan: f64,
3134        ignoresurf: *mut root::IReaperControlSurface,
3135    ) {
3136        match self.pointers.CSurf_SetSurfacePan {
3137            None => panic!(format!(
3138                "Attempt to use a REAPER function that has not been loaded: {}",
3139                stringify!(CSurf_SetSurfacePan)
3140            )),
3141            Some(f) => f(trackid, pan, ignoresurf),
3142        }
3143    }
3144    pub unsafe fn CSurf_SetSurfaceRecArm(
3145        &self,
3146        trackid: *mut root::MediaTrack,
3147        recarm: bool,
3148        ignoresurf: *mut root::IReaperControlSurface,
3149    ) {
3150        match self.pointers.CSurf_SetSurfaceRecArm {
3151            None => panic!(format!(
3152                "Attempt to use a REAPER function that has not been loaded: {}",
3153                stringify!(CSurf_SetSurfaceRecArm)
3154            )),
3155            Some(f) => f(trackid, recarm, ignoresurf),
3156        }
3157    }
3158    pub unsafe fn CSurf_SetSurfaceSelected(
3159        &self,
3160        trackid: *mut root::MediaTrack,
3161        selected: bool,
3162        ignoresurf: *mut root::IReaperControlSurface,
3163    ) {
3164        match self.pointers.CSurf_SetSurfaceSelected {
3165            None => panic!(format!(
3166                "Attempt to use a REAPER function that has not been loaded: {}",
3167                stringify!(CSurf_SetSurfaceSelected)
3168            )),
3169            Some(f) => f(trackid, selected, ignoresurf),
3170        }
3171    }
3172    pub unsafe fn CSurf_SetSurfaceSolo(
3173        &self,
3174        trackid: *mut root::MediaTrack,
3175        solo: bool,
3176        ignoresurf: *mut root::IReaperControlSurface,
3177    ) {
3178        match self.pointers.CSurf_SetSurfaceSolo {
3179            None => panic!(format!(
3180                "Attempt to use a REAPER function that has not been loaded: {}",
3181                stringify!(CSurf_SetSurfaceSolo)
3182            )),
3183            Some(f) => f(trackid, solo, ignoresurf),
3184        }
3185    }
3186    pub unsafe fn CSurf_SetSurfaceVolume(
3187        &self,
3188        trackid: *mut root::MediaTrack,
3189        volume: f64,
3190        ignoresurf: *mut root::IReaperControlSurface,
3191    ) {
3192        match self.pointers.CSurf_SetSurfaceVolume {
3193            None => panic!(format!(
3194                "Attempt to use a REAPER function that has not been loaded: {}",
3195                stringify!(CSurf_SetSurfaceVolume)
3196            )),
3197            Some(f) => f(trackid, volume, ignoresurf),
3198        }
3199    }
3200    pub fn CSurf_SetTrackListChange(&self) {
3201        match self.pointers.CSurf_SetTrackListChange {
3202            None => panic!(format!(
3203                "Attempt to use a REAPER function that has not been loaded: {}",
3204                stringify!(CSurf_SetTrackListChange)
3205            )),
3206            Some(f) => f(),
3207        }
3208    }
3209    pub fn CSurf_TrackFromID(
3210        &self,
3211        idx: ::std::os::raw::c_int,
3212        mcpView: bool,
3213    ) -> *mut root::MediaTrack {
3214        match self.pointers.CSurf_TrackFromID {
3215            None => panic!(format!(
3216                "Attempt to use a REAPER function that has not been loaded: {}",
3217                stringify!(CSurf_TrackFromID)
3218            )),
3219            Some(f) => f(idx, mcpView),
3220        }
3221    }
3222    pub unsafe fn CSurf_TrackToID(
3223        &self,
3224        track: *mut root::MediaTrack,
3225        mcpView: bool,
3226    ) -> ::std::os::raw::c_int {
3227        match self.pointers.CSurf_TrackToID {
3228            None => panic!(format!(
3229                "Attempt to use a REAPER function that has not been loaded: {}",
3230                stringify!(CSurf_TrackToID)
3231            )),
3232            Some(f) => f(track, mcpView),
3233        }
3234    }
3235    pub fn DB2SLIDER(&self, x: f64) -> f64 {
3236        match self.pointers.DB2SLIDER {
3237            None => panic!(format!(
3238                "Attempt to use a REAPER function that has not been loaded: {}",
3239                stringify!(DB2SLIDER)
3240            )),
3241            Some(f) => f(x),
3242        }
3243    }
3244    pub unsafe fn DeleteActionShortcut(
3245        &self,
3246        section: *mut root::KbdSectionInfo,
3247        cmdID: ::std::os::raw::c_int,
3248        shortcutidx: ::std::os::raw::c_int,
3249    ) -> bool {
3250        match self.pointers.DeleteActionShortcut {
3251            None => panic!(format!(
3252                "Attempt to use a REAPER function that has not been loaded: {}",
3253                stringify!(DeleteActionShortcut)
3254            )),
3255            Some(f) => f(section, cmdID, shortcutidx),
3256        }
3257    }
3258    pub unsafe fn DeleteEnvelopePointEx(
3259        &self,
3260        envelope: *mut root::TrackEnvelope,
3261        autoitem_idx: ::std::os::raw::c_int,
3262        ptidx: ::std::os::raw::c_int,
3263    ) -> bool {
3264        match self.pointers.DeleteEnvelopePointEx {
3265            None => panic!(format!(
3266                "Attempt to use a REAPER function that has not been loaded: {}",
3267                stringify!(DeleteEnvelopePointEx)
3268            )),
3269            Some(f) => f(envelope, autoitem_idx, ptidx),
3270        }
3271    }
3272    pub unsafe fn DeleteEnvelopePointRange(
3273        &self,
3274        envelope: *mut root::TrackEnvelope,
3275        time_start: f64,
3276        time_end: f64,
3277    ) -> bool {
3278        match self.pointers.DeleteEnvelopePointRange {
3279            None => panic!(format!(
3280                "Attempt to use a REAPER function that has not been loaded: {}",
3281                stringify!(DeleteEnvelopePointRange)
3282            )),
3283            Some(f) => f(envelope, time_start, time_end),
3284        }
3285    }
3286    pub unsafe fn DeleteEnvelopePointRangeEx(
3287        &self,
3288        envelope: *mut root::TrackEnvelope,
3289        autoitem_idx: ::std::os::raw::c_int,
3290        time_start: f64,
3291        time_end: f64,
3292    ) -> bool {
3293        match self.pointers.DeleteEnvelopePointRangeEx {
3294            None => panic!(format!(
3295                "Attempt to use a REAPER function that has not been loaded: {}",
3296                stringify!(DeleteEnvelopePointRangeEx)
3297            )),
3298            Some(f) => f(envelope, autoitem_idx, time_start, time_end),
3299        }
3300    }
3301    pub unsafe fn DeleteExtState(
3302        &self,
3303        section: *const ::std::os::raw::c_char,
3304        key: *const ::std::os::raw::c_char,
3305        persist: bool,
3306    ) {
3307        match self.pointers.DeleteExtState {
3308            None => panic!(format!(
3309                "Attempt to use a REAPER function that has not been loaded: {}",
3310                stringify!(DeleteExtState)
3311            )),
3312            Some(f) => f(section, key, persist),
3313        }
3314    }
3315    pub unsafe fn DeleteProjectMarker(
3316        &self,
3317        proj: *mut root::ReaProject,
3318        markrgnindexnumber: ::std::os::raw::c_int,
3319        isrgn: bool,
3320    ) -> bool {
3321        match self.pointers.DeleteProjectMarker {
3322            None => panic!(format!(
3323                "Attempt to use a REAPER function that has not been loaded: {}",
3324                stringify!(DeleteProjectMarker)
3325            )),
3326            Some(f) => f(proj, markrgnindexnumber, isrgn),
3327        }
3328    }
3329    pub unsafe fn DeleteProjectMarkerByIndex(
3330        &self,
3331        proj: *mut root::ReaProject,
3332        markrgnidx: ::std::os::raw::c_int,
3333    ) -> bool {
3334        match self.pointers.DeleteProjectMarkerByIndex {
3335            None => panic!(format!(
3336                "Attempt to use a REAPER function that has not been loaded: {}",
3337                stringify!(DeleteProjectMarkerByIndex)
3338            )),
3339            Some(f) => f(proj, markrgnidx),
3340        }
3341    }
3342    pub unsafe fn DeleteTakeStretchMarkers(
3343        &self,
3344        take: *mut root::MediaItem_Take,
3345        idx: ::std::os::raw::c_int,
3346        countInOptional: *const ::std::os::raw::c_int,
3347    ) -> ::std::os::raw::c_int {
3348        match self.pointers.DeleteTakeStretchMarkers {
3349            None => panic!(format!(
3350                "Attempt to use a REAPER function that has not been loaded: {}",
3351                stringify!(DeleteTakeStretchMarkers)
3352            )),
3353            Some(f) => f(take, idx, countInOptional),
3354        }
3355    }
3356    pub unsafe fn DeleteTempoTimeSigMarker(
3357        &self,
3358        project: *mut root::ReaProject,
3359        markerindex: ::std::os::raw::c_int,
3360    ) -> bool {
3361        match self.pointers.DeleteTempoTimeSigMarker {
3362            None => panic!(format!(
3363                "Attempt to use a REAPER function that has not been loaded: {}",
3364                stringify!(DeleteTempoTimeSigMarker)
3365            )),
3366            Some(f) => f(project, markerindex),
3367        }
3368    }
3369    pub unsafe fn DeleteTrack(&self, tr: *mut root::MediaTrack) {
3370        match self.pointers.DeleteTrack {
3371            None => panic!(format!(
3372                "Attempt to use a REAPER function that has not been loaded: {}",
3373                stringify!(DeleteTrack)
3374            )),
3375            Some(f) => f(tr),
3376        }
3377    }
3378    pub unsafe fn DeleteTrackMediaItem(
3379        &self,
3380        tr: *mut root::MediaTrack,
3381        it: *mut root::MediaItem,
3382    ) -> bool {
3383        match self.pointers.DeleteTrackMediaItem {
3384            None => panic!(format!(
3385                "Attempt to use a REAPER function that has not been loaded: {}",
3386                stringify!(DeleteTrackMediaItem)
3387            )),
3388            Some(f) => f(tr, it),
3389        }
3390    }
3391    pub unsafe fn DestroyAudioAccessor(
3392        &self,
3393        accessor: *mut root::reaper_functions::AudioAccessor,
3394    ) {
3395        match self.pointers.DestroyAudioAccessor {
3396            None => panic!(format!(
3397                "Attempt to use a REAPER function that has not been loaded: {}",
3398                stringify!(DestroyAudioAccessor)
3399            )),
3400            Some(f) => f(accessor),
3401        }
3402    }
3403    pub unsafe fn DestroyLocalOscHandler(&self, local_osc_handler: *mut ::std::os::raw::c_void) {
3404        match self.pointers.DestroyLocalOscHandler {
3405            None => panic!(format!(
3406                "Attempt to use a REAPER function that has not been loaded: {}",
3407                stringify!(DestroyLocalOscHandler)
3408            )),
3409            Some(f) => f(local_osc_handler),
3410        }
3411    }
3412    pub unsafe fn DoActionShortcutDialog(
3413        &self,
3414        hwnd: root::HWND,
3415        section: *mut root::KbdSectionInfo,
3416        cmdID: ::std::os::raw::c_int,
3417        shortcutidx: ::std::os::raw::c_int,
3418    ) -> bool {
3419        match self.pointers.DoActionShortcutDialog {
3420            None => panic!(format!(
3421                "Attempt to use a REAPER function that has not been loaded: {}",
3422                stringify!(DoActionShortcutDialog)
3423            )),
3424            Some(f) => f(hwnd, section, cmdID, shortcutidx),
3425        }
3426    }
3427    pub unsafe fn Dock_UpdateDockID(
3428        &self,
3429        ident_str: *const ::std::os::raw::c_char,
3430        whichDock: ::std::os::raw::c_int,
3431    ) {
3432        match self.pointers.Dock_UpdateDockID {
3433            None => panic!(format!(
3434                "Attempt to use a REAPER function that has not been loaded: {}",
3435                stringify!(Dock_UpdateDockID)
3436            )),
3437            Some(f) => f(ident_str, whichDock),
3438        }
3439    }
3440    pub fn DockGetPosition(&self, whichDock: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
3441        match self.pointers.DockGetPosition {
3442            None => panic!(format!(
3443                "Attempt to use a REAPER function that has not been loaded: {}",
3444                stringify!(DockGetPosition)
3445            )),
3446            Some(f) => f(whichDock),
3447        }
3448    }
3449    pub unsafe fn DockIsChildOfDock(
3450        &self,
3451        hwnd: root::HWND,
3452        isFloatingDockerOut: *mut bool,
3453    ) -> ::std::os::raw::c_int {
3454        match self.pointers.DockIsChildOfDock {
3455            None => panic!(format!(
3456                "Attempt to use a REAPER function that has not been loaded: {}",
3457                stringify!(DockIsChildOfDock)
3458            )),
3459            Some(f) => f(hwnd, isFloatingDockerOut),
3460        }
3461    }
3462    pub fn DockWindowActivate(&self, hwnd: root::HWND) {
3463        match self.pointers.DockWindowActivate {
3464            None => panic!(format!(
3465                "Attempt to use a REAPER function that has not been loaded: {}",
3466                stringify!(DockWindowActivate)
3467            )),
3468            Some(f) => f(hwnd),
3469        }
3470    }
3471    pub unsafe fn DockWindowAdd(
3472        &self,
3473        hwnd: root::HWND,
3474        name: *const ::std::os::raw::c_char,
3475        pos: ::std::os::raw::c_int,
3476        allowShow: bool,
3477    ) {
3478        match self.pointers.DockWindowAdd {
3479            None => panic!(format!(
3480                "Attempt to use a REAPER function that has not been loaded: {}",
3481                stringify!(DockWindowAdd)
3482            )),
3483            Some(f) => f(hwnd, name, pos, allowShow),
3484        }
3485    }
3486    pub unsafe fn DockWindowAddEx(
3487        &self,
3488        hwnd: root::HWND,
3489        name: *const ::std::os::raw::c_char,
3490        identstr: *const ::std::os::raw::c_char,
3491        allowShow: bool,
3492    ) {
3493        match self.pointers.DockWindowAddEx {
3494            None => panic!(format!(
3495                "Attempt to use a REAPER function that has not been loaded: {}",
3496                stringify!(DockWindowAddEx)
3497            )),
3498            Some(f) => f(hwnd, name, identstr, allowShow),
3499        }
3500    }
3501    pub fn DockWindowRefresh(&self) {
3502        match self.pointers.DockWindowRefresh {
3503            None => panic!(format!(
3504                "Attempt to use a REAPER function that has not been loaded: {}",
3505                stringify!(DockWindowRefresh)
3506            )),
3507            Some(f) => f(),
3508        }
3509    }
3510    pub fn DockWindowRefreshForHWND(&self, hwnd: root::HWND) {
3511        match self.pointers.DockWindowRefreshForHWND {
3512            None => panic!(format!(
3513                "Attempt to use a REAPER function that has not been loaded: {}",
3514                stringify!(DockWindowRefreshForHWND)
3515            )),
3516            Some(f) => f(hwnd),
3517        }
3518    }
3519    pub fn DockWindowRemove(&self, hwnd: root::HWND) {
3520        match self.pointers.DockWindowRemove {
3521            None => panic!(format!(
3522                "Attempt to use a REAPER function that has not been loaded: {}",
3523                stringify!(DockWindowRemove)
3524            )),
3525            Some(f) => f(hwnd),
3526        }
3527    }
3528    pub unsafe fn DuplicateCustomizableMenu(
3529        &self,
3530        srcmenu: *mut ::std::os::raw::c_void,
3531        destmenu: *mut ::std::os::raw::c_void,
3532    ) -> bool {
3533        match self.pointers.DuplicateCustomizableMenu {
3534            None => panic!(format!(
3535                "Attempt to use a REAPER function that has not been loaded: {}",
3536                stringify!(DuplicateCustomizableMenu)
3537            )),
3538            Some(f) => f(srcmenu, destmenu),
3539        }
3540    }
3541    pub unsafe fn EditTempoTimeSigMarker(
3542        &self,
3543        project: *mut root::ReaProject,
3544        markerindex: ::std::os::raw::c_int,
3545    ) -> bool {
3546        match self.pointers.EditTempoTimeSigMarker {
3547            None => panic!(format!(
3548                "Attempt to use a REAPER function that has not been loaded: {}",
3549                stringify!(EditTempoTimeSigMarker)
3550            )),
3551            Some(f) => f(project, markerindex),
3552        }
3553    }
3554    pub unsafe fn EnsureNotCompletelyOffscreen(&self, rInOut: *mut root::RECT) {
3555        match self.pointers.EnsureNotCompletelyOffscreen {
3556            None => panic!(format!(
3557                "Attempt to use a REAPER function that has not been loaded: {}",
3558                stringify!(EnsureNotCompletelyOffscreen)
3559            )),
3560            Some(f) => f(rInOut),
3561        }
3562    }
3563    pub unsafe fn EnumerateFiles(
3564        &self,
3565        path: *const ::std::os::raw::c_char,
3566        fileindex: ::std::os::raw::c_int,
3567    ) -> *const ::std::os::raw::c_char {
3568        match self.pointers.EnumerateFiles {
3569            None => panic!(format!(
3570                "Attempt to use a REAPER function that has not been loaded: {}",
3571                stringify!(EnumerateFiles)
3572            )),
3573            Some(f) => f(path, fileindex),
3574        }
3575    }
3576    pub unsafe fn EnumerateSubdirectories(
3577        &self,
3578        path: *const ::std::os::raw::c_char,
3579        subdirindex: ::std::os::raw::c_int,
3580    ) -> *const ::std::os::raw::c_char {
3581        match self.pointers.EnumerateSubdirectories {
3582            None => panic!(format!(
3583                "Attempt to use a REAPER function that has not been loaded: {}",
3584                stringify!(EnumerateSubdirectories)
3585            )),
3586            Some(f) => f(path, subdirindex),
3587        }
3588    }
3589    pub unsafe fn EnumPitchShiftModes(
3590        &self,
3591        mode: ::std::os::raw::c_int,
3592        strOut: *mut *const ::std::os::raw::c_char,
3593    ) -> bool {
3594        match self.pointers.EnumPitchShiftModes {
3595            None => panic!(format!(
3596                "Attempt to use a REAPER function that has not been loaded: {}",
3597                stringify!(EnumPitchShiftModes)
3598            )),
3599            Some(f) => f(mode, strOut),
3600        }
3601    }
3602    pub fn EnumPitchShiftSubModes(
3603        &self,
3604        mode: ::std::os::raw::c_int,
3605        submode: ::std::os::raw::c_int,
3606    ) -> *const ::std::os::raw::c_char {
3607        match self.pointers.EnumPitchShiftSubModes {
3608            None => panic!(format!(
3609                "Attempt to use a REAPER function that has not been loaded: {}",
3610                stringify!(EnumPitchShiftSubModes)
3611            )),
3612            Some(f) => f(mode, submode),
3613        }
3614    }
3615    pub unsafe fn EnumProjectMarkers(
3616        &self,
3617        idx: ::std::os::raw::c_int,
3618        isrgnOut: *mut bool,
3619        posOut: *mut f64,
3620        rgnendOut: *mut f64,
3621        nameOut: *mut *const ::std::os::raw::c_char,
3622        markrgnindexnumberOut: *mut ::std::os::raw::c_int,
3623    ) -> ::std::os::raw::c_int {
3624        match self.pointers.EnumProjectMarkers {
3625            None => panic!(format!(
3626                "Attempt to use a REAPER function that has not been loaded: {}",
3627                stringify!(EnumProjectMarkers)
3628            )),
3629            Some(f) => f(
3630                idx,
3631                isrgnOut,
3632                posOut,
3633                rgnendOut,
3634                nameOut,
3635                markrgnindexnumberOut,
3636            ),
3637        }
3638    }
3639    pub unsafe fn EnumProjectMarkers2(
3640        &self,
3641        proj: *mut root::ReaProject,
3642        idx: ::std::os::raw::c_int,
3643        isrgnOut: *mut bool,
3644        posOut: *mut f64,
3645        rgnendOut: *mut f64,
3646        nameOut: *mut *const ::std::os::raw::c_char,
3647        markrgnindexnumberOut: *mut ::std::os::raw::c_int,
3648    ) -> ::std::os::raw::c_int {
3649        match self.pointers.EnumProjectMarkers2 {
3650            None => panic!(format!(
3651                "Attempt to use a REAPER function that has not been loaded: {}",
3652                stringify!(EnumProjectMarkers2)
3653            )),
3654            Some(f) => f(
3655                proj,
3656                idx,
3657                isrgnOut,
3658                posOut,
3659                rgnendOut,
3660                nameOut,
3661                markrgnindexnumberOut,
3662            ),
3663        }
3664    }
3665    pub unsafe fn EnumProjectMarkers3(
3666        &self,
3667        proj: *mut root::ReaProject,
3668        idx: ::std::os::raw::c_int,
3669        isrgnOut: *mut bool,
3670        posOut: *mut f64,
3671        rgnendOut: *mut f64,
3672        nameOut: *mut *const ::std::os::raw::c_char,
3673        markrgnindexnumberOut: *mut ::std::os::raw::c_int,
3674        colorOut: *mut ::std::os::raw::c_int,
3675    ) -> ::std::os::raw::c_int {
3676        match self.pointers.EnumProjectMarkers3 {
3677            None => panic!(format!(
3678                "Attempt to use a REAPER function that has not been loaded: {}",
3679                stringify!(EnumProjectMarkers3)
3680            )),
3681            Some(f) => f(
3682                proj,
3683                idx,
3684                isrgnOut,
3685                posOut,
3686                rgnendOut,
3687                nameOut,
3688                markrgnindexnumberOut,
3689                colorOut,
3690            ),
3691        }
3692    }
3693    pub unsafe fn EnumProjects(
3694        &self,
3695        idx: ::std::os::raw::c_int,
3696        projfnOutOptional: *mut ::std::os::raw::c_char,
3697        projfnOutOptional_sz: ::std::os::raw::c_int,
3698    ) -> *mut root::ReaProject {
3699        match self.pointers.EnumProjects {
3700            None => panic!(format!(
3701                "Attempt to use a REAPER function that has not been loaded: {}",
3702                stringify!(EnumProjects)
3703            )),
3704            Some(f) => f(idx, projfnOutOptional, projfnOutOptional_sz),
3705        }
3706    }
3707    pub unsafe fn EnumProjExtState(
3708        &self,
3709        proj: *mut root::ReaProject,
3710        extname: *const ::std::os::raw::c_char,
3711        idx: ::std::os::raw::c_int,
3712        keyOutOptional: *mut ::std::os::raw::c_char,
3713        keyOutOptional_sz: ::std::os::raw::c_int,
3714        valOutOptional: *mut ::std::os::raw::c_char,
3715        valOutOptional_sz: ::std::os::raw::c_int,
3716    ) -> bool {
3717        match self.pointers.EnumProjExtState {
3718            None => panic!(format!(
3719                "Attempt to use a REAPER function that has not been loaded: {}",
3720                stringify!(EnumProjExtState)
3721            )),
3722            Some(f) => f(
3723                proj,
3724                extname,
3725                idx,
3726                keyOutOptional,
3727                keyOutOptional_sz,
3728                valOutOptional,
3729                valOutOptional_sz,
3730            ),
3731        }
3732    }
3733    pub unsafe fn EnumRegionRenderMatrix(
3734        &self,
3735        proj: *mut root::ReaProject,
3736        regionindex: ::std::os::raw::c_int,
3737        rendertrack: ::std::os::raw::c_int,
3738    ) -> *mut root::MediaTrack {
3739        match self.pointers.EnumRegionRenderMatrix {
3740            None => panic!(format!(
3741                "Attempt to use a REAPER function that has not been loaded: {}",
3742                stringify!(EnumRegionRenderMatrix)
3743            )),
3744            Some(f) => f(proj, regionindex, rendertrack),
3745        }
3746    }
3747    pub unsafe fn EnumTrackMIDIProgramNames(
3748        &self,
3749        track: ::std::os::raw::c_int,
3750        programNumber: ::std::os::raw::c_int,
3751        programName: *mut ::std::os::raw::c_char,
3752        programName_sz: ::std::os::raw::c_int,
3753    ) -> bool {
3754        match self.pointers.EnumTrackMIDIProgramNames {
3755            None => panic!(format!(
3756                "Attempt to use a REAPER function that has not been loaded: {}",
3757                stringify!(EnumTrackMIDIProgramNames)
3758            )),
3759            Some(f) => f(track, programNumber, programName, programName_sz),
3760        }
3761    }
3762    pub unsafe fn EnumTrackMIDIProgramNamesEx(
3763        &self,
3764        proj: *mut root::ReaProject,
3765        track: *mut root::MediaTrack,
3766        programNumber: ::std::os::raw::c_int,
3767        programName: *mut ::std::os::raw::c_char,
3768        programName_sz: ::std::os::raw::c_int,
3769    ) -> bool {
3770        match self.pointers.EnumTrackMIDIProgramNamesEx {
3771            None => panic!(format!(
3772                "Attempt to use a REAPER function that has not been loaded: {}",
3773                stringify!(EnumTrackMIDIProgramNamesEx)
3774            )),
3775            Some(f) => f(proj, track, programNumber, programName, programName_sz),
3776        }
3777    }
3778    pub unsafe fn Envelope_Evaluate(
3779        &self,
3780        envelope: *mut root::TrackEnvelope,
3781        time: f64,
3782        samplerate: f64,
3783        samplesRequested: ::std::os::raw::c_int,
3784        valueOutOptional: *mut f64,
3785        dVdSOutOptional: *mut f64,
3786        ddVdSOutOptional: *mut f64,
3787        dddVdSOutOptional: *mut f64,
3788    ) -> ::std::os::raw::c_int {
3789        match self.pointers.Envelope_Evaluate {
3790            None => panic!(format!(
3791                "Attempt to use a REAPER function that has not been loaded: {}",
3792                stringify!(Envelope_Evaluate)
3793            )),
3794            Some(f) => f(
3795                envelope,
3796                time,
3797                samplerate,
3798                samplesRequested,
3799                valueOutOptional,
3800                dVdSOutOptional,
3801                ddVdSOutOptional,
3802                dddVdSOutOptional,
3803            ),
3804        }
3805    }
3806    pub unsafe fn Envelope_FormatValue(
3807        &self,
3808        env: *mut root::TrackEnvelope,
3809        value: f64,
3810        bufOut: *mut ::std::os::raw::c_char,
3811        bufOut_sz: ::std::os::raw::c_int,
3812    ) {
3813        match self.pointers.Envelope_FormatValue {
3814            None => panic!(format!(
3815                "Attempt to use a REAPER function that has not been loaded: {}",
3816                stringify!(Envelope_FormatValue)
3817            )),
3818            Some(f) => f(env, value, bufOut, bufOut_sz),
3819        }
3820    }
3821    pub unsafe fn Envelope_GetParentTake(
3822        &self,
3823        env: *mut root::TrackEnvelope,
3824        indexOutOptional: *mut ::std::os::raw::c_int,
3825        index2OutOptional: *mut ::std::os::raw::c_int,
3826    ) -> *mut root::MediaItem_Take {
3827        match self.pointers.Envelope_GetParentTake {
3828            None => panic!(format!(
3829                "Attempt to use a REAPER function that has not been loaded: {}",
3830                stringify!(Envelope_GetParentTake)
3831            )),
3832            Some(f) => f(env, indexOutOptional, index2OutOptional),
3833        }
3834    }
3835    pub unsafe fn Envelope_GetParentTrack(
3836        &self,
3837        env: *mut root::TrackEnvelope,
3838        indexOutOptional: *mut ::std::os::raw::c_int,
3839        index2OutOptional: *mut ::std::os::raw::c_int,
3840    ) -> *mut root::MediaTrack {
3841        match self.pointers.Envelope_GetParentTrack {
3842            None => panic!(format!(
3843                "Attempt to use a REAPER function that has not been loaded: {}",
3844                stringify!(Envelope_GetParentTrack)
3845            )),
3846            Some(f) => f(env, indexOutOptional, index2OutOptional),
3847        }
3848    }
3849    pub unsafe fn Envelope_SortPoints(&self, envelope: *mut root::TrackEnvelope) -> bool {
3850        match self.pointers.Envelope_SortPoints {
3851            None => panic!(format!(
3852                "Attempt to use a REAPER function that has not been loaded: {}",
3853                stringify!(Envelope_SortPoints)
3854            )),
3855            Some(f) => f(envelope),
3856        }
3857    }
3858    pub unsafe fn Envelope_SortPointsEx(
3859        &self,
3860        envelope: *mut root::TrackEnvelope,
3861        autoitem_idx: ::std::os::raw::c_int,
3862    ) -> bool {
3863        match self.pointers.Envelope_SortPointsEx {
3864            None => panic!(format!(
3865                "Attempt to use a REAPER function that has not been loaded: {}",
3866                stringify!(Envelope_SortPointsEx)
3867            )),
3868            Some(f) => f(envelope, autoitem_idx),
3869        }
3870    }
3871    pub unsafe fn ExecProcess(
3872        &self,
3873        cmdline: *const ::std::os::raw::c_char,
3874        timeoutmsec: ::std::os::raw::c_int,
3875    ) -> *const ::std::os::raw::c_char {
3876        match self.pointers.ExecProcess {
3877            None => panic!(format!(
3878                "Attempt to use a REAPER function that has not been loaded: {}",
3879                stringify!(ExecProcess)
3880            )),
3881            Some(f) => f(cmdline, timeoutmsec),
3882        }
3883    }
3884    pub unsafe fn file_exists(&self, path: *const ::std::os::raw::c_char) -> bool {
3885        match self.pointers.file_exists {
3886            None => panic!(format!(
3887                "Attempt to use a REAPER function that has not been loaded: {}",
3888                stringify!(file_exists)
3889            )),
3890            Some(f) => f(path),
3891        }
3892    }
3893    pub unsafe fn FindTempoTimeSigMarker(
3894        &self,
3895        project: *mut root::ReaProject,
3896        time: f64,
3897    ) -> ::std::os::raw::c_int {
3898        match self.pointers.FindTempoTimeSigMarker {
3899            None => panic!(format!(
3900                "Attempt to use a REAPER function that has not been loaded: {}",
3901                stringify!(FindTempoTimeSigMarker)
3902            )),
3903            Some(f) => f(project, time),
3904        }
3905    }
3906    pub unsafe fn format_timestr(
3907        &self,
3908        tpos: f64,
3909        buf: *mut ::std::os::raw::c_char,
3910        buf_sz: ::std::os::raw::c_int,
3911    ) {
3912        match self.pointers.format_timestr {
3913            None => panic!(format!(
3914                "Attempt to use a REAPER function that has not been loaded: {}",
3915                stringify!(format_timestr)
3916            )),
3917            Some(f) => f(tpos, buf, buf_sz),
3918        }
3919    }
3920    pub unsafe fn format_timestr_len(
3921        &self,
3922        tpos: f64,
3923        buf: *mut ::std::os::raw::c_char,
3924        buf_sz: ::std::os::raw::c_int,
3925        offset: f64,
3926        modeoverride: ::std::os::raw::c_int,
3927    ) {
3928        match self.pointers.format_timestr_len {
3929            None => panic!(format!(
3930                "Attempt to use a REAPER function that has not been loaded: {}",
3931                stringify!(format_timestr_len)
3932            )),
3933            Some(f) => f(tpos, buf, buf_sz, offset, modeoverride),
3934        }
3935    }
3936    pub unsafe fn format_timestr_pos(
3937        &self,
3938        tpos: f64,
3939        buf: *mut ::std::os::raw::c_char,
3940        buf_sz: ::std::os::raw::c_int,
3941        modeoverride: ::std::os::raw::c_int,
3942    ) {
3943        match self.pointers.format_timestr_pos {
3944            None => panic!(format!(
3945                "Attempt to use a REAPER function that has not been loaded: {}",
3946                stringify!(format_timestr_pos)
3947            )),
3948            Some(f) => f(tpos, buf, buf_sz, modeoverride),
3949        }
3950    }
3951    pub unsafe fn FreeHeapPtr(&self, ptr: *mut ::std::os::raw::c_void) {
3952        match self.pointers.FreeHeapPtr {
3953            None => panic!(format!(
3954                "Attempt to use a REAPER function that has not been loaded: {}",
3955                stringify!(FreeHeapPtr)
3956            )),
3957            Some(f) => f(ptr),
3958        }
3959    }
3960    pub unsafe fn genGuid(&self, g: *mut root::GUID) {
3961        match self.pointers.genGuid {
3962            None => panic!(format!(
3963                "Attempt to use a REAPER function that has not been loaded: {}",
3964                stringify!(genGuid)
3965            )),
3966            Some(f) => f(g),
3967        }
3968    }
3969    pub unsafe fn get_config_var(
3970        &self,
3971        name: *const ::std::os::raw::c_char,
3972        szOut: *mut ::std::os::raw::c_int,
3973    ) -> *mut ::std::os::raw::c_void {
3974        match self.pointers.get_config_var {
3975            None => panic!(format!(
3976                "Attempt to use a REAPER function that has not been loaded: {}",
3977                stringify!(get_config_var)
3978            )),
3979            Some(f) => f(name, szOut),
3980        }
3981    }
3982    pub unsafe fn get_config_var_string(
3983        &self,
3984        name: *const ::std::os::raw::c_char,
3985        bufOut: *mut ::std::os::raw::c_char,
3986        bufOut_sz: ::std::os::raw::c_int,
3987    ) -> bool {
3988        match self.pointers.get_config_var_string {
3989            None => panic!(format!(
3990                "Attempt to use a REAPER function that has not been loaded: {}",
3991                stringify!(get_config_var_string)
3992            )),
3993            Some(f) => f(name, bufOut, bufOut_sz),
3994        }
3995    }
3996    pub fn get_ini_file(&self) -> *const ::std::os::raw::c_char {
3997        match self.pointers.get_ini_file {
3998            None => panic!(format!(
3999                "Attempt to use a REAPER function that has not been loaded: {}",
4000                stringify!(get_ini_file)
4001            )),
4002            Some(f) => f(),
4003        }
4004    }
4005    pub unsafe fn get_midi_config_var(
4006        &self,
4007        name: *const ::std::os::raw::c_char,
4008        szOut: *mut ::std::os::raw::c_int,
4009    ) -> *mut ::std::os::raw::c_void {
4010        match self.pointers.get_midi_config_var {
4011            None => panic!(format!(
4012                "Attempt to use a REAPER function that has not been loaded: {}",
4013                stringify!(get_midi_config_var)
4014            )),
4015            Some(f) => f(name, szOut),
4016        }
4017    }
4018    pub unsafe fn GetActionShortcutDesc(
4019        &self,
4020        section: *mut root::KbdSectionInfo,
4021        cmdID: ::std::os::raw::c_int,
4022        shortcutidx: ::std::os::raw::c_int,
4023        desc: *mut ::std::os::raw::c_char,
4024        desclen: ::std::os::raw::c_int,
4025    ) -> bool {
4026        match self.pointers.GetActionShortcutDesc {
4027            None => panic!(format!(
4028                "Attempt to use a REAPER function that has not been loaded: {}",
4029                stringify!(GetActionShortcutDesc)
4030            )),
4031            Some(f) => f(section, cmdID, shortcutidx, desc, desclen),
4032        }
4033    }
4034    pub unsafe fn GetActiveTake(&self, item: *mut root::MediaItem) -> *mut root::MediaItem_Take {
4035        match self.pointers.GetActiveTake {
4036            None => panic!(format!(
4037                "Attempt to use a REAPER function that has not been loaded: {}",
4038                stringify!(GetActiveTake)
4039            )),
4040            Some(f) => f(item),
4041        }
4042    }
4043    pub unsafe fn GetAllProjectPlayStates(
4044        &self,
4045        ignoreProject: *mut root::ReaProject,
4046    ) -> ::std::os::raw::c_int {
4047        match self.pointers.GetAllProjectPlayStates {
4048            None => panic!(format!(
4049                "Attempt to use a REAPER function that has not been loaded: {}",
4050                stringify!(GetAllProjectPlayStates)
4051            )),
4052            Some(f) => f(ignoreProject),
4053        }
4054    }
4055    pub fn GetAppVersion(&self) -> *const ::std::os::raw::c_char {
4056        match self.pointers.GetAppVersion {
4057            None => panic!(format!(
4058                "Attempt to use a REAPER function that has not been loaded: {}",
4059                stringify!(GetAppVersion)
4060            )),
4061            Some(f) => f(),
4062        }
4063    }
4064    pub unsafe fn GetArmedCommand(
4065        &self,
4066        secOut: *mut ::std::os::raw::c_char,
4067        secOut_sz: ::std::os::raw::c_int,
4068    ) -> ::std::os::raw::c_int {
4069        match self.pointers.GetArmedCommand {
4070            None => panic!(format!(
4071                "Attempt to use a REAPER function that has not been loaded: {}",
4072                stringify!(GetArmedCommand)
4073            )),
4074            Some(f) => f(secOut, secOut_sz),
4075        }
4076    }
4077    pub unsafe fn GetAudioAccessorEndTime(
4078        &self,
4079        accessor: *mut root::reaper_functions::AudioAccessor,
4080    ) -> f64 {
4081        match self.pointers.GetAudioAccessorEndTime {
4082            None => panic!(format!(
4083                "Attempt to use a REAPER function that has not been loaded: {}",
4084                stringify!(GetAudioAccessorEndTime)
4085            )),
4086            Some(f) => f(accessor),
4087        }
4088    }
4089    pub unsafe fn GetAudioAccessorHash(
4090        &self,
4091        accessor: *mut root::reaper_functions::AudioAccessor,
4092        hashNeed128: *mut ::std::os::raw::c_char,
4093    ) {
4094        match self.pointers.GetAudioAccessorHash {
4095            None => panic!(format!(
4096                "Attempt to use a REAPER function that has not been loaded: {}",
4097                stringify!(GetAudioAccessorHash)
4098            )),
4099            Some(f) => f(accessor, hashNeed128),
4100        }
4101    }
4102    pub unsafe fn GetAudioAccessorSamples(
4103        &self,
4104        accessor: *mut root::reaper_functions::AudioAccessor,
4105        samplerate: ::std::os::raw::c_int,
4106        numchannels: ::std::os::raw::c_int,
4107        starttime_sec: f64,
4108        numsamplesperchannel: ::std::os::raw::c_int,
4109        samplebuffer: *mut f64,
4110    ) -> ::std::os::raw::c_int {
4111        match self.pointers.GetAudioAccessorSamples {
4112            None => panic!(format!(
4113                "Attempt to use a REAPER function that has not been loaded: {}",
4114                stringify!(GetAudioAccessorSamples)
4115            )),
4116            Some(f) => f(
4117                accessor,
4118                samplerate,
4119                numchannels,
4120                starttime_sec,
4121                numsamplesperchannel,
4122                samplebuffer,
4123            ),
4124        }
4125    }
4126    pub unsafe fn GetAudioAccessorStartTime(
4127        &self,
4128        accessor: *mut root::reaper_functions::AudioAccessor,
4129    ) -> f64 {
4130        match self.pointers.GetAudioAccessorStartTime {
4131            None => panic!(format!(
4132                "Attempt to use a REAPER function that has not been loaded: {}",
4133                stringify!(GetAudioAccessorStartTime)
4134            )),
4135            Some(f) => f(accessor),
4136        }
4137    }
4138    pub unsafe fn GetAudioDeviceInfo(
4139        &self,
4140        attribute: *const ::std::os::raw::c_char,
4141        desc: *mut ::std::os::raw::c_char,
4142        desc_sz: ::std::os::raw::c_int,
4143    ) -> bool {
4144        match self.pointers.GetAudioDeviceInfo {
4145            None => panic!(format!(
4146                "Attempt to use a REAPER function that has not been loaded: {}",
4147                stringify!(GetAudioDeviceInfo)
4148            )),
4149            Some(f) => f(attribute, desc, desc_sz),
4150        }
4151    }
4152    pub fn GetColorTheme(
4153        &self,
4154        idx: ::std::os::raw::c_int,
4155        defval: ::std::os::raw::c_int,
4156    ) -> root::INT_PTR {
4157        match self.pointers.GetColorTheme {
4158            None => panic!(format!(
4159                "Attempt to use a REAPER function that has not been loaded: {}",
4160                stringify!(GetColorTheme)
4161            )),
4162            Some(f) => f(idx, defval),
4163        }
4164    }
4165    pub unsafe fn GetColorThemeStruct(
4166        &self,
4167        szOut: *mut ::std::os::raw::c_int,
4168    ) -> *mut ::std::os::raw::c_void {
4169        match self.pointers.GetColorThemeStruct {
4170            None => panic!(format!(
4171                "Attempt to use a REAPER function that has not been loaded: {}",
4172                stringify!(GetColorThemeStruct)
4173            )),
4174            Some(f) => f(szOut),
4175        }
4176    }
4177    pub unsafe fn GetConfigWantsDock(
4178        &self,
4179        ident_str: *const ::std::os::raw::c_char,
4180    ) -> ::std::os::raw::c_int {
4181        match self.pointers.GetConfigWantsDock {
4182            None => panic!(format!(
4183                "Attempt to use a REAPER function that has not been loaded: {}",
4184                stringify!(GetConfigWantsDock)
4185            )),
4186            Some(f) => f(ident_str),
4187        }
4188    }
4189    pub fn GetContextMenu(&self, idx: ::std::os::raw::c_int) -> root::HMENU {
4190        match self.pointers.GetContextMenu {
4191            None => panic!(format!(
4192                "Attempt to use a REAPER function that has not been loaded: {}",
4193                stringify!(GetContextMenu)
4194            )),
4195            Some(f) => f(idx),
4196        }
4197    }
4198    pub fn GetCurrentProjectInLoadSave(&self) -> *mut root::ReaProject {
4199        match self.pointers.GetCurrentProjectInLoadSave {
4200            None => panic!(format!(
4201                "Attempt to use a REAPER function that has not been loaded: {}",
4202                stringify!(GetCurrentProjectInLoadSave)
4203            )),
4204            Some(f) => f(),
4205        }
4206    }
4207    pub fn GetCursorContext(&self) -> ::std::os::raw::c_int {
4208        match self.pointers.GetCursorContext {
4209            None => panic!(format!(
4210                "Attempt to use a REAPER function that has not been loaded: {}",
4211                stringify!(GetCursorContext)
4212            )),
4213            Some(f) => f(),
4214        }
4215    }
4216    pub fn GetCursorContext2(&self, want_last_valid: bool) -> ::std::os::raw::c_int {
4217        match self.pointers.GetCursorContext2 {
4218            None => panic!(format!(
4219                "Attempt to use a REAPER function that has not been loaded: {}",
4220                stringify!(GetCursorContext2)
4221            )),
4222            Some(f) => f(want_last_valid),
4223        }
4224    }
4225    pub fn GetCursorPosition(&self) -> f64 {
4226        match self.pointers.GetCursorPosition {
4227            None => panic!(format!(
4228                "Attempt to use a REAPER function that has not been loaded: {}",
4229                stringify!(GetCursorPosition)
4230            )),
4231            Some(f) => f(),
4232        }
4233    }
4234    pub unsafe fn GetCursorPositionEx(&self, proj: *mut root::ReaProject) -> f64 {
4235        match self.pointers.GetCursorPositionEx {
4236            None => panic!(format!(
4237                "Attempt to use a REAPER function that has not been loaded: {}",
4238                stringify!(GetCursorPositionEx)
4239            )),
4240            Some(f) => f(proj),
4241        }
4242    }
4243    pub unsafe fn GetDisplayedMediaItemColor(
4244        &self,
4245        item: *mut root::MediaItem,
4246    ) -> ::std::os::raw::c_int {
4247        match self.pointers.GetDisplayedMediaItemColor {
4248            None => panic!(format!(
4249                "Attempt to use a REAPER function that has not been loaded: {}",
4250                stringify!(GetDisplayedMediaItemColor)
4251            )),
4252            Some(f) => f(item),
4253        }
4254    }
4255    pub unsafe fn GetDisplayedMediaItemColor2(
4256        &self,
4257        item: *mut root::MediaItem,
4258        take: *mut root::MediaItem_Take,
4259    ) -> ::std::os::raw::c_int {
4260        match self.pointers.GetDisplayedMediaItemColor2 {
4261            None => panic!(format!(
4262                "Attempt to use a REAPER function that has not been loaded: {}",
4263                stringify!(GetDisplayedMediaItemColor2)
4264            )),
4265            Some(f) => f(item, take),
4266        }
4267    }
4268    pub unsafe fn GetEnvelopeInfo_Value(
4269        &self,
4270        tr: *mut root::TrackEnvelope,
4271        parmname: *const ::std::os::raw::c_char,
4272    ) -> f64 {
4273        match self.pointers.GetEnvelopeInfo_Value {
4274            None => panic!(format!(
4275                "Attempt to use a REAPER function that has not been loaded: {}",
4276                stringify!(GetEnvelopeInfo_Value)
4277            )),
4278            Some(f) => f(tr, parmname),
4279        }
4280    }
4281    pub unsafe fn GetEnvelopeName(
4282        &self,
4283        env: *mut root::TrackEnvelope,
4284        bufOut: *mut ::std::os::raw::c_char,
4285        bufOut_sz: ::std::os::raw::c_int,
4286    ) -> bool {
4287        match self.pointers.GetEnvelopeName {
4288            None => panic!(format!(
4289                "Attempt to use a REAPER function that has not been loaded: {}",
4290                stringify!(GetEnvelopeName)
4291            )),
4292            Some(f) => f(env, bufOut, bufOut_sz),
4293        }
4294    }
4295    pub unsafe fn GetEnvelopePoint(
4296        &self,
4297        envelope: *mut root::TrackEnvelope,
4298        ptidx: ::std::os::raw::c_int,
4299        timeOutOptional: *mut f64,
4300        valueOutOptional: *mut f64,
4301        shapeOutOptional: *mut ::std::os::raw::c_int,
4302        tensionOutOptional: *mut f64,
4303        selectedOutOptional: *mut bool,
4304    ) -> bool {
4305        match self.pointers.GetEnvelopePoint {
4306            None => panic!(format!(
4307                "Attempt to use a REAPER function that has not been loaded: {}",
4308                stringify!(GetEnvelopePoint)
4309            )),
4310            Some(f) => f(
4311                envelope,
4312                ptidx,
4313                timeOutOptional,
4314                valueOutOptional,
4315                shapeOutOptional,
4316                tensionOutOptional,
4317                selectedOutOptional,
4318            ),
4319        }
4320    }
4321    pub unsafe fn GetEnvelopePointByTime(
4322        &self,
4323        envelope: *mut root::TrackEnvelope,
4324        time: f64,
4325    ) -> ::std::os::raw::c_int {
4326        match self.pointers.GetEnvelopePointByTime {
4327            None => panic!(format!(
4328                "Attempt to use a REAPER function that has not been loaded: {}",
4329                stringify!(GetEnvelopePointByTime)
4330            )),
4331            Some(f) => f(envelope, time),
4332        }
4333    }
4334    pub unsafe fn GetEnvelopePointByTimeEx(
4335        &self,
4336        envelope: *mut root::TrackEnvelope,
4337        autoitem_idx: ::std::os::raw::c_int,
4338        time: f64,
4339    ) -> ::std::os::raw::c_int {
4340        match self.pointers.GetEnvelopePointByTimeEx {
4341            None => panic!(format!(
4342                "Attempt to use a REAPER function that has not been loaded: {}",
4343                stringify!(GetEnvelopePointByTimeEx)
4344            )),
4345            Some(f) => f(envelope, autoitem_idx, time),
4346        }
4347    }
4348    pub unsafe fn GetEnvelopePointEx(
4349        &self,
4350        envelope: *mut root::TrackEnvelope,
4351        autoitem_idx: ::std::os::raw::c_int,
4352        ptidx: ::std::os::raw::c_int,
4353        timeOutOptional: *mut f64,
4354        valueOutOptional: *mut f64,
4355        shapeOutOptional: *mut ::std::os::raw::c_int,
4356        tensionOutOptional: *mut f64,
4357        selectedOutOptional: *mut bool,
4358    ) -> bool {
4359        match self.pointers.GetEnvelopePointEx {
4360            None => panic!(format!(
4361                "Attempt to use a REAPER function that has not been loaded: {}",
4362                stringify!(GetEnvelopePointEx)
4363            )),
4364            Some(f) => f(
4365                envelope,
4366                autoitem_idx,
4367                ptidx,
4368                timeOutOptional,
4369                valueOutOptional,
4370                shapeOutOptional,
4371                tensionOutOptional,
4372                selectedOutOptional,
4373            ),
4374        }
4375    }
4376    pub unsafe fn GetEnvelopeScalingMode(
4377        &self,
4378        env: *mut root::TrackEnvelope,
4379    ) -> ::std::os::raw::c_int {
4380        match self.pointers.GetEnvelopeScalingMode {
4381            None => panic!(format!(
4382                "Attempt to use a REAPER function that has not been loaded: {}",
4383                stringify!(GetEnvelopeScalingMode)
4384            )),
4385            Some(f) => f(env),
4386        }
4387    }
4388    pub unsafe fn GetEnvelopeStateChunk(
4389        &self,
4390        env: *mut root::TrackEnvelope,
4391        strNeedBig: *mut ::std::os::raw::c_char,
4392        strNeedBig_sz: ::std::os::raw::c_int,
4393        isundoOptional: bool,
4394    ) -> bool {
4395        match self.pointers.GetEnvelopeStateChunk {
4396            None => panic!(format!(
4397                "Attempt to use a REAPER function that has not been loaded: {}",
4398                stringify!(GetEnvelopeStateChunk)
4399            )),
4400            Some(f) => f(env, strNeedBig, strNeedBig_sz, isundoOptional),
4401        }
4402    }
4403    pub fn GetExePath(&self) -> *const ::std::os::raw::c_char {
4404        match self.pointers.GetExePath {
4405            None => panic!(format!(
4406                "Attempt to use a REAPER function that has not been loaded: {}",
4407                stringify!(GetExePath)
4408            )),
4409            Some(f) => f(),
4410        }
4411    }
4412    pub unsafe fn GetExtState(
4413        &self,
4414        section: *const ::std::os::raw::c_char,
4415        key: *const ::std::os::raw::c_char,
4416    ) -> *const ::std::os::raw::c_char {
4417        match self.pointers.GetExtState {
4418            None => panic!(format!(
4419                "Attempt to use a REAPER function that has not been loaded: {}",
4420                stringify!(GetExtState)
4421            )),
4422            Some(f) => f(section, key),
4423        }
4424    }
4425    pub unsafe fn GetFocusedFX(
4426        &self,
4427        tracknumberOut: *mut ::std::os::raw::c_int,
4428        itemnumberOut: *mut ::std::os::raw::c_int,
4429        fxnumberOut: *mut ::std::os::raw::c_int,
4430    ) -> ::std::os::raw::c_int {
4431        match self.pointers.GetFocusedFX {
4432            None => panic!(format!(
4433                "Attempt to use a REAPER function that has not been loaded: {}",
4434                stringify!(GetFocusedFX)
4435            )),
4436            Some(f) => f(tracknumberOut, itemnumberOut, fxnumberOut),
4437        }
4438    }
4439    pub unsafe fn GetFreeDiskSpaceForRecordPath(
4440        &self,
4441        proj: *mut root::ReaProject,
4442        pathidx: ::std::os::raw::c_int,
4443    ) -> ::std::os::raw::c_int {
4444        match self.pointers.GetFreeDiskSpaceForRecordPath {
4445            None => panic!(format!(
4446                "Attempt to use a REAPER function that has not been loaded: {}",
4447                stringify!(GetFreeDiskSpaceForRecordPath)
4448            )),
4449            Some(f) => f(proj, pathidx),
4450        }
4451    }
4452    pub unsafe fn GetFXEnvelope(
4453        &self,
4454        track: *mut root::MediaTrack,
4455        fxindex: ::std::os::raw::c_int,
4456        parameterindex: ::std::os::raw::c_int,
4457        create: bool,
4458    ) -> *mut root::TrackEnvelope {
4459        match self.pointers.GetFXEnvelope {
4460            None => panic!(format!(
4461                "Attempt to use a REAPER function that has not been loaded: {}",
4462                stringify!(GetFXEnvelope)
4463            )),
4464            Some(f) => f(track, fxindex, parameterindex, create),
4465        }
4466    }
4467    pub fn GetGlobalAutomationOverride(&self) -> ::std::os::raw::c_int {
4468        match self.pointers.GetGlobalAutomationOverride {
4469            None => panic!(format!(
4470                "Attempt to use a REAPER function that has not been loaded: {}",
4471                stringify!(GetGlobalAutomationOverride)
4472            )),
4473            Some(f) => f(),
4474        }
4475    }
4476    pub fn GetHZoomLevel(&self) -> f64 {
4477        match self.pointers.GetHZoomLevel {
4478            None => panic!(format!(
4479                "Attempt to use a REAPER function that has not been loaded: {}",
4480                stringify!(GetHZoomLevel)
4481            )),
4482            Some(f) => f(),
4483        }
4484    }
4485    pub unsafe fn GetIconThemePointer(
4486        &self,
4487        name: *const ::std::os::raw::c_char,
4488    ) -> *mut ::std::os::raw::c_void {
4489        match self.pointers.GetIconThemePointer {
4490            None => panic!(format!(
4491                "Attempt to use a REAPER function that has not been loaded: {}",
4492                stringify!(GetIconThemePointer)
4493            )),
4494            Some(f) => f(name),
4495        }
4496    }
4497    pub unsafe fn GetIconThemePointerForDPI(
4498        &self,
4499        name: *const ::std::os::raw::c_char,
4500        dpisc: ::std::os::raw::c_int,
4501    ) -> *mut ::std::os::raw::c_void {
4502        match self.pointers.GetIconThemePointerForDPI {
4503            None => panic!(format!(
4504                "Attempt to use a REAPER function that has not been loaded: {}",
4505                stringify!(GetIconThemePointerForDPI)
4506            )),
4507            Some(f) => f(name, dpisc),
4508        }
4509    }
4510    pub unsafe fn GetIconThemeStruct(
4511        &self,
4512        szOut: *mut ::std::os::raw::c_int,
4513    ) -> *mut ::std::os::raw::c_void {
4514        match self.pointers.GetIconThemeStruct {
4515            None => panic!(format!(
4516                "Attempt to use a REAPER function that has not been loaded: {}",
4517                stringify!(GetIconThemeStruct)
4518            )),
4519            Some(f) => f(szOut),
4520        }
4521    }
4522    pub fn GetInputChannelName(
4523        &self,
4524        channelIndex: ::std::os::raw::c_int,
4525    ) -> *const ::std::os::raw::c_char {
4526        match self.pointers.GetInputChannelName {
4527            None => panic!(format!(
4528                "Attempt to use a REAPER function that has not been loaded: {}",
4529                stringify!(GetInputChannelName)
4530            )),
4531            Some(f) => f(channelIndex),
4532        }
4533    }
4534    pub unsafe fn GetInputOutputLatency(
4535        &self,
4536        inputlatencyOut: *mut ::std::os::raw::c_int,
4537        outputLatencyOut: *mut ::std::os::raw::c_int,
4538    ) {
4539        match self.pointers.GetInputOutputLatency {
4540            None => panic!(format!(
4541                "Attempt to use a REAPER function that has not been loaded: {}",
4542                stringify!(GetInputOutputLatency)
4543            )),
4544            Some(f) => f(inputlatencyOut, outputLatencyOut),
4545        }
4546    }
4547    pub unsafe fn GetItemEditingTime2(
4548        &self,
4549        which_itemOut: *mut *mut root::PCM_source,
4550        flagsOut: *mut ::std::os::raw::c_int,
4551    ) -> f64 {
4552        match self.pointers.GetItemEditingTime2 {
4553            None => panic!(format!(
4554                "Attempt to use a REAPER function that has not been loaded: {}",
4555                stringify!(GetItemEditingTime2)
4556            )),
4557            Some(f) => f(which_itemOut, flagsOut),
4558        }
4559    }
4560    pub unsafe fn GetItemFromPoint(
4561        &self,
4562        screen_x: ::std::os::raw::c_int,
4563        screen_y: ::std::os::raw::c_int,
4564        allow_locked: bool,
4565        takeOutOptional: *mut *mut root::MediaItem_Take,
4566    ) -> *mut root::MediaItem {
4567        match self.pointers.GetItemFromPoint {
4568            None => panic!(format!(
4569                "Attempt to use a REAPER function that has not been loaded: {}",
4570                stringify!(GetItemFromPoint)
4571            )),
4572            Some(f) => f(screen_x, screen_y, allow_locked, takeOutOptional),
4573        }
4574    }
4575    pub unsafe fn GetItemProjectContext(
4576        &self,
4577        item: *mut root::MediaItem,
4578    ) -> *mut root::ReaProject {
4579        match self.pointers.GetItemProjectContext {
4580            None => panic!(format!(
4581                "Attempt to use a REAPER function that has not been loaded: {}",
4582                stringify!(GetItemProjectContext)
4583            )),
4584            Some(f) => f(item),
4585        }
4586    }
4587    pub unsafe fn GetItemStateChunk(
4588        &self,
4589        item: *mut root::MediaItem,
4590        strNeedBig: *mut ::std::os::raw::c_char,
4591        strNeedBig_sz: ::std::os::raw::c_int,
4592        isundoOptional: bool,
4593    ) -> bool {
4594        match self.pointers.GetItemStateChunk {
4595            None => panic!(format!(
4596                "Attempt to use a REAPER function that has not been loaded: {}",
4597                stringify!(GetItemStateChunk)
4598            )),
4599            Some(f) => f(item, strNeedBig, strNeedBig_sz, isundoOptional),
4600        }
4601    }
4602    pub fn GetLastColorThemeFile(&self) -> *const ::std::os::raw::c_char {
4603        match self.pointers.GetLastColorThemeFile {
4604            None => panic!(format!(
4605                "Attempt to use a REAPER function that has not been loaded: {}",
4606                stringify!(GetLastColorThemeFile)
4607            )),
4608            Some(f) => f(),
4609        }
4610    }
4611    pub unsafe fn GetLastMarkerAndCurRegion(
4612        &self,
4613        proj: *mut root::ReaProject,
4614        time: f64,
4615        markeridxOut: *mut ::std::os::raw::c_int,
4616        regionidxOut: *mut ::std::os::raw::c_int,
4617    ) {
4618        match self.pointers.GetLastMarkerAndCurRegion {
4619            None => panic!(format!(
4620                "Attempt to use a REAPER function that has not been loaded: {}",
4621                stringify!(GetLastMarkerAndCurRegion)
4622            )),
4623            Some(f) => f(proj, time, markeridxOut, regionidxOut),
4624        }
4625    }
4626    pub unsafe fn GetLastTouchedFX(
4627        &self,
4628        tracknumberOut: *mut ::std::os::raw::c_int,
4629        fxnumberOut: *mut ::std::os::raw::c_int,
4630        paramnumberOut: *mut ::std::os::raw::c_int,
4631    ) -> bool {
4632        match self.pointers.GetLastTouchedFX {
4633            None => panic!(format!(
4634                "Attempt to use a REAPER function that has not been loaded: {}",
4635                stringify!(GetLastTouchedFX)
4636            )),
4637            Some(f) => f(tracknumberOut, fxnumberOut, paramnumberOut),
4638        }
4639    }
4640    pub fn GetLastTouchedTrack(&self) -> *mut root::MediaTrack {
4641        match self.pointers.GetLastTouchedTrack {
4642            None => panic!(format!(
4643                "Attempt to use a REAPER function that has not been loaded: {}",
4644                stringify!(GetLastTouchedTrack)
4645            )),
4646            Some(f) => f(),
4647        }
4648    }
4649    pub fn GetMainHwnd(&self) -> root::HWND {
4650        match self.pointers.GetMainHwnd {
4651            None => panic!(format!(
4652                "Attempt to use a REAPER function that has not been loaded: {}",
4653                stringify!(GetMainHwnd)
4654            )),
4655            Some(f) => f(),
4656        }
4657    }
4658    pub fn GetMasterMuteSoloFlags(&self) -> ::std::os::raw::c_int {
4659        match self.pointers.GetMasterMuteSoloFlags {
4660            None => panic!(format!(
4661                "Attempt to use a REAPER function that has not been loaded: {}",
4662                stringify!(GetMasterMuteSoloFlags)
4663            )),
4664            Some(f) => f(),
4665        }
4666    }
4667    pub unsafe fn GetMasterTrack(&self, proj: *mut root::ReaProject) -> *mut root::MediaTrack {
4668        match self.pointers.GetMasterTrack {
4669            None => panic!(format!(
4670                "Attempt to use a REAPER function that has not been loaded: {}",
4671                stringify!(GetMasterTrack)
4672            )),
4673            Some(f) => f(proj),
4674        }
4675    }
4676    pub fn GetMasterTrackVisibility(&self) -> ::std::os::raw::c_int {
4677        match self.pointers.GetMasterTrackVisibility {
4678            None => panic!(format!(
4679                "Attempt to use a REAPER function that has not been loaded: {}",
4680                stringify!(GetMasterTrackVisibility)
4681            )),
4682            Some(f) => f(),
4683        }
4684    }
4685    pub fn GetMaxMidiInputs(&self) -> ::std::os::raw::c_int {
4686        match self.pointers.GetMaxMidiInputs {
4687            None => panic!(format!(
4688                "Attempt to use a REAPER function that has not been loaded: {}",
4689                stringify!(GetMaxMidiInputs)
4690            )),
4691            Some(f) => f(),
4692        }
4693    }
4694    pub fn GetMaxMidiOutputs(&self) -> ::std::os::raw::c_int {
4695        match self.pointers.GetMaxMidiOutputs {
4696            None => panic!(format!(
4697                "Attempt to use a REAPER function that has not been loaded: {}",
4698                stringify!(GetMaxMidiOutputs)
4699            )),
4700            Some(f) => f(),
4701        }
4702    }
4703    pub unsafe fn GetMediaItem(
4704        &self,
4705        proj: *mut root::ReaProject,
4706        itemidx: ::std::os::raw::c_int,
4707    ) -> *mut root::MediaItem {
4708        match self.pointers.GetMediaItem {
4709            None => panic!(format!(
4710                "Attempt to use a REAPER function that has not been loaded: {}",
4711                stringify!(GetMediaItem)
4712            )),
4713            Some(f) => f(proj, itemidx),
4714        }
4715    }
4716    pub unsafe fn GetMediaItem_Track(&self, item: *mut root::MediaItem) -> *mut root::MediaTrack {
4717        match self.pointers.GetMediaItem_Track {
4718            None => panic!(format!(
4719                "Attempt to use a REAPER function that has not been loaded: {}",
4720                stringify!(GetMediaItem_Track)
4721            )),
4722            Some(f) => f(item),
4723        }
4724    }
4725    pub unsafe fn GetMediaItemInfo_Value(
4726        &self,
4727        item: *mut root::MediaItem,
4728        parmname: *const ::std::os::raw::c_char,
4729    ) -> f64 {
4730        match self.pointers.GetMediaItemInfo_Value {
4731            None => panic!(format!(
4732                "Attempt to use a REAPER function that has not been loaded: {}",
4733                stringify!(GetMediaItemInfo_Value)
4734            )),
4735            Some(f) => f(item, parmname),
4736        }
4737    }
4738    pub unsafe fn GetMediaItemNumTakes(&self, item: *mut root::MediaItem) -> ::std::os::raw::c_int {
4739        match self.pointers.GetMediaItemNumTakes {
4740            None => panic!(format!(
4741                "Attempt to use a REAPER function that has not been loaded: {}",
4742                stringify!(GetMediaItemNumTakes)
4743            )),
4744            Some(f) => f(item),
4745        }
4746    }
4747    pub unsafe fn GetMediaItemTake(
4748        &self,
4749        item: *mut root::MediaItem,
4750        tk: ::std::os::raw::c_int,
4751    ) -> *mut root::MediaItem_Take {
4752        match self.pointers.GetMediaItemTake {
4753            None => panic!(format!(
4754                "Attempt to use a REAPER function that has not been loaded: {}",
4755                stringify!(GetMediaItemTake)
4756            )),
4757            Some(f) => f(item, tk),
4758        }
4759    }
4760    pub unsafe fn GetMediaItemTake_Item(
4761        &self,
4762        take: *mut root::MediaItem_Take,
4763    ) -> *mut root::MediaItem {
4764        match self.pointers.GetMediaItemTake_Item {
4765            None => panic!(format!(
4766                "Attempt to use a REAPER function that has not been loaded: {}",
4767                stringify!(GetMediaItemTake_Item)
4768            )),
4769            Some(f) => f(take),
4770        }
4771    }
4772    pub unsafe fn GetMediaItemTake_Peaks(
4773        &self,
4774        take: *mut root::MediaItem_Take,
4775        peakrate: f64,
4776        starttime: f64,
4777        numchannels: ::std::os::raw::c_int,
4778        numsamplesperchannel: ::std::os::raw::c_int,
4779        want_extra_type: ::std::os::raw::c_int,
4780        buf: *mut f64,
4781    ) -> ::std::os::raw::c_int {
4782        match self.pointers.GetMediaItemTake_Peaks {
4783            None => panic!(format!(
4784                "Attempt to use a REAPER function that has not been loaded: {}",
4785                stringify!(GetMediaItemTake_Peaks)
4786            )),
4787            Some(f) => f(
4788                take,
4789                peakrate,
4790                starttime,
4791                numchannels,
4792                numsamplesperchannel,
4793                want_extra_type,
4794                buf,
4795            ),
4796        }
4797    }
4798    pub unsafe fn GetMediaItemTake_Source(
4799        &self,
4800        take: *mut root::MediaItem_Take,
4801    ) -> *mut root::PCM_source {
4802        match self.pointers.GetMediaItemTake_Source {
4803            None => panic!(format!(
4804                "Attempt to use a REAPER function that has not been loaded: {}",
4805                stringify!(GetMediaItemTake_Source)
4806            )),
4807            Some(f) => f(take),
4808        }
4809    }
4810    pub unsafe fn GetMediaItemTake_Track(
4811        &self,
4812        take: *mut root::MediaItem_Take,
4813    ) -> *mut root::MediaTrack {
4814        match self.pointers.GetMediaItemTake_Track {
4815            None => panic!(format!(
4816                "Attempt to use a REAPER function that has not been loaded: {}",
4817                stringify!(GetMediaItemTake_Track)
4818            )),
4819            Some(f) => f(take),
4820        }
4821    }
4822    pub unsafe fn GetMediaItemTakeByGUID(
4823        &self,
4824        project: *mut root::ReaProject,
4825        guid: *const root::GUID,
4826    ) -> *mut root::MediaItem_Take {
4827        match self.pointers.GetMediaItemTakeByGUID {
4828            None => panic!(format!(
4829                "Attempt to use a REAPER function that has not been loaded: {}",
4830                stringify!(GetMediaItemTakeByGUID)
4831            )),
4832            Some(f) => f(project, guid),
4833        }
4834    }
4835    pub unsafe fn GetMediaItemTakeInfo_Value(
4836        &self,
4837        take: *mut root::MediaItem_Take,
4838        parmname: *const ::std::os::raw::c_char,
4839    ) -> f64 {
4840        match self.pointers.GetMediaItemTakeInfo_Value {
4841            None => panic!(format!(
4842                "Attempt to use a REAPER function that has not been loaded: {}",
4843                stringify!(GetMediaItemTakeInfo_Value)
4844            )),
4845            Some(f) => f(take, parmname),
4846        }
4847    }
4848    pub unsafe fn GetMediaItemTrack(&self, item: *mut root::MediaItem) -> *mut root::MediaTrack {
4849        match self.pointers.GetMediaItemTrack {
4850            None => panic!(format!(
4851                "Attempt to use a REAPER function that has not been loaded: {}",
4852                stringify!(GetMediaItemTrack)
4853            )),
4854            Some(f) => f(item),
4855        }
4856    }
4857    pub unsafe fn GetMediaSourceFileName(
4858        &self,
4859        source: *mut root::PCM_source,
4860        filenamebuf: *mut ::std::os::raw::c_char,
4861        filenamebuf_sz: ::std::os::raw::c_int,
4862    ) {
4863        match self.pointers.GetMediaSourceFileName {
4864            None => panic!(format!(
4865                "Attempt to use a REAPER function that has not been loaded: {}",
4866                stringify!(GetMediaSourceFileName)
4867            )),
4868            Some(f) => f(source, filenamebuf, filenamebuf_sz),
4869        }
4870    }
4871    pub unsafe fn GetMediaSourceLength(
4872        &self,
4873        source: *mut root::PCM_source,
4874        lengthIsQNOut: *mut bool,
4875    ) -> f64 {
4876        match self.pointers.GetMediaSourceLength {
4877            None => panic!(format!(
4878                "Attempt to use a REAPER function that has not been loaded: {}",
4879                stringify!(GetMediaSourceLength)
4880            )),
4881            Some(f) => f(source, lengthIsQNOut),
4882        }
4883    }
4884    pub unsafe fn GetMediaSourceNumChannels(
4885        &self,
4886        source: *mut root::PCM_source,
4887    ) -> ::std::os::raw::c_int {
4888        match self.pointers.GetMediaSourceNumChannels {
4889            None => panic!(format!(
4890                "Attempt to use a REAPER function that has not been loaded: {}",
4891                stringify!(GetMediaSourceNumChannels)
4892            )),
4893            Some(f) => f(source),
4894        }
4895    }
4896    pub unsafe fn GetMediaSourceParent(&self, src: *mut root::PCM_source) -> *mut root::PCM_source {
4897        match self.pointers.GetMediaSourceParent {
4898            None => panic!(format!(
4899                "Attempt to use a REAPER function that has not been loaded: {}",
4900                stringify!(GetMediaSourceParent)
4901            )),
4902            Some(f) => f(src),
4903        }
4904    }
4905    pub unsafe fn GetMediaSourceSampleRate(
4906        &self,
4907        source: *mut root::PCM_source,
4908    ) -> ::std::os::raw::c_int {
4909        match self.pointers.GetMediaSourceSampleRate {
4910            None => panic!(format!(
4911                "Attempt to use a REAPER function that has not been loaded: {}",
4912                stringify!(GetMediaSourceSampleRate)
4913            )),
4914            Some(f) => f(source),
4915        }
4916    }
4917    pub unsafe fn GetMediaSourceType(
4918        &self,
4919        source: *mut root::PCM_source,
4920        typebuf: *mut ::std::os::raw::c_char,
4921        typebuf_sz: ::std::os::raw::c_int,
4922    ) {
4923        match self.pointers.GetMediaSourceType {
4924            None => panic!(format!(
4925                "Attempt to use a REAPER function that has not been loaded: {}",
4926                stringify!(GetMediaSourceType)
4927            )),
4928            Some(f) => f(source, typebuf, typebuf_sz),
4929        }
4930    }
4931    pub unsafe fn GetMediaTrackInfo_Value(
4932        &self,
4933        tr: *mut root::MediaTrack,
4934        parmname: *const ::std::os::raw::c_char,
4935    ) -> f64 {
4936        match self.pointers.GetMediaTrackInfo_Value {
4937            None => panic!(format!(
4938                "Attempt to use a REAPER function that has not been loaded: {}",
4939                stringify!(GetMediaTrackInfo_Value)
4940            )),
4941            Some(f) => f(tr, parmname),
4942        }
4943    }
4944    pub unsafe fn GetMIDIInputName(
4945        &self,
4946        dev: ::std::os::raw::c_int,
4947        nameout: *mut ::std::os::raw::c_char,
4948        nameout_sz: ::std::os::raw::c_int,
4949    ) -> bool {
4950        match self.pointers.GetMIDIInputName {
4951            None => panic!(format!(
4952                "Attempt to use a REAPER function that has not been loaded: {}",
4953                stringify!(GetMIDIInputName)
4954            )),
4955            Some(f) => f(dev, nameout, nameout_sz),
4956        }
4957    }
4958    pub unsafe fn GetMIDIOutputName(
4959        &self,
4960        dev: ::std::os::raw::c_int,
4961        nameout: *mut ::std::os::raw::c_char,
4962        nameout_sz: ::std::os::raw::c_int,
4963    ) -> bool {
4964        match self.pointers.GetMIDIOutputName {
4965            None => panic!(format!(
4966                "Attempt to use a REAPER function that has not been loaded: {}",
4967                stringify!(GetMIDIOutputName)
4968            )),
4969            Some(f) => f(dev, nameout, nameout_sz),
4970        }
4971    }
4972    pub fn GetMixerScroll(&self) -> *mut root::MediaTrack {
4973        match self.pointers.GetMixerScroll {
4974            None => panic!(format!(
4975                "Attempt to use a REAPER function that has not been loaded: {}",
4976                stringify!(GetMixerScroll)
4977            )),
4978            Some(f) => f(),
4979        }
4980    }
4981    pub unsafe fn GetMouseModifier(
4982        &self,
4983        context: *const ::std::os::raw::c_char,
4984        modifier_flag: ::std::os::raw::c_int,
4985        action: *mut ::std::os::raw::c_char,
4986        action_sz: ::std::os::raw::c_int,
4987    ) {
4988        match self.pointers.GetMouseModifier {
4989            None => panic!(format!(
4990                "Attempt to use a REAPER function that has not been loaded: {}",
4991                stringify!(GetMouseModifier)
4992            )),
4993            Some(f) => f(context, modifier_flag, action, action_sz),
4994        }
4995    }
4996    pub unsafe fn GetMousePosition(
4997        &self,
4998        xOut: *mut ::std::os::raw::c_int,
4999        yOut: *mut ::std::os::raw::c_int,
5000    ) {
5001        match self.pointers.GetMousePosition {
5002            None => panic!(format!(
5003                "Attempt to use a REAPER function that has not been loaded: {}",
5004                stringify!(GetMousePosition)
5005            )),
5006            Some(f) => f(xOut, yOut),
5007        }
5008    }
5009    pub fn GetNumAudioInputs(&self) -> ::std::os::raw::c_int {
5010        match self.pointers.GetNumAudioInputs {
5011            None => panic!(format!(
5012                "Attempt to use a REAPER function that has not been loaded: {}",
5013                stringify!(GetNumAudioInputs)
5014            )),
5015            Some(f) => f(),
5016        }
5017    }
5018    pub fn GetNumAudioOutputs(&self) -> ::std::os::raw::c_int {
5019        match self.pointers.GetNumAudioOutputs {
5020            None => panic!(format!(
5021                "Attempt to use a REAPER function that has not been loaded: {}",
5022                stringify!(GetNumAudioOutputs)
5023            )),
5024            Some(f) => f(),
5025        }
5026    }
5027    pub fn GetNumMIDIInputs(&self) -> ::std::os::raw::c_int {
5028        match self.pointers.GetNumMIDIInputs {
5029            None => panic!(format!(
5030                "Attempt to use a REAPER function that has not been loaded: {}",
5031                stringify!(GetNumMIDIInputs)
5032            )),
5033            Some(f) => f(),
5034        }
5035    }
5036    pub fn GetNumMIDIOutputs(&self) -> ::std::os::raw::c_int {
5037        match self.pointers.GetNumMIDIOutputs {
5038            None => panic!(format!(
5039                "Attempt to use a REAPER function that has not been loaded: {}",
5040                stringify!(GetNumMIDIOutputs)
5041            )),
5042            Some(f) => f(),
5043        }
5044    }
5045    pub fn GetNumTracks(&self) -> ::std::os::raw::c_int {
5046        match self.pointers.GetNumTracks {
5047            None => panic!(format!(
5048                "Attempt to use a REAPER function that has not been loaded: {}",
5049                stringify!(GetNumTracks)
5050            )),
5051            Some(f) => f(),
5052        }
5053    }
5054    pub fn GetOS(&self) -> *const ::std::os::raw::c_char {
5055        match self.pointers.GetOS {
5056            None => panic!(format!(
5057                "Attempt to use a REAPER function that has not been loaded: {}",
5058                stringify!(GetOS)
5059            )),
5060            Some(f) => f(),
5061        }
5062    }
5063    pub fn GetOutputChannelName(
5064        &self,
5065        channelIndex: ::std::os::raw::c_int,
5066    ) -> *const ::std::os::raw::c_char {
5067        match self.pointers.GetOutputChannelName {
5068            None => panic!(format!(
5069                "Attempt to use a REAPER function that has not been loaded: {}",
5070                stringify!(GetOutputChannelName)
5071            )),
5072            Some(f) => f(channelIndex),
5073        }
5074    }
5075    pub fn GetOutputLatency(&self) -> f64 {
5076        match self.pointers.GetOutputLatency {
5077            None => panic!(format!(
5078                "Attempt to use a REAPER function that has not been loaded: {}",
5079                stringify!(GetOutputLatency)
5080            )),
5081            Some(f) => f(),
5082        }
5083    }
5084    pub unsafe fn GetParentTrack(&self, track: *mut root::MediaTrack) -> *mut root::MediaTrack {
5085        match self.pointers.GetParentTrack {
5086            None => panic!(format!(
5087                "Attempt to use a REAPER function that has not been loaded: {}",
5088                stringify!(GetParentTrack)
5089            )),
5090            Some(f) => f(track),
5091        }
5092    }
5093    pub unsafe fn GetPeakFileName(
5094        &self,
5095        fn_: *const ::std::os::raw::c_char,
5096        buf: *mut ::std::os::raw::c_char,
5097        buf_sz: ::std::os::raw::c_int,
5098    ) {
5099        match self.pointers.GetPeakFileName {
5100            None => panic!(format!(
5101                "Attempt to use a REAPER function that has not been loaded: {}",
5102                stringify!(GetPeakFileName)
5103            )),
5104            Some(f) => f(fn_, buf, buf_sz),
5105        }
5106    }
5107    pub unsafe fn GetPeakFileNameEx(
5108        &self,
5109        fn_: *const ::std::os::raw::c_char,
5110        buf: *mut ::std::os::raw::c_char,
5111        buf_sz: ::std::os::raw::c_int,
5112        forWrite: bool,
5113    ) {
5114        match self.pointers.GetPeakFileNameEx {
5115            None => panic!(format!(
5116                "Attempt to use a REAPER function that has not been loaded: {}",
5117                stringify!(GetPeakFileNameEx)
5118            )),
5119            Some(f) => f(fn_, buf, buf_sz, forWrite),
5120        }
5121    }
5122    pub unsafe fn GetPeakFileNameEx2(
5123        &self,
5124        fn_: *const ::std::os::raw::c_char,
5125        buf: *mut ::std::os::raw::c_char,
5126        buf_sz: ::std::os::raw::c_int,
5127        forWrite: bool,
5128        peaksfileextension: *const ::std::os::raw::c_char,
5129    ) {
5130        match self.pointers.GetPeakFileNameEx2 {
5131            None => panic!(format!(
5132                "Attempt to use a REAPER function that has not been loaded: {}",
5133                stringify!(GetPeakFileNameEx2)
5134            )),
5135            Some(f) => f(fn_, buf, buf_sz, forWrite, peaksfileextension),
5136        }
5137    }
5138    pub unsafe fn GetPeaksBitmap(
5139        &self,
5140        pks: *mut root::PCM_source_peaktransfer_t,
5141        maxamp: f64,
5142        w: ::std::os::raw::c_int,
5143        h: ::std::os::raw::c_int,
5144        bmp: *mut root::reaper_functions::LICE_IBitmap,
5145    ) -> *mut ::std::os::raw::c_void {
5146        match self.pointers.GetPeaksBitmap {
5147            None => panic!(format!(
5148                "Attempt to use a REAPER function that has not been loaded: {}",
5149                stringify!(GetPeaksBitmap)
5150            )),
5151            Some(f) => f(pks, maxamp, w, h, bmp),
5152        }
5153    }
5154    pub fn GetPlayPosition(&self) -> f64 {
5155        match self.pointers.GetPlayPosition {
5156            None => panic!(format!(
5157                "Attempt to use a REAPER function that has not been loaded: {}",
5158                stringify!(GetPlayPosition)
5159            )),
5160            Some(f) => f(),
5161        }
5162    }
5163    pub fn GetPlayPosition2(&self) -> f64 {
5164        match self.pointers.GetPlayPosition2 {
5165            None => panic!(format!(
5166                "Attempt to use a REAPER function that has not been loaded: {}",
5167                stringify!(GetPlayPosition2)
5168            )),
5169            Some(f) => f(),
5170        }
5171    }
5172    pub unsafe fn GetPlayPosition2Ex(&self, proj: *mut root::ReaProject) -> f64 {
5173        match self.pointers.GetPlayPosition2Ex {
5174            None => panic!(format!(
5175                "Attempt to use a REAPER function that has not been loaded: {}",
5176                stringify!(GetPlayPosition2Ex)
5177            )),
5178            Some(f) => f(proj),
5179        }
5180    }
5181    pub unsafe fn GetPlayPositionEx(&self, proj: *mut root::ReaProject) -> f64 {
5182        match self.pointers.GetPlayPositionEx {
5183            None => panic!(format!(
5184                "Attempt to use a REAPER function that has not been loaded: {}",
5185                stringify!(GetPlayPositionEx)
5186            )),
5187            Some(f) => f(proj),
5188        }
5189    }
5190    pub fn GetPlayState(&self) -> ::std::os::raw::c_int {
5191        match self.pointers.GetPlayState {
5192            None => panic!(format!(
5193                "Attempt to use a REAPER function that has not been loaded: {}",
5194                stringify!(GetPlayState)
5195            )),
5196            Some(f) => f(),
5197        }
5198    }
5199    pub unsafe fn GetPlayStateEx(&self, proj: *mut root::ReaProject) -> ::std::os::raw::c_int {
5200        match self.pointers.GetPlayStateEx {
5201            None => panic!(format!(
5202                "Attempt to use a REAPER function that has not been loaded: {}",
5203                stringify!(GetPlayStateEx)
5204            )),
5205            Some(f) => f(proj),
5206        }
5207    }
5208    pub unsafe fn GetPreferredDiskReadMode(
5209        &self,
5210        mode: *mut ::std::os::raw::c_int,
5211        nb: *mut ::std::os::raw::c_int,
5212        bs: *mut ::std::os::raw::c_int,
5213    ) {
5214        match self.pointers.GetPreferredDiskReadMode {
5215            None => panic!(format!(
5216                "Attempt to use a REAPER function that has not been loaded: {}",
5217                stringify!(GetPreferredDiskReadMode)
5218            )),
5219            Some(f) => f(mode, nb, bs),
5220        }
5221    }
5222    pub unsafe fn GetPreferredDiskReadModePeak(
5223        &self,
5224        mode: *mut ::std::os::raw::c_int,
5225        nb: *mut ::std::os::raw::c_int,
5226        bs: *mut ::std::os::raw::c_int,
5227    ) {
5228        match self.pointers.GetPreferredDiskReadModePeak {
5229            None => panic!(format!(
5230                "Attempt to use a REAPER function that has not been loaded: {}",
5231                stringify!(GetPreferredDiskReadModePeak)
5232            )),
5233            Some(f) => f(mode, nb, bs),
5234        }
5235    }
5236    pub unsafe fn GetPreferredDiskWriteMode(
5237        &self,
5238        mode: *mut ::std::os::raw::c_int,
5239        nb: *mut ::std::os::raw::c_int,
5240        bs: *mut ::std::os::raw::c_int,
5241    ) {
5242        match self.pointers.GetPreferredDiskWriteMode {
5243            None => panic!(format!(
5244                "Attempt to use a REAPER function that has not been loaded: {}",
5245                stringify!(GetPreferredDiskWriteMode)
5246            )),
5247            Some(f) => f(mode, nb, bs),
5248        }
5249    }
5250    pub unsafe fn GetProjectLength(&self, proj: *mut root::ReaProject) -> f64 {
5251        match self.pointers.GetProjectLength {
5252            None => panic!(format!(
5253                "Attempt to use a REAPER function that has not been loaded: {}",
5254                stringify!(GetProjectLength)
5255            )),
5256            Some(f) => f(proj),
5257        }
5258    }
5259    pub unsafe fn GetProjectName(
5260        &self,
5261        proj: *mut root::ReaProject,
5262        buf: *mut ::std::os::raw::c_char,
5263        buf_sz: ::std::os::raw::c_int,
5264    ) {
5265        match self.pointers.GetProjectName {
5266            None => panic!(format!(
5267                "Attempt to use a REAPER function that has not been loaded: {}",
5268                stringify!(GetProjectName)
5269            )),
5270            Some(f) => f(proj, buf, buf_sz),
5271        }
5272    }
5273    pub unsafe fn GetProjectPath(
5274        &self,
5275        buf: *mut ::std::os::raw::c_char,
5276        buf_sz: ::std::os::raw::c_int,
5277    ) {
5278        match self.pointers.GetProjectPath {
5279            None => panic!(format!(
5280                "Attempt to use a REAPER function that has not been loaded: {}",
5281                stringify!(GetProjectPath)
5282            )),
5283            Some(f) => f(buf, buf_sz),
5284        }
5285    }
5286    pub unsafe fn GetProjectPathEx(
5287        &self,
5288        proj: *mut root::ReaProject,
5289        buf: *mut ::std::os::raw::c_char,
5290        buf_sz: ::std::os::raw::c_int,
5291    ) {
5292        match self.pointers.GetProjectPathEx {
5293            None => panic!(format!(
5294                "Attempt to use a REAPER function that has not been loaded: {}",
5295                stringify!(GetProjectPathEx)
5296            )),
5297            Some(f) => f(proj, buf, buf_sz),
5298        }
5299    }
5300    pub unsafe fn GetProjectStateChangeCount(
5301        &self,
5302        proj: *mut root::ReaProject,
5303    ) -> ::std::os::raw::c_int {
5304        match self.pointers.GetProjectStateChangeCount {
5305            None => panic!(format!(
5306                "Attempt to use a REAPER function that has not been loaded: {}",
5307                stringify!(GetProjectStateChangeCount)
5308            )),
5309            Some(f) => f(proj),
5310        }
5311    }
5312    pub unsafe fn GetProjectTimeOffset(&self, proj: *mut root::ReaProject, rndframe: bool) -> f64 {
5313        match self.pointers.GetProjectTimeOffset {
5314            None => panic!(format!(
5315                "Attempt to use a REAPER function that has not been loaded: {}",
5316                stringify!(GetProjectTimeOffset)
5317            )),
5318            Some(f) => f(proj, rndframe),
5319        }
5320    }
5321    pub unsafe fn GetProjectTimeSignature(&self, bpmOut: *mut f64, bpiOut: *mut f64) {
5322        match self.pointers.GetProjectTimeSignature {
5323            None => panic!(format!(
5324                "Attempt to use a REAPER function that has not been loaded: {}",
5325                stringify!(GetProjectTimeSignature)
5326            )),
5327            Some(f) => f(bpmOut, bpiOut),
5328        }
5329    }
5330    pub unsafe fn GetProjectTimeSignature2(
5331        &self,
5332        proj: *mut root::ReaProject,
5333        bpmOut: *mut f64,
5334        bpiOut: *mut f64,
5335    ) {
5336        match self.pointers.GetProjectTimeSignature2 {
5337            None => panic!(format!(
5338                "Attempt to use a REAPER function that has not been loaded: {}",
5339                stringify!(GetProjectTimeSignature2)
5340            )),
5341            Some(f) => f(proj, bpmOut, bpiOut),
5342        }
5343    }
5344    pub unsafe fn GetProjExtState(
5345        &self,
5346        proj: *mut root::ReaProject,
5347        extname: *const ::std::os::raw::c_char,
5348        key: *const ::std::os::raw::c_char,
5349        valOutNeedBig: *mut ::std::os::raw::c_char,
5350        valOutNeedBig_sz: ::std::os::raw::c_int,
5351    ) -> ::std::os::raw::c_int {
5352        match self.pointers.GetProjExtState {
5353            None => panic!(format!(
5354                "Attempt to use a REAPER function that has not been loaded: {}",
5355                stringify!(GetProjExtState)
5356            )),
5357            Some(f) => f(proj, extname, key, valOutNeedBig, valOutNeedBig_sz),
5358        }
5359    }
5360    pub fn GetResourcePath(&self) -> *const ::std::os::raw::c_char {
5361        match self.pointers.GetResourcePath {
5362            None => panic!(format!(
5363                "Attempt to use a REAPER function that has not been loaded: {}",
5364                stringify!(GetResourcePath)
5365            )),
5366            Some(f) => f(),
5367        }
5368    }
5369    pub unsafe fn GetSelectedEnvelope(
5370        &self,
5371        proj: *mut root::ReaProject,
5372    ) -> *mut root::TrackEnvelope {
5373        match self.pointers.GetSelectedEnvelope {
5374            None => panic!(format!(
5375                "Attempt to use a REAPER function that has not been loaded: {}",
5376                stringify!(GetSelectedEnvelope)
5377            )),
5378            Some(f) => f(proj),
5379        }
5380    }
5381    pub unsafe fn GetSelectedMediaItem(
5382        &self,
5383        proj: *mut root::ReaProject,
5384        selitem: ::std::os::raw::c_int,
5385    ) -> *mut root::MediaItem {
5386        match self.pointers.GetSelectedMediaItem {
5387            None => panic!(format!(
5388                "Attempt to use a REAPER function that has not been loaded: {}",
5389                stringify!(GetSelectedMediaItem)
5390            )),
5391            Some(f) => f(proj, selitem),
5392        }
5393    }
5394    pub unsafe fn GetSelectedTrack(
5395        &self,
5396        proj: *mut root::ReaProject,
5397        seltrackidx: ::std::os::raw::c_int,
5398    ) -> *mut root::MediaTrack {
5399        match self.pointers.GetSelectedTrack {
5400            None => panic!(format!(
5401                "Attempt to use a REAPER function that has not been loaded: {}",
5402                stringify!(GetSelectedTrack)
5403            )),
5404            Some(f) => f(proj, seltrackidx),
5405        }
5406    }
5407    pub unsafe fn GetSelectedTrack2(
5408        &self,
5409        proj: *mut root::ReaProject,
5410        seltrackidx: ::std::os::raw::c_int,
5411        wantmaster: bool,
5412    ) -> *mut root::MediaTrack {
5413        match self.pointers.GetSelectedTrack2 {
5414            None => panic!(format!(
5415                "Attempt to use a REAPER function that has not been loaded: {}",
5416                stringify!(GetSelectedTrack2)
5417            )),
5418            Some(f) => f(proj, seltrackidx, wantmaster),
5419        }
5420    }
5421    pub unsafe fn GetSelectedTrackEnvelope(
5422        &self,
5423        proj: *mut root::ReaProject,
5424    ) -> *mut root::TrackEnvelope {
5425        match self.pointers.GetSelectedTrackEnvelope {
5426            None => panic!(format!(
5427                "Attempt to use a REAPER function that has not been loaded: {}",
5428                stringify!(GetSelectedTrackEnvelope)
5429            )),
5430            Some(f) => f(proj),
5431        }
5432    }
5433    pub unsafe fn GetSet_ArrangeView2(
5434        &self,
5435        proj: *mut root::ReaProject,
5436        isSet: bool,
5437        screen_x_start: ::std::os::raw::c_int,
5438        screen_x_end: ::std::os::raw::c_int,
5439        start_timeOut: *mut f64,
5440        end_timeOut: *mut f64,
5441    ) {
5442        match self.pointers.GetSet_ArrangeView2 {
5443            None => panic!(format!(
5444                "Attempt to use a REAPER function that has not been loaded: {}",
5445                stringify!(GetSet_ArrangeView2)
5446            )),
5447            Some(f) => f(
5448                proj,
5449                isSet,
5450                screen_x_start,
5451                screen_x_end,
5452                start_timeOut,
5453                end_timeOut,
5454            ),
5455        }
5456    }
5457    pub unsafe fn GetSet_LoopTimeRange(
5458        &self,
5459        isSet: bool,
5460        isLoop: bool,
5461        startOut: *mut f64,
5462        endOut: *mut f64,
5463        allowautoseek: bool,
5464    ) {
5465        match self.pointers.GetSet_LoopTimeRange {
5466            None => panic!(format!(
5467                "Attempt to use a REAPER function that has not been loaded: {}",
5468                stringify!(GetSet_LoopTimeRange)
5469            )),
5470            Some(f) => f(isSet, isLoop, startOut, endOut, allowautoseek),
5471        }
5472    }
5473    pub unsafe fn GetSet_LoopTimeRange2(
5474        &self,
5475        proj: *mut root::ReaProject,
5476        isSet: bool,
5477        isLoop: bool,
5478        startOut: *mut f64,
5479        endOut: *mut f64,
5480        allowautoseek: bool,
5481    ) {
5482        match self.pointers.GetSet_LoopTimeRange2 {
5483            None => panic!(format!(
5484                "Attempt to use a REAPER function that has not been loaded: {}",
5485                stringify!(GetSet_LoopTimeRange2)
5486            )),
5487            Some(f) => f(proj, isSet, isLoop, startOut, endOut, allowautoseek),
5488        }
5489    }
5490    pub unsafe fn GetSetAutomationItemInfo(
5491        &self,
5492        env: *mut root::TrackEnvelope,
5493        autoitem_idx: ::std::os::raw::c_int,
5494        desc: *const ::std::os::raw::c_char,
5495        value: f64,
5496        is_set: bool,
5497    ) -> f64 {
5498        match self.pointers.GetSetAutomationItemInfo {
5499            None => panic!(format!(
5500                "Attempt to use a REAPER function that has not been loaded: {}",
5501                stringify!(GetSetAutomationItemInfo)
5502            )),
5503            Some(f) => f(env, autoitem_idx, desc, value, is_set),
5504        }
5505    }
5506    pub unsafe fn GetSetAutomationItemInfo_String(
5507        &self,
5508        env: *mut root::TrackEnvelope,
5509        autoitem_idx: ::std::os::raw::c_int,
5510        desc: *const ::std::os::raw::c_char,
5511        valuestrNeedBig: *mut ::std::os::raw::c_char,
5512        is_set: bool,
5513    ) -> bool {
5514        match self.pointers.GetSetAutomationItemInfo_String {
5515            None => panic!(format!(
5516                "Attempt to use a REAPER function that has not been loaded: {}",
5517                stringify!(GetSetAutomationItemInfo_String)
5518            )),
5519            Some(f) => f(env, autoitem_idx, desc, valuestrNeedBig, is_set),
5520        }
5521    }
5522    pub unsafe fn GetSetEnvelopeInfo_String(
5523        &self,
5524        env: *mut root::TrackEnvelope,
5525        parmname: *const ::std::os::raw::c_char,
5526        stringNeedBig: *mut ::std::os::raw::c_char,
5527        setNewValue: bool,
5528    ) -> bool {
5529        match self.pointers.GetSetEnvelopeInfo_String {
5530            None => panic!(format!(
5531                "Attempt to use a REAPER function that has not been loaded: {}",
5532                stringify!(GetSetEnvelopeInfo_String)
5533            )),
5534            Some(f) => f(env, parmname, stringNeedBig, setNewValue),
5535        }
5536    }
5537    pub unsafe fn GetSetEnvelopeState(
5538        &self,
5539        env: *mut root::TrackEnvelope,
5540        str: *mut ::std::os::raw::c_char,
5541        str_sz: ::std::os::raw::c_int,
5542    ) -> bool {
5543        match self.pointers.GetSetEnvelopeState {
5544            None => panic!(format!(
5545                "Attempt to use a REAPER function that has not been loaded: {}",
5546                stringify!(GetSetEnvelopeState)
5547            )),
5548            Some(f) => f(env, str, str_sz),
5549        }
5550    }
5551    pub unsafe fn GetSetEnvelopeState2(
5552        &self,
5553        env: *mut root::TrackEnvelope,
5554        str: *mut ::std::os::raw::c_char,
5555        str_sz: ::std::os::raw::c_int,
5556        isundo: bool,
5557    ) -> bool {
5558        match self.pointers.GetSetEnvelopeState2 {
5559            None => panic!(format!(
5560                "Attempt to use a REAPER function that has not been loaded: {}",
5561                stringify!(GetSetEnvelopeState2)
5562            )),
5563            Some(f) => f(env, str, str_sz, isundo),
5564        }
5565    }
5566    pub unsafe fn GetSetItemState(
5567        &self,
5568        item: *mut root::MediaItem,
5569        str: *mut ::std::os::raw::c_char,
5570        str_sz: ::std::os::raw::c_int,
5571    ) -> bool {
5572        match self.pointers.GetSetItemState {
5573            None => panic!(format!(
5574                "Attempt to use a REAPER function that has not been loaded: {}",
5575                stringify!(GetSetItemState)
5576            )),
5577            Some(f) => f(item, str, str_sz),
5578        }
5579    }
5580    pub unsafe fn GetSetItemState2(
5581        &self,
5582        item: *mut root::MediaItem,
5583        str: *mut ::std::os::raw::c_char,
5584        str_sz: ::std::os::raw::c_int,
5585        isundo: bool,
5586    ) -> bool {
5587        match self.pointers.GetSetItemState2 {
5588            None => panic!(format!(
5589                "Attempt to use a REAPER function that has not been loaded: {}",
5590                stringify!(GetSetItemState2)
5591            )),
5592            Some(f) => f(item, str, str_sz, isundo),
5593        }
5594    }
5595    pub unsafe fn GetSetMediaItemInfo(
5596        &self,
5597        item: *mut root::MediaItem,
5598        parmname: *const ::std::os::raw::c_char,
5599        setNewValue: *mut ::std::os::raw::c_void,
5600    ) -> *mut ::std::os::raw::c_void {
5601        match self.pointers.GetSetMediaItemInfo {
5602            None => panic!(format!(
5603                "Attempt to use a REAPER function that has not been loaded: {}",
5604                stringify!(GetSetMediaItemInfo)
5605            )),
5606            Some(f) => f(item, parmname, setNewValue),
5607        }
5608    }
5609    pub unsafe fn GetSetMediaItemInfo_String(
5610        &self,
5611        item: *mut root::MediaItem,
5612        parmname: *const ::std::os::raw::c_char,
5613        stringNeedBig: *mut ::std::os::raw::c_char,
5614        setNewValue: bool,
5615    ) -> bool {
5616        match self.pointers.GetSetMediaItemInfo_String {
5617            None => panic!(format!(
5618                "Attempt to use a REAPER function that has not been loaded: {}",
5619                stringify!(GetSetMediaItemInfo_String)
5620            )),
5621            Some(f) => f(item, parmname, stringNeedBig, setNewValue),
5622        }
5623    }
5624    pub unsafe fn GetSetMediaItemTakeInfo(
5625        &self,
5626        tk: *mut root::MediaItem_Take,
5627        parmname: *const ::std::os::raw::c_char,
5628        setNewValue: *mut ::std::os::raw::c_void,
5629    ) -> *mut ::std::os::raw::c_void {
5630        match self.pointers.GetSetMediaItemTakeInfo {
5631            None => panic!(format!(
5632                "Attempt to use a REAPER function that has not been loaded: {}",
5633                stringify!(GetSetMediaItemTakeInfo)
5634            )),
5635            Some(f) => f(tk, parmname, setNewValue),
5636        }
5637    }
5638    pub unsafe fn GetSetMediaItemTakeInfo_String(
5639        &self,
5640        tk: *mut root::MediaItem_Take,
5641        parmname: *const ::std::os::raw::c_char,
5642        stringNeedBig: *mut ::std::os::raw::c_char,
5643        setNewValue: bool,
5644    ) -> bool {
5645        match self.pointers.GetSetMediaItemTakeInfo_String {
5646            None => panic!(format!(
5647                "Attempt to use a REAPER function that has not been loaded: {}",
5648                stringify!(GetSetMediaItemTakeInfo_String)
5649            )),
5650            Some(f) => f(tk, parmname, stringNeedBig, setNewValue),
5651        }
5652    }
5653    pub unsafe fn GetSetMediaTrackInfo(
5654        &self,
5655        tr: *mut root::MediaTrack,
5656        parmname: *const ::std::os::raw::c_char,
5657        setNewValue: *mut ::std::os::raw::c_void,
5658    ) -> *mut ::std::os::raw::c_void {
5659        match self.pointers.GetSetMediaTrackInfo {
5660            None => panic!(format!(
5661                "Attempt to use a REAPER function that has not been loaded: {}",
5662                stringify!(GetSetMediaTrackInfo)
5663            )),
5664            Some(f) => f(tr, parmname, setNewValue),
5665        }
5666    }
5667    pub unsafe fn GetSetMediaTrackInfo_String(
5668        &self,
5669        tr: *mut root::MediaTrack,
5670        parmname: *const ::std::os::raw::c_char,
5671        stringNeedBig: *mut ::std::os::raw::c_char,
5672        setNewValue: bool,
5673    ) -> bool {
5674        match self.pointers.GetSetMediaTrackInfo_String {
5675            None => panic!(format!(
5676                "Attempt to use a REAPER function that has not been loaded: {}",
5677                stringify!(GetSetMediaTrackInfo_String)
5678            )),
5679            Some(f) => f(tr, parmname, stringNeedBig, setNewValue),
5680        }
5681    }
5682    pub unsafe fn GetSetObjectState(
5683        &self,
5684        obj: *mut ::std::os::raw::c_void,
5685        str: *const ::std::os::raw::c_char,
5686    ) -> *mut ::std::os::raw::c_char {
5687        match self.pointers.GetSetObjectState {
5688            None => panic!(format!(
5689                "Attempt to use a REAPER function that has not been loaded: {}",
5690                stringify!(GetSetObjectState)
5691            )),
5692            Some(f) => f(obj, str),
5693        }
5694    }
5695    pub unsafe fn GetSetObjectState2(
5696        &self,
5697        obj: *mut ::std::os::raw::c_void,
5698        str: *const ::std::os::raw::c_char,
5699        isundo: bool,
5700    ) -> *mut ::std::os::raw::c_char {
5701        match self.pointers.GetSetObjectState2 {
5702            None => panic!(format!(
5703                "Attempt to use a REAPER function that has not been loaded: {}",
5704                stringify!(GetSetObjectState2)
5705            )),
5706            Some(f) => f(obj, str, isundo),
5707        }
5708    }
5709    pub unsafe fn GetSetProjectAuthor(
5710        &self,
5711        proj: *mut root::ReaProject,
5712        set: bool,
5713        author: *mut ::std::os::raw::c_char,
5714        author_sz: ::std::os::raw::c_int,
5715    ) {
5716        match self.pointers.GetSetProjectAuthor {
5717            None => panic!(format!(
5718                "Attempt to use a REAPER function that has not been loaded: {}",
5719                stringify!(GetSetProjectAuthor)
5720            )),
5721            Some(f) => f(proj, set, author, author_sz),
5722        }
5723    }
5724    pub unsafe fn GetSetProjectGrid(
5725        &self,
5726        project: *mut root::ReaProject,
5727        set: bool,
5728        divisionInOutOptional: *mut f64,
5729        swingmodeInOutOptional: *mut ::std::os::raw::c_int,
5730        swingamtInOutOptional: *mut f64,
5731    ) -> ::std::os::raw::c_int {
5732        match self.pointers.GetSetProjectGrid {
5733            None => panic!(format!(
5734                "Attempt to use a REAPER function that has not been loaded: {}",
5735                stringify!(GetSetProjectGrid)
5736            )),
5737            Some(f) => f(
5738                project,
5739                set,
5740                divisionInOutOptional,
5741                swingmodeInOutOptional,
5742                swingamtInOutOptional,
5743            ),
5744        }
5745    }
5746    pub unsafe fn GetSetProjectInfo(
5747        &self,
5748        project: *mut root::ReaProject,
5749        desc: *const ::std::os::raw::c_char,
5750        value: f64,
5751        is_set: bool,
5752    ) -> f64 {
5753        match self.pointers.GetSetProjectInfo {
5754            None => panic!(format!(
5755                "Attempt to use a REAPER function that has not been loaded: {}",
5756                stringify!(GetSetProjectInfo)
5757            )),
5758            Some(f) => f(project, desc, value, is_set),
5759        }
5760    }
5761    pub unsafe fn GetSetProjectInfo_String(
5762        &self,
5763        project: *mut root::ReaProject,
5764        desc: *const ::std::os::raw::c_char,
5765        valuestrNeedBig: *mut ::std::os::raw::c_char,
5766        is_set: bool,
5767    ) -> bool {
5768        match self.pointers.GetSetProjectInfo_String {
5769            None => panic!(format!(
5770                "Attempt to use a REAPER function that has not been loaded: {}",
5771                stringify!(GetSetProjectInfo_String)
5772            )),
5773            Some(f) => f(project, desc, valuestrNeedBig, is_set),
5774        }
5775    }
5776    pub unsafe fn GetSetProjectNotes(
5777        &self,
5778        proj: *mut root::ReaProject,
5779        set: bool,
5780        notesNeedBig: *mut ::std::os::raw::c_char,
5781        notesNeedBig_sz: ::std::os::raw::c_int,
5782    ) {
5783        match self.pointers.GetSetProjectNotes {
5784            None => panic!(format!(
5785                "Attempt to use a REAPER function that has not been loaded: {}",
5786                stringify!(GetSetProjectNotes)
5787            )),
5788            Some(f) => f(proj, set, notesNeedBig, notesNeedBig_sz),
5789        }
5790    }
5791    pub fn GetSetRepeat(&self, val: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
5792        match self.pointers.GetSetRepeat {
5793            None => panic!(format!(
5794                "Attempt to use a REAPER function that has not been loaded: {}",
5795                stringify!(GetSetRepeat)
5796            )),
5797            Some(f) => f(val),
5798        }
5799    }
5800    pub unsafe fn GetSetRepeatEx(
5801        &self,
5802        proj: *mut root::ReaProject,
5803        val: ::std::os::raw::c_int,
5804    ) -> ::std::os::raw::c_int {
5805        match self.pointers.GetSetRepeatEx {
5806            None => panic!(format!(
5807                "Attempt to use a REAPER function that has not been loaded: {}",
5808                stringify!(GetSetRepeatEx)
5809            )),
5810            Some(f) => f(proj, val),
5811        }
5812    }
5813    pub unsafe fn GetSetTrackGroupMembership(
5814        &self,
5815        tr: *mut root::MediaTrack,
5816        groupname: *const ::std::os::raw::c_char,
5817        setmask: ::std::os::raw::c_uint,
5818        setvalue: ::std::os::raw::c_uint,
5819    ) -> ::std::os::raw::c_uint {
5820        match self.pointers.GetSetTrackGroupMembership {
5821            None => panic!(format!(
5822                "Attempt to use a REAPER function that has not been loaded: {}",
5823                stringify!(GetSetTrackGroupMembership)
5824            )),
5825            Some(f) => f(tr, groupname, setmask, setvalue),
5826        }
5827    }
5828    pub unsafe fn GetSetTrackGroupMembershipHigh(
5829        &self,
5830        tr: *mut root::MediaTrack,
5831        groupname: *const ::std::os::raw::c_char,
5832        setmask: ::std::os::raw::c_uint,
5833        setvalue: ::std::os::raw::c_uint,
5834    ) -> ::std::os::raw::c_uint {
5835        match self.pointers.GetSetTrackGroupMembershipHigh {
5836            None => panic!(format!(
5837                "Attempt to use a REAPER function that has not been loaded: {}",
5838                stringify!(GetSetTrackGroupMembershipHigh)
5839            )),
5840            Some(f) => f(tr, groupname, setmask, setvalue),
5841        }
5842    }
5843    pub unsafe fn GetSetTrackMIDISupportFile(
5844        &self,
5845        proj: *mut root::ReaProject,
5846        track: *mut root::MediaTrack,
5847        which: ::std::os::raw::c_int,
5848        filename: *const ::std::os::raw::c_char,
5849    ) -> *const ::std::os::raw::c_char {
5850        match self.pointers.GetSetTrackMIDISupportFile {
5851            None => panic!(format!(
5852                "Attempt to use a REAPER function that has not been loaded: {}",
5853                stringify!(GetSetTrackMIDISupportFile)
5854            )),
5855            Some(f) => f(proj, track, which, filename),
5856        }
5857    }
5858    pub unsafe fn GetSetTrackSendInfo(
5859        &self,
5860        tr: *mut root::MediaTrack,
5861        category: ::std::os::raw::c_int,
5862        sendidx: ::std::os::raw::c_int,
5863        parmname: *const ::std::os::raw::c_char,
5864        setNewValue: *mut ::std::os::raw::c_void,
5865    ) -> *mut ::std::os::raw::c_void {
5866        match self.pointers.GetSetTrackSendInfo {
5867            None => panic!(format!(
5868                "Attempt to use a REAPER function that has not been loaded: {}",
5869                stringify!(GetSetTrackSendInfo)
5870            )),
5871            Some(f) => f(tr, category, sendidx, parmname, setNewValue),
5872        }
5873    }
5874    pub unsafe fn GetSetTrackSendInfo_String(
5875        &self,
5876        tr: *mut root::MediaTrack,
5877        category: ::std::os::raw::c_int,
5878        sendidx: ::std::os::raw::c_int,
5879        parmname: *const ::std::os::raw::c_char,
5880        stringNeedBig: *mut ::std::os::raw::c_char,
5881        setNewValue: bool,
5882    ) -> bool {
5883        match self.pointers.GetSetTrackSendInfo_String {
5884            None => panic!(format!(
5885                "Attempt to use a REAPER function that has not been loaded: {}",
5886                stringify!(GetSetTrackSendInfo_String)
5887            )),
5888            Some(f) => f(tr, category, sendidx, parmname, stringNeedBig, setNewValue),
5889        }
5890    }
5891    pub unsafe fn GetSetTrackState(
5892        &self,
5893        track: *mut root::MediaTrack,
5894        str: *mut ::std::os::raw::c_char,
5895        str_sz: ::std::os::raw::c_int,
5896    ) -> bool {
5897        match self.pointers.GetSetTrackState {
5898            None => panic!(format!(
5899                "Attempt to use a REAPER function that has not been loaded: {}",
5900                stringify!(GetSetTrackState)
5901            )),
5902            Some(f) => f(track, str, str_sz),
5903        }
5904    }
5905    pub unsafe fn GetSetTrackState2(
5906        &self,
5907        track: *mut root::MediaTrack,
5908        str: *mut ::std::os::raw::c_char,
5909        str_sz: ::std::os::raw::c_int,
5910        isundo: bool,
5911    ) -> bool {
5912        match self.pointers.GetSetTrackState2 {
5913            None => panic!(format!(
5914                "Attempt to use a REAPER function that has not been loaded: {}",
5915                stringify!(GetSetTrackState2)
5916            )),
5917            Some(f) => f(track, str, str_sz, isundo),
5918        }
5919    }
5920    pub unsafe fn GetSubProjectFromSource(
5921        &self,
5922        src: *mut root::PCM_source,
5923    ) -> *mut root::ReaProject {
5924        match self.pointers.GetSubProjectFromSource {
5925            None => panic!(format!(
5926                "Attempt to use a REAPER function that has not been loaded: {}",
5927                stringify!(GetSubProjectFromSource)
5928            )),
5929            Some(f) => f(src),
5930        }
5931    }
5932    pub unsafe fn GetTake(
5933        &self,
5934        item: *mut root::MediaItem,
5935        takeidx: ::std::os::raw::c_int,
5936    ) -> *mut root::MediaItem_Take {
5937        match self.pointers.GetTake {
5938            None => panic!(format!(
5939                "Attempt to use a REAPER function that has not been loaded: {}",
5940                stringify!(GetTake)
5941            )),
5942            Some(f) => f(item, takeidx),
5943        }
5944    }
5945    pub unsafe fn GetTakeEnvelope(
5946        &self,
5947        take: *mut root::MediaItem_Take,
5948        envidx: ::std::os::raw::c_int,
5949    ) -> *mut root::TrackEnvelope {
5950        match self.pointers.GetTakeEnvelope {
5951            None => panic!(format!(
5952                "Attempt to use a REAPER function that has not been loaded: {}",
5953                stringify!(GetTakeEnvelope)
5954            )),
5955            Some(f) => f(take, envidx),
5956        }
5957    }
5958    pub unsafe fn GetTakeEnvelopeByName(
5959        &self,
5960        take: *mut root::MediaItem_Take,
5961        envname: *const ::std::os::raw::c_char,
5962    ) -> *mut root::TrackEnvelope {
5963        match self.pointers.GetTakeEnvelopeByName {
5964            None => panic!(format!(
5965                "Attempt to use a REAPER function that has not been loaded: {}",
5966                stringify!(GetTakeEnvelopeByName)
5967            )),
5968            Some(f) => f(take, envname),
5969        }
5970    }
5971    pub unsafe fn GetTakeName(
5972        &self,
5973        take: *mut root::MediaItem_Take,
5974    ) -> *const ::std::os::raw::c_char {
5975        match self.pointers.GetTakeName {
5976            None => panic!(format!(
5977                "Attempt to use a REAPER function that has not been loaded: {}",
5978                stringify!(GetTakeName)
5979            )),
5980            Some(f) => f(take),
5981        }
5982    }
5983    pub unsafe fn GetTakeNumStretchMarkers(
5984        &self,
5985        take: *mut root::MediaItem_Take,
5986    ) -> ::std::os::raw::c_int {
5987        match self.pointers.GetTakeNumStretchMarkers {
5988            None => panic!(format!(
5989                "Attempt to use a REAPER function that has not been loaded: {}",
5990                stringify!(GetTakeNumStretchMarkers)
5991            )),
5992            Some(f) => f(take),
5993        }
5994    }
5995    pub unsafe fn GetTakeStretchMarker(
5996        &self,
5997        take: *mut root::MediaItem_Take,
5998        idx: ::std::os::raw::c_int,
5999        posOut: *mut f64,
6000        srcposOutOptional: *mut f64,
6001    ) -> ::std::os::raw::c_int {
6002        match self.pointers.GetTakeStretchMarker {
6003            None => panic!(format!(
6004                "Attempt to use a REAPER function that has not been loaded: {}",
6005                stringify!(GetTakeStretchMarker)
6006            )),
6007            Some(f) => f(take, idx, posOut, srcposOutOptional),
6008        }
6009    }
6010    pub unsafe fn GetTakeStretchMarkerSlope(
6011        &self,
6012        take: *mut root::MediaItem_Take,
6013        idx: ::std::os::raw::c_int,
6014    ) -> f64 {
6015        match self.pointers.GetTakeStretchMarkerSlope {
6016            None => panic!(format!(
6017                "Attempt to use a REAPER function that has not been loaded: {}",
6018                stringify!(GetTakeStretchMarkerSlope)
6019            )),
6020            Some(f) => f(take, idx),
6021        }
6022    }
6023    pub unsafe fn GetTCPFXParm(
6024        &self,
6025        project: *mut root::ReaProject,
6026        track: *mut root::MediaTrack,
6027        index: ::std::os::raw::c_int,
6028        fxindexOut: *mut ::std::os::raw::c_int,
6029        parmidxOut: *mut ::std::os::raw::c_int,
6030    ) -> bool {
6031        match self.pointers.GetTCPFXParm {
6032            None => panic!(format!(
6033                "Attempt to use a REAPER function that has not been loaded: {}",
6034                stringify!(GetTCPFXParm)
6035            )),
6036            Some(f) => f(project, track, index, fxindexOut, parmidxOut),
6037        }
6038    }
6039    pub unsafe fn GetTempoMatchPlayRate(
6040        &self,
6041        source: *mut root::PCM_source,
6042        srcscale: f64,
6043        position: f64,
6044        mult: f64,
6045        rateOut: *mut f64,
6046        targetlenOut: *mut f64,
6047    ) -> bool {
6048        match self.pointers.GetTempoMatchPlayRate {
6049            None => panic!(format!(
6050                "Attempt to use a REAPER function that has not been loaded: {}",
6051                stringify!(GetTempoMatchPlayRate)
6052            )),
6053            Some(f) => f(source, srcscale, position, mult, rateOut, targetlenOut),
6054        }
6055    }
6056    pub unsafe fn GetTempoTimeSigMarker(
6057        &self,
6058        proj: *mut root::ReaProject,
6059        ptidx: ::std::os::raw::c_int,
6060        timeposOut: *mut f64,
6061        measureposOut: *mut ::std::os::raw::c_int,
6062        beatposOut: *mut f64,
6063        bpmOut: *mut f64,
6064        timesig_numOut: *mut ::std::os::raw::c_int,
6065        timesig_denomOut: *mut ::std::os::raw::c_int,
6066        lineartempoOut: *mut bool,
6067    ) -> bool {
6068        match self.pointers.GetTempoTimeSigMarker {
6069            None => panic!(format!(
6070                "Attempt to use a REAPER function that has not been loaded: {}",
6071                stringify!(GetTempoTimeSigMarker)
6072            )),
6073            Some(f) => f(
6074                proj,
6075                ptidx,
6076                timeposOut,
6077                measureposOut,
6078                beatposOut,
6079                bpmOut,
6080                timesig_numOut,
6081                timesig_denomOut,
6082                lineartempoOut,
6083            ),
6084        }
6085    }
6086    pub fn GetToggleCommandState(
6087        &self,
6088        command_id: ::std::os::raw::c_int,
6089    ) -> ::std::os::raw::c_int {
6090        match self.pointers.GetToggleCommandState {
6091            None => panic!(format!(
6092                "Attempt to use a REAPER function that has not been loaded: {}",
6093                stringify!(GetToggleCommandState)
6094            )),
6095            Some(f) => f(command_id),
6096        }
6097    }
6098    pub unsafe fn GetToggleCommandState2(
6099        &self,
6100        section: *mut root::KbdSectionInfo,
6101        command_id: ::std::os::raw::c_int,
6102    ) -> ::std::os::raw::c_int {
6103        match self.pointers.GetToggleCommandState2 {
6104            None => panic!(format!(
6105                "Attempt to use a REAPER function that has not been loaded: {}",
6106                stringify!(GetToggleCommandState2)
6107            )),
6108            Some(f) => f(section, command_id),
6109        }
6110    }
6111    pub fn GetToggleCommandStateEx(
6112        &self,
6113        section_id: ::std::os::raw::c_int,
6114        command_id: ::std::os::raw::c_int,
6115    ) -> ::std::os::raw::c_int {
6116        match self.pointers.GetToggleCommandStateEx {
6117            None => panic!(format!(
6118                "Attempt to use a REAPER function that has not been loaded: {}",
6119                stringify!(GetToggleCommandStateEx)
6120            )),
6121            Some(f) => f(section_id, command_id),
6122        }
6123    }
6124    pub unsafe fn GetToggleCommandStateThroughHooks(
6125        &self,
6126        section: *mut root::KbdSectionInfo,
6127        command_id: ::std::os::raw::c_int,
6128    ) -> ::std::os::raw::c_int {
6129        match self.pointers.GetToggleCommandStateThroughHooks {
6130            None => panic!(format!(
6131                "Attempt to use a REAPER function that has not been loaded: {}",
6132                stringify!(GetToggleCommandStateThroughHooks)
6133            )),
6134            Some(f) => f(section, command_id),
6135        }
6136    }
6137    pub fn GetTooltipWindow(&self) -> root::HWND {
6138        match self.pointers.GetTooltipWindow {
6139            None => panic!(format!(
6140                "Attempt to use a REAPER function that has not been loaded: {}",
6141                stringify!(GetTooltipWindow)
6142            )),
6143            Some(f) => f(),
6144        }
6145    }
6146    pub unsafe fn GetTrack(
6147        &self,
6148        proj: *mut root::ReaProject,
6149        trackidx: ::std::os::raw::c_int,
6150    ) -> *mut root::MediaTrack {
6151        match self.pointers.GetTrack {
6152            None => panic!(format!(
6153                "Attempt to use a REAPER function that has not been loaded: {}",
6154                stringify!(GetTrack)
6155            )),
6156            Some(f) => f(proj, trackidx),
6157        }
6158    }
6159    pub unsafe fn GetTrackAutomationMode(
6160        &self,
6161        tr: *mut root::MediaTrack,
6162    ) -> ::std::os::raw::c_int {
6163        match self.pointers.GetTrackAutomationMode {
6164            None => panic!(format!(
6165                "Attempt to use a REAPER function that has not been loaded: {}",
6166                stringify!(GetTrackAutomationMode)
6167            )),
6168            Some(f) => f(tr),
6169        }
6170    }
6171    pub unsafe fn GetTrackColor(&self, track: *mut root::MediaTrack) -> ::std::os::raw::c_int {
6172        match self.pointers.GetTrackColor {
6173            None => panic!(format!(
6174                "Attempt to use a REAPER function that has not been loaded: {}",
6175                stringify!(GetTrackColor)
6176            )),
6177            Some(f) => f(track),
6178        }
6179    }
6180    pub unsafe fn GetTrackDepth(&self, track: *mut root::MediaTrack) -> ::std::os::raw::c_int {
6181        match self.pointers.GetTrackDepth {
6182            None => panic!(format!(
6183                "Attempt to use a REAPER function that has not been loaded: {}",
6184                stringify!(GetTrackDepth)
6185            )),
6186            Some(f) => f(track),
6187        }
6188    }
6189    pub unsafe fn GetTrackEnvelope(
6190        &self,
6191        track: *mut root::MediaTrack,
6192        envidx: ::std::os::raw::c_int,
6193    ) -> *mut root::TrackEnvelope {
6194        match self.pointers.GetTrackEnvelope {
6195            None => panic!(format!(
6196                "Attempt to use a REAPER function that has not been loaded: {}",
6197                stringify!(GetTrackEnvelope)
6198            )),
6199            Some(f) => f(track, envidx),
6200        }
6201    }
6202    pub unsafe fn GetTrackEnvelopeByChunkName(
6203        &self,
6204        tr: *mut root::MediaTrack,
6205        cfgchunkname: *const ::std::os::raw::c_char,
6206    ) -> *mut root::TrackEnvelope {
6207        match self.pointers.GetTrackEnvelopeByChunkName {
6208            None => panic!(format!(
6209                "Attempt to use a REAPER function that has not been loaded: {}",
6210                stringify!(GetTrackEnvelopeByChunkName)
6211            )),
6212            Some(f) => f(tr, cfgchunkname),
6213        }
6214    }
6215    pub unsafe fn GetTrackEnvelopeByName(
6216        &self,
6217        track: *mut root::MediaTrack,
6218        envname: *const ::std::os::raw::c_char,
6219    ) -> *mut root::TrackEnvelope {
6220        match self.pointers.GetTrackEnvelopeByName {
6221            None => panic!(format!(
6222                "Attempt to use a REAPER function that has not been loaded: {}",
6223                stringify!(GetTrackEnvelopeByName)
6224            )),
6225            Some(f) => f(track, envname),
6226        }
6227    }
6228    pub unsafe fn GetTrackFromPoint(
6229        &self,
6230        screen_x: ::std::os::raw::c_int,
6231        screen_y: ::std::os::raw::c_int,
6232        infoOutOptional: *mut ::std::os::raw::c_int,
6233    ) -> *mut root::MediaTrack {
6234        match self.pointers.GetTrackFromPoint {
6235            None => panic!(format!(
6236                "Attempt to use a REAPER function that has not been loaded: {}",
6237                stringify!(GetTrackFromPoint)
6238            )),
6239            Some(f) => f(screen_x, screen_y, infoOutOptional),
6240        }
6241    }
6242    pub unsafe fn GetTrackGUID(&self, tr: *mut root::MediaTrack) -> *mut root::GUID {
6243        match self.pointers.GetTrackGUID {
6244            None => panic!(format!(
6245                "Attempt to use a REAPER function that has not been loaded: {}",
6246                stringify!(GetTrackGUID)
6247            )),
6248            Some(f) => f(tr),
6249        }
6250    }
6251    pub unsafe fn GetTrackInfo(
6252        &self,
6253        track: root::INT_PTR,
6254        flags: *mut ::std::os::raw::c_int,
6255    ) -> *const ::std::os::raw::c_char {
6256        match self.pointers.GetTrackInfo {
6257            None => panic!(format!(
6258                "Attempt to use a REAPER function that has not been loaded: {}",
6259                stringify!(GetTrackInfo)
6260            )),
6261            Some(f) => f(track, flags),
6262        }
6263    }
6264    pub unsafe fn GetTrackMediaItem(
6265        &self,
6266        tr: *mut root::MediaTrack,
6267        itemidx: ::std::os::raw::c_int,
6268    ) -> *mut root::MediaItem {
6269        match self.pointers.GetTrackMediaItem {
6270            None => panic!(format!(
6271                "Attempt to use a REAPER function that has not been loaded: {}",
6272                stringify!(GetTrackMediaItem)
6273            )),
6274            Some(f) => f(tr, itemidx),
6275        }
6276    }
6277    pub unsafe fn GetTrackMIDILyrics(
6278        &self,
6279        track: *mut root::MediaTrack,
6280        flag: ::std::os::raw::c_int,
6281        bufWantNeedBig: *mut ::std::os::raw::c_char,
6282        bufWantNeedBig_sz: *mut ::std::os::raw::c_int,
6283    ) -> bool {
6284        match self.pointers.GetTrackMIDILyrics {
6285            None => panic!(format!(
6286                "Attempt to use a REAPER function that has not been loaded: {}",
6287                stringify!(GetTrackMIDILyrics)
6288            )),
6289            Some(f) => f(track, flag, bufWantNeedBig, bufWantNeedBig_sz),
6290        }
6291    }
6292    pub fn GetTrackMIDINoteName(
6293        &self,
6294        track: ::std::os::raw::c_int,
6295        pitch: ::std::os::raw::c_int,
6296        chan: ::std::os::raw::c_int,
6297    ) -> *const ::std::os::raw::c_char {
6298        match self.pointers.GetTrackMIDINoteName {
6299            None => panic!(format!(
6300                "Attempt to use a REAPER function that has not been loaded: {}",
6301                stringify!(GetTrackMIDINoteName)
6302            )),
6303            Some(f) => f(track, pitch, chan),
6304        }
6305    }
6306    pub unsafe fn GetTrackMIDINoteNameEx(
6307        &self,
6308        proj: *mut root::ReaProject,
6309        track: *mut root::MediaTrack,
6310        pitch: ::std::os::raw::c_int,
6311        chan: ::std::os::raw::c_int,
6312    ) -> *const ::std::os::raw::c_char {
6313        match self.pointers.GetTrackMIDINoteNameEx {
6314            None => panic!(format!(
6315                "Attempt to use a REAPER function that has not been loaded: {}",
6316                stringify!(GetTrackMIDINoteNameEx)
6317            )),
6318            Some(f) => f(proj, track, pitch, chan),
6319        }
6320    }
6321    pub unsafe fn GetTrackMIDINoteRange(
6322        &self,
6323        proj: *mut root::ReaProject,
6324        track: *mut root::MediaTrack,
6325        note_loOut: *mut ::std::os::raw::c_int,
6326        note_hiOut: *mut ::std::os::raw::c_int,
6327    ) {
6328        match self.pointers.GetTrackMIDINoteRange {
6329            None => panic!(format!(
6330                "Attempt to use a REAPER function that has not been loaded: {}",
6331                stringify!(GetTrackMIDINoteRange)
6332            )),
6333            Some(f) => f(proj, track, note_loOut, note_hiOut),
6334        }
6335    }
6336    pub unsafe fn GetTrackName(
6337        &self,
6338        track: *mut root::MediaTrack,
6339        bufOut: *mut ::std::os::raw::c_char,
6340        bufOut_sz: ::std::os::raw::c_int,
6341    ) -> bool {
6342        match self.pointers.GetTrackName {
6343            None => panic!(format!(
6344                "Attempt to use a REAPER function that has not been loaded: {}",
6345                stringify!(GetTrackName)
6346            )),
6347            Some(f) => f(track, bufOut, bufOut_sz),
6348        }
6349    }
6350    pub unsafe fn GetTrackNumMediaItems(&self, tr: *mut root::MediaTrack) -> ::std::os::raw::c_int {
6351        match self.pointers.GetTrackNumMediaItems {
6352            None => panic!(format!(
6353                "Attempt to use a REAPER function that has not been loaded: {}",
6354                stringify!(GetTrackNumMediaItems)
6355            )),
6356            Some(f) => f(tr),
6357        }
6358    }
6359    pub unsafe fn GetTrackNumSends(
6360        &self,
6361        tr: *mut root::MediaTrack,
6362        category: ::std::os::raw::c_int,
6363    ) -> ::std::os::raw::c_int {
6364        match self.pointers.GetTrackNumSends {
6365            None => panic!(format!(
6366                "Attempt to use a REAPER function that has not been loaded: {}",
6367                stringify!(GetTrackNumSends)
6368            )),
6369            Some(f) => f(tr, category),
6370        }
6371    }
6372    pub unsafe fn GetTrackReceiveName(
6373        &self,
6374        track: *mut root::MediaTrack,
6375        recv_index: ::std::os::raw::c_int,
6376        buf: *mut ::std::os::raw::c_char,
6377        buf_sz: ::std::os::raw::c_int,
6378    ) -> bool {
6379        match self.pointers.GetTrackReceiveName {
6380            None => panic!(format!(
6381                "Attempt to use a REAPER function that has not been loaded: {}",
6382                stringify!(GetTrackReceiveName)
6383            )),
6384            Some(f) => f(track, recv_index, buf, buf_sz),
6385        }
6386    }
6387    pub unsafe fn GetTrackReceiveUIMute(
6388        &self,
6389        track: *mut root::MediaTrack,
6390        recv_index: ::std::os::raw::c_int,
6391        muteOut: *mut bool,
6392    ) -> bool {
6393        match self.pointers.GetTrackReceiveUIMute {
6394            None => panic!(format!(
6395                "Attempt to use a REAPER function that has not been loaded: {}",
6396                stringify!(GetTrackReceiveUIMute)
6397            )),
6398            Some(f) => f(track, recv_index, muteOut),
6399        }
6400    }
6401    pub unsafe fn GetTrackReceiveUIVolPan(
6402        &self,
6403        track: *mut root::MediaTrack,
6404        recv_index: ::std::os::raw::c_int,
6405        volumeOut: *mut f64,
6406        panOut: *mut f64,
6407    ) -> bool {
6408        match self.pointers.GetTrackReceiveUIVolPan {
6409            None => panic!(format!(
6410                "Attempt to use a REAPER function that has not been loaded: {}",
6411                stringify!(GetTrackReceiveUIVolPan)
6412            )),
6413            Some(f) => f(track, recv_index, volumeOut, panOut),
6414        }
6415    }
6416    pub unsafe fn GetTrackSendInfo_Value(
6417        &self,
6418        tr: *mut root::MediaTrack,
6419        category: ::std::os::raw::c_int,
6420        sendidx: ::std::os::raw::c_int,
6421        parmname: *const ::std::os::raw::c_char,
6422    ) -> f64 {
6423        match self.pointers.GetTrackSendInfo_Value {
6424            None => panic!(format!(
6425                "Attempt to use a REAPER function that has not been loaded: {}",
6426                stringify!(GetTrackSendInfo_Value)
6427            )),
6428            Some(f) => f(tr, category, sendidx, parmname),
6429        }
6430    }
6431    pub unsafe fn GetTrackSendName(
6432        &self,
6433        track: *mut root::MediaTrack,
6434        send_index: ::std::os::raw::c_int,
6435        buf: *mut ::std::os::raw::c_char,
6436        buf_sz: ::std::os::raw::c_int,
6437    ) -> bool {
6438        match self.pointers.GetTrackSendName {
6439            None => panic!(format!(
6440                "Attempt to use a REAPER function that has not been loaded: {}",
6441                stringify!(GetTrackSendName)
6442            )),
6443            Some(f) => f(track, send_index, buf, buf_sz),
6444        }
6445    }
6446    pub unsafe fn GetTrackSendUIMute(
6447        &self,
6448        track: *mut root::MediaTrack,
6449        send_index: ::std::os::raw::c_int,
6450        muteOut: *mut bool,
6451    ) -> bool {
6452        match self.pointers.GetTrackSendUIMute {
6453            None => panic!(format!(
6454                "Attempt to use a REAPER function that has not been loaded: {}",
6455                stringify!(GetTrackSendUIMute)
6456            )),
6457            Some(f) => f(track, send_index, muteOut),
6458        }
6459    }
6460    pub unsafe fn GetTrackSendUIVolPan(
6461        &self,
6462        track: *mut root::MediaTrack,
6463        send_index: ::std::os::raw::c_int,
6464        volumeOut: *mut f64,
6465        panOut: *mut f64,
6466    ) -> bool {
6467        match self.pointers.GetTrackSendUIVolPan {
6468            None => panic!(format!(
6469                "Attempt to use a REAPER function that has not been loaded: {}",
6470                stringify!(GetTrackSendUIVolPan)
6471            )),
6472            Some(f) => f(track, send_index, volumeOut, panOut),
6473        }
6474    }
6475    pub unsafe fn GetTrackState(
6476        &self,
6477        track: *mut root::MediaTrack,
6478        flagsOut: *mut ::std::os::raw::c_int,
6479    ) -> *const ::std::os::raw::c_char {
6480        match self.pointers.GetTrackState {
6481            None => panic!(format!(
6482                "Attempt to use a REAPER function that has not been loaded: {}",
6483                stringify!(GetTrackState)
6484            )),
6485            Some(f) => f(track, flagsOut),
6486        }
6487    }
6488    pub unsafe fn GetTrackStateChunk(
6489        &self,
6490        track: *mut root::MediaTrack,
6491        strNeedBig: *mut ::std::os::raw::c_char,
6492        strNeedBig_sz: ::std::os::raw::c_int,
6493        isundoOptional: bool,
6494    ) -> bool {
6495        match self.pointers.GetTrackStateChunk {
6496            None => panic!(format!(
6497                "Attempt to use a REAPER function that has not been loaded: {}",
6498                stringify!(GetTrackStateChunk)
6499            )),
6500            Some(f) => f(track, strNeedBig, strNeedBig_sz, isundoOptional),
6501        }
6502    }
6503    pub unsafe fn GetTrackUIMute(&self, track: *mut root::MediaTrack, muteOut: *mut bool) -> bool {
6504        match self.pointers.GetTrackUIMute {
6505            None => panic!(format!(
6506                "Attempt to use a REAPER function that has not been loaded: {}",
6507                stringify!(GetTrackUIMute)
6508            )),
6509            Some(f) => f(track, muteOut),
6510        }
6511    }
6512    pub unsafe fn GetTrackUIPan(
6513        &self,
6514        track: *mut root::MediaTrack,
6515        pan1Out: *mut f64,
6516        pan2Out: *mut f64,
6517        panmodeOut: *mut ::std::os::raw::c_int,
6518    ) -> bool {
6519        match self.pointers.GetTrackUIPan {
6520            None => panic!(format!(
6521                "Attempt to use a REAPER function that has not been loaded: {}",
6522                stringify!(GetTrackUIPan)
6523            )),
6524            Some(f) => f(track, pan1Out, pan2Out, panmodeOut),
6525        }
6526    }
6527    pub unsafe fn GetTrackUIVolPan(
6528        &self,
6529        track: *mut root::MediaTrack,
6530        volumeOut: *mut f64,
6531        panOut: *mut f64,
6532    ) -> bool {
6533        match self.pointers.GetTrackUIVolPan {
6534            None => panic!(format!(
6535                "Attempt to use a REAPER function that has not been loaded: {}",
6536                stringify!(GetTrackUIVolPan)
6537            )),
6538            Some(f) => f(track, volumeOut, panOut),
6539        }
6540    }
6541    pub unsafe fn GetUnderrunTime(
6542        &self,
6543        audio_xrunOutOptional: *mut ::std::os::raw::c_uint,
6544        media_xrunOutOptional: *mut ::std::os::raw::c_uint,
6545        curtimeOutOptional: *mut ::std::os::raw::c_uint,
6546    ) {
6547        match self.pointers.GetUnderrunTime {
6548            None => panic!(format!(
6549                "Attempt to use a REAPER function that has not been loaded: {}",
6550                stringify!(GetUnderrunTime)
6551            )),
6552            Some(f) => f(
6553                audio_xrunOutOptional,
6554                media_xrunOutOptional,
6555                curtimeOutOptional,
6556            ),
6557        }
6558    }
6559    pub unsafe fn GetUserFileNameForRead(
6560        &self,
6561        filenameNeed4096: *mut ::std::os::raw::c_char,
6562        title: *const ::std::os::raw::c_char,
6563        defext: *const ::std::os::raw::c_char,
6564    ) -> bool {
6565        match self.pointers.GetUserFileNameForRead {
6566            None => panic!(format!(
6567                "Attempt to use a REAPER function that has not been loaded: {}",
6568                stringify!(GetUserFileNameForRead)
6569            )),
6570            Some(f) => f(filenameNeed4096, title, defext),
6571        }
6572    }
6573    pub unsafe fn GetUserInputs(
6574        &self,
6575        title: *const ::std::os::raw::c_char,
6576        num_inputs: ::std::os::raw::c_int,
6577        captions_csv: *const ::std::os::raw::c_char,
6578        retvals_csv: *mut ::std::os::raw::c_char,
6579        retvals_csv_sz: ::std::os::raw::c_int,
6580    ) -> bool {
6581        match self.pointers.GetUserInputs {
6582            None => panic!(format!(
6583                "Attempt to use a REAPER function that has not been loaded: {}",
6584                stringify!(GetUserInputs)
6585            )),
6586            Some(f) => f(title, num_inputs, captions_csv, retvals_csv, retvals_csv_sz),
6587        }
6588    }
6589    pub unsafe fn GoToMarker(
6590        &self,
6591        proj: *mut root::ReaProject,
6592        marker_index: ::std::os::raw::c_int,
6593        use_timeline_order: bool,
6594    ) {
6595        match self.pointers.GoToMarker {
6596            None => panic!(format!(
6597                "Attempt to use a REAPER function that has not been loaded: {}",
6598                stringify!(GoToMarker)
6599            )),
6600            Some(f) => f(proj, marker_index, use_timeline_order),
6601        }
6602    }
6603    pub unsafe fn GoToRegion(
6604        &self,
6605        proj: *mut root::ReaProject,
6606        region_index: ::std::os::raw::c_int,
6607        use_timeline_order: bool,
6608    ) {
6609        match self.pointers.GoToRegion {
6610            None => panic!(format!(
6611                "Attempt to use a REAPER function that has not been loaded: {}",
6612                stringify!(GoToRegion)
6613            )),
6614            Some(f) => f(proj, region_index, use_timeline_order),
6615        }
6616    }
6617    pub unsafe fn GR_SelectColor(
6618        &self,
6619        hwnd: root::HWND,
6620        colorOut: *mut ::std::os::raw::c_int,
6621    ) -> ::std::os::raw::c_int {
6622        match self.pointers.GR_SelectColor {
6623            None => panic!(format!(
6624                "Attempt to use a REAPER function that has not been loaded: {}",
6625                stringify!(GR_SelectColor)
6626            )),
6627            Some(f) => f(hwnd, colorOut),
6628        }
6629    }
6630    pub fn GSC_mainwnd(&self, t: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
6631        match self.pointers.GSC_mainwnd {
6632            None => panic!(format!(
6633                "Attempt to use a REAPER function that has not been loaded: {}",
6634                stringify!(GSC_mainwnd)
6635            )),
6636            Some(f) => f(t),
6637        }
6638    }
6639    pub unsafe fn guidToString(
6640        &self,
6641        g: *const root::GUID,
6642        destNeed64: *mut ::std::os::raw::c_char,
6643    ) {
6644        match self.pointers.guidToString {
6645            None => panic!(format!(
6646                "Attempt to use a REAPER function that has not been loaded: {}",
6647                stringify!(guidToString)
6648            )),
6649            Some(f) => f(g, destNeed64),
6650        }
6651    }
6652    pub unsafe fn HasExtState(
6653        &self,
6654        section: *const ::std::os::raw::c_char,
6655        key: *const ::std::os::raw::c_char,
6656    ) -> bool {
6657        match self.pointers.HasExtState {
6658            None => panic!(format!(
6659                "Attempt to use a REAPER function that has not been loaded: {}",
6660                stringify!(HasExtState)
6661            )),
6662            Some(f) => f(section, key),
6663        }
6664    }
6665    pub fn HasTrackMIDIPrograms(
6666        &self,
6667        track: ::std::os::raw::c_int,
6668    ) -> *const ::std::os::raw::c_char {
6669        match self.pointers.HasTrackMIDIPrograms {
6670            None => panic!(format!(
6671                "Attempt to use a REAPER function that has not been loaded: {}",
6672                stringify!(HasTrackMIDIPrograms)
6673            )),
6674            Some(f) => f(track),
6675        }
6676    }
6677    pub unsafe fn HasTrackMIDIProgramsEx(
6678        &self,
6679        proj: *mut root::ReaProject,
6680        track: *mut root::MediaTrack,
6681    ) -> *const ::std::os::raw::c_char {
6682        match self.pointers.HasTrackMIDIProgramsEx {
6683            None => panic!(format!(
6684                "Attempt to use a REAPER function that has not been loaded: {}",
6685                stringify!(HasTrackMIDIProgramsEx)
6686            )),
6687            Some(f) => f(proj, track),
6688        }
6689    }
6690    pub unsafe fn Help_Set(
6691        &self,
6692        helpstring: *const ::std::os::raw::c_char,
6693        is_temporary_help: bool,
6694    ) {
6695        match self.pointers.Help_Set {
6696            None => panic!(format!(
6697                "Attempt to use a REAPER function that has not been loaded: {}",
6698                stringify!(Help_Set)
6699            )),
6700            Some(f) => f(helpstring, is_temporary_help),
6701        }
6702    }
6703    pub unsafe fn HiresPeaksFromSource(
6704        &self,
6705        src: *mut root::PCM_source,
6706        block: *mut root::PCM_source_peaktransfer_t,
6707    ) {
6708        match self.pointers.HiresPeaksFromSource {
6709            None => panic!(format!(
6710                "Attempt to use a REAPER function that has not been loaded: {}",
6711                stringify!(HiresPeaksFromSource)
6712            )),
6713            Some(f) => f(src, block),
6714        }
6715    }
6716    pub unsafe fn image_resolve_fn(
6717        &self,
6718        in_: *const ::std::os::raw::c_char,
6719        out: *mut ::std::os::raw::c_char,
6720        out_sz: ::std::os::raw::c_int,
6721    ) {
6722        match self.pointers.image_resolve_fn {
6723            None => panic!(format!(
6724                "Attempt to use a REAPER function that has not been loaded: {}",
6725                stringify!(image_resolve_fn)
6726            )),
6727            Some(f) => f(in_, out, out_sz),
6728        }
6729    }
6730    pub unsafe fn InsertAutomationItem(
6731        &self,
6732        env: *mut root::TrackEnvelope,
6733        pool_id: ::std::os::raw::c_int,
6734        position: f64,
6735        length: f64,
6736    ) -> ::std::os::raw::c_int {
6737        match self.pointers.InsertAutomationItem {
6738            None => panic!(format!(
6739                "Attempt to use a REAPER function that has not been loaded: {}",
6740                stringify!(InsertAutomationItem)
6741            )),
6742            Some(f) => f(env, pool_id, position, length),
6743        }
6744    }
6745    pub unsafe fn InsertEnvelopePoint(
6746        &self,
6747        envelope: *mut root::TrackEnvelope,
6748        time: f64,
6749        value: f64,
6750        shape: ::std::os::raw::c_int,
6751        tension: f64,
6752        selected: bool,
6753        noSortInOptional: *mut bool,
6754    ) -> bool {
6755        match self.pointers.InsertEnvelopePoint {
6756            None => panic!(format!(
6757                "Attempt to use a REAPER function that has not been loaded: {}",
6758                stringify!(InsertEnvelopePoint)
6759            )),
6760            Some(f) => f(
6761                envelope,
6762                time,
6763                value,
6764                shape,
6765                tension,
6766                selected,
6767                noSortInOptional,
6768            ),
6769        }
6770    }
6771    pub unsafe fn InsertEnvelopePointEx(
6772        &self,
6773        envelope: *mut root::TrackEnvelope,
6774        autoitem_idx: ::std::os::raw::c_int,
6775        time: f64,
6776        value: f64,
6777        shape: ::std::os::raw::c_int,
6778        tension: f64,
6779        selected: bool,
6780        noSortInOptional: *mut bool,
6781    ) -> bool {
6782        match self.pointers.InsertEnvelopePointEx {
6783            None => panic!(format!(
6784                "Attempt to use a REAPER function that has not been loaded: {}",
6785                stringify!(InsertEnvelopePointEx)
6786            )),
6787            Some(f) => f(
6788                envelope,
6789                autoitem_idx,
6790                time,
6791                value,
6792                shape,
6793                tension,
6794                selected,
6795                noSortInOptional,
6796            ),
6797        }
6798    }
6799    pub unsafe fn InsertMedia(
6800        &self,
6801        file: *const ::std::os::raw::c_char,
6802        mode: ::std::os::raw::c_int,
6803    ) -> ::std::os::raw::c_int {
6804        match self.pointers.InsertMedia {
6805            None => panic!(format!(
6806                "Attempt to use a REAPER function that has not been loaded: {}",
6807                stringify!(InsertMedia)
6808            )),
6809            Some(f) => f(file, mode),
6810        }
6811    }
6812    pub unsafe fn InsertMediaSection(
6813        &self,
6814        file: *const ::std::os::raw::c_char,
6815        mode: ::std::os::raw::c_int,
6816        startpct: f64,
6817        endpct: f64,
6818        pitchshift: f64,
6819    ) -> ::std::os::raw::c_int {
6820        match self.pointers.InsertMediaSection {
6821            None => panic!(format!(
6822                "Attempt to use a REAPER function that has not been loaded: {}",
6823                stringify!(InsertMediaSection)
6824            )),
6825            Some(f) => f(file, mode, startpct, endpct, pitchshift),
6826        }
6827    }
6828    pub fn InsertTrackAtIndex(&self, idx: ::std::os::raw::c_int, wantDefaults: bool) {
6829        match self.pointers.InsertTrackAtIndex {
6830            None => panic!(format!(
6831                "Attempt to use a REAPER function that has not been loaded: {}",
6832                stringify!(InsertTrackAtIndex)
6833            )),
6834            Some(f) => f(idx, wantDefaults),
6835        }
6836    }
6837    pub fn IsInRealTimeAudio(&self) -> ::std::os::raw::c_int {
6838        match self.pointers.IsInRealTimeAudio {
6839            None => panic!(format!(
6840                "Attempt to use a REAPER function that has not been loaded: {}",
6841                stringify!(IsInRealTimeAudio)
6842            )),
6843            Some(f) => f(),
6844        }
6845    }
6846    pub unsafe fn IsItemTakeActiveForPlayback(
6847        &self,
6848        item: *mut root::MediaItem,
6849        take: *mut root::MediaItem_Take,
6850    ) -> bool {
6851        match self.pointers.IsItemTakeActiveForPlayback {
6852            None => panic!(format!(
6853                "Attempt to use a REAPER function that has not been loaded: {}",
6854                stringify!(IsItemTakeActiveForPlayback)
6855            )),
6856            Some(f) => f(item, take),
6857        }
6858    }
6859    pub unsafe fn IsMediaExtension(
6860        &self,
6861        ext: *const ::std::os::raw::c_char,
6862        wantOthers: bool,
6863    ) -> bool {
6864        match self.pointers.IsMediaExtension {
6865            None => panic!(format!(
6866                "Attempt to use a REAPER function that has not been loaded: {}",
6867                stringify!(IsMediaExtension)
6868            )),
6869            Some(f) => f(ext, wantOthers),
6870        }
6871    }
6872    pub unsafe fn IsMediaItemSelected(&self, item: *mut root::MediaItem) -> bool {
6873        match self.pointers.IsMediaItemSelected {
6874            None => panic!(format!(
6875                "Attempt to use a REAPER function that has not been loaded: {}",
6876                stringify!(IsMediaItemSelected)
6877            )),
6878            Some(f) => f(item),
6879        }
6880    }
6881    pub unsafe fn IsProjectDirty(&self, proj: *mut root::ReaProject) -> ::std::os::raw::c_int {
6882        match self.pointers.IsProjectDirty {
6883            None => panic!(format!(
6884                "Attempt to use a REAPER function that has not been loaded: {}",
6885                stringify!(IsProjectDirty)
6886            )),
6887            Some(f) => f(proj),
6888        }
6889    }
6890    pub fn IsREAPER(&self) -> bool {
6891        match self.pointers.IsREAPER {
6892            None => panic!(format!(
6893                "Attempt to use a REAPER function that has not been loaded: {}",
6894                stringify!(IsREAPER)
6895            )),
6896            Some(f) => f(),
6897        }
6898    }
6899    pub unsafe fn IsTrackSelected(&self, track: *mut root::MediaTrack) -> bool {
6900        match self.pointers.IsTrackSelected {
6901            None => panic!(format!(
6902                "Attempt to use a REAPER function that has not been loaded: {}",
6903                stringify!(IsTrackSelected)
6904            )),
6905            Some(f) => f(track),
6906        }
6907    }
6908    pub unsafe fn IsTrackVisible(&self, track: *mut root::MediaTrack, mixer: bool) -> bool {
6909        match self.pointers.IsTrackVisible {
6910            None => panic!(format!(
6911                "Attempt to use a REAPER function that has not been loaded: {}",
6912                stringify!(IsTrackVisible)
6913            )),
6914            Some(f) => f(track, mixer),
6915        }
6916    }
6917    pub unsafe fn joystick_create(
6918        &self,
6919        guid: *const root::GUID,
6920    ) -> *mut root::reaper_functions::joystick_device {
6921        match self.pointers.joystick_create {
6922            None => panic!(format!(
6923                "Attempt to use a REAPER function that has not been loaded: {}",
6924                stringify!(joystick_create)
6925            )),
6926            Some(f) => f(guid),
6927        }
6928    }
6929    pub unsafe fn joystick_destroy(&self, device: *mut root::reaper_functions::joystick_device) {
6930        match self.pointers.joystick_destroy {
6931            None => panic!(format!(
6932                "Attempt to use a REAPER function that has not been loaded: {}",
6933                stringify!(joystick_destroy)
6934            )),
6935            Some(f) => f(device),
6936        }
6937    }
6938    pub unsafe fn joystick_enum(
6939        &self,
6940        index: ::std::os::raw::c_int,
6941        namestrOutOptional: *mut *const ::std::os::raw::c_char,
6942    ) -> *const ::std::os::raw::c_char {
6943        match self.pointers.joystick_enum {
6944            None => panic!(format!(
6945                "Attempt to use a REAPER function that has not been loaded: {}",
6946                stringify!(joystick_enum)
6947            )),
6948            Some(f) => f(index, namestrOutOptional),
6949        }
6950    }
6951    pub unsafe fn joystick_getaxis(
6952        &self,
6953        dev: *mut root::reaper_functions::joystick_device,
6954        axis: ::std::os::raw::c_int,
6955    ) -> f64 {
6956        match self.pointers.joystick_getaxis {
6957            None => panic!(format!(
6958                "Attempt to use a REAPER function that has not been loaded: {}",
6959                stringify!(joystick_getaxis)
6960            )),
6961            Some(f) => f(dev, axis),
6962        }
6963    }
6964    pub unsafe fn joystick_getbuttonmask(
6965        &self,
6966        dev: *mut root::reaper_functions::joystick_device,
6967    ) -> ::std::os::raw::c_uint {
6968        match self.pointers.joystick_getbuttonmask {
6969            None => panic!(format!(
6970                "Attempt to use a REAPER function that has not been loaded: {}",
6971                stringify!(joystick_getbuttonmask)
6972            )),
6973            Some(f) => f(dev),
6974        }
6975    }
6976    pub unsafe fn joystick_getinfo(
6977        &self,
6978        dev: *mut root::reaper_functions::joystick_device,
6979        axesOutOptional: *mut ::std::os::raw::c_int,
6980        povsOutOptional: *mut ::std::os::raw::c_int,
6981    ) -> ::std::os::raw::c_int {
6982        match self.pointers.joystick_getinfo {
6983            None => panic!(format!(
6984                "Attempt to use a REAPER function that has not been loaded: {}",
6985                stringify!(joystick_getinfo)
6986            )),
6987            Some(f) => f(dev, axesOutOptional, povsOutOptional),
6988        }
6989    }
6990    pub unsafe fn joystick_getpov(
6991        &self,
6992        dev: *mut root::reaper_functions::joystick_device,
6993        pov: ::std::os::raw::c_int,
6994    ) -> f64 {
6995        match self.pointers.joystick_getpov {
6996            None => panic!(format!(
6997                "Attempt to use a REAPER function that has not been loaded: {}",
6998                stringify!(joystick_getpov)
6999            )),
7000            Some(f) => f(dev, pov),
7001        }
7002    }
7003    pub unsafe fn joystick_update(
7004        &self,
7005        dev: *mut root::reaper_functions::joystick_device,
7006    ) -> bool {
7007        match self.pointers.joystick_update {
7008            None => panic!(format!(
7009                "Attempt to use a REAPER function that has not been loaded: {}",
7010                stringify!(joystick_update)
7011            )),
7012            Some(f) => f(dev),
7013        }
7014    }
7015    pub unsafe fn kbd_enumerateActions(
7016        &self,
7017        section: *mut root::KbdSectionInfo,
7018        idx: ::std::os::raw::c_int,
7019        nameOut: *mut *const ::std::os::raw::c_char,
7020    ) -> ::std::os::raw::c_int {
7021        match self.pointers.kbd_enumerateActions {
7022            None => panic!(format!(
7023                "Attempt to use a REAPER function that has not been loaded: {}",
7024                stringify!(kbd_enumerateActions)
7025            )),
7026            Some(f) => f(section, idx, nameOut),
7027        }
7028    }
7029    pub unsafe fn kbd_formatKeyName(&self, ac: *mut root::ACCEL, s: *mut ::std::os::raw::c_char) {
7030        match self.pointers.kbd_formatKeyName {
7031            None => panic!(format!(
7032                "Attempt to use a REAPER function that has not been loaded: {}",
7033                stringify!(kbd_formatKeyName)
7034            )),
7035            Some(f) => f(ac, s),
7036        }
7037    }
7038    pub unsafe fn kbd_getCommandName(
7039        &self,
7040        cmd: ::std::os::raw::c_int,
7041        s: *mut ::std::os::raw::c_char,
7042        section: *mut root::KbdSectionInfo,
7043    ) {
7044        match self.pointers.kbd_getCommandName {
7045            None => panic!(format!(
7046                "Attempt to use a REAPER function that has not been loaded: {}",
7047                stringify!(kbd_getCommandName)
7048            )),
7049            Some(f) => f(cmd, s, section),
7050        }
7051    }
7052    pub unsafe fn kbd_getTextFromCmd(
7053        &self,
7054        cmd: root::DWORD,
7055        section: *mut root::KbdSectionInfo,
7056    ) -> *const ::std::os::raw::c_char {
7057        match self.pointers.kbd_getTextFromCmd {
7058            None => panic!(format!(
7059                "Attempt to use a REAPER function that has not been loaded: {}",
7060                stringify!(kbd_getTextFromCmd)
7061            )),
7062            Some(f) => f(cmd, section),
7063        }
7064    }
7065    pub unsafe fn KBD_OnMainActionEx(
7066        &self,
7067        cmd: ::std::os::raw::c_int,
7068        val: ::std::os::raw::c_int,
7069        valhw: ::std::os::raw::c_int,
7070        relmode: ::std::os::raw::c_int,
7071        hwnd: root::HWND,
7072        proj: *mut root::ReaProject,
7073    ) -> ::std::os::raw::c_int {
7074        match self.pointers.KBD_OnMainActionEx {
7075            None => panic!(format!(
7076                "Attempt to use a REAPER function that has not been loaded: {}",
7077                stringify!(KBD_OnMainActionEx)
7078            )),
7079            Some(f) => f(cmd, val, valhw, relmode, hwnd, proj),
7080        }
7081    }
7082    pub unsafe fn kbd_OnMidiEvent(
7083        &self,
7084        evt: *mut root::MIDI_event_t,
7085        dev_index: ::std::os::raw::c_int,
7086    ) {
7087        match self.pointers.kbd_OnMidiEvent {
7088            None => panic!(format!(
7089                "Attempt to use a REAPER function that has not been loaded: {}",
7090                stringify!(kbd_OnMidiEvent)
7091            )),
7092            Some(f) => f(evt, dev_index),
7093        }
7094    }
7095    pub unsafe fn kbd_OnMidiList(
7096        &self,
7097        list: *mut root::MIDI_eventlist,
7098        dev_index: ::std::os::raw::c_int,
7099    ) {
7100        match self.pointers.kbd_OnMidiList {
7101            None => panic!(format!(
7102                "Attempt to use a REAPER function that has not been loaded: {}",
7103                stringify!(kbd_OnMidiList)
7104            )),
7105            Some(f) => f(list, dev_index),
7106        }
7107    }
7108    pub unsafe fn kbd_ProcessActionsMenu(
7109        &self,
7110        menu: root::HMENU,
7111        section: *mut root::KbdSectionInfo,
7112    ) {
7113        match self.pointers.kbd_ProcessActionsMenu {
7114            None => panic!(format!(
7115                "Attempt to use a REAPER function that has not been loaded: {}",
7116                stringify!(kbd_ProcessActionsMenu)
7117            )),
7118            Some(f) => f(menu, section),
7119        }
7120    }
7121    pub unsafe fn kbd_processMidiEventActionEx(
7122        &self,
7123        evt: *mut root::MIDI_event_t,
7124        section: *mut root::KbdSectionInfo,
7125        hwndCtx: root::HWND,
7126    ) -> bool {
7127        match self.pointers.kbd_processMidiEventActionEx {
7128            None => panic!(format!(
7129                "Attempt to use a REAPER function that has not been loaded: {}",
7130                stringify!(kbd_processMidiEventActionEx)
7131            )),
7132            Some(f) => f(evt, section, hwndCtx),
7133        }
7134    }
7135    pub unsafe fn kbd_reprocessMenu(&self, menu: root::HMENU, section: *mut root::KbdSectionInfo) {
7136        match self.pointers.kbd_reprocessMenu {
7137            None => panic!(format!(
7138                "Attempt to use a REAPER function that has not been loaded: {}",
7139                stringify!(kbd_reprocessMenu)
7140            )),
7141            Some(f) => f(menu, section),
7142        }
7143    }
7144    pub unsafe fn kbd_RunCommandThroughHooks(
7145        &self,
7146        section: *mut root::KbdSectionInfo,
7147        actionCommandID: *mut ::std::os::raw::c_int,
7148        val: *mut ::std::os::raw::c_int,
7149        valhw: *mut ::std::os::raw::c_int,
7150        relmode: *mut ::std::os::raw::c_int,
7151        hwnd: root::HWND,
7152    ) -> bool {
7153        match self.pointers.kbd_RunCommandThroughHooks {
7154            None => panic!(format!(
7155                "Attempt to use a REAPER function that has not been loaded: {}",
7156                stringify!(kbd_RunCommandThroughHooks)
7157            )),
7158            Some(f) => f(section, actionCommandID, val, valhw, relmode, hwnd),
7159        }
7160    }
7161    pub unsafe fn kbd_translateAccelerator(
7162        &self,
7163        hwnd: root::HWND,
7164        msg: *mut root::MSG,
7165        section: *mut root::KbdSectionInfo,
7166    ) -> ::std::os::raw::c_int {
7167        match self.pointers.kbd_translateAccelerator {
7168            None => panic!(format!(
7169                "Attempt to use a REAPER function that has not been loaded: {}",
7170                stringify!(kbd_translateAccelerator)
7171            )),
7172            Some(f) => f(hwnd, msg, section),
7173        }
7174    }
7175    pub unsafe fn kbd_translateMouse(
7176        &self,
7177        winmsg: *mut ::std::os::raw::c_void,
7178        midimsg: *mut ::std::os::raw::c_uchar,
7179    ) -> bool {
7180        match self.pointers.kbd_translateMouse {
7181            None => panic!(format!(
7182                "Attempt to use a REAPER function that has not been loaded: {}",
7183                stringify!(kbd_translateMouse)
7184            )),
7185            Some(f) => f(winmsg, midimsg),
7186        }
7187    }
7188    pub unsafe fn LICE__Destroy(&self, bm: *mut root::reaper_functions::LICE_IBitmap) {
7189        match self.pointers.LICE__Destroy {
7190            None => panic!(format!(
7191                "Attempt to use a REAPER function that has not been loaded: {}",
7192                stringify!(LICE__Destroy)
7193            )),
7194            Some(f) => f(bm),
7195        }
7196    }
7197    pub unsafe fn LICE__DestroyFont(&self, font: *mut root::reaper_functions::LICE_IFont) {
7198        match self.pointers.LICE__DestroyFont {
7199            None => panic!(format!(
7200                "Attempt to use a REAPER function that has not been loaded: {}",
7201                stringify!(LICE__DestroyFont)
7202            )),
7203            Some(f) => f(font),
7204        }
7205    }
7206    pub unsafe fn LICE__DrawText(
7207        &self,
7208        font: *mut root::reaper_functions::LICE_IFont,
7209        bm: *mut root::reaper_functions::LICE_IBitmap,
7210        str: *const ::std::os::raw::c_char,
7211        strcnt: ::std::os::raw::c_int,
7212        rect: *mut root::RECT,
7213        dtFlags: root::UINT,
7214    ) -> ::std::os::raw::c_int {
7215        match self.pointers.LICE__DrawText {
7216            None => panic!(format!(
7217                "Attempt to use a REAPER function that has not been loaded: {}",
7218                stringify!(LICE__DrawText)
7219            )),
7220            Some(f) => f(font, bm, str, strcnt, rect, dtFlags),
7221        }
7222    }
7223    pub unsafe fn LICE__GetBits(
7224        &self,
7225        bm: *mut root::reaper_functions::LICE_IBitmap,
7226    ) -> *mut ::std::os::raw::c_void {
7227        match self.pointers.LICE__GetBits {
7228            None => panic!(format!(
7229                "Attempt to use a REAPER function that has not been loaded: {}",
7230                stringify!(LICE__GetBits)
7231            )),
7232            Some(f) => f(bm),
7233        }
7234    }
7235    pub unsafe fn LICE__GetDC(&self, bm: *mut root::reaper_functions::LICE_IBitmap) -> root::HDC {
7236        match self.pointers.LICE__GetDC {
7237            None => panic!(format!(
7238                "Attempt to use a REAPER function that has not been loaded: {}",
7239                stringify!(LICE__GetDC)
7240            )),
7241            Some(f) => f(bm),
7242        }
7243    }
7244    pub unsafe fn LICE__GetHeight(
7245        &self,
7246        bm: *mut root::reaper_functions::LICE_IBitmap,
7247    ) -> ::std::os::raw::c_int {
7248        match self.pointers.LICE__GetHeight {
7249            None => panic!(format!(
7250                "Attempt to use a REAPER function that has not been loaded: {}",
7251                stringify!(LICE__GetHeight)
7252            )),
7253            Some(f) => f(bm),
7254        }
7255    }
7256    pub unsafe fn LICE__GetRowSpan(
7257        &self,
7258        bm: *mut root::reaper_functions::LICE_IBitmap,
7259    ) -> ::std::os::raw::c_int {
7260        match self.pointers.LICE__GetRowSpan {
7261            None => panic!(format!(
7262                "Attempt to use a REAPER function that has not been loaded: {}",
7263                stringify!(LICE__GetRowSpan)
7264            )),
7265            Some(f) => f(bm),
7266        }
7267    }
7268    pub unsafe fn LICE__GetWidth(
7269        &self,
7270        bm: *mut root::reaper_functions::LICE_IBitmap,
7271    ) -> ::std::os::raw::c_int {
7272        match self.pointers.LICE__GetWidth {
7273            None => panic!(format!(
7274                "Attempt to use a REAPER function that has not been loaded: {}",
7275                stringify!(LICE__GetWidth)
7276            )),
7277            Some(f) => f(bm),
7278        }
7279    }
7280    pub unsafe fn LICE__IsFlipped(&self, bm: *mut root::reaper_functions::LICE_IBitmap) -> bool {
7281        match self.pointers.LICE__IsFlipped {
7282            None => panic!(format!(
7283                "Attempt to use a REAPER function that has not been loaded: {}",
7284                stringify!(LICE__IsFlipped)
7285            )),
7286            Some(f) => f(bm),
7287        }
7288    }
7289    pub unsafe fn LICE__resize(
7290        &self,
7291        bm: *mut root::reaper_functions::LICE_IBitmap,
7292        w: ::std::os::raw::c_int,
7293        h: ::std::os::raw::c_int,
7294    ) -> bool {
7295        match self.pointers.LICE__resize {
7296            None => panic!(format!(
7297                "Attempt to use a REAPER function that has not been loaded: {}",
7298                stringify!(LICE__resize)
7299            )),
7300            Some(f) => f(bm, w, h),
7301        }
7302    }
7303    pub unsafe fn LICE__SetBkColor(
7304        &self,
7305        font: *mut root::reaper_functions::LICE_IFont,
7306        color: root::reaper_functions::LICE_pixel,
7307    ) -> root::reaper_functions::LICE_pixel {
7308        match self.pointers.LICE__SetBkColor {
7309            None => panic!(format!(
7310                "Attempt to use a REAPER function that has not been loaded: {}",
7311                stringify!(LICE__SetBkColor)
7312            )),
7313            Some(f) => f(font, color),
7314        }
7315    }
7316    pub unsafe fn LICE__SetFromHFont(
7317        &self,
7318        font: *mut root::reaper_functions::LICE_IFont,
7319        hfont: root::HFONT,
7320        flags: ::std::os::raw::c_int,
7321    ) {
7322        match self.pointers.LICE__SetFromHFont {
7323            None => panic!(format!(
7324                "Attempt to use a REAPER function that has not been loaded: {}",
7325                stringify!(LICE__SetFromHFont)
7326            )),
7327            Some(f) => f(font, hfont, flags),
7328        }
7329    }
7330    pub unsafe fn LICE__SetTextColor(
7331        &self,
7332        font: *mut root::reaper_functions::LICE_IFont,
7333        color: root::reaper_functions::LICE_pixel,
7334    ) -> root::reaper_functions::LICE_pixel {
7335        match self.pointers.LICE__SetTextColor {
7336            None => panic!(format!(
7337                "Attempt to use a REAPER function that has not been loaded: {}",
7338                stringify!(LICE__SetTextColor)
7339            )),
7340            Some(f) => f(font, color),
7341        }
7342    }
7343    pub unsafe fn LICE__SetTextCombineMode(
7344        &self,
7345        ifont: *mut root::reaper_functions::LICE_IFont,
7346        mode: ::std::os::raw::c_int,
7347        alpha: f32,
7348    ) {
7349        match self.pointers.LICE__SetTextCombineMode {
7350            None => panic!(format!(
7351                "Attempt to use a REAPER function that has not been loaded: {}",
7352                stringify!(LICE__SetTextCombineMode)
7353            )),
7354            Some(f) => f(ifont, mode, alpha),
7355        }
7356    }
7357    pub unsafe fn LICE_Arc(
7358        &self,
7359        dest: *mut root::reaper_functions::LICE_IBitmap,
7360        cx: f32,
7361        cy: f32,
7362        r: f32,
7363        minAngle: f32,
7364        maxAngle: f32,
7365        color: root::reaper_functions::LICE_pixel,
7366        alpha: f32,
7367        mode: ::std::os::raw::c_int,
7368        aa: bool,
7369    ) {
7370        match self.pointers.LICE_Arc {
7371            None => panic!(format!(
7372                "Attempt to use a REAPER function that has not been loaded: {}",
7373                stringify!(LICE_Arc)
7374            )),
7375            Some(f) => f(dest, cx, cy, r, minAngle, maxAngle, color, alpha, mode, aa),
7376        }
7377    }
7378    pub unsafe fn LICE_Blit(
7379        &self,
7380        dest: *mut root::reaper_functions::LICE_IBitmap,
7381        src: *mut root::reaper_functions::LICE_IBitmap,
7382        dstx: ::std::os::raw::c_int,
7383        dsty: ::std::os::raw::c_int,
7384        srcx: ::std::os::raw::c_int,
7385        srcy: ::std::os::raw::c_int,
7386        srcw: ::std::os::raw::c_int,
7387        srch: ::std::os::raw::c_int,
7388        alpha: f32,
7389        mode: ::std::os::raw::c_int,
7390    ) {
7391        match self.pointers.LICE_Blit {
7392            None => panic!(format!(
7393                "Attempt to use a REAPER function that has not been loaded: {}",
7394                stringify!(LICE_Blit)
7395            )),
7396            Some(f) => f(dest, src, dstx, dsty, srcx, srcy, srcw, srch, alpha, mode),
7397        }
7398    }
7399    pub unsafe fn LICE_Blur(
7400        &self,
7401        dest: *mut root::reaper_functions::LICE_IBitmap,
7402        src: *mut root::reaper_functions::LICE_IBitmap,
7403        dstx: ::std::os::raw::c_int,
7404        dsty: ::std::os::raw::c_int,
7405        srcx: ::std::os::raw::c_int,
7406        srcy: ::std::os::raw::c_int,
7407        srcw: ::std::os::raw::c_int,
7408        srch: ::std::os::raw::c_int,
7409    ) {
7410        match self.pointers.LICE_Blur {
7411            None => panic!(format!(
7412                "Attempt to use a REAPER function that has not been loaded: {}",
7413                stringify!(LICE_Blur)
7414            )),
7415            Some(f) => f(dest, src, dstx, dsty, srcx, srcy, srcw, srch),
7416        }
7417    }
7418    pub unsafe fn LICE_BorderedRect(
7419        &self,
7420        dest: *mut root::reaper_functions::LICE_IBitmap,
7421        x: ::std::os::raw::c_int,
7422        y: ::std::os::raw::c_int,
7423        w: ::std::os::raw::c_int,
7424        h: ::std::os::raw::c_int,
7425        bgcolor: root::reaper_functions::LICE_pixel,
7426        fgcolor: root::reaper_functions::LICE_pixel,
7427        alpha: f32,
7428        mode: ::std::os::raw::c_int,
7429    ) {
7430        match self.pointers.LICE_BorderedRect {
7431            None => panic!(format!(
7432                "Attempt to use a REAPER function that has not been loaded: {}",
7433                stringify!(LICE_BorderedRect)
7434            )),
7435            Some(f) => f(dest, x, y, w, h, bgcolor, fgcolor, alpha, mode),
7436        }
7437    }
7438    pub unsafe fn LICE_Circle(
7439        &self,
7440        dest: *mut root::reaper_functions::LICE_IBitmap,
7441        cx: f32,
7442        cy: f32,
7443        r: f32,
7444        color: root::reaper_functions::LICE_pixel,
7445        alpha: f32,
7446        mode: ::std::os::raw::c_int,
7447        aa: bool,
7448    ) {
7449        match self.pointers.LICE_Circle {
7450            None => panic!(format!(
7451                "Attempt to use a REAPER function that has not been loaded: {}",
7452                stringify!(LICE_Circle)
7453            )),
7454            Some(f) => f(dest, cx, cy, r, color, alpha, mode, aa),
7455        }
7456    }
7457    pub unsafe fn LICE_Clear(
7458        &self,
7459        dest: *mut root::reaper_functions::LICE_IBitmap,
7460        color: root::reaper_functions::LICE_pixel,
7461    ) {
7462        match self.pointers.LICE_Clear {
7463            None => panic!(format!(
7464                "Attempt to use a REAPER function that has not been loaded: {}",
7465                stringify!(LICE_Clear)
7466            )),
7467            Some(f) => f(dest, color),
7468        }
7469    }
7470    pub unsafe fn LICE_ClearRect(
7471        &self,
7472        dest: *mut root::reaper_functions::LICE_IBitmap,
7473        x: ::std::os::raw::c_int,
7474        y: ::std::os::raw::c_int,
7475        w: ::std::os::raw::c_int,
7476        h: ::std::os::raw::c_int,
7477        mask: root::reaper_functions::LICE_pixel,
7478        orbits: root::reaper_functions::LICE_pixel,
7479    ) {
7480        match self.pointers.LICE_ClearRect {
7481            None => panic!(format!(
7482                "Attempt to use a REAPER function that has not been loaded: {}",
7483                stringify!(LICE_ClearRect)
7484            )),
7485            Some(f) => f(dest, x, y, w, h, mask, orbits),
7486        }
7487    }
7488    pub unsafe fn LICE_ClipLine(
7489        &self,
7490        pX1Out: *mut ::std::os::raw::c_int,
7491        pY1Out: *mut ::std::os::raw::c_int,
7492        pX2Out: *mut ::std::os::raw::c_int,
7493        pY2Out: *mut ::std::os::raw::c_int,
7494        xLo: ::std::os::raw::c_int,
7495        yLo: ::std::os::raw::c_int,
7496        xHi: ::std::os::raw::c_int,
7497        yHi: ::std::os::raw::c_int,
7498    ) -> bool {
7499        match self.pointers.LICE_ClipLine {
7500            None => panic!(format!(
7501                "Attempt to use a REAPER function that has not been loaded: {}",
7502                stringify!(LICE_ClipLine)
7503            )),
7504            Some(f) => f(pX1Out, pY1Out, pX2Out, pY2Out, xLo, yLo, xHi, yHi),
7505        }
7506    }
7507    pub unsafe fn LICE_Copy(
7508        &self,
7509        dest: *mut root::reaper_functions::LICE_IBitmap,
7510        src: *mut root::reaper_functions::LICE_IBitmap,
7511    ) {
7512        match self.pointers.LICE_Copy {
7513            None => panic!(format!(
7514                "Attempt to use a REAPER function that has not been loaded: {}",
7515                stringify!(LICE_Copy)
7516            )),
7517            Some(f) => f(dest, src),
7518        }
7519    }
7520    pub fn LICE_CreateBitmap(
7521        &self,
7522        mode: ::std::os::raw::c_int,
7523        w: ::std::os::raw::c_int,
7524        h: ::std::os::raw::c_int,
7525    ) -> *mut root::reaper_functions::LICE_IBitmap {
7526        match self.pointers.LICE_CreateBitmap {
7527            None => panic!(format!(
7528                "Attempt to use a REAPER function that has not been loaded: {}",
7529                stringify!(LICE_CreateBitmap)
7530            )),
7531            Some(f) => f(mode, w, h),
7532        }
7533    }
7534    pub fn LICE_CreateFont(&self) -> *mut root::reaper_functions::LICE_IFont {
7535        match self.pointers.LICE_CreateFont {
7536            None => panic!(format!(
7537                "Attempt to use a REAPER function that has not been loaded: {}",
7538                stringify!(LICE_CreateFont)
7539            )),
7540            Some(f) => f(),
7541        }
7542    }
7543    pub unsafe fn LICE_DrawCBezier(
7544        &self,
7545        dest: *mut root::reaper_functions::LICE_IBitmap,
7546        xstart: f64,
7547        ystart: f64,
7548        xctl1: f64,
7549        yctl1: f64,
7550        xctl2: f64,
7551        yctl2: f64,
7552        xend: f64,
7553        yend: f64,
7554        color: root::reaper_functions::LICE_pixel,
7555        alpha: f32,
7556        mode: ::std::os::raw::c_int,
7557        aa: bool,
7558        tol: f64,
7559    ) {
7560        match self.pointers.LICE_DrawCBezier {
7561            None => panic!(format!(
7562                "Attempt to use a REAPER function that has not been loaded: {}",
7563                stringify!(LICE_DrawCBezier)
7564            )),
7565            Some(f) => f(
7566                dest, xstart, ystart, xctl1, yctl1, xctl2, yctl2, xend, yend, color, alpha, mode,
7567                aa, tol,
7568            ),
7569        }
7570    }
7571    pub unsafe fn LICE_DrawChar(
7572        &self,
7573        bm: *mut root::reaper_functions::LICE_IBitmap,
7574        x: ::std::os::raw::c_int,
7575        y: ::std::os::raw::c_int,
7576        c: ::std::os::raw::c_char,
7577        color: root::reaper_functions::LICE_pixel,
7578        alpha: f32,
7579        mode: ::std::os::raw::c_int,
7580    ) {
7581        match self.pointers.LICE_DrawChar {
7582            None => panic!(format!(
7583                "Attempt to use a REAPER function that has not been loaded: {}",
7584                stringify!(LICE_DrawChar)
7585            )),
7586            Some(f) => f(bm, x, y, c, color, alpha, mode),
7587        }
7588    }
7589    pub unsafe fn LICE_DrawGlyph(
7590        &self,
7591        dest: *mut root::reaper_functions::LICE_IBitmap,
7592        x: ::std::os::raw::c_int,
7593        y: ::std::os::raw::c_int,
7594        color: root::reaper_functions::LICE_pixel,
7595        alphas: *mut root::reaper_functions::LICE_pixel_chan,
7596        glyph_w: ::std::os::raw::c_int,
7597        glyph_h: ::std::os::raw::c_int,
7598        alpha: f32,
7599        mode: ::std::os::raw::c_int,
7600    ) {
7601        match self.pointers.LICE_DrawGlyph {
7602            None => panic!(format!(
7603                "Attempt to use a REAPER function that has not been loaded: {}",
7604                stringify!(LICE_DrawGlyph)
7605            )),
7606            Some(f) => f(dest, x, y, color, alphas, glyph_w, glyph_h, alpha, mode),
7607        }
7608    }
7609    pub unsafe fn LICE_DrawRect(
7610        &self,
7611        dest: *mut root::reaper_functions::LICE_IBitmap,
7612        x: ::std::os::raw::c_int,
7613        y: ::std::os::raw::c_int,
7614        w: ::std::os::raw::c_int,
7615        h: ::std::os::raw::c_int,
7616        color: root::reaper_functions::LICE_pixel,
7617        alpha: f32,
7618        mode: ::std::os::raw::c_int,
7619    ) {
7620        match self.pointers.LICE_DrawRect {
7621            None => panic!(format!(
7622                "Attempt to use a REAPER function that has not been loaded: {}",
7623                stringify!(LICE_DrawRect)
7624            )),
7625            Some(f) => f(dest, x, y, w, h, color, alpha, mode),
7626        }
7627    }
7628    pub unsafe fn LICE_DrawText(
7629        &self,
7630        bm: *mut root::reaper_functions::LICE_IBitmap,
7631        x: ::std::os::raw::c_int,
7632        y: ::std::os::raw::c_int,
7633        string: *const ::std::os::raw::c_char,
7634        color: root::reaper_functions::LICE_pixel,
7635        alpha: f32,
7636        mode: ::std::os::raw::c_int,
7637    ) {
7638        match self.pointers.LICE_DrawText {
7639            None => panic!(format!(
7640                "Attempt to use a REAPER function that has not been loaded: {}",
7641                stringify!(LICE_DrawText)
7642            )),
7643            Some(f) => f(bm, x, y, string, color, alpha, mode),
7644        }
7645    }
7646    pub unsafe fn LICE_FillCBezier(
7647        &self,
7648        dest: *mut root::reaper_functions::LICE_IBitmap,
7649        xstart: f64,
7650        ystart: f64,
7651        xctl1: f64,
7652        yctl1: f64,
7653        xctl2: f64,
7654        yctl2: f64,
7655        xend: f64,
7656        yend: f64,
7657        yfill: ::std::os::raw::c_int,
7658        color: root::reaper_functions::LICE_pixel,
7659        alpha: f32,
7660        mode: ::std::os::raw::c_int,
7661        aa: bool,
7662        tol: f64,
7663    ) {
7664        match self.pointers.LICE_FillCBezier {
7665            None => panic!(format!(
7666                "Attempt to use a REAPER function that has not been loaded: {}",
7667                stringify!(LICE_FillCBezier)
7668            )),
7669            Some(f) => f(
7670                dest, xstart, ystart, xctl1, yctl1, xctl2, yctl2, xend, yend, yfill, color, alpha,
7671                mode, aa, tol,
7672            ),
7673        }
7674    }
7675    pub unsafe fn LICE_FillCircle(
7676        &self,
7677        dest: *mut root::reaper_functions::LICE_IBitmap,
7678        cx: f32,
7679        cy: f32,
7680        r: f32,
7681        color: root::reaper_functions::LICE_pixel,
7682        alpha: f32,
7683        mode: ::std::os::raw::c_int,
7684        aa: bool,
7685    ) {
7686        match self.pointers.LICE_FillCircle {
7687            None => panic!(format!(
7688                "Attempt to use a REAPER function that has not been loaded: {}",
7689                stringify!(LICE_FillCircle)
7690            )),
7691            Some(f) => f(dest, cx, cy, r, color, alpha, mode, aa),
7692        }
7693    }
7694    pub unsafe fn LICE_FillConvexPolygon(
7695        &self,
7696        dest: *mut root::reaper_functions::LICE_IBitmap,
7697        x: *mut ::std::os::raw::c_int,
7698        y: *mut ::std::os::raw::c_int,
7699        npoints: ::std::os::raw::c_int,
7700        color: root::reaper_functions::LICE_pixel,
7701        alpha: f32,
7702        mode: ::std::os::raw::c_int,
7703    ) {
7704        match self.pointers.LICE_FillConvexPolygon {
7705            None => panic!(format!(
7706                "Attempt to use a REAPER function that has not been loaded: {}",
7707                stringify!(LICE_FillConvexPolygon)
7708            )),
7709            Some(f) => f(dest, x, y, npoints, color, alpha, mode),
7710        }
7711    }
7712    pub unsafe fn LICE_FillRect(
7713        &self,
7714        dest: *mut root::reaper_functions::LICE_IBitmap,
7715        x: ::std::os::raw::c_int,
7716        y: ::std::os::raw::c_int,
7717        w: ::std::os::raw::c_int,
7718        h: ::std::os::raw::c_int,
7719        color: root::reaper_functions::LICE_pixel,
7720        alpha: f32,
7721        mode: ::std::os::raw::c_int,
7722    ) {
7723        match self.pointers.LICE_FillRect {
7724            None => panic!(format!(
7725                "Attempt to use a REAPER function that has not been loaded: {}",
7726                stringify!(LICE_FillRect)
7727            )),
7728            Some(f) => f(dest, x, y, w, h, color, alpha, mode),
7729        }
7730    }
7731    pub unsafe fn LICE_FillTrapezoid(
7732        &self,
7733        dest: *mut root::reaper_functions::LICE_IBitmap,
7734        x1a: ::std::os::raw::c_int,
7735        x1b: ::std::os::raw::c_int,
7736        y1: ::std::os::raw::c_int,
7737        x2a: ::std::os::raw::c_int,
7738        x2b: ::std::os::raw::c_int,
7739        y2: ::std::os::raw::c_int,
7740        color: root::reaper_functions::LICE_pixel,
7741        alpha: f32,
7742        mode: ::std::os::raw::c_int,
7743    ) {
7744        match self.pointers.LICE_FillTrapezoid {
7745            None => panic!(format!(
7746                "Attempt to use a REAPER function that has not been loaded: {}",
7747                stringify!(LICE_FillTrapezoid)
7748            )),
7749            Some(f) => f(dest, x1a, x1b, y1, x2a, x2b, y2, color, alpha, mode),
7750        }
7751    }
7752    pub unsafe fn LICE_FillTriangle(
7753        &self,
7754        dest: *mut root::reaper_functions::LICE_IBitmap,
7755        x1: ::std::os::raw::c_int,
7756        y1: ::std::os::raw::c_int,
7757        x2: ::std::os::raw::c_int,
7758        y2: ::std::os::raw::c_int,
7759        x3: ::std::os::raw::c_int,
7760        y3: ::std::os::raw::c_int,
7761        color: root::reaper_functions::LICE_pixel,
7762        alpha: f32,
7763        mode: ::std::os::raw::c_int,
7764    ) {
7765        match self.pointers.LICE_FillTriangle {
7766            None => panic!(format!(
7767                "Attempt to use a REAPER function that has not been loaded: {}",
7768                stringify!(LICE_FillTriangle)
7769            )),
7770            Some(f) => f(dest, x1, y1, x2, y2, x3, y3, color, alpha, mode),
7771        }
7772    }
7773    pub unsafe fn LICE_GetPixel(
7774        &self,
7775        bm: *mut root::reaper_functions::LICE_IBitmap,
7776        x: ::std::os::raw::c_int,
7777        y: ::std::os::raw::c_int,
7778    ) -> root::reaper_functions::LICE_pixel {
7779        match self.pointers.LICE_GetPixel {
7780            None => panic!(format!(
7781                "Attempt to use a REAPER function that has not been loaded: {}",
7782                stringify!(LICE_GetPixel)
7783            )),
7784            Some(f) => f(bm, x, y),
7785        }
7786    }
7787    pub unsafe fn LICE_GradRect(
7788        &self,
7789        dest: *mut root::reaper_functions::LICE_IBitmap,
7790        dstx: ::std::os::raw::c_int,
7791        dsty: ::std::os::raw::c_int,
7792        dstw: ::std::os::raw::c_int,
7793        dsth: ::std::os::raw::c_int,
7794        ir: f32,
7795        ig: f32,
7796        ib: f32,
7797        ia: f32,
7798        drdx: f32,
7799        dgdx: f32,
7800        dbdx: f32,
7801        dadx: f32,
7802        drdy: f32,
7803        dgdy: f32,
7804        dbdy: f32,
7805        dady: f32,
7806        mode: ::std::os::raw::c_int,
7807    ) {
7808        match self.pointers.LICE_GradRect {
7809            None => panic!(format!(
7810                "Attempt to use a REAPER function that has not been loaded: {}",
7811                stringify!(LICE_GradRect)
7812            )),
7813            Some(f) => f(
7814                dest, dstx, dsty, dstw, dsth, ir, ig, ib, ia, drdx, dgdx, dbdx, dadx, drdy, dgdy,
7815                dbdy, dady, mode,
7816            ),
7817        }
7818    }
7819    pub unsafe fn LICE_Line(
7820        &self,
7821        dest: *mut root::reaper_functions::LICE_IBitmap,
7822        x1: f32,
7823        y1: f32,
7824        x2: f32,
7825        y2: f32,
7826        color: root::reaper_functions::LICE_pixel,
7827        alpha: f32,
7828        mode: ::std::os::raw::c_int,
7829        aa: bool,
7830    ) {
7831        match self.pointers.LICE_Line {
7832            None => panic!(format!(
7833                "Attempt to use a REAPER function that has not been loaded: {}",
7834                stringify!(LICE_Line)
7835            )),
7836            Some(f) => f(dest, x1, y1, x2, y2, color, alpha, mode, aa),
7837        }
7838    }
7839    pub unsafe fn LICE_LineInt(
7840        &self,
7841        dest: *mut root::reaper_functions::LICE_IBitmap,
7842        x1: ::std::os::raw::c_int,
7843        y1: ::std::os::raw::c_int,
7844        x2: ::std::os::raw::c_int,
7845        y2: ::std::os::raw::c_int,
7846        color: root::reaper_functions::LICE_pixel,
7847        alpha: f32,
7848        mode: ::std::os::raw::c_int,
7849        aa: bool,
7850    ) {
7851        match self.pointers.LICE_LineInt {
7852            None => panic!(format!(
7853                "Attempt to use a REAPER function that has not been loaded: {}",
7854                stringify!(LICE_LineInt)
7855            )),
7856            Some(f) => f(dest, x1, y1, x2, y2, color, alpha, mode, aa),
7857        }
7858    }
7859    pub unsafe fn LICE_LoadPNG(
7860        &self,
7861        filename: *const ::std::os::raw::c_char,
7862        bmp: *mut root::reaper_functions::LICE_IBitmap,
7863    ) -> *mut root::reaper_functions::LICE_IBitmap {
7864        match self.pointers.LICE_LoadPNG {
7865            None => panic!(format!(
7866                "Attempt to use a REAPER function that has not been loaded: {}",
7867                stringify!(LICE_LoadPNG)
7868            )),
7869            Some(f) => f(filename, bmp),
7870        }
7871    }
7872    pub unsafe fn LICE_LoadPNGFromResource(
7873        &self,
7874        hInst: root::HINSTANCE,
7875        resid: *const ::std::os::raw::c_char,
7876        bmp: *mut root::reaper_functions::LICE_IBitmap,
7877    ) -> *mut root::reaper_functions::LICE_IBitmap {
7878        match self.pointers.LICE_LoadPNGFromResource {
7879            None => panic!(format!(
7880                "Attempt to use a REAPER function that has not been loaded: {}",
7881                stringify!(LICE_LoadPNGFromResource)
7882            )),
7883            Some(f) => f(hInst, resid, bmp),
7884        }
7885    }
7886    pub unsafe fn LICE_MeasureText(
7887        &self,
7888        string: *const ::std::os::raw::c_char,
7889        w: *mut ::std::os::raw::c_int,
7890        h: *mut ::std::os::raw::c_int,
7891    ) {
7892        match self.pointers.LICE_MeasureText {
7893            None => panic!(format!(
7894                "Attempt to use a REAPER function that has not been loaded: {}",
7895                stringify!(LICE_MeasureText)
7896            )),
7897            Some(f) => f(string, w, h),
7898        }
7899    }
7900    pub unsafe fn LICE_MultiplyAddRect(
7901        &self,
7902        dest: *mut root::reaper_functions::LICE_IBitmap,
7903        x: ::std::os::raw::c_int,
7904        y: ::std::os::raw::c_int,
7905        w: ::std::os::raw::c_int,
7906        h: ::std::os::raw::c_int,
7907        rsc: f32,
7908        gsc: f32,
7909        bsc: f32,
7910        asc: f32,
7911        radd: f32,
7912        gadd: f32,
7913        badd: f32,
7914        aadd: f32,
7915    ) {
7916        match self.pointers.LICE_MultiplyAddRect {
7917            None => panic!(format!(
7918                "Attempt to use a REAPER function that has not been loaded: {}",
7919                stringify!(LICE_MultiplyAddRect)
7920            )),
7921            Some(f) => f(dest, x, y, w, h, rsc, gsc, bsc, asc, radd, gadd, badd, aadd),
7922        }
7923    }
7924    pub unsafe fn LICE_PutPixel(
7925        &self,
7926        bm: *mut root::reaper_functions::LICE_IBitmap,
7927        x: ::std::os::raw::c_int,
7928        y: ::std::os::raw::c_int,
7929        color: root::reaper_functions::LICE_pixel,
7930        alpha: f32,
7931        mode: ::std::os::raw::c_int,
7932    ) {
7933        match self.pointers.LICE_PutPixel {
7934            None => panic!(format!(
7935                "Attempt to use a REAPER function that has not been loaded: {}",
7936                stringify!(LICE_PutPixel)
7937            )),
7938            Some(f) => f(bm, x, y, color, alpha, mode),
7939        }
7940    }
7941    pub unsafe fn LICE_RotatedBlit(
7942        &self,
7943        dest: *mut root::reaper_functions::LICE_IBitmap,
7944        src: *mut root::reaper_functions::LICE_IBitmap,
7945        dstx: ::std::os::raw::c_int,
7946        dsty: ::std::os::raw::c_int,
7947        dstw: ::std::os::raw::c_int,
7948        dsth: ::std::os::raw::c_int,
7949        srcx: f32,
7950        srcy: f32,
7951        srcw: f32,
7952        srch: f32,
7953        angle: f32,
7954        cliptosourcerect: bool,
7955        alpha: f32,
7956        mode: ::std::os::raw::c_int,
7957        rotxcent: f32,
7958        rotycent: f32,
7959    ) {
7960        match self.pointers.LICE_RotatedBlit {
7961            None => panic!(format!(
7962                "Attempt to use a REAPER function that has not been loaded: {}",
7963                stringify!(LICE_RotatedBlit)
7964            )),
7965            Some(f) => f(
7966                dest,
7967                src,
7968                dstx,
7969                dsty,
7970                dstw,
7971                dsth,
7972                srcx,
7973                srcy,
7974                srcw,
7975                srch,
7976                angle,
7977                cliptosourcerect,
7978                alpha,
7979                mode,
7980                rotxcent,
7981                rotycent,
7982            ),
7983        }
7984    }
7985    pub unsafe fn LICE_RoundRect(
7986        &self,
7987        drawbm: *mut root::reaper_functions::LICE_IBitmap,
7988        xpos: f32,
7989        ypos: f32,
7990        w: f32,
7991        h: f32,
7992        cornerradius: ::std::os::raw::c_int,
7993        col: root::reaper_functions::LICE_pixel,
7994        alpha: f32,
7995        mode: ::std::os::raw::c_int,
7996        aa: bool,
7997    ) {
7998        match self.pointers.LICE_RoundRect {
7999            None => panic!(format!(
8000                "Attempt to use a REAPER function that has not been loaded: {}",
8001                stringify!(LICE_RoundRect)
8002            )),
8003            Some(f) => f(drawbm, xpos, ypos, w, h, cornerradius, col, alpha, mode, aa),
8004        }
8005    }
8006    pub unsafe fn LICE_ScaledBlit(
8007        &self,
8008        dest: *mut root::reaper_functions::LICE_IBitmap,
8009        src: *mut root::reaper_functions::LICE_IBitmap,
8010        dstx: ::std::os::raw::c_int,
8011        dsty: ::std::os::raw::c_int,
8012        dstw: ::std::os::raw::c_int,
8013        dsth: ::std::os::raw::c_int,
8014        srcx: f32,
8015        srcy: f32,
8016        srcw: f32,
8017        srch: f32,
8018        alpha: f32,
8019        mode: ::std::os::raw::c_int,
8020    ) {
8021        match self.pointers.LICE_ScaledBlit {
8022            None => panic!(format!(
8023                "Attempt to use a REAPER function that has not been loaded: {}",
8024                stringify!(LICE_ScaledBlit)
8025            )),
8026            Some(f) => f(
8027                dest, src, dstx, dsty, dstw, dsth, srcx, srcy, srcw, srch, alpha, mode,
8028            ),
8029        }
8030    }
8031    pub unsafe fn LICE_SimpleFill(
8032        &self,
8033        dest: *mut root::reaper_functions::LICE_IBitmap,
8034        x: ::std::os::raw::c_int,
8035        y: ::std::os::raw::c_int,
8036        newcolor: root::reaper_functions::LICE_pixel,
8037        comparemask: root::reaper_functions::LICE_pixel,
8038        keepmask: root::reaper_functions::LICE_pixel,
8039    ) {
8040        match self.pointers.LICE_SimpleFill {
8041            None => panic!(format!(
8042                "Attempt to use a REAPER function that has not been loaded: {}",
8043                stringify!(LICE_SimpleFill)
8044            )),
8045            Some(f) => f(dest, x, y, newcolor, comparemask, keepmask),
8046        }
8047    }
8048    pub unsafe fn Loop_OnArrow(
8049        &self,
8050        project: *mut root::ReaProject,
8051        direction: ::std::os::raw::c_int,
8052    ) -> bool {
8053        match self.pointers.Loop_OnArrow {
8054            None => panic!(format!(
8055                "Attempt to use a REAPER function that has not been loaded: {}",
8056                stringify!(Loop_OnArrow)
8057            )),
8058            Some(f) => f(project, direction),
8059        }
8060    }
8061    pub fn Main_OnCommand(&self, command: ::std::os::raw::c_int, flag: ::std::os::raw::c_int) {
8062        match self.pointers.Main_OnCommand {
8063            None => panic!(format!(
8064                "Attempt to use a REAPER function that has not been loaded: {}",
8065                stringify!(Main_OnCommand)
8066            )),
8067            Some(f) => f(command, flag),
8068        }
8069    }
8070    pub unsafe fn Main_OnCommandEx(
8071        &self,
8072        command: ::std::os::raw::c_int,
8073        flag: ::std::os::raw::c_int,
8074        proj: *mut root::ReaProject,
8075    ) {
8076        match self.pointers.Main_OnCommandEx {
8077            None => panic!(format!(
8078                "Attempt to use a REAPER function that has not been loaded: {}",
8079                stringify!(Main_OnCommandEx)
8080            )),
8081            Some(f) => f(command, flag, proj),
8082        }
8083    }
8084    pub unsafe fn Main_openProject(&self, name: *const ::std::os::raw::c_char) {
8085        match self.pointers.Main_openProject {
8086            None => panic!(format!(
8087                "Attempt to use a REAPER function that has not been loaded: {}",
8088                stringify!(Main_openProject)
8089            )),
8090            Some(f) => f(name),
8091        }
8092    }
8093    pub unsafe fn Main_SaveProject(
8094        &self,
8095        proj: *mut root::ReaProject,
8096        forceSaveAsInOptional: bool,
8097    ) {
8098        match self.pointers.Main_SaveProject {
8099            None => panic!(format!(
8100                "Attempt to use a REAPER function that has not been loaded: {}",
8101                stringify!(Main_SaveProject)
8102            )),
8103            Some(f) => f(proj, forceSaveAsInOptional),
8104        }
8105    }
8106    pub fn Main_UpdateLoopInfo(&self, ignoremask: ::std::os::raw::c_int) {
8107        match self.pointers.Main_UpdateLoopInfo {
8108            None => panic!(format!(
8109                "Attempt to use a REAPER function that has not been loaded: {}",
8110                stringify!(Main_UpdateLoopInfo)
8111            )),
8112            Some(f) => f(ignoremask),
8113        }
8114    }
8115    pub unsafe fn MarkProjectDirty(&self, proj: *mut root::ReaProject) {
8116        match self.pointers.MarkProjectDirty {
8117            None => panic!(format!(
8118                "Attempt to use a REAPER function that has not been loaded: {}",
8119                stringify!(MarkProjectDirty)
8120            )),
8121            Some(f) => f(proj),
8122        }
8123    }
8124    pub unsafe fn MarkTrackItemsDirty(
8125        &self,
8126        track: *mut root::MediaTrack,
8127        item: *mut root::MediaItem,
8128    ) {
8129        match self.pointers.MarkTrackItemsDirty {
8130            None => panic!(format!(
8131                "Attempt to use a REAPER function that has not been loaded: {}",
8132                stringify!(MarkTrackItemsDirty)
8133            )),
8134            Some(f) => f(track, item),
8135        }
8136    }
8137    pub unsafe fn Master_GetPlayRate(&self, project: *mut root::ReaProject) -> f64 {
8138        match self.pointers.Master_GetPlayRate {
8139            None => panic!(format!(
8140                "Attempt to use a REAPER function that has not been loaded: {}",
8141                stringify!(Master_GetPlayRate)
8142            )),
8143            Some(f) => f(project),
8144        }
8145    }
8146    pub unsafe fn Master_GetPlayRateAtTime(&self, time_s: f64, proj: *mut root::ReaProject) -> f64 {
8147        match self.pointers.Master_GetPlayRateAtTime {
8148            None => panic!(format!(
8149                "Attempt to use a REAPER function that has not been loaded: {}",
8150                stringify!(Master_GetPlayRateAtTime)
8151            )),
8152            Some(f) => f(time_s, proj),
8153        }
8154    }
8155    pub fn Master_GetTempo(&self) -> f64 {
8156        match self.pointers.Master_GetTempo {
8157            None => panic!(format!(
8158                "Attempt to use a REAPER function that has not been loaded: {}",
8159                stringify!(Master_GetTempo)
8160            )),
8161            Some(f) => f(),
8162        }
8163    }
8164    pub fn Master_NormalizePlayRate(&self, playrate: f64, isnormalized: bool) -> f64 {
8165        match self.pointers.Master_NormalizePlayRate {
8166            None => panic!(format!(
8167                "Attempt to use a REAPER function that has not been loaded: {}",
8168                stringify!(Master_NormalizePlayRate)
8169            )),
8170            Some(f) => f(playrate, isnormalized),
8171        }
8172    }
8173    pub fn Master_NormalizeTempo(&self, bpm: f64, isnormalized: bool) -> f64 {
8174        match self.pointers.Master_NormalizeTempo {
8175            None => panic!(format!(
8176                "Attempt to use a REAPER function that has not been loaded: {}",
8177                stringify!(Master_NormalizeTempo)
8178            )),
8179            Some(f) => f(bpm, isnormalized),
8180        }
8181    }
8182    pub unsafe fn MB(
8183        &self,
8184        msg: *const ::std::os::raw::c_char,
8185        title: *const ::std::os::raw::c_char,
8186        type_: ::std::os::raw::c_int,
8187    ) -> ::std::os::raw::c_int {
8188        match self.pointers.MB {
8189            None => panic!(format!(
8190                "Attempt to use a REAPER function that has not been loaded: {}",
8191                stringify!(MB)
8192            )),
8193            Some(f) => f(msg, title, type_),
8194        }
8195    }
8196    pub unsafe fn MediaItemDescendsFromTrack(
8197        &self,
8198        item: *mut root::MediaItem,
8199        track: *mut root::MediaTrack,
8200    ) -> ::std::os::raw::c_int {
8201        match self.pointers.MediaItemDescendsFromTrack {
8202            None => panic!(format!(
8203                "Attempt to use a REAPER function that has not been loaded: {}",
8204                stringify!(MediaItemDescendsFromTrack)
8205            )),
8206            Some(f) => f(item, track),
8207        }
8208    }
8209    pub unsafe fn MIDI_CountEvts(
8210        &self,
8211        take: *mut root::MediaItem_Take,
8212        notecntOut: *mut ::std::os::raw::c_int,
8213        ccevtcntOut: *mut ::std::os::raw::c_int,
8214        textsyxevtcntOut: *mut ::std::os::raw::c_int,
8215    ) -> ::std::os::raw::c_int {
8216        match self.pointers.MIDI_CountEvts {
8217            None => panic!(format!(
8218                "Attempt to use a REAPER function that has not been loaded: {}",
8219                stringify!(MIDI_CountEvts)
8220            )),
8221            Some(f) => f(take, notecntOut, ccevtcntOut, textsyxevtcntOut),
8222        }
8223    }
8224    pub unsafe fn MIDI_DeleteCC(
8225        &self,
8226        take: *mut root::MediaItem_Take,
8227        ccidx: ::std::os::raw::c_int,
8228    ) -> bool {
8229        match self.pointers.MIDI_DeleteCC {
8230            None => panic!(format!(
8231                "Attempt to use a REAPER function that has not been loaded: {}",
8232                stringify!(MIDI_DeleteCC)
8233            )),
8234            Some(f) => f(take, ccidx),
8235        }
8236    }
8237    pub unsafe fn MIDI_DeleteEvt(
8238        &self,
8239        take: *mut root::MediaItem_Take,
8240        evtidx: ::std::os::raw::c_int,
8241    ) -> bool {
8242        match self.pointers.MIDI_DeleteEvt {
8243            None => panic!(format!(
8244                "Attempt to use a REAPER function that has not been loaded: {}",
8245                stringify!(MIDI_DeleteEvt)
8246            )),
8247            Some(f) => f(take, evtidx),
8248        }
8249    }
8250    pub unsafe fn MIDI_DeleteNote(
8251        &self,
8252        take: *mut root::MediaItem_Take,
8253        noteidx: ::std::os::raw::c_int,
8254    ) -> bool {
8255        match self.pointers.MIDI_DeleteNote {
8256            None => panic!(format!(
8257                "Attempt to use a REAPER function that has not been loaded: {}",
8258                stringify!(MIDI_DeleteNote)
8259            )),
8260            Some(f) => f(take, noteidx),
8261        }
8262    }
8263    pub unsafe fn MIDI_DeleteTextSysexEvt(
8264        &self,
8265        take: *mut root::MediaItem_Take,
8266        textsyxevtidx: ::std::os::raw::c_int,
8267    ) -> bool {
8268        match self.pointers.MIDI_DeleteTextSysexEvt {
8269            None => panic!(format!(
8270                "Attempt to use a REAPER function that has not been loaded: {}",
8271                stringify!(MIDI_DeleteTextSysexEvt)
8272            )),
8273            Some(f) => f(take, textsyxevtidx),
8274        }
8275    }
8276    pub unsafe fn MIDI_DisableSort(&self, take: *mut root::MediaItem_Take) {
8277        match self.pointers.MIDI_DisableSort {
8278            None => panic!(format!(
8279                "Attempt to use a REAPER function that has not been loaded: {}",
8280                stringify!(MIDI_DisableSort)
8281            )),
8282            Some(f) => f(take),
8283        }
8284    }
8285    pub unsafe fn MIDI_EnumSelCC(
8286        &self,
8287        take: *mut root::MediaItem_Take,
8288        ccidx: ::std::os::raw::c_int,
8289    ) -> ::std::os::raw::c_int {
8290        match self.pointers.MIDI_EnumSelCC {
8291            None => panic!(format!(
8292                "Attempt to use a REAPER function that has not been loaded: {}",
8293                stringify!(MIDI_EnumSelCC)
8294            )),
8295            Some(f) => f(take, ccidx),
8296        }
8297    }
8298    pub unsafe fn MIDI_EnumSelEvts(
8299        &self,
8300        take: *mut root::MediaItem_Take,
8301        evtidx: ::std::os::raw::c_int,
8302    ) -> ::std::os::raw::c_int {
8303        match self.pointers.MIDI_EnumSelEvts {
8304            None => panic!(format!(
8305                "Attempt to use a REAPER function that has not been loaded: {}",
8306                stringify!(MIDI_EnumSelEvts)
8307            )),
8308            Some(f) => f(take, evtidx),
8309        }
8310    }
8311    pub unsafe fn MIDI_EnumSelNotes(
8312        &self,
8313        take: *mut root::MediaItem_Take,
8314        noteidx: ::std::os::raw::c_int,
8315    ) -> ::std::os::raw::c_int {
8316        match self.pointers.MIDI_EnumSelNotes {
8317            None => panic!(format!(
8318                "Attempt to use a REAPER function that has not been loaded: {}",
8319                stringify!(MIDI_EnumSelNotes)
8320            )),
8321            Some(f) => f(take, noteidx),
8322        }
8323    }
8324    pub unsafe fn MIDI_EnumSelTextSysexEvts(
8325        &self,
8326        take: *mut root::MediaItem_Take,
8327        textsyxidx: ::std::os::raw::c_int,
8328    ) -> ::std::os::raw::c_int {
8329        match self.pointers.MIDI_EnumSelTextSysexEvts {
8330            None => panic!(format!(
8331                "Attempt to use a REAPER function that has not been loaded: {}",
8332                stringify!(MIDI_EnumSelTextSysexEvts)
8333            )),
8334            Some(f) => f(take, textsyxidx),
8335        }
8336    }
8337    pub fn MIDI_eventlist_Create(&self) -> *mut root::MIDI_eventlist {
8338        match self.pointers.MIDI_eventlist_Create {
8339            None => panic!(format!(
8340                "Attempt to use a REAPER function that has not been loaded: {}",
8341                stringify!(MIDI_eventlist_Create)
8342            )),
8343            Some(f) => f(),
8344        }
8345    }
8346    pub unsafe fn MIDI_eventlist_Destroy(&self, evtlist: *mut root::MIDI_eventlist) {
8347        match self.pointers.MIDI_eventlist_Destroy {
8348            None => panic!(format!(
8349                "Attempt to use a REAPER function that has not been loaded: {}",
8350                stringify!(MIDI_eventlist_Destroy)
8351            )),
8352            Some(f) => f(evtlist),
8353        }
8354    }
8355    pub unsafe fn MIDI_GetAllEvts(
8356        &self,
8357        take: *mut root::MediaItem_Take,
8358        bufNeedBig: *mut ::std::os::raw::c_char,
8359        bufNeedBig_sz: *mut ::std::os::raw::c_int,
8360    ) -> bool {
8361        match self.pointers.MIDI_GetAllEvts {
8362            None => panic!(format!(
8363                "Attempt to use a REAPER function that has not been loaded: {}",
8364                stringify!(MIDI_GetAllEvts)
8365            )),
8366            Some(f) => f(take, bufNeedBig, bufNeedBig_sz),
8367        }
8368    }
8369    pub unsafe fn MIDI_GetCC(
8370        &self,
8371        take: *mut root::MediaItem_Take,
8372        ccidx: ::std::os::raw::c_int,
8373        selectedOut: *mut bool,
8374        mutedOut: *mut bool,
8375        ppqposOut: *mut f64,
8376        chanmsgOut: *mut ::std::os::raw::c_int,
8377        chanOut: *mut ::std::os::raw::c_int,
8378        msg2Out: *mut ::std::os::raw::c_int,
8379        msg3Out: *mut ::std::os::raw::c_int,
8380    ) -> bool {
8381        match self.pointers.MIDI_GetCC {
8382            None => panic!(format!(
8383                "Attempt to use a REAPER function that has not been loaded: {}",
8384                stringify!(MIDI_GetCC)
8385            )),
8386            Some(f) => f(
8387                take,
8388                ccidx,
8389                selectedOut,
8390                mutedOut,
8391                ppqposOut,
8392                chanmsgOut,
8393                chanOut,
8394                msg2Out,
8395                msg3Out,
8396            ),
8397        }
8398    }
8399    pub unsafe fn MIDI_GetCCShape(
8400        &self,
8401        take: *mut root::MediaItem_Take,
8402        ccidx: ::std::os::raw::c_int,
8403        shapeOut: *mut ::std::os::raw::c_int,
8404        beztensionOut: *mut f64,
8405    ) -> bool {
8406        match self.pointers.MIDI_GetCCShape {
8407            None => panic!(format!(
8408                "Attempt to use a REAPER function that has not been loaded: {}",
8409                stringify!(MIDI_GetCCShape)
8410            )),
8411            Some(f) => f(take, ccidx, shapeOut, beztensionOut),
8412        }
8413    }
8414    pub unsafe fn MIDI_GetEvt(
8415        &self,
8416        take: *mut root::MediaItem_Take,
8417        evtidx: ::std::os::raw::c_int,
8418        selectedOut: *mut bool,
8419        mutedOut: *mut bool,
8420        ppqposOut: *mut f64,
8421        msg: *mut ::std::os::raw::c_char,
8422        msg_sz: *mut ::std::os::raw::c_int,
8423    ) -> bool {
8424        match self.pointers.MIDI_GetEvt {
8425            None => panic!(format!(
8426                "Attempt to use a REAPER function that has not been loaded: {}",
8427                stringify!(MIDI_GetEvt)
8428            )),
8429            Some(f) => f(take, evtidx, selectedOut, mutedOut, ppqposOut, msg, msg_sz),
8430        }
8431    }
8432    pub unsafe fn MIDI_GetGrid(
8433        &self,
8434        take: *mut root::MediaItem_Take,
8435        swingOutOptional: *mut f64,
8436        noteLenOutOptional: *mut f64,
8437    ) -> f64 {
8438        match self.pointers.MIDI_GetGrid {
8439            None => panic!(format!(
8440                "Attempt to use a REAPER function that has not been loaded: {}",
8441                stringify!(MIDI_GetGrid)
8442            )),
8443            Some(f) => f(take, swingOutOptional, noteLenOutOptional),
8444        }
8445    }
8446    pub unsafe fn MIDI_GetHash(
8447        &self,
8448        take: *mut root::MediaItem_Take,
8449        notesonly: bool,
8450        hash: *mut ::std::os::raw::c_char,
8451        hash_sz: ::std::os::raw::c_int,
8452    ) -> bool {
8453        match self.pointers.MIDI_GetHash {
8454            None => panic!(format!(
8455                "Attempt to use a REAPER function that has not been loaded: {}",
8456                stringify!(MIDI_GetHash)
8457            )),
8458            Some(f) => f(take, notesonly, hash, hash_sz),
8459        }
8460    }
8461    pub unsafe fn MIDI_GetNote(
8462        &self,
8463        take: *mut root::MediaItem_Take,
8464        noteidx: ::std::os::raw::c_int,
8465        selectedOut: *mut bool,
8466        mutedOut: *mut bool,
8467        startppqposOut: *mut f64,
8468        endppqposOut: *mut f64,
8469        chanOut: *mut ::std::os::raw::c_int,
8470        pitchOut: *mut ::std::os::raw::c_int,
8471        velOut: *mut ::std::os::raw::c_int,
8472    ) -> bool {
8473        match self.pointers.MIDI_GetNote {
8474            None => panic!(format!(
8475                "Attempt to use a REAPER function that has not been loaded: {}",
8476                stringify!(MIDI_GetNote)
8477            )),
8478            Some(f) => f(
8479                take,
8480                noteidx,
8481                selectedOut,
8482                mutedOut,
8483                startppqposOut,
8484                endppqposOut,
8485                chanOut,
8486                pitchOut,
8487                velOut,
8488            ),
8489        }
8490    }
8491    pub unsafe fn MIDI_GetPPQPos_EndOfMeasure(
8492        &self,
8493        take: *mut root::MediaItem_Take,
8494        ppqpos: f64,
8495    ) -> f64 {
8496        match self.pointers.MIDI_GetPPQPos_EndOfMeasure {
8497            None => panic!(format!(
8498                "Attempt to use a REAPER function that has not been loaded: {}",
8499                stringify!(MIDI_GetPPQPos_EndOfMeasure)
8500            )),
8501            Some(f) => f(take, ppqpos),
8502        }
8503    }
8504    pub unsafe fn MIDI_GetPPQPos_StartOfMeasure(
8505        &self,
8506        take: *mut root::MediaItem_Take,
8507        ppqpos: f64,
8508    ) -> f64 {
8509        match self.pointers.MIDI_GetPPQPos_StartOfMeasure {
8510            None => panic!(format!(
8511                "Attempt to use a REAPER function that has not been loaded: {}",
8512                stringify!(MIDI_GetPPQPos_StartOfMeasure)
8513            )),
8514            Some(f) => f(take, ppqpos),
8515        }
8516    }
8517    pub unsafe fn MIDI_GetPPQPosFromProjQN(
8518        &self,
8519        take: *mut root::MediaItem_Take,
8520        projqn: f64,
8521    ) -> f64 {
8522        match self.pointers.MIDI_GetPPQPosFromProjQN {
8523            None => panic!(format!(
8524                "Attempt to use a REAPER function that has not been loaded: {}",
8525                stringify!(MIDI_GetPPQPosFromProjQN)
8526            )),
8527            Some(f) => f(take, projqn),
8528        }
8529    }
8530    pub unsafe fn MIDI_GetPPQPosFromProjTime(
8531        &self,
8532        take: *mut root::MediaItem_Take,
8533        projtime: f64,
8534    ) -> f64 {
8535        match self.pointers.MIDI_GetPPQPosFromProjTime {
8536            None => panic!(format!(
8537                "Attempt to use a REAPER function that has not been loaded: {}",
8538                stringify!(MIDI_GetPPQPosFromProjTime)
8539            )),
8540            Some(f) => f(take, projtime),
8541        }
8542    }
8543    pub unsafe fn MIDI_GetProjQNFromPPQPos(
8544        &self,
8545        take: *mut root::MediaItem_Take,
8546        ppqpos: f64,
8547    ) -> f64 {
8548        match self.pointers.MIDI_GetProjQNFromPPQPos {
8549            None => panic!(format!(
8550                "Attempt to use a REAPER function that has not been loaded: {}",
8551                stringify!(MIDI_GetProjQNFromPPQPos)
8552            )),
8553            Some(f) => f(take, ppqpos),
8554        }
8555    }
8556    pub unsafe fn MIDI_GetProjTimeFromPPQPos(
8557        &self,
8558        take: *mut root::MediaItem_Take,
8559        ppqpos: f64,
8560    ) -> f64 {
8561        match self.pointers.MIDI_GetProjTimeFromPPQPos {
8562            None => panic!(format!(
8563                "Attempt to use a REAPER function that has not been loaded: {}",
8564                stringify!(MIDI_GetProjTimeFromPPQPos)
8565            )),
8566            Some(f) => f(take, ppqpos),
8567        }
8568    }
8569    pub unsafe fn MIDI_GetScale(
8570        &self,
8571        take: *mut root::MediaItem_Take,
8572        rootOut: *mut ::std::os::raw::c_int,
8573        scaleOut: *mut ::std::os::raw::c_int,
8574        name: *mut ::std::os::raw::c_char,
8575        name_sz: ::std::os::raw::c_int,
8576    ) -> bool {
8577        match self.pointers.MIDI_GetScale {
8578            None => panic!(format!(
8579                "Attempt to use a REAPER function that has not been loaded: {}",
8580                stringify!(MIDI_GetScale)
8581            )),
8582            Some(f) => f(take, rootOut, scaleOut, name, name_sz),
8583        }
8584    }
8585    pub unsafe fn MIDI_GetTextSysexEvt(
8586        &self,
8587        take: *mut root::MediaItem_Take,
8588        textsyxevtidx: ::std::os::raw::c_int,
8589        selectedOutOptional: *mut bool,
8590        mutedOutOptional: *mut bool,
8591        ppqposOutOptional: *mut f64,
8592        typeOutOptional: *mut ::std::os::raw::c_int,
8593        msgOptional: *mut ::std::os::raw::c_char,
8594        msgOptional_sz: *mut ::std::os::raw::c_int,
8595    ) -> bool {
8596        match self.pointers.MIDI_GetTextSysexEvt {
8597            None => panic!(format!(
8598                "Attempt to use a REAPER function that has not been loaded: {}",
8599                stringify!(MIDI_GetTextSysexEvt)
8600            )),
8601            Some(f) => f(
8602                take,
8603                textsyxevtidx,
8604                selectedOutOptional,
8605                mutedOutOptional,
8606                ppqposOutOptional,
8607                typeOutOptional,
8608                msgOptional,
8609                msgOptional_sz,
8610            ),
8611        }
8612    }
8613    pub unsafe fn MIDI_GetTrackHash(
8614        &self,
8615        track: *mut root::MediaTrack,
8616        notesonly: bool,
8617        hash: *mut ::std::os::raw::c_char,
8618        hash_sz: ::std::os::raw::c_int,
8619    ) -> bool {
8620        match self.pointers.MIDI_GetTrackHash {
8621            None => panic!(format!(
8622                "Attempt to use a REAPER function that has not been loaded: {}",
8623                stringify!(MIDI_GetTrackHash)
8624            )),
8625            Some(f) => f(track, notesonly, hash, hash_sz),
8626        }
8627    }
8628    pub unsafe fn MIDI_InsertCC(
8629        &self,
8630        take: *mut root::MediaItem_Take,
8631        selected: bool,
8632        muted: bool,
8633        ppqpos: f64,
8634        chanmsg: ::std::os::raw::c_int,
8635        chan: ::std::os::raw::c_int,
8636        msg2: ::std::os::raw::c_int,
8637        msg3: ::std::os::raw::c_int,
8638    ) -> bool {
8639        match self.pointers.MIDI_InsertCC {
8640            None => panic!(format!(
8641                "Attempt to use a REAPER function that has not been loaded: {}",
8642                stringify!(MIDI_InsertCC)
8643            )),
8644            Some(f) => f(take, selected, muted, ppqpos, chanmsg, chan, msg2, msg3),
8645        }
8646    }
8647    pub unsafe fn MIDI_InsertEvt(
8648        &self,
8649        take: *mut root::MediaItem_Take,
8650        selected: bool,
8651        muted: bool,
8652        ppqpos: f64,
8653        bytestr: *const ::std::os::raw::c_char,
8654        bytestr_sz: ::std::os::raw::c_int,
8655    ) -> bool {
8656        match self.pointers.MIDI_InsertEvt {
8657            None => panic!(format!(
8658                "Attempt to use a REAPER function that has not been loaded: {}",
8659                stringify!(MIDI_InsertEvt)
8660            )),
8661            Some(f) => f(take, selected, muted, ppqpos, bytestr, bytestr_sz),
8662        }
8663    }
8664    pub unsafe fn MIDI_InsertNote(
8665        &self,
8666        take: *mut root::MediaItem_Take,
8667        selected: bool,
8668        muted: bool,
8669        startppqpos: f64,
8670        endppqpos: f64,
8671        chan: ::std::os::raw::c_int,
8672        pitch: ::std::os::raw::c_int,
8673        vel: ::std::os::raw::c_int,
8674        noSortInOptional: *const bool,
8675    ) -> bool {
8676        match self.pointers.MIDI_InsertNote {
8677            None => panic!(format!(
8678                "Attempt to use a REAPER function that has not been loaded: {}",
8679                stringify!(MIDI_InsertNote)
8680            )),
8681            Some(f) => f(
8682                take,
8683                selected,
8684                muted,
8685                startppqpos,
8686                endppqpos,
8687                chan,
8688                pitch,
8689                vel,
8690                noSortInOptional,
8691            ),
8692        }
8693    }
8694    pub unsafe fn MIDI_InsertTextSysexEvt(
8695        &self,
8696        take: *mut root::MediaItem_Take,
8697        selected: bool,
8698        muted: bool,
8699        ppqpos: f64,
8700        type_: ::std::os::raw::c_int,
8701        bytestr: *const ::std::os::raw::c_char,
8702        bytestr_sz: ::std::os::raw::c_int,
8703    ) -> bool {
8704        match self.pointers.MIDI_InsertTextSysexEvt {
8705            None => panic!(format!(
8706                "Attempt to use a REAPER function that has not been loaded: {}",
8707                stringify!(MIDI_InsertTextSysexEvt)
8708            )),
8709            Some(f) => f(take, selected, muted, ppqpos, type_, bytestr, bytestr_sz),
8710        }
8711    }
8712    pub fn midi_reinit(&self) {
8713        match self.pointers.midi_reinit {
8714            None => panic!(format!(
8715                "Attempt to use a REAPER function that has not been loaded: {}",
8716                stringify!(midi_reinit)
8717            )),
8718            Some(f) => f(),
8719        }
8720    }
8721    pub unsafe fn MIDI_SelectAll(&self, take: *mut root::MediaItem_Take, select: bool) {
8722        match self.pointers.MIDI_SelectAll {
8723            None => panic!(format!(
8724                "Attempt to use a REAPER function that has not been loaded: {}",
8725                stringify!(MIDI_SelectAll)
8726            )),
8727            Some(f) => f(take, select),
8728        }
8729    }
8730    pub unsafe fn MIDI_SetAllEvts(
8731        &self,
8732        take: *mut root::MediaItem_Take,
8733        buf: *const ::std::os::raw::c_char,
8734        buf_sz: ::std::os::raw::c_int,
8735    ) -> bool {
8736        match self.pointers.MIDI_SetAllEvts {
8737            None => panic!(format!(
8738                "Attempt to use a REAPER function that has not been loaded: {}",
8739                stringify!(MIDI_SetAllEvts)
8740            )),
8741            Some(f) => f(take, buf, buf_sz),
8742        }
8743    }
8744    pub unsafe fn MIDI_SetCC(
8745        &self,
8746        take: *mut root::MediaItem_Take,
8747        ccidx: ::std::os::raw::c_int,
8748        selectedInOptional: *const bool,
8749        mutedInOptional: *const bool,
8750        ppqposInOptional: *const f64,
8751        chanmsgInOptional: *const ::std::os::raw::c_int,
8752        chanInOptional: *const ::std::os::raw::c_int,
8753        msg2InOptional: *const ::std::os::raw::c_int,
8754        msg3InOptional: *const ::std::os::raw::c_int,
8755        noSortInOptional: *const bool,
8756    ) -> bool {
8757        match self.pointers.MIDI_SetCC {
8758            None => panic!(format!(
8759                "Attempt to use a REAPER function that has not been loaded: {}",
8760                stringify!(MIDI_SetCC)
8761            )),
8762            Some(f) => f(
8763                take,
8764                ccidx,
8765                selectedInOptional,
8766                mutedInOptional,
8767                ppqposInOptional,
8768                chanmsgInOptional,
8769                chanInOptional,
8770                msg2InOptional,
8771                msg3InOptional,
8772                noSortInOptional,
8773            ),
8774        }
8775    }
8776    pub unsafe fn MIDI_SetCCShape(
8777        &self,
8778        take: *mut root::MediaItem_Take,
8779        ccidx: ::std::os::raw::c_int,
8780        shape: ::std::os::raw::c_int,
8781        beztension: f64,
8782        noSortInOptional: *const bool,
8783    ) -> bool {
8784        match self.pointers.MIDI_SetCCShape {
8785            None => panic!(format!(
8786                "Attempt to use a REAPER function that has not been loaded: {}",
8787                stringify!(MIDI_SetCCShape)
8788            )),
8789            Some(f) => f(take, ccidx, shape, beztension, noSortInOptional),
8790        }
8791    }
8792    pub unsafe fn MIDI_SetEvt(
8793        &self,
8794        take: *mut root::MediaItem_Take,
8795        evtidx: ::std::os::raw::c_int,
8796        selectedInOptional: *const bool,
8797        mutedInOptional: *const bool,
8798        ppqposInOptional: *const f64,
8799        msgOptional: *const ::std::os::raw::c_char,
8800        msgOptional_sz: ::std::os::raw::c_int,
8801        noSortInOptional: *const bool,
8802    ) -> bool {
8803        match self.pointers.MIDI_SetEvt {
8804            None => panic!(format!(
8805                "Attempt to use a REAPER function that has not been loaded: {}",
8806                stringify!(MIDI_SetEvt)
8807            )),
8808            Some(f) => f(
8809                take,
8810                evtidx,
8811                selectedInOptional,
8812                mutedInOptional,
8813                ppqposInOptional,
8814                msgOptional,
8815                msgOptional_sz,
8816                noSortInOptional,
8817            ),
8818        }
8819    }
8820    pub unsafe fn MIDI_SetItemExtents(
8821        &self,
8822        item: *mut root::MediaItem,
8823        startQN: f64,
8824        endQN: f64,
8825    ) -> bool {
8826        match self.pointers.MIDI_SetItemExtents {
8827            None => panic!(format!(
8828                "Attempt to use a REAPER function that has not been loaded: {}",
8829                stringify!(MIDI_SetItemExtents)
8830            )),
8831            Some(f) => f(item, startQN, endQN),
8832        }
8833    }
8834    pub unsafe fn MIDI_SetNote(
8835        &self,
8836        take: *mut root::MediaItem_Take,
8837        noteidx: ::std::os::raw::c_int,
8838        selectedInOptional: *const bool,
8839        mutedInOptional: *const bool,
8840        startppqposInOptional: *const f64,
8841        endppqposInOptional: *const f64,
8842        chanInOptional: *const ::std::os::raw::c_int,
8843        pitchInOptional: *const ::std::os::raw::c_int,
8844        velInOptional: *const ::std::os::raw::c_int,
8845        noSortInOptional: *const bool,
8846    ) -> bool {
8847        match self.pointers.MIDI_SetNote {
8848            None => panic!(format!(
8849                "Attempt to use a REAPER function that has not been loaded: {}",
8850                stringify!(MIDI_SetNote)
8851            )),
8852            Some(f) => f(
8853                take,
8854                noteidx,
8855                selectedInOptional,
8856                mutedInOptional,
8857                startppqposInOptional,
8858                endppqposInOptional,
8859                chanInOptional,
8860                pitchInOptional,
8861                velInOptional,
8862                noSortInOptional,
8863            ),
8864        }
8865    }
8866    pub unsafe fn MIDI_SetTextSysexEvt(
8867        &self,
8868        take: *mut root::MediaItem_Take,
8869        textsyxevtidx: ::std::os::raw::c_int,
8870        selectedInOptional: *const bool,
8871        mutedInOptional: *const bool,
8872        ppqposInOptional: *const f64,
8873        typeInOptional: *const ::std::os::raw::c_int,
8874        msgOptional: *const ::std::os::raw::c_char,
8875        msgOptional_sz: ::std::os::raw::c_int,
8876        noSortInOptional: *const bool,
8877    ) -> bool {
8878        match self.pointers.MIDI_SetTextSysexEvt {
8879            None => panic!(format!(
8880                "Attempt to use a REAPER function that has not been loaded: {}",
8881                stringify!(MIDI_SetTextSysexEvt)
8882            )),
8883            Some(f) => f(
8884                take,
8885                textsyxevtidx,
8886                selectedInOptional,
8887                mutedInOptional,
8888                ppqposInOptional,
8889                typeInOptional,
8890                msgOptional,
8891                msgOptional_sz,
8892                noSortInOptional,
8893            ),
8894        }
8895    }
8896    pub unsafe fn MIDI_Sort(&self, take: *mut root::MediaItem_Take) {
8897        match self.pointers.MIDI_Sort {
8898            None => panic!(format!(
8899                "Attempt to use a REAPER function that has not been loaded: {}",
8900                stringify!(MIDI_Sort)
8901            )),
8902            Some(f) => f(take),
8903        }
8904    }
8905    pub fn MIDIEditor_GetActive(&self) -> root::HWND {
8906        match self.pointers.MIDIEditor_GetActive {
8907            None => panic!(format!(
8908                "Attempt to use a REAPER function that has not been loaded: {}",
8909                stringify!(MIDIEditor_GetActive)
8910            )),
8911            Some(f) => f(),
8912        }
8913    }
8914    pub fn MIDIEditor_GetMode(&self, midieditor: root::HWND) -> ::std::os::raw::c_int {
8915        match self.pointers.MIDIEditor_GetMode {
8916            None => panic!(format!(
8917                "Attempt to use a REAPER function that has not been loaded: {}",
8918                stringify!(MIDIEditor_GetMode)
8919            )),
8920            Some(f) => f(midieditor),
8921        }
8922    }
8923    pub unsafe fn MIDIEditor_GetSetting_int(
8924        &self,
8925        midieditor: root::HWND,
8926        setting_desc: *const ::std::os::raw::c_char,
8927    ) -> ::std::os::raw::c_int {
8928        match self.pointers.MIDIEditor_GetSetting_int {
8929            None => panic!(format!(
8930                "Attempt to use a REAPER function that has not been loaded: {}",
8931                stringify!(MIDIEditor_GetSetting_int)
8932            )),
8933            Some(f) => f(midieditor, setting_desc),
8934        }
8935    }
8936    pub unsafe fn MIDIEditor_GetSetting_str(
8937        &self,
8938        midieditor: root::HWND,
8939        setting_desc: *const ::std::os::raw::c_char,
8940        buf: *mut ::std::os::raw::c_char,
8941        buf_sz: ::std::os::raw::c_int,
8942    ) -> bool {
8943        match self.pointers.MIDIEditor_GetSetting_str {
8944            None => panic!(format!(
8945                "Attempt to use a REAPER function that has not been loaded: {}",
8946                stringify!(MIDIEditor_GetSetting_str)
8947            )),
8948            Some(f) => f(midieditor, setting_desc, buf, buf_sz),
8949        }
8950    }
8951    pub fn MIDIEditor_GetTake(&self, midieditor: root::HWND) -> *mut root::MediaItem_Take {
8952        match self.pointers.MIDIEditor_GetTake {
8953            None => panic!(format!(
8954                "Attempt to use a REAPER function that has not been loaded: {}",
8955                stringify!(MIDIEditor_GetTake)
8956            )),
8957            Some(f) => f(midieditor),
8958        }
8959    }
8960    pub fn MIDIEditor_LastFocused_OnCommand(
8961        &self,
8962        command_id: ::std::os::raw::c_int,
8963        islistviewcommand: bool,
8964    ) -> bool {
8965        match self.pointers.MIDIEditor_LastFocused_OnCommand {
8966            None => panic!(format!(
8967                "Attempt to use a REAPER function that has not been loaded: {}",
8968                stringify!(MIDIEditor_LastFocused_OnCommand)
8969            )),
8970            Some(f) => f(command_id, islistviewcommand),
8971        }
8972    }
8973    pub fn MIDIEditor_OnCommand(
8974        &self,
8975        midieditor: root::HWND,
8976        command_id: ::std::os::raw::c_int,
8977    ) -> bool {
8978        match self.pointers.MIDIEditor_OnCommand {
8979            None => panic!(format!(
8980                "Attempt to use a REAPER function that has not been loaded: {}",
8981                stringify!(MIDIEditor_OnCommand)
8982            )),
8983            Some(f) => f(midieditor, command_id),
8984        }
8985    }
8986    pub unsafe fn MIDIEditor_SetSetting_int(
8987        &self,
8988        midieditor: root::HWND,
8989        setting_desc: *const ::std::os::raw::c_char,
8990        setting: ::std::os::raw::c_int,
8991    ) -> bool {
8992        match self.pointers.MIDIEditor_SetSetting_int {
8993            None => panic!(format!(
8994                "Attempt to use a REAPER function that has not been loaded: {}",
8995                stringify!(MIDIEditor_SetSetting_int)
8996            )),
8997            Some(f) => f(midieditor, setting_desc, setting),
8998        }
8999    }
9000    pub unsafe fn mkpanstr(&self, strNeed64: *mut ::std::os::raw::c_char, pan: f64) {
9001        match self.pointers.mkpanstr {
9002            None => panic!(format!(
9003                "Attempt to use a REAPER function that has not been loaded: {}",
9004                stringify!(mkpanstr)
9005            )),
9006            Some(f) => f(strNeed64, pan),
9007        }
9008    }
9009    pub unsafe fn mkvolpanstr(&self, strNeed64: *mut ::std::os::raw::c_char, vol: f64, pan: f64) {
9010        match self.pointers.mkvolpanstr {
9011            None => panic!(format!(
9012                "Attempt to use a REAPER function that has not been loaded: {}",
9013                stringify!(mkvolpanstr)
9014            )),
9015            Some(f) => f(strNeed64, vol, pan),
9016        }
9017    }
9018    pub unsafe fn mkvolstr(&self, strNeed64: *mut ::std::os::raw::c_char, vol: f64) {
9019        match self.pointers.mkvolstr {
9020            None => panic!(format!(
9021                "Attempt to use a REAPER function that has not been loaded: {}",
9022                stringify!(mkvolstr)
9023            )),
9024            Some(f) => f(strNeed64, vol),
9025        }
9026    }
9027    pub fn MoveEditCursor(&self, adjamt: f64, dosel: bool) {
9028        match self.pointers.MoveEditCursor {
9029            None => panic!(format!(
9030                "Attempt to use a REAPER function that has not been loaded: {}",
9031                stringify!(MoveEditCursor)
9032            )),
9033            Some(f) => f(adjamt, dosel),
9034        }
9035    }
9036    pub unsafe fn MoveMediaItemToTrack(
9037        &self,
9038        item: *mut root::MediaItem,
9039        desttr: *mut root::MediaTrack,
9040    ) -> bool {
9041        match self.pointers.MoveMediaItemToTrack {
9042            None => panic!(format!(
9043                "Attempt to use a REAPER function that has not been loaded: {}",
9044                stringify!(MoveMediaItemToTrack)
9045            )),
9046            Some(f) => f(item, desttr),
9047        }
9048    }
9049    pub fn MuteAllTracks(&self, mute: bool) {
9050        match self.pointers.MuteAllTracks {
9051            None => panic!(format!(
9052                "Attempt to use a REAPER function that has not been loaded: {}",
9053                stringify!(MuteAllTracks)
9054            )),
9055            Some(f) => f(mute),
9056        }
9057    }
9058    pub unsafe fn my_getViewport(
9059        &self,
9060        r: *mut root::RECT,
9061        sr: *const root::RECT,
9062        wantWorkArea: bool,
9063    ) {
9064        match self.pointers.my_getViewport {
9065            None => panic!(format!(
9066                "Attempt to use a REAPER function that has not been loaded: {}",
9067                stringify!(my_getViewport)
9068            )),
9069            Some(f) => f(r, sr, wantWorkArea),
9070        }
9071    }
9072    pub unsafe fn NamedCommandLookup(
9073        &self,
9074        command_name: *const ::std::os::raw::c_char,
9075    ) -> ::std::os::raw::c_int {
9076        match self.pointers.NamedCommandLookup {
9077            None => panic!(format!(
9078                "Attempt to use a REAPER function that has not been loaded: {}",
9079                stringify!(NamedCommandLookup)
9080            )),
9081            Some(f) => f(command_name),
9082        }
9083    }
9084    pub fn OnPauseButton(&self) {
9085        match self.pointers.OnPauseButton {
9086            None => panic!(format!(
9087                "Attempt to use a REAPER function that has not been loaded: {}",
9088                stringify!(OnPauseButton)
9089            )),
9090            Some(f) => f(),
9091        }
9092    }
9093    pub unsafe fn OnPauseButtonEx(&self, proj: *mut root::ReaProject) {
9094        match self.pointers.OnPauseButtonEx {
9095            None => panic!(format!(
9096                "Attempt to use a REAPER function that has not been loaded: {}",
9097                stringify!(OnPauseButtonEx)
9098            )),
9099            Some(f) => f(proj),
9100        }
9101    }
9102    pub fn OnPlayButton(&self) {
9103        match self.pointers.OnPlayButton {
9104            None => panic!(format!(
9105                "Attempt to use a REAPER function that has not been loaded: {}",
9106                stringify!(OnPlayButton)
9107            )),
9108            Some(f) => f(),
9109        }
9110    }
9111    pub unsafe fn OnPlayButtonEx(&self, proj: *mut root::ReaProject) {
9112        match self.pointers.OnPlayButtonEx {
9113            None => panic!(format!(
9114                "Attempt to use a REAPER function that has not been loaded: {}",
9115                stringify!(OnPlayButtonEx)
9116            )),
9117            Some(f) => f(proj),
9118        }
9119    }
9120    pub fn OnStopButton(&self) {
9121        match self.pointers.OnStopButton {
9122            None => panic!(format!(
9123                "Attempt to use a REAPER function that has not been loaded: {}",
9124                stringify!(OnStopButton)
9125            )),
9126            Some(f) => f(),
9127        }
9128    }
9129    pub unsafe fn OnStopButtonEx(&self, proj: *mut root::ReaProject) {
9130        match self.pointers.OnStopButtonEx {
9131            None => panic!(format!(
9132                "Attempt to use a REAPER function that has not been loaded: {}",
9133                stringify!(OnStopButtonEx)
9134            )),
9135            Some(f) => f(proj),
9136        }
9137    }
9138    pub unsafe fn OpenColorThemeFile(&self, fn_: *const ::std::os::raw::c_char) -> bool {
9139        match self.pointers.OpenColorThemeFile {
9140            None => panic!(format!(
9141                "Attempt to use a REAPER function that has not been loaded: {}",
9142                stringify!(OpenColorThemeFile)
9143            )),
9144            Some(f) => f(fn_),
9145        }
9146    }
9147    pub unsafe fn OpenMediaExplorer(
9148        &self,
9149        mediafn: *const ::std::os::raw::c_char,
9150        play: bool,
9151    ) -> root::HWND {
9152        match self.pointers.OpenMediaExplorer {
9153            None => panic!(format!(
9154                "Attempt to use a REAPER function that has not been loaded: {}",
9155                stringify!(OpenMediaExplorer)
9156            )),
9157            Some(f) => f(mediafn, play),
9158        }
9159    }
9160    pub unsafe fn OscLocalMessageToHost(
9161        &self,
9162        message: *const ::std::os::raw::c_char,
9163        valueInOptional: *const f64,
9164    ) {
9165        match self.pointers.OscLocalMessageToHost {
9166            None => panic!(format!(
9167                "Attempt to use a REAPER function that has not been loaded: {}",
9168                stringify!(OscLocalMessageToHost)
9169            )),
9170            Some(f) => f(message, valueInOptional),
9171        }
9172    }
9173    pub unsafe fn parse_timestr(&self, buf: *const ::std::os::raw::c_char) -> f64 {
9174        match self.pointers.parse_timestr {
9175            None => panic!(format!(
9176                "Attempt to use a REAPER function that has not been loaded: {}",
9177                stringify!(parse_timestr)
9178            )),
9179            Some(f) => f(buf),
9180        }
9181    }
9182    pub unsafe fn parse_timestr_len(
9183        &self,
9184        buf: *const ::std::os::raw::c_char,
9185        offset: f64,
9186        modeoverride: ::std::os::raw::c_int,
9187    ) -> f64 {
9188        match self.pointers.parse_timestr_len {
9189            None => panic!(format!(
9190                "Attempt to use a REAPER function that has not been loaded: {}",
9191                stringify!(parse_timestr_len)
9192            )),
9193            Some(f) => f(buf, offset, modeoverride),
9194        }
9195    }
9196    pub unsafe fn parse_timestr_pos(
9197        &self,
9198        buf: *const ::std::os::raw::c_char,
9199        modeoverride: ::std::os::raw::c_int,
9200    ) -> f64 {
9201        match self.pointers.parse_timestr_pos {
9202            None => panic!(format!(
9203                "Attempt to use a REAPER function that has not been loaded: {}",
9204                stringify!(parse_timestr_pos)
9205            )),
9206            Some(f) => f(buf, modeoverride),
9207        }
9208    }
9209    pub unsafe fn parsepanstr(&self, str: *const ::std::os::raw::c_char) -> f64 {
9210        match self.pointers.parsepanstr {
9211            None => panic!(format!(
9212                "Attempt to use a REAPER function that has not been loaded: {}",
9213                stringify!(parsepanstr)
9214            )),
9215            Some(f) => f(str),
9216        }
9217    }
9218    pub unsafe fn PCM_Sink_Create(
9219        &self,
9220        filename: *const ::std::os::raw::c_char,
9221        cfg: *const ::std::os::raw::c_char,
9222        cfg_sz: ::std::os::raw::c_int,
9223        nch: ::std::os::raw::c_int,
9224        srate: ::std::os::raw::c_int,
9225        buildpeaks: bool,
9226    ) -> *mut root::PCM_sink {
9227        match self.pointers.PCM_Sink_Create {
9228            None => panic!(format!(
9229                "Attempt to use a REAPER function that has not been loaded: {}",
9230                stringify!(PCM_Sink_Create)
9231            )),
9232            Some(f) => f(filename, cfg, cfg_sz, nch, srate, buildpeaks),
9233        }
9234    }
9235    pub unsafe fn PCM_Sink_CreateEx(
9236        &self,
9237        proj: *mut root::ReaProject,
9238        filename: *const ::std::os::raw::c_char,
9239        cfg: *const ::std::os::raw::c_char,
9240        cfg_sz: ::std::os::raw::c_int,
9241        nch: ::std::os::raw::c_int,
9242        srate: ::std::os::raw::c_int,
9243        buildpeaks: bool,
9244    ) -> *mut root::PCM_sink {
9245        match self.pointers.PCM_Sink_CreateEx {
9246            None => panic!(format!(
9247                "Attempt to use a REAPER function that has not been loaded: {}",
9248                stringify!(PCM_Sink_CreateEx)
9249            )),
9250            Some(f) => f(proj, filename, cfg, cfg_sz, nch, srate, buildpeaks),
9251        }
9252    }
9253    pub unsafe fn PCM_Sink_CreateMIDIFile(
9254        &self,
9255        filename: *const ::std::os::raw::c_char,
9256        cfg: *const ::std::os::raw::c_char,
9257        cfg_sz: ::std::os::raw::c_int,
9258        bpm: f64,
9259        div: ::std::os::raw::c_int,
9260    ) -> *mut root::PCM_sink {
9261        match self.pointers.PCM_Sink_CreateMIDIFile {
9262            None => panic!(format!(
9263                "Attempt to use a REAPER function that has not been loaded: {}",
9264                stringify!(PCM_Sink_CreateMIDIFile)
9265            )),
9266            Some(f) => f(filename, cfg, cfg_sz, bpm, div),
9267        }
9268    }
9269    pub unsafe fn PCM_Sink_CreateMIDIFileEx(
9270        &self,
9271        proj: *mut root::ReaProject,
9272        filename: *const ::std::os::raw::c_char,
9273        cfg: *const ::std::os::raw::c_char,
9274        cfg_sz: ::std::os::raw::c_int,
9275        bpm: f64,
9276        div: ::std::os::raw::c_int,
9277    ) -> *mut root::PCM_sink {
9278        match self.pointers.PCM_Sink_CreateMIDIFileEx {
9279            None => panic!(format!(
9280                "Attempt to use a REAPER function that has not been loaded: {}",
9281                stringify!(PCM_Sink_CreateMIDIFileEx)
9282            )),
9283            Some(f) => f(proj, filename, cfg, cfg_sz, bpm, div),
9284        }
9285    }
9286    pub unsafe fn PCM_Sink_Enum(
9287        &self,
9288        idx: ::std::os::raw::c_int,
9289        descstrOut: *mut *const ::std::os::raw::c_char,
9290    ) -> ::std::os::raw::c_uint {
9291        match self.pointers.PCM_Sink_Enum {
9292            None => panic!(format!(
9293                "Attempt to use a REAPER function that has not been loaded: {}",
9294                stringify!(PCM_Sink_Enum)
9295            )),
9296            Some(f) => f(idx, descstrOut),
9297        }
9298    }
9299    pub unsafe fn PCM_Sink_GetExtension(
9300        &self,
9301        data: *const ::std::os::raw::c_char,
9302        data_sz: ::std::os::raw::c_int,
9303    ) -> *const ::std::os::raw::c_char {
9304        match self.pointers.PCM_Sink_GetExtension {
9305            None => panic!(format!(
9306                "Attempt to use a REAPER function that has not been loaded: {}",
9307                stringify!(PCM_Sink_GetExtension)
9308            )),
9309            Some(f) => f(data, data_sz),
9310        }
9311    }
9312    pub unsafe fn PCM_Sink_ShowConfig(
9313        &self,
9314        cfg: *const ::std::os::raw::c_char,
9315        cfg_sz: ::std::os::raw::c_int,
9316        hwndParent: root::HWND,
9317    ) -> root::HWND {
9318        match self.pointers.PCM_Sink_ShowConfig {
9319            None => panic!(format!(
9320                "Attempt to use a REAPER function that has not been loaded: {}",
9321                stringify!(PCM_Sink_ShowConfig)
9322            )),
9323            Some(f) => f(cfg, cfg_sz, hwndParent),
9324        }
9325    }
9326    pub unsafe fn PCM_Source_CreateFromFile(
9327        &self,
9328        filename: *const ::std::os::raw::c_char,
9329    ) -> *mut root::PCM_source {
9330        match self.pointers.PCM_Source_CreateFromFile {
9331            None => panic!(format!(
9332                "Attempt to use a REAPER function that has not been loaded: {}",
9333                stringify!(PCM_Source_CreateFromFile)
9334            )),
9335            Some(f) => f(filename),
9336        }
9337    }
9338    pub unsafe fn PCM_Source_CreateFromFileEx(
9339        &self,
9340        filename: *const ::std::os::raw::c_char,
9341        forcenoMidiImp: bool,
9342    ) -> *mut root::PCM_source {
9343        match self.pointers.PCM_Source_CreateFromFileEx {
9344            None => panic!(format!(
9345                "Attempt to use a REAPER function that has not been loaded: {}",
9346                stringify!(PCM_Source_CreateFromFileEx)
9347            )),
9348            Some(f) => f(filename, forcenoMidiImp),
9349        }
9350    }
9351    pub unsafe fn PCM_Source_CreateFromSimple(
9352        &self,
9353        dec: *mut root::ISimpleMediaDecoder,
9354        fn_: *const ::std::os::raw::c_char,
9355    ) -> *mut root::PCM_source {
9356        match self.pointers.PCM_Source_CreateFromSimple {
9357            None => panic!(format!(
9358                "Attempt to use a REAPER function that has not been loaded: {}",
9359                stringify!(PCM_Source_CreateFromSimple)
9360            )),
9361            Some(f) => f(dec, fn_),
9362        }
9363    }
9364    pub unsafe fn PCM_Source_CreateFromType(
9365        &self,
9366        sourcetype: *const ::std::os::raw::c_char,
9367    ) -> *mut root::PCM_source {
9368        match self.pointers.PCM_Source_CreateFromType {
9369            None => panic!(format!(
9370                "Attempt to use a REAPER function that has not been loaded: {}",
9371                stringify!(PCM_Source_CreateFromType)
9372            )),
9373            Some(f) => f(sourcetype),
9374        }
9375    }
9376    pub unsafe fn PCM_Source_Destroy(&self, src: *mut root::PCM_source) {
9377        match self.pointers.PCM_Source_Destroy {
9378            None => panic!(format!(
9379                "Attempt to use a REAPER function that has not been loaded: {}",
9380                stringify!(PCM_Source_Destroy)
9381            )),
9382            Some(f) => f(src),
9383        }
9384    }
9385    pub unsafe fn PCM_Source_GetPeaks(
9386        &self,
9387        src: *mut root::PCM_source,
9388        peakrate: f64,
9389        starttime: f64,
9390        numchannels: ::std::os::raw::c_int,
9391        numsamplesperchannel: ::std::os::raw::c_int,
9392        want_extra_type: ::std::os::raw::c_int,
9393        buf: *mut f64,
9394    ) -> ::std::os::raw::c_int {
9395        match self.pointers.PCM_Source_GetPeaks {
9396            None => panic!(format!(
9397                "Attempt to use a REAPER function that has not been loaded: {}",
9398                stringify!(PCM_Source_GetPeaks)
9399            )),
9400            Some(f) => f(
9401                src,
9402                peakrate,
9403                starttime,
9404                numchannels,
9405                numsamplesperchannel,
9406                want_extra_type,
9407                buf,
9408            ),
9409        }
9410    }
9411    pub unsafe fn PCM_Source_GetSectionInfo(
9412        &self,
9413        src: *mut root::PCM_source,
9414        offsOut: *mut f64,
9415        lenOut: *mut f64,
9416        revOut: *mut bool,
9417    ) -> bool {
9418        match self.pointers.PCM_Source_GetSectionInfo {
9419            None => panic!(format!(
9420                "Attempt to use a REAPER function that has not been loaded: {}",
9421                stringify!(PCM_Source_GetSectionInfo)
9422            )),
9423            Some(f) => f(src, offsOut, lenOut, revOut),
9424        }
9425    }
9426    pub unsafe fn PeakBuild_Create(
9427        &self,
9428        src: *mut root::PCM_source,
9429        fn_: *const ::std::os::raw::c_char,
9430        srate: ::std::os::raw::c_int,
9431        nch: ::std::os::raw::c_int,
9432    ) -> *mut root::REAPER_PeakBuild_Interface {
9433        match self.pointers.PeakBuild_Create {
9434            None => panic!(format!(
9435                "Attempt to use a REAPER function that has not been loaded: {}",
9436                stringify!(PeakBuild_Create)
9437            )),
9438            Some(f) => f(src, fn_, srate, nch),
9439        }
9440    }
9441    pub unsafe fn PeakBuild_CreateEx(
9442        &self,
9443        src: *mut root::PCM_source,
9444        fn_: *const ::std::os::raw::c_char,
9445        srate: ::std::os::raw::c_int,
9446        nch: ::std::os::raw::c_int,
9447        flags: ::std::os::raw::c_int,
9448    ) -> *mut root::REAPER_PeakBuild_Interface {
9449        match self.pointers.PeakBuild_CreateEx {
9450            None => panic!(format!(
9451                "Attempt to use a REAPER function that has not been loaded: {}",
9452                stringify!(PeakBuild_CreateEx)
9453            )),
9454            Some(f) => f(src, fn_, srate, nch, flags),
9455        }
9456    }
9457    pub unsafe fn PeakGet_Create(
9458        &self,
9459        fn_: *const ::std::os::raw::c_char,
9460        srate: ::std::os::raw::c_int,
9461        nch: ::std::os::raw::c_int,
9462    ) -> *mut root::REAPER_PeakGet_Interface {
9463        match self.pointers.PeakGet_Create {
9464            None => panic!(format!(
9465                "Attempt to use a REAPER function that has not been loaded: {}",
9466                stringify!(PeakGet_Create)
9467            )),
9468            Some(f) => f(fn_, srate, nch),
9469        }
9470    }
9471    pub fn PitchShiftSubModeMenu(
9472        &self,
9473        hwnd: root::HWND,
9474        x: ::std::os::raw::c_int,
9475        y: ::std::os::raw::c_int,
9476        mode: ::std::os::raw::c_int,
9477        submode_sel: ::std::os::raw::c_int,
9478    ) -> ::std::os::raw::c_int {
9479        match self.pointers.PitchShiftSubModeMenu {
9480            None => panic!(format!(
9481                "Attempt to use a REAPER function that has not been loaded: {}",
9482                stringify!(PitchShiftSubModeMenu)
9483            )),
9484            Some(f) => f(hwnd, x, y, mode, submode_sel),
9485        }
9486    }
9487    pub unsafe fn PlayPreview(
9488        &self,
9489        preview: *mut root::preview_register_t,
9490    ) -> ::std::os::raw::c_int {
9491        match self.pointers.PlayPreview {
9492            None => panic!(format!(
9493                "Attempt to use a REAPER function that has not been loaded: {}",
9494                stringify!(PlayPreview)
9495            )),
9496            Some(f) => f(preview),
9497        }
9498    }
9499    pub unsafe fn PlayPreviewEx(
9500        &self,
9501        preview: *mut root::preview_register_t,
9502        bufflags: ::std::os::raw::c_int,
9503        MSI: f64,
9504    ) -> ::std::os::raw::c_int {
9505        match self.pointers.PlayPreviewEx {
9506            None => panic!(format!(
9507                "Attempt to use a REAPER function that has not been loaded: {}",
9508                stringify!(PlayPreviewEx)
9509            )),
9510            Some(f) => f(preview, bufflags, MSI),
9511        }
9512    }
9513    pub unsafe fn PlayTrackPreview(
9514        &self,
9515        preview: *mut root::preview_register_t,
9516    ) -> ::std::os::raw::c_int {
9517        match self.pointers.PlayTrackPreview {
9518            None => panic!(format!(
9519                "Attempt to use a REAPER function that has not been loaded: {}",
9520                stringify!(PlayTrackPreview)
9521            )),
9522            Some(f) => f(preview),
9523        }
9524    }
9525    pub unsafe fn PlayTrackPreview2(
9526        &self,
9527        proj: *mut root::ReaProject,
9528        preview: *mut root::preview_register_t,
9529    ) -> ::std::os::raw::c_int {
9530        match self.pointers.PlayTrackPreview2 {
9531            None => panic!(format!(
9532                "Attempt to use a REAPER function that has not been loaded: {}",
9533                stringify!(PlayTrackPreview2)
9534            )),
9535            Some(f) => f(proj, preview),
9536        }
9537    }
9538    pub unsafe fn PlayTrackPreview2Ex(
9539        &self,
9540        proj: *mut root::ReaProject,
9541        preview: *mut root::preview_register_t,
9542        flags: ::std::os::raw::c_int,
9543        msi: f64,
9544    ) -> ::std::os::raw::c_int {
9545        match self.pointers.PlayTrackPreview2Ex {
9546            None => panic!(format!(
9547                "Attempt to use a REAPER function that has not been loaded: {}",
9548                stringify!(PlayTrackPreview2Ex)
9549            )),
9550            Some(f) => f(proj, preview, flags, msi),
9551        }
9552    }
9553    pub unsafe fn plugin_getapi(
9554        &self,
9555        name: *const ::std::os::raw::c_char,
9556    ) -> *mut ::std::os::raw::c_void {
9557        match self.pointers.plugin_getapi {
9558            None => panic!(format!(
9559                "Attempt to use a REAPER function that has not been loaded: {}",
9560                stringify!(plugin_getapi)
9561            )),
9562            Some(f) => f(name),
9563        }
9564    }
9565    pub fn plugin_getFilterList(&self) -> *const ::std::os::raw::c_char {
9566        match self.pointers.plugin_getFilterList {
9567            None => panic!(format!(
9568                "Attempt to use a REAPER function that has not been loaded: {}",
9569                stringify!(plugin_getFilterList)
9570            )),
9571            Some(f) => f(),
9572        }
9573    }
9574    pub fn plugin_getImportableProjectFilterList(&self) -> *const ::std::os::raw::c_char {
9575        match self.pointers.plugin_getImportableProjectFilterList {
9576            None => panic!(format!(
9577                "Attempt to use a REAPER function that has not been loaded: {}",
9578                stringify!(plugin_getImportableProjectFilterList)
9579            )),
9580            Some(f) => f(),
9581        }
9582    }
9583    pub unsafe fn plugin_register(
9584        &self,
9585        name: *const ::std::os::raw::c_char,
9586        infostruct: *mut ::std::os::raw::c_void,
9587    ) -> ::std::os::raw::c_int {
9588        match self.pointers.plugin_register {
9589            None => panic!(format!(
9590                "Attempt to use a REAPER function that has not been loaded: {}",
9591                stringify!(plugin_register)
9592            )),
9593            Some(f) => f(name, infostruct),
9594        }
9595    }
9596    pub fn PluginWantsAlwaysRunFx(&self, amt: ::std::os::raw::c_int) {
9597        match self.pointers.PluginWantsAlwaysRunFx {
9598            None => panic!(format!(
9599                "Attempt to use a REAPER function that has not been loaded: {}",
9600                stringify!(PluginWantsAlwaysRunFx)
9601            )),
9602            Some(f) => f(amt),
9603        }
9604    }
9605    pub fn PreventUIRefresh(&self, prevent_count: ::std::os::raw::c_int) {
9606        match self.pointers.PreventUIRefresh {
9607            None => panic!(format!(
9608                "Attempt to use a REAPER function that has not been loaded: {}",
9609                stringify!(PreventUIRefresh)
9610            )),
9611            Some(f) => f(prevent_count),
9612        }
9613    }
9614    pub unsafe fn projectconfig_var_addr(
9615        &self,
9616        proj: *mut root::ReaProject,
9617        idx: ::std::os::raw::c_int,
9618    ) -> *mut ::std::os::raw::c_void {
9619        match self.pointers.projectconfig_var_addr {
9620            None => panic!(format!(
9621                "Attempt to use a REAPER function that has not been loaded: {}",
9622                stringify!(projectconfig_var_addr)
9623            )),
9624            Some(f) => f(proj, idx),
9625        }
9626    }
9627    pub unsafe fn projectconfig_var_getoffs(
9628        &self,
9629        name: *const ::std::os::raw::c_char,
9630        szOut: *mut ::std::os::raw::c_int,
9631    ) -> ::std::os::raw::c_int {
9632        match self.pointers.projectconfig_var_getoffs {
9633            None => panic!(format!(
9634                "Attempt to use a REAPER function that has not been loaded: {}",
9635                stringify!(projectconfig_var_getoffs)
9636            )),
9637            Some(f) => f(name, szOut),
9638        }
9639    }
9640    pub unsafe fn realloc_cmd_ptr(
9641        &self,
9642        ptr: *mut *mut ::std::os::raw::c_char,
9643        ptr_size: *mut ::std::os::raw::c_int,
9644        new_size: ::std::os::raw::c_int,
9645    ) -> bool {
9646        match self.pointers.realloc_cmd_ptr {
9647            None => panic!(format!(
9648                "Attempt to use a REAPER function that has not been loaded: {}",
9649                stringify!(realloc_cmd_ptr)
9650            )),
9651            Some(f) => f(ptr, ptr_size, new_size),
9652        }
9653    }
9654    pub fn ReaperGetPitchShiftAPI(
9655        &self,
9656        version: ::std::os::raw::c_int,
9657    ) -> *mut root::IReaperPitchShift {
9658        match self.pointers.ReaperGetPitchShiftAPI {
9659            None => panic!(format!(
9660                "Attempt to use a REAPER function that has not been loaded: {}",
9661                stringify!(ReaperGetPitchShiftAPI)
9662            )),
9663            Some(f) => f(version),
9664        }
9665    }
9666    pub unsafe fn ReaScriptError(&self, errmsg: *const ::std::os::raw::c_char) {
9667        match self.pointers.ReaScriptError {
9668            None => panic!(format!(
9669                "Attempt to use a REAPER function that has not been loaded: {}",
9670                stringify!(ReaScriptError)
9671            )),
9672            Some(f) => f(errmsg),
9673        }
9674    }
9675    pub unsafe fn RecursiveCreateDirectory(
9676        &self,
9677        path: *const ::std::os::raw::c_char,
9678        ignored: usize,
9679    ) -> ::std::os::raw::c_int {
9680        match self.pointers.RecursiveCreateDirectory {
9681            None => panic!(format!(
9682                "Attempt to use a REAPER function that has not been loaded: {}",
9683                stringify!(RecursiveCreateDirectory)
9684            )),
9685            Some(f) => f(path, ignored),
9686        }
9687    }
9688    pub fn reduce_open_files(&self, flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
9689        match self.pointers.reduce_open_files {
9690            None => panic!(format!(
9691                "Attempt to use a REAPER function that has not been loaded: {}",
9692                stringify!(reduce_open_files)
9693            )),
9694            Some(f) => f(flags),
9695        }
9696    }
9697    pub fn RefreshToolbar(&self, command_id: ::std::os::raw::c_int) {
9698        match self.pointers.RefreshToolbar {
9699            None => panic!(format!(
9700                "Attempt to use a REAPER function that has not been loaded: {}",
9701                stringify!(RefreshToolbar)
9702            )),
9703            Some(f) => f(command_id),
9704        }
9705    }
9706    pub fn RefreshToolbar2(
9707        &self,
9708        section_id: ::std::os::raw::c_int,
9709        command_id: ::std::os::raw::c_int,
9710    ) {
9711        match self.pointers.RefreshToolbar2 {
9712            None => panic!(format!(
9713                "Attempt to use a REAPER function that has not been loaded: {}",
9714                stringify!(RefreshToolbar2)
9715            )),
9716            Some(f) => f(section_id, command_id),
9717        }
9718    }
9719    pub unsafe fn relative_fn(
9720        &self,
9721        in_: *const ::std::os::raw::c_char,
9722        out: *mut ::std::os::raw::c_char,
9723        out_sz: ::std::os::raw::c_int,
9724    ) {
9725        match self.pointers.relative_fn {
9726            None => panic!(format!(
9727                "Attempt to use a REAPER function that has not been loaded: {}",
9728                stringify!(relative_fn)
9729            )),
9730            Some(f) => f(in_, out, out_sz),
9731        }
9732    }
9733    pub unsafe fn RemoveTrackSend(
9734        &self,
9735        tr: *mut root::MediaTrack,
9736        category: ::std::os::raw::c_int,
9737        sendidx: ::std::os::raw::c_int,
9738    ) -> bool {
9739        match self.pointers.RemoveTrackSend {
9740            None => panic!(format!(
9741                "Attempt to use a REAPER function that has not been loaded: {}",
9742                stringify!(RemoveTrackSend)
9743            )),
9744            Some(f) => f(tr, category, sendidx),
9745        }
9746    }
9747    pub unsafe fn RenderFileSection(
9748        &self,
9749        source_filename: *const ::std::os::raw::c_char,
9750        target_filename: *const ::std::os::raw::c_char,
9751        start_percent: f64,
9752        end_percent: f64,
9753        playrate: f64,
9754    ) -> bool {
9755        match self.pointers.RenderFileSection {
9756            None => panic!(format!(
9757                "Attempt to use a REAPER function that has not been loaded: {}",
9758                stringify!(RenderFileSection)
9759            )),
9760            Some(f) => f(
9761                source_filename,
9762                target_filename,
9763                start_percent,
9764                end_percent,
9765                playrate,
9766            ),
9767        }
9768    }
9769    pub fn ReorderSelectedTracks(
9770        &self,
9771        beforeTrackIdx: ::std::os::raw::c_int,
9772        makePrevFolder: ::std::os::raw::c_int,
9773    ) -> bool {
9774        match self.pointers.ReorderSelectedTracks {
9775            None => panic!(format!(
9776                "Attempt to use a REAPER function that has not been loaded: {}",
9777                stringify!(ReorderSelectedTracks)
9778            )),
9779            Some(f) => f(beforeTrackIdx, makePrevFolder),
9780        }
9781    }
9782    pub fn Resample_EnumModes(&self, mode: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char {
9783        match self.pointers.Resample_EnumModes {
9784            None => panic!(format!(
9785                "Attempt to use a REAPER function that has not been loaded: {}",
9786                stringify!(Resample_EnumModes)
9787            )),
9788            Some(f) => f(mode),
9789        }
9790    }
9791    pub fn Resampler_Create(&self) -> *mut root::REAPER_Resample_Interface {
9792        match self.pointers.Resampler_Create {
9793            None => panic!(format!(
9794                "Attempt to use a REAPER function that has not been loaded: {}",
9795                stringify!(Resampler_Create)
9796            )),
9797            Some(f) => f(),
9798        }
9799    }
9800    pub unsafe fn resolve_fn(
9801        &self,
9802        in_: *const ::std::os::raw::c_char,
9803        out: *mut ::std::os::raw::c_char,
9804        out_sz: ::std::os::raw::c_int,
9805    ) {
9806        match self.pointers.resolve_fn {
9807            None => panic!(format!(
9808                "Attempt to use a REAPER function that has not been loaded: {}",
9809                stringify!(resolve_fn)
9810            )),
9811            Some(f) => f(in_, out, out_sz),
9812        }
9813    }
9814    pub unsafe fn resolve_fn2(
9815        &self,
9816        in_: *const ::std::os::raw::c_char,
9817        out: *mut ::std::os::raw::c_char,
9818        out_sz: ::std::os::raw::c_int,
9819        checkSubDirOptional: *const ::std::os::raw::c_char,
9820    ) {
9821        match self.pointers.resolve_fn2 {
9822            None => panic!(format!(
9823                "Attempt to use a REAPER function that has not been loaded: {}",
9824                stringify!(resolve_fn2)
9825            )),
9826            Some(f) => f(in_, out, out_sz, checkSubDirOptional),
9827        }
9828    }
9829    pub fn ReverseNamedCommandLookup(
9830        &self,
9831        command_id: ::std::os::raw::c_int,
9832    ) -> *const ::std::os::raw::c_char {
9833        match self.pointers.ReverseNamedCommandLookup {
9834            None => panic!(format!(
9835                "Attempt to use a REAPER function that has not been loaded: {}",
9836                stringify!(ReverseNamedCommandLookup)
9837            )),
9838            Some(f) => f(command_id),
9839        }
9840    }
9841    pub fn ScaleFromEnvelopeMode(&self, scaling_mode: ::std::os::raw::c_int, val: f64) -> f64 {
9842        match self.pointers.ScaleFromEnvelopeMode {
9843            None => panic!(format!(
9844                "Attempt to use a REAPER function that has not been loaded: {}",
9845                stringify!(ScaleFromEnvelopeMode)
9846            )),
9847            Some(f) => f(scaling_mode, val),
9848        }
9849    }
9850    pub fn ScaleToEnvelopeMode(&self, scaling_mode: ::std::os::raw::c_int, val: f64) -> f64 {
9851        match self.pointers.ScaleToEnvelopeMode {
9852            None => panic!(format!(
9853                "Attempt to use a REAPER function that has not been loaded: {}",
9854                stringify!(ScaleToEnvelopeMode)
9855            )),
9856            Some(f) => f(scaling_mode, val),
9857        }
9858    }
9859    pub unsafe fn screenset_register(
9860        &self,
9861        id: *mut ::std::os::raw::c_char,
9862        callbackFunc: *mut ::std::os::raw::c_void,
9863        param: *mut ::std::os::raw::c_void,
9864    ) {
9865        match self.pointers.screenset_register {
9866            None => panic!(format!(
9867                "Attempt to use a REAPER function that has not been loaded: {}",
9868                stringify!(screenset_register)
9869            )),
9870            Some(f) => f(id, callbackFunc, param),
9871        }
9872    }
9873    pub unsafe fn screenset_registerNew(
9874        &self,
9875        id: *mut ::std::os::raw::c_char,
9876        callbackFunc: root::screensetNewCallbackFunc,
9877        param: *mut ::std::os::raw::c_void,
9878    ) {
9879        match self.pointers.screenset_registerNew {
9880            None => panic!(format!(
9881                "Attempt to use a REAPER function that has not been loaded: {}",
9882                stringify!(screenset_registerNew)
9883            )),
9884            Some(f) => f(id, callbackFunc, param),
9885        }
9886    }
9887    pub unsafe fn screenset_unregister(&self, id: *mut ::std::os::raw::c_char) {
9888        match self.pointers.screenset_unregister {
9889            None => panic!(format!(
9890                "Attempt to use a REAPER function that has not been loaded: {}",
9891                stringify!(screenset_unregister)
9892            )),
9893            Some(f) => f(id),
9894        }
9895    }
9896    pub unsafe fn screenset_unregisterByParam(&self, param: *mut ::std::os::raw::c_void) {
9897        match self.pointers.screenset_unregisterByParam {
9898            None => panic!(format!(
9899                "Attempt to use a REAPER function that has not been loaded: {}",
9900                stringify!(screenset_unregisterByParam)
9901            )),
9902            Some(f) => f(param),
9903        }
9904    }
9905    pub fn screenset_updateLastFocus(&self, prevWin: root::HWND) {
9906        match self.pointers.screenset_updateLastFocus {
9907            None => panic!(format!(
9908                "Attempt to use a REAPER function that has not been loaded: {}",
9909                stringify!(screenset_updateLastFocus)
9910            )),
9911            Some(f) => f(prevWin),
9912        }
9913    }
9914    pub fn SectionFromUniqueID(
9915        &self,
9916        uniqueID: ::std::os::raw::c_int,
9917    ) -> *mut root::KbdSectionInfo {
9918        match self.pointers.SectionFromUniqueID {
9919            None => panic!(format!(
9920                "Attempt to use a REAPER function that has not been loaded: {}",
9921                stringify!(SectionFromUniqueID)
9922            )),
9923            Some(f) => f(uniqueID),
9924        }
9925    }
9926    pub unsafe fn SelectAllMediaItems(&self, proj: *mut root::ReaProject, selected: bool) {
9927        match self.pointers.SelectAllMediaItems {
9928            None => panic!(format!(
9929                "Attempt to use a REAPER function that has not been loaded: {}",
9930                stringify!(SelectAllMediaItems)
9931            )),
9932            Some(f) => f(proj, selected),
9933        }
9934    }
9935    pub unsafe fn SelectProjectInstance(&self, proj: *mut root::ReaProject) {
9936        match self.pointers.SelectProjectInstance {
9937            None => panic!(format!(
9938                "Attempt to use a REAPER function that has not been loaded: {}",
9939                stringify!(SelectProjectInstance)
9940            )),
9941            Some(f) => f(proj),
9942        }
9943    }
9944    pub unsafe fn SendLocalOscMessage(
9945        &self,
9946        local_osc_handler: *mut ::std::os::raw::c_void,
9947        msg: *const ::std::os::raw::c_char,
9948        msglen: ::std::os::raw::c_int,
9949    ) {
9950        match self.pointers.SendLocalOscMessage {
9951            None => panic!(format!(
9952                "Attempt to use a REAPER function that has not been loaded: {}",
9953                stringify!(SendLocalOscMessage)
9954            )),
9955            Some(f) => f(local_osc_handler, msg, msglen),
9956        }
9957    }
9958    pub unsafe fn SetActiveTake(&self, take: *mut root::MediaItem_Take) {
9959        match self.pointers.SetActiveTake {
9960            None => panic!(format!(
9961                "Attempt to use a REAPER function that has not been loaded: {}",
9962                stringify!(SetActiveTake)
9963            )),
9964            Some(f) => f(take),
9965        }
9966    }
9967    pub fn SetAutomationMode(&self, mode: ::std::os::raw::c_int, onlySel: bool) {
9968        match self.pointers.SetAutomationMode {
9969            None => panic!(format!(
9970                "Attempt to use a REAPER function that has not been loaded: {}",
9971                stringify!(SetAutomationMode)
9972            )),
9973            Some(f) => f(mode, onlySel),
9974        }
9975    }
9976    pub unsafe fn SetCurrentBPM(&self, __proj: *mut root::ReaProject, bpm: f64, wantUndo: bool) {
9977        match self.pointers.SetCurrentBPM {
9978            None => panic!(format!(
9979                "Attempt to use a REAPER function that has not been loaded: {}",
9980                stringify!(SetCurrentBPM)
9981            )),
9982            Some(f) => f(__proj, bpm, wantUndo),
9983        }
9984    }
9985    pub unsafe fn SetCursorContext(
9986        &self,
9987        mode: ::std::os::raw::c_int,
9988        envInOptional: *mut root::TrackEnvelope,
9989    ) {
9990        match self.pointers.SetCursorContext {
9991            None => panic!(format!(
9992                "Attempt to use a REAPER function that has not been loaded: {}",
9993                stringify!(SetCursorContext)
9994            )),
9995            Some(f) => f(mode, envInOptional),
9996        }
9997    }
9998    pub fn SetEditCurPos(&self, time: f64, moveview: bool, seekplay: bool) {
9999        match self.pointers.SetEditCurPos {
10000            None => panic!(format!(
10001                "Attempt to use a REAPER function that has not been loaded: {}",
10002                stringify!(SetEditCurPos)
10003            )),
10004            Some(f) => f(time, moveview, seekplay),
10005        }
10006    }
10007    pub unsafe fn SetEditCurPos2(
10008        &self,
10009        proj: *mut root::ReaProject,
10010        time: f64,
10011        moveview: bool,
10012        seekplay: bool,
10013    ) {
10014        match self.pointers.SetEditCurPos2 {
10015            None => panic!(format!(
10016                "Attempt to use a REAPER function that has not been loaded: {}",
10017                stringify!(SetEditCurPos2)
10018            )),
10019            Some(f) => f(proj, time, moveview, seekplay),
10020        }
10021    }
10022    pub unsafe fn SetEnvelopePoint(
10023        &self,
10024        envelope: *mut root::TrackEnvelope,
10025        ptidx: ::std::os::raw::c_int,
10026        timeInOptional: *mut f64,
10027        valueInOptional: *mut f64,
10028        shapeInOptional: *mut ::std::os::raw::c_int,
10029        tensionInOptional: *mut f64,
10030        selectedInOptional: *mut bool,
10031        noSortInOptional: *mut bool,
10032    ) -> bool {
10033        match self.pointers.SetEnvelopePoint {
10034            None => panic!(format!(
10035                "Attempt to use a REAPER function that has not been loaded: {}",
10036                stringify!(SetEnvelopePoint)
10037            )),
10038            Some(f) => f(
10039                envelope,
10040                ptidx,
10041                timeInOptional,
10042                valueInOptional,
10043                shapeInOptional,
10044                tensionInOptional,
10045                selectedInOptional,
10046                noSortInOptional,
10047            ),
10048        }
10049    }
10050    pub unsafe fn SetEnvelopePointEx(
10051        &self,
10052        envelope: *mut root::TrackEnvelope,
10053        autoitem_idx: ::std::os::raw::c_int,
10054        ptidx: ::std::os::raw::c_int,
10055        timeInOptional: *mut f64,
10056        valueInOptional: *mut f64,
10057        shapeInOptional: *mut ::std::os::raw::c_int,
10058        tensionInOptional: *mut f64,
10059        selectedInOptional: *mut bool,
10060        noSortInOptional: *mut bool,
10061    ) -> bool {
10062        match self.pointers.SetEnvelopePointEx {
10063            None => panic!(format!(
10064                "Attempt to use a REAPER function that has not been loaded: {}",
10065                stringify!(SetEnvelopePointEx)
10066            )),
10067            Some(f) => f(
10068                envelope,
10069                autoitem_idx,
10070                ptidx,
10071                timeInOptional,
10072                valueInOptional,
10073                shapeInOptional,
10074                tensionInOptional,
10075                selectedInOptional,
10076                noSortInOptional,
10077            ),
10078        }
10079    }
10080    pub unsafe fn SetEnvelopeStateChunk(
10081        &self,
10082        env: *mut root::TrackEnvelope,
10083        str: *const ::std::os::raw::c_char,
10084        isundoOptional: bool,
10085    ) -> bool {
10086        match self.pointers.SetEnvelopeStateChunk {
10087            None => panic!(format!(
10088                "Attempt to use a REAPER function that has not been loaded: {}",
10089                stringify!(SetEnvelopeStateChunk)
10090            )),
10091            Some(f) => f(env, str, isundoOptional),
10092        }
10093    }
10094    pub unsafe fn SetExtState(
10095        &self,
10096        section: *const ::std::os::raw::c_char,
10097        key: *const ::std::os::raw::c_char,
10098        value: *const ::std::os::raw::c_char,
10099        persist: bool,
10100    ) {
10101        match self.pointers.SetExtState {
10102            None => panic!(format!(
10103                "Attempt to use a REAPER function that has not been loaded: {}",
10104                stringify!(SetExtState)
10105            )),
10106            Some(f) => f(section, key, value, persist),
10107        }
10108    }
10109    pub fn SetGlobalAutomationOverride(&self, mode: ::std::os::raw::c_int) {
10110        match self.pointers.SetGlobalAutomationOverride {
10111            None => panic!(format!(
10112                "Attempt to use a REAPER function that has not been loaded: {}",
10113                stringify!(SetGlobalAutomationOverride)
10114            )),
10115            Some(f) => f(mode),
10116        }
10117    }
10118    pub unsafe fn SetItemStateChunk(
10119        &self,
10120        item: *mut root::MediaItem,
10121        str: *const ::std::os::raw::c_char,
10122        isundoOptional: bool,
10123    ) -> bool {
10124        match self.pointers.SetItemStateChunk {
10125            None => panic!(format!(
10126                "Attempt to use a REAPER function that has not been loaded: {}",
10127                stringify!(SetItemStateChunk)
10128            )),
10129            Some(f) => f(item, str, isundoOptional),
10130        }
10131    }
10132    pub fn SetMasterTrackVisibility(&self, flag: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
10133        match self.pointers.SetMasterTrackVisibility {
10134            None => panic!(format!(
10135                "Attempt to use a REAPER function that has not been loaded: {}",
10136                stringify!(SetMasterTrackVisibility)
10137            )),
10138            Some(f) => f(flag),
10139        }
10140    }
10141    pub unsafe fn SetMediaItemInfo_Value(
10142        &self,
10143        item: *mut root::MediaItem,
10144        parmname: *const ::std::os::raw::c_char,
10145        newvalue: f64,
10146    ) -> bool {
10147        match self.pointers.SetMediaItemInfo_Value {
10148            None => panic!(format!(
10149                "Attempt to use a REAPER function that has not been loaded: {}",
10150                stringify!(SetMediaItemInfo_Value)
10151            )),
10152            Some(f) => f(item, parmname, newvalue),
10153        }
10154    }
10155    pub unsafe fn SetMediaItemLength(
10156        &self,
10157        item: *mut root::MediaItem,
10158        length: f64,
10159        refreshUI: bool,
10160    ) -> bool {
10161        match self.pointers.SetMediaItemLength {
10162            None => panic!(format!(
10163                "Attempt to use a REAPER function that has not been loaded: {}",
10164                stringify!(SetMediaItemLength)
10165            )),
10166            Some(f) => f(item, length, refreshUI),
10167        }
10168    }
10169    pub unsafe fn SetMediaItemPosition(
10170        &self,
10171        item: *mut root::MediaItem,
10172        position: f64,
10173        refreshUI: bool,
10174    ) -> bool {
10175        match self.pointers.SetMediaItemPosition {
10176            None => panic!(format!(
10177                "Attempt to use a REAPER function that has not been loaded: {}",
10178                stringify!(SetMediaItemPosition)
10179            )),
10180            Some(f) => f(item, position, refreshUI),
10181        }
10182    }
10183    pub unsafe fn SetMediaItemSelected(&self, item: *mut root::MediaItem, selected: bool) {
10184        match self.pointers.SetMediaItemSelected {
10185            None => panic!(format!(
10186                "Attempt to use a REAPER function that has not been loaded: {}",
10187                stringify!(SetMediaItemSelected)
10188            )),
10189            Some(f) => f(item, selected),
10190        }
10191    }
10192    pub unsafe fn SetMediaItemTake_Source(
10193        &self,
10194        take: *mut root::MediaItem_Take,
10195        source: *mut root::PCM_source,
10196    ) -> bool {
10197        match self.pointers.SetMediaItemTake_Source {
10198            None => panic!(format!(
10199                "Attempt to use a REAPER function that has not been loaded: {}",
10200                stringify!(SetMediaItemTake_Source)
10201            )),
10202            Some(f) => f(take, source),
10203        }
10204    }
10205    pub unsafe fn SetMediaItemTakeInfo_Value(
10206        &self,
10207        take: *mut root::MediaItem_Take,
10208        parmname: *const ::std::os::raw::c_char,
10209        newvalue: f64,
10210    ) -> bool {
10211        match self.pointers.SetMediaItemTakeInfo_Value {
10212            None => panic!(format!(
10213                "Attempt to use a REAPER function that has not been loaded: {}",
10214                stringify!(SetMediaItemTakeInfo_Value)
10215            )),
10216            Some(f) => f(take, parmname, newvalue),
10217        }
10218    }
10219    pub unsafe fn SetMediaTrackInfo_Value(
10220        &self,
10221        tr: *mut root::MediaTrack,
10222        parmname: *const ::std::os::raw::c_char,
10223        newvalue: f64,
10224    ) -> bool {
10225        match self.pointers.SetMediaTrackInfo_Value {
10226            None => panic!(format!(
10227                "Attempt to use a REAPER function that has not been loaded: {}",
10228                stringify!(SetMediaTrackInfo_Value)
10229            )),
10230            Some(f) => f(tr, parmname, newvalue),
10231        }
10232    }
10233    pub unsafe fn SetMIDIEditorGrid(&self, project: *mut root::ReaProject, division: f64) {
10234        match self.pointers.SetMIDIEditorGrid {
10235            None => panic!(format!(
10236                "Attempt to use a REAPER function that has not been loaded: {}",
10237                stringify!(SetMIDIEditorGrid)
10238            )),
10239            Some(f) => f(project, division),
10240        }
10241    }
10242    pub unsafe fn SetMixerScroll(
10243        &self,
10244        leftmosttrack: *mut root::MediaTrack,
10245    ) -> *mut root::MediaTrack {
10246        match self.pointers.SetMixerScroll {
10247            None => panic!(format!(
10248                "Attempt to use a REAPER function that has not been loaded: {}",
10249                stringify!(SetMixerScroll)
10250            )),
10251            Some(f) => f(leftmosttrack),
10252        }
10253    }
10254    pub unsafe fn SetMouseModifier(
10255        &self,
10256        context: *const ::std::os::raw::c_char,
10257        modifier_flag: ::std::os::raw::c_int,
10258        action: *const ::std::os::raw::c_char,
10259    ) {
10260        match self.pointers.SetMouseModifier {
10261            None => panic!(format!(
10262                "Attempt to use a REAPER function that has not been loaded: {}",
10263                stringify!(SetMouseModifier)
10264            )),
10265            Some(f) => f(context, modifier_flag, action),
10266        }
10267    }
10268    pub unsafe fn SetOnlyTrackSelected(&self, track: *mut root::MediaTrack) {
10269        match self.pointers.SetOnlyTrackSelected {
10270            None => panic!(format!(
10271                "Attempt to use a REAPER function that has not been loaded: {}",
10272                stringify!(SetOnlyTrackSelected)
10273            )),
10274            Some(f) => f(track),
10275        }
10276    }
10277    pub unsafe fn SetProjectGrid(&self, project: *mut root::ReaProject, division: f64) {
10278        match self.pointers.SetProjectGrid {
10279            None => panic!(format!(
10280                "Attempt to use a REAPER function that has not been loaded: {}",
10281                stringify!(SetProjectGrid)
10282            )),
10283            Some(f) => f(project, division),
10284        }
10285    }
10286    pub unsafe fn SetProjectMarker(
10287        &self,
10288        markrgnindexnumber: ::std::os::raw::c_int,
10289        isrgn: bool,
10290        pos: f64,
10291        rgnend: f64,
10292        name: *const ::std::os::raw::c_char,
10293    ) -> bool {
10294        match self.pointers.SetProjectMarker {
10295            None => panic!(format!(
10296                "Attempt to use a REAPER function that has not been loaded: {}",
10297                stringify!(SetProjectMarker)
10298            )),
10299            Some(f) => f(markrgnindexnumber, isrgn, pos, rgnend, name),
10300        }
10301    }
10302    pub unsafe fn SetProjectMarker2(
10303        &self,
10304        proj: *mut root::ReaProject,
10305        markrgnindexnumber: ::std::os::raw::c_int,
10306        isrgn: bool,
10307        pos: f64,
10308        rgnend: f64,
10309        name: *const ::std::os::raw::c_char,
10310    ) -> bool {
10311        match self.pointers.SetProjectMarker2 {
10312            None => panic!(format!(
10313                "Attempt to use a REAPER function that has not been loaded: {}",
10314                stringify!(SetProjectMarker2)
10315            )),
10316            Some(f) => f(proj, markrgnindexnumber, isrgn, pos, rgnend, name),
10317        }
10318    }
10319    pub unsafe fn SetProjectMarker3(
10320        &self,
10321        proj: *mut root::ReaProject,
10322        markrgnindexnumber: ::std::os::raw::c_int,
10323        isrgn: bool,
10324        pos: f64,
10325        rgnend: f64,
10326        name: *const ::std::os::raw::c_char,
10327        color: ::std::os::raw::c_int,
10328    ) -> bool {
10329        match self.pointers.SetProjectMarker3 {
10330            None => panic!(format!(
10331                "Attempt to use a REAPER function that has not been loaded: {}",
10332                stringify!(SetProjectMarker3)
10333            )),
10334            Some(f) => f(proj, markrgnindexnumber, isrgn, pos, rgnend, name, color),
10335        }
10336    }
10337    pub unsafe fn SetProjectMarker4(
10338        &self,
10339        proj: *mut root::ReaProject,
10340        markrgnindexnumber: ::std::os::raw::c_int,
10341        isrgn: bool,
10342        pos: f64,
10343        rgnend: f64,
10344        name: *const ::std::os::raw::c_char,
10345        color: ::std::os::raw::c_int,
10346        flags: ::std::os::raw::c_int,
10347    ) -> bool {
10348        match self.pointers.SetProjectMarker4 {
10349            None => panic!(format!(
10350                "Attempt to use a REAPER function that has not been loaded: {}",
10351                stringify!(SetProjectMarker4)
10352            )),
10353            Some(f) => f(
10354                proj,
10355                markrgnindexnumber,
10356                isrgn,
10357                pos,
10358                rgnend,
10359                name,
10360                color,
10361                flags,
10362            ),
10363        }
10364    }
10365    pub unsafe fn SetProjectMarkerByIndex(
10366        &self,
10367        proj: *mut root::ReaProject,
10368        markrgnidx: ::std::os::raw::c_int,
10369        isrgn: bool,
10370        pos: f64,
10371        rgnend: f64,
10372        IDnumber: ::std::os::raw::c_int,
10373        name: *const ::std::os::raw::c_char,
10374        color: ::std::os::raw::c_int,
10375    ) -> bool {
10376        match self.pointers.SetProjectMarkerByIndex {
10377            None => panic!(format!(
10378                "Attempt to use a REAPER function that has not been loaded: {}",
10379                stringify!(SetProjectMarkerByIndex)
10380            )),
10381            Some(f) => f(proj, markrgnidx, isrgn, pos, rgnend, IDnumber, name, color),
10382        }
10383    }
10384    pub unsafe fn SetProjectMarkerByIndex2(
10385        &self,
10386        proj: *mut root::ReaProject,
10387        markrgnidx: ::std::os::raw::c_int,
10388        isrgn: bool,
10389        pos: f64,
10390        rgnend: f64,
10391        IDnumber: ::std::os::raw::c_int,
10392        name: *const ::std::os::raw::c_char,
10393        color: ::std::os::raw::c_int,
10394        flags: ::std::os::raw::c_int,
10395    ) -> bool {
10396        match self.pointers.SetProjectMarkerByIndex2 {
10397            None => panic!(format!(
10398                "Attempt to use a REAPER function that has not been loaded: {}",
10399                stringify!(SetProjectMarkerByIndex2)
10400            )),
10401            Some(f) => f(
10402                proj, markrgnidx, isrgn, pos, rgnend, IDnumber, name, color, flags,
10403            ),
10404        }
10405    }
10406    pub unsafe fn SetProjExtState(
10407        &self,
10408        proj: *mut root::ReaProject,
10409        extname: *const ::std::os::raw::c_char,
10410        key: *const ::std::os::raw::c_char,
10411        value: *const ::std::os::raw::c_char,
10412    ) -> ::std::os::raw::c_int {
10413        match self.pointers.SetProjExtState {
10414            None => panic!(format!(
10415                "Attempt to use a REAPER function that has not been loaded: {}",
10416                stringify!(SetProjExtState)
10417            )),
10418            Some(f) => f(proj, extname, key, value),
10419        }
10420    }
10421    pub unsafe fn SetRegionRenderMatrix(
10422        &self,
10423        proj: *mut root::ReaProject,
10424        regionindex: ::std::os::raw::c_int,
10425        track: *mut root::MediaTrack,
10426        addorremove: ::std::os::raw::c_int,
10427    ) {
10428        match self.pointers.SetRegionRenderMatrix {
10429            None => panic!(format!(
10430                "Attempt to use a REAPER function that has not been loaded: {}",
10431                stringify!(SetRegionRenderMatrix)
10432            )),
10433            Some(f) => f(proj, regionindex, track, addorremove),
10434        }
10435    }
10436    pub unsafe fn SetRenderLastError(&self, errorstr: *const ::std::os::raw::c_char) {
10437        match self.pointers.SetRenderLastError {
10438            None => panic!(format!(
10439                "Attempt to use a REAPER function that has not been loaded: {}",
10440                stringify!(SetRenderLastError)
10441            )),
10442            Some(f) => f(errorstr),
10443        }
10444    }
10445    pub unsafe fn SetTakeStretchMarker(
10446        &self,
10447        take: *mut root::MediaItem_Take,
10448        idx: ::std::os::raw::c_int,
10449        pos: f64,
10450        srcposInOptional: *const f64,
10451    ) -> ::std::os::raw::c_int {
10452        match self.pointers.SetTakeStretchMarker {
10453            None => panic!(format!(
10454                "Attempt to use a REAPER function that has not been loaded: {}",
10455                stringify!(SetTakeStretchMarker)
10456            )),
10457            Some(f) => f(take, idx, pos, srcposInOptional),
10458        }
10459    }
10460    pub unsafe fn SetTakeStretchMarkerSlope(
10461        &self,
10462        take: *mut root::MediaItem_Take,
10463        idx: ::std::os::raw::c_int,
10464        slope: f64,
10465    ) -> bool {
10466        match self.pointers.SetTakeStretchMarkerSlope {
10467            None => panic!(format!(
10468                "Attempt to use a REAPER function that has not been loaded: {}",
10469                stringify!(SetTakeStretchMarkerSlope)
10470            )),
10471            Some(f) => f(take, idx, slope),
10472        }
10473    }
10474    pub unsafe fn SetTempoTimeSigMarker(
10475        &self,
10476        proj: *mut root::ReaProject,
10477        ptidx: ::std::os::raw::c_int,
10478        timepos: f64,
10479        measurepos: ::std::os::raw::c_int,
10480        beatpos: f64,
10481        bpm: f64,
10482        timesig_num: ::std::os::raw::c_int,
10483        timesig_denom: ::std::os::raw::c_int,
10484        lineartempo: bool,
10485    ) -> bool {
10486        match self.pointers.SetTempoTimeSigMarker {
10487            None => panic!(format!(
10488                "Attempt to use a REAPER function that has not been loaded: {}",
10489                stringify!(SetTempoTimeSigMarker)
10490            )),
10491            Some(f) => f(
10492                proj,
10493                ptidx,
10494                timepos,
10495                measurepos,
10496                beatpos,
10497                bpm,
10498                timesig_num,
10499                timesig_denom,
10500                lineartempo,
10501            ),
10502        }
10503    }
10504    pub fn SetToggleCommandState(
10505        &self,
10506        section_id: ::std::os::raw::c_int,
10507        command_id: ::std::os::raw::c_int,
10508        state: ::std::os::raw::c_int,
10509    ) -> bool {
10510        match self.pointers.SetToggleCommandState {
10511            None => panic!(format!(
10512                "Attempt to use a REAPER function that has not been loaded: {}",
10513                stringify!(SetToggleCommandState)
10514            )),
10515            Some(f) => f(section_id, command_id, state),
10516        }
10517    }
10518    pub unsafe fn SetTrackAutomationMode(
10519        &self,
10520        tr: *mut root::MediaTrack,
10521        mode: ::std::os::raw::c_int,
10522    ) {
10523        match self.pointers.SetTrackAutomationMode {
10524            None => panic!(format!(
10525                "Attempt to use a REAPER function that has not been loaded: {}",
10526                stringify!(SetTrackAutomationMode)
10527            )),
10528            Some(f) => f(tr, mode),
10529        }
10530    }
10531    pub unsafe fn SetTrackColor(&self, track: *mut root::MediaTrack, color: ::std::os::raw::c_int) {
10532        match self.pointers.SetTrackColor {
10533            None => panic!(format!(
10534                "Attempt to use a REAPER function that has not been loaded: {}",
10535                stringify!(SetTrackColor)
10536            )),
10537            Some(f) => f(track, color),
10538        }
10539    }
10540    pub unsafe fn SetTrackMIDILyrics(
10541        &self,
10542        track: *mut root::MediaTrack,
10543        flag: ::std::os::raw::c_int,
10544        str: *const ::std::os::raw::c_char,
10545    ) -> bool {
10546        match self.pointers.SetTrackMIDILyrics {
10547            None => panic!(format!(
10548                "Attempt to use a REAPER function that has not been loaded: {}",
10549                stringify!(SetTrackMIDILyrics)
10550            )),
10551            Some(f) => f(track, flag, str),
10552        }
10553    }
10554    pub unsafe fn SetTrackMIDINoteName(
10555        &self,
10556        track: ::std::os::raw::c_int,
10557        pitch: ::std::os::raw::c_int,
10558        chan: ::std::os::raw::c_int,
10559        name: *const ::std::os::raw::c_char,
10560    ) -> bool {
10561        match self.pointers.SetTrackMIDINoteName {
10562            None => panic!(format!(
10563                "Attempt to use a REAPER function that has not been loaded: {}",
10564                stringify!(SetTrackMIDINoteName)
10565            )),
10566            Some(f) => f(track, pitch, chan, name),
10567        }
10568    }
10569    pub unsafe fn SetTrackMIDINoteNameEx(
10570        &self,
10571        proj: *mut root::ReaProject,
10572        track: *mut root::MediaTrack,
10573        pitch: ::std::os::raw::c_int,
10574        chan: ::std::os::raw::c_int,
10575        name: *const ::std::os::raw::c_char,
10576    ) -> bool {
10577        match self.pointers.SetTrackMIDINoteNameEx {
10578            None => panic!(format!(
10579                "Attempt to use a REAPER function that has not been loaded: {}",
10580                stringify!(SetTrackMIDINoteNameEx)
10581            )),
10582            Some(f) => f(proj, track, pitch, chan, name),
10583        }
10584    }
10585    pub unsafe fn SetTrackSelected(&self, track: *mut root::MediaTrack, selected: bool) {
10586        match self.pointers.SetTrackSelected {
10587            None => panic!(format!(
10588                "Attempt to use a REAPER function that has not been loaded: {}",
10589                stringify!(SetTrackSelected)
10590            )),
10591            Some(f) => f(track, selected),
10592        }
10593    }
10594    pub unsafe fn SetTrackSendInfo_Value(
10595        &self,
10596        tr: *mut root::MediaTrack,
10597        category: ::std::os::raw::c_int,
10598        sendidx: ::std::os::raw::c_int,
10599        parmname: *const ::std::os::raw::c_char,
10600        newvalue: f64,
10601    ) -> bool {
10602        match self.pointers.SetTrackSendInfo_Value {
10603            None => panic!(format!(
10604                "Attempt to use a REAPER function that has not been loaded: {}",
10605                stringify!(SetTrackSendInfo_Value)
10606            )),
10607            Some(f) => f(tr, category, sendidx, parmname, newvalue),
10608        }
10609    }
10610    pub unsafe fn SetTrackSendUIPan(
10611        &self,
10612        track: *mut root::MediaTrack,
10613        send_idx: ::std::os::raw::c_int,
10614        pan: f64,
10615        isend: ::std::os::raw::c_int,
10616    ) -> bool {
10617        match self.pointers.SetTrackSendUIPan {
10618            None => panic!(format!(
10619                "Attempt to use a REAPER function that has not been loaded: {}",
10620                stringify!(SetTrackSendUIPan)
10621            )),
10622            Some(f) => f(track, send_idx, pan, isend),
10623        }
10624    }
10625    pub unsafe fn SetTrackSendUIVol(
10626        &self,
10627        track: *mut root::MediaTrack,
10628        send_idx: ::std::os::raw::c_int,
10629        vol: f64,
10630        isend: ::std::os::raw::c_int,
10631    ) -> bool {
10632        match self.pointers.SetTrackSendUIVol {
10633            None => panic!(format!(
10634                "Attempt to use a REAPER function that has not been loaded: {}",
10635                stringify!(SetTrackSendUIVol)
10636            )),
10637            Some(f) => f(track, send_idx, vol, isend),
10638        }
10639    }
10640    pub unsafe fn SetTrackStateChunk(
10641        &self,
10642        track: *mut root::MediaTrack,
10643        str: *const ::std::os::raw::c_char,
10644        isundoOptional: bool,
10645    ) -> bool {
10646        match self.pointers.SetTrackStateChunk {
10647            None => panic!(format!(
10648                "Attempt to use a REAPER function that has not been loaded: {}",
10649                stringify!(SetTrackStateChunk)
10650            )),
10651            Some(f) => f(track, str, isundoOptional),
10652        }
10653    }
10654    pub unsafe fn ShowActionList(&self, caller: *mut root::KbdSectionInfo, callerWnd: root::HWND) {
10655        match self.pointers.ShowActionList {
10656            None => panic!(format!(
10657                "Attempt to use a REAPER function that has not been loaded: {}",
10658                stringify!(ShowActionList)
10659            )),
10660            Some(f) => f(caller, callerWnd),
10661        }
10662    }
10663    pub unsafe fn ShowConsoleMsg(&self, msg: *const ::std::os::raw::c_char) {
10664        match self.pointers.ShowConsoleMsg {
10665            None => panic!(format!(
10666                "Attempt to use a REAPER function that has not been loaded: {}",
10667                stringify!(ShowConsoleMsg)
10668            )),
10669            Some(f) => f(msg),
10670        }
10671    }
10672    pub unsafe fn ShowMessageBox(
10673        &self,
10674        msg: *const ::std::os::raw::c_char,
10675        title: *const ::std::os::raw::c_char,
10676        type_: ::std::os::raw::c_int,
10677    ) -> ::std::os::raw::c_int {
10678        match self.pointers.ShowMessageBox {
10679            None => panic!(format!(
10680                "Attempt to use a REAPER function that has not been loaded: {}",
10681                stringify!(ShowMessageBox)
10682            )),
10683            Some(f) => f(msg, title, type_),
10684        }
10685    }
10686    pub unsafe fn ShowPopupMenu(
10687        &self,
10688        name: *const ::std::os::raw::c_char,
10689        x: ::std::os::raw::c_int,
10690        y: ::std::os::raw::c_int,
10691        hwndParentOptional: root::HWND,
10692        ctxOptional: *mut ::std::os::raw::c_void,
10693        ctx2Optional: ::std::os::raw::c_int,
10694        ctx3Optional: ::std::os::raw::c_int,
10695    ) {
10696        match self.pointers.ShowPopupMenu {
10697            None => panic!(format!(
10698                "Attempt to use a REAPER function that has not been loaded: {}",
10699                stringify!(ShowPopupMenu)
10700            )),
10701            Some(f) => f(
10702                name,
10703                x,
10704                y,
10705                hwndParentOptional,
10706                ctxOptional,
10707                ctx2Optional,
10708                ctx3Optional,
10709            ),
10710        }
10711    }
10712    pub fn SLIDER2DB(&self, y: f64) -> f64 {
10713        match self.pointers.SLIDER2DB {
10714            None => panic!(format!(
10715                "Attempt to use a REAPER function that has not been loaded: {}",
10716                stringify!(SLIDER2DB)
10717            )),
10718            Some(f) => f(y),
10719        }
10720    }
10721    pub unsafe fn SnapToGrid(&self, project: *mut root::ReaProject, time_pos: f64) -> f64 {
10722        match self.pointers.SnapToGrid {
10723            None => panic!(format!(
10724                "Attempt to use a REAPER function that has not been loaded: {}",
10725                stringify!(SnapToGrid)
10726            )),
10727            Some(f) => f(project, time_pos),
10728        }
10729    }
10730    pub fn SoloAllTracks(&self, solo: ::std::os::raw::c_int) {
10731        match self.pointers.SoloAllTracks {
10732            None => panic!(format!(
10733                "Attempt to use a REAPER function that has not been loaded: {}",
10734                stringify!(SoloAllTracks)
10735            )),
10736            Some(f) => f(solo),
10737        }
10738    }
10739    pub fn Splash_GetWnd(&self) -> root::HWND {
10740        match self.pointers.Splash_GetWnd {
10741            None => panic!(format!(
10742                "Attempt to use a REAPER function that has not been loaded: {}",
10743                stringify!(Splash_GetWnd)
10744            )),
10745            Some(f) => f(),
10746        }
10747    }
10748    pub unsafe fn SplitMediaItem(
10749        &self,
10750        item: *mut root::MediaItem,
10751        position: f64,
10752    ) -> *mut root::MediaItem {
10753        match self.pointers.SplitMediaItem {
10754            None => panic!(format!(
10755                "Attempt to use a REAPER function that has not been loaded: {}",
10756                stringify!(SplitMediaItem)
10757            )),
10758            Some(f) => f(item, position),
10759        }
10760    }
10761    pub unsafe fn StopPreview(
10762        &self,
10763        preview: *mut root::preview_register_t,
10764    ) -> ::std::os::raw::c_int {
10765        match self.pointers.StopPreview {
10766            None => panic!(format!(
10767                "Attempt to use a REAPER function that has not been loaded: {}",
10768                stringify!(StopPreview)
10769            )),
10770            Some(f) => f(preview),
10771        }
10772    }
10773    pub unsafe fn StopTrackPreview(
10774        &self,
10775        preview: *mut root::preview_register_t,
10776    ) -> ::std::os::raw::c_int {
10777        match self.pointers.StopTrackPreview {
10778            None => panic!(format!(
10779                "Attempt to use a REAPER function that has not been loaded: {}",
10780                stringify!(StopTrackPreview)
10781            )),
10782            Some(f) => f(preview),
10783        }
10784    }
10785    pub unsafe fn StopTrackPreview2(
10786        &self,
10787        proj: *mut ::std::os::raw::c_void,
10788        preview: *mut root::preview_register_t,
10789    ) -> ::std::os::raw::c_int {
10790        match self.pointers.StopTrackPreview2 {
10791            None => panic!(format!(
10792                "Attempt to use a REAPER function that has not been loaded: {}",
10793                stringify!(StopTrackPreview2)
10794            )),
10795            Some(f) => f(proj, preview),
10796        }
10797    }
10798    pub unsafe fn stringToGuid(&self, str: *const ::std::os::raw::c_char, g: *mut root::GUID) {
10799        match self.pointers.stringToGuid {
10800            None => panic!(format!(
10801                "Attempt to use a REAPER function that has not been loaded: {}",
10802                stringify!(stringToGuid)
10803            )),
10804            Some(f) => f(str, g),
10805        }
10806    }
10807    pub fn StuffMIDIMessage(
10808        &self,
10809        mode: ::std::os::raw::c_int,
10810        msg1: ::std::os::raw::c_int,
10811        msg2: ::std::os::raw::c_int,
10812        msg3: ::std::os::raw::c_int,
10813    ) {
10814        match self.pointers.StuffMIDIMessage {
10815            None => panic!(format!(
10816                "Attempt to use a REAPER function that has not been loaded: {}",
10817                stringify!(StuffMIDIMessage)
10818            )),
10819            Some(f) => f(mode, msg1, msg2, msg3),
10820        }
10821    }
10822    pub unsafe fn TakeFX_AddByName(
10823        &self,
10824        take: *mut root::MediaItem_Take,
10825        fxname: *const ::std::os::raw::c_char,
10826        instantiate: ::std::os::raw::c_int,
10827    ) -> ::std::os::raw::c_int {
10828        match self.pointers.TakeFX_AddByName {
10829            None => panic!(format!(
10830                "Attempt to use a REAPER function that has not been loaded: {}",
10831                stringify!(TakeFX_AddByName)
10832            )),
10833            Some(f) => f(take, fxname, instantiate),
10834        }
10835    }
10836    pub unsafe fn TakeFX_CopyToTake(
10837        &self,
10838        src_take: *mut root::MediaItem_Take,
10839        src_fx: ::std::os::raw::c_int,
10840        dest_take: *mut root::MediaItem_Take,
10841        dest_fx: ::std::os::raw::c_int,
10842        is_move: bool,
10843    ) {
10844        match self.pointers.TakeFX_CopyToTake {
10845            None => panic!(format!(
10846                "Attempt to use a REAPER function that has not been loaded: {}",
10847                stringify!(TakeFX_CopyToTake)
10848            )),
10849            Some(f) => f(src_take, src_fx, dest_take, dest_fx, is_move),
10850        }
10851    }
10852    pub unsafe fn TakeFX_CopyToTrack(
10853        &self,
10854        src_take: *mut root::MediaItem_Take,
10855        src_fx: ::std::os::raw::c_int,
10856        dest_track: *mut root::MediaTrack,
10857        dest_fx: ::std::os::raw::c_int,
10858        is_move: bool,
10859    ) {
10860        match self.pointers.TakeFX_CopyToTrack {
10861            None => panic!(format!(
10862                "Attempt to use a REAPER function that has not been loaded: {}",
10863                stringify!(TakeFX_CopyToTrack)
10864            )),
10865            Some(f) => f(src_take, src_fx, dest_track, dest_fx, is_move),
10866        }
10867    }
10868    pub unsafe fn TakeFX_Delete(
10869        &self,
10870        take: *mut root::MediaItem_Take,
10871        fx: ::std::os::raw::c_int,
10872    ) -> bool {
10873        match self.pointers.TakeFX_Delete {
10874            None => panic!(format!(
10875                "Attempt to use a REAPER function that has not been loaded: {}",
10876                stringify!(TakeFX_Delete)
10877            )),
10878            Some(f) => f(take, fx),
10879        }
10880    }
10881    pub unsafe fn TakeFX_EndParamEdit(
10882        &self,
10883        take: *mut root::MediaItem_Take,
10884        fx: ::std::os::raw::c_int,
10885        param: ::std::os::raw::c_int,
10886    ) -> bool {
10887        match self.pointers.TakeFX_EndParamEdit {
10888            None => panic!(format!(
10889                "Attempt to use a REAPER function that has not been loaded: {}",
10890                stringify!(TakeFX_EndParamEdit)
10891            )),
10892            Some(f) => f(take, fx, param),
10893        }
10894    }
10895    pub unsafe fn TakeFX_FormatParamValue(
10896        &self,
10897        take: *mut root::MediaItem_Take,
10898        fx: ::std::os::raw::c_int,
10899        param: ::std::os::raw::c_int,
10900        val: f64,
10901        buf: *mut ::std::os::raw::c_char,
10902        buf_sz: ::std::os::raw::c_int,
10903    ) -> bool {
10904        match self.pointers.TakeFX_FormatParamValue {
10905            None => panic!(format!(
10906                "Attempt to use a REAPER function that has not been loaded: {}",
10907                stringify!(TakeFX_FormatParamValue)
10908            )),
10909            Some(f) => f(take, fx, param, val, buf, buf_sz),
10910        }
10911    }
10912    pub unsafe fn TakeFX_FormatParamValueNormalized(
10913        &self,
10914        take: *mut root::MediaItem_Take,
10915        fx: ::std::os::raw::c_int,
10916        param: ::std::os::raw::c_int,
10917        value: f64,
10918        buf: *mut ::std::os::raw::c_char,
10919        buf_sz: ::std::os::raw::c_int,
10920    ) -> bool {
10921        match self.pointers.TakeFX_FormatParamValueNormalized {
10922            None => panic!(format!(
10923                "Attempt to use a REAPER function that has not been loaded: {}",
10924                stringify!(TakeFX_FormatParamValueNormalized)
10925            )),
10926            Some(f) => f(take, fx, param, value, buf, buf_sz),
10927        }
10928    }
10929    pub unsafe fn TakeFX_GetChainVisible(
10930        &self,
10931        take: *mut root::MediaItem_Take,
10932    ) -> ::std::os::raw::c_int {
10933        match self.pointers.TakeFX_GetChainVisible {
10934            None => panic!(format!(
10935                "Attempt to use a REAPER function that has not been loaded: {}",
10936                stringify!(TakeFX_GetChainVisible)
10937            )),
10938            Some(f) => f(take),
10939        }
10940    }
10941    pub unsafe fn TakeFX_GetCount(&self, take: *mut root::MediaItem_Take) -> ::std::os::raw::c_int {
10942        match self.pointers.TakeFX_GetCount {
10943            None => panic!(format!(
10944                "Attempt to use a REAPER function that has not been loaded: {}",
10945                stringify!(TakeFX_GetCount)
10946            )),
10947            Some(f) => f(take),
10948        }
10949    }
10950    pub unsafe fn TakeFX_GetEnabled(
10951        &self,
10952        take: *mut root::MediaItem_Take,
10953        fx: ::std::os::raw::c_int,
10954    ) -> bool {
10955        match self.pointers.TakeFX_GetEnabled {
10956            None => panic!(format!(
10957                "Attempt to use a REAPER function that has not been loaded: {}",
10958                stringify!(TakeFX_GetEnabled)
10959            )),
10960            Some(f) => f(take, fx),
10961        }
10962    }
10963    pub unsafe fn TakeFX_GetEnvelope(
10964        &self,
10965        take: *mut root::MediaItem_Take,
10966        fxindex: ::std::os::raw::c_int,
10967        parameterindex: ::std::os::raw::c_int,
10968        create: bool,
10969    ) -> *mut root::TrackEnvelope {
10970        match self.pointers.TakeFX_GetEnvelope {
10971            None => panic!(format!(
10972                "Attempt to use a REAPER function that has not been loaded: {}",
10973                stringify!(TakeFX_GetEnvelope)
10974            )),
10975            Some(f) => f(take, fxindex, parameterindex, create),
10976        }
10977    }
10978    pub unsafe fn TakeFX_GetFloatingWindow(
10979        &self,
10980        take: *mut root::MediaItem_Take,
10981        index: ::std::os::raw::c_int,
10982    ) -> root::HWND {
10983        match self.pointers.TakeFX_GetFloatingWindow {
10984            None => panic!(format!(
10985                "Attempt to use a REAPER function that has not been loaded: {}",
10986                stringify!(TakeFX_GetFloatingWindow)
10987            )),
10988            Some(f) => f(take, index),
10989        }
10990    }
10991    pub unsafe fn TakeFX_GetFormattedParamValue(
10992        &self,
10993        take: *mut root::MediaItem_Take,
10994        fx: ::std::os::raw::c_int,
10995        param: ::std::os::raw::c_int,
10996        buf: *mut ::std::os::raw::c_char,
10997        buf_sz: ::std::os::raw::c_int,
10998    ) -> bool {
10999        match self.pointers.TakeFX_GetFormattedParamValue {
11000            None => panic!(format!(
11001                "Attempt to use a REAPER function that has not been loaded: {}",
11002                stringify!(TakeFX_GetFormattedParamValue)
11003            )),
11004            Some(f) => f(take, fx, param, buf, buf_sz),
11005        }
11006    }
11007    pub unsafe fn TakeFX_GetFXGUID(
11008        &self,
11009        take: *mut root::MediaItem_Take,
11010        fx: ::std::os::raw::c_int,
11011    ) -> *mut root::GUID {
11012        match self.pointers.TakeFX_GetFXGUID {
11013            None => panic!(format!(
11014                "Attempt to use a REAPER function that has not been loaded: {}",
11015                stringify!(TakeFX_GetFXGUID)
11016            )),
11017            Some(f) => f(take, fx),
11018        }
11019    }
11020    pub unsafe fn TakeFX_GetFXName(
11021        &self,
11022        take: *mut root::MediaItem_Take,
11023        fx: ::std::os::raw::c_int,
11024        buf: *mut ::std::os::raw::c_char,
11025        buf_sz: ::std::os::raw::c_int,
11026    ) -> bool {
11027        match self.pointers.TakeFX_GetFXName {
11028            None => panic!(format!(
11029                "Attempt to use a REAPER function that has not been loaded: {}",
11030                stringify!(TakeFX_GetFXName)
11031            )),
11032            Some(f) => f(take, fx, buf, buf_sz),
11033        }
11034    }
11035    pub unsafe fn TakeFX_GetIOSize(
11036        &self,
11037        take: *mut root::MediaItem_Take,
11038        fx: ::std::os::raw::c_int,
11039        inputPinsOutOptional: *mut ::std::os::raw::c_int,
11040        outputPinsOutOptional: *mut ::std::os::raw::c_int,
11041    ) -> ::std::os::raw::c_int {
11042        match self.pointers.TakeFX_GetIOSize {
11043            None => panic!(format!(
11044                "Attempt to use a REAPER function that has not been loaded: {}",
11045                stringify!(TakeFX_GetIOSize)
11046            )),
11047            Some(f) => f(take, fx, inputPinsOutOptional, outputPinsOutOptional),
11048        }
11049    }
11050    pub unsafe fn TakeFX_GetNamedConfigParm(
11051        &self,
11052        take: *mut root::MediaItem_Take,
11053        fx: ::std::os::raw::c_int,
11054        parmname: *const ::std::os::raw::c_char,
11055        bufOut: *mut ::std::os::raw::c_char,
11056        bufOut_sz: ::std::os::raw::c_int,
11057    ) -> bool {
11058        match self.pointers.TakeFX_GetNamedConfigParm {
11059            None => panic!(format!(
11060                "Attempt to use a REAPER function that has not been loaded: {}",
11061                stringify!(TakeFX_GetNamedConfigParm)
11062            )),
11063            Some(f) => f(take, fx, parmname, bufOut, bufOut_sz),
11064        }
11065    }
11066    pub unsafe fn TakeFX_GetNumParams(
11067        &self,
11068        take: *mut root::MediaItem_Take,
11069        fx: ::std::os::raw::c_int,
11070    ) -> ::std::os::raw::c_int {
11071        match self.pointers.TakeFX_GetNumParams {
11072            None => panic!(format!(
11073                "Attempt to use a REAPER function that has not been loaded: {}",
11074                stringify!(TakeFX_GetNumParams)
11075            )),
11076            Some(f) => f(take, fx),
11077        }
11078    }
11079    pub unsafe fn TakeFX_GetOffline(
11080        &self,
11081        take: *mut root::MediaItem_Take,
11082        fx: ::std::os::raw::c_int,
11083    ) -> bool {
11084        match self.pointers.TakeFX_GetOffline {
11085            None => panic!(format!(
11086                "Attempt to use a REAPER function that has not been loaded: {}",
11087                stringify!(TakeFX_GetOffline)
11088            )),
11089            Some(f) => f(take, fx),
11090        }
11091    }
11092    pub unsafe fn TakeFX_GetOpen(
11093        &self,
11094        take: *mut root::MediaItem_Take,
11095        fx: ::std::os::raw::c_int,
11096    ) -> bool {
11097        match self.pointers.TakeFX_GetOpen {
11098            None => panic!(format!(
11099                "Attempt to use a REAPER function that has not been loaded: {}",
11100                stringify!(TakeFX_GetOpen)
11101            )),
11102            Some(f) => f(take, fx),
11103        }
11104    }
11105    pub unsafe fn TakeFX_GetParam(
11106        &self,
11107        take: *mut root::MediaItem_Take,
11108        fx: ::std::os::raw::c_int,
11109        param: ::std::os::raw::c_int,
11110        minvalOut: *mut f64,
11111        maxvalOut: *mut f64,
11112    ) -> f64 {
11113        match self.pointers.TakeFX_GetParam {
11114            None => panic!(format!(
11115                "Attempt to use a REAPER function that has not been loaded: {}",
11116                stringify!(TakeFX_GetParam)
11117            )),
11118            Some(f) => f(take, fx, param, minvalOut, maxvalOut),
11119        }
11120    }
11121    pub unsafe fn TakeFX_GetParameterStepSizes(
11122        &self,
11123        take: *mut root::MediaItem_Take,
11124        fx: ::std::os::raw::c_int,
11125        param: ::std::os::raw::c_int,
11126        stepOut: *mut f64,
11127        smallstepOut: *mut f64,
11128        largestepOut: *mut f64,
11129        istoggleOut: *mut bool,
11130    ) -> bool {
11131        match self.pointers.TakeFX_GetParameterStepSizes {
11132            None => panic!(format!(
11133                "Attempt to use a REAPER function that has not been loaded: {}",
11134                stringify!(TakeFX_GetParameterStepSizes)
11135            )),
11136            Some(f) => f(
11137                take,
11138                fx,
11139                param,
11140                stepOut,
11141                smallstepOut,
11142                largestepOut,
11143                istoggleOut,
11144            ),
11145        }
11146    }
11147    pub unsafe fn TakeFX_GetParamEx(
11148        &self,
11149        take: *mut root::MediaItem_Take,
11150        fx: ::std::os::raw::c_int,
11151        param: ::std::os::raw::c_int,
11152        minvalOut: *mut f64,
11153        maxvalOut: *mut f64,
11154        midvalOut: *mut f64,
11155    ) -> f64 {
11156        match self.pointers.TakeFX_GetParamEx {
11157            None => panic!(format!(
11158                "Attempt to use a REAPER function that has not been loaded: {}",
11159                stringify!(TakeFX_GetParamEx)
11160            )),
11161            Some(f) => f(take, fx, param, minvalOut, maxvalOut, midvalOut),
11162        }
11163    }
11164    pub unsafe fn TakeFX_GetParamName(
11165        &self,
11166        take: *mut root::MediaItem_Take,
11167        fx: ::std::os::raw::c_int,
11168        param: ::std::os::raw::c_int,
11169        buf: *mut ::std::os::raw::c_char,
11170        buf_sz: ::std::os::raw::c_int,
11171    ) -> bool {
11172        match self.pointers.TakeFX_GetParamName {
11173            None => panic!(format!(
11174                "Attempt to use a REAPER function that has not been loaded: {}",
11175                stringify!(TakeFX_GetParamName)
11176            )),
11177            Some(f) => f(take, fx, param, buf, buf_sz),
11178        }
11179    }
11180    pub unsafe fn TakeFX_GetParamNormalized(
11181        &self,
11182        take: *mut root::MediaItem_Take,
11183        fx: ::std::os::raw::c_int,
11184        param: ::std::os::raw::c_int,
11185    ) -> f64 {
11186        match self.pointers.TakeFX_GetParamNormalized {
11187            None => panic!(format!(
11188                "Attempt to use a REAPER function that has not been loaded: {}",
11189                stringify!(TakeFX_GetParamNormalized)
11190            )),
11191            Some(f) => f(take, fx, param),
11192        }
11193    }
11194    pub unsafe fn TakeFX_GetPinMappings(
11195        &self,
11196        tr: *mut root::MediaItem_Take,
11197        fx: ::std::os::raw::c_int,
11198        isoutput: ::std::os::raw::c_int,
11199        pin: ::std::os::raw::c_int,
11200        high32OutOptional: *mut ::std::os::raw::c_int,
11201    ) -> ::std::os::raw::c_int {
11202        match self.pointers.TakeFX_GetPinMappings {
11203            None => panic!(format!(
11204                "Attempt to use a REAPER function that has not been loaded: {}",
11205                stringify!(TakeFX_GetPinMappings)
11206            )),
11207            Some(f) => f(tr, fx, isoutput, pin, high32OutOptional),
11208        }
11209    }
11210    pub unsafe fn TakeFX_GetPreset(
11211        &self,
11212        take: *mut root::MediaItem_Take,
11213        fx: ::std::os::raw::c_int,
11214        presetname: *mut ::std::os::raw::c_char,
11215        presetname_sz: ::std::os::raw::c_int,
11216    ) -> bool {
11217        match self.pointers.TakeFX_GetPreset {
11218            None => panic!(format!(
11219                "Attempt to use a REAPER function that has not been loaded: {}",
11220                stringify!(TakeFX_GetPreset)
11221            )),
11222            Some(f) => f(take, fx, presetname, presetname_sz),
11223        }
11224    }
11225    pub unsafe fn TakeFX_GetPresetIndex(
11226        &self,
11227        take: *mut root::MediaItem_Take,
11228        fx: ::std::os::raw::c_int,
11229        numberOfPresetsOut: *mut ::std::os::raw::c_int,
11230    ) -> ::std::os::raw::c_int {
11231        match self.pointers.TakeFX_GetPresetIndex {
11232            None => panic!(format!(
11233                "Attempt to use a REAPER function that has not been loaded: {}",
11234                stringify!(TakeFX_GetPresetIndex)
11235            )),
11236            Some(f) => f(take, fx, numberOfPresetsOut),
11237        }
11238    }
11239    pub unsafe fn TakeFX_GetUserPresetFilename(
11240        &self,
11241        take: *mut root::MediaItem_Take,
11242        fx: ::std::os::raw::c_int,
11243        fn_: *mut ::std::os::raw::c_char,
11244        fn_sz: ::std::os::raw::c_int,
11245    ) {
11246        match self.pointers.TakeFX_GetUserPresetFilename {
11247            None => panic!(format!(
11248                "Attempt to use a REAPER function that has not been loaded: {}",
11249                stringify!(TakeFX_GetUserPresetFilename)
11250            )),
11251            Some(f) => f(take, fx, fn_, fn_sz),
11252        }
11253    }
11254    pub unsafe fn TakeFX_NavigatePresets(
11255        &self,
11256        take: *mut root::MediaItem_Take,
11257        fx: ::std::os::raw::c_int,
11258        presetmove: ::std::os::raw::c_int,
11259    ) -> bool {
11260        match self.pointers.TakeFX_NavigatePresets {
11261            None => panic!(format!(
11262                "Attempt to use a REAPER function that has not been loaded: {}",
11263                stringify!(TakeFX_NavigatePresets)
11264            )),
11265            Some(f) => f(take, fx, presetmove),
11266        }
11267    }
11268    pub unsafe fn TakeFX_SetEnabled(
11269        &self,
11270        take: *mut root::MediaItem_Take,
11271        fx: ::std::os::raw::c_int,
11272        enabled: bool,
11273    ) {
11274        match self.pointers.TakeFX_SetEnabled {
11275            None => panic!(format!(
11276                "Attempt to use a REAPER function that has not been loaded: {}",
11277                stringify!(TakeFX_SetEnabled)
11278            )),
11279            Some(f) => f(take, fx, enabled),
11280        }
11281    }
11282    pub unsafe fn TakeFX_SetNamedConfigParm(
11283        &self,
11284        take: *mut root::MediaItem_Take,
11285        fx: ::std::os::raw::c_int,
11286        parmname: *const ::std::os::raw::c_char,
11287        value: *const ::std::os::raw::c_char,
11288    ) -> bool {
11289        match self.pointers.TakeFX_SetNamedConfigParm {
11290            None => panic!(format!(
11291                "Attempt to use a REAPER function that has not been loaded: {}",
11292                stringify!(TakeFX_SetNamedConfigParm)
11293            )),
11294            Some(f) => f(take, fx, parmname, value),
11295        }
11296    }
11297    pub unsafe fn TakeFX_SetOffline(
11298        &self,
11299        take: *mut root::MediaItem_Take,
11300        fx: ::std::os::raw::c_int,
11301        offline: bool,
11302    ) {
11303        match self.pointers.TakeFX_SetOffline {
11304            None => panic!(format!(
11305                "Attempt to use a REAPER function that has not been loaded: {}",
11306                stringify!(TakeFX_SetOffline)
11307            )),
11308            Some(f) => f(take, fx, offline),
11309        }
11310    }
11311    pub unsafe fn TakeFX_SetOpen(
11312        &self,
11313        take: *mut root::MediaItem_Take,
11314        fx: ::std::os::raw::c_int,
11315        open: bool,
11316    ) {
11317        match self.pointers.TakeFX_SetOpen {
11318            None => panic!(format!(
11319                "Attempt to use a REAPER function that has not been loaded: {}",
11320                stringify!(TakeFX_SetOpen)
11321            )),
11322            Some(f) => f(take, fx, open),
11323        }
11324    }
11325    pub unsafe fn TakeFX_SetParam(
11326        &self,
11327        take: *mut root::MediaItem_Take,
11328        fx: ::std::os::raw::c_int,
11329        param: ::std::os::raw::c_int,
11330        val: f64,
11331    ) -> bool {
11332        match self.pointers.TakeFX_SetParam {
11333            None => panic!(format!(
11334                "Attempt to use a REAPER function that has not been loaded: {}",
11335                stringify!(TakeFX_SetParam)
11336            )),
11337            Some(f) => f(take, fx, param, val),
11338        }
11339    }
11340    pub unsafe fn TakeFX_SetParamNormalized(
11341        &self,
11342        take: *mut root::MediaItem_Take,
11343        fx: ::std::os::raw::c_int,
11344        param: ::std::os::raw::c_int,
11345        value: f64,
11346    ) -> bool {
11347        match self.pointers.TakeFX_SetParamNormalized {
11348            None => panic!(format!(
11349                "Attempt to use a REAPER function that has not been loaded: {}",
11350                stringify!(TakeFX_SetParamNormalized)
11351            )),
11352            Some(f) => f(take, fx, param, value),
11353        }
11354    }
11355    pub unsafe fn TakeFX_SetPinMappings(
11356        &self,
11357        tr: *mut root::MediaItem_Take,
11358        fx: ::std::os::raw::c_int,
11359        isoutput: ::std::os::raw::c_int,
11360        pin: ::std::os::raw::c_int,
11361        low32bits: ::std::os::raw::c_int,
11362        hi32bits: ::std::os::raw::c_int,
11363    ) -> bool {
11364        match self.pointers.TakeFX_SetPinMappings {
11365            None => panic!(format!(
11366                "Attempt to use a REAPER function that has not been loaded: {}",
11367                stringify!(TakeFX_SetPinMappings)
11368            )),
11369            Some(f) => f(tr, fx, isoutput, pin, low32bits, hi32bits),
11370        }
11371    }
11372    pub unsafe fn TakeFX_SetPreset(
11373        &self,
11374        take: *mut root::MediaItem_Take,
11375        fx: ::std::os::raw::c_int,
11376        presetname: *const ::std::os::raw::c_char,
11377    ) -> bool {
11378        match self.pointers.TakeFX_SetPreset {
11379            None => panic!(format!(
11380                "Attempt to use a REAPER function that has not been loaded: {}",
11381                stringify!(TakeFX_SetPreset)
11382            )),
11383            Some(f) => f(take, fx, presetname),
11384        }
11385    }
11386    pub unsafe fn TakeFX_SetPresetByIndex(
11387        &self,
11388        take: *mut root::MediaItem_Take,
11389        fx: ::std::os::raw::c_int,
11390        idx: ::std::os::raw::c_int,
11391    ) -> bool {
11392        match self.pointers.TakeFX_SetPresetByIndex {
11393            None => panic!(format!(
11394                "Attempt to use a REAPER function that has not been loaded: {}",
11395                stringify!(TakeFX_SetPresetByIndex)
11396            )),
11397            Some(f) => f(take, fx, idx),
11398        }
11399    }
11400    pub unsafe fn TakeFX_Show(
11401        &self,
11402        take: *mut root::MediaItem_Take,
11403        index: ::std::os::raw::c_int,
11404        showFlag: ::std::os::raw::c_int,
11405    ) {
11406        match self.pointers.TakeFX_Show {
11407            None => panic!(format!(
11408                "Attempt to use a REAPER function that has not been loaded: {}",
11409                stringify!(TakeFX_Show)
11410            )),
11411            Some(f) => f(take, index, showFlag),
11412        }
11413    }
11414    pub unsafe fn TakeIsMIDI(&self, take: *mut root::MediaItem_Take) -> bool {
11415        match self.pointers.TakeIsMIDI {
11416            None => panic!(format!(
11417                "Attempt to use a REAPER function that has not been loaded: {}",
11418                stringify!(TakeIsMIDI)
11419            )),
11420            Some(f) => f(take),
11421        }
11422    }
11423    pub unsafe fn ThemeLayout_GetLayout(
11424        &self,
11425        section: *const ::std::os::raw::c_char,
11426        idx: ::std::os::raw::c_int,
11427        nameOut: *mut ::std::os::raw::c_char,
11428        nameOut_sz: ::std::os::raw::c_int,
11429    ) -> bool {
11430        match self.pointers.ThemeLayout_GetLayout {
11431            None => panic!(format!(
11432                "Attempt to use a REAPER function that has not been loaded: {}",
11433                stringify!(ThemeLayout_GetLayout)
11434            )),
11435            Some(f) => f(section, idx, nameOut, nameOut_sz),
11436        }
11437    }
11438    pub unsafe fn ThemeLayout_GetParameter(
11439        &self,
11440        wp: ::std::os::raw::c_int,
11441        descOutOptional: *mut *const ::std::os::raw::c_char,
11442        valueOutOptional: *mut ::std::os::raw::c_int,
11443        defValueOutOptional: *mut ::std::os::raw::c_int,
11444        minValueOutOptional: *mut ::std::os::raw::c_int,
11445        maxValueOutOptional: *mut ::std::os::raw::c_int,
11446    ) -> *const ::std::os::raw::c_char {
11447        match self.pointers.ThemeLayout_GetParameter {
11448            None => panic!(format!(
11449                "Attempt to use a REAPER function that has not been loaded: {}",
11450                stringify!(ThemeLayout_GetParameter)
11451            )),
11452            Some(f) => f(
11453                wp,
11454                descOutOptional,
11455                valueOutOptional,
11456                defValueOutOptional,
11457                minValueOutOptional,
11458                maxValueOutOptional,
11459            ),
11460        }
11461    }
11462    pub fn ThemeLayout_RefreshAll(&self) {
11463        match self.pointers.ThemeLayout_RefreshAll {
11464            None => panic!(format!(
11465                "Attempt to use a REAPER function that has not been loaded: {}",
11466                stringify!(ThemeLayout_RefreshAll)
11467            )),
11468            Some(f) => f(),
11469        }
11470    }
11471    pub unsafe fn ThemeLayout_SetLayout(
11472        &self,
11473        section: *const ::std::os::raw::c_char,
11474        layout: *const ::std::os::raw::c_char,
11475    ) -> bool {
11476        match self.pointers.ThemeLayout_SetLayout {
11477            None => panic!(format!(
11478                "Attempt to use a REAPER function that has not been loaded: {}",
11479                stringify!(ThemeLayout_SetLayout)
11480            )),
11481            Some(f) => f(section, layout),
11482        }
11483    }
11484    pub fn ThemeLayout_SetParameter(
11485        &self,
11486        wp: ::std::os::raw::c_int,
11487        value: ::std::os::raw::c_int,
11488        persist: bool,
11489    ) -> bool {
11490        match self.pointers.ThemeLayout_SetParameter {
11491            None => panic!(format!(
11492                "Attempt to use a REAPER function that has not been loaded: {}",
11493                stringify!(ThemeLayout_SetParameter)
11494            )),
11495            Some(f) => f(wp, value, persist),
11496        }
11497    }
11498    pub fn time_precise(&self) -> f64 {
11499        match self.pointers.time_precise {
11500            None => panic!(format!(
11501                "Attempt to use a REAPER function that has not been loaded: {}",
11502                stringify!(time_precise)
11503            )),
11504            Some(f) => f(),
11505        }
11506    }
11507    pub unsafe fn TimeMap2_beatsToTime(
11508        &self,
11509        proj: *mut root::ReaProject,
11510        tpos: f64,
11511        measuresInOptional: *const ::std::os::raw::c_int,
11512    ) -> f64 {
11513        match self.pointers.TimeMap2_beatsToTime {
11514            None => panic!(format!(
11515                "Attempt to use a REAPER function that has not been loaded: {}",
11516                stringify!(TimeMap2_beatsToTime)
11517            )),
11518            Some(f) => f(proj, tpos, measuresInOptional),
11519        }
11520    }
11521    pub unsafe fn TimeMap2_GetDividedBpmAtTime(
11522        &self,
11523        proj: *mut root::ReaProject,
11524        time: f64,
11525    ) -> f64 {
11526        match self.pointers.TimeMap2_GetDividedBpmAtTime {
11527            None => panic!(format!(
11528                "Attempt to use a REAPER function that has not been loaded: {}",
11529                stringify!(TimeMap2_GetDividedBpmAtTime)
11530            )),
11531            Some(f) => f(proj, time),
11532        }
11533    }
11534    pub unsafe fn TimeMap2_GetNextChangeTime(&self, proj: *mut root::ReaProject, time: f64) -> f64 {
11535        match self.pointers.TimeMap2_GetNextChangeTime {
11536            None => panic!(format!(
11537                "Attempt to use a REAPER function that has not been loaded: {}",
11538                stringify!(TimeMap2_GetNextChangeTime)
11539            )),
11540            Some(f) => f(proj, time),
11541        }
11542    }
11543    pub unsafe fn TimeMap2_QNToTime(&self, proj: *mut root::ReaProject, qn: f64) -> f64 {
11544        match self.pointers.TimeMap2_QNToTime {
11545            None => panic!(format!(
11546                "Attempt to use a REAPER function that has not been loaded: {}",
11547                stringify!(TimeMap2_QNToTime)
11548            )),
11549            Some(f) => f(proj, qn),
11550        }
11551    }
11552    pub unsafe fn TimeMap2_timeToBeats(
11553        &self,
11554        proj: *mut root::ReaProject,
11555        tpos: f64,
11556        measuresOutOptional: *mut ::std::os::raw::c_int,
11557        cmlOutOptional: *mut ::std::os::raw::c_int,
11558        fullbeatsOutOptional: *mut f64,
11559        cdenomOutOptional: *mut ::std::os::raw::c_int,
11560    ) -> f64 {
11561        match self.pointers.TimeMap2_timeToBeats {
11562            None => panic!(format!(
11563                "Attempt to use a REAPER function that has not been loaded: {}",
11564                stringify!(TimeMap2_timeToBeats)
11565            )),
11566            Some(f) => f(
11567                proj,
11568                tpos,
11569                measuresOutOptional,
11570                cmlOutOptional,
11571                fullbeatsOutOptional,
11572                cdenomOutOptional,
11573            ),
11574        }
11575    }
11576    pub unsafe fn TimeMap2_timeToQN(&self, proj: *mut root::ReaProject, tpos: f64) -> f64 {
11577        match self.pointers.TimeMap2_timeToQN {
11578            None => panic!(format!(
11579                "Attempt to use a REAPER function that has not been loaded: {}",
11580                stringify!(TimeMap2_timeToQN)
11581            )),
11582            Some(f) => f(proj, tpos),
11583        }
11584    }
11585    pub unsafe fn TimeMap_curFrameRate(
11586        &self,
11587        proj: *mut root::ReaProject,
11588        dropFrameOutOptional: *mut bool,
11589    ) -> f64 {
11590        match self.pointers.TimeMap_curFrameRate {
11591            None => panic!(format!(
11592                "Attempt to use a REAPER function that has not been loaded: {}",
11593                stringify!(TimeMap_curFrameRate)
11594            )),
11595            Some(f) => f(proj, dropFrameOutOptional),
11596        }
11597    }
11598    pub fn TimeMap_GetDividedBpmAtTime(&self, time: f64) -> f64 {
11599        match self.pointers.TimeMap_GetDividedBpmAtTime {
11600            None => panic!(format!(
11601                "Attempt to use a REAPER function that has not been loaded: {}",
11602                stringify!(TimeMap_GetDividedBpmAtTime)
11603            )),
11604            Some(f) => f(time),
11605        }
11606    }
11607    pub unsafe fn TimeMap_GetMeasureInfo(
11608        &self,
11609        proj: *mut root::ReaProject,
11610        measure: ::std::os::raw::c_int,
11611        qn_startOut: *mut f64,
11612        qn_endOut: *mut f64,
11613        timesig_numOut: *mut ::std::os::raw::c_int,
11614        timesig_denomOut: *mut ::std::os::raw::c_int,
11615        tempoOut: *mut f64,
11616    ) -> f64 {
11617        match self.pointers.TimeMap_GetMeasureInfo {
11618            None => panic!(format!(
11619                "Attempt to use a REAPER function that has not been loaded: {}",
11620                stringify!(TimeMap_GetMeasureInfo)
11621            )),
11622            Some(f) => f(
11623                proj,
11624                measure,
11625                qn_startOut,
11626                qn_endOut,
11627                timesig_numOut,
11628                timesig_denomOut,
11629                tempoOut,
11630            ),
11631        }
11632    }
11633    pub unsafe fn TimeMap_GetMetronomePattern(
11634        &self,
11635        proj: *mut root::ReaProject,
11636        time: f64,
11637        pattern: *mut ::std::os::raw::c_char,
11638        pattern_sz: ::std::os::raw::c_int,
11639    ) -> ::std::os::raw::c_int {
11640        match self.pointers.TimeMap_GetMetronomePattern {
11641            None => panic!(format!(
11642                "Attempt to use a REAPER function that has not been loaded: {}",
11643                stringify!(TimeMap_GetMetronomePattern)
11644            )),
11645            Some(f) => f(proj, time, pattern, pattern_sz),
11646        }
11647    }
11648    pub unsafe fn TimeMap_GetTimeSigAtTime(
11649        &self,
11650        proj: *mut root::ReaProject,
11651        time: f64,
11652        timesig_numOut: *mut ::std::os::raw::c_int,
11653        timesig_denomOut: *mut ::std::os::raw::c_int,
11654        tempoOut: *mut f64,
11655    ) {
11656        match self.pointers.TimeMap_GetTimeSigAtTime {
11657            None => panic!(format!(
11658                "Attempt to use a REAPER function that has not been loaded: {}",
11659                stringify!(TimeMap_GetTimeSigAtTime)
11660            )),
11661            Some(f) => f(proj, time, timesig_numOut, timesig_denomOut, tempoOut),
11662        }
11663    }
11664    pub unsafe fn TimeMap_QNToMeasures(
11665        &self,
11666        proj: *mut root::ReaProject,
11667        qn: f64,
11668        qnMeasureStartOutOptional: *mut f64,
11669        qnMeasureEndOutOptional: *mut f64,
11670    ) -> ::std::os::raw::c_int {
11671        match self.pointers.TimeMap_QNToMeasures {
11672            None => panic!(format!(
11673                "Attempt to use a REAPER function that has not been loaded: {}",
11674                stringify!(TimeMap_QNToMeasures)
11675            )),
11676            Some(f) => f(proj, qn, qnMeasureStartOutOptional, qnMeasureEndOutOptional),
11677        }
11678    }
11679    pub fn TimeMap_QNToTime(&self, qn: f64) -> f64 {
11680        match self.pointers.TimeMap_QNToTime {
11681            None => panic!(format!(
11682                "Attempt to use a REAPER function that has not been loaded: {}",
11683                stringify!(TimeMap_QNToTime)
11684            )),
11685            Some(f) => f(qn),
11686        }
11687    }
11688    pub unsafe fn TimeMap_QNToTime_abs(&self, proj: *mut root::ReaProject, qn: f64) -> f64 {
11689        match self.pointers.TimeMap_QNToTime_abs {
11690            None => panic!(format!(
11691                "Attempt to use a REAPER function that has not been loaded: {}",
11692                stringify!(TimeMap_QNToTime_abs)
11693            )),
11694            Some(f) => f(proj, qn),
11695        }
11696    }
11697    pub fn TimeMap_timeToQN(&self, tpos: f64) -> f64 {
11698        match self.pointers.TimeMap_timeToQN {
11699            None => panic!(format!(
11700                "Attempt to use a REAPER function that has not been loaded: {}",
11701                stringify!(TimeMap_timeToQN)
11702            )),
11703            Some(f) => f(tpos),
11704        }
11705    }
11706    pub unsafe fn TimeMap_timeToQN_abs(&self, proj: *mut root::ReaProject, tpos: f64) -> f64 {
11707        match self.pointers.TimeMap_timeToQN_abs {
11708            None => panic!(format!(
11709                "Attempt to use a REAPER function that has not been loaded: {}",
11710                stringify!(TimeMap_timeToQN_abs)
11711            )),
11712            Some(f) => f(proj, tpos),
11713        }
11714    }
11715    pub unsafe fn ToggleTrackSendUIMute(
11716        &self,
11717        track: *mut root::MediaTrack,
11718        send_idx: ::std::os::raw::c_int,
11719    ) -> bool {
11720        match self.pointers.ToggleTrackSendUIMute {
11721            None => panic!(format!(
11722                "Attempt to use a REAPER function that has not been loaded: {}",
11723                stringify!(ToggleTrackSendUIMute)
11724            )),
11725            Some(f) => f(track, send_idx),
11726        }
11727    }
11728    pub unsafe fn Track_GetPeakHoldDB(
11729        &self,
11730        track: *mut root::MediaTrack,
11731        channel: ::std::os::raw::c_int,
11732        clear: bool,
11733    ) -> f64 {
11734        match self.pointers.Track_GetPeakHoldDB {
11735            None => panic!(format!(
11736                "Attempt to use a REAPER function that has not been loaded: {}",
11737                stringify!(Track_GetPeakHoldDB)
11738            )),
11739            Some(f) => f(track, channel, clear),
11740        }
11741    }
11742    pub unsafe fn Track_GetPeakInfo(
11743        &self,
11744        track: *mut root::MediaTrack,
11745        channel: ::std::os::raw::c_int,
11746    ) -> f64 {
11747        match self.pointers.Track_GetPeakInfo {
11748            None => panic!(format!(
11749                "Attempt to use a REAPER function that has not been loaded: {}",
11750                stringify!(Track_GetPeakInfo)
11751            )),
11752            Some(f) => f(track, channel),
11753        }
11754    }
11755    pub unsafe fn TrackCtl_SetToolTip(
11756        &self,
11757        fmt: *const ::std::os::raw::c_char,
11758        xpos: ::std::os::raw::c_int,
11759        ypos: ::std::os::raw::c_int,
11760        topmost: bool,
11761    ) {
11762        match self.pointers.TrackCtl_SetToolTip {
11763            None => panic!(format!(
11764                "Attempt to use a REAPER function that has not been loaded: {}",
11765                stringify!(TrackCtl_SetToolTip)
11766            )),
11767            Some(f) => f(fmt, xpos, ypos, topmost),
11768        }
11769    }
11770    pub unsafe fn TrackFX_AddByName(
11771        &self,
11772        track: *mut root::MediaTrack,
11773        fxname: *const ::std::os::raw::c_char,
11774        recFX: bool,
11775        instantiate: ::std::os::raw::c_int,
11776    ) -> ::std::os::raw::c_int {
11777        match self.pointers.TrackFX_AddByName {
11778            None => panic!(format!(
11779                "Attempt to use a REAPER function that has not been loaded: {}",
11780                stringify!(TrackFX_AddByName)
11781            )),
11782            Some(f) => f(track, fxname, recFX, instantiate),
11783        }
11784    }
11785    pub unsafe fn TrackFX_CopyToTake(
11786        &self,
11787        src_track: *mut root::MediaTrack,
11788        src_fx: ::std::os::raw::c_int,
11789        dest_take: *mut root::MediaItem_Take,
11790        dest_fx: ::std::os::raw::c_int,
11791        is_move: bool,
11792    ) {
11793        match self.pointers.TrackFX_CopyToTake {
11794            None => panic!(format!(
11795                "Attempt to use a REAPER function that has not been loaded: {}",
11796                stringify!(TrackFX_CopyToTake)
11797            )),
11798            Some(f) => f(src_track, src_fx, dest_take, dest_fx, is_move),
11799        }
11800    }
11801    pub unsafe fn TrackFX_CopyToTrack(
11802        &self,
11803        src_track: *mut root::MediaTrack,
11804        src_fx: ::std::os::raw::c_int,
11805        dest_track: *mut root::MediaTrack,
11806        dest_fx: ::std::os::raw::c_int,
11807        is_move: bool,
11808    ) {
11809        match self.pointers.TrackFX_CopyToTrack {
11810            None => panic!(format!(
11811                "Attempt to use a REAPER function that has not been loaded: {}",
11812                stringify!(TrackFX_CopyToTrack)
11813            )),
11814            Some(f) => f(src_track, src_fx, dest_track, dest_fx, is_move),
11815        }
11816    }
11817    pub unsafe fn TrackFX_Delete(
11818        &self,
11819        track: *mut root::MediaTrack,
11820        fx: ::std::os::raw::c_int,
11821    ) -> bool {
11822        match self.pointers.TrackFX_Delete {
11823            None => panic!(format!(
11824                "Attempt to use a REAPER function that has not been loaded: {}",
11825                stringify!(TrackFX_Delete)
11826            )),
11827            Some(f) => f(track, fx),
11828        }
11829    }
11830    pub unsafe fn TrackFX_EndParamEdit(
11831        &self,
11832        track: *mut root::MediaTrack,
11833        fx: ::std::os::raw::c_int,
11834        param: ::std::os::raw::c_int,
11835    ) -> bool {
11836        match self.pointers.TrackFX_EndParamEdit {
11837            None => panic!(format!(
11838                "Attempt to use a REAPER function that has not been loaded: {}",
11839                stringify!(TrackFX_EndParamEdit)
11840            )),
11841            Some(f) => f(track, fx, param),
11842        }
11843    }
11844    pub unsafe fn TrackFX_FormatParamValue(
11845        &self,
11846        track: *mut root::MediaTrack,
11847        fx: ::std::os::raw::c_int,
11848        param: ::std::os::raw::c_int,
11849        val: f64,
11850        buf: *mut ::std::os::raw::c_char,
11851        buf_sz: ::std::os::raw::c_int,
11852    ) -> bool {
11853        match self.pointers.TrackFX_FormatParamValue {
11854            None => panic!(format!(
11855                "Attempt to use a REAPER function that has not been loaded: {}",
11856                stringify!(TrackFX_FormatParamValue)
11857            )),
11858            Some(f) => f(track, fx, param, val, buf, buf_sz),
11859        }
11860    }
11861    pub unsafe fn TrackFX_FormatParamValueNormalized(
11862        &self,
11863        track: *mut root::MediaTrack,
11864        fx: ::std::os::raw::c_int,
11865        param: ::std::os::raw::c_int,
11866        value: f64,
11867        buf: *mut ::std::os::raw::c_char,
11868        buf_sz: ::std::os::raw::c_int,
11869    ) -> bool {
11870        match self.pointers.TrackFX_FormatParamValueNormalized {
11871            None => panic!(format!(
11872                "Attempt to use a REAPER function that has not been loaded: {}",
11873                stringify!(TrackFX_FormatParamValueNormalized)
11874            )),
11875            Some(f) => f(track, fx, param, value, buf, buf_sz),
11876        }
11877    }
11878    pub unsafe fn TrackFX_GetByName(
11879        &self,
11880        track: *mut root::MediaTrack,
11881        fxname: *const ::std::os::raw::c_char,
11882        instantiate: bool,
11883    ) -> ::std::os::raw::c_int {
11884        match self.pointers.TrackFX_GetByName {
11885            None => panic!(format!(
11886                "Attempt to use a REAPER function that has not been loaded: {}",
11887                stringify!(TrackFX_GetByName)
11888            )),
11889            Some(f) => f(track, fxname, instantiate),
11890        }
11891    }
11892    pub unsafe fn TrackFX_GetChainVisible(
11893        &self,
11894        track: *mut root::MediaTrack,
11895    ) -> ::std::os::raw::c_int {
11896        match self.pointers.TrackFX_GetChainVisible {
11897            None => panic!(format!(
11898                "Attempt to use a REAPER function that has not been loaded: {}",
11899                stringify!(TrackFX_GetChainVisible)
11900            )),
11901            Some(f) => f(track),
11902        }
11903    }
11904    pub unsafe fn TrackFX_GetCount(&self, track: *mut root::MediaTrack) -> ::std::os::raw::c_int {
11905        match self.pointers.TrackFX_GetCount {
11906            None => panic!(format!(
11907                "Attempt to use a REAPER function that has not been loaded: {}",
11908                stringify!(TrackFX_GetCount)
11909            )),
11910            Some(f) => f(track),
11911        }
11912    }
11913    pub unsafe fn TrackFX_GetEnabled(
11914        &self,
11915        track: *mut root::MediaTrack,
11916        fx: ::std::os::raw::c_int,
11917    ) -> bool {
11918        match self.pointers.TrackFX_GetEnabled {
11919            None => panic!(format!(
11920                "Attempt to use a REAPER function that has not been loaded: {}",
11921                stringify!(TrackFX_GetEnabled)
11922            )),
11923            Some(f) => f(track, fx),
11924        }
11925    }
11926    pub unsafe fn TrackFX_GetEQ(
11927        &self,
11928        track: *mut root::MediaTrack,
11929        instantiate: bool,
11930    ) -> ::std::os::raw::c_int {
11931        match self.pointers.TrackFX_GetEQ {
11932            None => panic!(format!(
11933                "Attempt to use a REAPER function that has not been loaded: {}",
11934                stringify!(TrackFX_GetEQ)
11935            )),
11936            Some(f) => f(track, instantiate),
11937        }
11938    }
11939    pub unsafe fn TrackFX_GetEQBandEnabled(
11940        &self,
11941        track: *mut root::MediaTrack,
11942        fxidx: ::std::os::raw::c_int,
11943        bandtype: ::std::os::raw::c_int,
11944        bandidx: ::std::os::raw::c_int,
11945    ) -> bool {
11946        match self.pointers.TrackFX_GetEQBandEnabled {
11947            None => panic!(format!(
11948                "Attempt to use a REAPER function that has not been loaded: {}",
11949                stringify!(TrackFX_GetEQBandEnabled)
11950            )),
11951            Some(f) => f(track, fxidx, bandtype, bandidx),
11952        }
11953    }
11954    pub unsafe fn TrackFX_GetEQParam(
11955        &self,
11956        track: *mut root::MediaTrack,
11957        fxidx: ::std::os::raw::c_int,
11958        paramidx: ::std::os::raw::c_int,
11959        bandtypeOut: *mut ::std::os::raw::c_int,
11960        bandidxOut: *mut ::std::os::raw::c_int,
11961        paramtypeOut: *mut ::std::os::raw::c_int,
11962        normvalOut: *mut f64,
11963    ) -> bool {
11964        match self.pointers.TrackFX_GetEQParam {
11965            None => panic!(format!(
11966                "Attempt to use a REAPER function that has not been loaded: {}",
11967                stringify!(TrackFX_GetEQParam)
11968            )),
11969            Some(f) => f(
11970                track,
11971                fxidx,
11972                paramidx,
11973                bandtypeOut,
11974                bandidxOut,
11975                paramtypeOut,
11976                normvalOut,
11977            ),
11978        }
11979    }
11980    pub unsafe fn TrackFX_GetFloatingWindow(
11981        &self,
11982        track: *mut root::MediaTrack,
11983        index: ::std::os::raw::c_int,
11984    ) -> root::HWND {
11985        match self.pointers.TrackFX_GetFloatingWindow {
11986            None => panic!(format!(
11987                "Attempt to use a REAPER function that has not been loaded: {}",
11988                stringify!(TrackFX_GetFloatingWindow)
11989            )),
11990            Some(f) => f(track, index),
11991        }
11992    }
11993    pub unsafe fn TrackFX_GetFormattedParamValue(
11994        &self,
11995        track: *mut root::MediaTrack,
11996        fx: ::std::os::raw::c_int,
11997        param: ::std::os::raw::c_int,
11998        buf: *mut ::std::os::raw::c_char,
11999        buf_sz: ::std::os::raw::c_int,
12000    ) -> bool {
12001        match self.pointers.TrackFX_GetFormattedParamValue {
12002            None => panic!(format!(
12003                "Attempt to use a REAPER function that has not been loaded: {}",
12004                stringify!(TrackFX_GetFormattedParamValue)
12005            )),
12006            Some(f) => f(track, fx, param, buf, buf_sz),
12007        }
12008    }
12009    pub unsafe fn TrackFX_GetFXGUID(
12010        &self,
12011        track: *mut root::MediaTrack,
12012        fx: ::std::os::raw::c_int,
12013    ) -> *mut root::GUID {
12014        match self.pointers.TrackFX_GetFXGUID {
12015            None => panic!(format!(
12016                "Attempt to use a REAPER function that has not been loaded: {}",
12017                stringify!(TrackFX_GetFXGUID)
12018            )),
12019            Some(f) => f(track, fx),
12020        }
12021    }
12022    pub unsafe fn TrackFX_GetFXName(
12023        &self,
12024        track: *mut root::MediaTrack,
12025        fx: ::std::os::raw::c_int,
12026        buf: *mut ::std::os::raw::c_char,
12027        buf_sz: ::std::os::raw::c_int,
12028    ) -> bool {
12029        match self.pointers.TrackFX_GetFXName {
12030            None => panic!(format!(
12031                "Attempt to use a REAPER function that has not been loaded: {}",
12032                stringify!(TrackFX_GetFXName)
12033            )),
12034            Some(f) => f(track, fx, buf, buf_sz),
12035        }
12036    }
12037    pub unsafe fn TrackFX_GetInstrument(
12038        &self,
12039        track: *mut root::MediaTrack,
12040    ) -> ::std::os::raw::c_int {
12041        match self.pointers.TrackFX_GetInstrument {
12042            None => panic!(format!(
12043                "Attempt to use a REAPER function that has not been loaded: {}",
12044                stringify!(TrackFX_GetInstrument)
12045            )),
12046            Some(f) => f(track),
12047        }
12048    }
12049    pub unsafe fn TrackFX_GetIOSize(
12050        &self,
12051        track: *mut root::MediaTrack,
12052        fx: ::std::os::raw::c_int,
12053        inputPinsOutOptional: *mut ::std::os::raw::c_int,
12054        outputPinsOutOptional: *mut ::std::os::raw::c_int,
12055    ) -> ::std::os::raw::c_int {
12056        match self.pointers.TrackFX_GetIOSize {
12057            None => panic!(format!(
12058                "Attempt to use a REAPER function that has not been loaded: {}",
12059                stringify!(TrackFX_GetIOSize)
12060            )),
12061            Some(f) => f(track, fx, inputPinsOutOptional, outputPinsOutOptional),
12062        }
12063    }
12064    pub unsafe fn TrackFX_GetNamedConfigParm(
12065        &self,
12066        track: *mut root::MediaTrack,
12067        fx: ::std::os::raw::c_int,
12068        parmname: *const ::std::os::raw::c_char,
12069        bufOut: *mut ::std::os::raw::c_char,
12070        bufOut_sz: ::std::os::raw::c_int,
12071    ) -> bool {
12072        match self.pointers.TrackFX_GetNamedConfigParm {
12073            None => panic!(format!(
12074                "Attempt to use a REAPER function that has not been loaded: {}",
12075                stringify!(TrackFX_GetNamedConfigParm)
12076            )),
12077            Some(f) => f(track, fx, parmname, bufOut, bufOut_sz),
12078        }
12079    }
12080    pub unsafe fn TrackFX_GetNumParams(
12081        &self,
12082        track: *mut root::MediaTrack,
12083        fx: ::std::os::raw::c_int,
12084    ) -> ::std::os::raw::c_int {
12085        match self.pointers.TrackFX_GetNumParams {
12086            None => panic!(format!(
12087                "Attempt to use a REAPER function that has not been loaded: {}",
12088                stringify!(TrackFX_GetNumParams)
12089            )),
12090            Some(f) => f(track, fx),
12091        }
12092    }
12093    pub unsafe fn TrackFX_GetOffline(
12094        &self,
12095        track: *mut root::MediaTrack,
12096        fx: ::std::os::raw::c_int,
12097    ) -> bool {
12098        match self.pointers.TrackFX_GetOffline {
12099            None => panic!(format!(
12100                "Attempt to use a REAPER function that has not been loaded: {}",
12101                stringify!(TrackFX_GetOffline)
12102            )),
12103            Some(f) => f(track, fx),
12104        }
12105    }
12106    pub unsafe fn TrackFX_GetOpen(
12107        &self,
12108        track: *mut root::MediaTrack,
12109        fx: ::std::os::raw::c_int,
12110    ) -> bool {
12111        match self.pointers.TrackFX_GetOpen {
12112            None => panic!(format!(
12113                "Attempt to use a REAPER function that has not been loaded: {}",
12114                stringify!(TrackFX_GetOpen)
12115            )),
12116            Some(f) => f(track, fx),
12117        }
12118    }
12119    pub unsafe fn TrackFX_GetParam(
12120        &self,
12121        track: *mut root::MediaTrack,
12122        fx: ::std::os::raw::c_int,
12123        param: ::std::os::raw::c_int,
12124        minvalOut: *mut f64,
12125        maxvalOut: *mut f64,
12126    ) -> f64 {
12127        match self.pointers.TrackFX_GetParam {
12128            None => panic!(format!(
12129                "Attempt to use a REAPER function that has not been loaded: {}",
12130                stringify!(TrackFX_GetParam)
12131            )),
12132            Some(f) => f(track, fx, param, minvalOut, maxvalOut),
12133        }
12134    }
12135    pub unsafe fn TrackFX_GetParameterStepSizes(
12136        &self,
12137        track: *mut root::MediaTrack,
12138        fx: ::std::os::raw::c_int,
12139        param: ::std::os::raw::c_int,
12140        stepOut: *mut f64,
12141        smallstepOut: *mut f64,
12142        largestepOut: *mut f64,
12143        istoggleOut: *mut bool,
12144    ) -> bool {
12145        match self.pointers.TrackFX_GetParameterStepSizes {
12146            None => panic!(format!(
12147                "Attempt to use a REAPER function that has not been loaded: {}",
12148                stringify!(TrackFX_GetParameterStepSizes)
12149            )),
12150            Some(f) => f(
12151                track,
12152                fx,
12153                param,
12154                stepOut,
12155                smallstepOut,
12156                largestepOut,
12157                istoggleOut,
12158            ),
12159        }
12160    }
12161    pub unsafe fn TrackFX_GetParamEx(
12162        &self,
12163        track: *mut root::MediaTrack,
12164        fx: ::std::os::raw::c_int,
12165        param: ::std::os::raw::c_int,
12166        minvalOut: *mut f64,
12167        maxvalOut: *mut f64,
12168        midvalOut: *mut f64,
12169    ) -> f64 {
12170        match self.pointers.TrackFX_GetParamEx {
12171            None => panic!(format!(
12172                "Attempt to use a REAPER function that has not been loaded: {}",
12173                stringify!(TrackFX_GetParamEx)
12174            )),
12175            Some(f) => f(track, fx, param, minvalOut, maxvalOut, midvalOut),
12176        }
12177    }
12178    pub unsafe fn TrackFX_GetParamName(
12179        &self,
12180        track: *mut root::MediaTrack,
12181        fx: ::std::os::raw::c_int,
12182        param: ::std::os::raw::c_int,
12183        buf: *mut ::std::os::raw::c_char,
12184        buf_sz: ::std::os::raw::c_int,
12185    ) -> bool {
12186        match self.pointers.TrackFX_GetParamName {
12187            None => panic!(format!(
12188                "Attempt to use a REAPER function that has not been loaded: {}",
12189                stringify!(TrackFX_GetParamName)
12190            )),
12191            Some(f) => f(track, fx, param, buf, buf_sz),
12192        }
12193    }
12194    pub unsafe fn TrackFX_GetParamNormalized(
12195        &self,
12196        track: *mut root::MediaTrack,
12197        fx: ::std::os::raw::c_int,
12198        param: ::std::os::raw::c_int,
12199    ) -> f64 {
12200        match self.pointers.TrackFX_GetParamNormalized {
12201            None => panic!(format!(
12202                "Attempt to use a REAPER function that has not been loaded: {}",
12203                stringify!(TrackFX_GetParamNormalized)
12204            )),
12205            Some(f) => f(track, fx, param),
12206        }
12207    }
12208    pub unsafe fn TrackFX_GetPinMappings(
12209        &self,
12210        tr: *mut root::MediaTrack,
12211        fx: ::std::os::raw::c_int,
12212        isoutput: ::std::os::raw::c_int,
12213        pin: ::std::os::raw::c_int,
12214        high32OutOptional: *mut ::std::os::raw::c_int,
12215    ) -> ::std::os::raw::c_int {
12216        match self.pointers.TrackFX_GetPinMappings {
12217            None => panic!(format!(
12218                "Attempt to use a REAPER function that has not been loaded: {}",
12219                stringify!(TrackFX_GetPinMappings)
12220            )),
12221            Some(f) => f(tr, fx, isoutput, pin, high32OutOptional),
12222        }
12223    }
12224    pub unsafe fn TrackFX_GetPreset(
12225        &self,
12226        track: *mut root::MediaTrack,
12227        fx: ::std::os::raw::c_int,
12228        presetname: *mut ::std::os::raw::c_char,
12229        presetname_sz: ::std::os::raw::c_int,
12230    ) -> bool {
12231        match self.pointers.TrackFX_GetPreset {
12232            None => panic!(format!(
12233                "Attempt to use a REAPER function that has not been loaded: {}",
12234                stringify!(TrackFX_GetPreset)
12235            )),
12236            Some(f) => f(track, fx, presetname, presetname_sz),
12237        }
12238    }
12239    pub unsafe fn TrackFX_GetPresetIndex(
12240        &self,
12241        track: *mut root::MediaTrack,
12242        fx: ::std::os::raw::c_int,
12243        numberOfPresetsOut: *mut ::std::os::raw::c_int,
12244    ) -> ::std::os::raw::c_int {
12245        match self.pointers.TrackFX_GetPresetIndex {
12246            None => panic!(format!(
12247                "Attempt to use a REAPER function that has not been loaded: {}",
12248                stringify!(TrackFX_GetPresetIndex)
12249            )),
12250            Some(f) => f(track, fx, numberOfPresetsOut),
12251        }
12252    }
12253    pub unsafe fn TrackFX_GetRecChainVisible(
12254        &self,
12255        track: *mut root::MediaTrack,
12256    ) -> ::std::os::raw::c_int {
12257        match self.pointers.TrackFX_GetRecChainVisible {
12258            None => panic!(format!(
12259                "Attempt to use a REAPER function that has not been loaded: {}",
12260                stringify!(TrackFX_GetRecChainVisible)
12261            )),
12262            Some(f) => f(track),
12263        }
12264    }
12265    pub unsafe fn TrackFX_GetRecCount(
12266        &self,
12267        track: *mut root::MediaTrack,
12268    ) -> ::std::os::raw::c_int {
12269        match self.pointers.TrackFX_GetRecCount {
12270            None => panic!(format!(
12271                "Attempt to use a REAPER function that has not been loaded: {}",
12272                stringify!(TrackFX_GetRecCount)
12273            )),
12274            Some(f) => f(track),
12275        }
12276    }
12277    pub unsafe fn TrackFX_GetUserPresetFilename(
12278        &self,
12279        track: *mut root::MediaTrack,
12280        fx: ::std::os::raw::c_int,
12281        fn_: *mut ::std::os::raw::c_char,
12282        fn_sz: ::std::os::raw::c_int,
12283    ) {
12284        match self.pointers.TrackFX_GetUserPresetFilename {
12285            None => panic!(format!(
12286                "Attempt to use a REAPER function that has not been loaded: {}",
12287                stringify!(TrackFX_GetUserPresetFilename)
12288            )),
12289            Some(f) => f(track, fx, fn_, fn_sz),
12290        }
12291    }
12292    pub unsafe fn TrackFX_NavigatePresets(
12293        &self,
12294        track: *mut root::MediaTrack,
12295        fx: ::std::os::raw::c_int,
12296        presetmove: ::std::os::raw::c_int,
12297    ) -> bool {
12298        match self.pointers.TrackFX_NavigatePresets {
12299            None => panic!(format!(
12300                "Attempt to use a REAPER function that has not been loaded: {}",
12301                stringify!(TrackFX_NavigatePresets)
12302            )),
12303            Some(f) => f(track, fx, presetmove),
12304        }
12305    }
12306    pub unsafe fn TrackFX_SetEnabled(
12307        &self,
12308        track: *mut root::MediaTrack,
12309        fx: ::std::os::raw::c_int,
12310        enabled: bool,
12311    ) {
12312        match self.pointers.TrackFX_SetEnabled {
12313            None => panic!(format!(
12314                "Attempt to use a REAPER function that has not been loaded: {}",
12315                stringify!(TrackFX_SetEnabled)
12316            )),
12317            Some(f) => f(track, fx, enabled),
12318        }
12319    }
12320    pub unsafe fn TrackFX_SetEQBandEnabled(
12321        &self,
12322        track: *mut root::MediaTrack,
12323        fxidx: ::std::os::raw::c_int,
12324        bandtype: ::std::os::raw::c_int,
12325        bandidx: ::std::os::raw::c_int,
12326        enable: bool,
12327    ) -> bool {
12328        match self.pointers.TrackFX_SetEQBandEnabled {
12329            None => panic!(format!(
12330                "Attempt to use a REAPER function that has not been loaded: {}",
12331                stringify!(TrackFX_SetEQBandEnabled)
12332            )),
12333            Some(f) => f(track, fxidx, bandtype, bandidx, enable),
12334        }
12335    }
12336    pub unsafe fn TrackFX_SetEQParam(
12337        &self,
12338        track: *mut root::MediaTrack,
12339        fxidx: ::std::os::raw::c_int,
12340        bandtype: ::std::os::raw::c_int,
12341        bandidx: ::std::os::raw::c_int,
12342        paramtype: ::std::os::raw::c_int,
12343        val: f64,
12344        isnorm: bool,
12345    ) -> bool {
12346        match self.pointers.TrackFX_SetEQParam {
12347            None => panic!(format!(
12348                "Attempt to use a REAPER function that has not been loaded: {}",
12349                stringify!(TrackFX_SetEQParam)
12350            )),
12351            Some(f) => f(track, fxidx, bandtype, bandidx, paramtype, val, isnorm),
12352        }
12353    }
12354    pub unsafe fn TrackFX_SetNamedConfigParm(
12355        &self,
12356        track: *mut root::MediaTrack,
12357        fx: ::std::os::raw::c_int,
12358        parmname: *const ::std::os::raw::c_char,
12359        value: *const ::std::os::raw::c_char,
12360    ) -> bool {
12361        match self.pointers.TrackFX_SetNamedConfigParm {
12362            None => panic!(format!(
12363                "Attempt to use a REAPER function that has not been loaded: {}",
12364                stringify!(TrackFX_SetNamedConfigParm)
12365            )),
12366            Some(f) => f(track, fx, parmname, value),
12367        }
12368    }
12369    pub unsafe fn TrackFX_SetOffline(
12370        &self,
12371        track: *mut root::MediaTrack,
12372        fx: ::std::os::raw::c_int,
12373        offline: bool,
12374    ) {
12375        match self.pointers.TrackFX_SetOffline {
12376            None => panic!(format!(
12377                "Attempt to use a REAPER function that has not been loaded: {}",
12378                stringify!(TrackFX_SetOffline)
12379            )),
12380            Some(f) => f(track, fx, offline),
12381        }
12382    }
12383    pub unsafe fn TrackFX_SetOpen(
12384        &self,
12385        track: *mut root::MediaTrack,
12386        fx: ::std::os::raw::c_int,
12387        open: bool,
12388    ) {
12389        match self.pointers.TrackFX_SetOpen {
12390            None => panic!(format!(
12391                "Attempt to use a REAPER function that has not been loaded: {}",
12392                stringify!(TrackFX_SetOpen)
12393            )),
12394            Some(f) => f(track, fx, open),
12395        }
12396    }
12397    pub unsafe fn TrackFX_SetParam(
12398        &self,
12399        track: *mut root::MediaTrack,
12400        fx: ::std::os::raw::c_int,
12401        param: ::std::os::raw::c_int,
12402        val: f64,
12403    ) -> bool {
12404        match self.pointers.TrackFX_SetParam {
12405            None => panic!(format!(
12406                "Attempt to use a REAPER function that has not been loaded: {}",
12407                stringify!(TrackFX_SetParam)
12408            )),
12409            Some(f) => f(track, fx, param, val),
12410        }
12411    }
12412    pub unsafe fn TrackFX_SetParamNormalized(
12413        &self,
12414        track: *mut root::MediaTrack,
12415        fx: ::std::os::raw::c_int,
12416        param: ::std::os::raw::c_int,
12417        value: f64,
12418    ) -> bool {
12419        match self.pointers.TrackFX_SetParamNormalized {
12420            None => panic!(format!(
12421                "Attempt to use a REAPER function that has not been loaded: {}",
12422                stringify!(TrackFX_SetParamNormalized)
12423            )),
12424            Some(f) => f(track, fx, param, value),
12425        }
12426    }
12427    pub unsafe fn TrackFX_SetPinMappings(
12428        &self,
12429        tr: *mut root::MediaTrack,
12430        fx: ::std::os::raw::c_int,
12431        isoutput: ::std::os::raw::c_int,
12432        pin: ::std::os::raw::c_int,
12433        low32bits: ::std::os::raw::c_int,
12434        hi32bits: ::std::os::raw::c_int,
12435    ) -> bool {
12436        match self.pointers.TrackFX_SetPinMappings {
12437            None => panic!(format!(
12438                "Attempt to use a REAPER function that has not been loaded: {}",
12439                stringify!(TrackFX_SetPinMappings)
12440            )),
12441            Some(f) => f(tr, fx, isoutput, pin, low32bits, hi32bits),
12442        }
12443    }
12444    pub unsafe fn TrackFX_SetPreset(
12445        &self,
12446        track: *mut root::MediaTrack,
12447        fx: ::std::os::raw::c_int,
12448        presetname: *const ::std::os::raw::c_char,
12449    ) -> bool {
12450        match self.pointers.TrackFX_SetPreset {
12451            None => panic!(format!(
12452                "Attempt to use a REAPER function that has not been loaded: {}",
12453                stringify!(TrackFX_SetPreset)
12454            )),
12455            Some(f) => f(track, fx, presetname),
12456        }
12457    }
12458    pub unsafe fn TrackFX_SetPresetByIndex(
12459        &self,
12460        track: *mut root::MediaTrack,
12461        fx: ::std::os::raw::c_int,
12462        idx: ::std::os::raw::c_int,
12463    ) -> bool {
12464        match self.pointers.TrackFX_SetPresetByIndex {
12465            None => panic!(format!(
12466                "Attempt to use a REAPER function that has not been loaded: {}",
12467                stringify!(TrackFX_SetPresetByIndex)
12468            )),
12469            Some(f) => f(track, fx, idx),
12470        }
12471    }
12472    pub unsafe fn TrackFX_Show(
12473        &self,
12474        track: *mut root::MediaTrack,
12475        index: ::std::os::raw::c_int,
12476        showFlag: ::std::os::raw::c_int,
12477    ) {
12478        match self.pointers.TrackFX_Show {
12479            None => panic!(format!(
12480                "Attempt to use a REAPER function that has not been loaded: {}",
12481                stringify!(TrackFX_Show)
12482            )),
12483            Some(f) => f(track, index, showFlag),
12484        }
12485    }
12486    pub fn TrackList_AdjustWindows(&self, isMinor: bool) {
12487        match self.pointers.TrackList_AdjustWindows {
12488            None => panic!(format!(
12489                "Attempt to use a REAPER function that has not been loaded: {}",
12490                stringify!(TrackList_AdjustWindows)
12491            )),
12492            Some(f) => f(isMinor),
12493        }
12494    }
12495    pub fn TrackList_UpdateAllExternalSurfaces(&self) {
12496        match self.pointers.TrackList_UpdateAllExternalSurfaces {
12497            None => panic!(format!(
12498                "Attempt to use a REAPER function that has not been loaded: {}",
12499                stringify!(TrackList_UpdateAllExternalSurfaces)
12500            )),
12501            Some(f) => f(),
12502        }
12503    }
12504    pub fn Undo_BeginBlock(&self) {
12505        match self.pointers.Undo_BeginBlock {
12506            None => panic!(format!(
12507                "Attempt to use a REAPER function that has not been loaded: {}",
12508                stringify!(Undo_BeginBlock)
12509            )),
12510            Some(f) => f(),
12511        }
12512    }
12513    pub unsafe fn Undo_BeginBlock2(&self, proj: *mut root::ReaProject) {
12514        match self.pointers.Undo_BeginBlock2 {
12515            None => panic!(format!(
12516                "Attempt to use a REAPER function that has not been loaded: {}",
12517                stringify!(Undo_BeginBlock2)
12518            )),
12519            Some(f) => f(proj),
12520        }
12521    }
12522    pub unsafe fn Undo_CanRedo2(
12523        &self,
12524        proj: *mut root::ReaProject,
12525    ) -> *const ::std::os::raw::c_char {
12526        match self.pointers.Undo_CanRedo2 {
12527            None => panic!(format!(
12528                "Attempt to use a REAPER function that has not been loaded: {}",
12529                stringify!(Undo_CanRedo2)
12530            )),
12531            Some(f) => f(proj),
12532        }
12533    }
12534    pub unsafe fn Undo_CanUndo2(
12535        &self,
12536        proj: *mut root::ReaProject,
12537    ) -> *const ::std::os::raw::c_char {
12538        match self.pointers.Undo_CanUndo2 {
12539            None => panic!(format!(
12540                "Attempt to use a REAPER function that has not been loaded: {}",
12541                stringify!(Undo_CanUndo2)
12542            )),
12543            Some(f) => f(proj),
12544        }
12545    }
12546    pub unsafe fn Undo_DoRedo2(&self, proj: *mut root::ReaProject) -> ::std::os::raw::c_int {
12547        match self.pointers.Undo_DoRedo2 {
12548            None => panic!(format!(
12549                "Attempt to use a REAPER function that has not been loaded: {}",
12550                stringify!(Undo_DoRedo2)
12551            )),
12552            Some(f) => f(proj),
12553        }
12554    }
12555    pub unsafe fn Undo_DoUndo2(&self, proj: *mut root::ReaProject) -> ::std::os::raw::c_int {
12556        match self.pointers.Undo_DoUndo2 {
12557            None => panic!(format!(
12558                "Attempt to use a REAPER function that has not been loaded: {}",
12559                stringify!(Undo_DoUndo2)
12560            )),
12561            Some(f) => f(proj),
12562        }
12563    }
12564    pub unsafe fn Undo_EndBlock(
12565        &self,
12566        descchange: *const ::std::os::raw::c_char,
12567        extraflags: ::std::os::raw::c_int,
12568    ) {
12569        match self.pointers.Undo_EndBlock {
12570            None => panic!(format!(
12571                "Attempt to use a REAPER function that has not been loaded: {}",
12572                stringify!(Undo_EndBlock)
12573            )),
12574            Some(f) => f(descchange, extraflags),
12575        }
12576    }
12577    pub unsafe fn Undo_EndBlock2(
12578        &self,
12579        proj: *mut root::ReaProject,
12580        descchange: *const ::std::os::raw::c_char,
12581        extraflags: ::std::os::raw::c_int,
12582    ) {
12583        match self.pointers.Undo_EndBlock2 {
12584            None => panic!(format!(
12585                "Attempt to use a REAPER function that has not been loaded: {}",
12586                stringify!(Undo_EndBlock2)
12587            )),
12588            Some(f) => f(proj, descchange, extraflags),
12589        }
12590    }
12591    pub unsafe fn Undo_OnStateChange(&self, descchange: *const ::std::os::raw::c_char) {
12592        match self.pointers.Undo_OnStateChange {
12593            None => panic!(format!(
12594                "Attempt to use a REAPER function that has not been loaded: {}",
12595                stringify!(Undo_OnStateChange)
12596            )),
12597            Some(f) => f(descchange),
12598        }
12599    }
12600    pub unsafe fn Undo_OnStateChange2(
12601        &self,
12602        proj: *mut root::ReaProject,
12603        descchange: *const ::std::os::raw::c_char,
12604    ) {
12605        match self.pointers.Undo_OnStateChange2 {
12606            None => panic!(format!(
12607                "Attempt to use a REAPER function that has not been loaded: {}",
12608                stringify!(Undo_OnStateChange2)
12609            )),
12610            Some(f) => f(proj, descchange),
12611        }
12612    }
12613    pub unsafe fn Undo_OnStateChange_Item(
12614        &self,
12615        proj: *mut root::ReaProject,
12616        name: *const ::std::os::raw::c_char,
12617        item: *mut root::MediaItem,
12618    ) {
12619        match self.pointers.Undo_OnStateChange_Item {
12620            None => panic!(format!(
12621                "Attempt to use a REAPER function that has not been loaded: {}",
12622                stringify!(Undo_OnStateChange_Item)
12623            )),
12624            Some(f) => f(proj, name, item),
12625        }
12626    }
12627    pub unsafe fn Undo_OnStateChangeEx(
12628        &self,
12629        descchange: *const ::std::os::raw::c_char,
12630        whichStates: ::std::os::raw::c_int,
12631        trackparm: ::std::os::raw::c_int,
12632    ) {
12633        match self.pointers.Undo_OnStateChangeEx {
12634            None => panic!(format!(
12635                "Attempt to use a REAPER function that has not been loaded: {}",
12636                stringify!(Undo_OnStateChangeEx)
12637            )),
12638            Some(f) => f(descchange, whichStates, trackparm),
12639        }
12640    }
12641    pub unsafe fn Undo_OnStateChangeEx2(
12642        &self,
12643        proj: *mut root::ReaProject,
12644        descchange: *const ::std::os::raw::c_char,
12645        whichStates: ::std::os::raw::c_int,
12646        trackparm: ::std::os::raw::c_int,
12647    ) {
12648        match self.pointers.Undo_OnStateChangeEx2 {
12649            None => panic!(format!(
12650                "Attempt to use a REAPER function that has not been loaded: {}",
12651                stringify!(Undo_OnStateChangeEx2)
12652            )),
12653            Some(f) => f(proj, descchange, whichStates, trackparm),
12654        }
12655    }
12656    pub fn update_disk_counters(
12657        &self,
12658        readamt: ::std::os::raw::c_int,
12659        writeamt: ::std::os::raw::c_int,
12660    ) {
12661        match self.pointers.update_disk_counters {
12662            None => panic!(format!(
12663                "Attempt to use a REAPER function that has not been loaded: {}",
12664                stringify!(update_disk_counters)
12665            )),
12666            Some(f) => f(readamt, writeamt),
12667        }
12668    }
12669    pub fn UpdateArrange(&self) {
12670        match self.pointers.UpdateArrange {
12671            None => panic!(format!(
12672                "Attempt to use a REAPER function that has not been loaded: {}",
12673                stringify!(UpdateArrange)
12674            )),
12675            Some(f) => f(),
12676        }
12677    }
12678    pub unsafe fn UpdateItemInProject(&self, item: *mut root::MediaItem) {
12679        match self.pointers.UpdateItemInProject {
12680            None => panic!(format!(
12681                "Attempt to use a REAPER function that has not been loaded: {}",
12682                stringify!(UpdateItemInProject)
12683            )),
12684            Some(f) => f(item),
12685        }
12686    }
12687    pub fn UpdateTimeline(&self) {
12688        match self.pointers.UpdateTimeline {
12689            None => panic!(format!(
12690                "Attempt to use a REAPER function that has not been loaded: {}",
12691                stringify!(UpdateTimeline)
12692            )),
12693            Some(f) => f(),
12694        }
12695    }
12696    pub unsafe fn ValidatePtr(
12697        &self,
12698        pointer: *mut ::std::os::raw::c_void,
12699        ctypename: *const ::std::os::raw::c_char,
12700    ) -> bool {
12701        match self.pointers.ValidatePtr {
12702            None => panic!(format!(
12703                "Attempt to use a REAPER function that has not been loaded: {}",
12704                stringify!(ValidatePtr)
12705            )),
12706            Some(f) => f(pointer, ctypename),
12707        }
12708    }
12709    pub unsafe fn ValidatePtr2(
12710        &self,
12711        proj: *mut root::ReaProject,
12712        pointer: *mut ::std::os::raw::c_void,
12713        ctypename: *const ::std::os::raw::c_char,
12714    ) -> bool {
12715        match self.pointers.ValidatePtr2 {
12716            None => panic!(format!(
12717                "Attempt to use a REAPER function that has not been loaded: {}",
12718                stringify!(ValidatePtr2)
12719            )),
12720            Some(f) => f(proj, pointer, ctypename),
12721        }
12722    }
12723    pub unsafe fn ViewPrefs(
12724        &self,
12725        page: ::std::os::raw::c_int,
12726        pageByName: *const ::std::os::raw::c_char,
12727    ) {
12728        match self.pointers.ViewPrefs {
12729            None => panic!(format!(
12730                "Attempt to use a REAPER function that has not been loaded: {}",
12731                stringify!(ViewPrefs)
12732            )),
12733            Some(f) => f(page, pageByName),
12734        }
12735    }
12736    pub unsafe fn WDL_VirtualWnd_ScaledBlitBG(
12737        &self,
12738        dest: *mut root::reaper_functions::LICE_IBitmap,
12739        src: *mut root::reaper_functions::WDL_VirtualWnd_BGCfg,
12740        destx: ::std::os::raw::c_int,
12741        desty: ::std::os::raw::c_int,
12742        destw: ::std::os::raw::c_int,
12743        desth: ::std::os::raw::c_int,
12744        clipx: ::std::os::raw::c_int,
12745        clipy: ::std::os::raw::c_int,
12746        clipw: ::std::os::raw::c_int,
12747        cliph: ::std::os::raw::c_int,
12748        alpha: f32,
12749        mode: ::std::os::raw::c_int,
12750    ) -> bool {
12751        match self.pointers.WDL_VirtualWnd_ScaledBlitBG {
12752            None => panic!(format!(
12753                "Attempt to use a REAPER function that has not been loaded: {}",
12754                stringify!(WDL_VirtualWnd_ScaledBlitBG)
12755            )),
12756            Some(f) => f(
12757                dest, src, destx, desty, destw, desth, clipx, clipy, clipw, cliph, alpha, mode,
12758            ),
12759        }
12760    }
12761    pub fn GetMidiInput(&self, idx: ::std::os::raw::c_int) -> *mut root::midi_Input {
12762        match self.pointers.GetMidiInput {
12763            None => panic!(format!(
12764                "Attempt to use a REAPER function that has not been loaded: {}",
12765                stringify!(GetMidiInput)
12766            )),
12767            Some(f) => f(idx),
12768        }
12769    }
12770    pub fn GetMidiOutput(&self, idx: ::std::os::raw::c_int) -> *mut root::midi_Output {
12771        match self.pointers.GetMidiOutput {
12772            None => panic!(format!(
12773                "Attempt to use a REAPER function that has not been loaded: {}",
12774                stringify!(GetMidiOutput)
12775            )),
12776            Some(f) => f(idx),
12777        }
12778    }
12779}
12780#[doc = r" Container for the REAPER function pointers."]
12781#[derive(Copy, Clone, Default)]
12782pub struct ReaperFunctionPointers {
12783    pub __mergesort: Option<
12784        unsafe extern "C" fn(
12785            base: *mut ::std::os::raw::c_void,
12786            nmemb: usize,
12787            size: usize,
12788            cmpfunc: ::std::option::Option<
12789                unsafe extern "C" fn(
12790                    arg1: *const ::std::os::raw::c_void,
12791                    arg2: *const ::std::os::raw::c_void,
12792                ) -> ::std::os::raw::c_int,
12793            >,
12794            tmpspace: *mut ::std::os::raw::c_void,
12795        ),
12796    >,
12797    pub AddCustomizableMenu: Option<
12798        unsafe extern "C" fn(
12799            menuidstr: *const ::std::os::raw::c_char,
12800            menuname: *const ::std::os::raw::c_char,
12801            kbdsecname: *const ::std::os::raw::c_char,
12802            addtomainmenu: bool,
12803        ) -> bool,
12804    >,
12805    pub AddExtensionsMainMenu: Option<extern "C" fn() -> bool>,
12806    pub AddMediaItemToTrack:
12807        Option<unsafe extern "C" fn(tr: *mut root::MediaTrack) -> *mut root::MediaItem>,
12808    pub AddProjectMarker: Option<
12809        unsafe extern "C" fn(
12810            proj: *mut root::ReaProject,
12811            isrgn: bool,
12812            pos: f64,
12813            rgnend: f64,
12814            name: *const ::std::os::raw::c_char,
12815            wantidx: ::std::os::raw::c_int,
12816        ) -> ::std::os::raw::c_int,
12817    >,
12818    pub AddProjectMarker2: Option<
12819        unsafe extern "C" fn(
12820            proj: *mut root::ReaProject,
12821            isrgn: bool,
12822            pos: f64,
12823            rgnend: f64,
12824            name: *const ::std::os::raw::c_char,
12825            wantidx: ::std::os::raw::c_int,
12826            color: ::std::os::raw::c_int,
12827        ) -> ::std::os::raw::c_int,
12828    >,
12829    pub AddRemoveReaScript: Option<
12830        unsafe extern "C" fn(
12831            add: bool,
12832            sectionID: ::std::os::raw::c_int,
12833            scriptfn: *const ::std::os::raw::c_char,
12834            commit: bool,
12835        ) -> ::std::os::raw::c_int,
12836    >,
12837    pub AddTakeToMediaItem:
12838        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> *mut root::MediaItem_Take>,
12839    pub AddTempoTimeSigMarker: Option<
12840        unsafe extern "C" fn(
12841            proj: *mut root::ReaProject,
12842            timepos: f64,
12843            bpm: f64,
12844            timesig_num: ::std::os::raw::c_int,
12845            timesig_denom: ::std::os::raw::c_int,
12846            lineartempochange: bool,
12847        ) -> bool,
12848    >,
12849    pub adjustZoom: Option<
12850        extern "C" fn(
12851            amt: f64,
12852            forceset: ::std::os::raw::c_int,
12853            doupd: bool,
12854            centermode: ::std::os::raw::c_int,
12855        ),
12856    >,
12857    pub AnyTrackSolo: Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> bool>,
12858    pub APIExists:
12859        Option<unsafe extern "C" fn(function_name: *const ::std::os::raw::c_char) -> bool>,
12860    pub APITest: Option<extern "C" fn()>,
12861    pub ApplyNudge: Option<
12862        unsafe extern "C" fn(
12863            project: *mut root::ReaProject,
12864            nudgeflag: ::std::os::raw::c_int,
12865            nudgewhat: ::std::os::raw::c_int,
12866            nudgeunits: ::std::os::raw::c_int,
12867            value: f64,
12868            reverse: bool,
12869            copies: ::std::os::raw::c_int,
12870        ) -> bool,
12871    >,
12872    pub ArmCommand: Option<
12873        unsafe extern "C" fn(
12874            cmd: ::std::os::raw::c_int,
12875            sectionname: *const ::std::os::raw::c_char,
12876        ),
12877    >,
12878    pub Audio_Init: Option<extern "C" fn()>,
12879    pub Audio_IsPreBuffer: Option<extern "C" fn() -> ::std::os::raw::c_int>,
12880    pub Audio_IsRunning: Option<extern "C" fn() -> ::std::os::raw::c_int>,
12881    pub Audio_Quit: Option<extern "C" fn()>,
12882    pub Audio_RegHardwareHook: Option<
12883        unsafe extern "C" fn(
12884            isAdd: bool,
12885            reg: *mut root::audio_hook_register_t,
12886        ) -> ::std::os::raw::c_int,
12887    >,
12888    pub AudioAccessorStateChanged:
12889        Option<unsafe extern "C" fn(accessor: *mut root::reaper_functions::AudioAccessor) -> bool>,
12890    pub AudioAccessorUpdate:
12891        Option<unsafe extern "C" fn(accessor: *mut root::reaper_functions::AudioAccessor)>,
12892    pub AudioAccessorValidateState:
12893        Option<unsafe extern "C" fn(accessor: *mut root::reaper_functions::AudioAccessor) -> bool>,
12894    pub BypassFxAllTracks: Option<extern "C" fn(bypass: ::std::os::raw::c_int)>,
12895    pub CalculatePeaks: Option<
12896        unsafe extern "C" fn(
12897            srcBlock: *mut root::PCM_source_transfer_t,
12898            pksBlock: *mut root::PCM_source_peaktransfer_t,
12899        ) -> ::std::os::raw::c_int,
12900    >,
12901    pub CalculatePeaksFloatSrcPtr: Option<
12902        unsafe extern "C" fn(
12903            srcBlock: *mut root::PCM_source_transfer_t,
12904            pksBlock: *mut root::PCM_source_peaktransfer_t,
12905        ) -> ::std::os::raw::c_int,
12906    >,
12907    pub ClearAllRecArmed: Option<extern "C" fn()>,
12908    pub ClearConsole: Option<extern "C" fn()>,
12909    pub ClearPeakCache: Option<extern "C" fn()>,
12910    pub ColorFromNative: Option<
12911        unsafe extern "C" fn(
12912            col: ::std::os::raw::c_int,
12913            rOut: *mut ::std::os::raw::c_int,
12914            gOut: *mut ::std::os::raw::c_int,
12915            bOut: *mut ::std::os::raw::c_int,
12916        ),
12917    >,
12918    pub ColorToNative: Option<
12919        extern "C" fn(
12920            r: ::std::os::raw::c_int,
12921            g: ::std::os::raw::c_int,
12922            b: ::std::os::raw::c_int,
12923        ) -> ::std::os::raw::c_int,
12924    >,
12925    pub CountActionShortcuts: Option<
12926        unsafe extern "C" fn(
12927            section: *mut root::KbdSectionInfo,
12928            cmdID: ::std::os::raw::c_int,
12929        ) -> ::std::os::raw::c_int,
12930    >,
12931    pub CountAutomationItems:
12932        Option<unsafe extern "C" fn(env: *mut root::TrackEnvelope) -> ::std::os::raw::c_int>,
12933    pub CountEnvelopePoints:
12934        Option<unsafe extern "C" fn(envelope: *mut root::TrackEnvelope) -> ::std::os::raw::c_int>,
12935    pub CountEnvelopePointsEx: Option<
12936        unsafe extern "C" fn(
12937            envelope: *mut root::TrackEnvelope,
12938            autoitem_idx: ::std::os::raw::c_int,
12939        ) -> ::std::os::raw::c_int,
12940    >,
12941    pub CountMediaItems:
12942        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
12943    pub CountProjectMarkers: Option<
12944        unsafe extern "C" fn(
12945            proj: *mut root::ReaProject,
12946            num_markersOut: *mut ::std::os::raw::c_int,
12947            num_regionsOut: *mut ::std::os::raw::c_int,
12948        ) -> ::std::os::raw::c_int,
12949    >,
12950    pub CountSelectedMediaItems:
12951        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
12952    pub CountSelectedTracks:
12953        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
12954    pub CountSelectedTracks2: Option<
12955        unsafe extern "C" fn(
12956            proj: *mut root::ReaProject,
12957            wantmaster: bool,
12958        ) -> ::std::os::raw::c_int,
12959    >,
12960    pub CountTakeEnvelopes:
12961        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> ::std::os::raw::c_int>,
12962    pub CountTakes:
12963        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> ::std::os::raw::c_int>,
12964    pub CountTCPFXParms: Option<
12965        unsafe extern "C" fn(
12966            project: *mut root::ReaProject,
12967            track: *mut root::MediaTrack,
12968        ) -> ::std::os::raw::c_int,
12969    >,
12970    pub CountTempoTimeSigMarkers:
12971        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
12972    pub CountTrackEnvelopes:
12973        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
12974    pub CountTrackMediaItems:
12975        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
12976    pub CountTracks:
12977        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
12978    pub CreateLocalOscHandler: Option<
12979        unsafe extern "C" fn(
12980            obj: *mut ::std::os::raw::c_void,
12981            callback: *mut ::std::os::raw::c_void,
12982        ) -> *mut ::std::os::raw::c_void,
12983    >,
12984    pub CreateMIDIInput: Option<extern "C" fn(dev: ::std::os::raw::c_int) -> *mut root::midi_Input>,
12985    pub CreateMIDIOutput: Option<
12986        unsafe extern "C" fn(
12987            dev: ::std::os::raw::c_int,
12988            streamMode: bool,
12989            msoffset100: *mut ::std::os::raw::c_int,
12990        ) -> *mut root::midi_Output,
12991    >,
12992    pub CreateNewMIDIItemInProj: Option<
12993        unsafe extern "C" fn(
12994            track: *mut root::MediaTrack,
12995            starttime: f64,
12996            endtime: f64,
12997            qnInOptional: *const bool,
12998        ) -> *mut root::MediaItem,
12999    >,
13000    pub CreateTakeAudioAccessor: Option<
13001        unsafe extern "C" fn(
13002            take: *mut root::MediaItem_Take,
13003        ) -> *mut root::reaper_functions::AudioAccessor,
13004    >,
13005    pub CreateTrackAudioAccessor: Option<
13006        unsafe extern "C" fn(
13007            track: *mut root::MediaTrack,
13008        ) -> *mut root::reaper_functions::AudioAccessor,
13009    >,
13010    pub CreateTrackSend: Option<
13011        unsafe extern "C" fn(
13012            tr: *mut root::MediaTrack,
13013            desttrInOptional: *mut root::MediaTrack,
13014        ) -> ::std::os::raw::c_int,
13015    >,
13016    pub CSurf_FlushUndo: Option<extern "C" fn(force: bool)>,
13017    pub CSurf_GetTouchState: Option<
13018        unsafe extern "C" fn(trackid: *mut root::MediaTrack, isPan: ::std::os::raw::c_int) -> bool,
13019    >,
13020    pub CSurf_GoEnd: Option<extern "C" fn()>,
13021    pub CSurf_GoStart: Option<extern "C" fn()>,
13022    pub CSurf_NumTracks: Option<extern "C" fn(mcpView: bool) -> ::std::os::raw::c_int>,
13023    pub CSurf_OnArrow: Option<extern "C" fn(whichdir: ::std::os::raw::c_int, wantzoom: bool)>,
13024    pub CSurf_OnFwd: Option<extern "C" fn(seekplay: ::std::os::raw::c_int)>,
13025    pub CSurf_OnFXChange: Option<
13026        unsafe extern "C" fn(trackid: *mut root::MediaTrack, en: ::std::os::raw::c_int) -> bool,
13027    >,
13028    pub CSurf_OnInputMonitorChange: Option<
13029        unsafe extern "C" fn(
13030            trackid: *mut root::MediaTrack,
13031            monitor: ::std::os::raw::c_int,
13032        ) -> ::std::os::raw::c_int,
13033    >,
13034    pub CSurf_OnInputMonitorChangeEx: Option<
13035        unsafe extern "C" fn(
13036            trackid: *mut root::MediaTrack,
13037            monitor: ::std::os::raw::c_int,
13038            allowgang: bool,
13039        ) -> ::std::os::raw::c_int,
13040    >,
13041    pub CSurf_OnMuteChange: Option<
13042        unsafe extern "C" fn(trackid: *mut root::MediaTrack, mute: ::std::os::raw::c_int) -> bool,
13043    >,
13044    pub CSurf_OnMuteChangeEx: Option<
13045        unsafe extern "C" fn(
13046            trackid: *mut root::MediaTrack,
13047            mute: ::std::os::raw::c_int,
13048            allowgang: bool,
13049        ) -> bool,
13050    >,
13051    pub CSurf_OnOscControlMessage:
13052        Option<unsafe extern "C" fn(msg: *const ::std::os::raw::c_char, arg: *const f32)>,
13053    pub CSurf_OnPanChange: Option<
13054        unsafe extern "C" fn(trackid: *mut root::MediaTrack, pan: f64, relative: bool) -> f64,
13055    >,
13056    pub CSurf_OnPanChangeEx: Option<
13057        unsafe extern "C" fn(
13058            trackid: *mut root::MediaTrack,
13059            pan: f64,
13060            relative: bool,
13061            allowGang: bool,
13062        ) -> f64,
13063    >,
13064    pub CSurf_OnPause: Option<extern "C" fn()>,
13065    pub CSurf_OnPlay: Option<extern "C" fn()>,
13066    pub CSurf_OnPlayRateChange: Option<extern "C" fn(playrate: f64)>,
13067    pub CSurf_OnRecArmChange: Option<
13068        unsafe extern "C" fn(trackid: *mut root::MediaTrack, recarm: ::std::os::raw::c_int) -> bool,
13069    >,
13070    pub CSurf_OnRecArmChangeEx: Option<
13071        unsafe extern "C" fn(
13072            trackid: *mut root::MediaTrack,
13073            recarm: ::std::os::raw::c_int,
13074            allowgang: bool,
13075        ) -> bool,
13076    >,
13077    pub CSurf_OnRecord: Option<extern "C" fn()>,
13078    pub CSurf_OnRecvPanChange: Option<
13079        unsafe extern "C" fn(
13080            trackid: *mut root::MediaTrack,
13081            recv_index: ::std::os::raw::c_int,
13082            pan: f64,
13083            relative: bool,
13084        ) -> f64,
13085    >,
13086    pub CSurf_OnRecvVolumeChange: Option<
13087        unsafe extern "C" fn(
13088            trackid: *mut root::MediaTrack,
13089            recv_index: ::std::os::raw::c_int,
13090            volume: f64,
13091            relative: bool,
13092        ) -> f64,
13093    >,
13094    pub CSurf_OnRew: Option<extern "C" fn(seekplay: ::std::os::raw::c_int)>,
13095    pub CSurf_OnRewFwd:
13096        Option<extern "C" fn(seekplay: ::std::os::raw::c_int, dir: ::std::os::raw::c_int)>,
13097    pub CSurf_OnScroll:
13098        Option<extern "C" fn(xdir: ::std::os::raw::c_int, ydir: ::std::os::raw::c_int)>,
13099    pub CSurf_OnSelectedChange: Option<
13100        unsafe extern "C" fn(
13101            trackid: *mut root::MediaTrack,
13102            selected: ::std::os::raw::c_int,
13103        ) -> bool,
13104    >,
13105    pub CSurf_OnSendPanChange: Option<
13106        unsafe extern "C" fn(
13107            trackid: *mut root::MediaTrack,
13108            send_index: ::std::os::raw::c_int,
13109            pan: f64,
13110            relative: bool,
13111        ) -> f64,
13112    >,
13113    pub CSurf_OnSendVolumeChange: Option<
13114        unsafe extern "C" fn(
13115            trackid: *mut root::MediaTrack,
13116            send_index: ::std::os::raw::c_int,
13117            volume: f64,
13118            relative: bool,
13119        ) -> f64,
13120    >,
13121    pub CSurf_OnSoloChange: Option<
13122        unsafe extern "C" fn(trackid: *mut root::MediaTrack, solo: ::std::os::raw::c_int) -> bool,
13123    >,
13124    pub CSurf_OnSoloChangeEx: Option<
13125        unsafe extern "C" fn(
13126            trackid: *mut root::MediaTrack,
13127            solo: ::std::os::raw::c_int,
13128            allowgang: bool,
13129        ) -> bool,
13130    >,
13131    pub CSurf_OnStop: Option<extern "C" fn()>,
13132    pub CSurf_OnTempoChange: Option<extern "C" fn(bpm: f64)>,
13133    pub CSurf_OnTrackSelection: Option<unsafe extern "C" fn(trackid: *mut root::MediaTrack)>,
13134    pub CSurf_OnVolumeChange: Option<
13135        unsafe extern "C" fn(trackid: *mut root::MediaTrack, volume: f64, relative: bool) -> f64,
13136    >,
13137    pub CSurf_OnVolumeChangeEx: Option<
13138        unsafe extern "C" fn(
13139            trackid: *mut root::MediaTrack,
13140            volume: f64,
13141            relative: bool,
13142            allowGang: bool,
13143        ) -> f64,
13144    >,
13145    pub CSurf_OnWidthChange: Option<
13146        unsafe extern "C" fn(trackid: *mut root::MediaTrack, width: f64, relative: bool) -> f64,
13147    >,
13148    pub CSurf_OnWidthChangeEx: Option<
13149        unsafe extern "C" fn(
13150            trackid: *mut root::MediaTrack,
13151            width: f64,
13152            relative: bool,
13153            allowGang: bool,
13154        ) -> f64,
13155    >,
13156    pub CSurf_OnZoom:
13157        Option<extern "C" fn(xdir: ::std::os::raw::c_int, ydir: ::std::os::raw::c_int)>,
13158    pub CSurf_ResetAllCachedVolPanStates: Option<extern "C" fn()>,
13159    pub CSurf_ScrubAmt: Option<extern "C" fn(amt: f64)>,
13160    pub CSurf_SetAutoMode: Option<
13161        unsafe extern "C" fn(
13162            mode: ::std::os::raw::c_int,
13163            ignoresurf: *mut root::IReaperControlSurface,
13164        ),
13165    >,
13166    pub CSurf_SetPlayState: Option<
13167        unsafe extern "C" fn(
13168            play: bool,
13169            pause: bool,
13170            rec: bool,
13171            ignoresurf: *mut root::IReaperControlSurface,
13172        ),
13173    >,
13174    pub CSurf_SetRepeatState:
13175        Option<unsafe extern "C" fn(rep: bool, ignoresurf: *mut root::IReaperControlSurface)>,
13176    pub CSurf_SetSurfaceMute: Option<
13177        unsafe extern "C" fn(
13178            trackid: *mut root::MediaTrack,
13179            mute: bool,
13180            ignoresurf: *mut root::IReaperControlSurface,
13181        ),
13182    >,
13183    pub CSurf_SetSurfacePan: Option<
13184        unsafe extern "C" fn(
13185            trackid: *mut root::MediaTrack,
13186            pan: f64,
13187            ignoresurf: *mut root::IReaperControlSurface,
13188        ),
13189    >,
13190    pub CSurf_SetSurfaceRecArm: Option<
13191        unsafe extern "C" fn(
13192            trackid: *mut root::MediaTrack,
13193            recarm: bool,
13194            ignoresurf: *mut root::IReaperControlSurface,
13195        ),
13196    >,
13197    pub CSurf_SetSurfaceSelected: Option<
13198        unsafe extern "C" fn(
13199            trackid: *mut root::MediaTrack,
13200            selected: bool,
13201            ignoresurf: *mut root::IReaperControlSurface,
13202        ),
13203    >,
13204    pub CSurf_SetSurfaceSolo: Option<
13205        unsafe extern "C" fn(
13206            trackid: *mut root::MediaTrack,
13207            solo: bool,
13208            ignoresurf: *mut root::IReaperControlSurface,
13209        ),
13210    >,
13211    pub CSurf_SetSurfaceVolume: Option<
13212        unsafe extern "C" fn(
13213            trackid: *mut root::MediaTrack,
13214            volume: f64,
13215            ignoresurf: *mut root::IReaperControlSurface,
13216        ),
13217    >,
13218    pub CSurf_SetTrackListChange: Option<extern "C" fn()>,
13219    pub CSurf_TrackFromID:
13220        Option<extern "C" fn(idx: ::std::os::raw::c_int, mcpView: bool) -> *mut root::MediaTrack>,
13221    pub CSurf_TrackToID: Option<
13222        unsafe extern "C" fn(track: *mut root::MediaTrack, mcpView: bool) -> ::std::os::raw::c_int,
13223    >,
13224    pub DB2SLIDER: Option<extern "C" fn(x: f64) -> f64>,
13225    pub DeleteActionShortcut: Option<
13226        unsafe extern "C" fn(
13227            section: *mut root::KbdSectionInfo,
13228            cmdID: ::std::os::raw::c_int,
13229            shortcutidx: ::std::os::raw::c_int,
13230        ) -> bool,
13231    >,
13232    pub DeleteEnvelopePointEx: Option<
13233        unsafe extern "C" fn(
13234            envelope: *mut root::TrackEnvelope,
13235            autoitem_idx: ::std::os::raw::c_int,
13236            ptidx: ::std::os::raw::c_int,
13237        ) -> bool,
13238    >,
13239    pub DeleteEnvelopePointRange: Option<
13240        unsafe extern "C" fn(
13241            envelope: *mut root::TrackEnvelope,
13242            time_start: f64,
13243            time_end: f64,
13244        ) -> bool,
13245    >,
13246    pub DeleteEnvelopePointRangeEx: Option<
13247        unsafe extern "C" fn(
13248            envelope: *mut root::TrackEnvelope,
13249            autoitem_idx: ::std::os::raw::c_int,
13250            time_start: f64,
13251            time_end: f64,
13252        ) -> bool,
13253    >,
13254    pub DeleteExtState: Option<
13255        unsafe extern "C" fn(
13256            section: *const ::std::os::raw::c_char,
13257            key: *const ::std::os::raw::c_char,
13258            persist: bool,
13259        ),
13260    >,
13261    pub DeleteProjectMarker: Option<
13262        unsafe extern "C" fn(
13263            proj: *mut root::ReaProject,
13264            markrgnindexnumber: ::std::os::raw::c_int,
13265            isrgn: bool,
13266        ) -> bool,
13267    >,
13268    pub DeleteProjectMarkerByIndex: Option<
13269        unsafe extern "C" fn(
13270            proj: *mut root::ReaProject,
13271            markrgnidx: ::std::os::raw::c_int,
13272        ) -> bool,
13273    >,
13274    pub DeleteTakeStretchMarkers: Option<
13275        unsafe extern "C" fn(
13276            take: *mut root::MediaItem_Take,
13277            idx: ::std::os::raw::c_int,
13278            countInOptional: *const ::std::os::raw::c_int,
13279        ) -> ::std::os::raw::c_int,
13280    >,
13281    pub DeleteTempoTimeSigMarker: Option<
13282        unsafe extern "C" fn(
13283            project: *mut root::ReaProject,
13284            markerindex: ::std::os::raw::c_int,
13285        ) -> bool,
13286    >,
13287    pub DeleteTrack: Option<unsafe extern "C" fn(tr: *mut root::MediaTrack)>,
13288    pub DeleteTrackMediaItem:
13289        Option<unsafe extern "C" fn(tr: *mut root::MediaTrack, it: *mut root::MediaItem) -> bool>,
13290    pub DestroyAudioAccessor:
13291        Option<unsafe extern "C" fn(accessor: *mut root::reaper_functions::AudioAccessor)>,
13292    pub DestroyLocalOscHandler:
13293        Option<unsafe extern "C" fn(local_osc_handler: *mut ::std::os::raw::c_void)>,
13294    pub DoActionShortcutDialog: Option<
13295        unsafe extern "C" fn(
13296            hwnd: root::HWND,
13297            section: *mut root::KbdSectionInfo,
13298            cmdID: ::std::os::raw::c_int,
13299            shortcutidx: ::std::os::raw::c_int,
13300        ) -> bool,
13301    >,
13302    pub Dock_UpdateDockID: Option<
13303        unsafe extern "C" fn(
13304            ident_str: *const ::std::os::raw::c_char,
13305            whichDock: ::std::os::raw::c_int,
13306        ),
13307    >,
13308    pub DockGetPosition:
13309        Option<extern "C" fn(whichDock: ::std::os::raw::c_int) -> ::std::os::raw::c_int>,
13310    pub DockIsChildOfDock: Option<
13311        unsafe extern "C" fn(
13312            hwnd: root::HWND,
13313            isFloatingDockerOut: *mut bool,
13314        ) -> ::std::os::raw::c_int,
13315    >,
13316    pub DockWindowActivate: Option<extern "C" fn(hwnd: root::HWND)>,
13317    pub DockWindowAdd: Option<
13318        unsafe extern "C" fn(
13319            hwnd: root::HWND,
13320            name: *const ::std::os::raw::c_char,
13321            pos: ::std::os::raw::c_int,
13322            allowShow: bool,
13323        ),
13324    >,
13325    pub DockWindowAddEx: Option<
13326        unsafe extern "C" fn(
13327            hwnd: root::HWND,
13328            name: *const ::std::os::raw::c_char,
13329            identstr: *const ::std::os::raw::c_char,
13330            allowShow: bool,
13331        ),
13332    >,
13333    pub DockWindowRefresh: Option<extern "C" fn()>,
13334    pub DockWindowRefreshForHWND: Option<extern "C" fn(hwnd: root::HWND)>,
13335    pub DockWindowRemove: Option<extern "C" fn(hwnd: root::HWND)>,
13336    pub DuplicateCustomizableMenu: Option<
13337        unsafe extern "C" fn(
13338            srcmenu: *mut ::std::os::raw::c_void,
13339            destmenu: *mut ::std::os::raw::c_void,
13340        ) -> bool,
13341    >,
13342    pub EditTempoTimeSigMarker: Option<
13343        unsafe extern "C" fn(
13344            project: *mut root::ReaProject,
13345            markerindex: ::std::os::raw::c_int,
13346        ) -> bool,
13347    >,
13348    pub EnsureNotCompletelyOffscreen: Option<unsafe extern "C" fn(rInOut: *mut root::RECT)>,
13349    pub EnumerateFiles: Option<
13350        unsafe extern "C" fn(
13351            path: *const ::std::os::raw::c_char,
13352            fileindex: ::std::os::raw::c_int,
13353        ) -> *const ::std::os::raw::c_char,
13354    >,
13355    pub EnumerateSubdirectories: Option<
13356        unsafe extern "C" fn(
13357            path: *const ::std::os::raw::c_char,
13358            subdirindex: ::std::os::raw::c_int,
13359        ) -> *const ::std::os::raw::c_char,
13360    >,
13361    pub EnumPitchShiftModes: Option<
13362        unsafe extern "C" fn(
13363            mode: ::std::os::raw::c_int,
13364            strOut: *mut *const ::std::os::raw::c_char,
13365        ) -> bool,
13366    >,
13367    pub EnumPitchShiftSubModes: Option<
13368        extern "C" fn(
13369            mode: ::std::os::raw::c_int,
13370            submode: ::std::os::raw::c_int,
13371        ) -> *const ::std::os::raw::c_char,
13372    >,
13373    pub EnumProjectMarkers: Option<
13374        unsafe extern "C" fn(
13375            idx: ::std::os::raw::c_int,
13376            isrgnOut: *mut bool,
13377            posOut: *mut f64,
13378            rgnendOut: *mut f64,
13379            nameOut: *mut *const ::std::os::raw::c_char,
13380            markrgnindexnumberOut: *mut ::std::os::raw::c_int,
13381        ) -> ::std::os::raw::c_int,
13382    >,
13383    pub EnumProjectMarkers2: Option<
13384        unsafe extern "C" fn(
13385            proj: *mut root::ReaProject,
13386            idx: ::std::os::raw::c_int,
13387            isrgnOut: *mut bool,
13388            posOut: *mut f64,
13389            rgnendOut: *mut f64,
13390            nameOut: *mut *const ::std::os::raw::c_char,
13391            markrgnindexnumberOut: *mut ::std::os::raw::c_int,
13392        ) -> ::std::os::raw::c_int,
13393    >,
13394    pub EnumProjectMarkers3: Option<
13395        unsafe extern "C" fn(
13396            proj: *mut root::ReaProject,
13397            idx: ::std::os::raw::c_int,
13398            isrgnOut: *mut bool,
13399            posOut: *mut f64,
13400            rgnendOut: *mut f64,
13401            nameOut: *mut *const ::std::os::raw::c_char,
13402            markrgnindexnumberOut: *mut ::std::os::raw::c_int,
13403            colorOut: *mut ::std::os::raw::c_int,
13404        ) -> ::std::os::raw::c_int,
13405    >,
13406    pub EnumProjects: Option<
13407        unsafe extern "C" fn(
13408            idx: ::std::os::raw::c_int,
13409            projfnOutOptional: *mut ::std::os::raw::c_char,
13410            projfnOutOptional_sz: ::std::os::raw::c_int,
13411        ) -> *mut root::ReaProject,
13412    >,
13413    pub EnumProjExtState: Option<
13414        unsafe extern "C" fn(
13415            proj: *mut root::ReaProject,
13416            extname: *const ::std::os::raw::c_char,
13417            idx: ::std::os::raw::c_int,
13418            keyOutOptional: *mut ::std::os::raw::c_char,
13419            keyOutOptional_sz: ::std::os::raw::c_int,
13420            valOutOptional: *mut ::std::os::raw::c_char,
13421            valOutOptional_sz: ::std::os::raw::c_int,
13422        ) -> bool,
13423    >,
13424    pub EnumRegionRenderMatrix: Option<
13425        unsafe extern "C" fn(
13426            proj: *mut root::ReaProject,
13427            regionindex: ::std::os::raw::c_int,
13428            rendertrack: ::std::os::raw::c_int,
13429        ) -> *mut root::MediaTrack,
13430    >,
13431    pub EnumTrackMIDIProgramNames: Option<
13432        unsafe extern "C" fn(
13433            track: ::std::os::raw::c_int,
13434            programNumber: ::std::os::raw::c_int,
13435            programName: *mut ::std::os::raw::c_char,
13436            programName_sz: ::std::os::raw::c_int,
13437        ) -> bool,
13438    >,
13439    pub EnumTrackMIDIProgramNamesEx: Option<
13440        unsafe extern "C" fn(
13441            proj: *mut root::ReaProject,
13442            track: *mut root::MediaTrack,
13443            programNumber: ::std::os::raw::c_int,
13444            programName: *mut ::std::os::raw::c_char,
13445            programName_sz: ::std::os::raw::c_int,
13446        ) -> bool,
13447    >,
13448    pub Envelope_Evaluate: Option<
13449        unsafe extern "C" fn(
13450            envelope: *mut root::TrackEnvelope,
13451            time: f64,
13452            samplerate: f64,
13453            samplesRequested: ::std::os::raw::c_int,
13454            valueOutOptional: *mut f64,
13455            dVdSOutOptional: *mut f64,
13456            ddVdSOutOptional: *mut f64,
13457            dddVdSOutOptional: *mut f64,
13458        ) -> ::std::os::raw::c_int,
13459    >,
13460    pub Envelope_FormatValue: Option<
13461        unsafe extern "C" fn(
13462            env: *mut root::TrackEnvelope,
13463            value: f64,
13464            bufOut: *mut ::std::os::raw::c_char,
13465            bufOut_sz: ::std::os::raw::c_int,
13466        ),
13467    >,
13468    pub Envelope_GetParentTake: Option<
13469        unsafe extern "C" fn(
13470            env: *mut root::TrackEnvelope,
13471            indexOutOptional: *mut ::std::os::raw::c_int,
13472            index2OutOptional: *mut ::std::os::raw::c_int,
13473        ) -> *mut root::MediaItem_Take,
13474    >,
13475    pub Envelope_GetParentTrack: Option<
13476        unsafe extern "C" fn(
13477            env: *mut root::TrackEnvelope,
13478            indexOutOptional: *mut ::std::os::raw::c_int,
13479            index2OutOptional: *mut ::std::os::raw::c_int,
13480        ) -> *mut root::MediaTrack,
13481    >,
13482    pub Envelope_SortPoints:
13483        Option<unsafe extern "C" fn(envelope: *mut root::TrackEnvelope) -> bool>,
13484    pub Envelope_SortPointsEx: Option<
13485        unsafe extern "C" fn(
13486            envelope: *mut root::TrackEnvelope,
13487            autoitem_idx: ::std::os::raw::c_int,
13488        ) -> bool,
13489    >,
13490    pub ExecProcess: Option<
13491        unsafe extern "C" fn(
13492            cmdline: *const ::std::os::raw::c_char,
13493            timeoutmsec: ::std::os::raw::c_int,
13494        ) -> *const ::std::os::raw::c_char,
13495    >,
13496    pub file_exists: Option<unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> bool>,
13497    pub FindTempoTimeSigMarker: Option<
13498        unsafe extern "C" fn(project: *mut root::ReaProject, time: f64) -> ::std::os::raw::c_int,
13499    >,
13500    pub format_timestr: Option<
13501        unsafe extern "C" fn(
13502            tpos: f64,
13503            buf: *mut ::std::os::raw::c_char,
13504            buf_sz: ::std::os::raw::c_int,
13505        ),
13506    >,
13507    pub format_timestr_len: Option<
13508        unsafe extern "C" fn(
13509            tpos: f64,
13510            buf: *mut ::std::os::raw::c_char,
13511            buf_sz: ::std::os::raw::c_int,
13512            offset: f64,
13513            modeoverride: ::std::os::raw::c_int,
13514        ),
13515    >,
13516    pub format_timestr_pos: Option<
13517        unsafe extern "C" fn(
13518            tpos: f64,
13519            buf: *mut ::std::os::raw::c_char,
13520            buf_sz: ::std::os::raw::c_int,
13521            modeoverride: ::std::os::raw::c_int,
13522        ),
13523    >,
13524    pub FreeHeapPtr: Option<unsafe extern "C" fn(ptr: *mut ::std::os::raw::c_void)>,
13525    pub genGuid: Option<unsafe extern "C" fn(g: *mut root::GUID)>,
13526    pub get_config_var: Option<
13527        unsafe extern "C" fn(
13528            name: *const ::std::os::raw::c_char,
13529            szOut: *mut ::std::os::raw::c_int,
13530        ) -> *mut ::std::os::raw::c_void,
13531    >,
13532    pub get_config_var_string: Option<
13533        unsafe extern "C" fn(
13534            name: *const ::std::os::raw::c_char,
13535            bufOut: *mut ::std::os::raw::c_char,
13536            bufOut_sz: ::std::os::raw::c_int,
13537        ) -> bool,
13538    >,
13539    pub get_ini_file: Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
13540    pub get_midi_config_var: Option<
13541        unsafe extern "C" fn(
13542            name: *const ::std::os::raw::c_char,
13543            szOut: *mut ::std::os::raw::c_int,
13544        ) -> *mut ::std::os::raw::c_void,
13545    >,
13546    pub GetActionShortcutDesc: Option<
13547        unsafe extern "C" fn(
13548            section: *mut root::KbdSectionInfo,
13549            cmdID: ::std::os::raw::c_int,
13550            shortcutidx: ::std::os::raw::c_int,
13551            desc: *mut ::std::os::raw::c_char,
13552            desclen: ::std::os::raw::c_int,
13553        ) -> bool,
13554    >,
13555    pub GetActiveTake:
13556        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> *mut root::MediaItem_Take>,
13557    pub GetAllProjectPlayStates:
13558        Option<unsafe extern "C" fn(ignoreProject: *mut root::ReaProject) -> ::std::os::raw::c_int>,
13559    pub GetAppVersion: Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
13560    pub GetArmedCommand: Option<
13561        unsafe extern "C" fn(
13562            secOut: *mut ::std::os::raw::c_char,
13563            secOut_sz: ::std::os::raw::c_int,
13564        ) -> ::std::os::raw::c_int,
13565    >,
13566    pub GetAudioAccessorEndTime:
13567        Option<unsafe extern "C" fn(accessor: *mut root::reaper_functions::AudioAccessor) -> f64>,
13568    pub GetAudioAccessorHash: Option<
13569        unsafe extern "C" fn(
13570            accessor: *mut root::reaper_functions::AudioAccessor,
13571            hashNeed128: *mut ::std::os::raw::c_char,
13572        ),
13573    >,
13574    pub GetAudioAccessorSamples: Option<
13575        unsafe extern "C" fn(
13576            accessor: *mut root::reaper_functions::AudioAccessor,
13577            samplerate: ::std::os::raw::c_int,
13578            numchannels: ::std::os::raw::c_int,
13579            starttime_sec: f64,
13580            numsamplesperchannel: ::std::os::raw::c_int,
13581            samplebuffer: *mut f64,
13582        ) -> ::std::os::raw::c_int,
13583    >,
13584    pub GetAudioAccessorStartTime:
13585        Option<unsafe extern "C" fn(accessor: *mut root::reaper_functions::AudioAccessor) -> f64>,
13586    pub GetAudioDeviceInfo: Option<
13587        unsafe extern "C" fn(
13588            attribute: *const ::std::os::raw::c_char,
13589            desc: *mut ::std::os::raw::c_char,
13590            desc_sz: ::std::os::raw::c_int,
13591        ) -> bool,
13592    >,
13593    pub GetColorTheme: Option<
13594        extern "C" fn(idx: ::std::os::raw::c_int, defval: ::std::os::raw::c_int) -> root::INT_PTR,
13595    >,
13596    pub GetColorThemeStruct: Option<
13597        unsafe extern "C" fn(szOut: *mut ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void,
13598    >,
13599    pub GetConfigWantsDock: Option<
13600        unsafe extern "C" fn(ident_str: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
13601    >,
13602    pub GetContextMenu: Option<extern "C" fn(idx: ::std::os::raw::c_int) -> root::HMENU>,
13603    pub GetCurrentProjectInLoadSave: Option<extern "C" fn() -> *mut root::ReaProject>,
13604    pub GetCursorContext: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13605    pub GetCursorContext2: Option<extern "C" fn(want_last_valid: bool) -> ::std::os::raw::c_int>,
13606    pub GetCursorPosition: Option<extern "C" fn() -> f64>,
13607    pub GetCursorPositionEx: Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> f64>,
13608    pub GetDisplayedMediaItemColor:
13609        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> ::std::os::raw::c_int>,
13610    pub GetDisplayedMediaItemColor2: Option<
13611        unsafe extern "C" fn(
13612            item: *mut root::MediaItem,
13613            take: *mut root::MediaItem_Take,
13614        ) -> ::std::os::raw::c_int,
13615    >,
13616    pub GetEnvelopeInfo_Value: Option<
13617        unsafe extern "C" fn(
13618            tr: *mut root::TrackEnvelope,
13619            parmname: *const ::std::os::raw::c_char,
13620        ) -> f64,
13621    >,
13622    pub GetEnvelopeName: Option<
13623        unsafe extern "C" fn(
13624            env: *mut root::TrackEnvelope,
13625            bufOut: *mut ::std::os::raw::c_char,
13626            bufOut_sz: ::std::os::raw::c_int,
13627        ) -> bool,
13628    >,
13629    pub GetEnvelopePoint: Option<
13630        unsafe extern "C" fn(
13631            envelope: *mut root::TrackEnvelope,
13632            ptidx: ::std::os::raw::c_int,
13633            timeOutOptional: *mut f64,
13634            valueOutOptional: *mut f64,
13635            shapeOutOptional: *mut ::std::os::raw::c_int,
13636            tensionOutOptional: *mut f64,
13637            selectedOutOptional: *mut bool,
13638        ) -> bool,
13639    >,
13640    pub GetEnvelopePointByTime: Option<
13641        unsafe extern "C" fn(
13642            envelope: *mut root::TrackEnvelope,
13643            time: f64,
13644        ) -> ::std::os::raw::c_int,
13645    >,
13646    pub GetEnvelopePointByTimeEx: Option<
13647        unsafe extern "C" fn(
13648            envelope: *mut root::TrackEnvelope,
13649            autoitem_idx: ::std::os::raw::c_int,
13650            time: f64,
13651        ) -> ::std::os::raw::c_int,
13652    >,
13653    pub GetEnvelopePointEx: Option<
13654        unsafe extern "C" fn(
13655            envelope: *mut root::TrackEnvelope,
13656            autoitem_idx: ::std::os::raw::c_int,
13657            ptidx: ::std::os::raw::c_int,
13658            timeOutOptional: *mut f64,
13659            valueOutOptional: *mut f64,
13660            shapeOutOptional: *mut ::std::os::raw::c_int,
13661            tensionOutOptional: *mut f64,
13662            selectedOutOptional: *mut bool,
13663        ) -> bool,
13664    >,
13665    pub GetEnvelopeScalingMode:
13666        Option<unsafe extern "C" fn(env: *mut root::TrackEnvelope) -> ::std::os::raw::c_int>,
13667    pub GetEnvelopeStateChunk: Option<
13668        unsafe extern "C" fn(
13669            env: *mut root::TrackEnvelope,
13670            strNeedBig: *mut ::std::os::raw::c_char,
13671            strNeedBig_sz: ::std::os::raw::c_int,
13672            isundoOptional: bool,
13673        ) -> bool,
13674    >,
13675    pub GetExePath: Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
13676    pub GetExtState: Option<
13677        unsafe extern "C" fn(
13678            section: *const ::std::os::raw::c_char,
13679            key: *const ::std::os::raw::c_char,
13680        ) -> *const ::std::os::raw::c_char,
13681    >,
13682    pub GetFocusedFX: Option<
13683        unsafe extern "C" fn(
13684            tracknumberOut: *mut ::std::os::raw::c_int,
13685            itemnumberOut: *mut ::std::os::raw::c_int,
13686            fxnumberOut: *mut ::std::os::raw::c_int,
13687        ) -> ::std::os::raw::c_int,
13688    >,
13689    pub GetFreeDiskSpaceForRecordPath: Option<
13690        unsafe extern "C" fn(
13691            proj: *mut root::ReaProject,
13692            pathidx: ::std::os::raw::c_int,
13693        ) -> ::std::os::raw::c_int,
13694    >,
13695    pub GetFXEnvelope: Option<
13696        unsafe extern "C" fn(
13697            track: *mut root::MediaTrack,
13698            fxindex: ::std::os::raw::c_int,
13699            parameterindex: ::std::os::raw::c_int,
13700            create: bool,
13701        ) -> *mut root::TrackEnvelope,
13702    >,
13703    pub GetGlobalAutomationOverride: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13704    pub GetHZoomLevel: Option<extern "C" fn() -> f64>,
13705    pub GetIconThemePointer: Option<
13706        unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
13707    >,
13708    pub GetIconThemePointerForDPI: Option<
13709        unsafe extern "C" fn(
13710            name: *const ::std::os::raw::c_char,
13711            dpisc: ::std::os::raw::c_int,
13712        ) -> *mut ::std::os::raw::c_void,
13713    >,
13714    pub GetIconThemeStruct: Option<
13715        unsafe extern "C" fn(szOut: *mut ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void,
13716    >,
13717    pub GetInputChannelName:
13718        Option<extern "C" fn(channelIndex: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char>,
13719    pub GetInputOutputLatency: Option<
13720        unsafe extern "C" fn(
13721            inputlatencyOut: *mut ::std::os::raw::c_int,
13722            outputLatencyOut: *mut ::std::os::raw::c_int,
13723        ),
13724    >,
13725    pub GetItemEditingTime2: Option<
13726        unsafe extern "C" fn(
13727            which_itemOut: *mut *mut root::PCM_source,
13728            flagsOut: *mut ::std::os::raw::c_int,
13729        ) -> f64,
13730    >,
13731    pub GetItemFromPoint: Option<
13732        unsafe extern "C" fn(
13733            screen_x: ::std::os::raw::c_int,
13734            screen_y: ::std::os::raw::c_int,
13735            allow_locked: bool,
13736            takeOutOptional: *mut *mut root::MediaItem_Take,
13737        ) -> *mut root::MediaItem,
13738    >,
13739    pub GetItemProjectContext:
13740        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> *mut root::ReaProject>,
13741    pub GetItemStateChunk: Option<
13742        unsafe extern "C" fn(
13743            item: *mut root::MediaItem,
13744            strNeedBig: *mut ::std::os::raw::c_char,
13745            strNeedBig_sz: ::std::os::raw::c_int,
13746            isundoOptional: bool,
13747        ) -> bool,
13748    >,
13749    pub GetLastColorThemeFile: Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
13750    pub GetLastMarkerAndCurRegion: Option<
13751        unsafe extern "C" fn(
13752            proj: *mut root::ReaProject,
13753            time: f64,
13754            markeridxOut: *mut ::std::os::raw::c_int,
13755            regionidxOut: *mut ::std::os::raw::c_int,
13756        ),
13757    >,
13758    pub GetLastTouchedFX: Option<
13759        unsafe extern "C" fn(
13760            tracknumberOut: *mut ::std::os::raw::c_int,
13761            fxnumberOut: *mut ::std::os::raw::c_int,
13762            paramnumberOut: *mut ::std::os::raw::c_int,
13763        ) -> bool,
13764    >,
13765    pub GetLastTouchedTrack: Option<extern "C" fn() -> *mut root::MediaTrack>,
13766    pub GetMainHwnd: Option<extern "C" fn() -> root::HWND>,
13767    pub GetMasterMuteSoloFlags: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13768    pub GetMasterTrack:
13769        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> *mut root::MediaTrack>,
13770    pub GetMasterTrackVisibility: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13771    pub GetMaxMidiInputs: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13772    pub GetMaxMidiOutputs: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13773    pub GetMediaItem: Option<
13774        unsafe extern "C" fn(
13775            proj: *mut root::ReaProject,
13776            itemidx: ::std::os::raw::c_int,
13777        ) -> *mut root::MediaItem,
13778    >,
13779    pub GetMediaItem_Track:
13780        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> *mut root::MediaTrack>,
13781    pub GetMediaItemInfo_Value: Option<
13782        unsafe extern "C" fn(
13783            item: *mut root::MediaItem,
13784            parmname: *const ::std::os::raw::c_char,
13785        ) -> f64,
13786    >,
13787    pub GetMediaItemNumTakes:
13788        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> ::std::os::raw::c_int>,
13789    pub GetMediaItemTake: Option<
13790        unsafe extern "C" fn(
13791            item: *mut root::MediaItem,
13792            tk: ::std::os::raw::c_int,
13793        ) -> *mut root::MediaItem_Take,
13794    >,
13795    pub GetMediaItemTake_Item:
13796        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> *mut root::MediaItem>,
13797    pub GetMediaItemTake_Peaks: Option<
13798        unsafe extern "C" fn(
13799            take: *mut root::MediaItem_Take,
13800            peakrate: f64,
13801            starttime: f64,
13802            numchannels: ::std::os::raw::c_int,
13803            numsamplesperchannel: ::std::os::raw::c_int,
13804            want_extra_type: ::std::os::raw::c_int,
13805            buf: *mut f64,
13806        ) -> ::std::os::raw::c_int,
13807    >,
13808    pub GetMediaItemTake_Source:
13809        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> *mut root::PCM_source>,
13810    pub GetMediaItemTake_Track:
13811        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> *mut root::MediaTrack>,
13812    pub GetMediaItemTakeByGUID: Option<
13813        unsafe extern "C" fn(
13814            project: *mut root::ReaProject,
13815            guid: *const root::GUID,
13816        ) -> *mut root::MediaItem_Take,
13817    >,
13818    pub GetMediaItemTakeInfo_Value: Option<
13819        unsafe extern "C" fn(
13820            take: *mut root::MediaItem_Take,
13821            parmname: *const ::std::os::raw::c_char,
13822        ) -> f64,
13823    >,
13824    pub GetMediaItemTrack:
13825        Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> *mut root::MediaTrack>,
13826    pub GetMediaSourceFileName: Option<
13827        unsafe extern "C" fn(
13828            source: *mut root::PCM_source,
13829            filenamebuf: *mut ::std::os::raw::c_char,
13830            filenamebuf_sz: ::std::os::raw::c_int,
13831        ),
13832    >,
13833    pub GetMediaSourceLength: Option<
13834        unsafe extern "C" fn(source: *mut root::PCM_source, lengthIsQNOut: *mut bool) -> f64,
13835    >,
13836    pub GetMediaSourceNumChannels:
13837        Option<unsafe extern "C" fn(source: *mut root::PCM_source) -> ::std::os::raw::c_int>,
13838    pub GetMediaSourceParent:
13839        Option<unsafe extern "C" fn(src: *mut root::PCM_source) -> *mut root::PCM_source>,
13840    pub GetMediaSourceSampleRate:
13841        Option<unsafe extern "C" fn(source: *mut root::PCM_source) -> ::std::os::raw::c_int>,
13842    pub GetMediaSourceType: Option<
13843        unsafe extern "C" fn(
13844            source: *mut root::PCM_source,
13845            typebuf: *mut ::std::os::raw::c_char,
13846            typebuf_sz: ::std::os::raw::c_int,
13847        ),
13848    >,
13849    pub GetMediaTrackInfo_Value: Option<
13850        unsafe extern "C" fn(
13851            tr: *mut root::MediaTrack,
13852            parmname: *const ::std::os::raw::c_char,
13853        ) -> f64,
13854    >,
13855    pub GetMIDIInputName: Option<
13856        unsafe extern "C" fn(
13857            dev: ::std::os::raw::c_int,
13858            nameout: *mut ::std::os::raw::c_char,
13859            nameout_sz: ::std::os::raw::c_int,
13860        ) -> bool,
13861    >,
13862    pub GetMIDIOutputName: Option<
13863        unsafe extern "C" fn(
13864            dev: ::std::os::raw::c_int,
13865            nameout: *mut ::std::os::raw::c_char,
13866            nameout_sz: ::std::os::raw::c_int,
13867        ) -> bool,
13868    >,
13869    pub GetMixerScroll: Option<extern "C" fn() -> *mut root::MediaTrack>,
13870    pub GetMouseModifier: Option<
13871        unsafe extern "C" fn(
13872            context: *const ::std::os::raw::c_char,
13873            modifier_flag: ::std::os::raw::c_int,
13874            action: *mut ::std::os::raw::c_char,
13875            action_sz: ::std::os::raw::c_int,
13876        ),
13877    >,
13878    pub GetMousePosition: Option<
13879        unsafe extern "C" fn(xOut: *mut ::std::os::raw::c_int, yOut: *mut ::std::os::raw::c_int),
13880    >,
13881    pub GetNumAudioInputs: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13882    pub GetNumAudioOutputs: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13883    pub GetNumMIDIInputs: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13884    pub GetNumMIDIOutputs: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13885    pub GetNumTracks: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13886    pub GetOS: Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
13887    pub GetOutputChannelName:
13888        Option<extern "C" fn(channelIndex: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char>,
13889    pub GetOutputLatency: Option<extern "C" fn() -> f64>,
13890    pub GetParentTrack:
13891        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> *mut root::MediaTrack>,
13892    pub GetPeakFileName: Option<
13893        unsafe extern "C" fn(
13894            fn_: *const ::std::os::raw::c_char,
13895            buf: *mut ::std::os::raw::c_char,
13896            buf_sz: ::std::os::raw::c_int,
13897        ),
13898    >,
13899    pub GetPeakFileNameEx: Option<
13900        unsafe extern "C" fn(
13901            fn_: *const ::std::os::raw::c_char,
13902            buf: *mut ::std::os::raw::c_char,
13903            buf_sz: ::std::os::raw::c_int,
13904            forWrite: bool,
13905        ),
13906    >,
13907    pub GetPeakFileNameEx2: Option<
13908        unsafe extern "C" fn(
13909            fn_: *const ::std::os::raw::c_char,
13910            buf: *mut ::std::os::raw::c_char,
13911            buf_sz: ::std::os::raw::c_int,
13912            forWrite: bool,
13913            peaksfileextension: *const ::std::os::raw::c_char,
13914        ),
13915    >,
13916    pub GetPeaksBitmap: Option<
13917        unsafe extern "C" fn(
13918            pks: *mut root::PCM_source_peaktransfer_t,
13919            maxamp: f64,
13920            w: ::std::os::raw::c_int,
13921            h: ::std::os::raw::c_int,
13922            bmp: *mut root::reaper_functions::LICE_IBitmap,
13923        ) -> *mut ::std::os::raw::c_void,
13924    >,
13925    pub GetPlayPosition: Option<extern "C" fn() -> f64>,
13926    pub GetPlayPosition2: Option<extern "C" fn() -> f64>,
13927    pub GetPlayPosition2Ex: Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> f64>,
13928    pub GetPlayPositionEx: Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> f64>,
13929    pub GetPlayState: Option<extern "C" fn() -> ::std::os::raw::c_int>,
13930    pub GetPlayStateEx:
13931        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
13932    pub GetPreferredDiskReadMode: Option<
13933        unsafe extern "C" fn(
13934            mode: *mut ::std::os::raw::c_int,
13935            nb: *mut ::std::os::raw::c_int,
13936            bs: *mut ::std::os::raw::c_int,
13937        ),
13938    >,
13939    pub GetPreferredDiskReadModePeak: Option<
13940        unsafe extern "C" fn(
13941            mode: *mut ::std::os::raw::c_int,
13942            nb: *mut ::std::os::raw::c_int,
13943            bs: *mut ::std::os::raw::c_int,
13944        ),
13945    >,
13946    pub GetPreferredDiskWriteMode: Option<
13947        unsafe extern "C" fn(
13948            mode: *mut ::std::os::raw::c_int,
13949            nb: *mut ::std::os::raw::c_int,
13950            bs: *mut ::std::os::raw::c_int,
13951        ),
13952    >,
13953    pub GetProjectLength: Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> f64>,
13954    pub GetProjectName: Option<
13955        unsafe extern "C" fn(
13956            proj: *mut root::ReaProject,
13957            buf: *mut ::std::os::raw::c_char,
13958            buf_sz: ::std::os::raw::c_int,
13959        ),
13960    >,
13961    pub GetProjectPath: Option<
13962        unsafe extern "C" fn(buf: *mut ::std::os::raw::c_char, buf_sz: ::std::os::raw::c_int),
13963    >,
13964    pub GetProjectPathEx: Option<
13965        unsafe extern "C" fn(
13966            proj: *mut root::ReaProject,
13967            buf: *mut ::std::os::raw::c_char,
13968            buf_sz: ::std::os::raw::c_int,
13969        ),
13970    >,
13971    pub GetProjectStateChangeCount:
13972        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
13973    pub GetProjectTimeOffset:
13974        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, rndframe: bool) -> f64>,
13975    pub GetProjectTimeSignature: Option<unsafe extern "C" fn(bpmOut: *mut f64, bpiOut: *mut f64)>,
13976    pub GetProjectTimeSignature2: Option<
13977        unsafe extern "C" fn(proj: *mut root::ReaProject, bpmOut: *mut f64, bpiOut: *mut f64),
13978    >,
13979    pub GetProjExtState: Option<
13980        unsafe extern "C" fn(
13981            proj: *mut root::ReaProject,
13982            extname: *const ::std::os::raw::c_char,
13983            key: *const ::std::os::raw::c_char,
13984            valOutNeedBig: *mut ::std::os::raw::c_char,
13985            valOutNeedBig_sz: ::std::os::raw::c_int,
13986        ) -> ::std::os::raw::c_int,
13987    >,
13988    pub GetResourcePath: Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
13989    pub GetSelectedEnvelope:
13990        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> *mut root::TrackEnvelope>,
13991    pub GetSelectedMediaItem: Option<
13992        unsafe extern "C" fn(
13993            proj: *mut root::ReaProject,
13994            selitem: ::std::os::raw::c_int,
13995        ) -> *mut root::MediaItem,
13996    >,
13997    pub GetSelectedTrack: Option<
13998        unsafe extern "C" fn(
13999            proj: *mut root::ReaProject,
14000            seltrackidx: ::std::os::raw::c_int,
14001        ) -> *mut root::MediaTrack,
14002    >,
14003    pub GetSelectedTrack2: Option<
14004        unsafe extern "C" fn(
14005            proj: *mut root::ReaProject,
14006            seltrackidx: ::std::os::raw::c_int,
14007            wantmaster: bool,
14008        ) -> *mut root::MediaTrack,
14009    >,
14010    pub GetSelectedTrackEnvelope:
14011        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> *mut root::TrackEnvelope>,
14012    pub GetSet_ArrangeView2: Option<
14013        unsafe extern "C" fn(
14014            proj: *mut root::ReaProject,
14015            isSet: bool,
14016            screen_x_start: ::std::os::raw::c_int,
14017            screen_x_end: ::std::os::raw::c_int,
14018            start_timeOut: *mut f64,
14019            end_timeOut: *mut f64,
14020        ),
14021    >,
14022    pub GetSet_LoopTimeRange: Option<
14023        unsafe extern "C" fn(
14024            isSet: bool,
14025            isLoop: bool,
14026            startOut: *mut f64,
14027            endOut: *mut f64,
14028            allowautoseek: bool,
14029        ),
14030    >,
14031    pub GetSet_LoopTimeRange2: Option<
14032        unsafe extern "C" fn(
14033            proj: *mut root::ReaProject,
14034            isSet: bool,
14035            isLoop: bool,
14036            startOut: *mut f64,
14037            endOut: *mut f64,
14038            allowautoseek: bool,
14039        ),
14040    >,
14041    pub GetSetAutomationItemInfo: Option<
14042        unsafe extern "C" fn(
14043            env: *mut root::TrackEnvelope,
14044            autoitem_idx: ::std::os::raw::c_int,
14045            desc: *const ::std::os::raw::c_char,
14046            value: f64,
14047            is_set: bool,
14048        ) -> f64,
14049    >,
14050    pub GetSetAutomationItemInfo_String: Option<
14051        unsafe extern "C" fn(
14052            env: *mut root::TrackEnvelope,
14053            autoitem_idx: ::std::os::raw::c_int,
14054            desc: *const ::std::os::raw::c_char,
14055            valuestrNeedBig: *mut ::std::os::raw::c_char,
14056            is_set: bool,
14057        ) -> bool,
14058    >,
14059    pub GetSetEnvelopeInfo_String: Option<
14060        unsafe extern "C" fn(
14061            env: *mut root::TrackEnvelope,
14062            parmname: *const ::std::os::raw::c_char,
14063            stringNeedBig: *mut ::std::os::raw::c_char,
14064            setNewValue: bool,
14065        ) -> bool,
14066    >,
14067    pub GetSetEnvelopeState: Option<
14068        unsafe extern "C" fn(
14069            env: *mut root::TrackEnvelope,
14070            str: *mut ::std::os::raw::c_char,
14071            str_sz: ::std::os::raw::c_int,
14072        ) -> bool,
14073    >,
14074    pub GetSetEnvelopeState2: Option<
14075        unsafe extern "C" fn(
14076            env: *mut root::TrackEnvelope,
14077            str: *mut ::std::os::raw::c_char,
14078            str_sz: ::std::os::raw::c_int,
14079            isundo: bool,
14080        ) -> bool,
14081    >,
14082    pub GetSetItemState: Option<
14083        unsafe extern "C" fn(
14084            item: *mut root::MediaItem,
14085            str: *mut ::std::os::raw::c_char,
14086            str_sz: ::std::os::raw::c_int,
14087        ) -> bool,
14088    >,
14089    pub GetSetItemState2: Option<
14090        unsafe extern "C" fn(
14091            item: *mut root::MediaItem,
14092            str: *mut ::std::os::raw::c_char,
14093            str_sz: ::std::os::raw::c_int,
14094            isundo: bool,
14095        ) -> bool,
14096    >,
14097    pub GetSetMediaItemInfo: Option<
14098        unsafe extern "C" fn(
14099            item: *mut root::MediaItem,
14100            parmname: *const ::std::os::raw::c_char,
14101            setNewValue: *mut ::std::os::raw::c_void,
14102        ) -> *mut ::std::os::raw::c_void,
14103    >,
14104    pub GetSetMediaItemInfo_String: Option<
14105        unsafe extern "C" fn(
14106            item: *mut root::MediaItem,
14107            parmname: *const ::std::os::raw::c_char,
14108            stringNeedBig: *mut ::std::os::raw::c_char,
14109            setNewValue: bool,
14110        ) -> bool,
14111    >,
14112    pub GetSetMediaItemTakeInfo: Option<
14113        unsafe extern "C" fn(
14114            tk: *mut root::MediaItem_Take,
14115            parmname: *const ::std::os::raw::c_char,
14116            setNewValue: *mut ::std::os::raw::c_void,
14117        ) -> *mut ::std::os::raw::c_void,
14118    >,
14119    pub GetSetMediaItemTakeInfo_String: Option<
14120        unsafe extern "C" fn(
14121            tk: *mut root::MediaItem_Take,
14122            parmname: *const ::std::os::raw::c_char,
14123            stringNeedBig: *mut ::std::os::raw::c_char,
14124            setNewValue: bool,
14125        ) -> bool,
14126    >,
14127    pub GetSetMediaTrackInfo: Option<
14128        unsafe extern "C" fn(
14129            tr: *mut root::MediaTrack,
14130            parmname: *const ::std::os::raw::c_char,
14131            setNewValue: *mut ::std::os::raw::c_void,
14132        ) -> *mut ::std::os::raw::c_void,
14133    >,
14134    pub GetSetMediaTrackInfo_String: Option<
14135        unsafe extern "C" fn(
14136            tr: *mut root::MediaTrack,
14137            parmname: *const ::std::os::raw::c_char,
14138            stringNeedBig: *mut ::std::os::raw::c_char,
14139            setNewValue: bool,
14140        ) -> bool,
14141    >,
14142    pub GetSetObjectState: Option<
14143        unsafe extern "C" fn(
14144            obj: *mut ::std::os::raw::c_void,
14145            str: *const ::std::os::raw::c_char,
14146        ) -> *mut ::std::os::raw::c_char,
14147    >,
14148    pub GetSetObjectState2: Option<
14149        unsafe extern "C" fn(
14150            obj: *mut ::std::os::raw::c_void,
14151            str: *const ::std::os::raw::c_char,
14152            isundo: bool,
14153        ) -> *mut ::std::os::raw::c_char,
14154    >,
14155    pub GetSetProjectAuthor: Option<
14156        unsafe extern "C" fn(
14157            proj: *mut root::ReaProject,
14158            set: bool,
14159            author: *mut ::std::os::raw::c_char,
14160            author_sz: ::std::os::raw::c_int,
14161        ),
14162    >,
14163    pub GetSetProjectGrid: Option<
14164        unsafe extern "C" fn(
14165            project: *mut root::ReaProject,
14166            set: bool,
14167            divisionInOutOptional: *mut f64,
14168            swingmodeInOutOptional: *mut ::std::os::raw::c_int,
14169            swingamtInOutOptional: *mut f64,
14170        ) -> ::std::os::raw::c_int,
14171    >,
14172    pub GetSetProjectInfo: Option<
14173        unsafe extern "C" fn(
14174            project: *mut root::ReaProject,
14175            desc: *const ::std::os::raw::c_char,
14176            value: f64,
14177            is_set: bool,
14178        ) -> f64,
14179    >,
14180    pub GetSetProjectInfo_String: Option<
14181        unsafe extern "C" fn(
14182            project: *mut root::ReaProject,
14183            desc: *const ::std::os::raw::c_char,
14184            valuestrNeedBig: *mut ::std::os::raw::c_char,
14185            is_set: bool,
14186        ) -> bool,
14187    >,
14188    pub GetSetProjectNotes: Option<
14189        unsafe extern "C" fn(
14190            proj: *mut root::ReaProject,
14191            set: bool,
14192            notesNeedBig: *mut ::std::os::raw::c_char,
14193            notesNeedBig_sz: ::std::os::raw::c_int,
14194        ),
14195    >,
14196    pub GetSetRepeat: Option<extern "C" fn(val: ::std::os::raw::c_int) -> ::std::os::raw::c_int>,
14197    pub GetSetRepeatEx: Option<
14198        unsafe extern "C" fn(
14199            proj: *mut root::ReaProject,
14200            val: ::std::os::raw::c_int,
14201        ) -> ::std::os::raw::c_int,
14202    >,
14203    pub GetSetTrackGroupMembership: Option<
14204        unsafe extern "C" fn(
14205            tr: *mut root::MediaTrack,
14206            groupname: *const ::std::os::raw::c_char,
14207            setmask: ::std::os::raw::c_uint,
14208            setvalue: ::std::os::raw::c_uint,
14209        ) -> ::std::os::raw::c_uint,
14210    >,
14211    pub GetSetTrackGroupMembershipHigh: Option<
14212        unsafe extern "C" fn(
14213            tr: *mut root::MediaTrack,
14214            groupname: *const ::std::os::raw::c_char,
14215            setmask: ::std::os::raw::c_uint,
14216            setvalue: ::std::os::raw::c_uint,
14217        ) -> ::std::os::raw::c_uint,
14218    >,
14219    pub GetSetTrackMIDISupportFile: Option<
14220        unsafe extern "C" fn(
14221            proj: *mut root::ReaProject,
14222            track: *mut root::MediaTrack,
14223            which: ::std::os::raw::c_int,
14224            filename: *const ::std::os::raw::c_char,
14225        ) -> *const ::std::os::raw::c_char,
14226    >,
14227    pub GetSetTrackSendInfo: Option<
14228        unsafe extern "C" fn(
14229            tr: *mut root::MediaTrack,
14230            category: ::std::os::raw::c_int,
14231            sendidx: ::std::os::raw::c_int,
14232            parmname: *const ::std::os::raw::c_char,
14233            setNewValue: *mut ::std::os::raw::c_void,
14234        ) -> *mut ::std::os::raw::c_void,
14235    >,
14236    pub GetSetTrackSendInfo_String: Option<
14237        unsafe extern "C" fn(
14238            tr: *mut root::MediaTrack,
14239            category: ::std::os::raw::c_int,
14240            sendidx: ::std::os::raw::c_int,
14241            parmname: *const ::std::os::raw::c_char,
14242            stringNeedBig: *mut ::std::os::raw::c_char,
14243            setNewValue: bool,
14244        ) -> bool,
14245    >,
14246    pub GetSetTrackState: Option<
14247        unsafe extern "C" fn(
14248            track: *mut root::MediaTrack,
14249            str: *mut ::std::os::raw::c_char,
14250            str_sz: ::std::os::raw::c_int,
14251        ) -> bool,
14252    >,
14253    pub GetSetTrackState2: Option<
14254        unsafe extern "C" fn(
14255            track: *mut root::MediaTrack,
14256            str: *mut ::std::os::raw::c_char,
14257            str_sz: ::std::os::raw::c_int,
14258            isundo: bool,
14259        ) -> bool,
14260    >,
14261    pub GetSubProjectFromSource:
14262        Option<unsafe extern "C" fn(src: *mut root::PCM_source) -> *mut root::ReaProject>,
14263    pub GetTake: Option<
14264        unsafe extern "C" fn(
14265            item: *mut root::MediaItem,
14266            takeidx: ::std::os::raw::c_int,
14267        ) -> *mut root::MediaItem_Take,
14268    >,
14269    pub GetTakeEnvelope: Option<
14270        unsafe extern "C" fn(
14271            take: *mut root::MediaItem_Take,
14272            envidx: ::std::os::raw::c_int,
14273        ) -> *mut root::TrackEnvelope,
14274    >,
14275    pub GetTakeEnvelopeByName: Option<
14276        unsafe extern "C" fn(
14277            take: *mut root::MediaItem_Take,
14278            envname: *const ::std::os::raw::c_char,
14279        ) -> *mut root::TrackEnvelope,
14280    >,
14281    pub GetTakeName: Option<
14282        unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> *const ::std::os::raw::c_char,
14283    >,
14284    pub GetTakeNumStretchMarkers:
14285        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> ::std::os::raw::c_int>,
14286    pub GetTakeStretchMarker: Option<
14287        unsafe extern "C" fn(
14288            take: *mut root::MediaItem_Take,
14289            idx: ::std::os::raw::c_int,
14290            posOut: *mut f64,
14291            srcposOutOptional: *mut f64,
14292        ) -> ::std::os::raw::c_int,
14293    >,
14294    pub GetTakeStretchMarkerSlope: Option<
14295        unsafe extern "C" fn(take: *mut root::MediaItem_Take, idx: ::std::os::raw::c_int) -> f64,
14296    >,
14297    pub GetTCPFXParm: Option<
14298        unsafe extern "C" fn(
14299            project: *mut root::ReaProject,
14300            track: *mut root::MediaTrack,
14301            index: ::std::os::raw::c_int,
14302            fxindexOut: *mut ::std::os::raw::c_int,
14303            parmidxOut: *mut ::std::os::raw::c_int,
14304        ) -> bool,
14305    >,
14306    pub GetTempoMatchPlayRate: Option<
14307        unsafe extern "C" fn(
14308            source: *mut root::PCM_source,
14309            srcscale: f64,
14310            position: f64,
14311            mult: f64,
14312            rateOut: *mut f64,
14313            targetlenOut: *mut f64,
14314        ) -> bool,
14315    >,
14316    pub GetTempoTimeSigMarker: Option<
14317        unsafe extern "C" fn(
14318            proj: *mut root::ReaProject,
14319            ptidx: ::std::os::raw::c_int,
14320            timeposOut: *mut f64,
14321            measureposOut: *mut ::std::os::raw::c_int,
14322            beatposOut: *mut f64,
14323            bpmOut: *mut f64,
14324            timesig_numOut: *mut ::std::os::raw::c_int,
14325            timesig_denomOut: *mut ::std::os::raw::c_int,
14326            lineartempoOut: *mut bool,
14327        ) -> bool,
14328    >,
14329    pub GetToggleCommandState:
14330        Option<extern "C" fn(command_id: ::std::os::raw::c_int) -> ::std::os::raw::c_int>,
14331    pub GetToggleCommandState2: Option<
14332        unsafe extern "C" fn(
14333            section: *mut root::KbdSectionInfo,
14334            command_id: ::std::os::raw::c_int,
14335        ) -> ::std::os::raw::c_int,
14336    >,
14337    pub GetToggleCommandStateEx: Option<
14338        extern "C" fn(
14339            section_id: ::std::os::raw::c_int,
14340            command_id: ::std::os::raw::c_int,
14341        ) -> ::std::os::raw::c_int,
14342    >,
14343    pub GetToggleCommandStateThroughHooks: Option<
14344        unsafe extern "C" fn(
14345            section: *mut root::KbdSectionInfo,
14346            command_id: ::std::os::raw::c_int,
14347        ) -> ::std::os::raw::c_int,
14348    >,
14349    pub GetTooltipWindow: Option<extern "C" fn() -> root::HWND>,
14350    pub GetTrack: Option<
14351        unsafe extern "C" fn(
14352            proj: *mut root::ReaProject,
14353            trackidx: ::std::os::raw::c_int,
14354        ) -> *mut root::MediaTrack,
14355    >,
14356    pub GetTrackAutomationMode:
14357        Option<unsafe extern "C" fn(tr: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
14358    pub GetTrackColor:
14359        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
14360    pub GetTrackDepth:
14361        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
14362    pub GetTrackEnvelope: Option<
14363        unsafe extern "C" fn(
14364            track: *mut root::MediaTrack,
14365            envidx: ::std::os::raw::c_int,
14366        ) -> *mut root::TrackEnvelope,
14367    >,
14368    pub GetTrackEnvelopeByChunkName: Option<
14369        unsafe extern "C" fn(
14370            tr: *mut root::MediaTrack,
14371            cfgchunkname: *const ::std::os::raw::c_char,
14372        ) -> *mut root::TrackEnvelope,
14373    >,
14374    pub GetTrackEnvelopeByName: Option<
14375        unsafe extern "C" fn(
14376            track: *mut root::MediaTrack,
14377            envname: *const ::std::os::raw::c_char,
14378        ) -> *mut root::TrackEnvelope,
14379    >,
14380    pub GetTrackFromPoint: Option<
14381        unsafe extern "C" fn(
14382            screen_x: ::std::os::raw::c_int,
14383            screen_y: ::std::os::raw::c_int,
14384            infoOutOptional: *mut ::std::os::raw::c_int,
14385        ) -> *mut root::MediaTrack,
14386    >,
14387    pub GetTrackGUID: Option<unsafe extern "C" fn(tr: *mut root::MediaTrack) -> *mut root::GUID>,
14388    pub GetTrackInfo: Option<
14389        unsafe extern "C" fn(
14390            track: root::INT_PTR,
14391            flags: *mut ::std::os::raw::c_int,
14392        ) -> *const ::std::os::raw::c_char,
14393    >,
14394    pub GetTrackMediaItem: Option<
14395        unsafe extern "C" fn(
14396            tr: *mut root::MediaTrack,
14397            itemidx: ::std::os::raw::c_int,
14398        ) -> *mut root::MediaItem,
14399    >,
14400    pub GetTrackMIDILyrics: Option<
14401        unsafe extern "C" fn(
14402            track: *mut root::MediaTrack,
14403            flag: ::std::os::raw::c_int,
14404            bufWantNeedBig: *mut ::std::os::raw::c_char,
14405            bufWantNeedBig_sz: *mut ::std::os::raw::c_int,
14406        ) -> bool,
14407    >,
14408    pub GetTrackMIDINoteName: Option<
14409        extern "C" fn(
14410            track: ::std::os::raw::c_int,
14411            pitch: ::std::os::raw::c_int,
14412            chan: ::std::os::raw::c_int,
14413        ) -> *const ::std::os::raw::c_char,
14414    >,
14415    pub GetTrackMIDINoteNameEx: Option<
14416        unsafe extern "C" fn(
14417            proj: *mut root::ReaProject,
14418            track: *mut root::MediaTrack,
14419            pitch: ::std::os::raw::c_int,
14420            chan: ::std::os::raw::c_int,
14421        ) -> *const ::std::os::raw::c_char,
14422    >,
14423    pub GetTrackMIDINoteRange: Option<
14424        unsafe extern "C" fn(
14425            proj: *mut root::ReaProject,
14426            track: *mut root::MediaTrack,
14427            note_loOut: *mut ::std::os::raw::c_int,
14428            note_hiOut: *mut ::std::os::raw::c_int,
14429        ),
14430    >,
14431    pub GetTrackName: Option<
14432        unsafe extern "C" fn(
14433            track: *mut root::MediaTrack,
14434            bufOut: *mut ::std::os::raw::c_char,
14435            bufOut_sz: ::std::os::raw::c_int,
14436        ) -> bool,
14437    >,
14438    pub GetTrackNumMediaItems:
14439        Option<unsafe extern "C" fn(tr: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
14440    pub GetTrackNumSends: Option<
14441        unsafe extern "C" fn(
14442            tr: *mut root::MediaTrack,
14443            category: ::std::os::raw::c_int,
14444        ) -> ::std::os::raw::c_int,
14445    >,
14446    pub GetTrackReceiveName: Option<
14447        unsafe extern "C" fn(
14448            track: *mut root::MediaTrack,
14449            recv_index: ::std::os::raw::c_int,
14450            buf: *mut ::std::os::raw::c_char,
14451            buf_sz: ::std::os::raw::c_int,
14452        ) -> bool,
14453    >,
14454    pub GetTrackReceiveUIMute: Option<
14455        unsafe extern "C" fn(
14456            track: *mut root::MediaTrack,
14457            recv_index: ::std::os::raw::c_int,
14458            muteOut: *mut bool,
14459        ) -> bool,
14460    >,
14461    pub GetTrackReceiveUIVolPan: Option<
14462        unsafe extern "C" fn(
14463            track: *mut root::MediaTrack,
14464            recv_index: ::std::os::raw::c_int,
14465            volumeOut: *mut f64,
14466            panOut: *mut f64,
14467        ) -> bool,
14468    >,
14469    pub GetTrackSendInfo_Value: Option<
14470        unsafe extern "C" fn(
14471            tr: *mut root::MediaTrack,
14472            category: ::std::os::raw::c_int,
14473            sendidx: ::std::os::raw::c_int,
14474            parmname: *const ::std::os::raw::c_char,
14475        ) -> f64,
14476    >,
14477    pub GetTrackSendName: Option<
14478        unsafe extern "C" fn(
14479            track: *mut root::MediaTrack,
14480            send_index: ::std::os::raw::c_int,
14481            buf: *mut ::std::os::raw::c_char,
14482            buf_sz: ::std::os::raw::c_int,
14483        ) -> bool,
14484    >,
14485    pub GetTrackSendUIMute: Option<
14486        unsafe extern "C" fn(
14487            track: *mut root::MediaTrack,
14488            send_index: ::std::os::raw::c_int,
14489            muteOut: *mut bool,
14490        ) -> bool,
14491    >,
14492    pub GetTrackSendUIVolPan: Option<
14493        unsafe extern "C" fn(
14494            track: *mut root::MediaTrack,
14495            send_index: ::std::os::raw::c_int,
14496            volumeOut: *mut f64,
14497            panOut: *mut f64,
14498        ) -> bool,
14499    >,
14500    pub GetTrackState: Option<
14501        unsafe extern "C" fn(
14502            track: *mut root::MediaTrack,
14503            flagsOut: *mut ::std::os::raw::c_int,
14504        ) -> *const ::std::os::raw::c_char,
14505    >,
14506    pub GetTrackStateChunk: Option<
14507        unsafe extern "C" fn(
14508            track: *mut root::MediaTrack,
14509            strNeedBig: *mut ::std::os::raw::c_char,
14510            strNeedBig_sz: ::std::os::raw::c_int,
14511            isundoOptional: bool,
14512        ) -> bool,
14513    >,
14514    pub GetTrackUIMute:
14515        Option<unsafe extern "C" fn(track: *mut root::MediaTrack, muteOut: *mut bool) -> bool>,
14516    pub GetTrackUIPan: Option<
14517        unsafe extern "C" fn(
14518            track: *mut root::MediaTrack,
14519            pan1Out: *mut f64,
14520            pan2Out: *mut f64,
14521            panmodeOut: *mut ::std::os::raw::c_int,
14522        ) -> bool,
14523    >,
14524    pub GetTrackUIVolPan: Option<
14525        unsafe extern "C" fn(
14526            track: *mut root::MediaTrack,
14527            volumeOut: *mut f64,
14528            panOut: *mut f64,
14529        ) -> bool,
14530    >,
14531    pub GetUnderrunTime: Option<
14532        unsafe extern "C" fn(
14533            audio_xrunOutOptional: *mut ::std::os::raw::c_uint,
14534            media_xrunOutOptional: *mut ::std::os::raw::c_uint,
14535            curtimeOutOptional: *mut ::std::os::raw::c_uint,
14536        ),
14537    >,
14538    pub GetUserFileNameForRead: Option<
14539        unsafe extern "C" fn(
14540            filenameNeed4096: *mut ::std::os::raw::c_char,
14541            title: *const ::std::os::raw::c_char,
14542            defext: *const ::std::os::raw::c_char,
14543        ) -> bool,
14544    >,
14545    pub GetUserInputs: Option<
14546        unsafe extern "C" fn(
14547            title: *const ::std::os::raw::c_char,
14548            num_inputs: ::std::os::raw::c_int,
14549            captions_csv: *const ::std::os::raw::c_char,
14550            retvals_csv: *mut ::std::os::raw::c_char,
14551            retvals_csv_sz: ::std::os::raw::c_int,
14552        ) -> bool,
14553    >,
14554    pub GoToMarker: Option<
14555        unsafe extern "C" fn(
14556            proj: *mut root::ReaProject,
14557            marker_index: ::std::os::raw::c_int,
14558            use_timeline_order: bool,
14559        ),
14560    >,
14561    pub GoToRegion: Option<
14562        unsafe extern "C" fn(
14563            proj: *mut root::ReaProject,
14564            region_index: ::std::os::raw::c_int,
14565            use_timeline_order: bool,
14566        ),
14567    >,
14568    pub GR_SelectColor: Option<
14569        unsafe extern "C" fn(
14570            hwnd: root::HWND,
14571            colorOut: *mut ::std::os::raw::c_int,
14572        ) -> ::std::os::raw::c_int,
14573    >,
14574    pub GSC_mainwnd: Option<extern "C" fn(t: ::std::os::raw::c_int) -> ::std::os::raw::c_int>,
14575    pub guidToString:
14576        Option<unsafe extern "C" fn(g: *const root::GUID, destNeed64: *mut ::std::os::raw::c_char)>,
14577    pub HasExtState: Option<
14578        unsafe extern "C" fn(
14579            section: *const ::std::os::raw::c_char,
14580            key: *const ::std::os::raw::c_char,
14581        ) -> bool,
14582    >,
14583    pub HasTrackMIDIPrograms:
14584        Option<extern "C" fn(track: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char>,
14585    pub HasTrackMIDIProgramsEx: Option<
14586        unsafe extern "C" fn(
14587            proj: *mut root::ReaProject,
14588            track: *mut root::MediaTrack,
14589        ) -> *const ::std::os::raw::c_char,
14590    >,
14591    pub Help_Set: Option<
14592        unsafe extern "C" fn(helpstring: *const ::std::os::raw::c_char, is_temporary_help: bool),
14593    >,
14594    pub HiresPeaksFromSource: Option<
14595        unsafe extern "C" fn(
14596            src: *mut root::PCM_source,
14597            block: *mut root::PCM_source_peaktransfer_t,
14598        ),
14599    >,
14600    pub image_resolve_fn: Option<
14601        unsafe extern "C" fn(
14602            in_: *const ::std::os::raw::c_char,
14603            out: *mut ::std::os::raw::c_char,
14604            out_sz: ::std::os::raw::c_int,
14605        ),
14606    >,
14607    pub InsertAutomationItem: Option<
14608        unsafe extern "C" fn(
14609            env: *mut root::TrackEnvelope,
14610            pool_id: ::std::os::raw::c_int,
14611            position: f64,
14612            length: f64,
14613        ) -> ::std::os::raw::c_int,
14614    >,
14615    pub InsertEnvelopePoint: Option<
14616        unsafe extern "C" fn(
14617            envelope: *mut root::TrackEnvelope,
14618            time: f64,
14619            value: f64,
14620            shape: ::std::os::raw::c_int,
14621            tension: f64,
14622            selected: bool,
14623            noSortInOptional: *mut bool,
14624        ) -> bool,
14625    >,
14626    pub InsertEnvelopePointEx: Option<
14627        unsafe extern "C" fn(
14628            envelope: *mut root::TrackEnvelope,
14629            autoitem_idx: ::std::os::raw::c_int,
14630            time: f64,
14631            value: f64,
14632            shape: ::std::os::raw::c_int,
14633            tension: f64,
14634            selected: bool,
14635            noSortInOptional: *mut bool,
14636        ) -> bool,
14637    >,
14638    pub InsertMedia: Option<
14639        unsafe extern "C" fn(
14640            file: *const ::std::os::raw::c_char,
14641            mode: ::std::os::raw::c_int,
14642        ) -> ::std::os::raw::c_int,
14643    >,
14644    pub InsertMediaSection: Option<
14645        unsafe extern "C" fn(
14646            file: *const ::std::os::raw::c_char,
14647            mode: ::std::os::raw::c_int,
14648            startpct: f64,
14649            endpct: f64,
14650            pitchshift: f64,
14651        ) -> ::std::os::raw::c_int,
14652    >,
14653    pub InsertTrackAtIndex: Option<extern "C" fn(idx: ::std::os::raw::c_int, wantDefaults: bool)>,
14654    pub IsInRealTimeAudio: Option<extern "C" fn() -> ::std::os::raw::c_int>,
14655    pub IsItemTakeActiveForPlayback: Option<
14656        unsafe extern "C" fn(item: *mut root::MediaItem, take: *mut root::MediaItem_Take) -> bool,
14657    >,
14658    pub IsMediaExtension:
14659        Option<unsafe extern "C" fn(ext: *const ::std::os::raw::c_char, wantOthers: bool) -> bool>,
14660    pub IsMediaItemSelected: Option<unsafe extern "C" fn(item: *mut root::MediaItem) -> bool>,
14661    pub IsProjectDirty:
14662        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
14663    pub IsREAPER: Option<extern "C" fn() -> bool>,
14664    pub IsTrackSelected: Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> bool>,
14665    pub IsTrackVisible:
14666        Option<unsafe extern "C" fn(track: *mut root::MediaTrack, mixer: bool) -> bool>,
14667    pub joystick_create: Option<
14668        unsafe extern "C" fn(
14669            guid: *const root::GUID,
14670        ) -> *mut root::reaper_functions::joystick_device,
14671    >,
14672    pub joystick_destroy:
14673        Option<unsafe extern "C" fn(device: *mut root::reaper_functions::joystick_device)>,
14674    pub joystick_enum: Option<
14675        unsafe extern "C" fn(
14676            index: ::std::os::raw::c_int,
14677            namestrOutOptional: *mut *const ::std::os::raw::c_char,
14678        ) -> *const ::std::os::raw::c_char,
14679    >,
14680    pub joystick_getaxis: Option<
14681        unsafe extern "C" fn(
14682            dev: *mut root::reaper_functions::joystick_device,
14683            axis: ::std::os::raw::c_int,
14684        ) -> f64,
14685    >,
14686    pub joystick_getbuttonmask: Option<
14687        unsafe extern "C" fn(
14688            dev: *mut root::reaper_functions::joystick_device,
14689        ) -> ::std::os::raw::c_uint,
14690    >,
14691    pub joystick_getinfo: Option<
14692        unsafe extern "C" fn(
14693            dev: *mut root::reaper_functions::joystick_device,
14694            axesOutOptional: *mut ::std::os::raw::c_int,
14695            povsOutOptional: *mut ::std::os::raw::c_int,
14696        ) -> ::std::os::raw::c_int,
14697    >,
14698    pub joystick_getpov: Option<
14699        unsafe extern "C" fn(
14700            dev: *mut root::reaper_functions::joystick_device,
14701            pov: ::std::os::raw::c_int,
14702        ) -> f64,
14703    >,
14704    pub joystick_update:
14705        Option<unsafe extern "C" fn(dev: *mut root::reaper_functions::joystick_device) -> bool>,
14706    pub kbd_enumerateActions: Option<
14707        unsafe extern "C" fn(
14708            section: *mut root::KbdSectionInfo,
14709            idx: ::std::os::raw::c_int,
14710            nameOut: *mut *const ::std::os::raw::c_char,
14711        ) -> ::std::os::raw::c_int,
14712    >,
14713    pub kbd_formatKeyName:
14714        Option<unsafe extern "C" fn(ac: *mut root::ACCEL, s: *mut ::std::os::raw::c_char)>,
14715    pub kbd_getCommandName: Option<
14716        unsafe extern "C" fn(
14717            cmd: ::std::os::raw::c_int,
14718            s: *mut ::std::os::raw::c_char,
14719            section: *mut root::KbdSectionInfo,
14720        ),
14721    >,
14722    pub kbd_getTextFromCmd: Option<
14723        unsafe extern "C" fn(
14724            cmd: root::DWORD,
14725            section: *mut root::KbdSectionInfo,
14726        ) -> *const ::std::os::raw::c_char,
14727    >,
14728    pub KBD_OnMainActionEx: Option<
14729        unsafe extern "C" fn(
14730            cmd: ::std::os::raw::c_int,
14731            val: ::std::os::raw::c_int,
14732            valhw: ::std::os::raw::c_int,
14733            relmode: ::std::os::raw::c_int,
14734            hwnd: root::HWND,
14735            proj: *mut root::ReaProject,
14736        ) -> ::std::os::raw::c_int,
14737    >,
14738    pub kbd_OnMidiEvent: Option<
14739        unsafe extern "C" fn(evt: *mut root::MIDI_event_t, dev_index: ::std::os::raw::c_int),
14740    >,
14741    pub kbd_OnMidiList: Option<
14742        unsafe extern "C" fn(list: *mut root::MIDI_eventlist, dev_index: ::std::os::raw::c_int),
14743    >,
14744    pub kbd_ProcessActionsMenu:
14745        Option<unsafe extern "C" fn(menu: root::HMENU, section: *mut root::KbdSectionInfo)>,
14746    pub kbd_processMidiEventActionEx: Option<
14747        unsafe extern "C" fn(
14748            evt: *mut root::MIDI_event_t,
14749            section: *mut root::KbdSectionInfo,
14750            hwndCtx: root::HWND,
14751        ) -> bool,
14752    >,
14753    pub kbd_reprocessMenu:
14754        Option<unsafe extern "C" fn(menu: root::HMENU, section: *mut root::KbdSectionInfo)>,
14755    pub kbd_RunCommandThroughHooks: Option<
14756        unsafe extern "C" fn(
14757            section: *mut root::KbdSectionInfo,
14758            actionCommandID: *mut ::std::os::raw::c_int,
14759            val: *mut ::std::os::raw::c_int,
14760            valhw: *mut ::std::os::raw::c_int,
14761            relmode: *mut ::std::os::raw::c_int,
14762            hwnd: root::HWND,
14763        ) -> bool,
14764    >,
14765    pub kbd_translateAccelerator: Option<
14766        unsafe extern "C" fn(
14767            hwnd: root::HWND,
14768            msg: *mut root::MSG,
14769            section: *mut root::KbdSectionInfo,
14770        ) -> ::std::os::raw::c_int,
14771    >,
14772    pub kbd_translateMouse: Option<
14773        unsafe extern "C" fn(
14774            winmsg: *mut ::std::os::raw::c_void,
14775            midimsg: *mut ::std::os::raw::c_uchar,
14776        ) -> bool,
14777    >,
14778    pub LICE__Destroy: Option<unsafe extern "C" fn(bm: *mut root::reaper_functions::LICE_IBitmap)>,
14779    pub LICE__DestroyFont:
14780        Option<unsafe extern "C" fn(font: *mut root::reaper_functions::LICE_IFont)>,
14781    pub LICE__DrawText: Option<
14782        unsafe extern "C" fn(
14783            font: *mut root::reaper_functions::LICE_IFont,
14784            bm: *mut root::reaper_functions::LICE_IBitmap,
14785            str: *const ::std::os::raw::c_char,
14786            strcnt: ::std::os::raw::c_int,
14787            rect: *mut root::RECT,
14788            dtFlags: root::UINT,
14789        ) -> ::std::os::raw::c_int,
14790    >,
14791    pub LICE__GetBits: Option<
14792        unsafe extern "C" fn(
14793            bm: *mut root::reaper_functions::LICE_IBitmap,
14794        ) -> *mut ::std::os::raw::c_void,
14795    >,
14796    pub LICE__GetDC:
14797        Option<unsafe extern "C" fn(bm: *mut root::reaper_functions::LICE_IBitmap) -> root::HDC>,
14798    pub LICE__GetHeight: Option<
14799        unsafe extern "C" fn(
14800            bm: *mut root::reaper_functions::LICE_IBitmap,
14801        ) -> ::std::os::raw::c_int,
14802    >,
14803    pub LICE__GetRowSpan: Option<
14804        unsafe extern "C" fn(
14805            bm: *mut root::reaper_functions::LICE_IBitmap,
14806        ) -> ::std::os::raw::c_int,
14807    >,
14808    pub LICE__GetWidth: Option<
14809        unsafe extern "C" fn(
14810            bm: *mut root::reaper_functions::LICE_IBitmap,
14811        ) -> ::std::os::raw::c_int,
14812    >,
14813    pub LICE__IsFlipped:
14814        Option<unsafe extern "C" fn(bm: *mut root::reaper_functions::LICE_IBitmap) -> bool>,
14815    pub LICE__resize: Option<
14816        unsafe extern "C" fn(
14817            bm: *mut root::reaper_functions::LICE_IBitmap,
14818            w: ::std::os::raw::c_int,
14819            h: ::std::os::raw::c_int,
14820        ) -> bool,
14821    >,
14822    pub LICE__SetBkColor: Option<
14823        unsafe extern "C" fn(
14824            font: *mut root::reaper_functions::LICE_IFont,
14825            color: root::reaper_functions::LICE_pixel,
14826        ) -> root::reaper_functions::LICE_pixel,
14827    >,
14828    pub LICE__SetFromHFont: Option<
14829        unsafe extern "C" fn(
14830            font: *mut root::reaper_functions::LICE_IFont,
14831            hfont: root::HFONT,
14832            flags: ::std::os::raw::c_int,
14833        ),
14834    >,
14835    pub LICE__SetTextColor: Option<
14836        unsafe extern "C" fn(
14837            font: *mut root::reaper_functions::LICE_IFont,
14838            color: root::reaper_functions::LICE_pixel,
14839        ) -> root::reaper_functions::LICE_pixel,
14840    >,
14841    pub LICE__SetTextCombineMode: Option<
14842        unsafe extern "C" fn(
14843            ifont: *mut root::reaper_functions::LICE_IFont,
14844            mode: ::std::os::raw::c_int,
14845            alpha: f32,
14846        ),
14847    >,
14848    pub LICE_Arc: Option<
14849        unsafe extern "C" fn(
14850            dest: *mut root::reaper_functions::LICE_IBitmap,
14851            cx: f32,
14852            cy: f32,
14853            r: f32,
14854            minAngle: f32,
14855            maxAngle: f32,
14856            color: root::reaper_functions::LICE_pixel,
14857            alpha: f32,
14858            mode: ::std::os::raw::c_int,
14859            aa: bool,
14860        ),
14861    >,
14862    pub LICE_Blit: Option<
14863        unsafe extern "C" fn(
14864            dest: *mut root::reaper_functions::LICE_IBitmap,
14865            src: *mut root::reaper_functions::LICE_IBitmap,
14866            dstx: ::std::os::raw::c_int,
14867            dsty: ::std::os::raw::c_int,
14868            srcx: ::std::os::raw::c_int,
14869            srcy: ::std::os::raw::c_int,
14870            srcw: ::std::os::raw::c_int,
14871            srch: ::std::os::raw::c_int,
14872            alpha: f32,
14873            mode: ::std::os::raw::c_int,
14874        ),
14875    >,
14876    pub LICE_Blur: Option<
14877        unsafe extern "C" fn(
14878            dest: *mut root::reaper_functions::LICE_IBitmap,
14879            src: *mut root::reaper_functions::LICE_IBitmap,
14880            dstx: ::std::os::raw::c_int,
14881            dsty: ::std::os::raw::c_int,
14882            srcx: ::std::os::raw::c_int,
14883            srcy: ::std::os::raw::c_int,
14884            srcw: ::std::os::raw::c_int,
14885            srch: ::std::os::raw::c_int,
14886        ),
14887    >,
14888    pub LICE_BorderedRect: Option<
14889        unsafe extern "C" fn(
14890            dest: *mut root::reaper_functions::LICE_IBitmap,
14891            x: ::std::os::raw::c_int,
14892            y: ::std::os::raw::c_int,
14893            w: ::std::os::raw::c_int,
14894            h: ::std::os::raw::c_int,
14895            bgcolor: root::reaper_functions::LICE_pixel,
14896            fgcolor: root::reaper_functions::LICE_pixel,
14897            alpha: f32,
14898            mode: ::std::os::raw::c_int,
14899        ),
14900    >,
14901    pub LICE_Circle: Option<
14902        unsafe extern "C" fn(
14903            dest: *mut root::reaper_functions::LICE_IBitmap,
14904            cx: f32,
14905            cy: f32,
14906            r: f32,
14907            color: root::reaper_functions::LICE_pixel,
14908            alpha: f32,
14909            mode: ::std::os::raw::c_int,
14910            aa: bool,
14911        ),
14912    >,
14913    pub LICE_Clear: Option<
14914        unsafe extern "C" fn(
14915            dest: *mut root::reaper_functions::LICE_IBitmap,
14916            color: root::reaper_functions::LICE_pixel,
14917        ),
14918    >,
14919    pub LICE_ClearRect: Option<
14920        unsafe extern "C" fn(
14921            dest: *mut root::reaper_functions::LICE_IBitmap,
14922            x: ::std::os::raw::c_int,
14923            y: ::std::os::raw::c_int,
14924            w: ::std::os::raw::c_int,
14925            h: ::std::os::raw::c_int,
14926            mask: root::reaper_functions::LICE_pixel,
14927            orbits: root::reaper_functions::LICE_pixel,
14928        ),
14929    >,
14930    pub LICE_ClipLine: Option<
14931        unsafe extern "C" fn(
14932            pX1Out: *mut ::std::os::raw::c_int,
14933            pY1Out: *mut ::std::os::raw::c_int,
14934            pX2Out: *mut ::std::os::raw::c_int,
14935            pY2Out: *mut ::std::os::raw::c_int,
14936            xLo: ::std::os::raw::c_int,
14937            yLo: ::std::os::raw::c_int,
14938            xHi: ::std::os::raw::c_int,
14939            yHi: ::std::os::raw::c_int,
14940        ) -> bool,
14941    >,
14942    pub LICE_Copy: Option<
14943        unsafe extern "C" fn(
14944            dest: *mut root::reaper_functions::LICE_IBitmap,
14945            src: *mut root::reaper_functions::LICE_IBitmap,
14946        ),
14947    >,
14948    pub LICE_CreateBitmap: Option<
14949        extern "C" fn(
14950            mode: ::std::os::raw::c_int,
14951            w: ::std::os::raw::c_int,
14952            h: ::std::os::raw::c_int,
14953        ) -> *mut root::reaper_functions::LICE_IBitmap,
14954    >,
14955    pub LICE_CreateFont: Option<extern "C" fn() -> *mut root::reaper_functions::LICE_IFont>,
14956    pub LICE_DrawCBezier: Option<
14957        unsafe extern "C" fn(
14958            dest: *mut root::reaper_functions::LICE_IBitmap,
14959            xstart: f64,
14960            ystart: f64,
14961            xctl1: f64,
14962            yctl1: f64,
14963            xctl2: f64,
14964            yctl2: f64,
14965            xend: f64,
14966            yend: f64,
14967            color: root::reaper_functions::LICE_pixel,
14968            alpha: f32,
14969            mode: ::std::os::raw::c_int,
14970            aa: bool,
14971            tol: f64,
14972        ),
14973    >,
14974    pub LICE_DrawChar: Option<
14975        unsafe extern "C" fn(
14976            bm: *mut root::reaper_functions::LICE_IBitmap,
14977            x: ::std::os::raw::c_int,
14978            y: ::std::os::raw::c_int,
14979            c: ::std::os::raw::c_char,
14980            color: root::reaper_functions::LICE_pixel,
14981            alpha: f32,
14982            mode: ::std::os::raw::c_int,
14983        ),
14984    >,
14985    pub LICE_DrawGlyph: Option<
14986        unsafe extern "C" fn(
14987            dest: *mut root::reaper_functions::LICE_IBitmap,
14988            x: ::std::os::raw::c_int,
14989            y: ::std::os::raw::c_int,
14990            color: root::reaper_functions::LICE_pixel,
14991            alphas: *mut root::reaper_functions::LICE_pixel_chan,
14992            glyph_w: ::std::os::raw::c_int,
14993            glyph_h: ::std::os::raw::c_int,
14994            alpha: f32,
14995            mode: ::std::os::raw::c_int,
14996        ),
14997    >,
14998    pub LICE_DrawRect: Option<
14999        unsafe extern "C" fn(
15000            dest: *mut root::reaper_functions::LICE_IBitmap,
15001            x: ::std::os::raw::c_int,
15002            y: ::std::os::raw::c_int,
15003            w: ::std::os::raw::c_int,
15004            h: ::std::os::raw::c_int,
15005            color: root::reaper_functions::LICE_pixel,
15006            alpha: f32,
15007            mode: ::std::os::raw::c_int,
15008        ),
15009    >,
15010    pub LICE_DrawText: Option<
15011        unsafe extern "C" fn(
15012            bm: *mut root::reaper_functions::LICE_IBitmap,
15013            x: ::std::os::raw::c_int,
15014            y: ::std::os::raw::c_int,
15015            string: *const ::std::os::raw::c_char,
15016            color: root::reaper_functions::LICE_pixel,
15017            alpha: f32,
15018            mode: ::std::os::raw::c_int,
15019        ),
15020    >,
15021    pub LICE_FillCBezier: Option<
15022        unsafe extern "C" fn(
15023            dest: *mut root::reaper_functions::LICE_IBitmap,
15024            xstart: f64,
15025            ystart: f64,
15026            xctl1: f64,
15027            yctl1: f64,
15028            xctl2: f64,
15029            yctl2: f64,
15030            xend: f64,
15031            yend: f64,
15032            yfill: ::std::os::raw::c_int,
15033            color: root::reaper_functions::LICE_pixel,
15034            alpha: f32,
15035            mode: ::std::os::raw::c_int,
15036            aa: bool,
15037            tol: f64,
15038        ),
15039    >,
15040    pub LICE_FillCircle: Option<
15041        unsafe extern "C" fn(
15042            dest: *mut root::reaper_functions::LICE_IBitmap,
15043            cx: f32,
15044            cy: f32,
15045            r: f32,
15046            color: root::reaper_functions::LICE_pixel,
15047            alpha: f32,
15048            mode: ::std::os::raw::c_int,
15049            aa: bool,
15050        ),
15051    >,
15052    pub LICE_FillConvexPolygon: Option<
15053        unsafe extern "C" fn(
15054            dest: *mut root::reaper_functions::LICE_IBitmap,
15055            x: *mut ::std::os::raw::c_int,
15056            y: *mut ::std::os::raw::c_int,
15057            npoints: ::std::os::raw::c_int,
15058            color: root::reaper_functions::LICE_pixel,
15059            alpha: f32,
15060            mode: ::std::os::raw::c_int,
15061        ),
15062    >,
15063    pub LICE_FillRect: Option<
15064        unsafe extern "C" fn(
15065            dest: *mut root::reaper_functions::LICE_IBitmap,
15066            x: ::std::os::raw::c_int,
15067            y: ::std::os::raw::c_int,
15068            w: ::std::os::raw::c_int,
15069            h: ::std::os::raw::c_int,
15070            color: root::reaper_functions::LICE_pixel,
15071            alpha: f32,
15072            mode: ::std::os::raw::c_int,
15073        ),
15074    >,
15075    pub LICE_FillTrapezoid: Option<
15076        unsafe extern "C" fn(
15077            dest: *mut root::reaper_functions::LICE_IBitmap,
15078            x1a: ::std::os::raw::c_int,
15079            x1b: ::std::os::raw::c_int,
15080            y1: ::std::os::raw::c_int,
15081            x2a: ::std::os::raw::c_int,
15082            x2b: ::std::os::raw::c_int,
15083            y2: ::std::os::raw::c_int,
15084            color: root::reaper_functions::LICE_pixel,
15085            alpha: f32,
15086            mode: ::std::os::raw::c_int,
15087        ),
15088    >,
15089    pub LICE_FillTriangle: Option<
15090        unsafe extern "C" fn(
15091            dest: *mut root::reaper_functions::LICE_IBitmap,
15092            x1: ::std::os::raw::c_int,
15093            y1: ::std::os::raw::c_int,
15094            x2: ::std::os::raw::c_int,
15095            y2: ::std::os::raw::c_int,
15096            x3: ::std::os::raw::c_int,
15097            y3: ::std::os::raw::c_int,
15098            color: root::reaper_functions::LICE_pixel,
15099            alpha: f32,
15100            mode: ::std::os::raw::c_int,
15101        ),
15102    >,
15103    pub LICE_GetPixel: Option<
15104        unsafe extern "C" fn(
15105            bm: *mut root::reaper_functions::LICE_IBitmap,
15106            x: ::std::os::raw::c_int,
15107            y: ::std::os::raw::c_int,
15108        ) -> root::reaper_functions::LICE_pixel,
15109    >,
15110    pub LICE_GradRect: Option<
15111        unsafe extern "C" fn(
15112            dest: *mut root::reaper_functions::LICE_IBitmap,
15113            dstx: ::std::os::raw::c_int,
15114            dsty: ::std::os::raw::c_int,
15115            dstw: ::std::os::raw::c_int,
15116            dsth: ::std::os::raw::c_int,
15117            ir: f32,
15118            ig: f32,
15119            ib: f32,
15120            ia: f32,
15121            drdx: f32,
15122            dgdx: f32,
15123            dbdx: f32,
15124            dadx: f32,
15125            drdy: f32,
15126            dgdy: f32,
15127            dbdy: f32,
15128            dady: f32,
15129            mode: ::std::os::raw::c_int,
15130        ),
15131    >,
15132    pub LICE_Line: Option<
15133        unsafe extern "C" fn(
15134            dest: *mut root::reaper_functions::LICE_IBitmap,
15135            x1: f32,
15136            y1: f32,
15137            x2: f32,
15138            y2: f32,
15139            color: root::reaper_functions::LICE_pixel,
15140            alpha: f32,
15141            mode: ::std::os::raw::c_int,
15142            aa: bool,
15143        ),
15144    >,
15145    pub LICE_LineInt: Option<
15146        unsafe extern "C" fn(
15147            dest: *mut root::reaper_functions::LICE_IBitmap,
15148            x1: ::std::os::raw::c_int,
15149            y1: ::std::os::raw::c_int,
15150            x2: ::std::os::raw::c_int,
15151            y2: ::std::os::raw::c_int,
15152            color: root::reaper_functions::LICE_pixel,
15153            alpha: f32,
15154            mode: ::std::os::raw::c_int,
15155            aa: bool,
15156        ),
15157    >,
15158    pub LICE_LoadPNG: Option<
15159        unsafe extern "C" fn(
15160            filename: *const ::std::os::raw::c_char,
15161            bmp: *mut root::reaper_functions::LICE_IBitmap,
15162        ) -> *mut root::reaper_functions::LICE_IBitmap,
15163    >,
15164    pub LICE_LoadPNGFromResource: Option<
15165        unsafe extern "C" fn(
15166            hInst: root::HINSTANCE,
15167            resid: *const ::std::os::raw::c_char,
15168            bmp: *mut root::reaper_functions::LICE_IBitmap,
15169        ) -> *mut root::reaper_functions::LICE_IBitmap,
15170    >,
15171    pub LICE_MeasureText: Option<
15172        unsafe extern "C" fn(
15173            string: *const ::std::os::raw::c_char,
15174            w: *mut ::std::os::raw::c_int,
15175            h: *mut ::std::os::raw::c_int,
15176        ),
15177    >,
15178    pub LICE_MultiplyAddRect: Option<
15179        unsafe extern "C" fn(
15180            dest: *mut root::reaper_functions::LICE_IBitmap,
15181            x: ::std::os::raw::c_int,
15182            y: ::std::os::raw::c_int,
15183            w: ::std::os::raw::c_int,
15184            h: ::std::os::raw::c_int,
15185            rsc: f32,
15186            gsc: f32,
15187            bsc: f32,
15188            asc: f32,
15189            radd: f32,
15190            gadd: f32,
15191            badd: f32,
15192            aadd: f32,
15193        ),
15194    >,
15195    pub LICE_PutPixel: Option<
15196        unsafe extern "C" fn(
15197            bm: *mut root::reaper_functions::LICE_IBitmap,
15198            x: ::std::os::raw::c_int,
15199            y: ::std::os::raw::c_int,
15200            color: root::reaper_functions::LICE_pixel,
15201            alpha: f32,
15202            mode: ::std::os::raw::c_int,
15203        ),
15204    >,
15205    pub LICE_RotatedBlit: Option<
15206        unsafe extern "C" fn(
15207            dest: *mut root::reaper_functions::LICE_IBitmap,
15208            src: *mut root::reaper_functions::LICE_IBitmap,
15209            dstx: ::std::os::raw::c_int,
15210            dsty: ::std::os::raw::c_int,
15211            dstw: ::std::os::raw::c_int,
15212            dsth: ::std::os::raw::c_int,
15213            srcx: f32,
15214            srcy: f32,
15215            srcw: f32,
15216            srch: f32,
15217            angle: f32,
15218            cliptosourcerect: bool,
15219            alpha: f32,
15220            mode: ::std::os::raw::c_int,
15221            rotxcent: f32,
15222            rotycent: f32,
15223        ),
15224    >,
15225    pub LICE_RoundRect: Option<
15226        unsafe extern "C" fn(
15227            drawbm: *mut root::reaper_functions::LICE_IBitmap,
15228            xpos: f32,
15229            ypos: f32,
15230            w: f32,
15231            h: f32,
15232            cornerradius: ::std::os::raw::c_int,
15233            col: root::reaper_functions::LICE_pixel,
15234            alpha: f32,
15235            mode: ::std::os::raw::c_int,
15236            aa: bool,
15237        ),
15238    >,
15239    pub LICE_ScaledBlit: Option<
15240        unsafe extern "C" fn(
15241            dest: *mut root::reaper_functions::LICE_IBitmap,
15242            src: *mut root::reaper_functions::LICE_IBitmap,
15243            dstx: ::std::os::raw::c_int,
15244            dsty: ::std::os::raw::c_int,
15245            dstw: ::std::os::raw::c_int,
15246            dsth: ::std::os::raw::c_int,
15247            srcx: f32,
15248            srcy: f32,
15249            srcw: f32,
15250            srch: f32,
15251            alpha: f32,
15252            mode: ::std::os::raw::c_int,
15253        ),
15254    >,
15255    pub LICE_SimpleFill: Option<
15256        unsafe extern "C" fn(
15257            dest: *mut root::reaper_functions::LICE_IBitmap,
15258            x: ::std::os::raw::c_int,
15259            y: ::std::os::raw::c_int,
15260            newcolor: root::reaper_functions::LICE_pixel,
15261            comparemask: root::reaper_functions::LICE_pixel,
15262            keepmask: root::reaper_functions::LICE_pixel,
15263        ),
15264    >,
15265    pub Loop_OnArrow: Option<
15266        unsafe extern "C" fn(
15267            project: *mut root::ReaProject,
15268            direction: ::std::os::raw::c_int,
15269        ) -> bool,
15270    >,
15271    pub Main_OnCommand:
15272        Option<extern "C" fn(command: ::std::os::raw::c_int, flag: ::std::os::raw::c_int)>,
15273    pub Main_OnCommandEx: Option<
15274        unsafe extern "C" fn(
15275            command: ::std::os::raw::c_int,
15276            flag: ::std::os::raw::c_int,
15277            proj: *mut root::ReaProject,
15278        ),
15279    >,
15280    pub Main_openProject: Option<unsafe extern "C" fn(name: *const ::std::os::raw::c_char)>,
15281    pub Main_SaveProject:
15282        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, forceSaveAsInOptional: bool)>,
15283    pub Main_UpdateLoopInfo: Option<extern "C" fn(ignoremask: ::std::os::raw::c_int)>,
15284    pub MarkProjectDirty: Option<unsafe extern "C" fn(proj: *mut root::ReaProject)>,
15285    pub MarkTrackItemsDirty:
15286        Option<unsafe extern "C" fn(track: *mut root::MediaTrack, item: *mut root::MediaItem)>,
15287    pub Master_GetPlayRate: Option<unsafe extern "C" fn(project: *mut root::ReaProject) -> f64>,
15288    pub Master_GetPlayRateAtTime:
15289        Option<unsafe extern "C" fn(time_s: f64, proj: *mut root::ReaProject) -> f64>,
15290    pub Master_GetTempo: Option<extern "C" fn() -> f64>,
15291    pub Master_NormalizePlayRate: Option<extern "C" fn(playrate: f64, isnormalized: bool) -> f64>,
15292    pub Master_NormalizeTempo: Option<extern "C" fn(bpm: f64, isnormalized: bool) -> f64>,
15293    pub MB: Option<
15294        unsafe extern "C" fn(
15295            msg: *const ::std::os::raw::c_char,
15296            title: *const ::std::os::raw::c_char,
15297            type_: ::std::os::raw::c_int,
15298        ) -> ::std::os::raw::c_int,
15299    >,
15300    pub MediaItemDescendsFromTrack: Option<
15301        unsafe extern "C" fn(
15302            item: *mut root::MediaItem,
15303            track: *mut root::MediaTrack,
15304        ) -> ::std::os::raw::c_int,
15305    >,
15306    pub MIDI_CountEvts: Option<
15307        unsafe extern "C" fn(
15308            take: *mut root::MediaItem_Take,
15309            notecntOut: *mut ::std::os::raw::c_int,
15310            ccevtcntOut: *mut ::std::os::raw::c_int,
15311            textsyxevtcntOut: *mut ::std::os::raw::c_int,
15312        ) -> ::std::os::raw::c_int,
15313    >,
15314    pub MIDI_DeleteCC: Option<
15315        unsafe extern "C" fn(take: *mut root::MediaItem_Take, ccidx: ::std::os::raw::c_int) -> bool,
15316    >,
15317    pub MIDI_DeleteEvt: Option<
15318        unsafe extern "C" fn(
15319            take: *mut root::MediaItem_Take,
15320            evtidx: ::std::os::raw::c_int,
15321        ) -> bool,
15322    >,
15323    pub MIDI_DeleteNote: Option<
15324        unsafe extern "C" fn(
15325            take: *mut root::MediaItem_Take,
15326            noteidx: ::std::os::raw::c_int,
15327        ) -> bool,
15328    >,
15329    pub MIDI_DeleteTextSysexEvt: Option<
15330        unsafe extern "C" fn(
15331            take: *mut root::MediaItem_Take,
15332            textsyxevtidx: ::std::os::raw::c_int,
15333        ) -> bool,
15334    >,
15335    pub MIDI_DisableSort: Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take)>,
15336    pub MIDI_EnumSelCC: Option<
15337        unsafe extern "C" fn(
15338            take: *mut root::MediaItem_Take,
15339            ccidx: ::std::os::raw::c_int,
15340        ) -> ::std::os::raw::c_int,
15341    >,
15342    pub MIDI_EnumSelEvts: Option<
15343        unsafe extern "C" fn(
15344            take: *mut root::MediaItem_Take,
15345            evtidx: ::std::os::raw::c_int,
15346        ) -> ::std::os::raw::c_int,
15347    >,
15348    pub MIDI_EnumSelNotes: Option<
15349        unsafe extern "C" fn(
15350            take: *mut root::MediaItem_Take,
15351            noteidx: ::std::os::raw::c_int,
15352        ) -> ::std::os::raw::c_int,
15353    >,
15354    pub MIDI_EnumSelTextSysexEvts: Option<
15355        unsafe extern "C" fn(
15356            take: *mut root::MediaItem_Take,
15357            textsyxidx: ::std::os::raw::c_int,
15358        ) -> ::std::os::raw::c_int,
15359    >,
15360    pub MIDI_eventlist_Create: Option<extern "C" fn() -> *mut root::MIDI_eventlist>,
15361    pub MIDI_eventlist_Destroy: Option<unsafe extern "C" fn(evtlist: *mut root::MIDI_eventlist)>,
15362    pub MIDI_GetAllEvts: Option<
15363        unsafe extern "C" fn(
15364            take: *mut root::MediaItem_Take,
15365            bufNeedBig: *mut ::std::os::raw::c_char,
15366            bufNeedBig_sz: *mut ::std::os::raw::c_int,
15367        ) -> bool,
15368    >,
15369    pub MIDI_GetCC: Option<
15370        unsafe extern "C" fn(
15371            take: *mut root::MediaItem_Take,
15372            ccidx: ::std::os::raw::c_int,
15373            selectedOut: *mut bool,
15374            mutedOut: *mut bool,
15375            ppqposOut: *mut f64,
15376            chanmsgOut: *mut ::std::os::raw::c_int,
15377            chanOut: *mut ::std::os::raw::c_int,
15378            msg2Out: *mut ::std::os::raw::c_int,
15379            msg3Out: *mut ::std::os::raw::c_int,
15380        ) -> bool,
15381    >,
15382    pub MIDI_GetCCShape: Option<
15383        unsafe extern "C" fn(
15384            take: *mut root::MediaItem_Take,
15385            ccidx: ::std::os::raw::c_int,
15386            shapeOut: *mut ::std::os::raw::c_int,
15387            beztensionOut: *mut f64,
15388        ) -> bool,
15389    >,
15390    pub MIDI_GetEvt: Option<
15391        unsafe extern "C" fn(
15392            take: *mut root::MediaItem_Take,
15393            evtidx: ::std::os::raw::c_int,
15394            selectedOut: *mut bool,
15395            mutedOut: *mut bool,
15396            ppqposOut: *mut f64,
15397            msg: *mut ::std::os::raw::c_char,
15398            msg_sz: *mut ::std::os::raw::c_int,
15399        ) -> bool,
15400    >,
15401    pub MIDI_GetGrid: Option<
15402        unsafe extern "C" fn(
15403            take: *mut root::MediaItem_Take,
15404            swingOutOptional: *mut f64,
15405            noteLenOutOptional: *mut f64,
15406        ) -> f64,
15407    >,
15408    pub MIDI_GetHash: Option<
15409        unsafe extern "C" fn(
15410            take: *mut root::MediaItem_Take,
15411            notesonly: bool,
15412            hash: *mut ::std::os::raw::c_char,
15413            hash_sz: ::std::os::raw::c_int,
15414        ) -> bool,
15415    >,
15416    pub MIDI_GetNote: Option<
15417        unsafe extern "C" fn(
15418            take: *mut root::MediaItem_Take,
15419            noteidx: ::std::os::raw::c_int,
15420            selectedOut: *mut bool,
15421            mutedOut: *mut bool,
15422            startppqposOut: *mut f64,
15423            endppqposOut: *mut f64,
15424            chanOut: *mut ::std::os::raw::c_int,
15425            pitchOut: *mut ::std::os::raw::c_int,
15426            velOut: *mut ::std::os::raw::c_int,
15427        ) -> bool,
15428    >,
15429    pub MIDI_GetPPQPos_EndOfMeasure:
15430        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take, ppqpos: f64) -> f64>,
15431    pub MIDI_GetPPQPos_StartOfMeasure:
15432        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take, ppqpos: f64) -> f64>,
15433    pub MIDI_GetPPQPosFromProjQN:
15434        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take, projqn: f64) -> f64>,
15435    pub MIDI_GetPPQPosFromProjTime:
15436        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take, projtime: f64) -> f64>,
15437    pub MIDI_GetProjQNFromPPQPos:
15438        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take, ppqpos: f64) -> f64>,
15439    pub MIDI_GetProjTimeFromPPQPos:
15440        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take, ppqpos: f64) -> f64>,
15441    pub MIDI_GetScale: Option<
15442        unsafe extern "C" fn(
15443            take: *mut root::MediaItem_Take,
15444            rootOut: *mut ::std::os::raw::c_int,
15445            scaleOut: *mut ::std::os::raw::c_int,
15446            name: *mut ::std::os::raw::c_char,
15447            name_sz: ::std::os::raw::c_int,
15448        ) -> bool,
15449    >,
15450    pub MIDI_GetTextSysexEvt: Option<
15451        unsafe extern "C" fn(
15452            take: *mut root::MediaItem_Take,
15453            textsyxevtidx: ::std::os::raw::c_int,
15454            selectedOutOptional: *mut bool,
15455            mutedOutOptional: *mut bool,
15456            ppqposOutOptional: *mut f64,
15457            typeOutOptional: *mut ::std::os::raw::c_int,
15458            msgOptional: *mut ::std::os::raw::c_char,
15459            msgOptional_sz: *mut ::std::os::raw::c_int,
15460        ) -> bool,
15461    >,
15462    pub MIDI_GetTrackHash: Option<
15463        unsafe extern "C" fn(
15464            track: *mut root::MediaTrack,
15465            notesonly: bool,
15466            hash: *mut ::std::os::raw::c_char,
15467            hash_sz: ::std::os::raw::c_int,
15468        ) -> bool,
15469    >,
15470    pub MIDI_InsertCC: Option<
15471        unsafe extern "C" fn(
15472            take: *mut root::MediaItem_Take,
15473            selected: bool,
15474            muted: bool,
15475            ppqpos: f64,
15476            chanmsg: ::std::os::raw::c_int,
15477            chan: ::std::os::raw::c_int,
15478            msg2: ::std::os::raw::c_int,
15479            msg3: ::std::os::raw::c_int,
15480        ) -> bool,
15481    >,
15482    pub MIDI_InsertEvt: Option<
15483        unsafe extern "C" fn(
15484            take: *mut root::MediaItem_Take,
15485            selected: bool,
15486            muted: bool,
15487            ppqpos: f64,
15488            bytestr: *const ::std::os::raw::c_char,
15489            bytestr_sz: ::std::os::raw::c_int,
15490        ) -> bool,
15491    >,
15492    pub MIDI_InsertNote: Option<
15493        unsafe extern "C" fn(
15494            take: *mut root::MediaItem_Take,
15495            selected: bool,
15496            muted: bool,
15497            startppqpos: f64,
15498            endppqpos: f64,
15499            chan: ::std::os::raw::c_int,
15500            pitch: ::std::os::raw::c_int,
15501            vel: ::std::os::raw::c_int,
15502            noSortInOptional: *const bool,
15503        ) -> bool,
15504    >,
15505    pub MIDI_InsertTextSysexEvt: Option<
15506        unsafe extern "C" fn(
15507            take: *mut root::MediaItem_Take,
15508            selected: bool,
15509            muted: bool,
15510            ppqpos: f64,
15511            type_: ::std::os::raw::c_int,
15512            bytestr: *const ::std::os::raw::c_char,
15513            bytestr_sz: ::std::os::raw::c_int,
15514        ) -> bool,
15515    >,
15516    pub midi_reinit: Option<extern "C" fn()>,
15517    pub MIDI_SelectAll: Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take, select: bool)>,
15518    pub MIDI_SetAllEvts: Option<
15519        unsafe extern "C" fn(
15520            take: *mut root::MediaItem_Take,
15521            buf: *const ::std::os::raw::c_char,
15522            buf_sz: ::std::os::raw::c_int,
15523        ) -> bool,
15524    >,
15525    pub MIDI_SetCC: Option<
15526        unsafe extern "C" fn(
15527            take: *mut root::MediaItem_Take,
15528            ccidx: ::std::os::raw::c_int,
15529            selectedInOptional: *const bool,
15530            mutedInOptional: *const bool,
15531            ppqposInOptional: *const f64,
15532            chanmsgInOptional: *const ::std::os::raw::c_int,
15533            chanInOptional: *const ::std::os::raw::c_int,
15534            msg2InOptional: *const ::std::os::raw::c_int,
15535            msg3InOptional: *const ::std::os::raw::c_int,
15536            noSortInOptional: *const bool,
15537        ) -> bool,
15538    >,
15539    pub MIDI_SetCCShape: Option<
15540        unsafe extern "C" fn(
15541            take: *mut root::MediaItem_Take,
15542            ccidx: ::std::os::raw::c_int,
15543            shape: ::std::os::raw::c_int,
15544            beztension: f64,
15545            noSortInOptional: *const bool,
15546        ) -> bool,
15547    >,
15548    pub MIDI_SetEvt: Option<
15549        unsafe extern "C" fn(
15550            take: *mut root::MediaItem_Take,
15551            evtidx: ::std::os::raw::c_int,
15552            selectedInOptional: *const bool,
15553            mutedInOptional: *const bool,
15554            ppqposInOptional: *const f64,
15555            msgOptional: *const ::std::os::raw::c_char,
15556            msgOptional_sz: ::std::os::raw::c_int,
15557            noSortInOptional: *const bool,
15558        ) -> bool,
15559    >,
15560    pub MIDI_SetItemExtents:
15561        Option<unsafe extern "C" fn(item: *mut root::MediaItem, startQN: f64, endQN: f64) -> bool>,
15562    pub MIDI_SetNote: Option<
15563        unsafe extern "C" fn(
15564            take: *mut root::MediaItem_Take,
15565            noteidx: ::std::os::raw::c_int,
15566            selectedInOptional: *const bool,
15567            mutedInOptional: *const bool,
15568            startppqposInOptional: *const f64,
15569            endppqposInOptional: *const f64,
15570            chanInOptional: *const ::std::os::raw::c_int,
15571            pitchInOptional: *const ::std::os::raw::c_int,
15572            velInOptional: *const ::std::os::raw::c_int,
15573            noSortInOptional: *const bool,
15574        ) -> bool,
15575    >,
15576    pub MIDI_SetTextSysexEvt: Option<
15577        unsafe extern "C" fn(
15578            take: *mut root::MediaItem_Take,
15579            textsyxevtidx: ::std::os::raw::c_int,
15580            selectedInOptional: *const bool,
15581            mutedInOptional: *const bool,
15582            ppqposInOptional: *const f64,
15583            typeInOptional: *const ::std::os::raw::c_int,
15584            msgOptional: *const ::std::os::raw::c_char,
15585            msgOptional_sz: ::std::os::raw::c_int,
15586            noSortInOptional: *const bool,
15587        ) -> bool,
15588    >,
15589    pub MIDI_Sort: Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take)>,
15590    pub MIDIEditor_GetActive: Option<extern "C" fn() -> root::HWND>,
15591    pub MIDIEditor_GetMode: Option<extern "C" fn(midieditor: root::HWND) -> ::std::os::raw::c_int>,
15592    pub MIDIEditor_GetSetting_int: Option<
15593        unsafe extern "C" fn(
15594            midieditor: root::HWND,
15595            setting_desc: *const ::std::os::raw::c_char,
15596        ) -> ::std::os::raw::c_int,
15597    >,
15598    pub MIDIEditor_GetSetting_str: Option<
15599        unsafe extern "C" fn(
15600            midieditor: root::HWND,
15601            setting_desc: *const ::std::os::raw::c_char,
15602            buf: *mut ::std::os::raw::c_char,
15603            buf_sz: ::std::os::raw::c_int,
15604        ) -> bool,
15605    >,
15606    pub MIDIEditor_GetTake:
15607        Option<extern "C" fn(midieditor: root::HWND) -> *mut root::MediaItem_Take>,
15608    pub MIDIEditor_LastFocused_OnCommand:
15609        Option<extern "C" fn(command_id: ::std::os::raw::c_int, islistviewcommand: bool) -> bool>,
15610    pub MIDIEditor_OnCommand:
15611        Option<extern "C" fn(midieditor: root::HWND, command_id: ::std::os::raw::c_int) -> bool>,
15612    pub MIDIEditor_SetSetting_int: Option<
15613        unsafe extern "C" fn(
15614            midieditor: root::HWND,
15615            setting_desc: *const ::std::os::raw::c_char,
15616            setting: ::std::os::raw::c_int,
15617        ) -> bool,
15618    >,
15619    pub mkpanstr: Option<unsafe extern "C" fn(strNeed64: *mut ::std::os::raw::c_char, pan: f64)>,
15620    pub mkvolpanstr:
15621        Option<unsafe extern "C" fn(strNeed64: *mut ::std::os::raw::c_char, vol: f64, pan: f64)>,
15622    pub mkvolstr: Option<unsafe extern "C" fn(strNeed64: *mut ::std::os::raw::c_char, vol: f64)>,
15623    pub MoveEditCursor: Option<extern "C" fn(adjamt: f64, dosel: bool)>,
15624    pub MoveMediaItemToTrack: Option<
15625        unsafe extern "C" fn(item: *mut root::MediaItem, desttr: *mut root::MediaTrack) -> bool,
15626    >,
15627    pub MuteAllTracks: Option<extern "C" fn(mute: bool)>,
15628    pub my_getViewport:
15629        Option<unsafe extern "C" fn(r: *mut root::RECT, sr: *const root::RECT, wantWorkArea: bool)>,
15630    pub NamedCommandLookup: Option<
15631        unsafe extern "C" fn(command_name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
15632    >,
15633    pub OnPauseButton: Option<extern "C" fn()>,
15634    pub OnPauseButtonEx: Option<unsafe extern "C" fn(proj: *mut root::ReaProject)>,
15635    pub OnPlayButton: Option<extern "C" fn()>,
15636    pub OnPlayButtonEx: Option<unsafe extern "C" fn(proj: *mut root::ReaProject)>,
15637    pub OnStopButton: Option<extern "C" fn()>,
15638    pub OnStopButtonEx: Option<unsafe extern "C" fn(proj: *mut root::ReaProject)>,
15639    pub OpenColorThemeFile:
15640        Option<unsafe extern "C" fn(fn_: *const ::std::os::raw::c_char) -> bool>,
15641    pub OpenMediaExplorer: Option<
15642        unsafe extern "C" fn(mediafn: *const ::std::os::raw::c_char, play: bool) -> root::HWND,
15643    >,
15644    pub OscLocalMessageToHost: Option<
15645        unsafe extern "C" fn(message: *const ::std::os::raw::c_char, valueInOptional: *const f64),
15646    >,
15647    pub parse_timestr: Option<unsafe extern "C" fn(buf: *const ::std::os::raw::c_char) -> f64>,
15648    pub parse_timestr_len: Option<
15649        unsafe extern "C" fn(
15650            buf: *const ::std::os::raw::c_char,
15651            offset: f64,
15652            modeoverride: ::std::os::raw::c_int,
15653        ) -> f64,
15654    >,
15655    pub parse_timestr_pos: Option<
15656        unsafe extern "C" fn(
15657            buf: *const ::std::os::raw::c_char,
15658            modeoverride: ::std::os::raw::c_int,
15659        ) -> f64,
15660    >,
15661    pub parsepanstr: Option<unsafe extern "C" fn(str: *const ::std::os::raw::c_char) -> f64>,
15662    pub PCM_Sink_Create: Option<
15663        unsafe extern "C" fn(
15664            filename: *const ::std::os::raw::c_char,
15665            cfg: *const ::std::os::raw::c_char,
15666            cfg_sz: ::std::os::raw::c_int,
15667            nch: ::std::os::raw::c_int,
15668            srate: ::std::os::raw::c_int,
15669            buildpeaks: bool,
15670        ) -> *mut root::PCM_sink,
15671    >,
15672    pub PCM_Sink_CreateEx: Option<
15673        unsafe extern "C" fn(
15674            proj: *mut root::ReaProject,
15675            filename: *const ::std::os::raw::c_char,
15676            cfg: *const ::std::os::raw::c_char,
15677            cfg_sz: ::std::os::raw::c_int,
15678            nch: ::std::os::raw::c_int,
15679            srate: ::std::os::raw::c_int,
15680            buildpeaks: bool,
15681        ) -> *mut root::PCM_sink,
15682    >,
15683    pub PCM_Sink_CreateMIDIFile: Option<
15684        unsafe extern "C" fn(
15685            filename: *const ::std::os::raw::c_char,
15686            cfg: *const ::std::os::raw::c_char,
15687            cfg_sz: ::std::os::raw::c_int,
15688            bpm: f64,
15689            div: ::std::os::raw::c_int,
15690        ) -> *mut root::PCM_sink,
15691    >,
15692    pub PCM_Sink_CreateMIDIFileEx: Option<
15693        unsafe extern "C" fn(
15694            proj: *mut root::ReaProject,
15695            filename: *const ::std::os::raw::c_char,
15696            cfg: *const ::std::os::raw::c_char,
15697            cfg_sz: ::std::os::raw::c_int,
15698            bpm: f64,
15699            div: ::std::os::raw::c_int,
15700        ) -> *mut root::PCM_sink,
15701    >,
15702    pub PCM_Sink_Enum: Option<
15703        unsafe extern "C" fn(
15704            idx: ::std::os::raw::c_int,
15705            descstrOut: *mut *const ::std::os::raw::c_char,
15706        ) -> ::std::os::raw::c_uint,
15707    >,
15708    pub PCM_Sink_GetExtension: Option<
15709        unsafe extern "C" fn(
15710            data: *const ::std::os::raw::c_char,
15711            data_sz: ::std::os::raw::c_int,
15712        ) -> *const ::std::os::raw::c_char,
15713    >,
15714    pub PCM_Sink_ShowConfig: Option<
15715        unsafe extern "C" fn(
15716            cfg: *const ::std::os::raw::c_char,
15717            cfg_sz: ::std::os::raw::c_int,
15718            hwndParent: root::HWND,
15719        ) -> root::HWND,
15720    >,
15721    pub PCM_Source_CreateFromFile: Option<
15722        unsafe extern "C" fn(filename: *const ::std::os::raw::c_char) -> *mut root::PCM_source,
15723    >,
15724    pub PCM_Source_CreateFromFileEx: Option<
15725        unsafe extern "C" fn(
15726            filename: *const ::std::os::raw::c_char,
15727            forcenoMidiImp: bool,
15728        ) -> *mut root::PCM_source,
15729    >,
15730    pub PCM_Source_CreateFromSimple: Option<
15731        unsafe extern "C" fn(
15732            dec: *mut root::ISimpleMediaDecoder,
15733            fn_: *const ::std::os::raw::c_char,
15734        ) -> *mut root::PCM_source,
15735    >,
15736    pub PCM_Source_CreateFromType: Option<
15737        unsafe extern "C" fn(sourcetype: *const ::std::os::raw::c_char) -> *mut root::PCM_source,
15738    >,
15739    pub PCM_Source_Destroy: Option<unsafe extern "C" fn(src: *mut root::PCM_source)>,
15740    pub PCM_Source_GetPeaks: Option<
15741        unsafe extern "C" fn(
15742            src: *mut root::PCM_source,
15743            peakrate: f64,
15744            starttime: f64,
15745            numchannels: ::std::os::raw::c_int,
15746            numsamplesperchannel: ::std::os::raw::c_int,
15747            want_extra_type: ::std::os::raw::c_int,
15748            buf: *mut f64,
15749        ) -> ::std::os::raw::c_int,
15750    >,
15751    pub PCM_Source_GetSectionInfo: Option<
15752        unsafe extern "C" fn(
15753            src: *mut root::PCM_source,
15754            offsOut: *mut f64,
15755            lenOut: *mut f64,
15756            revOut: *mut bool,
15757        ) -> bool,
15758    >,
15759    pub PeakBuild_Create: Option<
15760        unsafe extern "C" fn(
15761            src: *mut root::PCM_source,
15762            fn_: *const ::std::os::raw::c_char,
15763            srate: ::std::os::raw::c_int,
15764            nch: ::std::os::raw::c_int,
15765        ) -> *mut root::REAPER_PeakBuild_Interface,
15766    >,
15767    pub PeakBuild_CreateEx: Option<
15768        unsafe extern "C" fn(
15769            src: *mut root::PCM_source,
15770            fn_: *const ::std::os::raw::c_char,
15771            srate: ::std::os::raw::c_int,
15772            nch: ::std::os::raw::c_int,
15773            flags: ::std::os::raw::c_int,
15774        ) -> *mut root::REAPER_PeakBuild_Interface,
15775    >,
15776    pub PeakGet_Create: Option<
15777        unsafe extern "C" fn(
15778            fn_: *const ::std::os::raw::c_char,
15779            srate: ::std::os::raw::c_int,
15780            nch: ::std::os::raw::c_int,
15781        ) -> *mut root::REAPER_PeakGet_Interface,
15782    >,
15783    pub PitchShiftSubModeMenu: Option<
15784        extern "C" fn(
15785            hwnd: root::HWND,
15786            x: ::std::os::raw::c_int,
15787            y: ::std::os::raw::c_int,
15788            mode: ::std::os::raw::c_int,
15789            submode_sel: ::std::os::raw::c_int,
15790        ) -> ::std::os::raw::c_int,
15791    >,
15792    pub PlayPreview: Option<
15793        unsafe extern "C" fn(preview: *mut root::preview_register_t) -> ::std::os::raw::c_int,
15794    >,
15795    pub PlayPreviewEx: Option<
15796        unsafe extern "C" fn(
15797            preview: *mut root::preview_register_t,
15798            bufflags: ::std::os::raw::c_int,
15799            MSI: f64,
15800        ) -> ::std::os::raw::c_int,
15801    >,
15802    pub PlayTrackPreview: Option<
15803        unsafe extern "C" fn(preview: *mut root::preview_register_t) -> ::std::os::raw::c_int,
15804    >,
15805    pub PlayTrackPreview2: Option<
15806        unsafe extern "C" fn(
15807            proj: *mut root::ReaProject,
15808            preview: *mut root::preview_register_t,
15809        ) -> ::std::os::raw::c_int,
15810    >,
15811    pub PlayTrackPreview2Ex: Option<
15812        unsafe extern "C" fn(
15813            proj: *mut root::ReaProject,
15814            preview: *mut root::preview_register_t,
15815            flags: ::std::os::raw::c_int,
15816            msi: f64,
15817        ) -> ::std::os::raw::c_int,
15818    >,
15819    pub plugin_getapi: Option<
15820        unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_void,
15821    >,
15822    pub plugin_getFilterList: Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
15823    pub plugin_getImportableProjectFilterList:
15824        Option<extern "C" fn() -> *const ::std::os::raw::c_char>,
15825    pub plugin_register: Option<
15826        unsafe extern "C" fn(
15827            name: *const ::std::os::raw::c_char,
15828            infostruct: *mut ::std::os::raw::c_void,
15829        ) -> ::std::os::raw::c_int,
15830    >,
15831    pub PluginWantsAlwaysRunFx: Option<extern "C" fn(amt: ::std::os::raw::c_int)>,
15832    pub PreventUIRefresh: Option<extern "C" fn(prevent_count: ::std::os::raw::c_int)>,
15833    pub projectconfig_var_addr: Option<
15834        unsafe extern "C" fn(
15835            proj: *mut root::ReaProject,
15836            idx: ::std::os::raw::c_int,
15837        ) -> *mut ::std::os::raw::c_void,
15838    >,
15839    pub projectconfig_var_getoffs: Option<
15840        unsafe extern "C" fn(
15841            name: *const ::std::os::raw::c_char,
15842            szOut: *mut ::std::os::raw::c_int,
15843        ) -> ::std::os::raw::c_int,
15844    >,
15845    pub realloc_cmd_ptr: Option<
15846        unsafe extern "C" fn(
15847            ptr: *mut *mut ::std::os::raw::c_char,
15848            ptr_size: *mut ::std::os::raw::c_int,
15849            new_size: ::std::os::raw::c_int,
15850        ) -> bool,
15851    >,
15852    pub ReaperGetPitchShiftAPI:
15853        Option<extern "C" fn(version: ::std::os::raw::c_int) -> *mut root::IReaperPitchShift>,
15854    pub ReaScriptError: Option<unsafe extern "C" fn(errmsg: *const ::std::os::raw::c_char)>,
15855    pub RecursiveCreateDirectory: Option<
15856        unsafe extern "C" fn(
15857            path: *const ::std::os::raw::c_char,
15858            ignored: usize,
15859        ) -> ::std::os::raw::c_int,
15860    >,
15861    pub reduce_open_files:
15862        Option<extern "C" fn(flags: ::std::os::raw::c_int) -> ::std::os::raw::c_int>,
15863    pub RefreshToolbar: Option<extern "C" fn(command_id: ::std::os::raw::c_int)>,
15864    pub RefreshToolbar2:
15865        Option<extern "C" fn(section_id: ::std::os::raw::c_int, command_id: ::std::os::raw::c_int)>,
15866    pub relative_fn: Option<
15867        unsafe extern "C" fn(
15868            in_: *const ::std::os::raw::c_char,
15869            out: *mut ::std::os::raw::c_char,
15870            out_sz: ::std::os::raw::c_int,
15871        ),
15872    >,
15873    pub RemoveTrackSend: Option<
15874        unsafe extern "C" fn(
15875            tr: *mut root::MediaTrack,
15876            category: ::std::os::raw::c_int,
15877            sendidx: ::std::os::raw::c_int,
15878        ) -> bool,
15879    >,
15880    pub RenderFileSection: Option<
15881        unsafe extern "C" fn(
15882            source_filename: *const ::std::os::raw::c_char,
15883            target_filename: *const ::std::os::raw::c_char,
15884            start_percent: f64,
15885            end_percent: f64,
15886            playrate: f64,
15887        ) -> bool,
15888    >,
15889    pub ReorderSelectedTracks: Option<
15890        extern "C" fn(
15891            beforeTrackIdx: ::std::os::raw::c_int,
15892            makePrevFolder: ::std::os::raw::c_int,
15893        ) -> bool,
15894    >,
15895    pub Resample_EnumModes:
15896        Option<extern "C" fn(mode: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char>,
15897    pub Resampler_Create: Option<extern "C" fn() -> *mut root::REAPER_Resample_Interface>,
15898    pub resolve_fn: Option<
15899        unsafe extern "C" fn(
15900            in_: *const ::std::os::raw::c_char,
15901            out: *mut ::std::os::raw::c_char,
15902            out_sz: ::std::os::raw::c_int,
15903        ),
15904    >,
15905    pub resolve_fn2: Option<
15906        unsafe extern "C" fn(
15907            in_: *const ::std::os::raw::c_char,
15908            out: *mut ::std::os::raw::c_char,
15909            out_sz: ::std::os::raw::c_int,
15910            checkSubDirOptional: *const ::std::os::raw::c_char,
15911        ),
15912    >,
15913    pub ReverseNamedCommandLookup:
15914        Option<extern "C" fn(command_id: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char>,
15915    pub ScaleFromEnvelopeMode:
15916        Option<extern "C" fn(scaling_mode: ::std::os::raw::c_int, val: f64) -> f64>,
15917    pub ScaleToEnvelopeMode:
15918        Option<extern "C" fn(scaling_mode: ::std::os::raw::c_int, val: f64) -> f64>,
15919    pub screenset_register: Option<
15920        unsafe extern "C" fn(
15921            id: *mut ::std::os::raw::c_char,
15922            callbackFunc: *mut ::std::os::raw::c_void,
15923            param: *mut ::std::os::raw::c_void,
15924        ),
15925    >,
15926    pub screenset_registerNew: Option<
15927        unsafe extern "C" fn(
15928            id: *mut ::std::os::raw::c_char,
15929            callbackFunc: root::screensetNewCallbackFunc,
15930            param: *mut ::std::os::raw::c_void,
15931        ),
15932    >,
15933    pub screenset_unregister: Option<unsafe extern "C" fn(id: *mut ::std::os::raw::c_char)>,
15934    pub screenset_unregisterByParam:
15935        Option<unsafe extern "C" fn(param: *mut ::std::os::raw::c_void)>,
15936    pub screenset_updateLastFocus: Option<extern "C" fn(prevWin: root::HWND)>,
15937    pub SectionFromUniqueID:
15938        Option<extern "C" fn(uniqueID: ::std::os::raw::c_int) -> *mut root::KbdSectionInfo>,
15939    pub SelectAllMediaItems:
15940        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, selected: bool)>,
15941    pub SelectProjectInstance: Option<unsafe extern "C" fn(proj: *mut root::ReaProject)>,
15942    pub SendLocalOscMessage: Option<
15943        unsafe extern "C" fn(
15944            local_osc_handler: *mut ::std::os::raw::c_void,
15945            msg: *const ::std::os::raw::c_char,
15946            msglen: ::std::os::raw::c_int,
15947        ),
15948    >,
15949    pub SetActiveTake: Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take)>,
15950    pub SetAutomationMode: Option<extern "C" fn(mode: ::std::os::raw::c_int, onlySel: bool)>,
15951    pub SetCurrentBPM:
15952        Option<unsafe extern "C" fn(__proj: *mut root::ReaProject, bpm: f64, wantUndo: bool)>,
15953    pub SetCursorContext: Option<
15954        unsafe extern "C" fn(mode: ::std::os::raw::c_int, envInOptional: *mut root::TrackEnvelope),
15955    >,
15956    pub SetEditCurPos: Option<extern "C" fn(time: f64, moveview: bool, seekplay: bool)>,
15957    pub SetEditCurPos2: Option<
15958        unsafe extern "C" fn(
15959            proj: *mut root::ReaProject,
15960            time: f64,
15961            moveview: bool,
15962            seekplay: bool,
15963        ),
15964    >,
15965    pub SetEnvelopePoint: Option<
15966        unsafe extern "C" fn(
15967            envelope: *mut root::TrackEnvelope,
15968            ptidx: ::std::os::raw::c_int,
15969            timeInOptional: *mut f64,
15970            valueInOptional: *mut f64,
15971            shapeInOptional: *mut ::std::os::raw::c_int,
15972            tensionInOptional: *mut f64,
15973            selectedInOptional: *mut bool,
15974            noSortInOptional: *mut bool,
15975        ) -> bool,
15976    >,
15977    pub SetEnvelopePointEx: Option<
15978        unsafe extern "C" fn(
15979            envelope: *mut root::TrackEnvelope,
15980            autoitem_idx: ::std::os::raw::c_int,
15981            ptidx: ::std::os::raw::c_int,
15982            timeInOptional: *mut f64,
15983            valueInOptional: *mut f64,
15984            shapeInOptional: *mut ::std::os::raw::c_int,
15985            tensionInOptional: *mut f64,
15986            selectedInOptional: *mut bool,
15987            noSortInOptional: *mut bool,
15988        ) -> bool,
15989    >,
15990    pub SetEnvelopeStateChunk: Option<
15991        unsafe extern "C" fn(
15992            env: *mut root::TrackEnvelope,
15993            str: *const ::std::os::raw::c_char,
15994            isundoOptional: bool,
15995        ) -> bool,
15996    >,
15997    pub SetExtState: Option<
15998        unsafe extern "C" fn(
15999            section: *const ::std::os::raw::c_char,
16000            key: *const ::std::os::raw::c_char,
16001            value: *const ::std::os::raw::c_char,
16002            persist: bool,
16003        ),
16004    >,
16005    pub SetGlobalAutomationOverride: Option<extern "C" fn(mode: ::std::os::raw::c_int)>,
16006    pub SetItemStateChunk: Option<
16007        unsafe extern "C" fn(
16008            item: *mut root::MediaItem,
16009            str: *const ::std::os::raw::c_char,
16010            isundoOptional: bool,
16011        ) -> bool,
16012    >,
16013    pub SetMasterTrackVisibility:
16014        Option<extern "C" fn(flag: ::std::os::raw::c_int) -> ::std::os::raw::c_int>,
16015    pub SetMediaItemInfo_Value: Option<
16016        unsafe extern "C" fn(
16017            item: *mut root::MediaItem,
16018            parmname: *const ::std::os::raw::c_char,
16019            newvalue: f64,
16020        ) -> bool,
16021    >,
16022    pub SetMediaItemLength: Option<
16023        unsafe extern "C" fn(item: *mut root::MediaItem, length: f64, refreshUI: bool) -> bool,
16024    >,
16025    pub SetMediaItemPosition: Option<
16026        unsafe extern "C" fn(item: *mut root::MediaItem, position: f64, refreshUI: bool) -> bool,
16027    >,
16028    pub SetMediaItemSelected:
16029        Option<unsafe extern "C" fn(item: *mut root::MediaItem, selected: bool)>,
16030    pub SetMediaItemTake_Source: Option<
16031        unsafe extern "C" fn(
16032            take: *mut root::MediaItem_Take,
16033            source: *mut root::PCM_source,
16034        ) -> bool,
16035    >,
16036    pub SetMediaItemTakeInfo_Value: Option<
16037        unsafe extern "C" fn(
16038            take: *mut root::MediaItem_Take,
16039            parmname: *const ::std::os::raw::c_char,
16040            newvalue: f64,
16041        ) -> bool,
16042    >,
16043    pub SetMediaTrackInfo_Value: Option<
16044        unsafe extern "C" fn(
16045            tr: *mut root::MediaTrack,
16046            parmname: *const ::std::os::raw::c_char,
16047            newvalue: f64,
16048        ) -> bool,
16049    >,
16050    pub SetMIDIEditorGrid:
16051        Option<unsafe extern "C" fn(project: *mut root::ReaProject, division: f64)>,
16052    pub SetMixerScroll:
16053        Option<unsafe extern "C" fn(leftmosttrack: *mut root::MediaTrack) -> *mut root::MediaTrack>,
16054    pub SetMouseModifier: Option<
16055        unsafe extern "C" fn(
16056            context: *const ::std::os::raw::c_char,
16057            modifier_flag: ::std::os::raw::c_int,
16058            action: *const ::std::os::raw::c_char,
16059        ),
16060    >,
16061    pub SetOnlyTrackSelected: Option<unsafe extern "C" fn(track: *mut root::MediaTrack)>,
16062    pub SetProjectGrid: Option<unsafe extern "C" fn(project: *mut root::ReaProject, division: f64)>,
16063    pub SetProjectMarker: Option<
16064        unsafe extern "C" fn(
16065            markrgnindexnumber: ::std::os::raw::c_int,
16066            isrgn: bool,
16067            pos: f64,
16068            rgnend: f64,
16069            name: *const ::std::os::raw::c_char,
16070        ) -> bool,
16071    >,
16072    pub SetProjectMarker2: Option<
16073        unsafe extern "C" fn(
16074            proj: *mut root::ReaProject,
16075            markrgnindexnumber: ::std::os::raw::c_int,
16076            isrgn: bool,
16077            pos: f64,
16078            rgnend: f64,
16079            name: *const ::std::os::raw::c_char,
16080        ) -> bool,
16081    >,
16082    pub SetProjectMarker3: Option<
16083        unsafe extern "C" fn(
16084            proj: *mut root::ReaProject,
16085            markrgnindexnumber: ::std::os::raw::c_int,
16086            isrgn: bool,
16087            pos: f64,
16088            rgnend: f64,
16089            name: *const ::std::os::raw::c_char,
16090            color: ::std::os::raw::c_int,
16091        ) -> bool,
16092    >,
16093    pub SetProjectMarker4: Option<
16094        unsafe extern "C" fn(
16095            proj: *mut root::ReaProject,
16096            markrgnindexnumber: ::std::os::raw::c_int,
16097            isrgn: bool,
16098            pos: f64,
16099            rgnend: f64,
16100            name: *const ::std::os::raw::c_char,
16101            color: ::std::os::raw::c_int,
16102            flags: ::std::os::raw::c_int,
16103        ) -> bool,
16104    >,
16105    pub SetProjectMarkerByIndex: Option<
16106        unsafe extern "C" fn(
16107            proj: *mut root::ReaProject,
16108            markrgnidx: ::std::os::raw::c_int,
16109            isrgn: bool,
16110            pos: f64,
16111            rgnend: f64,
16112            IDnumber: ::std::os::raw::c_int,
16113            name: *const ::std::os::raw::c_char,
16114            color: ::std::os::raw::c_int,
16115        ) -> bool,
16116    >,
16117    pub SetProjectMarkerByIndex2: Option<
16118        unsafe extern "C" fn(
16119            proj: *mut root::ReaProject,
16120            markrgnidx: ::std::os::raw::c_int,
16121            isrgn: bool,
16122            pos: f64,
16123            rgnend: f64,
16124            IDnumber: ::std::os::raw::c_int,
16125            name: *const ::std::os::raw::c_char,
16126            color: ::std::os::raw::c_int,
16127            flags: ::std::os::raw::c_int,
16128        ) -> bool,
16129    >,
16130    pub SetProjExtState: Option<
16131        unsafe extern "C" fn(
16132            proj: *mut root::ReaProject,
16133            extname: *const ::std::os::raw::c_char,
16134            key: *const ::std::os::raw::c_char,
16135            value: *const ::std::os::raw::c_char,
16136        ) -> ::std::os::raw::c_int,
16137    >,
16138    pub SetRegionRenderMatrix: Option<
16139        unsafe extern "C" fn(
16140            proj: *mut root::ReaProject,
16141            regionindex: ::std::os::raw::c_int,
16142            track: *mut root::MediaTrack,
16143            addorremove: ::std::os::raw::c_int,
16144        ),
16145    >,
16146    pub SetRenderLastError: Option<unsafe extern "C" fn(errorstr: *const ::std::os::raw::c_char)>,
16147    pub SetTakeStretchMarker: Option<
16148        unsafe extern "C" fn(
16149            take: *mut root::MediaItem_Take,
16150            idx: ::std::os::raw::c_int,
16151            pos: f64,
16152            srcposInOptional: *const f64,
16153        ) -> ::std::os::raw::c_int,
16154    >,
16155    pub SetTakeStretchMarkerSlope: Option<
16156        unsafe extern "C" fn(
16157            take: *mut root::MediaItem_Take,
16158            idx: ::std::os::raw::c_int,
16159            slope: f64,
16160        ) -> bool,
16161    >,
16162    pub SetTempoTimeSigMarker: Option<
16163        unsafe extern "C" fn(
16164            proj: *mut root::ReaProject,
16165            ptidx: ::std::os::raw::c_int,
16166            timepos: f64,
16167            measurepos: ::std::os::raw::c_int,
16168            beatpos: f64,
16169            bpm: f64,
16170            timesig_num: ::std::os::raw::c_int,
16171            timesig_denom: ::std::os::raw::c_int,
16172            lineartempo: bool,
16173        ) -> bool,
16174    >,
16175    pub SetToggleCommandState: Option<
16176        extern "C" fn(
16177            section_id: ::std::os::raw::c_int,
16178            command_id: ::std::os::raw::c_int,
16179            state: ::std::os::raw::c_int,
16180        ) -> bool,
16181    >,
16182    pub SetTrackAutomationMode:
16183        Option<unsafe extern "C" fn(tr: *mut root::MediaTrack, mode: ::std::os::raw::c_int)>,
16184    pub SetTrackColor:
16185        Option<unsafe extern "C" fn(track: *mut root::MediaTrack, color: ::std::os::raw::c_int)>,
16186    pub SetTrackMIDILyrics: Option<
16187        unsafe extern "C" fn(
16188            track: *mut root::MediaTrack,
16189            flag: ::std::os::raw::c_int,
16190            str: *const ::std::os::raw::c_char,
16191        ) -> bool,
16192    >,
16193    pub SetTrackMIDINoteName: Option<
16194        unsafe extern "C" fn(
16195            track: ::std::os::raw::c_int,
16196            pitch: ::std::os::raw::c_int,
16197            chan: ::std::os::raw::c_int,
16198            name: *const ::std::os::raw::c_char,
16199        ) -> bool,
16200    >,
16201    pub SetTrackMIDINoteNameEx: Option<
16202        unsafe extern "C" fn(
16203            proj: *mut root::ReaProject,
16204            track: *mut root::MediaTrack,
16205            pitch: ::std::os::raw::c_int,
16206            chan: ::std::os::raw::c_int,
16207            name: *const ::std::os::raw::c_char,
16208        ) -> bool,
16209    >,
16210    pub SetTrackSelected:
16211        Option<unsafe extern "C" fn(track: *mut root::MediaTrack, selected: bool)>,
16212    pub SetTrackSendInfo_Value: Option<
16213        unsafe extern "C" fn(
16214            tr: *mut root::MediaTrack,
16215            category: ::std::os::raw::c_int,
16216            sendidx: ::std::os::raw::c_int,
16217            parmname: *const ::std::os::raw::c_char,
16218            newvalue: f64,
16219        ) -> bool,
16220    >,
16221    pub SetTrackSendUIPan: Option<
16222        unsafe extern "C" fn(
16223            track: *mut root::MediaTrack,
16224            send_idx: ::std::os::raw::c_int,
16225            pan: f64,
16226            isend: ::std::os::raw::c_int,
16227        ) -> bool,
16228    >,
16229    pub SetTrackSendUIVol: Option<
16230        unsafe extern "C" fn(
16231            track: *mut root::MediaTrack,
16232            send_idx: ::std::os::raw::c_int,
16233            vol: f64,
16234            isend: ::std::os::raw::c_int,
16235        ) -> bool,
16236    >,
16237    pub SetTrackStateChunk: Option<
16238        unsafe extern "C" fn(
16239            track: *mut root::MediaTrack,
16240            str: *const ::std::os::raw::c_char,
16241            isundoOptional: bool,
16242        ) -> bool,
16243    >,
16244    pub ShowActionList:
16245        Option<unsafe extern "C" fn(caller: *mut root::KbdSectionInfo, callerWnd: root::HWND)>,
16246    pub ShowConsoleMsg: Option<unsafe extern "C" fn(msg: *const ::std::os::raw::c_char)>,
16247    pub ShowMessageBox: Option<
16248        unsafe extern "C" fn(
16249            msg: *const ::std::os::raw::c_char,
16250            title: *const ::std::os::raw::c_char,
16251            type_: ::std::os::raw::c_int,
16252        ) -> ::std::os::raw::c_int,
16253    >,
16254    pub ShowPopupMenu: Option<
16255        unsafe extern "C" fn(
16256            name: *const ::std::os::raw::c_char,
16257            x: ::std::os::raw::c_int,
16258            y: ::std::os::raw::c_int,
16259            hwndParentOptional: root::HWND,
16260            ctxOptional: *mut ::std::os::raw::c_void,
16261            ctx2Optional: ::std::os::raw::c_int,
16262            ctx3Optional: ::std::os::raw::c_int,
16263        ),
16264    >,
16265    pub SLIDER2DB: Option<extern "C" fn(y: f64) -> f64>,
16266    pub SnapToGrid:
16267        Option<unsafe extern "C" fn(project: *mut root::ReaProject, time_pos: f64) -> f64>,
16268    pub SoloAllTracks: Option<extern "C" fn(solo: ::std::os::raw::c_int)>,
16269    pub Splash_GetWnd: Option<extern "C" fn() -> root::HWND>,
16270    pub SplitMediaItem: Option<
16271        unsafe extern "C" fn(item: *mut root::MediaItem, position: f64) -> *mut root::MediaItem,
16272    >,
16273    pub StopPreview: Option<
16274        unsafe extern "C" fn(preview: *mut root::preview_register_t) -> ::std::os::raw::c_int,
16275    >,
16276    pub StopTrackPreview: Option<
16277        unsafe extern "C" fn(preview: *mut root::preview_register_t) -> ::std::os::raw::c_int,
16278    >,
16279    pub StopTrackPreview2: Option<
16280        unsafe extern "C" fn(
16281            proj: *mut ::std::os::raw::c_void,
16282            preview: *mut root::preview_register_t,
16283        ) -> ::std::os::raw::c_int,
16284    >,
16285    pub stringToGuid:
16286        Option<unsafe extern "C" fn(str: *const ::std::os::raw::c_char, g: *mut root::GUID)>,
16287    pub StuffMIDIMessage: Option<
16288        extern "C" fn(
16289            mode: ::std::os::raw::c_int,
16290            msg1: ::std::os::raw::c_int,
16291            msg2: ::std::os::raw::c_int,
16292            msg3: ::std::os::raw::c_int,
16293        ),
16294    >,
16295    pub TakeFX_AddByName: Option<
16296        unsafe extern "C" fn(
16297            take: *mut root::MediaItem_Take,
16298            fxname: *const ::std::os::raw::c_char,
16299            instantiate: ::std::os::raw::c_int,
16300        ) -> ::std::os::raw::c_int,
16301    >,
16302    pub TakeFX_CopyToTake: Option<
16303        unsafe extern "C" fn(
16304            src_take: *mut root::MediaItem_Take,
16305            src_fx: ::std::os::raw::c_int,
16306            dest_take: *mut root::MediaItem_Take,
16307            dest_fx: ::std::os::raw::c_int,
16308            is_move: bool,
16309        ),
16310    >,
16311    pub TakeFX_CopyToTrack: Option<
16312        unsafe extern "C" fn(
16313            src_take: *mut root::MediaItem_Take,
16314            src_fx: ::std::os::raw::c_int,
16315            dest_track: *mut root::MediaTrack,
16316            dest_fx: ::std::os::raw::c_int,
16317            is_move: bool,
16318        ),
16319    >,
16320    pub TakeFX_Delete: Option<
16321        unsafe extern "C" fn(take: *mut root::MediaItem_Take, fx: ::std::os::raw::c_int) -> bool,
16322    >,
16323    pub TakeFX_EndParamEdit: Option<
16324        unsafe extern "C" fn(
16325            take: *mut root::MediaItem_Take,
16326            fx: ::std::os::raw::c_int,
16327            param: ::std::os::raw::c_int,
16328        ) -> bool,
16329    >,
16330    pub TakeFX_FormatParamValue: Option<
16331        unsafe extern "C" fn(
16332            take: *mut root::MediaItem_Take,
16333            fx: ::std::os::raw::c_int,
16334            param: ::std::os::raw::c_int,
16335            val: f64,
16336            buf: *mut ::std::os::raw::c_char,
16337            buf_sz: ::std::os::raw::c_int,
16338        ) -> bool,
16339    >,
16340    pub TakeFX_FormatParamValueNormalized: Option<
16341        unsafe extern "C" fn(
16342            take: *mut root::MediaItem_Take,
16343            fx: ::std::os::raw::c_int,
16344            param: ::std::os::raw::c_int,
16345            value: f64,
16346            buf: *mut ::std::os::raw::c_char,
16347            buf_sz: ::std::os::raw::c_int,
16348        ) -> bool,
16349    >,
16350    pub TakeFX_GetChainVisible:
16351        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> ::std::os::raw::c_int>,
16352    pub TakeFX_GetCount:
16353        Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> ::std::os::raw::c_int>,
16354    pub TakeFX_GetEnabled: Option<
16355        unsafe extern "C" fn(take: *mut root::MediaItem_Take, fx: ::std::os::raw::c_int) -> bool,
16356    >,
16357    pub TakeFX_GetEnvelope: Option<
16358        unsafe extern "C" fn(
16359            take: *mut root::MediaItem_Take,
16360            fxindex: ::std::os::raw::c_int,
16361            parameterindex: ::std::os::raw::c_int,
16362            create: bool,
16363        ) -> *mut root::TrackEnvelope,
16364    >,
16365    pub TakeFX_GetFloatingWindow: Option<
16366        unsafe extern "C" fn(
16367            take: *mut root::MediaItem_Take,
16368            index: ::std::os::raw::c_int,
16369        ) -> root::HWND,
16370    >,
16371    pub TakeFX_GetFormattedParamValue: Option<
16372        unsafe extern "C" fn(
16373            take: *mut root::MediaItem_Take,
16374            fx: ::std::os::raw::c_int,
16375            param: ::std::os::raw::c_int,
16376            buf: *mut ::std::os::raw::c_char,
16377            buf_sz: ::std::os::raw::c_int,
16378        ) -> bool,
16379    >,
16380    pub TakeFX_GetFXGUID: Option<
16381        unsafe extern "C" fn(
16382            take: *mut root::MediaItem_Take,
16383            fx: ::std::os::raw::c_int,
16384        ) -> *mut root::GUID,
16385    >,
16386    pub TakeFX_GetFXName: Option<
16387        unsafe extern "C" fn(
16388            take: *mut root::MediaItem_Take,
16389            fx: ::std::os::raw::c_int,
16390            buf: *mut ::std::os::raw::c_char,
16391            buf_sz: ::std::os::raw::c_int,
16392        ) -> bool,
16393    >,
16394    pub TakeFX_GetIOSize: Option<
16395        unsafe extern "C" fn(
16396            take: *mut root::MediaItem_Take,
16397            fx: ::std::os::raw::c_int,
16398            inputPinsOutOptional: *mut ::std::os::raw::c_int,
16399            outputPinsOutOptional: *mut ::std::os::raw::c_int,
16400        ) -> ::std::os::raw::c_int,
16401    >,
16402    pub TakeFX_GetNamedConfigParm: Option<
16403        unsafe extern "C" fn(
16404            take: *mut root::MediaItem_Take,
16405            fx: ::std::os::raw::c_int,
16406            parmname: *const ::std::os::raw::c_char,
16407            bufOut: *mut ::std::os::raw::c_char,
16408            bufOut_sz: ::std::os::raw::c_int,
16409        ) -> bool,
16410    >,
16411    pub TakeFX_GetNumParams: Option<
16412        unsafe extern "C" fn(
16413            take: *mut root::MediaItem_Take,
16414            fx: ::std::os::raw::c_int,
16415        ) -> ::std::os::raw::c_int,
16416    >,
16417    pub TakeFX_GetOffline: Option<
16418        unsafe extern "C" fn(take: *mut root::MediaItem_Take, fx: ::std::os::raw::c_int) -> bool,
16419    >,
16420    pub TakeFX_GetOpen: Option<
16421        unsafe extern "C" fn(take: *mut root::MediaItem_Take, fx: ::std::os::raw::c_int) -> bool,
16422    >,
16423    pub TakeFX_GetParam: Option<
16424        unsafe extern "C" fn(
16425            take: *mut root::MediaItem_Take,
16426            fx: ::std::os::raw::c_int,
16427            param: ::std::os::raw::c_int,
16428            minvalOut: *mut f64,
16429            maxvalOut: *mut f64,
16430        ) -> f64,
16431    >,
16432    pub TakeFX_GetParameterStepSizes: Option<
16433        unsafe extern "C" fn(
16434            take: *mut root::MediaItem_Take,
16435            fx: ::std::os::raw::c_int,
16436            param: ::std::os::raw::c_int,
16437            stepOut: *mut f64,
16438            smallstepOut: *mut f64,
16439            largestepOut: *mut f64,
16440            istoggleOut: *mut bool,
16441        ) -> bool,
16442    >,
16443    pub TakeFX_GetParamEx: Option<
16444        unsafe extern "C" fn(
16445            take: *mut root::MediaItem_Take,
16446            fx: ::std::os::raw::c_int,
16447            param: ::std::os::raw::c_int,
16448            minvalOut: *mut f64,
16449            maxvalOut: *mut f64,
16450            midvalOut: *mut f64,
16451        ) -> f64,
16452    >,
16453    pub TakeFX_GetParamName: Option<
16454        unsafe extern "C" fn(
16455            take: *mut root::MediaItem_Take,
16456            fx: ::std::os::raw::c_int,
16457            param: ::std::os::raw::c_int,
16458            buf: *mut ::std::os::raw::c_char,
16459            buf_sz: ::std::os::raw::c_int,
16460        ) -> bool,
16461    >,
16462    pub TakeFX_GetParamNormalized: Option<
16463        unsafe extern "C" fn(
16464            take: *mut root::MediaItem_Take,
16465            fx: ::std::os::raw::c_int,
16466            param: ::std::os::raw::c_int,
16467        ) -> f64,
16468    >,
16469    pub TakeFX_GetPinMappings: Option<
16470        unsafe extern "C" fn(
16471            tr: *mut root::MediaItem_Take,
16472            fx: ::std::os::raw::c_int,
16473            isoutput: ::std::os::raw::c_int,
16474            pin: ::std::os::raw::c_int,
16475            high32OutOptional: *mut ::std::os::raw::c_int,
16476        ) -> ::std::os::raw::c_int,
16477    >,
16478    pub TakeFX_GetPreset: Option<
16479        unsafe extern "C" fn(
16480            take: *mut root::MediaItem_Take,
16481            fx: ::std::os::raw::c_int,
16482            presetname: *mut ::std::os::raw::c_char,
16483            presetname_sz: ::std::os::raw::c_int,
16484        ) -> bool,
16485    >,
16486    pub TakeFX_GetPresetIndex: Option<
16487        unsafe extern "C" fn(
16488            take: *mut root::MediaItem_Take,
16489            fx: ::std::os::raw::c_int,
16490            numberOfPresetsOut: *mut ::std::os::raw::c_int,
16491        ) -> ::std::os::raw::c_int,
16492    >,
16493    pub TakeFX_GetUserPresetFilename: Option<
16494        unsafe extern "C" fn(
16495            take: *mut root::MediaItem_Take,
16496            fx: ::std::os::raw::c_int,
16497            fn_: *mut ::std::os::raw::c_char,
16498            fn_sz: ::std::os::raw::c_int,
16499        ),
16500    >,
16501    pub TakeFX_NavigatePresets: Option<
16502        unsafe extern "C" fn(
16503            take: *mut root::MediaItem_Take,
16504            fx: ::std::os::raw::c_int,
16505            presetmove: ::std::os::raw::c_int,
16506        ) -> bool,
16507    >,
16508    pub TakeFX_SetEnabled: Option<
16509        unsafe extern "C" fn(
16510            take: *mut root::MediaItem_Take,
16511            fx: ::std::os::raw::c_int,
16512            enabled: bool,
16513        ),
16514    >,
16515    pub TakeFX_SetNamedConfigParm: Option<
16516        unsafe extern "C" fn(
16517            take: *mut root::MediaItem_Take,
16518            fx: ::std::os::raw::c_int,
16519            parmname: *const ::std::os::raw::c_char,
16520            value: *const ::std::os::raw::c_char,
16521        ) -> bool,
16522    >,
16523    pub TakeFX_SetOffline: Option<
16524        unsafe extern "C" fn(
16525            take: *mut root::MediaItem_Take,
16526            fx: ::std::os::raw::c_int,
16527            offline: bool,
16528        ),
16529    >,
16530    pub TakeFX_SetOpen: Option<
16531        unsafe extern "C" fn(
16532            take: *mut root::MediaItem_Take,
16533            fx: ::std::os::raw::c_int,
16534            open: bool,
16535        ),
16536    >,
16537    pub TakeFX_SetParam: Option<
16538        unsafe extern "C" fn(
16539            take: *mut root::MediaItem_Take,
16540            fx: ::std::os::raw::c_int,
16541            param: ::std::os::raw::c_int,
16542            val: f64,
16543        ) -> bool,
16544    >,
16545    pub TakeFX_SetParamNormalized: Option<
16546        unsafe extern "C" fn(
16547            take: *mut root::MediaItem_Take,
16548            fx: ::std::os::raw::c_int,
16549            param: ::std::os::raw::c_int,
16550            value: f64,
16551        ) -> bool,
16552    >,
16553    pub TakeFX_SetPinMappings: Option<
16554        unsafe extern "C" fn(
16555            tr: *mut root::MediaItem_Take,
16556            fx: ::std::os::raw::c_int,
16557            isoutput: ::std::os::raw::c_int,
16558            pin: ::std::os::raw::c_int,
16559            low32bits: ::std::os::raw::c_int,
16560            hi32bits: ::std::os::raw::c_int,
16561        ) -> bool,
16562    >,
16563    pub TakeFX_SetPreset: Option<
16564        unsafe extern "C" fn(
16565            take: *mut root::MediaItem_Take,
16566            fx: ::std::os::raw::c_int,
16567            presetname: *const ::std::os::raw::c_char,
16568        ) -> bool,
16569    >,
16570    pub TakeFX_SetPresetByIndex: Option<
16571        unsafe extern "C" fn(
16572            take: *mut root::MediaItem_Take,
16573            fx: ::std::os::raw::c_int,
16574            idx: ::std::os::raw::c_int,
16575        ) -> bool,
16576    >,
16577    pub TakeFX_Show: Option<
16578        unsafe extern "C" fn(
16579            take: *mut root::MediaItem_Take,
16580            index: ::std::os::raw::c_int,
16581            showFlag: ::std::os::raw::c_int,
16582        ),
16583    >,
16584    pub TakeIsMIDI: Option<unsafe extern "C" fn(take: *mut root::MediaItem_Take) -> bool>,
16585    pub ThemeLayout_GetLayout: Option<
16586        unsafe extern "C" fn(
16587            section: *const ::std::os::raw::c_char,
16588            idx: ::std::os::raw::c_int,
16589            nameOut: *mut ::std::os::raw::c_char,
16590            nameOut_sz: ::std::os::raw::c_int,
16591        ) -> bool,
16592    >,
16593    pub ThemeLayout_GetParameter: Option<
16594        unsafe extern "C" fn(
16595            wp: ::std::os::raw::c_int,
16596            descOutOptional: *mut *const ::std::os::raw::c_char,
16597            valueOutOptional: *mut ::std::os::raw::c_int,
16598            defValueOutOptional: *mut ::std::os::raw::c_int,
16599            minValueOutOptional: *mut ::std::os::raw::c_int,
16600            maxValueOutOptional: *mut ::std::os::raw::c_int,
16601        ) -> *const ::std::os::raw::c_char,
16602    >,
16603    pub ThemeLayout_RefreshAll: Option<extern "C" fn()>,
16604    pub ThemeLayout_SetLayout: Option<
16605        unsafe extern "C" fn(
16606            section: *const ::std::os::raw::c_char,
16607            layout: *const ::std::os::raw::c_char,
16608        ) -> bool,
16609    >,
16610    pub ThemeLayout_SetParameter: Option<
16611        extern "C" fn(
16612            wp: ::std::os::raw::c_int,
16613            value: ::std::os::raw::c_int,
16614            persist: bool,
16615        ) -> bool,
16616    >,
16617    pub time_precise: Option<extern "C" fn() -> f64>,
16618    pub TimeMap2_beatsToTime: Option<
16619        unsafe extern "C" fn(
16620            proj: *mut root::ReaProject,
16621            tpos: f64,
16622            measuresInOptional: *const ::std::os::raw::c_int,
16623        ) -> f64,
16624    >,
16625    pub TimeMap2_GetDividedBpmAtTime:
16626        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, time: f64) -> f64>,
16627    pub TimeMap2_GetNextChangeTime:
16628        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, time: f64) -> f64>,
16629    pub TimeMap2_QNToTime:
16630        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, qn: f64) -> f64>,
16631    pub TimeMap2_timeToBeats: Option<
16632        unsafe extern "C" fn(
16633            proj: *mut root::ReaProject,
16634            tpos: f64,
16635            measuresOutOptional: *mut ::std::os::raw::c_int,
16636            cmlOutOptional: *mut ::std::os::raw::c_int,
16637            fullbeatsOutOptional: *mut f64,
16638            cdenomOutOptional: *mut ::std::os::raw::c_int,
16639        ) -> f64,
16640    >,
16641    pub TimeMap2_timeToQN:
16642        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, tpos: f64) -> f64>,
16643    pub TimeMap_curFrameRate: Option<
16644        unsafe extern "C" fn(proj: *mut root::ReaProject, dropFrameOutOptional: *mut bool) -> f64,
16645    >,
16646    pub TimeMap_GetDividedBpmAtTime: Option<extern "C" fn(time: f64) -> f64>,
16647    pub TimeMap_GetMeasureInfo: Option<
16648        unsafe extern "C" fn(
16649            proj: *mut root::ReaProject,
16650            measure: ::std::os::raw::c_int,
16651            qn_startOut: *mut f64,
16652            qn_endOut: *mut f64,
16653            timesig_numOut: *mut ::std::os::raw::c_int,
16654            timesig_denomOut: *mut ::std::os::raw::c_int,
16655            tempoOut: *mut f64,
16656        ) -> f64,
16657    >,
16658    pub TimeMap_GetMetronomePattern: Option<
16659        unsafe extern "C" fn(
16660            proj: *mut root::ReaProject,
16661            time: f64,
16662            pattern: *mut ::std::os::raw::c_char,
16663            pattern_sz: ::std::os::raw::c_int,
16664        ) -> ::std::os::raw::c_int,
16665    >,
16666    pub TimeMap_GetTimeSigAtTime: Option<
16667        unsafe extern "C" fn(
16668            proj: *mut root::ReaProject,
16669            time: f64,
16670            timesig_numOut: *mut ::std::os::raw::c_int,
16671            timesig_denomOut: *mut ::std::os::raw::c_int,
16672            tempoOut: *mut f64,
16673        ),
16674    >,
16675    pub TimeMap_QNToMeasures: Option<
16676        unsafe extern "C" fn(
16677            proj: *mut root::ReaProject,
16678            qn: f64,
16679            qnMeasureStartOutOptional: *mut f64,
16680            qnMeasureEndOutOptional: *mut f64,
16681        ) -> ::std::os::raw::c_int,
16682    >,
16683    pub TimeMap_QNToTime: Option<extern "C" fn(qn: f64) -> f64>,
16684    pub TimeMap_QNToTime_abs:
16685        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, qn: f64) -> f64>,
16686    pub TimeMap_timeToQN: Option<extern "C" fn(tpos: f64) -> f64>,
16687    pub TimeMap_timeToQN_abs:
16688        Option<unsafe extern "C" fn(proj: *mut root::ReaProject, tpos: f64) -> f64>,
16689    pub ToggleTrackSendUIMute: Option<
16690        unsafe extern "C" fn(track: *mut root::MediaTrack, send_idx: ::std::os::raw::c_int) -> bool,
16691    >,
16692    pub Track_GetPeakHoldDB: Option<
16693        unsafe extern "C" fn(
16694            track: *mut root::MediaTrack,
16695            channel: ::std::os::raw::c_int,
16696            clear: bool,
16697        ) -> f64,
16698    >,
16699    pub Track_GetPeakInfo: Option<
16700        unsafe extern "C" fn(track: *mut root::MediaTrack, channel: ::std::os::raw::c_int) -> f64,
16701    >,
16702    pub TrackCtl_SetToolTip: Option<
16703        unsafe extern "C" fn(
16704            fmt: *const ::std::os::raw::c_char,
16705            xpos: ::std::os::raw::c_int,
16706            ypos: ::std::os::raw::c_int,
16707            topmost: bool,
16708        ),
16709    >,
16710    pub TrackFX_AddByName: Option<
16711        unsafe extern "C" fn(
16712            track: *mut root::MediaTrack,
16713            fxname: *const ::std::os::raw::c_char,
16714            recFX: bool,
16715            instantiate: ::std::os::raw::c_int,
16716        ) -> ::std::os::raw::c_int,
16717    >,
16718    pub TrackFX_CopyToTake: Option<
16719        unsafe extern "C" fn(
16720            src_track: *mut root::MediaTrack,
16721            src_fx: ::std::os::raw::c_int,
16722            dest_take: *mut root::MediaItem_Take,
16723            dest_fx: ::std::os::raw::c_int,
16724            is_move: bool,
16725        ),
16726    >,
16727    pub TrackFX_CopyToTrack: Option<
16728        unsafe extern "C" fn(
16729            src_track: *mut root::MediaTrack,
16730            src_fx: ::std::os::raw::c_int,
16731            dest_track: *mut root::MediaTrack,
16732            dest_fx: ::std::os::raw::c_int,
16733            is_move: bool,
16734        ),
16735    >,
16736    pub TrackFX_Delete: Option<
16737        unsafe extern "C" fn(track: *mut root::MediaTrack, fx: ::std::os::raw::c_int) -> bool,
16738    >,
16739    pub TrackFX_EndParamEdit: Option<
16740        unsafe extern "C" fn(
16741            track: *mut root::MediaTrack,
16742            fx: ::std::os::raw::c_int,
16743            param: ::std::os::raw::c_int,
16744        ) -> bool,
16745    >,
16746    pub TrackFX_FormatParamValue: Option<
16747        unsafe extern "C" fn(
16748            track: *mut root::MediaTrack,
16749            fx: ::std::os::raw::c_int,
16750            param: ::std::os::raw::c_int,
16751            val: f64,
16752            buf: *mut ::std::os::raw::c_char,
16753            buf_sz: ::std::os::raw::c_int,
16754        ) -> bool,
16755    >,
16756    pub TrackFX_FormatParamValueNormalized: Option<
16757        unsafe extern "C" fn(
16758            track: *mut root::MediaTrack,
16759            fx: ::std::os::raw::c_int,
16760            param: ::std::os::raw::c_int,
16761            value: f64,
16762            buf: *mut ::std::os::raw::c_char,
16763            buf_sz: ::std::os::raw::c_int,
16764        ) -> bool,
16765    >,
16766    pub TrackFX_GetByName: Option<
16767        unsafe extern "C" fn(
16768            track: *mut root::MediaTrack,
16769            fxname: *const ::std::os::raw::c_char,
16770            instantiate: bool,
16771        ) -> ::std::os::raw::c_int,
16772    >,
16773    pub TrackFX_GetChainVisible:
16774        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
16775    pub TrackFX_GetCount:
16776        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
16777    pub TrackFX_GetEnabled: Option<
16778        unsafe extern "C" fn(track: *mut root::MediaTrack, fx: ::std::os::raw::c_int) -> bool,
16779    >,
16780    pub TrackFX_GetEQ: Option<
16781        unsafe extern "C" fn(
16782            track: *mut root::MediaTrack,
16783            instantiate: bool,
16784        ) -> ::std::os::raw::c_int,
16785    >,
16786    pub TrackFX_GetEQBandEnabled: Option<
16787        unsafe extern "C" fn(
16788            track: *mut root::MediaTrack,
16789            fxidx: ::std::os::raw::c_int,
16790            bandtype: ::std::os::raw::c_int,
16791            bandidx: ::std::os::raw::c_int,
16792        ) -> bool,
16793    >,
16794    pub TrackFX_GetEQParam: Option<
16795        unsafe extern "C" fn(
16796            track: *mut root::MediaTrack,
16797            fxidx: ::std::os::raw::c_int,
16798            paramidx: ::std::os::raw::c_int,
16799            bandtypeOut: *mut ::std::os::raw::c_int,
16800            bandidxOut: *mut ::std::os::raw::c_int,
16801            paramtypeOut: *mut ::std::os::raw::c_int,
16802            normvalOut: *mut f64,
16803        ) -> bool,
16804    >,
16805    pub TrackFX_GetFloatingWindow: Option<
16806        unsafe extern "C" fn(
16807            track: *mut root::MediaTrack,
16808            index: ::std::os::raw::c_int,
16809        ) -> root::HWND,
16810    >,
16811    pub TrackFX_GetFormattedParamValue: Option<
16812        unsafe extern "C" fn(
16813            track: *mut root::MediaTrack,
16814            fx: ::std::os::raw::c_int,
16815            param: ::std::os::raw::c_int,
16816            buf: *mut ::std::os::raw::c_char,
16817            buf_sz: ::std::os::raw::c_int,
16818        ) -> bool,
16819    >,
16820    pub TrackFX_GetFXGUID: Option<
16821        unsafe extern "C" fn(
16822            track: *mut root::MediaTrack,
16823            fx: ::std::os::raw::c_int,
16824        ) -> *mut root::GUID,
16825    >,
16826    pub TrackFX_GetFXName: Option<
16827        unsafe extern "C" fn(
16828            track: *mut root::MediaTrack,
16829            fx: ::std::os::raw::c_int,
16830            buf: *mut ::std::os::raw::c_char,
16831            buf_sz: ::std::os::raw::c_int,
16832        ) -> bool,
16833    >,
16834    pub TrackFX_GetInstrument:
16835        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
16836    pub TrackFX_GetIOSize: Option<
16837        unsafe extern "C" fn(
16838            track: *mut root::MediaTrack,
16839            fx: ::std::os::raw::c_int,
16840            inputPinsOutOptional: *mut ::std::os::raw::c_int,
16841            outputPinsOutOptional: *mut ::std::os::raw::c_int,
16842        ) -> ::std::os::raw::c_int,
16843    >,
16844    pub TrackFX_GetNamedConfigParm: Option<
16845        unsafe extern "C" fn(
16846            track: *mut root::MediaTrack,
16847            fx: ::std::os::raw::c_int,
16848            parmname: *const ::std::os::raw::c_char,
16849            bufOut: *mut ::std::os::raw::c_char,
16850            bufOut_sz: ::std::os::raw::c_int,
16851        ) -> bool,
16852    >,
16853    pub TrackFX_GetNumParams: Option<
16854        unsafe extern "C" fn(
16855            track: *mut root::MediaTrack,
16856            fx: ::std::os::raw::c_int,
16857        ) -> ::std::os::raw::c_int,
16858    >,
16859    pub TrackFX_GetOffline: Option<
16860        unsafe extern "C" fn(track: *mut root::MediaTrack, fx: ::std::os::raw::c_int) -> bool,
16861    >,
16862    pub TrackFX_GetOpen: Option<
16863        unsafe extern "C" fn(track: *mut root::MediaTrack, fx: ::std::os::raw::c_int) -> bool,
16864    >,
16865    pub TrackFX_GetParam: Option<
16866        unsafe extern "C" fn(
16867            track: *mut root::MediaTrack,
16868            fx: ::std::os::raw::c_int,
16869            param: ::std::os::raw::c_int,
16870            minvalOut: *mut f64,
16871            maxvalOut: *mut f64,
16872        ) -> f64,
16873    >,
16874    pub TrackFX_GetParameterStepSizes: Option<
16875        unsafe extern "C" fn(
16876            track: *mut root::MediaTrack,
16877            fx: ::std::os::raw::c_int,
16878            param: ::std::os::raw::c_int,
16879            stepOut: *mut f64,
16880            smallstepOut: *mut f64,
16881            largestepOut: *mut f64,
16882            istoggleOut: *mut bool,
16883        ) -> bool,
16884    >,
16885    pub TrackFX_GetParamEx: Option<
16886        unsafe extern "C" fn(
16887            track: *mut root::MediaTrack,
16888            fx: ::std::os::raw::c_int,
16889            param: ::std::os::raw::c_int,
16890            minvalOut: *mut f64,
16891            maxvalOut: *mut f64,
16892            midvalOut: *mut f64,
16893        ) -> f64,
16894    >,
16895    pub TrackFX_GetParamName: Option<
16896        unsafe extern "C" fn(
16897            track: *mut root::MediaTrack,
16898            fx: ::std::os::raw::c_int,
16899            param: ::std::os::raw::c_int,
16900            buf: *mut ::std::os::raw::c_char,
16901            buf_sz: ::std::os::raw::c_int,
16902        ) -> bool,
16903    >,
16904    pub TrackFX_GetParamNormalized: Option<
16905        unsafe extern "C" fn(
16906            track: *mut root::MediaTrack,
16907            fx: ::std::os::raw::c_int,
16908            param: ::std::os::raw::c_int,
16909        ) -> f64,
16910    >,
16911    pub TrackFX_GetPinMappings: Option<
16912        unsafe extern "C" fn(
16913            tr: *mut root::MediaTrack,
16914            fx: ::std::os::raw::c_int,
16915            isoutput: ::std::os::raw::c_int,
16916            pin: ::std::os::raw::c_int,
16917            high32OutOptional: *mut ::std::os::raw::c_int,
16918        ) -> ::std::os::raw::c_int,
16919    >,
16920    pub TrackFX_GetPreset: Option<
16921        unsafe extern "C" fn(
16922            track: *mut root::MediaTrack,
16923            fx: ::std::os::raw::c_int,
16924            presetname: *mut ::std::os::raw::c_char,
16925            presetname_sz: ::std::os::raw::c_int,
16926        ) -> bool,
16927    >,
16928    pub TrackFX_GetPresetIndex: Option<
16929        unsafe extern "C" fn(
16930            track: *mut root::MediaTrack,
16931            fx: ::std::os::raw::c_int,
16932            numberOfPresetsOut: *mut ::std::os::raw::c_int,
16933        ) -> ::std::os::raw::c_int,
16934    >,
16935    pub TrackFX_GetRecChainVisible:
16936        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
16937    pub TrackFX_GetRecCount:
16938        Option<unsafe extern "C" fn(track: *mut root::MediaTrack) -> ::std::os::raw::c_int>,
16939    pub TrackFX_GetUserPresetFilename: Option<
16940        unsafe extern "C" fn(
16941            track: *mut root::MediaTrack,
16942            fx: ::std::os::raw::c_int,
16943            fn_: *mut ::std::os::raw::c_char,
16944            fn_sz: ::std::os::raw::c_int,
16945        ),
16946    >,
16947    pub TrackFX_NavigatePresets: Option<
16948        unsafe extern "C" fn(
16949            track: *mut root::MediaTrack,
16950            fx: ::std::os::raw::c_int,
16951            presetmove: ::std::os::raw::c_int,
16952        ) -> bool,
16953    >,
16954    pub TrackFX_SetEnabled: Option<
16955        unsafe extern "C" fn(
16956            track: *mut root::MediaTrack,
16957            fx: ::std::os::raw::c_int,
16958            enabled: bool,
16959        ),
16960    >,
16961    pub TrackFX_SetEQBandEnabled: Option<
16962        unsafe extern "C" fn(
16963            track: *mut root::MediaTrack,
16964            fxidx: ::std::os::raw::c_int,
16965            bandtype: ::std::os::raw::c_int,
16966            bandidx: ::std::os::raw::c_int,
16967            enable: bool,
16968        ) -> bool,
16969    >,
16970    pub TrackFX_SetEQParam: Option<
16971        unsafe extern "C" fn(
16972            track: *mut root::MediaTrack,
16973            fxidx: ::std::os::raw::c_int,
16974            bandtype: ::std::os::raw::c_int,
16975            bandidx: ::std::os::raw::c_int,
16976            paramtype: ::std::os::raw::c_int,
16977            val: f64,
16978            isnorm: bool,
16979        ) -> bool,
16980    >,
16981    pub TrackFX_SetNamedConfigParm: Option<
16982        unsafe extern "C" fn(
16983            track: *mut root::MediaTrack,
16984            fx: ::std::os::raw::c_int,
16985            parmname: *const ::std::os::raw::c_char,
16986            value: *const ::std::os::raw::c_char,
16987        ) -> bool,
16988    >,
16989    pub TrackFX_SetOffline: Option<
16990        unsafe extern "C" fn(
16991            track: *mut root::MediaTrack,
16992            fx: ::std::os::raw::c_int,
16993            offline: bool,
16994        ),
16995    >,
16996    pub TrackFX_SetOpen: Option<
16997        unsafe extern "C" fn(track: *mut root::MediaTrack, fx: ::std::os::raw::c_int, open: bool),
16998    >,
16999    pub TrackFX_SetParam: Option<
17000        unsafe extern "C" fn(
17001            track: *mut root::MediaTrack,
17002            fx: ::std::os::raw::c_int,
17003            param: ::std::os::raw::c_int,
17004            val: f64,
17005        ) -> bool,
17006    >,
17007    pub TrackFX_SetParamNormalized: Option<
17008        unsafe extern "C" fn(
17009            track: *mut root::MediaTrack,
17010            fx: ::std::os::raw::c_int,
17011            param: ::std::os::raw::c_int,
17012            value: f64,
17013        ) -> bool,
17014    >,
17015    pub TrackFX_SetPinMappings: Option<
17016        unsafe extern "C" fn(
17017            tr: *mut root::MediaTrack,
17018            fx: ::std::os::raw::c_int,
17019            isoutput: ::std::os::raw::c_int,
17020            pin: ::std::os::raw::c_int,
17021            low32bits: ::std::os::raw::c_int,
17022            hi32bits: ::std::os::raw::c_int,
17023        ) -> bool,
17024    >,
17025    pub TrackFX_SetPreset: Option<
17026        unsafe extern "C" fn(
17027            track: *mut root::MediaTrack,
17028            fx: ::std::os::raw::c_int,
17029            presetname: *const ::std::os::raw::c_char,
17030        ) -> bool,
17031    >,
17032    pub TrackFX_SetPresetByIndex: Option<
17033        unsafe extern "C" fn(
17034            track: *mut root::MediaTrack,
17035            fx: ::std::os::raw::c_int,
17036            idx: ::std::os::raw::c_int,
17037        ) -> bool,
17038    >,
17039    pub TrackFX_Show: Option<
17040        unsafe extern "C" fn(
17041            track: *mut root::MediaTrack,
17042            index: ::std::os::raw::c_int,
17043            showFlag: ::std::os::raw::c_int,
17044        ),
17045    >,
17046    pub TrackList_AdjustWindows: Option<extern "C" fn(isMinor: bool)>,
17047    pub TrackList_UpdateAllExternalSurfaces: Option<extern "C" fn()>,
17048    pub Undo_BeginBlock: Option<extern "C" fn()>,
17049    pub Undo_BeginBlock2: Option<unsafe extern "C" fn(proj: *mut root::ReaProject)>,
17050    pub Undo_CanRedo2:
17051        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> *const ::std::os::raw::c_char>,
17052    pub Undo_CanUndo2:
17053        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> *const ::std::os::raw::c_char>,
17054    pub Undo_DoRedo2:
17055        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
17056    pub Undo_DoUndo2:
17057        Option<unsafe extern "C" fn(proj: *mut root::ReaProject) -> ::std::os::raw::c_int>,
17058    pub Undo_EndBlock: Option<
17059        unsafe extern "C" fn(
17060            descchange: *const ::std::os::raw::c_char,
17061            extraflags: ::std::os::raw::c_int,
17062        ),
17063    >,
17064    pub Undo_EndBlock2: Option<
17065        unsafe extern "C" fn(
17066            proj: *mut root::ReaProject,
17067            descchange: *const ::std::os::raw::c_char,
17068            extraflags: ::std::os::raw::c_int,
17069        ),
17070    >,
17071    pub Undo_OnStateChange: Option<unsafe extern "C" fn(descchange: *const ::std::os::raw::c_char)>,
17072    pub Undo_OnStateChange2: Option<
17073        unsafe extern "C" fn(
17074            proj: *mut root::ReaProject,
17075            descchange: *const ::std::os::raw::c_char,
17076        ),
17077    >,
17078    pub Undo_OnStateChange_Item: Option<
17079        unsafe extern "C" fn(
17080            proj: *mut root::ReaProject,
17081            name: *const ::std::os::raw::c_char,
17082            item: *mut root::MediaItem,
17083        ),
17084    >,
17085    pub Undo_OnStateChangeEx: Option<
17086        unsafe extern "C" fn(
17087            descchange: *const ::std::os::raw::c_char,
17088            whichStates: ::std::os::raw::c_int,
17089            trackparm: ::std::os::raw::c_int,
17090        ),
17091    >,
17092    pub Undo_OnStateChangeEx2: Option<
17093        unsafe extern "C" fn(
17094            proj: *mut root::ReaProject,
17095            descchange: *const ::std::os::raw::c_char,
17096            whichStates: ::std::os::raw::c_int,
17097            trackparm: ::std::os::raw::c_int,
17098        ),
17099    >,
17100    pub update_disk_counters:
17101        Option<extern "C" fn(readamt: ::std::os::raw::c_int, writeamt: ::std::os::raw::c_int)>,
17102    pub UpdateArrange: Option<extern "C" fn()>,
17103    pub UpdateItemInProject: Option<unsafe extern "C" fn(item: *mut root::MediaItem)>,
17104    pub UpdateTimeline: Option<extern "C" fn()>,
17105    pub ValidatePtr: Option<
17106        unsafe extern "C" fn(
17107            pointer: *mut ::std::os::raw::c_void,
17108            ctypename: *const ::std::os::raw::c_char,
17109        ) -> bool,
17110    >,
17111    pub ValidatePtr2: Option<
17112        unsafe extern "C" fn(
17113            proj: *mut root::ReaProject,
17114            pointer: *mut ::std::os::raw::c_void,
17115            ctypename: *const ::std::os::raw::c_char,
17116        ) -> bool,
17117    >,
17118    pub ViewPrefs: Option<
17119        unsafe extern "C" fn(
17120            page: ::std::os::raw::c_int,
17121            pageByName: *const ::std::os::raw::c_char,
17122        ),
17123    >,
17124    pub WDL_VirtualWnd_ScaledBlitBG: Option<
17125        unsafe extern "C" fn(
17126            dest: *mut root::reaper_functions::LICE_IBitmap,
17127            src: *mut root::reaper_functions::WDL_VirtualWnd_BGCfg,
17128            destx: ::std::os::raw::c_int,
17129            desty: ::std::os::raw::c_int,
17130            destw: ::std::os::raw::c_int,
17131            desth: ::std::os::raw::c_int,
17132            clipx: ::std::os::raw::c_int,
17133            clipy: ::std::os::raw::c_int,
17134            clipw: ::std::os::raw::c_int,
17135            cliph: ::std::os::raw::c_int,
17136            alpha: f32,
17137            mode: ::std::os::raw::c_int,
17138        ) -> bool,
17139    >,
17140    pub GetMidiInput: Option<extern "C" fn(idx: ::std::os::raw::c_int) -> *mut root::midi_Input>,
17141    pub GetMidiOutput: Option<extern "C" fn(idx: ::std::os::raw::c_int) -> *mut root::midi_Output>,
17142}
17143impl std::fmt::Debug for ReaperFunctionPointers {
17144    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
17145        f.debug_struct("ReaperFunctionPointers").finish()
17146    }
17147}