reaper_plugin_functions.h (465774B)
1 #ifndef _REAPER_PLUGIN_FUNCTIONS_H_ 2 #define _REAPER_PLUGIN_FUNCTIONS_H_ 3 4 // REAPER API functions 5 // Generated by REAPER v6.68+dev0927/win64 6 7 /* 8 * Copyright 2006 and later, Cockos Incorporated 9 * 10 * This software is provided 'as-is', without any express or implied 11 * warranty. In no event will the authors be held liable for any damages 12 * arising from the use of this software. 13 * 14 * Permission is granted to anyone to use this software for any purpose, 15 * including commercial applications, and to alter it and redistribute it 16 * freely, subject to the following restrictions: 17 * 18 * 1. The origin of this software must not be misrepresented; you must not 19 * claim that you wrote the original software. If you use this software 20 * in a product, an acknowledgment in the product documentation would be 21 * appreciated but is not required. 22 * 2. Altered source versions must be plainly marked as such, and must not be 23 * misrepresented as being the original software. 24 * 3. This notice may not be removed or altered from any source distribution. 25 */ 26 27 // Note: the C++ pure virtual interfaces used require the MSVC-compatible C++ ABI on Win32. Sorry, mingw users. 28 // 29 // Reaper extensions: see http://www.cockos.com/reaper/sdk/plugin/plugin.php and reaper_plugin.h. 30 // The API functions in this header can be retrieved using reaper_plugin_info_t.GetFunc(). 31 // 32 // VST plugins: see http://www.cockos.com/reaper/sdk/vst/vst_ext.php 33 // The API functions in this header can be retrieved using audioMasterCallback. 34 // 35 // Because the API is dynamic, callers should never assume a function exists. 36 // Check that a non-NULL function pointer was returned before using it (unless 37 // loaded functions are verified using REAPERAPI_LoadAPI(), see note below). 38 39 // New (4.76+) usage of this file: 40 // 1) most source files should just #include "reaper_plugin_functions.h" as is. 41 // 2) one file should #define REAPERAPI_IMPLEMENT before including this file. 42 // 3) the plug-in should call REAPERAPI_LoadAPI(rec->GetFunc) from REAPER_PLUGIN_ENTRYPOINT 43 // and check the return value for errors (REAPERAPI_LoadAPI will return 0 on success). 44 45 // By default, all functions listed in this file are loaded. This means that an older version 46 // of REAPER may not succeed in loading, and also it may bloat your plug-in. If you wish to only load 47 // needed functions, #define REAPERAPI_MINIMAL and various #define REAPERAPI_WANT_<functionname> lines 48 // before including this file. You must put these definitions where REAPERAPI_IMPLEMENT is defined 49 // and you can optionally put them elsewhere (to detect needed REAPERAPI_WANT_xxx lines at compile- 50 // time rather than link-time). 51 // 52 #if !defined(_LICE_H) && !defined(REAPERAPI_NO_LICE) 53 typedef unsigned int LICE_pixel; 54 typedef unsigned char LICE_pixel_chan; 55 class LICE_IBitmap; 56 class LICE_IFont; 57 #endif 58 59 class WDL_VirtualWnd_BGCfg; 60 class AudioAccessor; 61 class joystick_device; 62 63 // easiest to include reaper_plugin.h before reaper_plugin_functions.h in your application code. 64 // if not, you may need to edit this path. 65 #ifndef _REAPER_PLUGIN_H_ 66 #include "reaper_plugin.h" 67 #endif 68 69 #ifdef REAPERAPI_DEF 70 #undef REAPERAPI_DEF 71 #endif 72 #ifdef REAPERAPI_IMPLEMENT 73 #define REAPERAPI_DEF 74 #else 75 #define REAPERAPI_DEF extern 76 #endif 77 78 79 #if defined(REAPERAPI_WANT___mergesort) || !defined(REAPERAPI_MINIMAL) 80 REAPERAPI_DEF //============================================== 81 // __mergesort 82 // __mergesort is a stable sorting function with an API similar to qsort(). 83 // HOWEVER, it requires some temporary space, equal to the size of the data being sorted, so you can pass it as the last parameter, 84 // or NULL and it will allocate and free space internally. 85 86 void (*__mergesort)(void* base, size_t nmemb, size_t size, int (*cmpfunc)(const void*,const void*), void* tmpspace); 87 #endif 88 89 #if defined(REAPERAPI_WANT_AddCustomizableMenu) || !defined(REAPERAPI_MINIMAL) 90 REAPERAPI_DEF //============================================== 91 // AddCustomizableMenu 92 // menuidstr is some unique identifying string 93 // menuname is for main menus only (displayed in a menu bar somewhere), NULL otherwise 94 // kbdsecname is the name of the KbdSectionInfo registered by this plugin, or NULL for the main actions section 95 96 bool (*AddCustomizableMenu)(const char* menuidstr, const char* menuname, const char* kbdsecname, bool addtomainmenu); 97 #endif 98 99 #if defined(REAPERAPI_WANT_AddExtensionsMainMenu) || !defined(REAPERAPI_MINIMAL) 100 REAPERAPI_DEF //============================================== 101 // AddExtensionsMainMenu 102 // Add an Extensions main menu, which the extension can populate/modify with plugin_register("hookcustommenu") 103 104 bool (*AddExtensionsMainMenu)(); 105 #endif 106 107 #if defined(REAPERAPI_WANT_AddMediaItemToTrack) || !defined(REAPERAPI_MINIMAL) 108 REAPERAPI_DEF //============================================== 109 // AddMediaItemToTrack 110 // creates a new media item. 111 112 MediaItem* (*AddMediaItemToTrack)(MediaTrack* tr); 113 #endif 114 115 #if defined(REAPERAPI_WANT_AddProjectMarker) || !defined(REAPERAPI_MINIMAL) 116 REAPERAPI_DEF //============================================== 117 // AddProjectMarker 118 // Returns the index of the created marker/region, or -1 on failure. Supply wantidx>=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use. 119 120 int (*AddProjectMarker)(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx); 121 #endif 122 123 #if defined(REAPERAPI_WANT_AddProjectMarker2) || !defined(REAPERAPI_MINIMAL) 124 REAPERAPI_DEF //============================================== 125 // AddProjectMarker2 126 // Returns the index of the created marker/region, or -1 on failure. Supply wantidx>=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use. color should be 0 (default color), or ColorToNative(r,g,b)|0x1000000 127 128 int (*AddProjectMarker2)(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx, int color); 129 #endif 130 131 #if defined(REAPERAPI_WANT_AddRemoveReaScript) || !defined(REAPERAPI_MINIMAL) 132 REAPERAPI_DEF //============================================== 133 // AddRemoveReaScript 134 // Add a ReaScript (return the new command ID, or 0 if failed) or remove a ReaScript (return >0 on success). Use commit==true when adding/removing a single script. When bulk adding/removing n scripts, you can optimize the n-1 first calls with commit==false and commit==true for the last call. 135 136 int (*AddRemoveReaScript)(bool add, int sectionID, const char* scriptfn, bool commit); 137 #endif 138 139 #if defined(REAPERAPI_WANT_AddTakeToMediaItem) || !defined(REAPERAPI_MINIMAL) 140 REAPERAPI_DEF //============================================== 141 // AddTakeToMediaItem 142 // creates a new take in an item 143 144 MediaItem_Take* (*AddTakeToMediaItem)(MediaItem* item); 145 #endif 146 147 #if defined(REAPERAPI_WANT_AddTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 148 REAPERAPI_DEF //============================================== 149 // AddTempoTimeSigMarker 150 // Deprecated. Use SetTempoTimeSigMarker with ptidx=-1. 151 152 bool (*AddTempoTimeSigMarker)(ReaProject* proj, double timepos, double bpm, int timesig_num, int timesig_denom, bool lineartempochange); 153 #endif 154 155 #if defined(REAPERAPI_WANT_adjustZoom) || !defined(REAPERAPI_MINIMAL) 156 REAPERAPI_DEF //============================================== 157 // adjustZoom 158 // forceset=0,doupd=true,centermode=-1 for default 159 160 void (*adjustZoom)(double amt, int forceset, bool doupd, int centermode); 161 #endif 162 163 #if defined(REAPERAPI_WANT_AnyTrackSolo) || !defined(REAPERAPI_MINIMAL) 164 REAPERAPI_DEF //============================================== 165 // AnyTrackSolo 166 167 bool (*AnyTrackSolo)(ReaProject* proj); 168 #endif 169 170 #if defined(REAPERAPI_WANT_APIExists) || !defined(REAPERAPI_MINIMAL) 171 REAPERAPI_DEF //============================================== 172 // APIExists 173 // Returns true if function_name exists in the REAPER API 174 175 bool (*APIExists)(const char* function_name); 176 #endif 177 178 #if defined(REAPERAPI_WANT_APITest) || !defined(REAPERAPI_MINIMAL) 179 REAPERAPI_DEF //============================================== 180 // APITest 181 // Displays a message window if the API was successfully called. 182 183 void (*APITest)(); 184 #endif 185 186 #if defined(REAPERAPI_WANT_ApplyNudge) || !defined(REAPERAPI_MINIMAL) 187 REAPERAPI_DEF //============================================== 188 // ApplyNudge 189 // nudgeflag: &1=set to value (otherwise nudge by value), &2=snap 190 // nudgewhat: 0=position, 1=left trim, 2=left edge, 3=right edge, 4=contents, 5=duplicate, 6=edit cursor 191 // nudgeunit: 0=ms, 1=seconds, 2=grid, 3=256th notes, ..., 15=whole notes, 16=measures.beats (1.15 = 1 measure + 1.5 beats), 17=samples, 18=frames, 19=pixels, 20=item lengths, 21=item selections 192 // value: amount to nudge by, or value to set to 193 // reverse: in nudge mode, nudges left (otherwise ignored) 194 // copies: in nudge duplicate mode, number of copies (otherwise ignored) 195 196 bool (*ApplyNudge)(ReaProject* project, int nudgeflag, int nudgewhat, int nudgeunits, double value, bool reverse, int copies); 197 #endif 198 199 #if defined(REAPERAPI_WANT_ArmCommand) || !defined(REAPERAPI_MINIMAL) 200 REAPERAPI_DEF //============================================== 201 // ArmCommand 202 // arms a command (or disarms if 0 passed) in section sectionname (empty string for main) 203 204 void (*ArmCommand)(int cmd, const char* sectionname); 205 #endif 206 207 #if defined(REAPERAPI_WANT_Audio_Init) || !defined(REAPERAPI_MINIMAL) 208 REAPERAPI_DEF //============================================== 209 // Audio_Init 210 // open all audio and MIDI devices, if not open 211 212 void (*Audio_Init)(); 213 #endif 214 215 #if defined(REAPERAPI_WANT_Audio_IsPreBuffer) || !defined(REAPERAPI_MINIMAL) 216 REAPERAPI_DEF //============================================== 217 // Audio_IsPreBuffer 218 // is in pre-buffer? threadsafe 219 220 int (*Audio_IsPreBuffer)(); 221 #endif 222 223 #if defined(REAPERAPI_WANT_Audio_IsRunning) || !defined(REAPERAPI_MINIMAL) 224 REAPERAPI_DEF //============================================== 225 // Audio_IsRunning 226 // is audio running at all? threadsafe 227 228 int (*Audio_IsRunning)(); 229 #endif 230 231 #if defined(REAPERAPI_WANT_Audio_Quit) || !defined(REAPERAPI_MINIMAL) 232 REAPERAPI_DEF //============================================== 233 // Audio_Quit 234 // close all audio and MIDI devices, if open 235 236 void (*Audio_Quit)(); 237 #endif 238 239 #if defined(REAPERAPI_WANT_Audio_RegHardwareHook) || !defined(REAPERAPI_MINIMAL) 240 REAPERAPI_DEF //============================================== 241 // Audio_RegHardwareHook 242 // return >0 on success 243 244 int (*Audio_RegHardwareHook)(bool isAdd, audio_hook_register_t* reg); 245 #endif 246 247 #if defined(REAPERAPI_WANT_AudioAccessorStateChanged) || !defined(REAPERAPI_MINIMAL) 248 REAPERAPI_DEF //============================================== 249 // AudioAccessorStateChanged 250 // Returns true if the underlying samples (track or media item take) have changed, but does not update the audio accessor, so the user can selectively call AudioAccessorValidateState only when needed. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, GetAudioAccessorEndTime, GetAudioAccessorSamples. 251 252 bool (*AudioAccessorStateChanged)(AudioAccessor* accessor); 253 #endif 254 255 #if defined(REAPERAPI_WANT_AudioAccessorUpdate) || !defined(REAPERAPI_MINIMAL) 256 REAPERAPI_DEF //============================================== 257 // AudioAccessorUpdate 258 // Force the accessor to reload its state from the underlying track or media item take. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples. 259 260 void (*AudioAccessorUpdate)(AudioAccessor* accessor); 261 #endif 262 263 #if defined(REAPERAPI_WANT_AudioAccessorValidateState) || !defined(REAPERAPI_MINIMAL) 264 REAPERAPI_DEF //============================================== 265 // AudioAccessorValidateState 266 // Validates the current state of the audio accessor -- must ONLY call this from the main thread. Returns true if the state changed. 267 268 bool (*AudioAccessorValidateState)(AudioAccessor* accessor); 269 #endif 270 271 #if defined(REAPERAPI_WANT_BypassFxAllTracks) || !defined(REAPERAPI_MINIMAL) 272 REAPERAPI_DEF //============================================== 273 // BypassFxAllTracks 274 // -1 = bypass all if not all bypassed,otherwise unbypass all 275 276 void (*BypassFxAllTracks)(int bypass); 277 #endif 278 279 #if defined(REAPERAPI_WANT_CalcMediaSrcLoudness) || !defined(REAPERAPI_MINIMAL) 280 REAPERAPI_DEF //============================================== 281 // CalcMediaSrcLoudness 282 // Calculates loudness statistics of media via dry run render. Statistics will be displayed to the user; call GetSetProjectInfo_String("RENDER_STATS") to retrieve via API. Returns 1 if loudness was calculated successfully, -1 if user canceled the dry run render. 283 284 int (*CalcMediaSrcLoudness)(PCM_source* mediasource); 285 #endif 286 287 #if defined(REAPERAPI_WANT_CalculateNormalization) || !defined(REAPERAPI_MINIMAL) 288 REAPERAPI_DEF //============================================== 289 // CalculateNormalization 290 // Calculate normalize adjustment for source media. normalizeTo: 0=LUFS-I, 1=RMS-I, 2=peak, 3=true peak, 4=LUFS-M max, 5=LUFS-S max. normalizeTarget: dBFS or LUFS value. normalizeStart, normalizeEnd: time bounds within source media for normalization calculation. If normalizationStart=0 and normalizationEnd=0, the full duration of the media will be used for the calculation. 291 292 double (*CalculateNormalization)(PCM_source* source, int normalizeTo, double normalizeTarget, double normalizeStart, double normalizeEnd); 293 #endif 294 295 #if defined(REAPERAPI_WANT_CalculatePeaks) || !defined(REAPERAPI_MINIMAL) 296 REAPERAPI_DEF //============================================== 297 // CalculatePeaks 298 299 int (*CalculatePeaks)(PCM_source_transfer_t* srcBlock, PCM_source_peaktransfer_t* pksBlock); 300 #endif 301 302 #if defined(REAPERAPI_WANT_CalculatePeaksFloatSrcPtr) || !defined(REAPERAPI_MINIMAL) 303 REAPERAPI_DEF //============================================== 304 // CalculatePeaksFloatSrcPtr 305 // NOTE: source samples field is a pointer to floats instead 306 307 int (*CalculatePeaksFloatSrcPtr)(PCM_source_transfer_t* srcBlock, PCM_source_peaktransfer_t* pksBlock); 308 #endif 309 310 #if defined(REAPERAPI_WANT_ClearAllRecArmed) || !defined(REAPERAPI_MINIMAL) 311 REAPERAPI_DEF //============================================== 312 // ClearAllRecArmed 313 314 void (*ClearAllRecArmed)(); 315 #endif 316 317 #if defined(REAPERAPI_WANT_ClearConsole) || !defined(REAPERAPI_MINIMAL) 318 REAPERAPI_DEF //============================================== 319 // ClearConsole 320 // Clear the ReaScript console. See ShowConsoleMsg 321 322 void (*ClearConsole)(); 323 #endif 324 325 #if defined(REAPERAPI_WANT_ClearPeakCache) || !defined(REAPERAPI_MINIMAL) 326 REAPERAPI_DEF //============================================== 327 // ClearPeakCache 328 // resets the global peak caches 329 330 void (*ClearPeakCache)(); 331 #endif 332 333 #if defined(REAPERAPI_WANT_ColorFromNative) || !defined(REAPERAPI_MINIMAL) 334 REAPERAPI_DEF //============================================== 335 // ColorFromNative 336 // Extract RGB values from an OS dependent color. See ColorToNative. 337 338 void (*ColorFromNative)(int col, int* rOut, int* gOut, int* bOut); 339 #endif 340 341 #if defined(REAPERAPI_WANT_ColorToNative) || !defined(REAPERAPI_MINIMAL) 342 REAPERAPI_DEF //============================================== 343 // ColorToNative 344 // Make an OS dependent color from RGB values (e.g. RGB() macro on Windows). r,g and b are in [0..255]. See ColorFromNative. 345 346 int (*ColorToNative)(int r, int g, int b); 347 #endif 348 349 #if defined(REAPERAPI_WANT_CountActionShortcuts) || !defined(REAPERAPI_MINIMAL) 350 REAPERAPI_DEF //============================================== 351 // CountActionShortcuts 352 // Returns the number of shortcuts that exist for the given command ID. 353 // see GetActionShortcutDesc, DeleteActionShortcut, DoActionShortcutDialog. 354 355 int (*CountActionShortcuts)(KbdSectionInfo* section, int cmdID); 356 #endif 357 358 #if defined(REAPERAPI_WANT_CountAutomationItems) || !defined(REAPERAPI_MINIMAL) 359 REAPERAPI_DEF //============================================== 360 // CountAutomationItems 361 // Returns the number of automation items on this envelope. See GetSetAutomationItemInfo 362 363 int (*CountAutomationItems)(TrackEnvelope* env); 364 #endif 365 366 #if defined(REAPERAPI_WANT_CountEnvelopePoints) || !defined(REAPERAPI_MINIMAL) 367 REAPERAPI_DEF //============================================== 368 // CountEnvelopePoints 369 // Returns the number of points in the envelope. See CountEnvelopePointsEx. 370 371 int (*CountEnvelopePoints)(TrackEnvelope* envelope); 372 #endif 373 374 #if defined(REAPERAPI_WANT_CountEnvelopePointsEx) || !defined(REAPERAPI_MINIMAL) 375 REAPERAPI_DEF //============================================== 376 // CountEnvelopePointsEx 377 // Returns the number of points in the envelope. 378 // autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. 379 // For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, 380 // even if the automation item is trimmed so that not all points are visible. 381 // Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. 382 // See GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx. 383 384 int (*CountEnvelopePointsEx)(TrackEnvelope* envelope, int autoitem_idx); 385 #endif 386 387 #if defined(REAPERAPI_WANT_CountMediaItems) || !defined(REAPERAPI_MINIMAL) 388 REAPERAPI_DEF //============================================== 389 // CountMediaItems 390 // count the number of items in the project (proj=0 for active project) 391 392 int (*CountMediaItems)(ReaProject* proj); 393 #endif 394 395 #if defined(REAPERAPI_WANT_CountProjectMarkers) || !defined(REAPERAPI_MINIMAL) 396 REAPERAPI_DEF //============================================== 397 // CountProjectMarkers 398 // num_markersOut and num_regionsOut may be NULL. 399 400 int (*CountProjectMarkers)(ReaProject* proj, int* num_markersOut, int* num_regionsOut); 401 #endif 402 403 #if defined(REAPERAPI_WANT_CountSelectedMediaItems) || !defined(REAPERAPI_MINIMAL) 404 REAPERAPI_DEF //============================================== 405 // CountSelectedMediaItems 406 // count the number of selected items in the project (proj=0 for active project) 407 408 int (*CountSelectedMediaItems)(ReaProject* proj); 409 #endif 410 411 #if defined(REAPERAPI_WANT_CountSelectedTracks) || !defined(REAPERAPI_MINIMAL) 412 REAPERAPI_DEF //============================================== 413 // CountSelectedTracks 414 // Count the number of selected tracks in the project (proj=0 for active project). This function ignores the master track, see CountSelectedTracks2. 415 416 int (*CountSelectedTracks)(ReaProject* proj); 417 #endif 418 419 #if defined(REAPERAPI_WANT_CountSelectedTracks2) || !defined(REAPERAPI_MINIMAL) 420 REAPERAPI_DEF //============================================== 421 // CountSelectedTracks2 422 // Count the number of selected tracks in the project (proj=0 for active project). 423 424 int (*CountSelectedTracks2)(ReaProject* proj, bool wantmaster); 425 #endif 426 427 #if defined(REAPERAPI_WANT_CountTakeEnvelopes) || !defined(REAPERAPI_MINIMAL) 428 REAPERAPI_DEF //============================================== 429 // CountTakeEnvelopes 430 // See GetTakeEnvelope 431 432 int (*CountTakeEnvelopes)(MediaItem_Take* take); 433 #endif 434 435 #if defined(REAPERAPI_WANT_CountTakes) || !defined(REAPERAPI_MINIMAL) 436 REAPERAPI_DEF //============================================== 437 // CountTakes 438 // count the number of takes in the item 439 440 int (*CountTakes)(MediaItem* item); 441 #endif 442 443 #if defined(REAPERAPI_WANT_CountTCPFXParms) || !defined(REAPERAPI_MINIMAL) 444 REAPERAPI_DEF //============================================== 445 // CountTCPFXParms 446 // Count the number of FX parameter knobs displayed on the track control panel. 447 448 int (*CountTCPFXParms)(ReaProject* project, MediaTrack* track); 449 #endif 450 451 #if defined(REAPERAPI_WANT_CountTempoTimeSigMarkers) || !defined(REAPERAPI_MINIMAL) 452 REAPERAPI_DEF //============================================== 453 // CountTempoTimeSigMarkers 454 // Count the number of tempo/time signature markers in the project. See GetTempoTimeSigMarker, SetTempoTimeSigMarker, AddTempoTimeSigMarker. 455 456 int (*CountTempoTimeSigMarkers)(ReaProject* proj); 457 #endif 458 459 #if defined(REAPERAPI_WANT_CountTrackEnvelopes) || !defined(REAPERAPI_MINIMAL) 460 REAPERAPI_DEF //============================================== 461 // CountTrackEnvelopes 462 // see GetTrackEnvelope 463 464 int (*CountTrackEnvelopes)(MediaTrack* track); 465 #endif 466 467 #if defined(REAPERAPI_WANT_CountTrackMediaItems) || !defined(REAPERAPI_MINIMAL) 468 REAPERAPI_DEF //============================================== 469 // CountTrackMediaItems 470 // count the number of items in the track 471 472 int (*CountTrackMediaItems)(MediaTrack* track); 473 #endif 474 475 #if defined(REAPERAPI_WANT_CountTracks) || !defined(REAPERAPI_MINIMAL) 476 REAPERAPI_DEF //============================================== 477 // CountTracks 478 // count the number of tracks in the project (proj=0 for active project) 479 480 int (*CountTracks)(ReaProject* projOptional); 481 #endif 482 483 #if defined(REAPERAPI_WANT_CreateLocalOscHandler) || !defined(REAPERAPI_MINIMAL) 484 REAPERAPI_DEF //============================================== 485 // CreateLocalOscHandler 486 // callback is a function pointer: void (*callback)(void* obj, const char* msg, int msglen), which handles OSC messages sent from REAPER. The function return is a local osc handler. See SendLocalOscMessage, DestroyOscHandler. 487 488 void* (*CreateLocalOscHandler)(void* obj, void* callback); 489 #endif 490 491 #if defined(REAPERAPI_WANT_CreateMIDIInput) || !defined(REAPERAPI_MINIMAL) 492 REAPERAPI_DEF //============================================== 493 // CreateMIDIInput 494 // Can only reliably create midi access for devices not already opened in prefs/MIDI, suitable for control surfaces etc. 495 496 midi_Input* (*CreateMIDIInput)(int dev); 497 #endif 498 499 #if defined(REAPERAPI_WANT_CreateMIDIOutput) || !defined(REAPERAPI_MINIMAL) 500 REAPERAPI_DEF //============================================== 501 // CreateMIDIOutput 502 // Can only reliably create midi access for devices not already opened in prefs/MIDI, suitable for control surfaces etc. If streamMode is set, msoffset100 points to a persistent variable that can change and reflects added delay to output in 100ths of a millisecond. 503 504 midi_Output* (*CreateMIDIOutput)(int dev, bool streamMode, int* msoffset100); 505 #endif 506 507 #if defined(REAPERAPI_WANT_CreateNewMIDIItemInProj) || !defined(REAPERAPI_MINIMAL) 508 REAPERAPI_DEF //============================================== 509 // CreateNewMIDIItemInProj 510 // Create a new MIDI media item, containing no MIDI events. Time is in seconds unless qn is set. 511 512 MediaItem* (*CreateNewMIDIItemInProj)(MediaTrack* track, double starttime, double endtime, const bool* qnInOptional); 513 #endif 514 515 #if defined(REAPERAPI_WANT_CreateTakeAudioAccessor) || !defined(REAPERAPI_MINIMAL) 516 REAPERAPI_DEF //============================================== 517 // CreateTakeAudioAccessor 518 // Create an audio accessor object for this take. Must only call from the main thread. See CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples. 519 520 AudioAccessor* (*CreateTakeAudioAccessor)(MediaItem_Take* take); 521 #endif 522 523 #if defined(REAPERAPI_WANT_CreateTrackAudioAccessor) || !defined(REAPERAPI_MINIMAL) 524 REAPERAPI_DEF //============================================== 525 // CreateTrackAudioAccessor 526 // Create an audio accessor object for this track. Must only call from the main thread. See CreateTakeAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples. 527 528 AudioAccessor* (*CreateTrackAudioAccessor)(MediaTrack* track); 529 #endif 530 531 #if defined(REAPERAPI_WANT_CreateTrackSend) || !defined(REAPERAPI_MINIMAL) 532 REAPERAPI_DEF //============================================== 533 // CreateTrackSend 534 // Create a send/receive (desttrInOptional!=NULL), or a hardware output (desttrInOptional==NULL) with default properties, return >=0 on success (== new send/receive index). See RemoveTrackSend, GetSetTrackSendInfo, GetTrackSendInfo_Value, SetTrackSendInfo_Value. 535 536 int (*CreateTrackSend)(MediaTrack* tr, MediaTrack* desttrInOptional); 537 #endif 538 539 #if defined(REAPERAPI_WANT_CSurf_FlushUndo) || !defined(REAPERAPI_MINIMAL) 540 REAPERAPI_DEF //============================================== 541 // CSurf_FlushUndo 542 // call this to force flushing of the undo states after using CSurf_On*Change() 543 544 void (*CSurf_FlushUndo)(bool force); 545 #endif 546 547 #if defined(REAPERAPI_WANT_CSurf_GetTouchState) || !defined(REAPERAPI_MINIMAL) 548 REAPERAPI_DEF //============================================== 549 // CSurf_GetTouchState 550 551 bool (*CSurf_GetTouchState)(MediaTrack* trackid, int isPan); 552 #endif 553 554 #if defined(REAPERAPI_WANT_CSurf_GoEnd) || !defined(REAPERAPI_MINIMAL) 555 REAPERAPI_DEF //============================================== 556 // CSurf_GoEnd 557 558 void (*CSurf_GoEnd)(); 559 #endif 560 561 #if defined(REAPERAPI_WANT_CSurf_GoStart) || !defined(REAPERAPI_MINIMAL) 562 REAPERAPI_DEF //============================================== 563 // CSurf_GoStart 564 565 void (*CSurf_GoStart)(); 566 #endif 567 568 #if defined(REAPERAPI_WANT_CSurf_NumTracks) || !defined(REAPERAPI_MINIMAL) 569 REAPERAPI_DEF //============================================== 570 // CSurf_NumTracks 571 572 int (*CSurf_NumTracks)(bool mcpView); 573 #endif 574 575 #if defined(REAPERAPI_WANT_CSurf_OnArrow) || !defined(REAPERAPI_MINIMAL) 576 REAPERAPI_DEF //============================================== 577 // CSurf_OnArrow 578 579 void (*CSurf_OnArrow)(int whichdir, bool wantzoom); 580 #endif 581 582 #if defined(REAPERAPI_WANT_CSurf_OnFwd) || !defined(REAPERAPI_MINIMAL) 583 REAPERAPI_DEF //============================================== 584 // CSurf_OnFwd 585 586 void (*CSurf_OnFwd)(int seekplay); 587 #endif 588 589 #if defined(REAPERAPI_WANT_CSurf_OnFXChange) || !defined(REAPERAPI_MINIMAL) 590 REAPERAPI_DEF //============================================== 591 // CSurf_OnFXChange 592 593 bool (*CSurf_OnFXChange)(MediaTrack* trackid, int en); 594 #endif 595 596 #if defined(REAPERAPI_WANT_CSurf_OnInputMonitorChange) || !defined(REAPERAPI_MINIMAL) 597 REAPERAPI_DEF //============================================== 598 // CSurf_OnInputMonitorChange 599 600 int (*CSurf_OnInputMonitorChange)(MediaTrack* trackid, int monitor); 601 #endif 602 603 #if defined(REAPERAPI_WANT_CSurf_OnInputMonitorChangeEx) || !defined(REAPERAPI_MINIMAL) 604 REAPERAPI_DEF //============================================== 605 // CSurf_OnInputMonitorChangeEx 606 607 int (*CSurf_OnInputMonitorChangeEx)(MediaTrack* trackid, int monitor, bool allowgang); 608 #endif 609 610 #if defined(REAPERAPI_WANT_CSurf_OnMuteChange) || !defined(REAPERAPI_MINIMAL) 611 REAPERAPI_DEF //============================================== 612 // CSurf_OnMuteChange 613 614 bool (*CSurf_OnMuteChange)(MediaTrack* trackid, int mute); 615 #endif 616 617 #if defined(REAPERAPI_WANT_CSurf_OnMuteChangeEx) || !defined(REAPERAPI_MINIMAL) 618 REAPERAPI_DEF //============================================== 619 // CSurf_OnMuteChangeEx 620 621 bool (*CSurf_OnMuteChangeEx)(MediaTrack* trackid, int mute, bool allowgang); 622 #endif 623 624 #if defined(REAPERAPI_WANT_CSurf_OnOscControlMessage) || !defined(REAPERAPI_MINIMAL) 625 REAPERAPI_DEF //============================================== 626 // CSurf_OnOscControlMessage 627 628 void (*CSurf_OnOscControlMessage)(const char* msg, const float* arg); 629 #endif 630 631 #if defined(REAPERAPI_WANT_CSurf_OnPanChange) || !defined(REAPERAPI_MINIMAL) 632 REAPERAPI_DEF //============================================== 633 // CSurf_OnPanChange 634 635 double (*CSurf_OnPanChange)(MediaTrack* trackid, double pan, bool relative); 636 #endif 637 638 #if defined(REAPERAPI_WANT_CSurf_OnPanChangeEx) || !defined(REAPERAPI_MINIMAL) 639 REAPERAPI_DEF //============================================== 640 // CSurf_OnPanChangeEx 641 642 double (*CSurf_OnPanChangeEx)(MediaTrack* trackid, double pan, bool relative, bool allowGang); 643 #endif 644 645 #if defined(REAPERAPI_WANT_CSurf_OnPause) || !defined(REAPERAPI_MINIMAL) 646 REAPERAPI_DEF //============================================== 647 // CSurf_OnPause 648 649 void (*CSurf_OnPause)(); 650 #endif 651 652 #if defined(REAPERAPI_WANT_CSurf_OnPlay) || !defined(REAPERAPI_MINIMAL) 653 REAPERAPI_DEF //============================================== 654 // CSurf_OnPlay 655 656 void (*CSurf_OnPlay)(); 657 #endif 658 659 #if defined(REAPERAPI_WANT_CSurf_OnPlayRateChange) || !defined(REAPERAPI_MINIMAL) 660 REAPERAPI_DEF //============================================== 661 // CSurf_OnPlayRateChange 662 663 void (*CSurf_OnPlayRateChange)(double playrate); 664 #endif 665 666 #if defined(REAPERAPI_WANT_CSurf_OnRecArmChange) || !defined(REAPERAPI_MINIMAL) 667 REAPERAPI_DEF //============================================== 668 // CSurf_OnRecArmChange 669 670 bool (*CSurf_OnRecArmChange)(MediaTrack* trackid, int recarm); 671 #endif 672 673 #if defined(REAPERAPI_WANT_CSurf_OnRecArmChangeEx) || !defined(REAPERAPI_MINIMAL) 674 REAPERAPI_DEF //============================================== 675 // CSurf_OnRecArmChangeEx 676 677 bool (*CSurf_OnRecArmChangeEx)(MediaTrack* trackid, int recarm, bool allowgang); 678 #endif 679 680 #if defined(REAPERAPI_WANT_CSurf_OnRecord) || !defined(REAPERAPI_MINIMAL) 681 REAPERAPI_DEF //============================================== 682 // CSurf_OnRecord 683 684 void (*CSurf_OnRecord)(); 685 #endif 686 687 #if defined(REAPERAPI_WANT_CSurf_OnRecvPanChange) || !defined(REAPERAPI_MINIMAL) 688 REAPERAPI_DEF //============================================== 689 // CSurf_OnRecvPanChange 690 691 double (*CSurf_OnRecvPanChange)(MediaTrack* trackid, int recv_index, double pan, bool relative); 692 #endif 693 694 #if defined(REAPERAPI_WANT_CSurf_OnRecvVolumeChange) || !defined(REAPERAPI_MINIMAL) 695 REAPERAPI_DEF //============================================== 696 // CSurf_OnRecvVolumeChange 697 698 double (*CSurf_OnRecvVolumeChange)(MediaTrack* trackid, int recv_index, double volume, bool relative); 699 #endif 700 701 #if defined(REAPERAPI_WANT_CSurf_OnRew) || !defined(REAPERAPI_MINIMAL) 702 REAPERAPI_DEF //============================================== 703 // CSurf_OnRew 704 705 void (*CSurf_OnRew)(int seekplay); 706 #endif 707 708 #if defined(REAPERAPI_WANT_CSurf_OnRewFwd) || !defined(REAPERAPI_MINIMAL) 709 REAPERAPI_DEF //============================================== 710 // CSurf_OnRewFwd 711 712 void (*CSurf_OnRewFwd)(int seekplay, int dir); 713 #endif 714 715 #if defined(REAPERAPI_WANT_CSurf_OnScroll) || !defined(REAPERAPI_MINIMAL) 716 REAPERAPI_DEF //============================================== 717 // CSurf_OnScroll 718 719 void (*CSurf_OnScroll)(int xdir, int ydir); 720 #endif 721 722 #if defined(REAPERAPI_WANT_CSurf_OnSelectedChange) || !defined(REAPERAPI_MINIMAL) 723 REAPERAPI_DEF //============================================== 724 // CSurf_OnSelectedChange 725 726 bool (*CSurf_OnSelectedChange)(MediaTrack* trackid, int selected); 727 #endif 728 729 #if defined(REAPERAPI_WANT_CSurf_OnSendPanChange) || !defined(REAPERAPI_MINIMAL) 730 REAPERAPI_DEF //============================================== 731 // CSurf_OnSendPanChange 732 733 double (*CSurf_OnSendPanChange)(MediaTrack* trackid, int send_index, double pan, bool relative); 734 #endif 735 736 #if defined(REAPERAPI_WANT_CSurf_OnSendVolumeChange) || !defined(REAPERAPI_MINIMAL) 737 REAPERAPI_DEF //============================================== 738 // CSurf_OnSendVolumeChange 739 740 double (*CSurf_OnSendVolumeChange)(MediaTrack* trackid, int send_index, double volume, bool relative); 741 #endif 742 743 #if defined(REAPERAPI_WANT_CSurf_OnSoloChange) || !defined(REAPERAPI_MINIMAL) 744 REAPERAPI_DEF //============================================== 745 // CSurf_OnSoloChange 746 747 bool (*CSurf_OnSoloChange)(MediaTrack* trackid, int solo); 748 #endif 749 750 #if defined(REAPERAPI_WANT_CSurf_OnSoloChangeEx) || !defined(REAPERAPI_MINIMAL) 751 REAPERAPI_DEF //============================================== 752 // CSurf_OnSoloChangeEx 753 754 bool (*CSurf_OnSoloChangeEx)(MediaTrack* trackid, int solo, bool allowgang); 755 #endif 756 757 #if defined(REAPERAPI_WANT_CSurf_OnStop) || !defined(REAPERAPI_MINIMAL) 758 REAPERAPI_DEF //============================================== 759 // CSurf_OnStop 760 761 void (*CSurf_OnStop)(); 762 #endif 763 764 #if defined(REAPERAPI_WANT_CSurf_OnTempoChange) || !defined(REAPERAPI_MINIMAL) 765 REAPERAPI_DEF //============================================== 766 // CSurf_OnTempoChange 767 768 void (*CSurf_OnTempoChange)(double bpm); 769 #endif 770 771 #if defined(REAPERAPI_WANT_CSurf_OnTrackSelection) || !defined(REAPERAPI_MINIMAL) 772 REAPERAPI_DEF //============================================== 773 // CSurf_OnTrackSelection 774 775 void (*CSurf_OnTrackSelection)(MediaTrack* trackid); 776 #endif 777 778 #if defined(REAPERAPI_WANT_CSurf_OnVolumeChange) || !defined(REAPERAPI_MINIMAL) 779 REAPERAPI_DEF //============================================== 780 // CSurf_OnVolumeChange 781 782 double (*CSurf_OnVolumeChange)(MediaTrack* trackid, double volume, bool relative); 783 #endif 784 785 #if defined(REAPERAPI_WANT_CSurf_OnVolumeChangeEx) || !defined(REAPERAPI_MINIMAL) 786 REAPERAPI_DEF //============================================== 787 // CSurf_OnVolumeChangeEx 788 789 double (*CSurf_OnVolumeChangeEx)(MediaTrack* trackid, double volume, bool relative, bool allowGang); 790 #endif 791 792 #if defined(REAPERAPI_WANT_CSurf_OnWidthChange) || !defined(REAPERAPI_MINIMAL) 793 REAPERAPI_DEF //============================================== 794 // CSurf_OnWidthChange 795 796 double (*CSurf_OnWidthChange)(MediaTrack* trackid, double width, bool relative); 797 #endif 798 799 #if defined(REAPERAPI_WANT_CSurf_OnWidthChangeEx) || !defined(REAPERAPI_MINIMAL) 800 REAPERAPI_DEF //============================================== 801 // CSurf_OnWidthChangeEx 802 803 double (*CSurf_OnWidthChangeEx)(MediaTrack* trackid, double width, bool relative, bool allowGang); 804 #endif 805 806 #if defined(REAPERAPI_WANT_CSurf_OnZoom) || !defined(REAPERAPI_MINIMAL) 807 REAPERAPI_DEF //============================================== 808 // CSurf_OnZoom 809 810 void (*CSurf_OnZoom)(int xdir, int ydir); 811 #endif 812 813 #if defined(REAPERAPI_WANT_CSurf_ResetAllCachedVolPanStates) || !defined(REAPERAPI_MINIMAL) 814 REAPERAPI_DEF //============================================== 815 // CSurf_ResetAllCachedVolPanStates 816 817 void (*CSurf_ResetAllCachedVolPanStates)(); 818 #endif 819 820 #if defined(REAPERAPI_WANT_CSurf_ScrubAmt) || !defined(REAPERAPI_MINIMAL) 821 REAPERAPI_DEF //============================================== 822 // CSurf_ScrubAmt 823 824 void (*CSurf_ScrubAmt)(double amt); 825 #endif 826 827 #if defined(REAPERAPI_WANT_CSurf_SetAutoMode) || !defined(REAPERAPI_MINIMAL) 828 REAPERAPI_DEF //============================================== 829 // CSurf_SetAutoMode 830 831 void (*CSurf_SetAutoMode)(int mode, IReaperControlSurface* ignoresurf); 832 #endif 833 834 #if defined(REAPERAPI_WANT_CSurf_SetPlayState) || !defined(REAPERAPI_MINIMAL) 835 REAPERAPI_DEF //============================================== 836 // CSurf_SetPlayState 837 838 void (*CSurf_SetPlayState)(bool play, bool pause, bool rec, IReaperControlSurface* ignoresurf); 839 #endif 840 841 #if defined(REAPERAPI_WANT_CSurf_SetRepeatState) || !defined(REAPERAPI_MINIMAL) 842 REAPERAPI_DEF //============================================== 843 // CSurf_SetRepeatState 844 845 void (*CSurf_SetRepeatState)(bool rep, IReaperControlSurface* ignoresurf); 846 #endif 847 848 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceMute) || !defined(REAPERAPI_MINIMAL) 849 REAPERAPI_DEF //============================================== 850 // CSurf_SetSurfaceMute 851 852 void (*CSurf_SetSurfaceMute)(MediaTrack* trackid, bool mute, IReaperControlSurface* ignoresurf); 853 #endif 854 855 #if defined(REAPERAPI_WANT_CSurf_SetSurfacePan) || !defined(REAPERAPI_MINIMAL) 856 REAPERAPI_DEF //============================================== 857 // CSurf_SetSurfacePan 858 859 void (*CSurf_SetSurfacePan)(MediaTrack* trackid, double pan, IReaperControlSurface* ignoresurf); 860 #endif 861 862 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceRecArm) || !defined(REAPERAPI_MINIMAL) 863 REAPERAPI_DEF //============================================== 864 // CSurf_SetSurfaceRecArm 865 866 void (*CSurf_SetSurfaceRecArm)(MediaTrack* trackid, bool recarm, IReaperControlSurface* ignoresurf); 867 #endif 868 869 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceSelected) || !defined(REAPERAPI_MINIMAL) 870 REAPERAPI_DEF //============================================== 871 // CSurf_SetSurfaceSelected 872 873 void (*CSurf_SetSurfaceSelected)(MediaTrack* trackid, bool selected, IReaperControlSurface* ignoresurf); 874 #endif 875 876 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceSolo) || !defined(REAPERAPI_MINIMAL) 877 REAPERAPI_DEF //============================================== 878 // CSurf_SetSurfaceSolo 879 880 void (*CSurf_SetSurfaceSolo)(MediaTrack* trackid, bool solo, IReaperControlSurface* ignoresurf); 881 #endif 882 883 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceVolume) || !defined(REAPERAPI_MINIMAL) 884 REAPERAPI_DEF //============================================== 885 // CSurf_SetSurfaceVolume 886 887 void (*CSurf_SetSurfaceVolume)(MediaTrack* trackid, double volume, IReaperControlSurface* ignoresurf); 888 #endif 889 890 #if defined(REAPERAPI_WANT_CSurf_SetTrackListChange) || !defined(REAPERAPI_MINIMAL) 891 REAPERAPI_DEF //============================================== 892 // CSurf_SetTrackListChange 893 894 void (*CSurf_SetTrackListChange)(); 895 #endif 896 897 #if defined(REAPERAPI_WANT_CSurf_TrackFromID) || !defined(REAPERAPI_MINIMAL) 898 REAPERAPI_DEF //============================================== 899 // CSurf_TrackFromID 900 901 MediaTrack* (*CSurf_TrackFromID)(int idx, bool mcpView); 902 #endif 903 904 #if defined(REAPERAPI_WANT_CSurf_TrackToID) || !defined(REAPERAPI_MINIMAL) 905 REAPERAPI_DEF //============================================== 906 // CSurf_TrackToID 907 908 int (*CSurf_TrackToID)(MediaTrack* track, bool mcpView); 909 #endif 910 911 #if defined(REAPERAPI_WANT_DB2SLIDER) || !defined(REAPERAPI_MINIMAL) 912 REAPERAPI_DEF //============================================== 913 // DB2SLIDER 914 915 double (*DB2SLIDER)(double x); 916 #endif 917 918 #if defined(REAPERAPI_WANT_DeleteActionShortcut) || !defined(REAPERAPI_MINIMAL) 919 REAPERAPI_DEF //============================================== 920 // DeleteActionShortcut 921 // Delete the specific shortcut for the given command ID. 922 // See CountActionShortcuts, GetActionShortcutDesc, DoActionShortcutDialog. 923 924 bool (*DeleteActionShortcut)(KbdSectionInfo* section, int cmdID, int shortcutidx); 925 #endif 926 927 #if defined(REAPERAPI_WANT_DeleteEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 928 REAPERAPI_DEF //============================================== 929 // DeleteEnvelopePointEx 930 // Delete an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. 931 // autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. 932 // For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, 933 // even if the automation item is trimmed so that not all points are visible. 934 // Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. 935 // See CountEnvelopePointsEx, GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx. 936 937 bool (*DeleteEnvelopePointEx)(TrackEnvelope* envelope, int autoitem_idx, int ptidx); 938 #endif 939 940 #if defined(REAPERAPI_WANT_DeleteEnvelopePointRange) || !defined(REAPERAPI_MINIMAL) 941 REAPERAPI_DEF //============================================== 942 // DeleteEnvelopePointRange 943 // Delete a range of envelope points. See DeleteEnvelopePointRangeEx, DeleteEnvelopePointEx. 944 945 bool (*DeleteEnvelopePointRange)(TrackEnvelope* envelope, double time_start, double time_end); 946 #endif 947 948 #if defined(REAPERAPI_WANT_DeleteEnvelopePointRangeEx) || !defined(REAPERAPI_MINIMAL) 949 REAPERAPI_DEF //============================================== 950 // DeleteEnvelopePointRangeEx 951 // Delete a range of envelope points. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. 952 953 bool (*DeleteEnvelopePointRangeEx)(TrackEnvelope* envelope, int autoitem_idx, double time_start, double time_end); 954 #endif 955 956 #if defined(REAPERAPI_WANT_DeleteExtState) || !defined(REAPERAPI_MINIMAL) 957 REAPERAPI_DEF //============================================== 958 // DeleteExtState 959 // Delete the extended state value for a specific section and key. persist=true means the value should remain deleted the next time REAPER is opened. See SetExtState, GetExtState, HasExtState. 960 961 void (*DeleteExtState)(const char* section, const char* key, bool persist); 962 #endif 963 964 #if defined(REAPERAPI_WANT_DeleteProjectMarker) || !defined(REAPERAPI_MINIMAL) 965 REAPERAPI_DEF //============================================== 966 // DeleteProjectMarker 967 // Delete a marker. proj==NULL for the active project. 968 969 bool (*DeleteProjectMarker)(ReaProject* proj, int markrgnindexnumber, bool isrgn); 970 #endif 971 972 #if defined(REAPERAPI_WANT_DeleteProjectMarkerByIndex) || !defined(REAPERAPI_MINIMAL) 973 REAPERAPI_DEF //============================================== 974 // DeleteProjectMarkerByIndex 975 // Differs from DeleteProjectMarker only in that markrgnidx is 0 for the first marker/region, 1 for the next, etc (see EnumProjectMarkers3), rather than representing the displayed marker/region ID number (see SetProjectMarker4). 976 977 bool (*DeleteProjectMarkerByIndex)(ReaProject* proj, int markrgnidx); 978 #endif 979 980 #if defined(REAPERAPI_WANT_DeleteTakeMarker) || !defined(REAPERAPI_MINIMAL) 981 REAPERAPI_DEF //============================================== 982 // DeleteTakeMarker 983 // Delete a take marker. Note that idx will change for all following take markers. See GetNumTakeMarkers, GetTakeMarker, SetTakeMarker 984 985 bool (*DeleteTakeMarker)(MediaItem_Take* take, int idx); 986 #endif 987 988 #if defined(REAPERAPI_WANT_DeleteTakeStretchMarkers) || !defined(REAPERAPI_MINIMAL) 989 REAPERAPI_DEF //============================================== 990 // DeleteTakeStretchMarkers 991 // Deletes one or more stretch markers. Returns number of stretch markers deleted. 992 993 int (*DeleteTakeStretchMarkers)(MediaItem_Take* take, int idx, const int* countInOptional); 994 #endif 995 996 #if defined(REAPERAPI_WANT_DeleteTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 997 REAPERAPI_DEF //============================================== 998 // DeleteTempoTimeSigMarker 999 // Delete a tempo/time signature marker. 1000 1001 bool (*DeleteTempoTimeSigMarker)(ReaProject* project, int markerindex); 1002 #endif 1003 1004 #if defined(REAPERAPI_WANT_DeleteTrack) || !defined(REAPERAPI_MINIMAL) 1005 REAPERAPI_DEF //============================================== 1006 // DeleteTrack 1007 // deletes a track 1008 1009 void (*DeleteTrack)(MediaTrack* tr); 1010 #endif 1011 1012 #if defined(REAPERAPI_WANT_DeleteTrackMediaItem) || !defined(REAPERAPI_MINIMAL) 1013 REAPERAPI_DEF //============================================== 1014 // DeleteTrackMediaItem 1015 1016 bool (*DeleteTrackMediaItem)(MediaTrack* tr, MediaItem* it); 1017 #endif 1018 1019 #if defined(REAPERAPI_WANT_DestroyAudioAccessor) || !defined(REAPERAPI_MINIMAL) 1020 REAPERAPI_DEF //============================================== 1021 // DestroyAudioAccessor 1022 // Destroy an audio accessor. Must only call from the main thread. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime, GetAudioAccessorSamples. 1023 1024 void (*DestroyAudioAccessor)(AudioAccessor* accessor); 1025 #endif 1026 1027 #if defined(REAPERAPI_WANT_DestroyLocalOscHandler) || !defined(REAPERAPI_MINIMAL) 1028 REAPERAPI_DEF //============================================== 1029 // DestroyLocalOscHandler 1030 // See CreateLocalOscHandler, SendLocalOscMessage. 1031 1032 void (*DestroyLocalOscHandler)(void* local_osc_handler); 1033 #endif 1034 1035 #if defined(REAPERAPI_WANT_DoActionShortcutDialog) || !defined(REAPERAPI_MINIMAL) 1036 REAPERAPI_DEF //============================================== 1037 // DoActionShortcutDialog 1038 // Open the action shortcut dialog to edit or add a shortcut for the given command ID. If (shortcutidx >= 0 && shortcutidx < CountActionShortcuts()), that specific shortcut will be replaced, otherwise a new shortcut will be added. 1039 // See CountActionShortcuts, GetActionShortcutDesc, DeleteActionShortcut. 1040 1041 bool (*DoActionShortcutDialog)(HWND hwnd, KbdSectionInfo* section, int cmdID, int shortcutidx); 1042 #endif 1043 1044 #if defined(REAPERAPI_WANT_Dock_UpdateDockID) || !defined(REAPERAPI_MINIMAL) 1045 REAPERAPI_DEF //============================================== 1046 // Dock_UpdateDockID 1047 // updates preference for docker window ident_str to be in dock whichDock on next open 1048 1049 void (*Dock_UpdateDockID)(const char* ident_str, int whichDock); 1050 #endif 1051 1052 #if defined(REAPERAPI_WANT_DockGetPosition) || !defined(REAPERAPI_MINIMAL) 1053 REAPERAPI_DEF //============================================== 1054 // DockGetPosition 1055 // -1=not found, 0=bottom, 1=left, 2=top, 3=right, 4=floating 1056 1057 int (*DockGetPosition)(int whichDock); 1058 #endif 1059 1060 #if defined(REAPERAPI_WANT_DockIsChildOfDock) || !defined(REAPERAPI_MINIMAL) 1061 REAPERAPI_DEF //============================================== 1062 // DockIsChildOfDock 1063 // returns dock index that contains hwnd, or -1 1064 1065 int (*DockIsChildOfDock)(HWND hwnd, bool* isFloatingDockerOut); 1066 #endif 1067 1068 #if defined(REAPERAPI_WANT_DockWindowActivate) || !defined(REAPERAPI_MINIMAL) 1069 REAPERAPI_DEF //============================================== 1070 // DockWindowActivate 1071 1072 void (*DockWindowActivate)(HWND hwnd); 1073 #endif 1074 1075 #if defined(REAPERAPI_WANT_DockWindowAdd) || !defined(REAPERAPI_MINIMAL) 1076 REAPERAPI_DEF //============================================== 1077 // DockWindowAdd 1078 1079 void (*DockWindowAdd)(HWND hwnd, const char* name, int pos, bool allowShow); 1080 #endif 1081 1082 #if defined(REAPERAPI_WANT_DockWindowAddEx) || !defined(REAPERAPI_MINIMAL) 1083 REAPERAPI_DEF //============================================== 1084 // DockWindowAddEx 1085 1086 void (*DockWindowAddEx)(HWND hwnd, const char* name, const char* identstr, bool allowShow); 1087 #endif 1088 1089 #if defined(REAPERAPI_WANT_DockWindowRefresh) || !defined(REAPERAPI_MINIMAL) 1090 REAPERAPI_DEF //============================================== 1091 // DockWindowRefresh 1092 1093 void (*DockWindowRefresh)(); 1094 #endif 1095 1096 #if defined(REAPERAPI_WANT_DockWindowRefreshForHWND) || !defined(REAPERAPI_MINIMAL) 1097 REAPERAPI_DEF //============================================== 1098 // DockWindowRefreshForHWND 1099 1100 void (*DockWindowRefreshForHWND)(HWND hwnd); 1101 #endif 1102 1103 #if defined(REAPERAPI_WANT_DockWindowRemove) || !defined(REAPERAPI_MINIMAL) 1104 REAPERAPI_DEF //============================================== 1105 // DockWindowRemove 1106 1107 void (*DockWindowRemove)(HWND hwnd); 1108 #endif 1109 1110 #if defined(REAPERAPI_WANT_DuplicateCustomizableMenu) || !defined(REAPERAPI_MINIMAL) 1111 REAPERAPI_DEF //============================================== 1112 // DuplicateCustomizableMenu 1113 // Populate destmenu with all the entries and submenus found in srcmenu 1114 1115 bool (*DuplicateCustomizableMenu)(void* srcmenu, void* destmenu); 1116 #endif 1117 1118 #if defined(REAPERAPI_WANT_EditTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 1119 REAPERAPI_DEF //============================================== 1120 // EditTempoTimeSigMarker 1121 // Open the tempo/time signature marker editor dialog. 1122 1123 bool (*EditTempoTimeSigMarker)(ReaProject* project, int markerindex); 1124 #endif 1125 1126 #if defined(REAPERAPI_WANT_EnsureNotCompletelyOffscreen) || !defined(REAPERAPI_MINIMAL) 1127 REAPERAPI_DEF //============================================== 1128 // EnsureNotCompletelyOffscreen 1129 // call with a saved window rect for your window and it'll correct any positioning info. 1130 1131 void (*EnsureNotCompletelyOffscreen)(RECT* rInOut); 1132 #endif 1133 1134 #if defined(REAPERAPI_WANT_EnumerateFiles) || !defined(REAPERAPI_MINIMAL) 1135 REAPERAPI_DEF //============================================== 1136 // EnumerateFiles 1137 // List the files in the "path" directory. Returns NULL/nil when all files have been listed. Use fileindex = -1 to force re-read of directory (invalidate cache). See EnumerateSubdirectories 1138 1139 const char* (*EnumerateFiles)(const char* path, int fileindex); 1140 #endif 1141 1142 #if defined(REAPERAPI_WANT_EnumerateSubdirectories) || !defined(REAPERAPI_MINIMAL) 1143 REAPERAPI_DEF //============================================== 1144 // EnumerateSubdirectories 1145 // List the subdirectories in the "path" directory. Use subdirindex = -1 to force re-read of directory (invalidate cache). Returns NULL/nil when all subdirectories have been listed. See EnumerateFiles 1146 1147 const char* (*EnumerateSubdirectories)(const char* path, int subdirindex); 1148 #endif 1149 1150 #if defined(REAPERAPI_WANT_EnumPitchShiftModes) || !defined(REAPERAPI_MINIMAL) 1151 REAPERAPI_DEF //============================================== 1152 // EnumPitchShiftModes 1153 // Start querying modes at 0, returns FALSE when no more modes possible, sets strOut to NULL if a mode is currently unsupported 1154 1155 bool (*EnumPitchShiftModes)(int mode, const char** strOut); 1156 #endif 1157 1158 #if defined(REAPERAPI_WANT_EnumPitchShiftSubModes) || !defined(REAPERAPI_MINIMAL) 1159 REAPERAPI_DEF //============================================== 1160 // EnumPitchShiftSubModes 1161 // Returns submode name, or NULL 1162 1163 const char* (*EnumPitchShiftSubModes)(int mode, int submode); 1164 #endif 1165 1166 #if defined(REAPERAPI_WANT_EnumProjectMarkers) || !defined(REAPERAPI_MINIMAL) 1167 REAPERAPI_DEF //============================================== 1168 // EnumProjectMarkers 1169 1170 int (*EnumProjectMarkers)(int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut); 1171 #endif 1172 1173 #if defined(REAPERAPI_WANT_EnumProjectMarkers2) || !defined(REAPERAPI_MINIMAL) 1174 REAPERAPI_DEF //============================================== 1175 // EnumProjectMarkers2 1176 1177 int (*EnumProjectMarkers2)(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut); 1178 #endif 1179 1180 #if defined(REAPERAPI_WANT_EnumProjectMarkers3) || !defined(REAPERAPI_MINIMAL) 1181 REAPERAPI_DEF //============================================== 1182 // EnumProjectMarkers3 1183 1184 int (*EnumProjectMarkers3)(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut, int* colorOut); 1185 #endif 1186 1187 #if defined(REAPERAPI_WANT_EnumProjects) || !defined(REAPERAPI_MINIMAL) 1188 REAPERAPI_DEF //============================================== 1189 // EnumProjects 1190 // idx=-1 for current project,projfn can be NULL if not interested in filename. use idx 0x40000000 for currently rendering project, if any. 1191 1192 ReaProject* (*EnumProjects)(int idx, char* projfnOutOptional, int projfnOutOptional_sz); 1193 #endif 1194 1195 #if defined(REAPERAPI_WANT_EnumProjExtState) || !defined(REAPERAPI_MINIMAL) 1196 REAPERAPI_DEF //============================================== 1197 // EnumProjExtState 1198 // Enumerate the data stored with the project for a specific extname. Returns false when there is no more data. See SetProjExtState, GetProjExtState. 1199 1200 bool (*EnumProjExtState)(ReaProject* proj, const char* extname, int idx, char* keyOutOptional, int keyOutOptional_sz, char* valOutOptional, int valOutOptional_sz); 1201 #endif 1202 1203 #if defined(REAPERAPI_WANT_EnumRegionRenderMatrix) || !defined(REAPERAPI_MINIMAL) 1204 REAPERAPI_DEF //============================================== 1205 // EnumRegionRenderMatrix 1206 // Enumerate which tracks will be rendered within this region when using the region render matrix. When called with rendertrack==0, the function returns the first track that will be rendered (which may be the master track); rendertrack==1 will return the next track rendered, and so on. The function returns NULL when there are no more tracks that will be rendered within this region. 1207 1208 MediaTrack* (*EnumRegionRenderMatrix)(ReaProject* proj, int regionindex, int rendertrack); 1209 #endif 1210 1211 #if defined(REAPERAPI_WANT_EnumTrackMIDIProgramNames) || !defined(REAPERAPI_MINIMAL) 1212 REAPERAPI_DEF //============================================== 1213 // EnumTrackMIDIProgramNames 1214 // returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated 1215 1216 bool (*EnumTrackMIDIProgramNames)(int track, int programNumber, char* programName, int programName_sz); 1217 #endif 1218 1219 #if defined(REAPERAPI_WANT_EnumTrackMIDIProgramNamesEx) || !defined(REAPERAPI_MINIMAL) 1220 REAPERAPI_DEF //============================================== 1221 // EnumTrackMIDIProgramNamesEx 1222 // returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated 1223 1224 bool (*EnumTrackMIDIProgramNamesEx)(ReaProject* proj, MediaTrack* track, int programNumber, char* programName, int programName_sz); 1225 #endif 1226 1227 #if defined(REAPERAPI_WANT_Envelope_Evaluate) || !defined(REAPERAPI_MINIMAL) 1228 REAPERAPI_DEF //============================================== 1229 // Envelope_Evaluate 1230 // Get the effective envelope value at a given time position. samplesRequested is how long the caller expects until the next call to Envelope_Evaluate (often, the buffer block size). The return value is how many samples beyond that time position that the returned values are valid. dVdS is the change in value per sample (first derivative), ddVdS is the second derivative, dddVdS is the third derivative. See GetEnvelopeScalingMode. 1231 1232 int (*Envelope_Evaluate)(TrackEnvelope* envelope, double time, double samplerate, int samplesRequested, double* valueOut, double* dVdSOut, double* ddVdSOut, double* dddVdSOut); 1233 #endif 1234 1235 #if defined(REAPERAPI_WANT_Envelope_FormatValue) || !defined(REAPERAPI_MINIMAL) 1236 REAPERAPI_DEF //============================================== 1237 // Envelope_FormatValue 1238 // Formats the value of an envelope to a user-readable form 1239 1240 void (*Envelope_FormatValue)(TrackEnvelope* env, double value, char* bufOut, int bufOut_sz); 1241 #endif 1242 1243 #if defined(REAPERAPI_WANT_Envelope_GetParentTake) || !defined(REAPERAPI_MINIMAL) 1244 REAPERAPI_DEF //============================================== 1245 // Envelope_GetParentTake 1246 // If take envelope, gets the take from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1. 1247 1248 MediaItem_Take* (*Envelope_GetParentTake)(TrackEnvelope* env, int* indexOut, int* index2Out); 1249 #endif 1250 1251 #if defined(REAPERAPI_WANT_Envelope_GetParentTrack) || !defined(REAPERAPI_MINIMAL) 1252 REAPERAPI_DEF //============================================== 1253 // Envelope_GetParentTrack 1254 // If track envelope, gets the track from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1. 1255 1256 MediaTrack* (*Envelope_GetParentTrack)(TrackEnvelope* env, int* indexOut, int* index2Out); 1257 #endif 1258 1259 #if defined(REAPERAPI_WANT_Envelope_SortPoints) || !defined(REAPERAPI_MINIMAL) 1260 REAPERAPI_DEF //============================================== 1261 // Envelope_SortPoints 1262 // Sort envelope points by time. See SetEnvelopePoint, InsertEnvelopePoint. 1263 1264 bool (*Envelope_SortPoints)(TrackEnvelope* envelope); 1265 #endif 1266 1267 #if defined(REAPERAPI_WANT_Envelope_SortPointsEx) || !defined(REAPERAPI_MINIMAL) 1268 REAPERAPI_DEF //============================================== 1269 // Envelope_SortPointsEx 1270 // Sort envelope points by time. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See SetEnvelopePoint, InsertEnvelopePoint. 1271 1272 bool (*Envelope_SortPointsEx)(TrackEnvelope* envelope, int autoitem_idx); 1273 #endif 1274 1275 #if defined(REAPERAPI_WANT_ExecProcess) || !defined(REAPERAPI_MINIMAL) 1276 REAPERAPI_DEF //============================================== 1277 // ExecProcess 1278 // Executes command line, returns NULL on total failure, otherwise the return value, a newline, and then the output of the command. If timeoutmsec is 0, command will be allowed to run indefinitely (recommended for large amounts of returned output). timeoutmsec is -1 for no wait/terminate, -2 for no wait and minimize 1279 1280 const char* (*ExecProcess)(const char* cmdline, int timeoutmsec); 1281 #endif 1282 1283 #if defined(REAPERAPI_WANT_file_exists) || !defined(REAPERAPI_MINIMAL) 1284 REAPERAPI_DEF //============================================== 1285 // file_exists 1286 // returns true if path points to a valid, readable file 1287 1288 bool (*file_exists)(const char* path); 1289 #endif 1290 1291 #if defined(REAPERAPI_WANT_FindTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 1292 REAPERAPI_DEF //============================================== 1293 // FindTempoTimeSigMarker 1294 // Find the tempo/time signature marker that falls at or before this time position (the marker that is in effect as of this time position). 1295 1296 int (*FindTempoTimeSigMarker)(ReaProject* project, double time); 1297 #endif 1298 1299 #if defined(REAPERAPI_WANT_format_timestr) || !defined(REAPERAPI_MINIMAL) 1300 REAPERAPI_DEF //============================================== 1301 // format_timestr 1302 // Format tpos (which is time in seconds) as hh:mm:ss.sss. See format_timestr_pos, format_timestr_len. 1303 1304 void (*format_timestr)(double tpos, char* buf, int buf_sz); 1305 #endif 1306 1307 #if defined(REAPERAPI_WANT_format_timestr_len) || !defined(REAPERAPI_MINIMAL) 1308 REAPERAPI_DEF //============================================== 1309 // format_timestr_len 1310 // time formatting mode overrides: -1=proj default. 1311 // 0=time 1312 // 1=measures.beats + time 1313 // 2=measures.beats 1314 // 3=seconds 1315 // 4=samples 1316 // 5=h:m:s:f 1317 // offset is start of where the length will be calculated from 1318 1319 void (*format_timestr_len)(double tpos, char* buf, int buf_sz, double offset, int modeoverride); 1320 #endif 1321 1322 #if defined(REAPERAPI_WANT_format_timestr_pos) || !defined(REAPERAPI_MINIMAL) 1323 REAPERAPI_DEF //============================================== 1324 // format_timestr_pos 1325 // time formatting mode overrides: -1=proj default. 1326 // 0=time 1327 // 1=measures.beats + time 1328 // 2=measures.beats 1329 // 3=seconds 1330 // 4=samples 1331 // 5=h:m:s:f 1332 // 1333 1334 void (*format_timestr_pos)(double tpos, char* buf, int buf_sz, int modeoverride); 1335 #endif 1336 1337 #if defined(REAPERAPI_WANT_FreeHeapPtr) || !defined(REAPERAPI_MINIMAL) 1338 REAPERAPI_DEF //============================================== 1339 // FreeHeapPtr 1340 // free heap memory returned from a Reaper API function 1341 1342 void (*FreeHeapPtr)(void* ptr); 1343 #endif 1344 1345 #if defined(REAPERAPI_WANT_genGuid) || !defined(REAPERAPI_MINIMAL) 1346 REAPERAPI_DEF //============================================== 1347 // genGuid 1348 1349 void (*genGuid)(GUID* g); 1350 #endif 1351 1352 #if defined(REAPERAPI_WANT_get_config_var) || !defined(REAPERAPI_MINIMAL) 1353 REAPERAPI_DEF //============================================== 1354 // get_config_var 1355 1356 void* (*get_config_var)(const char* name, int* szOut); 1357 #endif 1358 1359 #if defined(REAPERAPI_WANT_get_config_var_string) || !defined(REAPERAPI_MINIMAL) 1360 REAPERAPI_DEF //============================================== 1361 // get_config_var_string 1362 // gets ini configuration variable value as string 1363 1364 bool (*get_config_var_string)(const char* name, char* bufOut, int bufOut_sz); 1365 #endif 1366 1367 #if defined(REAPERAPI_WANT_get_ini_file) || !defined(REAPERAPI_MINIMAL) 1368 REAPERAPI_DEF //============================================== 1369 // get_ini_file 1370 // Get reaper.ini full filename. 1371 1372 const char* (*get_ini_file)(); 1373 #endif 1374 1375 #if defined(REAPERAPI_WANT_get_midi_config_var) || !defined(REAPERAPI_MINIMAL) 1376 REAPERAPI_DEF //============================================== 1377 // get_midi_config_var 1378 // Deprecated. 1379 1380 void* (*get_midi_config_var)(const char* name, int* szOut); 1381 #endif 1382 1383 #if defined(REAPERAPI_WANT_GetActionShortcutDesc) || !defined(REAPERAPI_MINIMAL) 1384 REAPERAPI_DEF //============================================== 1385 // GetActionShortcutDesc 1386 // Get the text description of a specific shortcut for the given command ID. 1387 // See CountActionShortcuts,DeleteActionShortcut,DoActionShortcutDialog. 1388 1389 bool (*GetActionShortcutDesc)(KbdSectionInfo* section, int cmdID, int shortcutidx, char* desc, int desclen); 1390 #endif 1391 1392 #if defined(REAPERAPI_WANT_GetActiveTake) || !defined(REAPERAPI_MINIMAL) 1393 REAPERAPI_DEF //============================================== 1394 // GetActiveTake 1395 // get the active take in this item 1396 1397 MediaItem_Take* (*GetActiveTake)(MediaItem* item); 1398 #endif 1399 1400 #if defined(REAPERAPI_WANT_GetAllProjectPlayStates) || !defined(REAPERAPI_MINIMAL) 1401 REAPERAPI_DEF //============================================== 1402 // GetAllProjectPlayStates 1403 // returns the bitwise OR of all project play states (1=playing, 2=pause, 4=recording) 1404 1405 int (*GetAllProjectPlayStates)(ReaProject* ignoreProject); 1406 #endif 1407 1408 #if defined(REAPERAPI_WANT_GetAppVersion) || !defined(REAPERAPI_MINIMAL) 1409 REAPERAPI_DEF //============================================== 1410 // GetAppVersion 1411 // Returns app version which may include an OS/arch signifier, such as: "6.17" (windows 32-bit), "6.17/x64" (windows 64-bit), "6.17/OSX64" (macOS 64-bit Intel), "6.17/OSX" (macOS 32-bit), "6.17/macOS-arm64", "6.17/linux-x86_64", "6.17/linux-i686", "6.17/linux-aarch64", "6.17/linux-armv7l", etc 1412 1413 const char* (*GetAppVersion)(); 1414 #endif 1415 1416 #if defined(REAPERAPI_WANT_GetArmedCommand) || !defined(REAPERAPI_MINIMAL) 1417 REAPERAPI_DEF //============================================== 1418 // GetArmedCommand 1419 // gets the currently armed command and section name (returns 0 if nothing armed). section name is empty-string for main section. 1420 1421 int (*GetArmedCommand)(char* secOut, int secOut_sz); 1422 #endif 1423 1424 #if defined(REAPERAPI_WANT_GetAudioAccessorEndTime) || !defined(REAPERAPI_MINIMAL) 1425 REAPERAPI_DEF //============================================== 1426 // GetAudioAccessorEndTime 1427 // Get the end time of the audio that can be returned from this accessor. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorSamples. 1428 1429 double (*GetAudioAccessorEndTime)(AudioAccessor* accessor); 1430 #endif 1431 1432 #if defined(REAPERAPI_WANT_GetAudioAccessorHash) || !defined(REAPERAPI_MINIMAL) 1433 REAPERAPI_DEF //============================================== 1434 // GetAudioAccessorHash 1435 // Deprecated. See AudioAccessorStateChanged instead. 1436 1437 void (*GetAudioAccessorHash)(AudioAccessor* accessor, char* hashNeed128); 1438 #endif 1439 1440 #if defined(REAPERAPI_WANT_GetAudioAccessorSamples) || !defined(REAPERAPI_MINIMAL) 1441 REAPERAPI_DEF //============================================== 1442 // GetAudioAccessorSamples 1443 // Get a block of samples from the audio accessor. Samples are extracted immediately pre-FX, and returned interleaved (first sample of first channel, first sample of second channel...). Returns 0 if no audio, 1 if audio, -1 on error. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorStartTime, GetAudioAccessorEndTime.// 1444 // 1445 // This function has special handling in Python, and only returns two objects, the API function return value, and the sample buffer. Example usage: 1446 // 1447 // <code>tr = RPR_GetTrack(0, 0) 1448 // aa = RPR_CreateTrackAudioAccessor(tr) 1449 // buf = list([0]*2*1024) # 2 channels, 1024 samples each, initialized to zero 1450 // pos = 0.0 1451 // (ret, buf) = GetAudioAccessorSamples(aa, 44100, 2, pos, 1024, buf) 1452 // # buf now holds the first 2*1024 audio samples from the track. 1453 // # typically GetAudioAccessorSamples() would be called within a loop, increasing pos each time. 1454 // </code> 1455 1456 int (*GetAudioAccessorSamples)(AudioAccessor* accessor, int samplerate, int numchannels, double starttime_sec, int numsamplesperchannel, double* samplebuffer); 1457 #endif 1458 1459 #if defined(REAPERAPI_WANT_GetAudioAccessorStartTime) || !defined(REAPERAPI_MINIMAL) 1460 REAPERAPI_DEF //============================================== 1461 // GetAudioAccessorStartTime 1462 // Get the start time of the audio that can be returned from this accessor. See CreateTakeAudioAccessor, CreateTrackAudioAccessor, DestroyAudioAccessor, AudioAccessorStateChanged, GetAudioAccessorEndTime, GetAudioAccessorSamples. 1463 1464 double (*GetAudioAccessorStartTime)(AudioAccessor* accessor); 1465 #endif 1466 1467 #if defined(REAPERAPI_WANT_GetAudioDeviceInfo) || !defined(REAPERAPI_MINIMAL) 1468 REAPERAPI_DEF //============================================== 1469 // GetAudioDeviceInfo 1470 // get information about the currently open audio device. attribute can be MODE, IDENT_IN, IDENT_OUT, BSIZE, SRATE, BPS. returns false if unknown attribute or device not open. 1471 1472 bool (*GetAudioDeviceInfo)(const char* attribute, char* descOut, int descOut_sz); 1473 #endif 1474 1475 #if defined(REAPERAPI_WANT_GetColorTheme) || !defined(REAPERAPI_MINIMAL) 1476 REAPERAPI_DEF //============================================== 1477 // GetColorTheme 1478 // Deprecated, see GetColorThemeStruct. 1479 1480 INT_PTR (*GetColorTheme)(int idx, int defval); 1481 #endif 1482 1483 #if defined(REAPERAPI_WANT_GetColorThemeStruct) || !defined(REAPERAPI_MINIMAL) 1484 REAPERAPI_DEF //============================================== 1485 // GetColorThemeStruct 1486 // returns the whole color theme (icontheme.h) and the size 1487 1488 void* (*GetColorThemeStruct)(int* szOut); 1489 #endif 1490 1491 #if defined(REAPERAPI_WANT_GetConfigWantsDock) || !defined(REAPERAPI_MINIMAL) 1492 REAPERAPI_DEF //============================================== 1493 // GetConfigWantsDock 1494 // gets the dock ID desired by ident_str, if any 1495 1496 int (*GetConfigWantsDock)(const char* ident_str); 1497 #endif 1498 1499 #if defined(REAPERAPI_WANT_GetContextMenu) || !defined(REAPERAPI_MINIMAL) 1500 REAPERAPI_DEF //============================================== 1501 // GetContextMenu 1502 // gets context menus. submenu 0:trackctl, 1:mediaitems, 2:ruler, 3:empty track area 1503 1504 HMENU (*GetContextMenu)(int idx); 1505 #endif 1506 1507 #if defined(REAPERAPI_WANT_GetCurrentProjectInLoadSave) || !defined(REAPERAPI_MINIMAL) 1508 REAPERAPI_DEF //============================================== 1509 // GetCurrentProjectInLoadSave 1510 // returns current project if in load/save (usually only used from project_config_extension_t) 1511 1512 ReaProject* (*GetCurrentProjectInLoadSave)(); 1513 #endif 1514 1515 #if defined(REAPERAPI_WANT_GetCursorContext) || !defined(REAPERAPI_MINIMAL) 1516 REAPERAPI_DEF //============================================== 1517 // GetCursorContext 1518 // return the current cursor context: 0 if track panels, 1 if items, 2 if envelopes, otherwise unknown 1519 1520 int (*GetCursorContext)(); 1521 #endif 1522 1523 #if defined(REAPERAPI_WANT_GetCursorContext2) || !defined(REAPERAPI_MINIMAL) 1524 REAPERAPI_DEF //============================================== 1525 // GetCursorContext2 1526 // 0 if track panels, 1 if items, 2 if envelopes, otherwise unknown (unlikely when want_last_valid is true) 1527 1528 int (*GetCursorContext2)(bool want_last_valid); 1529 #endif 1530 1531 #if defined(REAPERAPI_WANT_GetCursorPosition) || !defined(REAPERAPI_MINIMAL) 1532 REAPERAPI_DEF //============================================== 1533 // GetCursorPosition 1534 // edit cursor position 1535 1536 double (*GetCursorPosition)(); 1537 #endif 1538 1539 #if defined(REAPERAPI_WANT_GetCursorPositionEx) || !defined(REAPERAPI_MINIMAL) 1540 REAPERAPI_DEF //============================================== 1541 // GetCursorPositionEx 1542 // edit cursor position 1543 1544 double (*GetCursorPositionEx)(ReaProject* proj); 1545 #endif 1546 1547 #if defined(REAPERAPI_WANT_GetDisplayedMediaItemColor) || !defined(REAPERAPI_MINIMAL) 1548 REAPERAPI_DEF //============================================== 1549 // GetDisplayedMediaItemColor 1550 // see GetDisplayedMediaItemColor2. 1551 1552 int (*GetDisplayedMediaItemColor)(MediaItem* item); 1553 #endif 1554 1555 #if defined(REAPERAPI_WANT_GetDisplayedMediaItemColor2) || !defined(REAPERAPI_MINIMAL) 1556 REAPERAPI_DEF //============================================== 1557 // GetDisplayedMediaItemColor2 1558 // Returns the custom take, item, or track color that is used (according to the user preference) to color the media item. The returned color is OS dependent|0x01000000 (i.e. ColorToNative(r,g,b)|0x01000000), so a return of zero means "no color", not black. 1559 1560 int (*GetDisplayedMediaItemColor2)(MediaItem* item, MediaItem_Take* take); 1561 #endif 1562 1563 #if defined(REAPERAPI_WANT_GetEnvelopeInfo_Value) || !defined(REAPERAPI_MINIMAL) 1564 REAPERAPI_DEF //============================================== 1565 // GetEnvelopeInfo_Value 1566 // Gets an envelope numerical-value attribute: 1567 // I_TCPY : int : Y offset of envelope relative to parent track (may be separate lane or overlap with track contents) 1568 // I_TCPH : int : visible height of envelope 1569 // I_TCPY_USED : int : Y offset of envelope relative to parent track, exclusive of padding 1570 // I_TCPH_USED : int : visible height of envelope, exclusive of padding 1571 // P_TRACK : MediaTrack * : parent track pointer (if any) 1572 // P_DESTTRACK : MediaTrack * : destination track pointer, if on a send 1573 // P_ITEM : MediaItem * : parent item pointer (if any) 1574 // P_TAKE : MediaItem_Take * : parent take pointer (if any) 1575 // I_SEND_IDX : int : 1-based index of send in P_TRACK, or 0 if not a send 1576 // I_HWOUT_IDX : int : 1-based index of hardware output in P_TRACK or 0 if not a hardware output 1577 // I_RECV_IDX : int : 1-based index of receive in P_DESTTRACK or 0 if not a send/receive 1578 // 1579 1580 double (*GetEnvelopeInfo_Value)(TrackEnvelope* env, const char* parmname); 1581 #endif 1582 1583 #if defined(REAPERAPI_WANT_GetEnvelopeName) || !defined(REAPERAPI_MINIMAL) 1584 REAPERAPI_DEF //============================================== 1585 // GetEnvelopeName 1586 1587 bool (*GetEnvelopeName)(TrackEnvelope* env, char* bufOut, int bufOut_sz); 1588 #endif 1589 1590 #if defined(REAPERAPI_WANT_GetEnvelopePoint) || !defined(REAPERAPI_MINIMAL) 1591 REAPERAPI_DEF //============================================== 1592 // GetEnvelopePoint 1593 // Get the attributes of an envelope point. See GetEnvelopePointEx. 1594 1595 bool (*GetEnvelopePoint)(TrackEnvelope* envelope, int ptidx, double* timeOut, double* valueOut, int* shapeOut, double* tensionOut, bool* selectedOut); 1596 #endif 1597 1598 #if defined(REAPERAPI_WANT_GetEnvelopePointByTime) || !defined(REAPERAPI_MINIMAL) 1599 REAPERAPI_DEF //============================================== 1600 // GetEnvelopePointByTime 1601 // Returns the envelope point at or immediately prior to the given time position. See GetEnvelopePointByTimeEx. 1602 1603 int (*GetEnvelopePointByTime)(TrackEnvelope* envelope, double time); 1604 #endif 1605 1606 #if defined(REAPERAPI_WANT_GetEnvelopePointByTimeEx) || !defined(REAPERAPI_MINIMAL) 1607 REAPERAPI_DEF //============================================== 1608 // GetEnvelopePointByTimeEx 1609 // Returns the envelope point at or immediately prior to the given time position. 1610 // autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. 1611 // For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, 1612 // even if the automation item is trimmed so that not all points are visible. 1613 // Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. 1614 // See GetEnvelopePointEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx. 1615 1616 int (*GetEnvelopePointByTimeEx)(TrackEnvelope* envelope, int autoitem_idx, double time); 1617 #endif 1618 1619 #if defined(REAPERAPI_WANT_GetEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 1620 REAPERAPI_DEF //============================================== 1621 // GetEnvelopePointEx 1622 // Get the attributes of an envelope point. 1623 // autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. 1624 // For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, 1625 // even if the automation item is trimmed so that not all points are visible. 1626 // Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. 1627 // See CountEnvelopePointsEx, SetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx. 1628 1629 bool (*GetEnvelopePointEx)(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeOut, double* valueOut, int* shapeOut, double* tensionOut, bool* selectedOut); 1630 #endif 1631 1632 #if defined(REAPERAPI_WANT_GetEnvelopeScalingMode) || !defined(REAPERAPI_MINIMAL) 1633 REAPERAPI_DEF //============================================== 1634 // GetEnvelopeScalingMode 1635 // Returns the envelope scaling mode: 0=no scaling, 1=fader scaling. All API functions deal with raw envelope point values, to convert raw from/to scaled values see ScaleFromEnvelopeMode, ScaleToEnvelopeMode. 1636 1637 int (*GetEnvelopeScalingMode)(TrackEnvelope* env); 1638 #endif 1639 1640 #if defined(REAPERAPI_WANT_GetEnvelopeStateChunk) || !defined(REAPERAPI_MINIMAL) 1641 REAPERAPI_DEF //============================================== 1642 // GetEnvelopeStateChunk 1643 // Gets the RPPXML state of an envelope, returns true if successful. Undo flag is a performance/caching hint. 1644 1645 bool (*GetEnvelopeStateChunk)(TrackEnvelope* env, char* strNeedBig, int strNeedBig_sz, bool isundoOptional); 1646 #endif 1647 1648 #if defined(REAPERAPI_WANT_GetExePath) || !defined(REAPERAPI_MINIMAL) 1649 REAPERAPI_DEF //============================================== 1650 // GetExePath 1651 // returns path of REAPER.exe (not including EXE), i.e. C:\Program Files\REAPER 1652 1653 const char* (*GetExePath)(); 1654 #endif 1655 1656 #if defined(REAPERAPI_WANT_GetExtState) || !defined(REAPERAPI_MINIMAL) 1657 REAPERAPI_DEF //============================================== 1658 // GetExtState 1659 // Get the extended state value for a specific section and key. See SetExtState, DeleteExtState, HasExtState. 1660 1661 const char* (*GetExtState)(const char* section, const char* key); 1662 #endif 1663 1664 #if defined(REAPERAPI_WANT_GetFocusedFX) || !defined(REAPERAPI_MINIMAL) 1665 REAPERAPI_DEF //============================================== 1666 // GetFocusedFX 1667 // This function is deprecated (returns GetFocusedFX2()&3), see GetFocusedFX2. 1668 1669 int (*GetFocusedFX)(int* tracknumberOut, int* itemnumberOut, int* fxnumberOut); 1670 #endif 1671 1672 #if defined(REAPERAPI_WANT_GetFocusedFX2) || !defined(REAPERAPI_MINIMAL) 1673 REAPERAPI_DEF //============================================== 1674 // GetFocusedFX2 1675 // Return value has 1 set if track FX, 2 if take/item FX, 4 set if FX is no longer focused but still open. tracknumber==0 means the master track, 1 means track 1, etc. itemnumber is zero-based (or -1 if not an item). For interpretation of fxnumber, see GetLastTouchedFX. 1676 1677 int (*GetFocusedFX2)(int* tracknumberOut, int* itemnumberOut, int* fxnumberOut); 1678 #endif 1679 1680 #if defined(REAPERAPI_WANT_GetFreeDiskSpaceForRecordPath) || !defined(REAPERAPI_MINIMAL) 1681 REAPERAPI_DEF //============================================== 1682 // GetFreeDiskSpaceForRecordPath 1683 // returns free disk space in megabytes, pathIdx 0 for normal, 1 for alternate. 1684 1685 int (*GetFreeDiskSpaceForRecordPath)(ReaProject* proj, int pathidx); 1686 #endif 1687 1688 #if defined(REAPERAPI_WANT_GetFXEnvelope) || !defined(REAPERAPI_MINIMAL) 1689 REAPERAPI_DEF //============================================== 1690 // GetFXEnvelope 1691 // Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created. 1692 1693 TrackEnvelope* (*GetFXEnvelope)(MediaTrack* track, int fxindex, int parameterindex, bool create); 1694 #endif 1695 1696 #if defined(REAPERAPI_WANT_GetGlobalAutomationOverride) || !defined(REAPERAPI_MINIMAL) 1697 REAPERAPI_DEF //============================================== 1698 // GetGlobalAutomationOverride 1699 // return -1=no override, 0=trim/read, 1=read, 2=touch, 3=write, 4=latch, 5=bypass 1700 1701 int (*GetGlobalAutomationOverride)(); 1702 #endif 1703 1704 #if defined(REAPERAPI_WANT_GetHZoomLevel) || !defined(REAPERAPI_MINIMAL) 1705 REAPERAPI_DEF //============================================== 1706 // GetHZoomLevel 1707 // returns pixels/second 1708 1709 double (*GetHZoomLevel)(); 1710 #endif 1711 1712 #if defined(REAPERAPI_WANT_GetIconThemePointer) || !defined(REAPERAPI_MINIMAL) 1713 REAPERAPI_DEF //============================================== 1714 // GetIconThemePointer 1715 // returns a named icontheme entry 1716 1717 void* (*GetIconThemePointer)(const char* name); 1718 #endif 1719 1720 #if defined(REAPERAPI_WANT_GetIconThemePointerForDPI) || !defined(REAPERAPI_MINIMAL) 1721 REAPERAPI_DEF //============================================== 1722 // GetIconThemePointerForDPI 1723 // returns a named icontheme entry for a given DPI-scaling (256=1:1). Note: the return value should not be stored, it should be queried at each paint! Querying name=NULL returns the start of the structure 1724 1725 void* (*GetIconThemePointerForDPI)(const char* name, int dpisc); 1726 #endif 1727 1728 #if defined(REAPERAPI_WANT_GetIconThemeStruct) || !defined(REAPERAPI_MINIMAL) 1729 REAPERAPI_DEF //============================================== 1730 // GetIconThemeStruct 1731 // returns a pointer to the icon theme (icontheme.h) and the size of that struct 1732 1733 void* (*GetIconThemeStruct)(int* szOut); 1734 #endif 1735 1736 #if defined(REAPERAPI_WANT_GetInputChannelName) || !defined(REAPERAPI_MINIMAL) 1737 REAPERAPI_DEF //============================================== 1738 // GetInputChannelName 1739 1740 const char* (*GetInputChannelName)(int channelIndex); 1741 #endif 1742 1743 #if defined(REAPERAPI_WANT_GetInputOutputLatency) || !defined(REAPERAPI_MINIMAL) 1744 REAPERAPI_DEF //============================================== 1745 // GetInputOutputLatency 1746 // Gets the audio device input/output latency in samples 1747 1748 void (*GetInputOutputLatency)(int* inputlatencyOut, int* outputLatencyOut); 1749 #endif 1750 1751 #if defined(REAPERAPI_WANT_GetItemEditingTime2) || !defined(REAPERAPI_MINIMAL) 1752 REAPERAPI_DEF //============================================== 1753 // GetItemEditingTime2 1754 // returns time of relevant edit, set which_item to the pcm_source (if applicable), flags (if specified) will be set to 1 for edge resizing, 2 for fade change, 4 for item move, 8 for item slip edit (edit cursor time or start of item) 1755 1756 double (*GetItemEditingTime2)(PCM_source** which_itemOut, int* flagsOut); 1757 #endif 1758 1759 #if defined(REAPERAPI_WANT_GetItemFromPoint) || !defined(REAPERAPI_MINIMAL) 1760 REAPERAPI_DEF //============================================== 1761 // GetItemFromPoint 1762 // Returns the first item at the screen coordinates specified. If allow_locked is false, locked items are ignored. If takeOutOptional specified, returns the take hit. See GetThingFromPoint. 1763 1764 MediaItem* (*GetItemFromPoint)(int screen_x, int screen_y, bool allow_locked, MediaItem_Take** takeOutOptional); 1765 #endif 1766 1767 #if defined(REAPERAPI_WANT_GetItemProjectContext) || !defined(REAPERAPI_MINIMAL) 1768 REAPERAPI_DEF //============================================== 1769 // GetItemProjectContext 1770 1771 ReaProject* (*GetItemProjectContext)(MediaItem* item); 1772 #endif 1773 1774 #if defined(REAPERAPI_WANT_GetItemStateChunk) || !defined(REAPERAPI_MINIMAL) 1775 REAPERAPI_DEF //============================================== 1776 // GetItemStateChunk 1777 // Gets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint. 1778 1779 bool (*GetItemStateChunk)(MediaItem* item, char* strNeedBig, int strNeedBig_sz, bool isundoOptional); 1780 #endif 1781 1782 #if defined(REAPERAPI_WANT_GetLastColorThemeFile) || !defined(REAPERAPI_MINIMAL) 1783 REAPERAPI_DEF //============================================== 1784 // GetLastColorThemeFile 1785 1786 const char* (*GetLastColorThemeFile)(); 1787 #endif 1788 1789 #if defined(REAPERAPI_WANT_GetLastMarkerAndCurRegion) || !defined(REAPERAPI_MINIMAL) 1790 REAPERAPI_DEF //============================================== 1791 // GetLastMarkerAndCurRegion 1792 // Get the last project marker before time, and/or the project region that includes time. markeridx and regionidx are returned not necessarily as the displayed marker/region index, but as the index that can be passed to EnumProjectMarkers. Either or both of markeridx and regionidx may be NULL. See EnumProjectMarkers. 1793 1794 void (*GetLastMarkerAndCurRegion)(ReaProject* proj, double time, int* markeridxOut, int* regionidxOut); 1795 #endif 1796 1797 #if defined(REAPERAPI_WANT_GetLastTouchedFX) || !defined(REAPERAPI_MINIMAL) 1798 REAPERAPI_DEF //============================================== 1799 // GetLastTouchedFX 1800 // Returns true if the last touched FX parameter is valid, false otherwise. The low word of tracknumber is the 1-based track index -- 0 means the master track, 1 means track 1, etc. If the high word of tracknumber is nonzero, it refers to the 1-based item index (1 is the first item on the track, etc). For track FX, the low 24 bits of fxnumber refer to the FX index in the chain, and if the next 8 bits are 01, then the FX is record FX. For item FX, the low word defines the FX index in the chain, and the high word defines the take number. 1801 1802 bool (*GetLastTouchedFX)(int* tracknumberOut, int* fxnumberOut, int* paramnumberOut); 1803 #endif 1804 1805 #if defined(REAPERAPI_WANT_GetLastTouchedTrack) || !defined(REAPERAPI_MINIMAL) 1806 REAPERAPI_DEF //============================================== 1807 // GetLastTouchedTrack 1808 1809 MediaTrack* (*GetLastTouchedTrack)(); 1810 #endif 1811 1812 #if defined(REAPERAPI_WANT_GetMainHwnd) || !defined(REAPERAPI_MINIMAL) 1813 REAPERAPI_DEF //============================================== 1814 // GetMainHwnd 1815 1816 HWND (*GetMainHwnd)(); 1817 #endif 1818 1819 #if defined(REAPERAPI_WANT_GetMasterMuteSoloFlags) || !defined(REAPERAPI_MINIMAL) 1820 REAPERAPI_DEF //============================================== 1821 // GetMasterMuteSoloFlags 1822 // &1=master mute,&2=master solo. This is deprecated as you can just query the master track as well. 1823 1824 int (*GetMasterMuteSoloFlags)(); 1825 #endif 1826 1827 #if defined(REAPERAPI_WANT_GetMasterTrack) || !defined(REAPERAPI_MINIMAL) 1828 REAPERAPI_DEF //============================================== 1829 // GetMasterTrack 1830 1831 MediaTrack* (*GetMasterTrack)(ReaProject* proj); 1832 #endif 1833 1834 #if defined(REAPERAPI_WANT_GetMasterTrackVisibility) || !defined(REAPERAPI_MINIMAL) 1835 REAPERAPI_DEF //============================================== 1836 // GetMasterTrackVisibility 1837 // returns &1 if the master track is visible in the TCP, &2 if NOT visible in the mixer. See SetMasterTrackVisibility. 1838 1839 int (*GetMasterTrackVisibility)(); 1840 #endif 1841 1842 #if defined(REAPERAPI_WANT_GetMaxMidiInputs) || !defined(REAPERAPI_MINIMAL) 1843 REAPERAPI_DEF //============================================== 1844 // GetMaxMidiInputs 1845 // returns max dev for midi inputs/outputs 1846 1847 int (*GetMaxMidiInputs)(); 1848 #endif 1849 1850 #if defined(REAPERAPI_WANT_GetMaxMidiOutputs) || !defined(REAPERAPI_MINIMAL) 1851 REAPERAPI_DEF //============================================== 1852 // GetMaxMidiOutputs 1853 1854 int (*GetMaxMidiOutputs)(); 1855 #endif 1856 1857 #if defined(REAPERAPI_WANT_GetMediaFileMetadata) || !defined(REAPERAPI_MINIMAL) 1858 REAPERAPI_DEF //============================================== 1859 // GetMediaFileMetadata 1860 // Get text-based metadata from a media file for a given identifier. Call with identifier="" to list all identifiers contained in the file, separated by newlines. May return "[Binary data]" for metadata that REAPER doesn't handle. 1861 1862 int (*GetMediaFileMetadata)(PCM_source* mediaSource, const char* identifier, char* bufOutNeedBig, int bufOutNeedBig_sz); 1863 #endif 1864 1865 #if defined(REAPERAPI_WANT_GetMediaItem) || !defined(REAPERAPI_MINIMAL) 1866 REAPERAPI_DEF //============================================== 1867 // GetMediaItem 1868 // get an item from a project by item count (zero-based) (proj=0 for active project) 1869 1870 MediaItem* (*GetMediaItem)(ReaProject* proj, int itemidx); 1871 #endif 1872 1873 #if defined(REAPERAPI_WANT_GetMediaItem_Track) || !defined(REAPERAPI_MINIMAL) 1874 REAPERAPI_DEF //============================================== 1875 // GetMediaItem_Track 1876 // Get parent track of media item 1877 1878 MediaTrack* (*GetMediaItem_Track)(MediaItem* item); 1879 #endif 1880 1881 #if defined(REAPERAPI_WANT_GetMediaItemInfo_Value) || !defined(REAPERAPI_MINIMAL) 1882 REAPERAPI_DEF //============================================== 1883 // GetMediaItemInfo_Value 1884 // Get media item numerical-value attributes. 1885 // B_MUTE : bool * : muted (item solo overrides). setting this value will clear C_MUTE_SOLO. 1886 // B_MUTE_ACTUAL : bool * : muted (ignores solo). setting this value will not affect C_MUTE_SOLO. 1887 // C_MUTE_SOLO : char * : solo override (-1=soloed, 0=no override, 1=unsoloed). note that this API does not automatically unsolo other items when soloing (nor clear the unsolos when clearing the last soloed item), it must be done by the caller via action or via this API. 1888 // B_LOOPSRC : bool * : loop source 1889 // B_ALLTAKESPLAY : bool * : all takes play 1890 // B_UISEL : bool * : selected in arrange view 1891 // C_BEATATTACHMODE : char * : item timebase, -1=track or project default, 1=beats (position, length, rate), 2=beats (position only). for auto-stretch timebase: C_BEATATTACHMODE=1, C_AUTOSTRETCH=1 1892 // C_AUTOSTRETCH: : char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1 1893 // C_LOCK : char * : locked, &1=locked 1894 // D_VOL : double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc 1895 // D_POSITION : double * : item position in seconds 1896 // D_LENGTH : double * : item length in seconds 1897 // D_SNAPOFFSET : double * : item snap offset in seconds 1898 // D_FADEINLEN : double * : item manual fadein length in seconds 1899 // D_FADEOUTLEN : double * : item manual fadeout length in seconds 1900 // D_FADEINDIR : double * : item fadein curvature, -1..1 1901 // D_FADEOUTDIR : double * : item fadeout curvature, -1..1 1902 // D_FADEINLEN_AUTO : double * : item auto-fadein length in seconds, -1=no auto-fadein 1903 // D_FADEOUTLEN_AUTO : double * : item auto-fadeout length in seconds, -1=no auto-fadeout 1904 // C_FADEINSHAPE : int * : fadein shape, 0..6, 0=linear 1905 // C_FADEOUTSHAPE : int * : fadeout shape, 0..6, 0=linear 1906 // I_GROUPID : int * : group ID, 0=no group 1907 // I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only) 1908 // I_LASTH : int * : height in pixels (read-only) 1909 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 1910 // I_CURTAKE : int * : active take number 1911 // IP_ITEMNUMBER : int : item number on this track (read-only, returns the item number directly) 1912 // F_FREEMODE_Y : float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1) 1913 // F_FREEMODE_H : float * : free item positioning height, 0=no height, 1=full height of track (will never be 0) 1914 // P_TRACK : MediaTrack * : (read-only) 1915 // 1916 1917 double (*GetMediaItemInfo_Value)(MediaItem* item, const char* parmname); 1918 #endif 1919 1920 #if defined(REAPERAPI_WANT_GetMediaItemNumTakes) || !defined(REAPERAPI_MINIMAL) 1921 REAPERAPI_DEF //============================================== 1922 // GetMediaItemNumTakes 1923 1924 int (*GetMediaItemNumTakes)(MediaItem* item); 1925 #endif 1926 1927 #if defined(REAPERAPI_WANT_GetMediaItemTake) || !defined(REAPERAPI_MINIMAL) 1928 REAPERAPI_DEF //============================================== 1929 // GetMediaItemTake 1930 1931 MediaItem_Take* (*GetMediaItemTake)(MediaItem* item, int tk); 1932 #endif 1933 1934 #if defined(REAPERAPI_WANT_GetMediaItemTake_Item) || !defined(REAPERAPI_MINIMAL) 1935 REAPERAPI_DEF //============================================== 1936 // GetMediaItemTake_Item 1937 // Get parent item of media item take 1938 1939 MediaItem* (*GetMediaItemTake_Item)(MediaItem_Take* take); 1940 #endif 1941 1942 #if defined(REAPERAPI_WANT_GetMediaItemTake_Peaks) || !defined(REAPERAPI_MINIMAL) 1943 REAPERAPI_DEF //============================================== 1944 // GetMediaItemTake_Peaks 1945 // Gets block of peak samples to buf. Note that the peak samples are interleaved, but in two or three blocks (maximums, then minimums, then extra). Return value has 20 bits of returned sample count, then 4 bits of output_mode (0xf00000), then a bit to signify whether extra_type was available (0x1000000). extra_type can be 115 ('s') for spectral information, which will return peak samples as integers with the low 15 bits frequency, next 14 bits tonality. 1946 1947 int (*GetMediaItemTake_Peaks)(MediaItem_Take* take, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf); 1948 #endif 1949 1950 #if defined(REAPERAPI_WANT_GetMediaItemTake_Source) || !defined(REAPERAPI_MINIMAL) 1951 REAPERAPI_DEF //============================================== 1952 // GetMediaItemTake_Source 1953 // Get media source of media item take 1954 1955 PCM_source* (*GetMediaItemTake_Source)(MediaItem_Take* take); 1956 #endif 1957 1958 #if defined(REAPERAPI_WANT_GetMediaItemTake_Track) || !defined(REAPERAPI_MINIMAL) 1959 REAPERAPI_DEF //============================================== 1960 // GetMediaItemTake_Track 1961 // Get parent track of media item take 1962 1963 MediaTrack* (*GetMediaItemTake_Track)(MediaItem_Take* take); 1964 #endif 1965 1966 #if defined(REAPERAPI_WANT_GetMediaItemTakeByGUID) || !defined(REAPERAPI_MINIMAL) 1967 REAPERAPI_DEF //============================================== 1968 // GetMediaItemTakeByGUID 1969 1970 MediaItem_Take* (*GetMediaItemTakeByGUID)(ReaProject* project, const GUID* guid); 1971 #endif 1972 1973 #if defined(REAPERAPI_WANT_GetMediaItemTakeInfo_Value) || !defined(REAPERAPI_MINIMAL) 1974 REAPERAPI_DEF //============================================== 1975 // GetMediaItemTakeInfo_Value 1976 // Get media item take numerical-value attributes. 1977 // D_STARTOFFS : double * : start offset in source media, in seconds 1978 // D_VOL : double * : take volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc, negative if take polarity is flipped 1979 // D_PAN : double * : take pan, -1..1 1980 // D_PANLAW : double * : take pan law, -1=default, 0.5=-6dB, 1.0=+0dB, etc 1981 // D_PLAYRATE : double * : take playback rate, 0.5=half speed, 1=normal, 2=double speed, etc 1982 // D_PITCH : double * : take pitch adjustment in semitones, -12=one octave down, 0=normal, +12=one octave up, etc 1983 // B_PPITCH : bool * : preserve pitch when changing playback rate 1984 // I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only) 1985 // I_LASTH : int * : height in pixels (read-only) 1986 // I_CHANMODE : int * : channel mode, 0=normal, 1=reverse stereo, 2=downmix, 3=left, 4=right 1987 // I_PITCHMODE : int * : pitch shifter mode, -1=projext default, otherwise high 2 bytes=shifter, low 2 bytes=parameter 1988 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 1989 // IP_TAKENUMBER : int : take number (read-only, returns the take number directly) 1990 // P_TRACK : pointer to MediaTrack (read-only) 1991 // P_ITEM : pointer to MediaItem (read-only) 1992 // P_SOURCE : PCM_source *. Note that if setting this, you should first retrieve the old source, set the new, THEN delete the old. 1993 // 1994 1995 double (*GetMediaItemTakeInfo_Value)(MediaItem_Take* take, const char* parmname); 1996 #endif 1997 1998 #if defined(REAPERAPI_WANT_GetMediaItemTrack) || !defined(REAPERAPI_MINIMAL) 1999 REAPERAPI_DEF //============================================== 2000 // GetMediaItemTrack 2001 2002 MediaTrack* (*GetMediaItemTrack)(MediaItem* item); 2003 #endif 2004 2005 #if defined(REAPERAPI_WANT_GetMediaSourceFileName) || !defined(REAPERAPI_MINIMAL) 2006 REAPERAPI_DEF //============================================== 2007 // GetMediaSourceFileName 2008 // Copies the media source filename to filenamebuf. Note that in-project MIDI media sources have no associated filename. See GetMediaSourceParent. 2009 2010 void (*GetMediaSourceFileName)(PCM_source* source, char* filenamebufOut, int filenamebufOut_sz); 2011 #endif 2012 2013 #if defined(REAPERAPI_WANT_GetMediaSourceLength) || !defined(REAPERAPI_MINIMAL) 2014 REAPERAPI_DEF //============================================== 2015 // GetMediaSourceLength 2016 // Returns the length of the source media. If the media source is beat-based, the length will be in quarter notes, otherwise it will be in seconds. 2017 2018 double (*GetMediaSourceLength)(PCM_source* source, bool* lengthIsQNOut); 2019 #endif 2020 2021 #if defined(REAPERAPI_WANT_GetMediaSourceNumChannels) || !defined(REAPERAPI_MINIMAL) 2022 REAPERAPI_DEF //============================================== 2023 // GetMediaSourceNumChannels 2024 // Returns the number of channels in the source media. 2025 2026 int (*GetMediaSourceNumChannels)(PCM_source* source); 2027 #endif 2028 2029 #if defined(REAPERAPI_WANT_GetMediaSourceParent) || !defined(REAPERAPI_MINIMAL) 2030 REAPERAPI_DEF //============================================== 2031 // GetMediaSourceParent 2032 // Returns the parent source, or NULL if src is the root source. This can be used to retrieve the parent properties of sections or reversed sources for example. 2033 2034 PCM_source* (*GetMediaSourceParent)(PCM_source* src); 2035 #endif 2036 2037 #if defined(REAPERAPI_WANT_GetMediaSourceSampleRate) || !defined(REAPERAPI_MINIMAL) 2038 REAPERAPI_DEF //============================================== 2039 // GetMediaSourceSampleRate 2040 // Returns the sample rate. MIDI source media will return zero. 2041 2042 int (*GetMediaSourceSampleRate)(PCM_source* source); 2043 #endif 2044 2045 #if defined(REAPERAPI_WANT_GetMediaSourceType) || !defined(REAPERAPI_MINIMAL) 2046 REAPERAPI_DEF //============================================== 2047 // GetMediaSourceType 2048 // copies the media source type ("WAV", "MIDI", etc) to typebuf 2049 2050 void (*GetMediaSourceType)(PCM_source* source, char* typebufOut, int typebufOut_sz); 2051 #endif 2052 2053 #if defined(REAPERAPI_WANT_GetMediaTrackInfo_Value) || !defined(REAPERAPI_MINIMAL) 2054 REAPERAPI_DEF //============================================== 2055 // GetMediaTrackInfo_Value 2056 // Get track numerical-value attributes. 2057 // B_MUTE : bool * : muted 2058 // B_PHASE : bool * : track phase inverted 2059 // B_RECMON_IN_EFFECT : bool * : record monitoring in effect (current audio-thread playback state, read-only) 2060 // IP_TRACKNUMBER : int : track number 1-based, 0=not found, -1=master track (read-only, returns the int directly) 2061 // I_SOLO : int * : soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place 2062 // B_SOLO_DEFEAT : bool * : when set, if anything else is soloed and this track is not muted, this track acts soloed 2063 // I_FXEN : int * : fx enabled, 0=bypassed, !0=fx active 2064 // I_RECARM : int * : record armed, 0=not record armed, 1=record armed 2065 // I_RECINPUT : int * : record input, <0=no input. if 4096 set, input is MIDI and low 5 bits represent channel (0=all, 1-16=only chan), next 6 bits represent physical input (63=all, 62=VKB). If 4096 is not set, low 10 bits (0..1023) are input start channel (ReaRoute/Loopback start at 512). If 2048 is set, input is multichannel input (using track channel count), or if 1024 is set, input is stereo input, otherwise input is mono. 2066 // I_RECMODE : int * : record mode, 0=input, 1=stereo out, 2=none, 3=stereo out w/latency compensation, 4=midi output, 5=mono out, 6=mono out w/ latency compensation, 7=midi overdub, 8=midi replace 2067 // I_RECMODE_FLAGS : int * : record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader) 2068 // I_RECMON : int * : record monitoring, 0=off, 1=normal, 2=not when playing (tape style) 2069 // I_RECMONITEMS : int * : monitor items while recording, 0=off, 1=on 2070 // B_AUTO_RECARM : bool * : automatically set record arm when selected (does not immediately affect recarm state, script should set directly if desired) 2071 // I_VUMODE : int * : track vu mode, &1:disabled, &30==0:stereo peaks, &30==2:multichannel peaks, &30==4:stereo RMS, &30==8:combined RMS, &30==12:LUFS-M, &30==16:LUFS-S (readout=max), &30==20:LUFS-S (readout=current), &32:LUFS calculation on channels 1+2 only 2072 // I_AUTOMODE : int * : track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch 2073 // I_NCHAN : int * : number of track channels, 2-64, even numbers only 2074 // I_SELECTED : int * : track selected, 0=unselected, 1=selected 2075 // I_WNDH : int * : current TCP window height in pixels including envelopes (read-only) 2076 // I_TCPH : int * : current TCP window height in pixels not including envelopes (read-only) 2077 // I_TCPY : int * : current TCP window Y-position in pixels relative to top of arrange view (read-only) 2078 // I_MCPX : int * : current MCP X-position in pixels relative to mixer container (read-only) 2079 // I_MCPY : int * : current MCP Y-position in pixels relative to mixer container (read-only) 2080 // I_MCPW : int * : current MCP width in pixels (read-only) 2081 // I_MCPH : int * : current MCP height in pixels (read-only) 2082 // I_FOLDERDEPTH : int * : folder depth change, 0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc 2083 // I_FOLDERCOMPACT : int * : folder compacted state (only valid on folders), 0=normal, 1=small, 2=tiny children 2084 // I_MIDIHWOUT : int * : track midi hardware output index, <0=disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31) 2085 // I_PERFFLAGS : int * : track performance flags, &1=no media buffering, &2=no anticipative FX 2086 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 2087 // I_HEIGHTOVERRIDE : int * : custom height override for TCP window, 0 for none, otherwise size in pixels 2088 // B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking) 2089 // D_VOL : double * : trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc 2090 // D_PAN : double * : trim pan of track, -1..1 2091 // D_WIDTH : double * : width of track, -1..1 2092 // D_DUALPANL : double * : dualpan position 1, -1..1, only if I_PANMODE==6 2093 // D_DUALPANR : double * : dualpan position 2, -1..1, only if I_PANMODE==6 2094 // I_PANMODE : int * : pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan 2095 // D_PANLAW : double * : pan law of track, <0=project default, 0.5=-6dB, 0.707..=-3dB, 1=+0dB, 1.414..=-3dB with gain compensation, 2=-6dB with gain compensation, etc 2096 // I_PANLAW_FLAGS : int * : pan law flags, 0=sine taper, 1=hybrid taper with deprecated behavior when gain compensation enabled, 2=linear taper, 3=hybrid taper 2097 // P_ENV:<envchunkname or P_ENV:{GUID... : TrackEnvelope * : (read-only) chunkname can be <VOLENV, <PANENV, etc; GUID is the stringified envelope GUID. 2098 // B_SHOWINMIXER : bool * : track control panel visible in mixer (do not use on master track) 2099 // B_SHOWINTCP : bool * : track control panel visible in arrange view (do not use on master track) 2100 // B_MAINSEND : bool * : track sends audio to parent 2101 // C_MAINSEND_OFFS : char * : channel offset of track send to parent 2102 // C_MAINSEND_NCH : char * : channel count of track send to parent (0=use all child track channels, 1=use one channel only) 2103 // I_FREEMODE : int * : 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing) 2104 // C_BEATATTACHMODE : char * : track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only) 2105 // F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed) 2106 // F_MCP_FXPARM_SCALE : float * : scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed) 2107 // F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed) 2108 // F_TCP_FXPARM_SCALE : float * : scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed) 2109 // I_PLAY_OFFSET_FLAG : int * : track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds) 2110 // D_PLAY_OFFSET : double * : track media playback offset, units depend on I_PLAY_OFFSET_FLAG 2111 // P_PARTRACK : MediaTrack * : parent track (read-only) 2112 // P_PROJECT : ReaProject * : parent project (read-only) 2113 // 2114 2115 double (*GetMediaTrackInfo_Value)(MediaTrack* tr, const char* parmname); 2116 #endif 2117 2118 #if defined(REAPERAPI_WANT_GetMIDIInputName) || !defined(REAPERAPI_MINIMAL) 2119 REAPERAPI_DEF //============================================== 2120 // GetMIDIInputName 2121 // returns true if device present 2122 2123 bool (*GetMIDIInputName)(int dev, char* nameout, int nameout_sz); 2124 #endif 2125 2126 #if defined(REAPERAPI_WANT_GetMIDIOutputName) || !defined(REAPERAPI_MINIMAL) 2127 REAPERAPI_DEF //============================================== 2128 // GetMIDIOutputName 2129 // returns true if device present 2130 2131 bool (*GetMIDIOutputName)(int dev, char* nameout, int nameout_sz); 2132 #endif 2133 2134 #if defined(REAPERAPI_WANT_GetMixerScroll) || !defined(REAPERAPI_MINIMAL) 2135 REAPERAPI_DEF //============================================== 2136 // GetMixerScroll 2137 // Get the leftmost track visible in the mixer 2138 2139 MediaTrack* (*GetMixerScroll)(); 2140 #endif 2141 2142 #if defined(REAPERAPI_WANT_GetMouseModifier) || !defined(REAPERAPI_MINIMAL) 2143 REAPERAPI_DEF //============================================== 2144 // GetMouseModifier 2145 // Get the current mouse modifier assignment for a specific modifier key assignment, in a specific context. 2146 // action will be filled in with the command ID number for a built-in mouse modifier 2147 // or built-in REAPER command ID, or the custom action ID string. 2148 // See SetMouseModifier for more information. 2149 // 2150 2151 void (*GetMouseModifier)(const char* context, int modifier_flag, char* actionOut, int actionOut_sz); 2152 #endif 2153 2154 #if defined(REAPERAPI_WANT_GetMousePosition) || !defined(REAPERAPI_MINIMAL) 2155 REAPERAPI_DEF //============================================== 2156 // GetMousePosition 2157 // get mouse position in screen coordinates 2158 2159 void (*GetMousePosition)(int* xOut, int* yOut); 2160 #endif 2161 2162 #if defined(REAPERAPI_WANT_GetNumAudioInputs) || !defined(REAPERAPI_MINIMAL) 2163 REAPERAPI_DEF //============================================== 2164 // GetNumAudioInputs 2165 // Return number of normal audio hardware inputs available 2166 2167 int (*GetNumAudioInputs)(); 2168 #endif 2169 2170 #if defined(REAPERAPI_WANT_GetNumAudioOutputs) || !defined(REAPERAPI_MINIMAL) 2171 REAPERAPI_DEF //============================================== 2172 // GetNumAudioOutputs 2173 // Return number of normal audio hardware outputs available 2174 2175 int (*GetNumAudioOutputs)(); 2176 #endif 2177 2178 #if defined(REAPERAPI_WANT_GetNumMIDIInputs) || !defined(REAPERAPI_MINIMAL) 2179 REAPERAPI_DEF //============================================== 2180 // GetNumMIDIInputs 2181 // returns max number of real midi hardware inputs 2182 2183 int (*GetNumMIDIInputs)(); 2184 #endif 2185 2186 #if defined(REAPERAPI_WANT_GetNumMIDIOutputs) || !defined(REAPERAPI_MINIMAL) 2187 REAPERAPI_DEF //============================================== 2188 // GetNumMIDIOutputs 2189 // returns max number of real midi hardware outputs 2190 2191 int (*GetNumMIDIOutputs)(); 2192 #endif 2193 2194 #if defined(REAPERAPI_WANT_GetNumTakeMarkers) || !defined(REAPERAPI_MINIMAL) 2195 REAPERAPI_DEF //============================================== 2196 // GetNumTakeMarkers 2197 // Returns number of take markers. See GetTakeMarker, SetTakeMarker, DeleteTakeMarker 2198 2199 int (*GetNumTakeMarkers)(MediaItem_Take* take); 2200 #endif 2201 2202 #if defined(REAPERAPI_WANT_GetNumTracks) || !defined(REAPERAPI_MINIMAL) 2203 REAPERAPI_DEF //============================================== 2204 // GetNumTracks 2205 2206 int (*GetNumTracks)(); 2207 #endif 2208 2209 #if defined(REAPERAPI_WANT_GetOS) || !defined(REAPERAPI_MINIMAL) 2210 REAPERAPI_DEF //============================================== 2211 // GetOS 2212 // Returns "Win32", "Win64", "OSX32", "OSX64", "macOS-arm64", or "Other". 2213 2214 const char* (*GetOS)(); 2215 #endif 2216 2217 #if defined(REAPERAPI_WANT_GetOutputChannelName) || !defined(REAPERAPI_MINIMAL) 2218 REAPERAPI_DEF //============================================== 2219 // GetOutputChannelName 2220 2221 const char* (*GetOutputChannelName)(int channelIndex); 2222 #endif 2223 2224 #if defined(REAPERAPI_WANT_GetOutputLatency) || !defined(REAPERAPI_MINIMAL) 2225 REAPERAPI_DEF //============================================== 2226 // GetOutputLatency 2227 // returns output latency in seconds 2228 2229 double (*GetOutputLatency)(); 2230 #endif 2231 2232 #if defined(REAPERAPI_WANT_GetParentTrack) || !defined(REAPERAPI_MINIMAL) 2233 REAPERAPI_DEF //============================================== 2234 // GetParentTrack 2235 2236 MediaTrack* (*GetParentTrack)(MediaTrack* track); 2237 #endif 2238 2239 #if defined(REAPERAPI_WANT_GetPeakFileName) || !defined(REAPERAPI_MINIMAL) 2240 REAPERAPI_DEF //============================================== 2241 // GetPeakFileName 2242 // get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path) 2243 2244 void (*GetPeakFileName)(const char* fn, char* bufOut, int bufOut_sz); 2245 #endif 2246 2247 #if defined(REAPERAPI_WANT_GetPeakFileNameEx) || !defined(REAPERAPI_MINIMAL) 2248 REAPERAPI_DEF //============================================== 2249 // GetPeakFileNameEx 2250 // get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path) 2251 2252 void (*GetPeakFileNameEx)(const char* fn, char* buf, int buf_sz, bool forWrite); 2253 #endif 2254 2255 #if defined(REAPERAPI_WANT_GetPeakFileNameEx2) || !defined(REAPERAPI_MINIMAL) 2256 REAPERAPI_DEF //============================================== 2257 // GetPeakFileNameEx2 2258 // Like GetPeakFileNameEx, but you can specify peaksfileextension such as ".reapeaks" 2259 2260 void (*GetPeakFileNameEx2)(const char* fn, char* buf, int buf_sz, bool forWrite, const char* peaksfileextension); 2261 #endif 2262 2263 #if defined(REAPERAPI_WANT_GetPeaksBitmap) || !defined(REAPERAPI_MINIMAL) 2264 REAPERAPI_DEF //============================================== 2265 // GetPeaksBitmap 2266 // see note in reaper_plugin.h about PCM_source_peaktransfer_t::samplerate 2267 2268 void* (*GetPeaksBitmap)(PCM_source_peaktransfer_t* pks, double maxamp, int w, int h, LICE_IBitmap* bmp); 2269 #endif 2270 2271 #if defined(REAPERAPI_WANT_GetPlayPosition) || !defined(REAPERAPI_MINIMAL) 2272 REAPERAPI_DEF //============================================== 2273 // GetPlayPosition 2274 // returns latency-compensated actual-what-you-hear position 2275 2276 double (*GetPlayPosition)(); 2277 #endif 2278 2279 #if defined(REAPERAPI_WANT_GetPlayPosition2) || !defined(REAPERAPI_MINIMAL) 2280 REAPERAPI_DEF //============================================== 2281 // GetPlayPosition2 2282 // returns position of next audio block being processed 2283 2284 double (*GetPlayPosition2)(); 2285 #endif 2286 2287 #if defined(REAPERAPI_WANT_GetPlayPosition2Ex) || !defined(REAPERAPI_MINIMAL) 2288 REAPERAPI_DEF //============================================== 2289 // GetPlayPosition2Ex 2290 // returns position of next audio block being processed 2291 2292 double (*GetPlayPosition2Ex)(ReaProject* proj); 2293 #endif 2294 2295 #if defined(REAPERAPI_WANT_GetPlayPositionEx) || !defined(REAPERAPI_MINIMAL) 2296 REAPERAPI_DEF //============================================== 2297 // GetPlayPositionEx 2298 // returns latency-compensated actual-what-you-hear position 2299 2300 double (*GetPlayPositionEx)(ReaProject* proj); 2301 #endif 2302 2303 #if defined(REAPERAPI_WANT_GetPlayState) || !defined(REAPERAPI_MINIMAL) 2304 REAPERAPI_DEF //============================================== 2305 // GetPlayState 2306 // &1=playing,&2=pause,&=4 is recording 2307 2308 int (*GetPlayState)(); 2309 #endif 2310 2311 #if defined(REAPERAPI_WANT_GetPlayStateEx) || !defined(REAPERAPI_MINIMAL) 2312 REAPERAPI_DEF //============================================== 2313 // GetPlayStateEx 2314 // &1=playing,&2=pause,&=4 is recording 2315 2316 int (*GetPlayStateEx)(ReaProject* proj); 2317 #endif 2318 2319 #if defined(REAPERAPI_WANT_GetPreferredDiskReadMode) || !defined(REAPERAPI_MINIMAL) 2320 REAPERAPI_DEF //============================================== 2321 // GetPreferredDiskReadMode 2322 // Gets user configured preferred disk read mode. mode/nb/bs are all parameters that should be passed to WDL_FileRead, see for more information. 2323 2324 void (*GetPreferredDiskReadMode)(int* mode, int* nb, int* bs); 2325 #endif 2326 2327 #if defined(REAPERAPI_WANT_GetPreferredDiskReadModePeak) || !defined(REAPERAPI_MINIMAL) 2328 REAPERAPI_DEF //============================================== 2329 // GetPreferredDiskReadModePeak 2330 // Gets user configured preferred disk read mode for use when building peaks. mode/nb/bs are all parameters that should be passed to WDL_FileRead, see for more information. 2331 2332 void (*GetPreferredDiskReadModePeak)(int* mode, int* nb, int* bs); 2333 #endif 2334 2335 #if defined(REAPERAPI_WANT_GetPreferredDiskWriteMode) || !defined(REAPERAPI_MINIMAL) 2336 REAPERAPI_DEF //============================================== 2337 // GetPreferredDiskWriteMode 2338 // Gets user configured preferred disk write mode. nb will receive two values, the initial and maximum write buffer counts. mode/nb/bs are all parameters that should be passed to WDL_FileWrite, see for more information. 2339 2340 void (*GetPreferredDiskWriteMode)(int* mode, int* nb, int* bs); 2341 #endif 2342 2343 #if defined(REAPERAPI_WANT_GetProjectLength) || !defined(REAPERAPI_MINIMAL) 2344 REAPERAPI_DEF //============================================== 2345 // GetProjectLength 2346 // returns length of project (maximum of end of media item, markers, end of regions, tempo map 2347 2348 double (*GetProjectLength)(ReaProject* proj); 2349 #endif 2350 2351 #if defined(REAPERAPI_WANT_GetProjectName) || !defined(REAPERAPI_MINIMAL) 2352 REAPERAPI_DEF //============================================== 2353 // GetProjectName 2354 2355 void (*GetProjectName)(ReaProject* proj, char* bufOut, int bufOut_sz); 2356 #endif 2357 2358 #if defined(REAPERAPI_WANT_GetProjectPath) || !defined(REAPERAPI_MINIMAL) 2359 REAPERAPI_DEF //============================================== 2360 // GetProjectPath 2361 // Get the project recording path. 2362 2363 void (*GetProjectPath)(char* bufOut, int bufOut_sz); 2364 #endif 2365 2366 #if defined(REAPERAPI_WANT_GetProjectPathEx) || !defined(REAPERAPI_MINIMAL) 2367 REAPERAPI_DEF //============================================== 2368 // GetProjectPathEx 2369 // Get the project recording path. 2370 2371 void (*GetProjectPathEx)(ReaProject* proj, char* bufOut, int bufOut_sz); 2372 #endif 2373 2374 #if defined(REAPERAPI_WANT_GetProjectStateChangeCount) || !defined(REAPERAPI_MINIMAL) 2375 REAPERAPI_DEF //============================================== 2376 // GetProjectStateChangeCount 2377 // returns an integer that changes when the project state changes 2378 2379 int (*GetProjectStateChangeCount)(ReaProject* proj); 2380 #endif 2381 2382 #if defined(REAPERAPI_WANT_GetProjectTimeOffset) || !defined(REAPERAPI_MINIMAL) 2383 REAPERAPI_DEF //============================================== 2384 // GetProjectTimeOffset 2385 // Gets project time offset in seconds (project settings - project start time). If rndframe is true, the offset is rounded to a multiple of the project frame size. 2386 2387 double (*GetProjectTimeOffset)(ReaProject* proj, bool rndframe); 2388 #endif 2389 2390 #if defined(REAPERAPI_WANT_GetProjectTimeSignature) || !defined(REAPERAPI_MINIMAL) 2391 REAPERAPI_DEF //============================================== 2392 // GetProjectTimeSignature 2393 // deprecated 2394 2395 void (*GetProjectTimeSignature)(double* bpmOut, double* bpiOut); 2396 #endif 2397 2398 #if defined(REAPERAPI_WANT_GetProjectTimeSignature2) || !defined(REAPERAPI_MINIMAL) 2399 REAPERAPI_DEF //============================================== 2400 // GetProjectTimeSignature2 2401 // Gets basic time signature (beats per minute, numerator of time signature in bpi) 2402 // this does not reflect tempo envelopes but is purely what is set in the project settings. 2403 2404 void (*GetProjectTimeSignature2)(ReaProject* proj, double* bpmOut, double* bpiOut); 2405 #endif 2406 2407 #if defined(REAPERAPI_WANT_GetProjExtState) || !defined(REAPERAPI_MINIMAL) 2408 REAPERAPI_DEF //============================================== 2409 // GetProjExtState 2410 // Get the value previously associated with this extname and key, the last time the project was saved. See SetProjExtState, EnumProjExtState. 2411 2412 int (*GetProjExtState)(ReaProject* proj, const char* extname, const char* key, char* valOutNeedBig, int valOutNeedBig_sz); 2413 #endif 2414 2415 #if defined(REAPERAPI_WANT_GetResourcePath) || !defined(REAPERAPI_MINIMAL) 2416 REAPERAPI_DEF //============================================== 2417 // GetResourcePath 2418 // returns path where ini files are stored, other things are in subdirectories. 2419 2420 const char* (*GetResourcePath)(); 2421 #endif 2422 2423 #if defined(REAPERAPI_WANT_GetSelectedEnvelope) || !defined(REAPERAPI_MINIMAL) 2424 REAPERAPI_DEF //============================================== 2425 // GetSelectedEnvelope 2426 // get the currently selected envelope, returns NULL/nil if no envelope is selected 2427 2428 TrackEnvelope* (*GetSelectedEnvelope)(ReaProject* proj); 2429 #endif 2430 2431 #if defined(REAPERAPI_WANT_GetSelectedMediaItem) || !defined(REAPERAPI_MINIMAL) 2432 REAPERAPI_DEF //============================================== 2433 // GetSelectedMediaItem 2434 // get a selected item by selected item count (zero-based) (proj=0 for active project) 2435 2436 MediaItem* (*GetSelectedMediaItem)(ReaProject* proj, int selitem); 2437 #endif 2438 2439 #if defined(REAPERAPI_WANT_GetSelectedTrack) || !defined(REAPERAPI_MINIMAL) 2440 REAPERAPI_DEF //============================================== 2441 // GetSelectedTrack 2442 // Get a selected track from a project (proj=0 for active project) by selected track count (zero-based). This function ignores the master track, see GetSelectedTrack2. 2443 2444 MediaTrack* (*GetSelectedTrack)(ReaProject* proj, int seltrackidx); 2445 #endif 2446 2447 #if defined(REAPERAPI_WANT_GetSelectedTrack2) || !defined(REAPERAPI_MINIMAL) 2448 REAPERAPI_DEF //============================================== 2449 // GetSelectedTrack2 2450 // Get a selected track from a project (proj=0 for active project) by selected track count (zero-based). 2451 2452 MediaTrack* (*GetSelectedTrack2)(ReaProject* proj, int seltrackidx, bool wantmaster); 2453 #endif 2454 2455 #if defined(REAPERAPI_WANT_GetSelectedTrackEnvelope) || !defined(REAPERAPI_MINIMAL) 2456 REAPERAPI_DEF //============================================== 2457 // GetSelectedTrackEnvelope 2458 // get the currently selected track envelope, returns NULL/nil if no envelope is selected 2459 2460 TrackEnvelope* (*GetSelectedTrackEnvelope)(ReaProject* proj); 2461 #endif 2462 2463 #if defined(REAPERAPI_WANT_GetSet_ArrangeView2) || !defined(REAPERAPI_MINIMAL) 2464 REAPERAPI_DEF //============================================== 2465 // GetSet_ArrangeView2 2466 // Gets or sets the arrange view start/end time for screen coordinates. use screen_x_start=screen_x_end=0 to use the full arrange view's start/end time 2467 2468 void (*GetSet_ArrangeView2)(ReaProject* proj, bool isSet, int screen_x_start, int screen_x_end, double* start_timeInOut, double* end_timeInOut); 2469 #endif 2470 2471 #if defined(REAPERAPI_WANT_GetSet_LoopTimeRange) || !defined(REAPERAPI_MINIMAL) 2472 REAPERAPI_DEF //============================================== 2473 // GetSet_LoopTimeRange 2474 2475 void (*GetSet_LoopTimeRange)(bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek); 2476 #endif 2477 2478 #if defined(REAPERAPI_WANT_GetSet_LoopTimeRange2) || !defined(REAPERAPI_MINIMAL) 2479 REAPERAPI_DEF //============================================== 2480 // GetSet_LoopTimeRange2 2481 2482 void (*GetSet_LoopTimeRange2)(ReaProject* proj, bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek); 2483 #endif 2484 2485 #if defined(REAPERAPI_WANT_GetSetAutomationItemInfo) || !defined(REAPERAPI_MINIMAL) 2486 REAPERAPI_DEF //============================================== 2487 // GetSetAutomationItemInfo 2488 // Get or set automation item information. autoitem_idx=0 for the first automation item on an envelope, 1 for the second item, etc. desc can be any of the following: 2489 // D_POOL_ID : double * : automation item pool ID (as an integer); edits are propagated to all other automation items that share a pool ID 2490 // D_POSITION : double * : automation item timeline position in seconds 2491 // D_LENGTH : double * : automation item length in seconds 2492 // D_STARTOFFS : double * : automation item start offset in seconds 2493 // D_PLAYRATE : double * : automation item playback rate 2494 // D_BASELINE : double * : automation item baseline value in the range [0,1] 2495 // D_AMPLITUDE : double * : automation item amplitude in the range [-1,1] 2496 // D_LOOPSRC : double * : nonzero if the automation item contents are looped 2497 // D_UISEL : double * : nonzero if the automation item is selected in the arrange view 2498 // D_POOL_QNLEN : double * : automation item pooled source length in quarter notes (setting will affect all pooled instances) 2499 // 2500 2501 double (*GetSetAutomationItemInfo)(TrackEnvelope* env, int autoitem_idx, const char* desc, double value, bool is_set); 2502 #endif 2503 2504 #if defined(REAPERAPI_WANT_GetSetAutomationItemInfo_String) || !defined(REAPERAPI_MINIMAL) 2505 REAPERAPI_DEF //============================================== 2506 // GetSetAutomationItemInfo_String 2507 // Get or set automation item information. autoitem_idx=0 for the first automation item on an envelope, 1 for the second item, etc. returns true on success. desc can be any of the following: 2508 // P_POOL_NAME : char * : name of the underlying automation item pool 2509 // P_POOL_EXT:xyz : char * : extension-specific persistent data 2510 // 2511 2512 bool (*GetSetAutomationItemInfo_String)(TrackEnvelope* env, int autoitem_idx, const char* desc, char* valuestrNeedBig, bool is_set); 2513 #endif 2514 2515 #if defined(REAPERAPI_WANT_GetSetEnvelopeInfo_String) || !defined(REAPERAPI_MINIMAL) 2516 REAPERAPI_DEF //============================================== 2517 // GetSetEnvelopeInfo_String 2518 // Gets/sets an attribute string: 2519 // P_EXT:xyz : char * : extension-specific persistent data 2520 // GUID : GUID * : 16-byte GUID, can query only, not set. If using a _String() function, GUID is a string {xyz-...}. 2521 // 2522 2523 bool (*GetSetEnvelopeInfo_String)(TrackEnvelope* env, const char* parmname, char* stringNeedBig, bool setNewValue); 2524 #endif 2525 2526 #if defined(REAPERAPI_WANT_GetSetEnvelopeState) || !defined(REAPERAPI_MINIMAL) 2527 REAPERAPI_DEF //============================================== 2528 // GetSetEnvelopeState 2529 // deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk 2530 2531 bool (*GetSetEnvelopeState)(TrackEnvelope* env, char* str, int str_sz); 2532 #endif 2533 2534 #if defined(REAPERAPI_WANT_GetSetEnvelopeState2) || !defined(REAPERAPI_MINIMAL) 2535 REAPERAPI_DEF //============================================== 2536 // GetSetEnvelopeState2 2537 // deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk 2538 2539 bool (*GetSetEnvelopeState2)(TrackEnvelope* env, char* str, int str_sz, bool isundo); 2540 #endif 2541 2542 #if defined(REAPERAPI_WANT_GetSetItemState) || !defined(REAPERAPI_MINIMAL) 2543 REAPERAPI_DEF //============================================== 2544 // GetSetItemState 2545 // deprecated -- see SetItemStateChunk, GetItemStateChunk 2546 2547 bool (*GetSetItemState)(MediaItem* item, char* str, int str_sz); 2548 #endif 2549 2550 #if defined(REAPERAPI_WANT_GetSetItemState2) || !defined(REAPERAPI_MINIMAL) 2551 REAPERAPI_DEF //============================================== 2552 // GetSetItemState2 2553 // deprecated -- see SetItemStateChunk, GetItemStateChunk 2554 2555 bool (*GetSetItemState2)(MediaItem* item, char* str, int str_sz, bool isundo); 2556 #endif 2557 2558 #if defined(REAPERAPI_WANT_GetSetMediaItemInfo) || !defined(REAPERAPI_MINIMAL) 2559 REAPERAPI_DEF //============================================== 2560 // GetSetMediaItemInfo 2561 // P_TRACK : MediaTrack * : (read-only) 2562 // B_MUTE : bool * : muted (item solo overrides). setting this value will clear C_MUTE_SOLO. 2563 // B_MUTE_ACTUAL : bool * : muted (ignores solo). setting this value will not affect C_MUTE_SOLO. 2564 // C_MUTE_SOLO : char * : solo override (-1=soloed, 0=no override, 1=unsoloed). note that this API does not automatically unsolo other items when soloing (nor clear the unsolos when clearing the last soloed item), it must be done by the caller via action or via this API. 2565 // B_LOOPSRC : bool * : loop source 2566 // B_ALLTAKESPLAY : bool * : all takes play 2567 // B_UISEL : bool * : selected in arrange view 2568 // C_BEATATTACHMODE : char * : item timebase, -1=track or project default, 1=beats (position, length, rate), 2=beats (position only). for auto-stretch timebase: C_BEATATTACHMODE=1, C_AUTOSTRETCH=1 2569 // C_AUTOSTRETCH: : char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1 2570 // C_LOCK : char * : locked, &1=locked 2571 // D_VOL : double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc 2572 // D_POSITION : double * : item position in seconds 2573 // D_LENGTH : double * : item length in seconds 2574 // D_SNAPOFFSET : double * : item snap offset in seconds 2575 // D_FADEINLEN : double * : item manual fadein length in seconds 2576 // D_FADEOUTLEN : double * : item manual fadeout length in seconds 2577 // D_FADEINDIR : double * : item fadein curvature, -1..1 2578 // D_FADEOUTDIR : double * : item fadeout curvature, -1..1 2579 // D_FADEINLEN_AUTO : double * : item auto-fadein length in seconds, -1=no auto-fadein 2580 // D_FADEOUTLEN_AUTO : double * : item auto-fadeout length in seconds, -1=no auto-fadeout 2581 // C_FADEINSHAPE : int * : fadein shape, 0..6, 0=linear 2582 // C_FADEOUTSHAPE : int * : fadeout shape, 0..6, 0=linear 2583 // I_GROUPID : int * : group ID, 0=no group 2584 // I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only) 2585 // I_LASTH : int * : height in pixels (read-only) 2586 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 2587 // I_CURTAKE : int * : active take number 2588 // IP_ITEMNUMBER : int : item number on this track (read-only, returns the item number directly) 2589 // F_FREEMODE_Y : float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1) 2590 // F_FREEMODE_H : float * : free item positioning height, 0=no height, 1=full height of track (will never be 0) 2591 // P_NOTES : char * : item note text (do not write to returned pointer, use setNewValue to update) 2592 // P_EXT:xyz : char * : extension-specific persistent data 2593 // GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}. 2594 // 2595 2596 void* (*GetSetMediaItemInfo)(MediaItem* item, const char* parmname, void* setNewValue); 2597 #endif 2598 2599 #if defined(REAPERAPI_WANT_GetSetMediaItemInfo_String) || !defined(REAPERAPI_MINIMAL) 2600 REAPERAPI_DEF //============================================== 2601 // GetSetMediaItemInfo_String 2602 // Gets/sets an item attribute string: 2603 // P_NOTES : char * : item note text (do not write to returned pointer, use setNewValue to update) 2604 // P_EXT:xyz : char * : extension-specific persistent data 2605 // GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}. 2606 // 2607 2608 bool (*GetSetMediaItemInfo_String)(MediaItem* item, const char* parmname, char* stringNeedBig, bool setNewValue); 2609 #endif 2610 2611 #if defined(REAPERAPI_WANT_GetSetMediaItemTakeInfo) || !defined(REAPERAPI_MINIMAL) 2612 REAPERAPI_DEF //============================================== 2613 // GetSetMediaItemTakeInfo 2614 // P_TRACK : pointer to MediaTrack (read-only) 2615 // P_ITEM : pointer to MediaItem (read-only) 2616 // P_SOURCE : PCM_source *. Note that if setting this, you should first retrieve the old source, set the new, THEN delete the old. 2617 // P_NAME : char * : take name 2618 // P_EXT:xyz : char * : extension-specific persistent data 2619 // GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}. 2620 // D_STARTOFFS : double * : start offset in source media, in seconds 2621 // D_VOL : double * : take volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc, negative if take polarity is flipped 2622 // D_PAN : double * : take pan, -1..1 2623 // D_PANLAW : double * : take pan law, -1=default, 0.5=-6dB, 1.0=+0dB, etc 2624 // D_PLAYRATE : double * : take playback rate, 0.5=half speed, 1=normal, 2=double speed, etc 2625 // D_PITCH : double * : take pitch adjustment in semitones, -12=one octave down, 0=normal, +12=one octave up, etc 2626 // B_PPITCH : bool * : preserve pitch when changing playback rate 2627 // I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only) 2628 // I_LASTH : int * : height in pixels (read-only) 2629 // I_CHANMODE : int * : channel mode, 0=normal, 1=reverse stereo, 2=downmix, 3=left, 4=right 2630 // I_PITCHMODE : int * : pitch shifter mode, -1=projext default, otherwise high 2 bytes=shifter, low 2 bytes=parameter 2631 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 2632 // IP_TAKENUMBER : int : take number (read-only, returns the take number directly) 2633 // 2634 2635 void* (*GetSetMediaItemTakeInfo)(MediaItem_Take* tk, const char* parmname, void* setNewValue); 2636 #endif 2637 2638 #if defined(REAPERAPI_WANT_GetSetMediaItemTakeInfo_String) || !defined(REAPERAPI_MINIMAL) 2639 REAPERAPI_DEF //============================================== 2640 // GetSetMediaItemTakeInfo_String 2641 // Gets/sets a take attribute string: 2642 // P_NAME : char * : take name 2643 // P_EXT:xyz : char * : extension-specific persistent data 2644 // GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}. 2645 // 2646 2647 bool (*GetSetMediaItemTakeInfo_String)(MediaItem_Take* tk, const char* parmname, char* stringNeedBig, bool setNewValue); 2648 #endif 2649 2650 #if defined(REAPERAPI_WANT_GetSetMediaTrackInfo) || !defined(REAPERAPI_MINIMAL) 2651 REAPERAPI_DEF //============================================== 2652 // GetSetMediaTrackInfo 2653 // Get or set track attributes. 2654 // P_PARTRACK : MediaTrack * : parent track (read-only) 2655 // P_PROJECT : ReaProject * : parent project (read-only) 2656 // P_NAME : char * : track name (on master returns NULL) 2657 // P_ICON : const char * : track icon (full filename, or relative to resource_path/data/track_icons) 2658 // P_MCP_LAYOUT : const char * : layout name 2659 // P_RAZOREDITS : const char * : list of razor edit areas, as space-separated triples of start time, end time, and envelope GUID string. 2660 // Example: "0.0 1.0 \"\" 0.0 1.0 "{xyz-...}" 2661 // P_RAZOREDITS_EXT : const char * : list of razor edit areas, as comma-separated sets of space-separated tuples of start time, end time, optional: envelope GUID string, fixed/fipm top y-position, fixed/fipm bottom y-position. 2662 // Example: "0.0 1.0,0.0 1.0 "{xyz-...}",1.0 2.0 "" 0.25 0.75" 2663 // P_TCP_LAYOUT : const char * : layout name 2664 // P_EXT:xyz : char * : extension-specific persistent data 2665 // P_UI_RECT:tcp.mute : char * : read-only, allows querying screen position + size of track WALTER elements (tcp.size queries screen position and size of entire TCP, etc). 2666 // GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}. 2667 // B_MUTE : bool * : muted 2668 // B_PHASE : bool * : track phase inverted 2669 // B_RECMON_IN_EFFECT : bool * : record monitoring in effect (current audio-thread playback state, read-only) 2670 // IP_TRACKNUMBER : int : track number 1-based, 0=not found, -1=master track (read-only, returns the int directly) 2671 // I_SOLO : int * : soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place 2672 // B_SOLO_DEFEAT : bool * : when set, if anything else is soloed and this track is not muted, this track acts soloed 2673 // I_FXEN : int * : fx enabled, 0=bypassed, !0=fx active 2674 // I_RECARM : int * : record armed, 0=not record armed, 1=record armed 2675 // I_RECINPUT : int * : record input, <0=no input. if 4096 set, input is MIDI and low 5 bits represent channel (0=all, 1-16=only chan), next 6 bits represent physical input (63=all, 62=VKB). If 4096 is not set, low 10 bits (0..1023) are input start channel (ReaRoute/Loopback start at 512). If 2048 is set, input is multichannel input (using track channel count), or if 1024 is set, input is stereo input, otherwise input is mono. 2676 // I_RECMODE : int * : record mode, 0=input, 1=stereo out, 2=none, 3=stereo out w/latency compensation, 4=midi output, 5=mono out, 6=mono out w/ latency compensation, 7=midi overdub, 8=midi replace 2677 // I_RECMODE_FLAGS : int * : record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader) 2678 // I_RECMON : int * : record monitoring, 0=off, 1=normal, 2=not when playing (tape style) 2679 // I_RECMONITEMS : int * : monitor items while recording, 0=off, 1=on 2680 // B_AUTO_RECARM : bool * : automatically set record arm when selected (does not immediately affect recarm state, script should set directly if desired) 2681 // I_VUMODE : int * : track vu mode, &1:disabled, &30==0:stereo peaks, &30==2:multichannel peaks, &30==4:stereo RMS, &30==8:combined RMS, &30==12:LUFS-M, &30==16:LUFS-S (readout=max), &30==20:LUFS-S (readout=current), &32:LUFS calculation on channels 1+2 only 2682 // I_AUTOMODE : int * : track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch 2683 // I_NCHAN : int * : number of track channels, 2-64, even numbers only 2684 // I_SELECTED : int * : track selected, 0=unselected, 1=selected 2685 // I_WNDH : int * : current TCP window height in pixels including envelopes (read-only) 2686 // I_TCPH : int * : current TCP window height in pixels not including envelopes (read-only) 2687 // I_TCPY : int * : current TCP window Y-position in pixels relative to top of arrange view (read-only) 2688 // I_MCPX : int * : current MCP X-position in pixels relative to mixer container (read-only) 2689 // I_MCPY : int * : current MCP Y-position in pixels relative to mixer container (read-only) 2690 // I_MCPW : int * : current MCP width in pixels (read-only) 2691 // I_MCPH : int * : current MCP height in pixels (read-only) 2692 // I_FOLDERDEPTH : int * : folder depth change, 0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc 2693 // I_FOLDERCOMPACT : int * : folder compacted state (only valid on folders), 0=normal, 1=small, 2=tiny children 2694 // I_MIDIHWOUT : int * : track midi hardware output index, <0=disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31) 2695 // I_PERFFLAGS : int * : track performance flags, &1=no media buffering, &2=no anticipative FX 2696 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 2697 // I_HEIGHTOVERRIDE : int * : custom height override for TCP window, 0 for none, otherwise size in pixels 2698 // B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking) 2699 // D_VOL : double * : trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc 2700 // D_PAN : double * : trim pan of track, -1..1 2701 // D_WIDTH : double * : width of track, -1..1 2702 // D_DUALPANL : double * : dualpan position 1, -1..1, only if I_PANMODE==6 2703 // D_DUALPANR : double * : dualpan position 2, -1..1, only if I_PANMODE==6 2704 // I_PANMODE : int * : pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan 2705 // D_PANLAW : double * : pan law of track, <0=project default, 0.5=-6dB, 0.707..=-3dB, 1=+0dB, 1.414..=-3dB with gain compensation, 2=-6dB with gain compensation, etc 2706 // I_PANLAW_FLAGS : int * : pan law flags, 0=sine taper, 1=hybrid taper with deprecated behavior when gain compensation enabled, 2=linear taper, 3=hybrid taper 2707 // P_ENV:<envchunkname or P_ENV:{GUID... : TrackEnvelope * : (read-only) chunkname can be <VOLENV, <PANENV, etc; GUID is the stringified envelope GUID. 2708 // B_SHOWINMIXER : bool * : track control panel visible in mixer (do not use on master track) 2709 // B_SHOWINTCP : bool * : track control panel visible in arrange view (do not use on master track) 2710 // B_MAINSEND : bool * : track sends audio to parent 2711 // C_MAINSEND_OFFS : char * : channel offset of track send to parent 2712 // C_MAINSEND_NCH : char * : channel count of track send to parent (0=use all child track channels, 1=use one channel only) 2713 // I_FREEMODE : int * : 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing) 2714 // C_BEATATTACHMODE : char * : track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only) 2715 // F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed) 2716 // F_MCP_FXPARM_SCALE : float * : scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed) 2717 // F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed) 2718 // F_TCP_FXPARM_SCALE : float * : scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed) 2719 // I_PLAY_OFFSET_FLAG : int * : track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds) 2720 // D_PLAY_OFFSET : double * : track media playback offset, units depend on I_PLAY_OFFSET_FLAG 2721 // 2722 2723 void* (*GetSetMediaTrackInfo)(MediaTrack* tr, const char* parmname, void* setNewValue); 2724 #endif 2725 2726 #if defined(REAPERAPI_WANT_GetSetMediaTrackInfo_String) || !defined(REAPERAPI_MINIMAL) 2727 REAPERAPI_DEF //============================================== 2728 // GetSetMediaTrackInfo_String 2729 // Get or set track string attributes. 2730 // P_NAME : char * : track name (on master returns NULL) 2731 // P_ICON : const char * : track icon (full filename, or relative to resource_path/data/track_icons) 2732 // P_MCP_LAYOUT : const char * : layout name 2733 // P_RAZOREDITS : const char * : list of razor edit areas, as space-separated triples of start time, end time, and envelope GUID string. 2734 // Example: "0.0 1.0 \"\" 0.0 1.0 "{xyz-...}" 2735 // P_RAZOREDITS_EXT : const char * : list of razor edit areas, as comma-separated sets of space-separated tuples of start time, end time, optional: envelope GUID string, fixed/fipm top y-position, fixed/fipm bottom y-position. 2736 // Example: "0.0 1.0,0.0 1.0 "{xyz-...}",1.0 2.0 "" 0.25 0.75" 2737 // P_TCP_LAYOUT : const char * : layout name 2738 // P_EXT:xyz : char * : extension-specific persistent data 2739 // P_UI_RECT:tcp.mute : char * : read-only, allows querying screen position + size of track WALTER elements (tcp.size queries screen position and size of entire TCP, etc). 2740 // GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}. 2741 // 2742 2743 bool (*GetSetMediaTrackInfo_String)(MediaTrack* tr, const char* parmname, char* stringNeedBig, bool setNewValue); 2744 #endif 2745 2746 #if defined(REAPERAPI_WANT_GetSetObjectState) || !defined(REAPERAPI_MINIMAL) 2747 REAPERAPI_DEF //============================================== 2748 // GetSetObjectState 2749 // get or set the state of a {track,item,envelope} as an RPPXML chunk 2750 // str="" to get the chunk string returned (must call FreeHeapPtr when done) 2751 // supply str to set the state (returns zero) 2752 2753 char* (*GetSetObjectState)(void* obj, const char* str); 2754 #endif 2755 2756 #if defined(REAPERAPI_WANT_GetSetObjectState2) || !defined(REAPERAPI_MINIMAL) 2757 REAPERAPI_DEF //============================================== 2758 // GetSetObjectState2 2759 // get or set the state of a {track,item,envelope} as an RPPXML chunk 2760 // str="" to get the chunk string returned (must call FreeHeapPtr when done) 2761 // supply str to set the state (returns zero) 2762 // set isundo if the state will be used for undo purposes (which may allow REAPER to get the state more efficiently 2763 2764 char* (*GetSetObjectState2)(void* obj, const char* str, bool isundo); 2765 #endif 2766 2767 #if defined(REAPERAPI_WANT_GetSetProjectAuthor) || !defined(REAPERAPI_MINIMAL) 2768 REAPERAPI_DEF //============================================== 2769 // GetSetProjectAuthor 2770 // deprecated, see GetSetProjectInfo_String with desc="PROJECT_AUTHOR" 2771 2772 void (*GetSetProjectAuthor)(ReaProject* proj, bool set, char* author, int author_sz); 2773 #endif 2774 2775 #if defined(REAPERAPI_WANT_GetSetProjectGrid) || !defined(REAPERAPI_MINIMAL) 2776 REAPERAPI_DEF //============================================== 2777 // GetSetProjectGrid 2778 // Get or set the arrange view grid division. 0.25=quarter note, 1.0/3.0=half note triplet, etc. swingmode can be 1 for swing enabled, swingamt is -1..1. swingmode can be 3 for measure-grid. Returns grid configuration flags 2779 2780 int (*GetSetProjectGrid)(ReaProject* project, bool set, double* divisionInOutOptional, int* swingmodeInOutOptional, double* swingamtInOutOptional); 2781 #endif 2782 2783 #if defined(REAPERAPI_WANT_GetSetProjectInfo) || !defined(REAPERAPI_MINIMAL) 2784 REAPERAPI_DEF //============================================== 2785 // GetSetProjectInfo 2786 // Get or set project information. 2787 // RENDER_SETTINGS : &(1|2)=0:master mix, &1=stems+master mix, &2=stems only, &4=multichannel tracks to multichannel files, &8=use render matrix, &16=tracks with only mono media to mono files, &32=selected media items, &64=selected media items via master, &128=selected tracks via master, &256=embed transients if format supports, &512=embed metadata if format supports, &1024=embed take markers if format supports, &2048=2nd pass render 2788 // RENDER_BOUNDSFLAG : 0=custom time bounds, 1=entire project, 2=time selection, 3=all project regions, 4=selected media items, 5=selected project regions, 6=all project markers, 7=selected project markers 2789 // RENDER_CHANNELS : number of channels in rendered file 2790 // RENDER_SRATE : sample rate of rendered file (or 0 for project sample rate) 2791 // RENDER_STARTPOS : render start time when RENDER_BOUNDSFLAG=0 2792 // RENDER_ENDPOS : render end time when RENDER_BOUNDSFLAG=0 2793 // RENDER_TAILFLAG : apply render tail setting when rendering: &1=custom time bounds, &2=entire project, &4=time selection, &8=all project markers/regions, &16=selected media items, &32=selected project markers/regions 2794 // RENDER_TAILMS : tail length in ms to render (only used if RENDER_BOUNDSFLAG and RENDER_TAILFLAG are set) 2795 // RENDER_ADDTOPROJ : &1=add rendered files to project, &2=do not render files that are likely silent 2796 // RENDER_DITHER : &1=dither, &2=noise shaping, &4=dither stems, &8=noise shaping on stems 2797 // RENDER_NORMALIZE: &1=enable, (&14==0)=LUFS-I, (&14==2)=RMS, (&14==4)=peak, (&14==6)=true peak, (&14==8)=LUFS-M max, (&14==10)=LUFS-S max, &32=normalize stems to common gain based on master, &64=enable brickwall limit, &128=brickwall limit true peak, &256=only normalize files that are too loud, &512=apply fade-in, &1024=apply fade-out 2798 // RENDER_NORMALIZE_TARGET: render normalization target as amplitude, so 0.5 means -6.02dB, 0.25 means -12.04dB, etc 2799 // RENDER_BRICKWALL: render brickwall limit as amplitude, so 0.5 means -6.02dB, 0.25 means -12.04dB, etc 2800 // RENDER_FADEIN: render fade-in (0.001 means 1 ms, requires RENDER_NORMALIZE&512) 2801 // RENDER_FADEOUT: render fade-out (0.001 means 1 ms, requires RENDER_NORMALIZE&1024) 2802 // RENDER_FADEINSHAPE: render fade-in shape 2803 // RENDER_FADEOUTSHAPE: render fade-out shape 2804 // PROJECT_SRATE : samplerate (ignored unless PROJECT_SRATE_USE set) 2805 // PROJECT_SRATE_USE : set to 1 if project samplerate is used 2806 // 2807 2808 double (*GetSetProjectInfo)(ReaProject* project, const char* desc, double value, bool is_set); 2809 #endif 2810 2811 #if defined(REAPERAPI_WANT_GetSetProjectInfo_String) || !defined(REAPERAPI_MINIMAL) 2812 REAPERAPI_DEF //============================================== 2813 // GetSetProjectInfo_String 2814 // Get or set project information. 2815 // PROJECT_NAME : project file name (read-only, is_set will be ignored) 2816 // PROJECT_TITLE : title field from Project Settings/Notes dialog 2817 // PROJECT_AUTHOR : author field from Project Settings/Notes dialog 2818 // TRACK_GROUP_NAME:X : track group name, X should be 1..64 2819 // MARKER_GUID:X : get the GUID (unique ID) of the marker or region with index X, where X is the index passed to EnumProjectMarkers, not necessarily the displayed number 2820 // RECORD_PATH : recording directory -- may be blank or a relative path, to get the effective path see GetProjectPathEx() 2821 // RECORD_PATH_SECONDARY : secondary recording directory 2822 // RENDER_FILE : render directory 2823 // RENDER_PATTERN : render file name (may contain wildcards) 2824 // RENDER_METADATA : get or set the metadata saved with the project (not metadata embedded in project media). Example, ID3 album name metadata: valuestr="ID3:TALB" to get, valuestr="ID3:TALB|my album name" to set. Call with valuestr="" and is_set=false to get a semicolon-separated list of defined project metadata identifiers. 2825 // RENDER_TARGETS : semicolon separated list of files that would be written if the project is rendered using the most recent render settings 2826 // RENDER_STATS : (read-only) semicolon separated list of statistics for the most recently rendered files. call with valuestr="XXX" to run an action (for example, "42437"=dry run render selected items) before returning statistics. 2827 // RENDER_FORMAT : base64-encoded sink configuration (see project files, etc). Callers can also pass a simple 4-byte string (non-base64-encoded), e.g. "evaw" or "l3pm", to use default settings for that sink type. 2828 // RENDER_FORMAT2 : base64-encoded secondary sink configuration. Callers can also pass a simple 4-byte string (non-base64-encoded), e.g. "evaw" or "l3pm", to use default settings for that sink type, or "" to disable secondary render. 2829 // 2830 2831 bool (*GetSetProjectInfo_String)(ReaProject* project, const char* desc, char* valuestrNeedBig, bool is_set); 2832 #endif 2833 2834 #if defined(REAPERAPI_WANT_GetSetProjectNotes) || !defined(REAPERAPI_MINIMAL) 2835 REAPERAPI_DEF //============================================== 2836 // GetSetProjectNotes 2837 // gets or sets project notes, notesNeedBig_sz is ignored when setting 2838 2839 void (*GetSetProjectNotes)(ReaProject* proj, bool set, char* notesNeedBig, int notesNeedBig_sz); 2840 #endif 2841 2842 #if defined(REAPERAPI_WANT_GetSetRepeat) || !defined(REAPERAPI_MINIMAL) 2843 REAPERAPI_DEF //============================================== 2844 // GetSetRepeat 2845 // -1 == query,0=clear,1=set,>1=toggle . returns new value 2846 2847 int (*GetSetRepeat)(int val); 2848 #endif 2849 2850 #if defined(REAPERAPI_WANT_GetSetRepeatEx) || !defined(REAPERAPI_MINIMAL) 2851 REAPERAPI_DEF //============================================== 2852 // GetSetRepeatEx 2853 // -1 == query,0=clear,1=set,>1=toggle . returns new value 2854 2855 int (*GetSetRepeatEx)(ReaProject* proj, int val); 2856 #endif 2857 2858 #if defined(REAPERAPI_WANT_GetSetTrackGroupMembership) || !defined(REAPERAPI_MINIMAL) 2859 REAPERAPI_DEF //============================================== 2860 // GetSetTrackGroupMembership 2861 // Gets or modifies the group membership for a track. Returns group state prior to call (each bit represents one of the 32 group numbers). if setmask has bits set, those bits in setvalue will be applied to group. Group can be one of: 2862 // ITEM_EDIT_LEAD 2863 // ITEM_EDIT_FOLLOW 2864 // VOLUME_LEAD 2865 // VOLUME_FOLLOW 2866 // VOLUME_VCA_LEAD 2867 // VOLUME_VCA_FOLLOW 2868 // PAN_LEAD 2869 // PAN_FOLLOW 2870 // WIDTH_LEAD 2871 // WIDTH_FOLLOW 2872 // MUTE_LEAD 2873 // MUTE_FOLLOW 2874 // SOLO_LEAD 2875 // SOLO_FOLLOW 2876 // RECARM_LEAD 2877 // RECARM_FOLLOW 2878 // POLARITY_LEAD 2879 // POLARITY_FOLLOW 2880 // AUTOMODE_LEAD 2881 // AUTOMODE_FOLLOW 2882 // VOLUME_REVERSE 2883 // PAN_REVERSE 2884 // WIDTH_REVERSE 2885 // NO_LEAD_WHEN_FOLLOW 2886 // VOLUME_VCA_FOLLOW_ISPREFX 2887 // 2888 // Note: REAPER v6.11 and earlier used _MASTER and _SLAVE rather than _LEAD and _FOLLOW, which is deprecated but still supported (scripts that must support v6.11 and earlier can use the deprecated strings). 2889 // 2890 2891 unsigned int (*GetSetTrackGroupMembership)(MediaTrack* tr, const char* groupname, unsigned int setmask, unsigned int setvalue); 2892 #endif 2893 2894 #if defined(REAPERAPI_WANT_GetSetTrackGroupMembershipHigh) || !defined(REAPERAPI_MINIMAL) 2895 REAPERAPI_DEF //============================================== 2896 // GetSetTrackGroupMembershipHigh 2897 // Gets or modifies the group membership for a track. Returns group state prior to call (each bit represents one of the high 32 group numbers). if setmask has bits set, those bits in setvalue will be applied to group. Group can be one of: 2898 // ITEM_EDIT_LEAD 2899 // ITEM_EDIT_FOLLOW 2900 // VOLUME_LEAD 2901 // VOLUME_FOLLOW 2902 // VOLUME_VCA_LEAD 2903 // VOLUME_VCA_FOLLOW 2904 // PAN_LEAD 2905 // PAN_FOLLOW 2906 // WIDTH_LEAD 2907 // WIDTH_FOLLOW 2908 // MUTE_LEAD 2909 // MUTE_FOLLOW 2910 // SOLO_LEAD 2911 // SOLO_FOLLOW 2912 // RECARM_LEAD 2913 // RECARM_FOLLOW 2914 // POLARITY_LEAD 2915 // POLARITY_FOLLOW 2916 // AUTOMODE_LEAD 2917 // AUTOMODE_FOLLOW 2918 // VOLUME_REVERSE 2919 // PAN_REVERSE 2920 // WIDTH_REVERSE 2921 // NO_LEAD_WHEN_FOLLOW 2922 // VOLUME_VCA_FOLLOW_ISPREFX 2923 // 2924 // Note: REAPER v6.11 and earlier used _MASTER and _SLAVE rather than _LEAD and _FOLLOW, which is deprecated but still supported (scripts that must support v6.11 and earlier can use the deprecated strings). 2925 // 2926 2927 unsigned int (*GetSetTrackGroupMembershipHigh)(MediaTrack* tr, const char* groupname, unsigned int setmask, unsigned int setvalue); 2928 #endif 2929 2930 #if defined(REAPERAPI_WANT_GetSetTrackMIDISupportFile) || !defined(REAPERAPI_MINIMAL) 2931 REAPERAPI_DEF //============================================== 2932 // GetSetTrackMIDISupportFile 2933 // Get or set the filename for storage of various track MIDI characteristics. 0=MIDI colormap image file, 1 or 2=MIDI bank/program select file (2=set new default). If fn != NULL, a new track MIDI storage file will be set; otherwise the existing track MIDI storage file will be returned. 2934 2935 const char* (*GetSetTrackMIDISupportFile)(ReaProject* proj, MediaTrack* track, int which, const char* filename); 2936 #endif 2937 2938 #if defined(REAPERAPI_WANT_GetSetTrackSendInfo) || !defined(REAPERAPI_MINIMAL) 2939 REAPERAPI_DEF //============================================== 2940 // GetSetTrackSendInfo 2941 // Get or set send/receive/hardware output attributes. 2942 // category is <0 for receives, 0=sends, >0 for hardware outputs 2943 // sendidx is 0..n (to enumerate, iterate over sendidx until it returns NULL) 2944 // parameter names: 2945 // P_DESTTRACK : MediaTrack * : destination track, only applies for sends/recvs (read-only) 2946 // P_SRCTRACK : MediaTrack * : source track, only applies for sends/recvs (read-only) 2947 // P_ENV:<envchunkname : TrackEnvelope * : call with :<VOLENV, :<PANENV, etc appended (read-only) 2948 // P_EXT:xyz : char * : extension-specific persistent data 2949 // B_MUTE : bool * 2950 // B_PHASE : bool * : true to flip phase 2951 // B_MONO : bool * 2952 // D_VOL : double * : 1.0 = +0dB etc 2953 // D_PAN : double * : -1..+1 2954 // D_PANLAW : double * : 1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc 2955 // I_SENDMODE : int * : 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx 2956 // I_AUTOMODE : int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch) 2957 // I_SRCCHAN : int * : index,&1024=mono, -1 for none 2958 // I_DSTCHAN : int * : index, &1024=mono, otherwise stereo pair, hwout:&512=rearoute 2959 // I_MIDIFLAGS : int * : low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chan 2960 // See CreateTrackSend, RemoveTrackSend. 2961 2962 void* (*GetSetTrackSendInfo)(MediaTrack* tr, int category, int sendidx, const char* parmname, void* setNewValue); 2963 #endif 2964 2965 #if defined(REAPERAPI_WANT_GetSetTrackSendInfo_String) || !defined(REAPERAPI_MINIMAL) 2966 REAPERAPI_DEF //============================================== 2967 // GetSetTrackSendInfo_String 2968 // Gets/sets a send attribute string: 2969 // P_EXT:xyz : char * : extension-specific persistent data 2970 // 2971 2972 bool (*GetSetTrackSendInfo_String)(MediaTrack* tr, int category, int sendidx, const char* parmname, char* stringNeedBig, bool setNewValue); 2973 #endif 2974 2975 #if defined(REAPERAPI_WANT_GetSetTrackState) || !defined(REAPERAPI_MINIMAL) 2976 REAPERAPI_DEF //============================================== 2977 // GetSetTrackState 2978 // deprecated -- see SetTrackStateChunk, GetTrackStateChunk 2979 2980 bool (*GetSetTrackState)(MediaTrack* track, char* str, int str_sz); 2981 #endif 2982 2983 #if defined(REAPERAPI_WANT_GetSetTrackState2) || !defined(REAPERAPI_MINIMAL) 2984 REAPERAPI_DEF //============================================== 2985 // GetSetTrackState2 2986 // deprecated -- see SetTrackStateChunk, GetTrackStateChunk 2987 2988 bool (*GetSetTrackState2)(MediaTrack* track, char* str, int str_sz, bool isundo); 2989 #endif 2990 2991 #if defined(REAPERAPI_WANT_GetSubProjectFromSource) || !defined(REAPERAPI_MINIMAL) 2992 REAPERAPI_DEF //============================================== 2993 // GetSubProjectFromSource 2994 2995 ReaProject* (*GetSubProjectFromSource)(PCM_source* src); 2996 #endif 2997 2998 #if defined(REAPERAPI_WANT_GetTake) || !defined(REAPERAPI_MINIMAL) 2999 REAPERAPI_DEF //============================================== 3000 // GetTake 3001 // get a take from an item by take count (zero-based) 3002 3003 MediaItem_Take* (*GetTake)(MediaItem* item, int takeidx); 3004 #endif 3005 3006 #if defined(REAPERAPI_WANT_GetTakeEnvelope) || !defined(REAPERAPI_MINIMAL) 3007 REAPERAPI_DEF //============================================== 3008 // GetTakeEnvelope 3009 3010 TrackEnvelope* (*GetTakeEnvelope)(MediaItem_Take* take, int envidx); 3011 #endif 3012 3013 #if defined(REAPERAPI_WANT_GetTakeEnvelopeByName) || !defined(REAPERAPI_MINIMAL) 3014 REAPERAPI_DEF //============================================== 3015 // GetTakeEnvelopeByName 3016 3017 TrackEnvelope* (*GetTakeEnvelopeByName)(MediaItem_Take* take, const char* envname); 3018 #endif 3019 3020 #if defined(REAPERAPI_WANT_GetTakeMarker) || !defined(REAPERAPI_MINIMAL) 3021 REAPERAPI_DEF //============================================== 3022 // GetTakeMarker 3023 // Get information about a take marker. Returns the position in media item source time, or -1 if the take marker does not exist. See GetNumTakeMarkers, SetTakeMarker, DeleteTakeMarker 3024 3025 double (*GetTakeMarker)(MediaItem_Take* take, int idx, char* nameOut, int nameOut_sz, int* colorOutOptional); 3026 #endif 3027 3028 #if defined(REAPERAPI_WANT_GetTakeName) || !defined(REAPERAPI_MINIMAL) 3029 REAPERAPI_DEF //============================================== 3030 // GetTakeName 3031 // returns NULL if the take is not valid 3032 3033 const char* (*GetTakeName)(MediaItem_Take* take); 3034 #endif 3035 3036 #if defined(REAPERAPI_WANT_GetTakeNumStretchMarkers) || !defined(REAPERAPI_MINIMAL) 3037 REAPERAPI_DEF //============================================== 3038 // GetTakeNumStretchMarkers 3039 // Returns number of stretch markers in take 3040 3041 int (*GetTakeNumStretchMarkers)(MediaItem_Take* take); 3042 #endif 3043 3044 #if defined(REAPERAPI_WANT_GetTakeStretchMarker) || !defined(REAPERAPI_MINIMAL) 3045 REAPERAPI_DEF //============================================== 3046 // GetTakeStretchMarker 3047 // Gets information on a stretch marker, idx is 0..n. Returns -1 if stretch marker not valid. posOut will be set to position in item, srcposOutOptional will be set to source media position. Returns index. if input index is -1, the following marker is found using position (or source position if position is -1). If position/source position are used to find marker position, their values are not updated. 3048 3049 int (*GetTakeStretchMarker)(MediaItem_Take* take, int idx, double* posOut, double* srcposOutOptional); 3050 #endif 3051 3052 #if defined(REAPERAPI_WANT_GetTakeStretchMarkerSlope) || !defined(REAPERAPI_MINIMAL) 3053 REAPERAPI_DEF //============================================== 3054 // GetTakeStretchMarkerSlope 3055 // See SetTakeStretchMarkerSlope 3056 3057 double (*GetTakeStretchMarkerSlope)(MediaItem_Take* take, int idx); 3058 #endif 3059 3060 #if defined(REAPERAPI_WANT_GetTCPFXParm) || !defined(REAPERAPI_MINIMAL) 3061 REAPERAPI_DEF //============================================== 3062 // GetTCPFXParm 3063 // Get information about a specific FX parameter knob (see CountTCPFXParms). 3064 3065 bool (*GetTCPFXParm)(ReaProject* project, MediaTrack* track, int index, int* fxindexOut, int* parmidxOut); 3066 #endif 3067 3068 #if defined(REAPERAPI_WANT_GetTempoMatchPlayRate) || !defined(REAPERAPI_MINIMAL) 3069 REAPERAPI_DEF //============================================== 3070 // GetTempoMatchPlayRate 3071 // finds the playrate and target length to insert this item stretched to a round power-of-2 number of bars, between 1/8 and 256 3072 3073 bool (*GetTempoMatchPlayRate)(PCM_source* source, double srcscale, double position, double mult, double* rateOut, double* targetlenOut); 3074 #endif 3075 3076 #if defined(REAPERAPI_WANT_GetTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 3077 REAPERAPI_DEF //============================================== 3078 // GetTempoTimeSigMarker 3079 // Get information about a tempo/time signature marker. See CountTempoTimeSigMarkers, SetTempoTimeSigMarker, AddTempoTimeSigMarker. 3080 3081 bool (*GetTempoTimeSigMarker)(ReaProject* proj, int ptidx, double* timeposOut, int* measureposOut, double* beatposOut, double* bpmOut, int* timesig_numOut, int* timesig_denomOut, bool* lineartempoOut); 3082 #endif 3083 3084 #if defined(REAPERAPI_WANT_GetThemeColor) || !defined(REAPERAPI_MINIMAL) 3085 REAPERAPI_DEF //============================================== 3086 // GetThemeColor 3087 // Returns the theme color specified, or -1 on failure. If the low bit of flags is set, the color as originally specified by the theme (before any transformations) is returned, otherwise the current (possibly transformed and modified) color is returned. See SetThemeColor for a list of valid ini_key. 3088 3089 int (*GetThemeColor)(const char* ini_key, int flagsOptional); 3090 #endif 3091 3092 #if defined(REAPERAPI_WANT_GetThingFromPoint) || !defined(REAPERAPI_MINIMAL) 3093 REAPERAPI_DEF //============================================== 3094 // GetThingFromPoint 3095 // Hit tests a point in screen coordinates. Updates infoOut with information such as "arrange", "fx_chain", "fx_0" (first FX in chain, floating). If a track panel is hit, string will begin with "tcp" or "mcp" or "tcp.mute" etc (future versions may append additional information). May return NULL with valid info string to indicate non-track thing. 3096 3097 MediaTrack* (*GetThingFromPoint)(int screen_x, int screen_y, char* infoOut, int infoOut_sz); 3098 #endif 3099 3100 #if defined(REAPERAPI_WANT_GetToggleCommandState) || !defined(REAPERAPI_MINIMAL) 3101 REAPERAPI_DEF //============================================== 3102 // GetToggleCommandState 3103 // See GetToggleCommandStateEx. 3104 3105 int (*GetToggleCommandState)(int command_id); 3106 #endif 3107 3108 #if defined(REAPERAPI_WANT_GetToggleCommandState2) || !defined(REAPERAPI_MINIMAL) 3109 REAPERAPI_DEF //============================================== 3110 // GetToggleCommandState2 3111 // See GetToggleCommandStateEx. 3112 3113 int (*GetToggleCommandState2)(KbdSectionInfo* section, int command_id); 3114 #endif 3115 3116 #if defined(REAPERAPI_WANT_GetToggleCommandStateEx) || !defined(REAPERAPI_MINIMAL) 3117 REAPERAPI_DEF //============================================== 3118 // GetToggleCommandStateEx 3119 // For the main action context, the MIDI editor, or the media explorer, returns the toggle state of the action. 0=off, 1=on, -1=NA because the action does not have on/off states. For the MIDI editor, the action state for the most recently focused window will be returned. 3120 3121 int (*GetToggleCommandStateEx)(int section_id, int command_id); 3122 #endif 3123 3124 #if defined(REAPERAPI_WANT_GetToggleCommandStateThroughHooks) || !defined(REAPERAPI_MINIMAL) 3125 REAPERAPI_DEF //============================================== 3126 // GetToggleCommandStateThroughHooks 3127 // Returns the state of an action via extension plugins' hooks. 3128 3129 int (*GetToggleCommandStateThroughHooks)(KbdSectionInfo* section, int command_id); 3130 #endif 3131 3132 #if defined(REAPERAPI_WANT_GetTooltipWindow) || !defined(REAPERAPI_MINIMAL) 3133 REAPERAPI_DEF //============================================== 3134 // GetTooltipWindow 3135 // gets a tooltip window,in case you want to ask it for font information. Can return NULL. 3136 3137 HWND (*GetTooltipWindow)(); 3138 #endif 3139 3140 #if defined(REAPERAPI_WANT_GetTrack) || !defined(REAPERAPI_MINIMAL) 3141 REAPERAPI_DEF //============================================== 3142 // GetTrack 3143 // get a track from a project by track count (zero-based) (proj=0 for active project) 3144 3145 MediaTrack* (*GetTrack)(ReaProject* proj, int trackidx); 3146 #endif 3147 3148 #if defined(REAPERAPI_WANT_GetTrackAutomationMode) || !defined(REAPERAPI_MINIMAL) 3149 REAPERAPI_DEF //============================================== 3150 // GetTrackAutomationMode 3151 // return the track mode, regardless of global override 3152 3153 int (*GetTrackAutomationMode)(MediaTrack* tr); 3154 #endif 3155 3156 #if defined(REAPERAPI_WANT_GetTrackColor) || !defined(REAPERAPI_MINIMAL) 3157 REAPERAPI_DEF //============================================== 3158 // GetTrackColor 3159 // Returns the track custom color as OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). Black is returned as 0x1000000, no color setting is returned as 0. 3160 3161 int (*GetTrackColor)(MediaTrack* track); 3162 #endif 3163 3164 #if defined(REAPERAPI_WANT_GetTrackDepth) || !defined(REAPERAPI_MINIMAL) 3165 REAPERAPI_DEF //============================================== 3166 // GetTrackDepth 3167 3168 int (*GetTrackDepth)(MediaTrack* track); 3169 #endif 3170 3171 #if defined(REAPERAPI_WANT_GetTrackEnvelope) || !defined(REAPERAPI_MINIMAL) 3172 REAPERAPI_DEF //============================================== 3173 // GetTrackEnvelope 3174 3175 TrackEnvelope* (*GetTrackEnvelope)(MediaTrack* track, int envidx); 3176 #endif 3177 3178 #if defined(REAPERAPI_WANT_GetTrackEnvelopeByChunkName) || !defined(REAPERAPI_MINIMAL) 3179 REAPERAPI_DEF //============================================== 3180 // GetTrackEnvelopeByChunkName 3181 // Gets a built-in track envelope by configuration chunk name, like "<VOLENV", or GUID string, like "{B577250D-146F-B544-9B34-F24FBE488F1F}". 3182 // 3183 3184 TrackEnvelope* (*GetTrackEnvelopeByChunkName)(MediaTrack* tr, const char* cfgchunkname_or_guid); 3185 #endif 3186 3187 #if defined(REAPERAPI_WANT_GetTrackEnvelopeByName) || !defined(REAPERAPI_MINIMAL) 3188 REAPERAPI_DEF //============================================== 3189 // GetTrackEnvelopeByName 3190 3191 TrackEnvelope* (*GetTrackEnvelopeByName)(MediaTrack* track, const char* envname); 3192 #endif 3193 3194 #if defined(REAPERAPI_WANT_GetTrackFromPoint) || !defined(REAPERAPI_MINIMAL) 3195 REAPERAPI_DEF //============================================== 3196 // GetTrackFromPoint 3197 // Returns the track from the screen coordinates specified. If the screen coordinates refer to a window associated to the track (such as FX), the track will be returned. infoOutOptional will be set to 1 if it is likely an envelope, 2 if it is likely a track FX. See GetThingFromPoint. 3198 3199 MediaTrack* (*GetTrackFromPoint)(int screen_x, int screen_y, int* infoOutOptional); 3200 #endif 3201 3202 #if defined(REAPERAPI_WANT_GetTrackGUID) || !defined(REAPERAPI_MINIMAL) 3203 REAPERAPI_DEF //============================================== 3204 // GetTrackGUID 3205 3206 GUID* (*GetTrackGUID)(MediaTrack* tr); 3207 #endif 3208 3209 #if defined(REAPERAPI_WANT_GetTrackInfo) || !defined(REAPERAPI_MINIMAL) 3210 REAPERAPI_DEF //============================================== 3211 // GetTrackInfo 3212 // gets track info (returns name). 3213 // track index, -1=master, 0..n, or cast a MediaTrack* to int 3214 // if flags is non-NULL, will be set to: 3215 // &1=folder 3216 // &2=selected 3217 // &4=has fx enabled 3218 // &8=muted 3219 // &16=soloed 3220 // &32=SIP'd (with &16) 3221 // &64=rec armed 3222 // &128=rec monitoring on 3223 // &256=rec monitoring auto 3224 // &512=hide from TCP 3225 // &1024=hide from MCP 3226 3227 const char* (*GetTrackInfo)(INT_PTR track, int* flags); 3228 #endif 3229 3230 #if defined(REAPERAPI_WANT_GetTrackMediaItem) || !defined(REAPERAPI_MINIMAL) 3231 REAPERAPI_DEF //============================================== 3232 // GetTrackMediaItem 3233 3234 MediaItem* (*GetTrackMediaItem)(MediaTrack* tr, int itemidx); 3235 #endif 3236 3237 #if defined(REAPERAPI_WANT_GetTrackMIDILyrics) || !defined(REAPERAPI_MINIMAL) 3238 REAPERAPI_DEF //============================================== 3239 // GetTrackMIDILyrics 3240 // Get all MIDI lyrics on the track. Lyrics will be returned as one string with tabs between each word. flag&1: double tabs at the end of each measure and triple tabs when skipping measures, flag&2: each lyric is preceded by its beat position in the project (example with flag=2: "1.1.2\tLyric for measure 1 beat 2\t2.1.1\tLyric for measure 2 beat 1 "). See SetTrackMIDILyrics 3241 3242 bool (*GetTrackMIDILyrics)(MediaTrack* track, int flag, char* bufOutWantNeedBig, int* bufOutWantNeedBig_sz); 3243 #endif 3244 3245 #if defined(REAPERAPI_WANT_GetTrackMIDINoteName) || !defined(REAPERAPI_MINIMAL) 3246 REAPERAPI_DEF //============================================== 3247 // GetTrackMIDINoteName 3248 // see GetTrackMIDINoteNameEx 3249 3250 const char* (*GetTrackMIDINoteName)(int track, int pitch, int chan); 3251 #endif 3252 3253 #if defined(REAPERAPI_WANT_GetTrackMIDINoteNameEx) || !defined(REAPERAPI_MINIMAL) 3254 REAPERAPI_DEF //============================================== 3255 // GetTrackMIDINoteNameEx 3256 // Get note/CC name. pitch 128 for CC0 name, 129 for CC1 name, etc. See SetTrackMIDINoteNameEx 3257 3258 const char* (*GetTrackMIDINoteNameEx)(ReaProject* proj, MediaTrack* track, int pitch, int chan); 3259 #endif 3260 3261 #if defined(REAPERAPI_WANT_GetTrackMIDINoteRange) || !defined(REAPERAPI_MINIMAL) 3262 REAPERAPI_DEF //============================================== 3263 // GetTrackMIDINoteRange 3264 3265 void (*GetTrackMIDINoteRange)(ReaProject* proj, MediaTrack* track, int* note_loOut, int* note_hiOut); 3266 #endif 3267 3268 #if defined(REAPERAPI_WANT_GetTrackName) || !defined(REAPERAPI_MINIMAL) 3269 REAPERAPI_DEF //============================================== 3270 // GetTrackName 3271 // Returns "MASTER" for master track, "Track N" if track has no name. 3272 3273 bool (*GetTrackName)(MediaTrack* track, char* bufOut, int bufOut_sz); 3274 #endif 3275 3276 #if defined(REAPERAPI_WANT_GetTrackNumMediaItems) || !defined(REAPERAPI_MINIMAL) 3277 REAPERAPI_DEF //============================================== 3278 // GetTrackNumMediaItems 3279 3280 int (*GetTrackNumMediaItems)(MediaTrack* tr); 3281 #endif 3282 3283 #if defined(REAPERAPI_WANT_GetTrackNumSends) || !defined(REAPERAPI_MINIMAL) 3284 REAPERAPI_DEF //============================================== 3285 // GetTrackNumSends 3286 // returns number of sends/receives/hardware outputs - category is <0 for receives, 0=sends, >0 for hardware outputs 3287 3288 int (*GetTrackNumSends)(MediaTrack* tr, int category); 3289 #endif 3290 3291 #if defined(REAPERAPI_WANT_GetTrackReceiveName) || !defined(REAPERAPI_MINIMAL) 3292 REAPERAPI_DEF //============================================== 3293 // GetTrackReceiveName 3294 // See GetTrackSendName. 3295 3296 bool (*GetTrackReceiveName)(MediaTrack* track, int recv_index, char* bufOut, int bufOut_sz); 3297 #endif 3298 3299 #if defined(REAPERAPI_WANT_GetTrackReceiveUIMute) || !defined(REAPERAPI_MINIMAL) 3300 REAPERAPI_DEF //============================================== 3301 // GetTrackReceiveUIMute 3302 // See GetTrackSendUIMute. 3303 3304 bool (*GetTrackReceiveUIMute)(MediaTrack* track, int recv_index, bool* muteOut); 3305 #endif 3306 3307 #if defined(REAPERAPI_WANT_GetTrackReceiveUIVolPan) || !defined(REAPERAPI_MINIMAL) 3308 REAPERAPI_DEF //============================================== 3309 // GetTrackReceiveUIVolPan 3310 // See GetTrackSendUIVolPan. 3311 3312 bool (*GetTrackReceiveUIVolPan)(MediaTrack* track, int recv_index, double* volumeOut, double* panOut); 3313 #endif 3314 3315 #if defined(REAPERAPI_WANT_GetTrackSendInfo_Value) || !defined(REAPERAPI_MINIMAL) 3316 REAPERAPI_DEF //============================================== 3317 // GetTrackSendInfo_Value 3318 // Get send/receive/hardware output numerical-value attributes. 3319 // category is <0 for receives, 0=sends, >0 for hardware outputs 3320 // parameter names: 3321 // B_MUTE : bool * 3322 // B_PHASE : bool * : true to flip phase 3323 // B_MONO : bool * 3324 // D_VOL : double * : 1.0 = +0dB etc 3325 // D_PAN : double * : -1..+1 3326 // D_PANLAW : double * : 1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc 3327 // I_SENDMODE : int * : 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx 3328 // I_AUTOMODE : int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch) 3329 // I_SRCCHAN : int * : index,&1024=mono, -1 for none 3330 // I_DSTCHAN : int * : index, &1024=mono, otherwise stereo pair, hwout:&512=rearoute 3331 // I_MIDIFLAGS : int * : low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chan 3332 // P_DESTTRACK : MediaTrack * : destination track, only applies for sends/recvs (read-only) 3333 // P_SRCTRACK : MediaTrack * : source track, only applies for sends/recvs (read-only) 3334 // P_ENV:<envchunkname : TrackEnvelope * : call with :<VOLENV, :<PANENV, etc appended (read-only) 3335 // See CreateTrackSend, RemoveTrackSend, GetTrackNumSends. 3336 3337 double (*GetTrackSendInfo_Value)(MediaTrack* tr, int category, int sendidx, const char* parmname); 3338 #endif 3339 3340 #if defined(REAPERAPI_WANT_GetTrackSendName) || !defined(REAPERAPI_MINIMAL) 3341 REAPERAPI_DEF //============================================== 3342 // GetTrackSendName 3343 // send_idx>=0 for hw ouputs, >=nb_of_hw_ouputs for sends. See GetTrackReceiveName. 3344 3345 bool (*GetTrackSendName)(MediaTrack* track, int send_index, char* bufOut, int bufOut_sz); 3346 #endif 3347 3348 #if defined(REAPERAPI_WANT_GetTrackSendUIMute) || !defined(REAPERAPI_MINIMAL) 3349 REAPERAPI_DEF //============================================== 3350 // GetTrackSendUIMute 3351 // send_idx>=0 for hw ouputs, >=nb_of_hw_ouputs for sends. See GetTrackReceiveUIMute. 3352 3353 bool (*GetTrackSendUIMute)(MediaTrack* track, int send_index, bool* muteOut); 3354 #endif 3355 3356 #if defined(REAPERAPI_WANT_GetTrackSendUIVolPan) || !defined(REAPERAPI_MINIMAL) 3357 REAPERAPI_DEF //============================================== 3358 // GetTrackSendUIVolPan 3359 // send_idx>=0 for hw ouputs, >=nb_of_hw_ouputs for sends. See GetTrackReceiveUIVolPan. 3360 3361 bool (*GetTrackSendUIVolPan)(MediaTrack* track, int send_index, double* volumeOut, double* panOut); 3362 #endif 3363 3364 #if defined(REAPERAPI_WANT_GetTrackState) || !defined(REAPERAPI_MINIMAL) 3365 REAPERAPI_DEF //============================================== 3366 // GetTrackState 3367 // Gets track state, returns track name. 3368 // flags will be set to: 3369 // &1=folder 3370 // &2=selected 3371 // &4=has fx enabled 3372 // &8=muted 3373 // &16=soloed 3374 // &32=SIP'd (with &16) 3375 // &64=rec armed 3376 // &128=rec monitoring on 3377 // &256=rec monitoring auto 3378 // &512=hide from TCP 3379 // &1024=hide from MCP 3380 3381 const char* (*GetTrackState)(MediaTrack* track, int* flagsOut); 3382 #endif 3383 3384 #if defined(REAPERAPI_WANT_GetTrackStateChunk) || !defined(REAPERAPI_MINIMAL) 3385 REAPERAPI_DEF //============================================== 3386 // GetTrackStateChunk 3387 // Gets the RPPXML state of a track, returns true if successful. Undo flag is a performance/caching hint. 3388 3389 bool (*GetTrackStateChunk)(MediaTrack* track, char* strNeedBig, int strNeedBig_sz, bool isundoOptional); 3390 #endif 3391 3392 #if defined(REAPERAPI_WANT_GetTrackUIMute) || !defined(REAPERAPI_MINIMAL) 3393 REAPERAPI_DEF //============================================== 3394 // GetTrackUIMute 3395 3396 bool (*GetTrackUIMute)(MediaTrack* track, bool* muteOut); 3397 #endif 3398 3399 #if defined(REAPERAPI_WANT_GetTrackUIPan) || !defined(REAPERAPI_MINIMAL) 3400 REAPERAPI_DEF //============================================== 3401 // GetTrackUIPan 3402 3403 bool (*GetTrackUIPan)(MediaTrack* track, double* pan1Out, double* pan2Out, int* panmodeOut); 3404 #endif 3405 3406 #if defined(REAPERAPI_WANT_GetTrackUIVolPan) || !defined(REAPERAPI_MINIMAL) 3407 REAPERAPI_DEF //============================================== 3408 // GetTrackUIVolPan 3409 3410 bool (*GetTrackUIVolPan)(MediaTrack* track, double* volumeOut, double* panOut); 3411 #endif 3412 3413 #if defined(REAPERAPI_WANT_GetUnderrunTime) || !defined(REAPERAPI_MINIMAL) 3414 REAPERAPI_DEF //============================================== 3415 // GetUnderrunTime 3416 // retrieves the last timestamps of audio xrun (yellow-flash, if available), media xrun (red-flash), and the current time stamp (all milliseconds) 3417 3418 void (*GetUnderrunTime)(unsigned int* audio_xrunOut, unsigned int* media_xrunOut, unsigned int* curtimeOut); 3419 #endif 3420 3421 #if defined(REAPERAPI_WANT_GetUserFileNameForRead) || !defined(REAPERAPI_MINIMAL) 3422 REAPERAPI_DEF //============================================== 3423 // GetUserFileNameForRead 3424 // returns true if the user selected a valid file, false if the user canceled the dialog 3425 3426 bool (*GetUserFileNameForRead)(char* filenameNeed4096, const char* title, const char* defext); 3427 #endif 3428 3429 #if defined(REAPERAPI_WANT_GetUserInputs) || !defined(REAPERAPI_MINIMAL) 3430 REAPERAPI_DEF //============================================== 3431 // GetUserInputs 3432 // Get values from the user. 3433 // If a caption begins with *, for example "*password", the edit field will not display the input text. 3434 // Maximum fields is 16. Values are returned as a comma-separated string. Returns false if the user canceled the dialog. You can supply special extra information via additional caption fields: extrawidth=XXX to increase text field width, separator=X to use a different separator for returned fields. 3435 3436 bool (*GetUserInputs)(const char* title, int num_inputs, const char* captions_csv, char* retvals_csv, int retvals_csv_sz); 3437 #endif 3438 3439 #if defined(REAPERAPI_WANT_GoToMarker) || !defined(REAPERAPI_MINIMAL) 3440 REAPERAPI_DEF //============================================== 3441 // GoToMarker 3442 // Go to marker. If use_timeline_order==true, marker_index 1 refers to the first marker on the timeline. If use_timeline_order==false, marker_index 1 refers to the first marker with the user-editable index of 1. 3443 3444 void (*GoToMarker)(ReaProject* proj, int marker_index, bool use_timeline_order); 3445 #endif 3446 3447 #if defined(REAPERAPI_WANT_GoToRegion) || !defined(REAPERAPI_MINIMAL) 3448 REAPERAPI_DEF //============================================== 3449 // GoToRegion 3450 // Seek to region after current region finishes playing (smooth seek). If use_timeline_order==true, region_index 1 refers to the first region on the timeline. If use_timeline_order==false, region_index 1 refers to the first region with the user-editable index of 1. 3451 3452 void (*GoToRegion)(ReaProject* proj, int region_index, bool use_timeline_order); 3453 #endif 3454 3455 #if defined(REAPERAPI_WANT_GR_SelectColor) || !defined(REAPERAPI_MINIMAL) 3456 REAPERAPI_DEF //============================================== 3457 // GR_SelectColor 3458 // Runs the system color chooser dialog. Returns 0 if the user cancels the dialog. 3459 3460 int (*GR_SelectColor)(HWND hwnd, int* colorOut); 3461 #endif 3462 3463 #if defined(REAPERAPI_WANT_GSC_mainwnd) || !defined(REAPERAPI_MINIMAL) 3464 REAPERAPI_DEF //============================================== 3465 // GSC_mainwnd 3466 // this is just like win32 GetSysColor() but can have overrides. 3467 3468 int (*GSC_mainwnd)(int t); 3469 #endif 3470 3471 #if defined(REAPERAPI_WANT_guidToString) || !defined(REAPERAPI_MINIMAL) 3472 REAPERAPI_DEF //============================================== 3473 // guidToString 3474 // dest should be at least 64 chars long to be safe 3475 3476 void (*guidToString)(const GUID* g, char* destNeed64); 3477 #endif 3478 3479 #if defined(REAPERAPI_WANT_HasExtState) || !defined(REAPERAPI_MINIMAL) 3480 REAPERAPI_DEF //============================================== 3481 // HasExtState 3482 // Returns true if there exists an extended state value for a specific section and key. See SetExtState, GetExtState, DeleteExtState. 3483 3484 bool (*HasExtState)(const char* section, const char* key); 3485 #endif 3486 3487 #if defined(REAPERAPI_WANT_HasTrackMIDIPrograms) || !defined(REAPERAPI_MINIMAL) 3488 REAPERAPI_DEF //============================================== 3489 // HasTrackMIDIPrograms 3490 // returns name of track plugin that is supplying MIDI programs,or NULL if there is none 3491 3492 const char* (*HasTrackMIDIPrograms)(int track); 3493 #endif 3494 3495 #if defined(REAPERAPI_WANT_HasTrackMIDIProgramsEx) || !defined(REAPERAPI_MINIMAL) 3496 REAPERAPI_DEF //============================================== 3497 // HasTrackMIDIProgramsEx 3498 // returns name of track plugin that is supplying MIDI programs,or NULL if there is none 3499 3500 const char* (*HasTrackMIDIProgramsEx)(ReaProject* proj, MediaTrack* track); 3501 #endif 3502 3503 #if defined(REAPERAPI_WANT_Help_Set) || !defined(REAPERAPI_MINIMAL) 3504 REAPERAPI_DEF //============================================== 3505 // Help_Set 3506 3507 void (*Help_Set)(const char* helpstring, bool is_temporary_help); 3508 #endif 3509 3510 #if defined(REAPERAPI_WANT_HiresPeaksFromSource) || !defined(REAPERAPI_MINIMAL) 3511 REAPERAPI_DEF //============================================== 3512 // HiresPeaksFromSource 3513 3514 void (*HiresPeaksFromSource)(PCM_source* src, PCM_source_peaktransfer_t* block); 3515 #endif 3516 3517 #if defined(REAPERAPI_WANT_image_resolve_fn) || !defined(REAPERAPI_MINIMAL) 3518 REAPERAPI_DEF //============================================== 3519 // image_resolve_fn 3520 3521 void (*image_resolve_fn)(const char* in, char* out, int out_sz); 3522 #endif 3523 3524 #if defined(REAPERAPI_WANT_InsertAutomationItem) || !defined(REAPERAPI_MINIMAL) 3525 REAPERAPI_DEF //============================================== 3526 // InsertAutomationItem 3527 // Insert a new automation item. pool_id < 0 collects existing envelope points into the automation item; if pool_id is >= 0 the automation item will be a new instance of that pool (which will be created as an empty instance if it does not exist). Returns the index of the item, suitable for passing to other automation item API functions. See GetSetAutomationItemInfo. 3528 3529 int (*InsertAutomationItem)(TrackEnvelope* env, int pool_id, double position, double length); 3530 #endif 3531 3532 #if defined(REAPERAPI_WANT_InsertEnvelopePoint) || !defined(REAPERAPI_MINIMAL) 3533 REAPERAPI_DEF //============================================== 3534 // InsertEnvelopePoint 3535 // Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. See InsertEnvelopePointEx. 3536 3537 bool (*InsertEnvelopePoint)(TrackEnvelope* envelope, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional); 3538 #endif 3539 3540 #if defined(REAPERAPI_WANT_InsertEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 3541 REAPERAPI_DEF //============================================== 3542 // InsertEnvelopePointEx 3543 // Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. 3544 // autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. 3545 // For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, 3546 // even if the automation item is trimmed so that not all points are visible. 3547 // Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. 3548 // See CountEnvelopePointsEx, GetEnvelopePointEx, SetEnvelopePointEx, DeleteEnvelopePointEx. 3549 3550 bool (*InsertEnvelopePointEx)(TrackEnvelope* envelope, int autoitem_idx, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional); 3551 #endif 3552 3553 #if defined(REAPERAPI_WANT_InsertMedia) || !defined(REAPERAPI_MINIMAL) 3554 REAPERAPI_DEF //============================================== 3555 // InsertMedia 3556 // mode: 0=add to current track, 1=add new track, 3=add to selected items as takes, &4=stretch/loop to fit time sel, &8=try to match tempo 1x, &16=try to match tempo 0.5x, &32=try to match tempo 2x, &64=don't preserve pitch when matching tempo, &128=no loop/section if startpct/endpct set, &256=force loop regardless of global preference for looping imported items, &512=use high word as absolute track index if mode&3==0, &1024=insert into reasamplomatic on a new track, &2048=insert into open reasamplomatic instance, &4096=move to source preferred position (BWF start offset), &8192=reverse 3557 3558 int (*InsertMedia)(const char* file, int mode); 3559 #endif 3560 3561 #if defined(REAPERAPI_WANT_InsertMediaSection) || !defined(REAPERAPI_MINIMAL) 3562 REAPERAPI_DEF //============================================== 3563 // InsertMediaSection 3564 // See InsertMedia. 3565 3566 int (*InsertMediaSection)(const char* file, int mode, double startpct, double endpct, double pitchshift); 3567 #endif 3568 3569 #if defined(REAPERAPI_WANT_InsertTrackAtIndex) || !defined(REAPERAPI_MINIMAL) 3570 REAPERAPI_DEF //============================================== 3571 // InsertTrackAtIndex 3572 // inserts a track at idx,of course this will be clamped to 0..GetNumTracks(). wantDefaults=TRUE for default envelopes/FX,otherwise no enabled fx/env 3573 3574 void (*InsertTrackAtIndex)(int idx, bool wantDefaults); 3575 #endif 3576 3577 #if defined(REAPERAPI_WANT_IsInRealTimeAudio) || !defined(REAPERAPI_MINIMAL) 3578 REAPERAPI_DEF //============================================== 3579 // IsInRealTimeAudio 3580 // are we in a realtime audio thread (between OnAudioBuffer calls,not in some worker/anticipative FX thread)? threadsafe 3581 3582 int (*IsInRealTimeAudio)(); 3583 #endif 3584 3585 #if defined(REAPERAPI_WANT_IsItemTakeActiveForPlayback) || !defined(REAPERAPI_MINIMAL) 3586 REAPERAPI_DEF //============================================== 3587 // IsItemTakeActiveForPlayback 3588 // get whether a take will be played (active take, unmuted, etc) 3589 3590 bool (*IsItemTakeActiveForPlayback)(MediaItem* item, MediaItem_Take* take); 3591 #endif 3592 3593 #if defined(REAPERAPI_WANT_IsMediaExtension) || !defined(REAPERAPI_MINIMAL) 3594 REAPERAPI_DEF //============================================== 3595 // IsMediaExtension 3596 // Tests a file extension (i.e. "wav" or "mid") to see if it's a media extension. 3597 // If wantOthers is set, then "RPP", "TXT" and other project-type formats will also pass. 3598 3599 bool (*IsMediaExtension)(const char* ext, bool wantOthers); 3600 #endif 3601 3602 #if defined(REAPERAPI_WANT_IsMediaItemSelected) || !defined(REAPERAPI_MINIMAL) 3603 REAPERAPI_DEF //============================================== 3604 // IsMediaItemSelected 3605 3606 bool (*IsMediaItemSelected)(MediaItem* item); 3607 #endif 3608 3609 #if defined(REAPERAPI_WANT_IsProjectDirty) || !defined(REAPERAPI_MINIMAL) 3610 REAPERAPI_DEF //============================================== 3611 // IsProjectDirty 3612 // Is the project dirty (needing save)? Always returns 0 if 'undo/prompt to save' is disabled in preferences. 3613 3614 int (*IsProjectDirty)(ReaProject* proj); 3615 #endif 3616 3617 #if defined(REAPERAPI_WANT_IsREAPER) || !defined(REAPERAPI_MINIMAL) 3618 REAPERAPI_DEF //============================================== 3619 // IsREAPER 3620 // Returns true if dealing with REAPER, returns false for ReaMote, etc 3621 3622 bool (*IsREAPER)(); 3623 #endif 3624 3625 #if defined(REAPERAPI_WANT_IsTrackSelected) || !defined(REAPERAPI_MINIMAL) 3626 REAPERAPI_DEF //============================================== 3627 // IsTrackSelected 3628 3629 bool (*IsTrackSelected)(MediaTrack* track); 3630 #endif 3631 3632 #if defined(REAPERAPI_WANT_IsTrackVisible) || !defined(REAPERAPI_MINIMAL) 3633 REAPERAPI_DEF //============================================== 3634 // IsTrackVisible 3635 // If mixer==true, returns true if the track is visible in the mixer. If mixer==false, returns true if the track is visible in the track control panel. 3636 3637 bool (*IsTrackVisible)(MediaTrack* track, bool mixer); 3638 #endif 3639 3640 #if defined(REAPERAPI_WANT_joystick_create) || !defined(REAPERAPI_MINIMAL) 3641 REAPERAPI_DEF //============================================== 3642 // joystick_create 3643 // creates a joystick device 3644 3645 joystick_device* (*joystick_create)(const GUID* guid); 3646 #endif 3647 3648 #if defined(REAPERAPI_WANT_joystick_destroy) || !defined(REAPERAPI_MINIMAL) 3649 REAPERAPI_DEF //============================================== 3650 // joystick_destroy 3651 // destroys a joystick device 3652 3653 void (*joystick_destroy)(joystick_device* device); 3654 #endif 3655 3656 #if defined(REAPERAPI_WANT_joystick_enum) || !defined(REAPERAPI_MINIMAL) 3657 REAPERAPI_DEF //============================================== 3658 // joystick_enum 3659 // enumerates installed devices, returns GUID as a string 3660 3661 const char* (*joystick_enum)(int index, const char** namestrOutOptional); 3662 #endif 3663 3664 #if defined(REAPERAPI_WANT_joystick_getaxis) || !defined(REAPERAPI_MINIMAL) 3665 REAPERAPI_DEF //============================================== 3666 // joystick_getaxis 3667 // returns axis value (-1..1) 3668 3669 double (*joystick_getaxis)(joystick_device* dev, int axis); 3670 #endif 3671 3672 #if defined(REAPERAPI_WANT_joystick_getbuttonmask) || !defined(REAPERAPI_MINIMAL) 3673 REAPERAPI_DEF //============================================== 3674 // joystick_getbuttonmask 3675 // returns button pressed mask, 1=first button, 2=second... 3676 3677 unsigned int (*joystick_getbuttonmask)(joystick_device* dev); 3678 #endif 3679 3680 #if defined(REAPERAPI_WANT_joystick_getinfo) || !defined(REAPERAPI_MINIMAL) 3681 REAPERAPI_DEF //============================================== 3682 // joystick_getinfo 3683 // returns button count 3684 3685 int (*joystick_getinfo)(joystick_device* dev, int* axesOutOptional, int* povsOutOptional); 3686 #endif 3687 3688 #if defined(REAPERAPI_WANT_joystick_getpov) || !defined(REAPERAPI_MINIMAL) 3689 REAPERAPI_DEF //============================================== 3690 // joystick_getpov 3691 // returns POV value (usually 0..655.35, or 655.35 on error) 3692 3693 double (*joystick_getpov)(joystick_device* dev, int pov); 3694 #endif 3695 3696 #if defined(REAPERAPI_WANT_joystick_update) || !defined(REAPERAPI_MINIMAL) 3697 REAPERAPI_DEF //============================================== 3698 // joystick_update 3699 // Updates joystick state from hardware, returns true if successful (joystick_get* will not be valid until joystick_update() is called successfully) 3700 3701 bool (*joystick_update)(joystick_device* dev); 3702 #endif 3703 3704 #if defined(REAPERAPI_WANT_kbd_enumerateActions) || !defined(REAPERAPI_MINIMAL) 3705 REAPERAPI_DEF //============================================== 3706 // kbd_enumerateActions 3707 3708 int (*kbd_enumerateActions)(KbdSectionInfo* section, int idx, const char** nameOut); 3709 #endif 3710 3711 #if defined(REAPERAPI_WANT_kbd_formatKeyName) || !defined(REAPERAPI_MINIMAL) 3712 REAPERAPI_DEF //============================================== 3713 // kbd_formatKeyName 3714 3715 void (*kbd_formatKeyName)(ACCEL* ac, char* s); 3716 #endif 3717 3718 #if defined(REAPERAPI_WANT_kbd_getCommandName) || !defined(REAPERAPI_MINIMAL) 3719 REAPERAPI_DEF //============================================== 3720 // kbd_getCommandName 3721 // Get the string of a key assigned to command "cmd" in a section. 3722 // This function is poorly named as it doesn't return the command's name, see kbd_getTextFromCmd. 3723 3724 void (*kbd_getCommandName)(int cmd, char* s, KbdSectionInfo* section); 3725 #endif 3726 3727 #if defined(REAPERAPI_WANT_kbd_getTextFromCmd) || !defined(REAPERAPI_MINIMAL) 3728 REAPERAPI_DEF //============================================== 3729 // kbd_getTextFromCmd 3730 3731 const char* (*kbd_getTextFromCmd)(DWORD cmd, KbdSectionInfo* section); 3732 #endif 3733 3734 #if defined(REAPERAPI_WANT_KBD_OnMainActionEx) || !defined(REAPERAPI_MINIMAL) 3735 REAPERAPI_DEF //============================================== 3736 // KBD_OnMainActionEx 3737 // val/valhw are used for midi stuff. 3738 // val=[0..127] and valhw=-1 (midi CC), 3739 // valhw >=0 (midi pitch (valhw | val<<7)), 3740 // relmode absolute (0) or 1/2/3 for relative adjust modes 3741 3742 int (*KBD_OnMainActionEx)(int cmd, int val, int valhw, int relmode, HWND hwnd, ReaProject* proj); 3743 #endif 3744 3745 #if defined(REAPERAPI_WANT_kbd_OnMidiEvent) || !defined(REAPERAPI_MINIMAL) 3746 REAPERAPI_DEF //============================================== 3747 // kbd_OnMidiEvent 3748 // can be called from anywhere (threadsafe) 3749 3750 void (*kbd_OnMidiEvent)(MIDI_event_t* evt, int dev_index); 3751 #endif 3752 3753 #if defined(REAPERAPI_WANT_kbd_OnMidiList) || !defined(REAPERAPI_MINIMAL) 3754 REAPERAPI_DEF //============================================== 3755 // kbd_OnMidiList 3756 // can be called from anywhere (threadsafe) 3757 3758 void (*kbd_OnMidiList)(MIDI_eventlist* list, int dev_index); 3759 #endif 3760 3761 #if defined(REAPERAPI_WANT_kbd_ProcessActionsMenu) || !defined(REAPERAPI_MINIMAL) 3762 REAPERAPI_DEF //============================================== 3763 // kbd_ProcessActionsMenu 3764 3765 void (*kbd_ProcessActionsMenu)(HMENU menu, KbdSectionInfo* section); 3766 #endif 3767 3768 #if defined(REAPERAPI_WANT_kbd_processMidiEventActionEx) || !defined(REAPERAPI_MINIMAL) 3769 REAPERAPI_DEF //============================================== 3770 // kbd_processMidiEventActionEx 3771 3772 bool (*kbd_processMidiEventActionEx)(MIDI_event_t* evt, KbdSectionInfo* section, HWND hwndCtx); 3773 #endif 3774 3775 #if defined(REAPERAPI_WANT_kbd_reprocessMenu) || !defined(REAPERAPI_MINIMAL) 3776 REAPERAPI_DEF //============================================== 3777 // kbd_reprocessMenu 3778 // Reprocess a menu recursively, setting key assignments to what their command IDs are mapped to. 3779 3780 void (*kbd_reprocessMenu)(HMENU menu, KbdSectionInfo* section); 3781 #endif 3782 3783 #if defined(REAPERAPI_WANT_kbd_RunCommandThroughHooks) || !defined(REAPERAPI_MINIMAL) 3784 REAPERAPI_DEF //============================================== 3785 // kbd_RunCommandThroughHooks 3786 // actioncommandID may get modified 3787 3788 bool (*kbd_RunCommandThroughHooks)(KbdSectionInfo* section, int* actionCommandID, int* val, int* valhw, int* relmode, HWND hwnd); 3789 #endif 3790 3791 #if defined(REAPERAPI_WANT_kbd_translateAccelerator) || !defined(REAPERAPI_MINIMAL) 3792 REAPERAPI_DEF //============================================== 3793 // kbd_translateAccelerator 3794 // Pass in the HWND to receive commands, a MSG of a key command, and a valid section, 3795 // and kbd_translateAccelerator() will process it looking for any keys bound to it, and send the messages off. 3796 // Returns 1 if processed, 0 if no key binding found. 3797 3798 int (*kbd_translateAccelerator)(HWND hwnd, MSG* msg, KbdSectionInfo* section); 3799 #endif 3800 3801 #if defined(REAPERAPI_WANT_kbd_translateMouse) || !defined(REAPERAPI_MINIMAL) 3802 REAPERAPI_DEF //============================================== 3803 // kbd_translateMouse 3804 3805 bool (*kbd_translateMouse)(void* winmsg, unsigned char* midimsg); 3806 #endif 3807 3808 #ifndef REAPERAPI_NO_LICE 3809 #if defined(REAPERAPI_WANT_LICE__Destroy) || !defined(REAPERAPI_MINIMAL) 3810 REAPERAPI_DEF //============================================== 3811 // LICE__Destroy 3812 3813 void (*LICE__Destroy)(LICE_IBitmap* bm); 3814 #endif 3815 3816 #if defined(REAPERAPI_WANT_LICE__DestroyFont) || !defined(REAPERAPI_MINIMAL) 3817 REAPERAPI_DEF //============================================== 3818 // LICE__DestroyFont 3819 3820 void (*LICE__DestroyFont)(LICE_IFont* font); 3821 #endif 3822 3823 #if defined(REAPERAPI_WANT_LICE__DrawText) || !defined(REAPERAPI_MINIMAL) 3824 REAPERAPI_DEF //============================================== 3825 // LICE__DrawText 3826 3827 int (*LICE__DrawText)(LICE_IFont* font, LICE_IBitmap* bm, const char* str, int strcnt, RECT* rect, UINT dtFlags); 3828 #endif 3829 3830 #if defined(REAPERAPI_WANT_LICE__GetBits) || !defined(REAPERAPI_MINIMAL) 3831 REAPERAPI_DEF //============================================== 3832 // LICE__GetBits 3833 3834 void* (*LICE__GetBits)(LICE_IBitmap* bm); 3835 #endif 3836 3837 #if defined(REAPERAPI_WANT_LICE__GetDC) || !defined(REAPERAPI_MINIMAL) 3838 REAPERAPI_DEF //============================================== 3839 // LICE__GetDC 3840 3841 HDC (*LICE__GetDC)(LICE_IBitmap* bm); 3842 #endif 3843 3844 #if defined(REAPERAPI_WANT_LICE__GetHeight) || !defined(REAPERAPI_MINIMAL) 3845 REAPERAPI_DEF //============================================== 3846 // LICE__GetHeight 3847 3848 int (*LICE__GetHeight)(LICE_IBitmap* bm); 3849 #endif 3850 3851 #if defined(REAPERAPI_WANT_LICE__GetRowSpan) || !defined(REAPERAPI_MINIMAL) 3852 REAPERAPI_DEF //============================================== 3853 // LICE__GetRowSpan 3854 3855 int (*LICE__GetRowSpan)(LICE_IBitmap* bm); 3856 #endif 3857 3858 #if defined(REAPERAPI_WANT_LICE__GetWidth) || !defined(REAPERAPI_MINIMAL) 3859 REAPERAPI_DEF //============================================== 3860 // LICE__GetWidth 3861 3862 int (*LICE__GetWidth)(LICE_IBitmap* bm); 3863 #endif 3864 3865 #if defined(REAPERAPI_WANT_LICE__IsFlipped) || !defined(REAPERAPI_MINIMAL) 3866 REAPERAPI_DEF //============================================== 3867 // LICE__IsFlipped 3868 3869 bool (*LICE__IsFlipped)(LICE_IBitmap* bm); 3870 #endif 3871 3872 #if defined(REAPERAPI_WANT_LICE__resize) || !defined(REAPERAPI_MINIMAL) 3873 REAPERAPI_DEF //============================================== 3874 // LICE__resize 3875 3876 bool (*LICE__resize)(LICE_IBitmap* bm, int w, int h); 3877 #endif 3878 3879 #if defined(REAPERAPI_WANT_LICE__SetBkColor) || !defined(REAPERAPI_MINIMAL) 3880 REAPERAPI_DEF //============================================== 3881 // LICE__SetBkColor 3882 3883 LICE_pixel (*LICE__SetBkColor)(LICE_IFont* font, LICE_pixel color); 3884 #endif 3885 3886 #if defined(REAPERAPI_WANT_LICE__SetFromHFont) || !defined(REAPERAPI_MINIMAL) 3887 REAPERAPI_DEF //============================================== 3888 // LICE__SetFromHFont 3889 // font must REMAIN valid,unless LICE_FONT_FLAG_PRECALCALL is set 3890 3891 void (*LICE__SetFromHFont)(LICE_IFont* font, HFONT hfont, int flags); 3892 #endif 3893 3894 #if defined(REAPERAPI_WANT_LICE__SetTextColor) || !defined(REAPERAPI_MINIMAL) 3895 REAPERAPI_DEF //============================================== 3896 // LICE__SetTextColor 3897 3898 LICE_pixel (*LICE__SetTextColor)(LICE_IFont* font, LICE_pixel color); 3899 #endif 3900 3901 #if defined(REAPERAPI_WANT_LICE__SetTextCombineMode) || !defined(REAPERAPI_MINIMAL) 3902 REAPERAPI_DEF //============================================== 3903 // LICE__SetTextCombineMode 3904 3905 void (*LICE__SetTextCombineMode)(LICE_IFont* ifont, int mode, float alpha); 3906 #endif 3907 3908 #if defined(REAPERAPI_WANT_LICE_Arc) || !defined(REAPERAPI_MINIMAL) 3909 REAPERAPI_DEF //============================================== 3910 // LICE_Arc 3911 3912 void (*LICE_Arc)(LICE_IBitmap* dest, float cx, float cy, float r, float minAngle, float maxAngle, LICE_pixel color, float alpha, int mode, bool aa); 3913 #endif 3914 3915 #if defined(REAPERAPI_WANT_LICE_Blit) || !defined(REAPERAPI_MINIMAL) 3916 REAPERAPI_DEF //============================================== 3917 // LICE_Blit 3918 3919 void (*LICE_Blit)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int srcx, int srcy, int srcw, int srch, float alpha, int mode); 3920 #endif 3921 3922 #if defined(REAPERAPI_WANT_LICE_Blur) || !defined(REAPERAPI_MINIMAL) 3923 REAPERAPI_DEF //============================================== 3924 // LICE_Blur 3925 3926 void (*LICE_Blur)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int srcx, int srcy, int srcw, int srch); 3927 #endif 3928 3929 #if defined(REAPERAPI_WANT_LICE_BorderedRect) || !defined(REAPERAPI_MINIMAL) 3930 REAPERAPI_DEF //============================================== 3931 // LICE_BorderedRect 3932 3933 void (*LICE_BorderedRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel bgcolor, LICE_pixel fgcolor, float alpha, int mode); 3934 #endif 3935 3936 #if defined(REAPERAPI_WANT_LICE_Circle) || !defined(REAPERAPI_MINIMAL) 3937 REAPERAPI_DEF //============================================== 3938 // LICE_Circle 3939 3940 void (*LICE_Circle)(LICE_IBitmap* dest, float cx, float cy, float r, LICE_pixel color, float alpha, int mode, bool aa); 3941 #endif 3942 3943 #if defined(REAPERAPI_WANT_LICE_Clear) || !defined(REAPERAPI_MINIMAL) 3944 REAPERAPI_DEF //============================================== 3945 // LICE_Clear 3946 3947 void (*LICE_Clear)(LICE_IBitmap* dest, LICE_pixel color); 3948 #endif 3949 3950 #if defined(REAPERAPI_WANT_LICE_ClearRect) || !defined(REAPERAPI_MINIMAL) 3951 REAPERAPI_DEF //============================================== 3952 // LICE_ClearRect 3953 3954 void (*LICE_ClearRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel mask, LICE_pixel orbits); 3955 #endif 3956 3957 #if defined(REAPERAPI_WANT_LICE_ClipLine) || !defined(REAPERAPI_MINIMAL) 3958 REAPERAPI_DEF //============================================== 3959 // LICE_ClipLine 3960 // Returns false if the line is entirely offscreen. 3961 3962 bool (*LICE_ClipLine)(int* pX1Out, int* pY1Out, int* pX2Out, int* pY2Out, int xLo, int yLo, int xHi, int yHi); 3963 #endif 3964 3965 #if defined(REAPERAPI_WANT_LICE_Copy) || !defined(REAPERAPI_MINIMAL) 3966 REAPERAPI_DEF //============================================== 3967 // LICE_Copy 3968 3969 void (*LICE_Copy)(LICE_IBitmap* dest, LICE_IBitmap* src); 3970 #endif 3971 3972 #if defined(REAPERAPI_WANT_LICE_CreateBitmap) || !defined(REAPERAPI_MINIMAL) 3973 REAPERAPI_DEF //============================================== 3974 // LICE_CreateBitmap 3975 // create a new bitmap. this is like calling new LICE_MemBitmap (mode=0) or new LICE_SysBitmap (mode=1). 3976 3977 LICE_IBitmap* (*LICE_CreateBitmap)(int mode, int w, int h); 3978 #endif 3979 3980 #if defined(REAPERAPI_WANT_LICE_CreateFont) || !defined(REAPERAPI_MINIMAL) 3981 REAPERAPI_DEF //============================================== 3982 // LICE_CreateFont 3983 3984 LICE_IFont* (*LICE_CreateFont)(); 3985 #endif 3986 3987 #if defined(REAPERAPI_WANT_LICE_DrawCBezier) || !defined(REAPERAPI_MINIMAL) 3988 REAPERAPI_DEF //============================================== 3989 // LICE_DrawCBezier 3990 3991 void (*LICE_DrawCBezier)(LICE_IBitmap* dest, double xstart, double ystart, double xctl1, double yctl1, double xctl2, double yctl2, double xend, double yend, LICE_pixel color, float alpha, int mode, bool aa, double tol); 3992 #endif 3993 3994 #if defined(REAPERAPI_WANT_LICE_DrawChar) || !defined(REAPERAPI_MINIMAL) 3995 REAPERAPI_DEF //============================================== 3996 // LICE_DrawChar 3997 3998 void (*LICE_DrawChar)(LICE_IBitmap* bm, int x, int y, char c, LICE_pixel color, float alpha, int mode); 3999 #endif 4000 4001 #if defined(REAPERAPI_WANT_LICE_DrawGlyph) || !defined(REAPERAPI_MINIMAL) 4002 REAPERAPI_DEF //============================================== 4003 // LICE_DrawGlyph 4004 4005 void (*LICE_DrawGlyph)(LICE_IBitmap* dest, int x, int y, LICE_pixel color, LICE_pixel_chan* alphas, int glyph_w, int glyph_h, float alpha, int mode); 4006 #endif 4007 4008 #if defined(REAPERAPI_WANT_LICE_DrawRect) || !defined(REAPERAPI_MINIMAL) 4009 REAPERAPI_DEF //============================================== 4010 // LICE_DrawRect 4011 4012 void (*LICE_DrawRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel color, float alpha, int mode); 4013 #endif 4014 4015 #if defined(REAPERAPI_WANT_LICE_DrawText) || !defined(REAPERAPI_MINIMAL) 4016 REAPERAPI_DEF //============================================== 4017 // LICE_DrawText 4018 4019 void (*LICE_DrawText)(LICE_IBitmap* bm, int x, int y, const char* string, LICE_pixel color, float alpha, int mode); 4020 #endif 4021 4022 #if defined(REAPERAPI_WANT_LICE_FillCBezier) || !defined(REAPERAPI_MINIMAL) 4023 REAPERAPI_DEF //============================================== 4024 // LICE_FillCBezier 4025 4026 void (*LICE_FillCBezier)(LICE_IBitmap* dest, double xstart, double ystart, double xctl1, double yctl1, double xctl2, double yctl2, double xend, double yend, int yfill, LICE_pixel color, float alpha, int mode, bool aa, double tol); 4027 #endif 4028 4029 #if defined(REAPERAPI_WANT_LICE_FillCircle) || !defined(REAPERAPI_MINIMAL) 4030 REAPERAPI_DEF //============================================== 4031 // LICE_FillCircle 4032 4033 void (*LICE_FillCircle)(LICE_IBitmap* dest, float cx, float cy, float r, LICE_pixel color, float alpha, int mode, bool aa); 4034 #endif 4035 4036 #if defined(REAPERAPI_WANT_LICE_FillConvexPolygon) || !defined(REAPERAPI_MINIMAL) 4037 REAPERAPI_DEF //============================================== 4038 // LICE_FillConvexPolygon 4039 4040 void (*LICE_FillConvexPolygon)(LICE_IBitmap* dest, int* x, int* y, int npoints, LICE_pixel color, float alpha, int mode); 4041 #endif 4042 4043 #if defined(REAPERAPI_WANT_LICE_FillRect) || !defined(REAPERAPI_MINIMAL) 4044 REAPERAPI_DEF //============================================== 4045 // LICE_FillRect 4046 4047 void (*LICE_FillRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel color, float alpha, int mode); 4048 #endif 4049 4050 #if defined(REAPERAPI_WANT_LICE_FillTrapezoid) || !defined(REAPERAPI_MINIMAL) 4051 REAPERAPI_DEF //============================================== 4052 // LICE_FillTrapezoid 4053 4054 void (*LICE_FillTrapezoid)(LICE_IBitmap* dest, int x1a, int x1b, int y1, int x2a, int x2b, int y2, LICE_pixel color, float alpha, int mode); 4055 #endif 4056 4057 #if defined(REAPERAPI_WANT_LICE_FillTriangle) || !defined(REAPERAPI_MINIMAL) 4058 REAPERAPI_DEF //============================================== 4059 // LICE_FillTriangle 4060 4061 void (*LICE_FillTriangle)(LICE_IBitmap* dest, int x1, int y1, int x2, int y2, int x3, int y3, LICE_pixel color, float alpha, int mode); 4062 #endif 4063 4064 #if defined(REAPERAPI_WANT_LICE_GetPixel) || !defined(REAPERAPI_MINIMAL) 4065 REAPERAPI_DEF //============================================== 4066 // LICE_GetPixel 4067 4068 LICE_pixel (*LICE_GetPixel)(LICE_IBitmap* bm, int x, int y); 4069 #endif 4070 4071 #if defined(REAPERAPI_WANT_LICE_GradRect) || !defined(REAPERAPI_MINIMAL) 4072 REAPERAPI_DEF //============================================== 4073 // LICE_GradRect 4074 4075 void (*LICE_GradRect)(LICE_IBitmap* dest, int dstx, int dsty, int dstw, int dsth, float ir, float ig, float ib, float ia, float drdx, float dgdx, float dbdx, float dadx, float drdy, float dgdy, float dbdy, float dady, int mode); 4076 #endif 4077 4078 #if defined(REAPERAPI_WANT_LICE_Line) || !defined(REAPERAPI_MINIMAL) 4079 REAPERAPI_DEF //============================================== 4080 // LICE_Line 4081 4082 void (*LICE_Line)(LICE_IBitmap* dest, float x1, float y1, float x2, float y2, LICE_pixel color, float alpha, int mode, bool aa); 4083 #endif 4084 4085 #if defined(REAPERAPI_WANT_LICE_LineInt) || !defined(REAPERAPI_MINIMAL) 4086 REAPERAPI_DEF //============================================== 4087 // LICE_LineInt 4088 4089 void (*LICE_LineInt)(LICE_IBitmap* dest, int x1, int y1, int x2, int y2, LICE_pixel color, float alpha, int mode, bool aa); 4090 #endif 4091 4092 #if defined(REAPERAPI_WANT_LICE_LoadPNG) || !defined(REAPERAPI_MINIMAL) 4093 REAPERAPI_DEF //============================================== 4094 // LICE_LoadPNG 4095 4096 LICE_IBitmap* (*LICE_LoadPNG)(const char* filename, LICE_IBitmap* bmp); 4097 #endif 4098 4099 #if defined(REAPERAPI_WANT_LICE_LoadPNGFromResource) || !defined(REAPERAPI_MINIMAL) 4100 REAPERAPI_DEF //============================================== 4101 // LICE_LoadPNGFromResource 4102 4103 LICE_IBitmap* (*LICE_LoadPNGFromResource)(HINSTANCE hInst, const char* resid, LICE_IBitmap* bmp); 4104 #endif 4105 4106 #if defined(REAPERAPI_WANT_LICE_MeasureText) || !defined(REAPERAPI_MINIMAL) 4107 REAPERAPI_DEF //============================================== 4108 // LICE_MeasureText 4109 4110 void (*LICE_MeasureText)(const char* string, int* w, int* h); 4111 #endif 4112 4113 #if defined(REAPERAPI_WANT_LICE_MultiplyAddRect) || !defined(REAPERAPI_MINIMAL) 4114 REAPERAPI_DEF //============================================== 4115 // LICE_MultiplyAddRect 4116 4117 void (*LICE_MultiplyAddRect)(LICE_IBitmap* dest, int x, int y, int w, int h, float rsc, float gsc, float bsc, float asc, float radd, float gadd, float badd, float aadd); 4118 #endif 4119 4120 #if defined(REAPERAPI_WANT_LICE_PutPixel) || !defined(REAPERAPI_MINIMAL) 4121 REAPERAPI_DEF //============================================== 4122 // LICE_PutPixel 4123 4124 void (*LICE_PutPixel)(LICE_IBitmap* bm, int x, int y, LICE_pixel color, float alpha, int mode); 4125 #endif 4126 4127 #if defined(REAPERAPI_WANT_LICE_RotatedBlit) || !defined(REAPERAPI_MINIMAL) 4128 REAPERAPI_DEF //============================================== 4129 // LICE_RotatedBlit 4130 // these coordinates are offset from the center of the image,in source pixel coordinates 4131 4132 void (*LICE_RotatedBlit)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int dstw, int dsth, float srcx, float srcy, float srcw, float srch, float angle, bool cliptosourcerect, float alpha, int mode, float rotxcent, float rotycent); 4133 #endif 4134 4135 #if defined(REAPERAPI_WANT_LICE_RoundRect) || !defined(REAPERAPI_MINIMAL) 4136 REAPERAPI_DEF //============================================== 4137 // LICE_RoundRect 4138 4139 void (*LICE_RoundRect)(LICE_IBitmap* drawbm, float xpos, float ypos, float w, float h, int cornerradius, LICE_pixel col, float alpha, int mode, bool aa); 4140 #endif 4141 4142 #if defined(REAPERAPI_WANT_LICE_ScaledBlit) || !defined(REAPERAPI_MINIMAL) 4143 REAPERAPI_DEF //============================================== 4144 // LICE_ScaledBlit 4145 4146 void (*LICE_ScaledBlit)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int dstw, int dsth, float srcx, float srcy, float srcw, float srch, float alpha, int mode); 4147 #endif 4148 4149 #if defined(REAPERAPI_WANT_LICE_SimpleFill) || !defined(REAPERAPI_MINIMAL) 4150 REAPERAPI_DEF //============================================== 4151 // LICE_SimpleFill 4152 4153 void (*LICE_SimpleFill)(LICE_IBitmap* dest, int x, int y, LICE_pixel newcolor, LICE_pixel comparemask, LICE_pixel keepmask); 4154 #endif 4155 4156 #if defined(REAPERAPI_WANT_LICE_ThickFLine) || !defined(REAPERAPI_MINIMAL) 4157 REAPERAPI_DEF //============================================== 4158 // LICE_ThickFLine 4159 // always AA. wid is not affected by scaling (1 is always normal line, 2 is always 2 physical pixels, etc) 4160 4161 void (*LICE_ThickFLine)(LICE_IBitmap* dest, double x1, double y1, double x2, double y2, LICE_pixel color, float alpha, int mode, int wid); 4162 #endif 4163 4164 #endif // !REAPERAPI_NO_LICE 4165 #if defined(REAPERAPI_WANT_LocalizeString) || !defined(REAPERAPI_MINIMAL) 4166 REAPERAPI_DEF //============================================== 4167 // LocalizeString 4168 // Returns a localized version of src_string, in section section. flags can have 1 set to only localize if sprintf-style formatting matches the original. 4169 4170 const char* (*LocalizeString)(const char* src_string, const char* section, int flagsOptional); 4171 #endif 4172 4173 #if defined(REAPERAPI_WANT_Loop_OnArrow) || !defined(REAPERAPI_MINIMAL) 4174 REAPERAPI_DEF //============================================== 4175 // Loop_OnArrow 4176 // Move the loop selection left or right. Returns true if snap is enabled. 4177 4178 bool (*Loop_OnArrow)(ReaProject* project, int direction); 4179 #endif 4180 4181 #if defined(REAPERAPI_WANT_Main_OnCommand) || !defined(REAPERAPI_MINIMAL) 4182 REAPERAPI_DEF //============================================== 4183 // Main_OnCommand 4184 // See Main_OnCommandEx. 4185 4186 void (*Main_OnCommand)(int command, int flag); 4187 #endif 4188 4189 #if defined(REAPERAPI_WANT_Main_OnCommandEx) || !defined(REAPERAPI_MINIMAL) 4190 REAPERAPI_DEF //============================================== 4191 // Main_OnCommandEx 4192 // Performs an action belonging to the main action section. To perform non-native actions (ReaScripts, custom or extension plugins' actions) safely, see NamedCommandLookup(). 4193 4194 void (*Main_OnCommandEx)(int command, int flag, ReaProject* proj); 4195 #endif 4196 4197 #if defined(REAPERAPI_WANT_Main_openProject) || !defined(REAPERAPI_MINIMAL) 4198 REAPERAPI_DEF //============================================== 4199 // Main_openProject 4200 // opens a project. will prompt the user to save unless name is prefixed with 'noprompt:'. If name is prefixed with 'template:', project file will be loaded as a template. 4201 // If passed a .RTrackTemplate file, adds the template to the existing project. 4202 4203 void (*Main_openProject)(const char* name); 4204 #endif 4205 4206 #if defined(REAPERAPI_WANT_Main_SaveProject) || !defined(REAPERAPI_MINIMAL) 4207 REAPERAPI_DEF //============================================== 4208 // Main_SaveProject 4209 // Save the project. 4210 4211 void (*Main_SaveProject)(ReaProject* proj, bool forceSaveAsInOptional); 4212 #endif 4213 4214 #if defined(REAPERAPI_WANT_Main_SaveProjectEx) || !defined(REAPERAPI_MINIMAL) 4215 REAPERAPI_DEF //============================================== 4216 // Main_SaveProjectEx 4217 // Save the project. options: &1=save selected tracks as track template, &2=include media with track template, &4=include envelopes with track template. See Main_openProject, Main_SaveProject. 4218 4219 void (*Main_SaveProjectEx)(ReaProject* proj, const char* filename, int options); 4220 #endif 4221 4222 #if defined(REAPERAPI_WANT_Main_UpdateLoopInfo) || !defined(REAPERAPI_MINIMAL) 4223 REAPERAPI_DEF //============================================== 4224 // Main_UpdateLoopInfo 4225 4226 void (*Main_UpdateLoopInfo)(int ignoremask); 4227 #endif 4228 4229 #if defined(REAPERAPI_WANT_MarkProjectDirty) || !defined(REAPERAPI_MINIMAL) 4230 REAPERAPI_DEF //============================================== 4231 // MarkProjectDirty 4232 // Marks project as dirty (needing save) if 'undo/prompt to save' is enabled in preferences. 4233 4234 void (*MarkProjectDirty)(ReaProject* proj); 4235 #endif 4236 4237 #if defined(REAPERAPI_WANT_MarkTrackItemsDirty) || !defined(REAPERAPI_MINIMAL) 4238 REAPERAPI_DEF //============================================== 4239 // MarkTrackItemsDirty 4240 // If track is supplied, item is ignored 4241 4242 void (*MarkTrackItemsDirty)(MediaTrack* track, MediaItem* item); 4243 #endif 4244 4245 #if defined(REAPERAPI_WANT_Master_GetPlayRate) || !defined(REAPERAPI_MINIMAL) 4246 REAPERAPI_DEF //============================================== 4247 // Master_GetPlayRate 4248 4249 double (*Master_GetPlayRate)(ReaProject* project); 4250 #endif 4251 4252 #if defined(REAPERAPI_WANT_Master_GetPlayRateAtTime) || !defined(REAPERAPI_MINIMAL) 4253 REAPERAPI_DEF //============================================== 4254 // Master_GetPlayRateAtTime 4255 4256 double (*Master_GetPlayRateAtTime)(double time_s, ReaProject* proj); 4257 #endif 4258 4259 #if defined(REAPERAPI_WANT_Master_GetTempo) || !defined(REAPERAPI_MINIMAL) 4260 REAPERAPI_DEF //============================================== 4261 // Master_GetTempo 4262 4263 double (*Master_GetTempo)(); 4264 #endif 4265 4266 #if defined(REAPERAPI_WANT_Master_NormalizePlayRate) || !defined(REAPERAPI_MINIMAL) 4267 REAPERAPI_DEF //============================================== 4268 // Master_NormalizePlayRate 4269 // Convert play rate to/from a value between 0 and 1, representing the position on the project playrate slider. 4270 4271 double (*Master_NormalizePlayRate)(double playrate, bool isnormalized); 4272 #endif 4273 4274 #if defined(REAPERAPI_WANT_Master_NormalizeTempo) || !defined(REAPERAPI_MINIMAL) 4275 REAPERAPI_DEF //============================================== 4276 // Master_NormalizeTempo 4277 // Convert the tempo to/from a value between 0 and 1, representing bpm in the range of 40-296 bpm. 4278 4279 double (*Master_NormalizeTempo)(double bpm, bool isnormalized); 4280 #endif 4281 4282 #if defined(REAPERAPI_WANT_MB) || !defined(REAPERAPI_MINIMAL) 4283 REAPERAPI_DEF //============================================== 4284 // MB 4285 // type 0=OK,1=OKCANCEL,2=ABORTRETRYIGNORE,3=YESNOCANCEL,4=YESNO,5=RETRYCANCEL : ret 1=OK,2=CANCEL,3=ABORT,4=RETRY,5=IGNORE,6=YES,7=NO 4286 4287 int (*MB)(const char* msg, const char* title, int type); 4288 #endif 4289 4290 #if defined(REAPERAPI_WANT_MediaItemDescendsFromTrack) || !defined(REAPERAPI_MINIMAL) 4291 REAPERAPI_DEF //============================================== 4292 // MediaItemDescendsFromTrack 4293 // Returns 1 if the track holds the item, 2 if the track is a folder containing the track that holds the item, etc. 4294 4295 int (*MediaItemDescendsFromTrack)(MediaItem* item, MediaTrack* track); 4296 #endif 4297 4298 #if defined(REAPERAPI_WANT_MIDI_CountEvts) || !defined(REAPERAPI_MINIMAL) 4299 REAPERAPI_DEF //============================================== 4300 // MIDI_CountEvts 4301 // Count the number of notes, CC events, and text/sysex events in a given MIDI item. 4302 4303 int (*MIDI_CountEvts)(MediaItem_Take* take, int* notecntOut, int* ccevtcntOut, int* textsyxevtcntOut); 4304 #endif 4305 4306 #if defined(REAPERAPI_WANT_MIDI_DeleteCC) || !defined(REAPERAPI_MINIMAL) 4307 REAPERAPI_DEF //============================================== 4308 // MIDI_DeleteCC 4309 // Delete a MIDI CC event. 4310 4311 bool (*MIDI_DeleteCC)(MediaItem_Take* take, int ccidx); 4312 #endif 4313 4314 #if defined(REAPERAPI_WANT_MIDI_DeleteEvt) || !defined(REAPERAPI_MINIMAL) 4315 REAPERAPI_DEF //============================================== 4316 // MIDI_DeleteEvt 4317 // Delete a MIDI event. 4318 4319 bool (*MIDI_DeleteEvt)(MediaItem_Take* take, int evtidx); 4320 #endif 4321 4322 #if defined(REAPERAPI_WANT_MIDI_DeleteNote) || !defined(REAPERAPI_MINIMAL) 4323 REAPERAPI_DEF //============================================== 4324 // MIDI_DeleteNote 4325 // Delete a MIDI note. 4326 4327 bool (*MIDI_DeleteNote)(MediaItem_Take* take, int noteidx); 4328 #endif 4329 4330 #if defined(REAPERAPI_WANT_MIDI_DeleteTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 4331 REAPERAPI_DEF //============================================== 4332 // MIDI_DeleteTextSysexEvt 4333 // Delete a MIDI text or sysex event. 4334 4335 bool (*MIDI_DeleteTextSysexEvt)(MediaItem_Take* take, int textsyxevtidx); 4336 #endif 4337 4338 #if defined(REAPERAPI_WANT_MIDI_DisableSort) || !defined(REAPERAPI_MINIMAL) 4339 REAPERAPI_DEF //============================================== 4340 // MIDI_DisableSort 4341 // Disable sorting for all MIDI insert, delete, get and set functions, until MIDI_Sort is called. 4342 4343 void (*MIDI_DisableSort)(MediaItem_Take* take); 4344 #endif 4345 4346 #if defined(REAPERAPI_WANT_MIDI_EnumSelCC) || !defined(REAPERAPI_MINIMAL) 4347 REAPERAPI_DEF //============================================== 4348 // MIDI_EnumSelCC 4349 // Returns the index of the next selected MIDI CC event after ccidx (-1 if there are no more selected events). 4350 4351 int (*MIDI_EnumSelCC)(MediaItem_Take* take, int ccidx); 4352 #endif 4353 4354 #if defined(REAPERAPI_WANT_MIDI_EnumSelEvts) || !defined(REAPERAPI_MINIMAL) 4355 REAPERAPI_DEF //============================================== 4356 // MIDI_EnumSelEvts 4357 // Returns the index of the next selected MIDI event after evtidx (-1 if there are no more selected events). 4358 4359 int (*MIDI_EnumSelEvts)(MediaItem_Take* take, int evtidx); 4360 #endif 4361 4362 #if defined(REAPERAPI_WANT_MIDI_EnumSelNotes) || !defined(REAPERAPI_MINIMAL) 4363 REAPERAPI_DEF //============================================== 4364 // MIDI_EnumSelNotes 4365 // Returns the index of the next selected MIDI note after noteidx (-1 if there are no more selected events). 4366 4367 int (*MIDI_EnumSelNotes)(MediaItem_Take* take, int noteidx); 4368 #endif 4369 4370 #if defined(REAPERAPI_WANT_MIDI_EnumSelTextSysexEvts) || !defined(REAPERAPI_MINIMAL) 4371 REAPERAPI_DEF //============================================== 4372 // MIDI_EnumSelTextSysexEvts 4373 // Returns the index of the next selected MIDI text/sysex event after textsyxidx (-1 if there are no more selected events). 4374 4375 int (*MIDI_EnumSelTextSysexEvts)(MediaItem_Take* take, int textsyxidx); 4376 #endif 4377 4378 #if defined(REAPERAPI_WANT_MIDI_eventlist_Create) || !defined(REAPERAPI_MINIMAL) 4379 REAPERAPI_DEF //============================================== 4380 // MIDI_eventlist_Create 4381 // Create a MIDI_eventlist object. The returned object must be deleted with MIDI_eventlist_destroy(). 4382 4383 MIDI_eventlist* (*MIDI_eventlist_Create)(); 4384 #endif 4385 4386 #if defined(REAPERAPI_WANT_MIDI_eventlist_Destroy) || !defined(REAPERAPI_MINIMAL) 4387 REAPERAPI_DEF //============================================== 4388 // MIDI_eventlist_Destroy 4389 // Destroy a MIDI_eventlist object that was created using MIDI_eventlist_Create(). 4390 4391 void (*MIDI_eventlist_Destroy)(MIDI_eventlist* evtlist); 4392 #endif 4393 4394 #if defined(REAPERAPI_WANT_MIDI_GetAllEvts) || !defined(REAPERAPI_MINIMAL) 4395 REAPERAPI_DEF //============================================== 4396 // MIDI_GetAllEvts 4397 // Get all MIDI data. MIDI buffer is returned as a list of { int offset, char flag, int msglen, unsigned char msg[] }. 4398 // offset: MIDI ticks from previous event 4399 // flag: &1=selected &2=muted 4400 // flag high 4 bits for CC shape: &16=linear, &32=slow start/end, &16|32=fast start, &64=fast end, &64|16=bezier 4401 // msg: the MIDI message. 4402 // A meta-event of type 0xF followed by 'CCBZ ' and 5 more bytes represents bezier curve data for the previous MIDI event: 1 byte for the bezier type (usually 0) and 4 bytes for the bezier tension as a float. 4403 // For tick intervals longer than a 32 bit word can represent, zero-length meta events may be placed between valid events. 4404 // See MIDI_SetAllEvts. 4405 4406 bool (*MIDI_GetAllEvts)(MediaItem_Take* take, char* bufOutNeedBig, int* bufOutNeedBig_sz); 4407 #endif 4408 4409 #if defined(REAPERAPI_WANT_MIDI_GetCC) || !defined(REAPERAPI_MINIMAL) 4410 REAPERAPI_DEF //============================================== 4411 // MIDI_GetCC 4412 // Get MIDI CC event properties. 4413 4414 bool (*MIDI_GetCC)(MediaItem_Take* take, int ccidx, bool* selectedOut, bool* mutedOut, double* ppqposOut, int* chanmsgOut, int* chanOut, int* msg2Out, int* msg3Out); 4415 #endif 4416 4417 #if defined(REAPERAPI_WANT_MIDI_GetCCShape) || !defined(REAPERAPI_MINIMAL) 4418 REAPERAPI_DEF //============================================== 4419 // MIDI_GetCCShape 4420 // Get CC shape and bezier tension. See MIDI_GetCC, MIDI_SetCCShape 4421 4422 bool (*MIDI_GetCCShape)(MediaItem_Take* take, int ccidx, int* shapeOut, double* beztensionOut); 4423 #endif 4424 4425 #if defined(REAPERAPI_WANT_MIDI_GetEvt) || !defined(REAPERAPI_MINIMAL) 4426 REAPERAPI_DEF //============================================== 4427 // MIDI_GetEvt 4428 // Get MIDI event properties. 4429 4430 bool (*MIDI_GetEvt)(MediaItem_Take* take, int evtidx, bool* selectedOut, bool* mutedOut, double* ppqposOut, char* msgOut, int* msgOut_sz); 4431 #endif 4432 4433 #if defined(REAPERAPI_WANT_MIDI_GetGrid) || !defined(REAPERAPI_MINIMAL) 4434 REAPERAPI_DEF //============================================== 4435 // MIDI_GetGrid 4436 // Returns the most recent MIDI editor grid size for this MIDI take, in QN. Swing is between 0 and 1. Note length is 0 if it follows the grid size. 4437 4438 double (*MIDI_GetGrid)(MediaItem_Take* take, double* swingOutOptional, double* noteLenOutOptional); 4439 #endif 4440 4441 #if defined(REAPERAPI_WANT_MIDI_GetHash) || !defined(REAPERAPI_MINIMAL) 4442 REAPERAPI_DEF //============================================== 4443 // MIDI_GetHash 4444 // Get a string that only changes when the MIDI data changes. If notesonly==true, then the string changes only when the MIDI notes change. See MIDI_GetTrackHash 4445 4446 bool (*MIDI_GetHash)(MediaItem_Take* take, bool notesonly, char* hashOut, int hashOut_sz); 4447 #endif 4448 4449 #if defined(REAPERAPI_WANT_MIDI_GetNote) || !defined(REAPERAPI_MINIMAL) 4450 REAPERAPI_DEF //============================================== 4451 // MIDI_GetNote 4452 // Get MIDI note properties. 4453 4454 bool (*MIDI_GetNote)(MediaItem_Take* take, int noteidx, bool* selectedOut, bool* mutedOut, double* startppqposOut, double* endppqposOut, int* chanOut, int* pitchOut, int* velOut); 4455 #endif 4456 4457 #if defined(REAPERAPI_WANT_MIDI_GetPPQPos_EndOfMeasure) || !defined(REAPERAPI_MINIMAL) 4458 REAPERAPI_DEF //============================================== 4459 // MIDI_GetPPQPos_EndOfMeasure 4460 // Returns the MIDI tick (ppq) position corresponding to the end of the measure. 4461 4462 double (*MIDI_GetPPQPos_EndOfMeasure)(MediaItem_Take* take, double ppqpos); 4463 #endif 4464 4465 #if defined(REAPERAPI_WANT_MIDI_GetPPQPos_StartOfMeasure) || !defined(REAPERAPI_MINIMAL) 4466 REAPERAPI_DEF //============================================== 4467 // MIDI_GetPPQPos_StartOfMeasure 4468 // Returns the MIDI tick (ppq) position corresponding to the start of the measure. 4469 4470 double (*MIDI_GetPPQPos_StartOfMeasure)(MediaItem_Take* take, double ppqpos); 4471 #endif 4472 4473 #if defined(REAPERAPI_WANT_MIDI_GetPPQPosFromProjQN) || !defined(REAPERAPI_MINIMAL) 4474 REAPERAPI_DEF //============================================== 4475 // MIDI_GetPPQPosFromProjQN 4476 // Returns the MIDI tick (ppq) position corresponding to a specific project time in quarter notes. 4477 4478 double (*MIDI_GetPPQPosFromProjQN)(MediaItem_Take* take, double projqn); 4479 #endif 4480 4481 #if defined(REAPERAPI_WANT_MIDI_GetPPQPosFromProjTime) || !defined(REAPERAPI_MINIMAL) 4482 REAPERAPI_DEF //============================================== 4483 // MIDI_GetPPQPosFromProjTime 4484 // Returns the MIDI tick (ppq) position corresponding to a specific project time in seconds. 4485 4486 double (*MIDI_GetPPQPosFromProjTime)(MediaItem_Take* take, double projtime); 4487 #endif 4488 4489 #if defined(REAPERAPI_WANT_MIDI_GetProjQNFromPPQPos) || !defined(REAPERAPI_MINIMAL) 4490 REAPERAPI_DEF //============================================== 4491 // MIDI_GetProjQNFromPPQPos 4492 // Returns the project time in quarter notes corresponding to a specific MIDI tick (ppq) position. 4493 4494 double (*MIDI_GetProjQNFromPPQPos)(MediaItem_Take* take, double ppqpos); 4495 #endif 4496 4497 #if defined(REAPERAPI_WANT_MIDI_GetProjTimeFromPPQPos) || !defined(REAPERAPI_MINIMAL) 4498 REAPERAPI_DEF //============================================== 4499 // MIDI_GetProjTimeFromPPQPos 4500 // Returns the project time in seconds corresponding to a specific MIDI tick (ppq) position. 4501 4502 double (*MIDI_GetProjTimeFromPPQPos)(MediaItem_Take* take, double ppqpos); 4503 #endif 4504 4505 #if defined(REAPERAPI_WANT_MIDI_GetRecentInputEvent) || !defined(REAPERAPI_MINIMAL) 4506 REAPERAPI_DEF //============================================== 4507 // MIDI_GetRecentInputEvent 4508 // Gets a recent MIDI input event from the global history. idx=0 for the most recent event, which also latches to the latest MIDI event state (to get a more recent list, calling with idx=0 is necessary). idx=1 next most recent event, returns a non-zero sequence number for the event, or zero if no more events. tsOut will be set to the timestamp in samples relative to the current position (0 is current, -48000 is one second ago, etc). devIdxOut will have the low 16 bits set to the input device index, and 0x10000 will be set if device was enabled only for control. projPosOut will be set to project position in seconds if project was playing back at time of event, otherwise -1. Large SysEx events will not be included in this event list. 4509 4510 int (*MIDI_GetRecentInputEvent)(int idx, char* bufOut, int* bufOut_sz, int* tsOut, int* devIdxOut, double* projPosOut, int* projLoopCntOut); 4511 #endif 4512 4513 #if defined(REAPERAPI_WANT_MIDI_GetScale) || !defined(REAPERAPI_MINIMAL) 4514 REAPERAPI_DEF //============================================== 4515 // MIDI_GetScale 4516 // Get the active scale in the media source, if any. root 0=C, 1=C#, etc. scale &0x1=root, &0x2=minor 2nd, &0x4=major 2nd, &0x8=minor 3rd, &0xF=fourth, etc. 4517 4518 bool (*MIDI_GetScale)(MediaItem_Take* take, int* rootOut, int* scaleOut, char* nameOut, int nameOut_sz); 4519 #endif 4520 4521 #if defined(REAPERAPI_WANT_MIDI_GetTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 4522 REAPERAPI_DEF //============================================== 4523 // MIDI_GetTextSysexEvt 4524 // Get MIDI meta-event properties. Allowable types are -1:sysex (msg should not include bounding F0..F7), 1-14:MIDI text event types, 15=REAPER notation event. For all other meta-messages, type is returned as -2 and msg returned as all zeroes. See MIDI_GetEvt. 4525 4526 bool (*MIDI_GetTextSysexEvt)(MediaItem_Take* take, int textsyxevtidx, bool* selectedOutOptional, bool* mutedOutOptional, double* ppqposOutOptional, int* typeOutOptional, char* msgOptional, int* msgOptional_sz); 4527 #endif 4528 4529 #if defined(REAPERAPI_WANT_MIDI_GetTrackHash) || !defined(REAPERAPI_MINIMAL) 4530 REAPERAPI_DEF //============================================== 4531 // MIDI_GetTrackHash 4532 // Get a string that only changes when the MIDI data changes. If notesonly==true, then the string changes only when the MIDI notes change. See MIDI_GetHash 4533 4534 bool (*MIDI_GetTrackHash)(MediaTrack* track, bool notesonly, char* hashOut, int hashOut_sz); 4535 #endif 4536 4537 #if defined(REAPERAPI_WANT_midi_init) || !defined(REAPERAPI_MINIMAL) 4538 REAPERAPI_DEF //============================================== 4539 // midi_init 4540 // Opens MIDI devices as configured in preferences. force_reinit_input and force_reinit_output force a particular device index to close/re-open (pass -1 to not force any devices to reopen). 4541 4542 void (*midi_init)(int force_reinit_input, int force_reinit_output); 4543 #endif 4544 4545 #if defined(REAPERAPI_WANT_MIDI_InsertCC) || !defined(REAPERAPI_MINIMAL) 4546 REAPERAPI_DEF //============================================== 4547 // MIDI_InsertCC 4548 // Insert a new MIDI CC event. 4549 4550 bool (*MIDI_InsertCC)(MediaItem_Take* take, bool selected, bool muted, double ppqpos, int chanmsg, int chan, int msg2, int msg3); 4551 #endif 4552 4553 #if defined(REAPERAPI_WANT_MIDI_InsertEvt) || !defined(REAPERAPI_MINIMAL) 4554 REAPERAPI_DEF //============================================== 4555 // MIDI_InsertEvt 4556 // Insert a new MIDI event. 4557 4558 bool (*MIDI_InsertEvt)(MediaItem_Take* take, bool selected, bool muted, double ppqpos, const char* bytestr, int bytestr_sz); 4559 #endif 4560 4561 #if defined(REAPERAPI_WANT_MIDI_InsertNote) || !defined(REAPERAPI_MINIMAL) 4562 REAPERAPI_DEF //============================================== 4563 // MIDI_InsertNote 4564 // Insert a new MIDI note. Set noSort if inserting multiple events, then call MIDI_Sort when done. 4565 4566 bool (*MIDI_InsertNote)(MediaItem_Take* take, bool selected, bool muted, double startppqpos, double endppqpos, int chan, int pitch, int vel, const bool* noSortInOptional); 4567 #endif 4568 4569 #if defined(REAPERAPI_WANT_MIDI_InsertTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 4570 REAPERAPI_DEF //============================================== 4571 // MIDI_InsertTextSysexEvt 4572 // Insert a new MIDI text or sysex event. Allowable types are -1:sysex (msg should not include bounding F0..F7), 1-14:MIDI text event types, 15=REAPER notation event. 4573 4574 bool (*MIDI_InsertTextSysexEvt)(MediaItem_Take* take, bool selected, bool muted, double ppqpos, int type, const char* bytestr, int bytestr_sz); 4575 #endif 4576 4577 #if defined(REAPERAPI_WANT_midi_reinit) || !defined(REAPERAPI_MINIMAL) 4578 REAPERAPI_DEF //============================================== 4579 // midi_reinit 4580 // Reset (close and re-open) all MIDI devices 4581 4582 void (*midi_reinit)(); 4583 #endif 4584 4585 #if defined(REAPERAPI_WANT_MIDI_SelectAll) || !defined(REAPERAPI_MINIMAL) 4586 REAPERAPI_DEF //============================================== 4587 // MIDI_SelectAll 4588 // Select or deselect all MIDI content. 4589 4590 void (*MIDI_SelectAll)(MediaItem_Take* take, bool select); 4591 #endif 4592 4593 #if defined(REAPERAPI_WANT_MIDI_SetAllEvts) || !defined(REAPERAPI_MINIMAL) 4594 REAPERAPI_DEF //============================================== 4595 // MIDI_SetAllEvts 4596 // Set all MIDI data. MIDI buffer is passed in as a list of { int offset, char flag, int msglen, unsigned char msg[] }. 4597 // offset: MIDI ticks from previous event 4598 // flag: &1=selected &2=muted 4599 // flag high 4 bits for CC shape: &16=linear, &32=slow start/end, &16|32=fast start, &64=fast end, &64|16=bezier 4600 // msg: the MIDI message. 4601 // A meta-event of type 0xF followed by 'CCBZ ' and 5 more bytes represents bezier curve data for the previous MIDI event: 1 byte for the bezier type (usually 0) and 4 bytes for the bezier tension as a float. 4602 // For tick intervals longer than a 32 bit word can represent, zero-length meta events may be placed between valid events. 4603 // See MIDI_GetAllEvts. 4604 4605 bool (*MIDI_SetAllEvts)(MediaItem_Take* take, const char* buf, int buf_sz); 4606 #endif 4607 4608 #if defined(REAPERAPI_WANT_MIDI_SetCC) || !defined(REAPERAPI_MINIMAL) 4609 REAPERAPI_DEF //============================================== 4610 // MIDI_SetCC 4611 // Set MIDI CC event properties. Properties passed as NULL will not be set. set noSort if setting multiple events, then call MIDI_Sort when done. 4612 4613 bool (*MIDI_SetCC)(MediaItem_Take* take, int ccidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* ppqposInOptional, const int* chanmsgInOptional, const int* chanInOptional, const int* msg2InOptional, const int* msg3InOptional, const bool* noSortInOptional); 4614 #endif 4615 4616 #if defined(REAPERAPI_WANT_MIDI_SetCCShape) || !defined(REAPERAPI_MINIMAL) 4617 REAPERAPI_DEF //============================================== 4618 // MIDI_SetCCShape 4619 // Set CC shape and bezier tension. set noSort if setting multiple events, then call MIDI_Sort when done. See MIDI_SetCC, MIDI_GetCCShape 4620 4621 bool (*MIDI_SetCCShape)(MediaItem_Take* take, int ccidx, int shape, double beztension, const bool* noSortInOptional); 4622 #endif 4623 4624 #if defined(REAPERAPI_WANT_MIDI_SetEvt) || !defined(REAPERAPI_MINIMAL) 4625 REAPERAPI_DEF //============================================== 4626 // MIDI_SetEvt 4627 // Set MIDI event properties. Properties passed as NULL will not be set. set noSort if setting multiple events, then call MIDI_Sort when done. 4628 4629 bool (*MIDI_SetEvt)(MediaItem_Take* take, int evtidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* ppqposInOptional, const char* msgOptional, int msgOptional_sz, const bool* noSortInOptional); 4630 #endif 4631 4632 #if defined(REAPERAPI_WANT_MIDI_SetItemExtents) || !defined(REAPERAPI_MINIMAL) 4633 REAPERAPI_DEF //============================================== 4634 // MIDI_SetItemExtents 4635 // Set the start/end positions of a media item that contains a MIDI take. 4636 4637 bool (*MIDI_SetItemExtents)(MediaItem* item, double startQN, double endQN); 4638 #endif 4639 4640 #if defined(REAPERAPI_WANT_MIDI_SetNote) || !defined(REAPERAPI_MINIMAL) 4641 REAPERAPI_DEF //============================================== 4642 // MIDI_SetNote 4643 // Set MIDI note properties. Properties passed as NULL (or negative values) will not be set. Set noSort if setting multiple events, then call MIDI_Sort when done. Setting multiple note start positions at once is done more safely by deleting and re-inserting the notes. 4644 4645 bool (*MIDI_SetNote)(MediaItem_Take* take, int noteidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* startppqposInOptional, const double* endppqposInOptional, const int* chanInOptional, const int* pitchInOptional, const int* velInOptional, const bool* noSortInOptional); 4646 #endif 4647 4648 #if defined(REAPERAPI_WANT_MIDI_SetTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 4649 REAPERAPI_DEF //============================================== 4650 // MIDI_SetTextSysexEvt 4651 // Set MIDI text or sysex event properties. Properties passed as NULL will not be set. Allowable types are -1:sysex (msg should not include bounding F0..F7), 1-14:MIDI text event types, 15=REAPER notation event. set noSort if setting multiple events, then call MIDI_Sort when done. 4652 4653 bool (*MIDI_SetTextSysexEvt)(MediaItem_Take* take, int textsyxevtidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* ppqposInOptional, const int* typeInOptional, const char* msgOptional, int msgOptional_sz, const bool* noSortInOptional); 4654 #endif 4655 4656 #if defined(REAPERAPI_WANT_MIDI_Sort) || !defined(REAPERAPI_MINIMAL) 4657 REAPERAPI_DEF //============================================== 4658 // MIDI_Sort 4659 // Sort MIDI events after multiple calls to MIDI_SetNote, MIDI_SetCC, etc. 4660 4661 void (*MIDI_Sort)(MediaItem_Take* take); 4662 #endif 4663 4664 #if defined(REAPERAPI_WANT_MIDIEditor_EnumTakes) || !defined(REAPERAPI_MINIMAL) 4665 REAPERAPI_DEF //============================================== 4666 // MIDIEditor_EnumTakes 4667 // list the takes that are currently being edited in this MIDI editor, starting with the active take. See MIDIEditor_GetTake 4668 4669 MediaItem_Take* (*MIDIEditor_EnumTakes)(HWND midieditor, int takeindex, bool editable_only); 4670 #endif 4671 4672 #if defined(REAPERAPI_WANT_MIDIEditor_GetActive) || !defined(REAPERAPI_MINIMAL) 4673 REAPERAPI_DEF //============================================== 4674 // MIDIEditor_GetActive 4675 // get a pointer to the focused MIDI editor window 4676 // see MIDIEditor_GetMode, MIDIEditor_OnCommand 4677 4678 HWND (*MIDIEditor_GetActive)(); 4679 #endif 4680 4681 #if defined(REAPERAPI_WANT_MIDIEditor_GetMode) || !defined(REAPERAPI_MINIMAL) 4682 REAPERAPI_DEF //============================================== 4683 // MIDIEditor_GetMode 4684 // get the mode of a MIDI editor (0=piano roll, 1=event list, -1=invalid editor) 4685 // see MIDIEditor_GetActive, MIDIEditor_OnCommand 4686 4687 int (*MIDIEditor_GetMode)(HWND midieditor); 4688 #endif 4689 4690 #if defined(REAPERAPI_WANT_MIDIEditor_GetSetting_int) || !defined(REAPERAPI_MINIMAL) 4691 REAPERAPI_DEF //============================================== 4692 // MIDIEditor_GetSetting_int 4693 // Get settings from a MIDI editor. setting_desc can be: 4694 // snap_enabled: returns 0 or 1 4695 // active_note_row: returns 0-127 4696 // last_clicked_cc_lane: returns 0-127=CC, 0x100|(0-31)=14-bit CC, 0x200=velocity, 0x201=pitch, 0x202=program, 0x203=channel pressure, 0x204=bank/program select, 0x205=text, 0x206=sysex, 0x207=off velocity, 0x208=notation events, 0x210=media item lane 4697 // default_note_vel: returns 0-127 4698 // default_note_chan: returns 0-15 4699 // default_note_len: returns default length in MIDI ticks 4700 // scale_enabled: returns 0-1 4701 // scale_root: returns 0-12 (0=C) 4702 // list_cnt: if viewing list view, returns event count 4703 // if setting_desc is unsupported, the function returns -1. 4704 // See MIDIEditor_SetSetting_int, MIDIEditor_GetActive, MIDIEditor_GetSetting_str 4705 // 4706 4707 int (*MIDIEditor_GetSetting_int)(HWND midieditor, const char* setting_desc); 4708 #endif 4709 4710 #if defined(REAPERAPI_WANT_MIDIEditor_GetSetting_str) || !defined(REAPERAPI_MINIMAL) 4711 REAPERAPI_DEF //============================================== 4712 // MIDIEditor_GetSetting_str 4713 // Get settings from a MIDI editor. setting_desc can be: 4714 // last_clicked_cc_lane: returns text description ("velocity", "pitch", etc) 4715 // scale: returns the scale record, for example "102034050607" for a major scale 4716 // list_X: if viewing list view, returns string describing event at row X (0-based). String will have a list of key=value pairs, e.g. 'pos=4.0 len=4.0 offvel=127 msg=90317F'. pos/len times are in QN, len/offvel may not be present if event is not a note. other keys which may be present include pos_pq/len_pq, sel, mute, ccval14, ccshape, ccbeztension. 4717 // if setting_desc is unsupported, the function returns false. 4718 // See MIDIEditor_GetActive, MIDIEditor_GetSetting_int 4719 // 4720 4721 bool (*MIDIEditor_GetSetting_str)(HWND midieditor, const char* setting_desc, char* bufOut, int bufOut_sz); 4722 #endif 4723 4724 #if defined(REAPERAPI_WANT_MIDIEditor_GetTake) || !defined(REAPERAPI_MINIMAL) 4725 REAPERAPI_DEF //============================================== 4726 // MIDIEditor_GetTake 4727 // get the take that is currently being edited in this MIDI editor. see MIDIEditor_EnumTakes 4728 4729 MediaItem_Take* (*MIDIEditor_GetTake)(HWND midieditor); 4730 #endif 4731 4732 #if defined(REAPERAPI_WANT_MIDIEditor_LastFocused_OnCommand) || !defined(REAPERAPI_MINIMAL) 4733 REAPERAPI_DEF //============================================== 4734 // MIDIEditor_LastFocused_OnCommand 4735 // Send an action command to the last focused MIDI editor. Returns false if there is no MIDI editor open, or if the view mode (piano roll or event list) does not match the input. 4736 // see MIDIEditor_OnCommand 4737 4738 bool (*MIDIEditor_LastFocused_OnCommand)(int command_id, bool islistviewcommand); 4739 #endif 4740 4741 #if defined(REAPERAPI_WANT_MIDIEditor_OnCommand) || !defined(REAPERAPI_MINIMAL) 4742 REAPERAPI_DEF //============================================== 4743 // MIDIEditor_OnCommand 4744 // Send an action command to a MIDI editor. Returns false if the supplied MIDI editor pointer is not valid (not an open MIDI editor). 4745 // see MIDIEditor_GetActive, MIDIEditor_LastFocused_OnCommand 4746 4747 bool (*MIDIEditor_OnCommand)(HWND midieditor, int command_id); 4748 #endif 4749 4750 #if defined(REAPERAPI_WANT_MIDIEditor_SetSetting_int) || !defined(REAPERAPI_MINIMAL) 4751 REAPERAPI_DEF //============================================== 4752 // MIDIEditor_SetSetting_int 4753 // Set settings for a MIDI editor. setting_desc can be: 4754 // active_note_row: 0-127 4755 // See MIDIEditor_GetSetting_int 4756 // 4757 4758 bool (*MIDIEditor_SetSetting_int)(HWND midieditor, const char* setting_desc, int setting); 4759 #endif 4760 4761 #if defined(REAPERAPI_WANT_mkpanstr) || !defined(REAPERAPI_MINIMAL) 4762 REAPERAPI_DEF //============================================== 4763 // mkpanstr 4764 4765 void (*mkpanstr)(char* strNeed64, double pan); 4766 #endif 4767 4768 #if defined(REAPERAPI_WANT_mkvolpanstr) || !defined(REAPERAPI_MINIMAL) 4769 REAPERAPI_DEF //============================================== 4770 // mkvolpanstr 4771 4772 void (*mkvolpanstr)(char* strNeed64, double vol, double pan); 4773 #endif 4774 4775 #if defined(REAPERAPI_WANT_mkvolstr) || !defined(REAPERAPI_MINIMAL) 4776 REAPERAPI_DEF //============================================== 4777 // mkvolstr 4778 4779 void (*mkvolstr)(char* strNeed64, double vol); 4780 #endif 4781 4782 #if defined(REAPERAPI_WANT_MoveEditCursor) || !defined(REAPERAPI_MINIMAL) 4783 REAPERAPI_DEF //============================================== 4784 // MoveEditCursor 4785 4786 void (*MoveEditCursor)(double adjamt, bool dosel); 4787 #endif 4788 4789 #if defined(REAPERAPI_WANT_MoveMediaItemToTrack) || !defined(REAPERAPI_MINIMAL) 4790 REAPERAPI_DEF //============================================== 4791 // MoveMediaItemToTrack 4792 // returns TRUE if move succeeded 4793 4794 bool (*MoveMediaItemToTrack)(MediaItem* item, MediaTrack* desttr); 4795 #endif 4796 4797 #if defined(REAPERAPI_WANT_MuteAllTracks) || !defined(REAPERAPI_MINIMAL) 4798 REAPERAPI_DEF //============================================== 4799 // MuteAllTracks 4800 4801 void (*MuteAllTracks)(bool mute); 4802 #endif 4803 4804 #if defined(REAPERAPI_WANT_my_getViewport) || !defined(REAPERAPI_MINIMAL) 4805 REAPERAPI_DEF //============================================== 4806 // my_getViewport 4807 4808 void (*my_getViewport)(RECT* r, const RECT* sr, bool wantWorkArea); 4809 #endif 4810 4811 #if defined(REAPERAPI_WANT_NamedCommandLookup) || !defined(REAPERAPI_MINIMAL) 4812 REAPERAPI_DEF //============================================== 4813 // NamedCommandLookup 4814 // Get the command ID number for named command that was registered by an extension such as "_SWS_ABOUT" or "_113088d11ae641c193a2b7ede3041ad5" for a ReaScript or a custom action. 4815 4816 int (*NamedCommandLookup)(const char* command_name); 4817 #endif 4818 4819 #if defined(REAPERAPI_WANT_OnPauseButton) || !defined(REAPERAPI_MINIMAL) 4820 REAPERAPI_DEF //============================================== 4821 // OnPauseButton 4822 // direct way to simulate pause button hit 4823 4824 void (*OnPauseButton)(); 4825 #endif 4826 4827 #if defined(REAPERAPI_WANT_OnPauseButtonEx) || !defined(REAPERAPI_MINIMAL) 4828 REAPERAPI_DEF //============================================== 4829 // OnPauseButtonEx 4830 // direct way to simulate pause button hit 4831 4832 void (*OnPauseButtonEx)(ReaProject* proj); 4833 #endif 4834 4835 #if defined(REAPERAPI_WANT_OnPlayButton) || !defined(REAPERAPI_MINIMAL) 4836 REAPERAPI_DEF //============================================== 4837 // OnPlayButton 4838 // direct way to simulate play button hit 4839 4840 void (*OnPlayButton)(); 4841 #endif 4842 4843 #if defined(REAPERAPI_WANT_OnPlayButtonEx) || !defined(REAPERAPI_MINIMAL) 4844 REAPERAPI_DEF //============================================== 4845 // OnPlayButtonEx 4846 // direct way to simulate play button hit 4847 4848 void (*OnPlayButtonEx)(ReaProject* proj); 4849 #endif 4850 4851 #if defined(REAPERAPI_WANT_OnStopButton) || !defined(REAPERAPI_MINIMAL) 4852 REAPERAPI_DEF //============================================== 4853 // OnStopButton 4854 // direct way to simulate stop button hit 4855 4856 void (*OnStopButton)(); 4857 #endif 4858 4859 #if defined(REAPERAPI_WANT_OnStopButtonEx) || !defined(REAPERAPI_MINIMAL) 4860 REAPERAPI_DEF //============================================== 4861 // OnStopButtonEx 4862 // direct way to simulate stop button hit 4863 4864 void (*OnStopButtonEx)(ReaProject* proj); 4865 #endif 4866 4867 #if defined(REAPERAPI_WANT_OpenColorThemeFile) || !defined(REAPERAPI_MINIMAL) 4868 REAPERAPI_DEF //============================================== 4869 // OpenColorThemeFile 4870 4871 bool (*OpenColorThemeFile)(const char* fn); 4872 #endif 4873 4874 #if defined(REAPERAPI_WANT_OpenMediaExplorer) || !defined(REAPERAPI_MINIMAL) 4875 REAPERAPI_DEF //============================================== 4876 // OpenMediaExplorer 4877 // Opens mediafn in the Media Explorer, play=true will play the file immediately (or toggle playback if mediafn was already open), =false will just select it. 4878 4879 HWND (*OpenMediaExplorer)(const char* mediafn, bool play); 4880 #endif 4881 4882 #if defined(REAPERAPI_WANT_OscLocalMessageToHost) || !defined(REAPERAPI_MINIMAL) 4883 REAPERAPI_DEF //============================================== 4884 // OscLocalMessageToHost 4885 // Send an OSC message directly to REAPER. The value argument may be NULL. The message will be matched against the default OSC patterns. Only supported if control surface support was enabled when installing REAPER. 4886 4887 void (*OscLocalMessageToHost)(const char* message, const double* valueInOptional); 4888 #endif 4889 4890 #if defined(REAPERAPI_WANT_parse_timestr) || !defined(REAPERAPI_MINIMAL) 4891 REAPERAPI_DEF //============================================== 4892 // parse_timestr 4893 // Parse hh:mm:ss.sss time string, return time in seconds (or 0.0 on error). See parse_timestr_pos, parse_timestr_len. 4894 4895 double (*parse_timestr)(const char* buf); 4896 #endif 4897 4898 #if defined(REAPERAPI_WANT_parse_timestr_len) || !defined(REAPERAPI_MINIMAL) 4899 REAPERAPI_DEF //============================================== 4900 // parse_timestr_len 4901 // time formatting mode overrides: -1=proj default. 4902 // 0=time 4903 // 1=measures.beats + time 4904 // 2=measures.beats 4905 // 3=seconds 4906 // 4=samples 4907 // 5=h:m:s:f 4908 // 4909 4910 double (*parse_timestr_len)(const char* buf, double offset, int modeoverride); 4911 #endif 4912 4913 #if defined(REAPERAPI_WANT_parse_timestr_pos) || !defined(REAPERAPI_MINIMAL) 4914 REAPERAPI_DEF //============================================== 4915 // parse_timestr_pos 4916 // Parse time string, time formatting mode overrides: -1=proj default. 4917 // 0=time 4918 // 1=measures.beats + time 4919 // 2=measures.beats 4920 // 3=seconds 4921 // 4=samples 4922 // 5=h:m:s:f 4923 // 4924 4925 double (*parse_timestr_pos)(const char* buf, int modeoverride); 4926 #endif 4927 4928 #if defined(REAPERAPI_WANT_parsepanstr) || !defined(REAPERAPI_MINIMAL) 4929 REAPERAPI_DEF //============================================== 4930 // parsepanstr 4931 4932 double (*parsepanstr)(const char* str); 4933 #endif 4934 4935 #if defined(REAPERAPI_WANT_PCM_Sink_Create) || !defined(REAPERAPI_MINIMAL) 4936 REAPERAPI_DEF //============================================== 4937 // PCM_Sink_Create 4938 4939 PCM_sink* (*PCM_Sink_Create)(const char* filename, const char* cfg, int cfg_sz, int nch, int srate, bool buildpeaks); 4940 #endif 4941 4942 #if defined(REAPERAPI_WANT_PCM_Sink_CreateEx) || !defined(REAPERAPI_MINIMAL) 4943 REAPERAPI_DEF //============================================== 4944 // PCM_Sink_CreateEx 4945 4946 PCM_sink* (*PCM_Sink_CreateEx)(ReaProject* proj, const char* filename, const char* cfg, int cfg_sz, int nch, int srate, bool buildpeaks); 4947 #endif 4948 4949 #if defined(REAPERAPI_WANT_PCM_Sink_CreateMIDIFile) || !defined(REAPERAPI_MINIMAL) 4950 REAPERAPI_DEF //============================================== 4951 // PCM_Sink_CreateMIDIFile 4952 4953 PCM_sink* (*PCM_Sink_CreateMIDIFile)(const char* filename, const char* cfg, int cfg_sz, double bpm, int div); 4954 #endif 4955 4956 #if defined(REAPERAPI_WANT_PCM_Sink_CreateMIDIFileEx) || !defined(REAPERAPI_MINIMAL) 4957 REAPERAPI_DEF //============================================== 4958 // PCM_Sink_CreateMIDIFileEx 4959 4960 PCM_sink* (*PCM_Sink_CreateMIDIFileEx)(ReaProject* proj, const char* filename, const char* cfg, int cfg_sz, double bpm, int div); 4961 #endif 4962 4963 #if defined(REAPERAPI_WANT_PCM_Sink_Enum) || !defined(REAPERAPI_MINIMAL) 4964 REAPERAPI_DEF //============================================== 4965 // PCM_Sink_Enum 4966 4967 unsigned int (*PCM_Sink_Enum)(int idx, const char** descstrOut); 4968 #endif 4969 4970 #if defined(REAPERAPI_WANT_PCM_Sink_GetExtension) || !defined(REAPERAPI_MINIMAL) 4971 REAPERAPI_DEF //============================================== 4972 // PCM_Sink_GetExtension 4973 4974 const char* (*PCM_Sink_GetExtension)(const char* data, int data_sz); 4975 #endif 4976 4977 #if defined(REAPERAPI_WANT_PCM_Sink_ShowConfig) || !defined(REAPERAPI_MINIMAL) 4978 REAPERAPI_DEF //============================================== 4979 // PCM_Sink_ShowConfig 4980 4981 HWND (*PCM_Sink_ShowConfig)(const char* cfg, int cfg_sz, HWND hwndParent); 4982 #endif 4983 4984 #if defined(REAPERAPI_WANT_PCM_Source_BuildPeaks) || !defined(REAPERAPI_MINIMAL) 4985 REAPERAPI_DEF //============================================== 4986 // PCM_Source_BuildPeaks 4987 // Calls and returns PCM_source::PeaksBuild_Begin() if mode=0, PeaksBuild_Run() if mode=1, and PeaksBuild_Finish() if mode=2. Normal use is to call PCM_Source_BuildPeaks(src,0), and if that returns nonzero, call PCM_Source_BuildPeaks(src,1) periodically until it returns zero (it returns the percentage of the file remaining), then call PCM_Source_BuildPeaks(src,2) to finalize. If PCM_Source_BuildPeaks(src,0) returns zero, then no further action is necessary. 4988 4989 int (*PCM_Source_BuildPeaks)(PCM_source* src, int mode); 4990 #endif 4991 4992 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromFile) || !defined(REAPERAPI_MINIMAL) 4993 REAPERAPI_DEF //============================================== 4994 // PCM_Source_CreateFromFile 4995 // See PCM_Source_CreateFromFileEx. 4996 4997 PCM_source* (*PCM_Source_CreateFromFile)(const char* filename); 4998 #endif 4999 5000 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromFileEx) || !defined(REAPERAPI_MINIMAL) 5001 REAPERAPI_DEF //============================================== 5002 // PCM_Source_CreateFromFileEx 5003 // Create a PCM_source from filename, and override pref of MIDI files being imported as in-project MIDI events. 5004 5005 PCM_source* (*PCM_Source_CreateFromFileEx)(const char* filename, bool forcenoMidiImp); 5006 #endif 5007 5008 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromSimple) || !defined(REAPERAPI_MINIMAL) 5009 REAPERAPI_DEF //============================================== 5010 // PCM_Source_CreateFromSimple 5011 // Creates a PCM_source from a ISimpleMediaDecoder 5012 // (if fn is non-null, it will open the file in dec) 5013 5014 PCM_source* (*PCM_Source_CreateFromSimple)(ISimpleMediaDecoder* dec, const char* fn); 5015 #endif 5016 5017 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromType) || !defined(REAPERAPI_MINIMAL) 5018 REAPERAPI_DEF //============================================== 5019 // PCM_Source_CreateFromType 5020 // Create a PCM_source from a "type" (use this if you're going to load its state via LoadState/ProjectStateContext). 5021 // Valid types include "WAVE", "MIDI", or whatever plug-ins define as well. 5022 5023 PCM_source* (*PCM_Source_CreateFromType)(const char* sourcetype); 5024 #endif 5025 5026 #if defined(REAPERAPI_WANT_PCM_Source_Destroy) || !defined(REAPERAPI_MINIMAL) 5027 REAPERAPI_DEF //============================================== 5028 // PCM_Source_Destroy 5029 // Deletes a PCM_source -- be sure that you remove any project reference before deleting a source 5030 5031 void (*PCM_Source_Destroy)(PCM_source* src); 5032 #endif 5033 5034 #if defined(REAPERAPI_WANT_PCM_Source_GetPeaks) || !defined(REAPERAPI_MINIMAL) 5035 REAPERAPI_DEF //============================================== 5036 // PCM_Source_GetPeaks 5037 // Gets block of peak samples to buf. Note that the peak samples are interleaved, but in two or three blocks (maximums, then minimums, then extra). Return value has 20 bits of returned sample count, then 4 bits of output_mode (0xf00000), then a bit to signify whether extra_type was available (0x1000000). extra_type can be 115 ('s') for spectral information, which will return peak samples as integers with the low 15 bits frequency, next 14 bits tonality. 5038 5039 int (*PCM_Source_GetPeaks)(PCM_source* src, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf); 5040 #endif 5041 5042 #if defined(REAPERAPI_WANT_PCM_Source_GetSectionInfo) || !defined(REAPERAPI_MINIMAL) 5043 REAPERAPI_DEF //============================================== 5044 // PCM_Source_GetSectionInfo 5045 // If a section/reverse block, retrieves offset/len/reverse. return true if success 5046 5047 bool (*PCM_Source_GetSectionInfo)(PCM_source* src, double* offsOut, double* lenOut, bool* revOut); 5048 #endif 5049 5050 #if defined(REAPERAPI_WANT_PeakBuild_Create) || !defined(REAPERAPI_MINIMAL) 5051 REAPERAPI_DEF //============================================== 5052 // PeakBuild_Create 5053 5054 REAPER_PeakBuild_Interface* (*PeakBuild_Create)(PCM_source* src, const char* fn, int srate, int nch); 5055 #endif 5056 5057 #if defined(REAPERAPI_WANT_PeakBuild_CreateEx) || !defined(REAPERAPI_MINIMAL) 5058 REAPERAPI_DEF //============================================== 5059 // PeakBuild_CreateEx 5060 // flags&1 for FP support 5061 5062 REAPER_PeakBuild_Interface* (*PeakBuild_CreateEx)(PCM_source* src, const char* fn, int srate, int nch, int flags); 5063 #endif 5064 5065 #if defined(REAPERAPI_WANT_PeakGet_Create) || !defined(REAPERAPI_MINIMAL) 5066 REAPERAPI_DEF //============================================== 5067 // PeakGet_Create 5068 5069 REAPER_PeakGet_Interface* (*PeakGet_Create)(const char* fn, int srate, int nch); 5070 #endif 5071 5072 #if defined(REAPERAPI_WANT_PitchShiftSubModeMenu) || !defined(REAPERAPI_MINIMAL) 5073 REAPERAPI_DEF //============================================== 5074 // PitchShiftSubModeMenu 5075 // menu to select/modify pitch shifter submode, returns new value (or old value if no item selected) 5076 5077 int (*PitchShiftSubModeMenu)(HWND hwnd, int x, int y, int mode, int submode_sel); 5078 #endif 5079 5080 #if defined(REAPERAPI_WANT_PlayPreview) || !defined(REAPERAPI_MINIMAL) 5081 REAPERAPI_DEF //============================================== 5082 // PlayPreview 5083 // return nonzero on success 5084 5085 int (*PlayPreview)(preview_register_t* preview); 5086 #endif 5087 5088 #if defined(REAPERAPI_WANT_PlayPreviewEx) || !defined(REAPERAPI_MINIMAL) 5089 REAPERAPI_DEF //============================================== 5090 // PlayPreviewEx 5091 // return nonzero on success. bufflags &1=buffer source, &2=treat length changes in source as varispeed and adjust internal state accordingly if buffering. measure_align<0=play immediately, >0=align playback with measure start 5092 5093 int (*PlayPreviewEx)(preview_register_t* preview, int bufflags, double measure_align); 5094 #endif 5095 5096 #if defined(REAPERAPI_WANT_PlayTrackPreview) || !defined(REAPERAPI_MINIMAL) 5097 REAPERAPI_DEF //============================================== 5098 // PlayTrackPreview 5099 // return nonzero on success,in these,m_out_chan is a track index (0-n) 5100 5101 int (*PlayTrackPreview)(preview_register_t* preview); 5102 #endif 5103 5104 #if defined(REAPERAPI_WANT_PlayTrackPreview2) || !defined(REAPERAPI_MINIMAL) 5105 REAPERAPI_DEF //============================================== 5106 // PlayTrackPreview2 5107 // return nonzero on success,in these,m_out_chan is a track index (0-n) 5108 5109 int (*PlayTrackPreview2)(ReaProject* proj, preview_register_t* preview); 5110 #endif 5111 5112 #if defined(REAPERAPI_WANT_PlayTrackPreview2Ex) || !defined(REAPERAPI_MINIMAL) 5113 REAPERAPI_DEF //============================================== 5114 // PlayTrackPreview2Ex 5115 // return nonzero on success,in these,m_out_chan is a track index (0-n). see PlayPreviewEx 5116 5117 int (*PlayTrackPreview2Ex)(ReaProject* proj, preview_register_t* preview, int flags, double measure_align); 5118 #endif 5119 5120 #if defined(REAPERAPI_WANT_plugin_getapi) || !defined(REAPERAPI_MINIMAL) 5121 REAPERAPI_DEF //============================================== 5122 // plugin_getapi 5123 5124 void* (*plugin_getapi)(const char* name); 5125 #endif 5126 5127 #if defined(REAPERAPI_WANT_plugin_getFilterList) || !defined(REAPERAPI_MINIMAL) 5128 REAPERAPI_DEF //============================================== 5129 // plugin_getFilterList 5130 // Returns a double-NULL terminated list of importable media files, suitable for passing to GetOpenFileName() etc. Includes *.* (All files). 5131 5132 const char* (*plugin_getFilterList)(); 5133 #endif 5134 5135 #if defined(REAPERAPI_WANT_plugin_getImportableProjectFilterList) || !defined(REAPERAPI_MINIMAL) 5136 REAPERAPI_DEF //============================================== 5137 // plugin_getImportableProjectFilterList 5138 // Returns a double-NULL terminated list of importable project files, suitable for passing to GetOpenFileName() etc. Includes *.* (All files). 5139 5140 const char* (*plugin_getImportableProjectFilterList)(); 5141 #endif 5142 5143 #if defined(REAPERAPI_WANT_plugin_register) || !defined(REAPERAPI_MINIMAL) 5144 REAPERAPI_DEF //============================================== 5145 // plugin_register 5146 // Alias for reaper_plugin_info_t::Register, see reaper_plugin.h for documented uses. 5147 5148 int (*plugin_register)(const char* name, void* infostruct); 5149 #endif 5150 5151 #if defined(REAPERAPI_WANT_PluginWantsAlwaysRunFx) || !defined(REAPERAPI_MINIMAL) 5152 REAPERAPI_DEF //============================================== 5153 // PluginWantsAlwaysRunFx 5154 5155 void (*PluginWantsAlwaysRunFx)(int amt); 5156 #endif 5157 5158 #if defined(REAPERAPI_WANT_PreventUIRefresh) || !defined(REAPERAPI_MINIMAL) 5159 REAPERAPI_DEF //============================================== 5160 // PreventUIRefresh 5161 // adds prevent_count to the UI refresh prevention state; always add then remove the same amount, or major disfunction will occur 5162 5163 void (*PreventUIRefresh)(int prevent_count); 5164 #endif 5165 5166 #if defined(REAPERAPI_WANT_projectconfig_var_addr) || !defined(REAPERAPI_MINIMAL) 5167 REAPERAPI_DEF //============================================== 5168 // projectconfig_var_addr 5169 5170 void* (*projectconfig_var_addr)(ReaProject* proj, int idx); 5171 #endif 5172 5173 #if defined(REAPERAPI_WANT_projectconfig_var_getoffs) || !defined(REAPERAPI_MINIMAL) 5174 REAPERAPI_DEF //============================================== 5175 // projectconfig_var_getoffs 5176 // returns offset to pass to projectconfig_var_addr() to get project-config var of name. szout gets size of object. 5177 5178 int (*projectconfig_var_getoffs)(const char* name, int* szOut); 5179 #endif 5180 5181 #if defined(REAPERAPI_WANT_PromptForAction) || !defined(REAPERAPI_MINIMAL) 5182 REAPERAPI_DEF //============================================== 5183 // PromptForAction 5184 // Uses the action list to choose an action. Call with session_mode=1 to create a session (init_id will be the initial action to select, or 0), then poll with session_mode=0, checking return value for user-selected action (will return 0 if no action selected yet, or -1 if the action window is no longer available). When finished, call with session_mode=-1. 5185 5186 int (*PromptForAction)(int session_mode, int init_id, int section_id); 5187 #endif 5188 5189 #if defined(REAPERAPI_WANT_realloc_cmd_clear) || !defined(REAPERAPI_MINIMAL) 5190 REAPERAPI_DEF //============================================== 5191 // realloc_cmd_clear 5192 // clears a buffer/buffer-size registration added with realloc_cmd_register_buf, and clears any later registrations, frees any allocated buffers. call after values are read from any registered pointers etc. 5193 5194 void (*realloc_cmd_clear)(int tok); 5195 #endif 5196 5197 #if defined(REAPERAPI_WANT_realloc_cmd_ptr) || !defined(REAPERAPI_MINIMAL) 5198 REAPERAPI_DEF //============================================== 5199 // realloc_cmd_ptr 5200 // special use for NeedBig script API functions - reallocates a NeedBig buffer and updates its size, returns false on error 5201 5202 bool (*realloc_cmd_ptr)(char** ptr, int* ptr_size, int new_size); 5203 #endif 5204 5205 #if defined(REAPERAPI_WANT_realloc_cmd_register_buf) || !defined(REAPERAPI_MINIMAL) 5206 REAPERAPI_DEF //============================================== 5207 // realloc_cmd_register_buf 5208 // registers a buffer/buffer-size which may be reallocated by an API (ptr/ptr_size will be updated to the new values). returns a token which should be passed to realloc_cmd_clear after API call and values are read. 5209 5210 int (*realloc_cmd_register_buf)(char** ptr, int* ptr_size); 5211 #endif 5212 5213 #if defined(REAPERAPI_WANT_ReaperGetPitchShiftAPI) || !defined(REAPERAPI_MINIMAL) 5214 REAPERAPI_DEF //============================================== 5215 // ReaperGetPitchShiftAPI 5216 // version must be REAPER_PITCHSHIFT_API_VER 5217 5218 IReaperPitchShift* (*ReaperGetPitchShiftAPI)(int version); 5219 #endif 5220 5221 #if defined(REAPERAPI_WANT_ReaScriptError) || !defined(REAPERAPI_MINIMAL) 5222 REAPERAPI_DEF //============================================== 5223 // ReaScriptError 5224 // Causes REAPER to display the error message after the current ReaScript finishes. If called within a Lua context and errmsg has a ! prefix, script execution will be terminated. 5225 5226 void (*ReaScriptError)(const char* errmsg); 5227 #endif 5228 5229 #if defined(REAPERAPI_WANT_RecursiveCreateDirectory) || !defined(REAPERAPI_MINIMAL) 5230 REAPERAPI_DEF //============================================== 5231 // RecursiveCreateDirectory 5232 // returns positive value on success, 0 on failure. 5233 5234 int (*RecursiveCreateDirectory)(const char* path, size_t ignored); 5235 #endif 5236 5237 #if defined(REAPERAPI_WANT_reduce_open_files) || !defined(REAPERAPI_MINIMAL) 5238 REAPERAPI_DEF //============================================== 5239 // reduce_open_files 5240 // garbage-collects extra open files and closes them. if flags has 1 set, this is done incrementally (call this from a regular timer, if desired). if flags has 2 set, files are aggressively closed (they may need to be re-opened very soon). returns number of files closed by this call. 5241 5242 int (*reduce_open_files)(int flags); 5243 #endif 5244 5245 #if defined(REAPERAPI_WANT_RefreshToolbar) || !defined(REAPERAPI_MINIMAL) 5246 REAPERAPI_DEF //============================================== 5247 // RefreshToolbar 5248 // See RefreshToolbar2. 5249 5250 void (*RefreshToolbar)(int command_id); 5251 #endif 5252 5253 #if defined(REAPERAPI_WANT_RefreshToolbar2) || !defined(REAPERAPI_MINIMAL) 5254 REAPERAPI_DEF //============================================== 5255 // RefreshToolbar2 5256 // Refresh the toolbar button states of a toggle action. 5257 5258 void (*RefreshToolbar2)(int section_id, int command_id); 5259 #endif 5260 5261 #if defined(REAPERAPI_WANT_relative_fn) || !defined(REAPERAPI_MINIMAL) 5262 REAPERAPI_DEF //============================================== 5263 // relative_fn 5264 // Makes a filename "in" relative to the current project, if any. 5265 5266 void (*relative_fn)(const char* in, char* out, int out_sz); 5267 #endif 5268 5269 #if defined(REAPERAPI_WANT_RemoveTrackSend) || !defined(REAPERAPI_MINIMAL) 5270 REAPERAPI_DEF //============================================== 5271 // RemoveTrackSend 5272 // Remove a send/receive/hardware output, return true on success. category is <0 for receives, 0=sends, >0 for hardware outputs. See CreateTrackSend, GetSetTrackSendInfo, GetTrackSendInfo_Value, SetTrackSendInfo_Value, GetTrackNumSends. 5273 5274 bool (*RemoveTrackSend)(MediaTrack* tr, int category, int sendidx); 5275 #endif 5276 5277 #if defined(REAPERAPI_WANT_RenderFileSection) || !defined(REAPERAPI_MINIMAL) 5278 REAPERAPI_DEF //============================================== 5279 // RenderFileSection 5280 // Not available while playing back. 5281 5282 bool (*RenderFileSection)(const char* source_filename, const char* target_filename, double start_percent, double end_percent, double playrate); 5283 #endif 5284 5285 #if defined(REAPERAPI_WANT_ReorderSelectedTracks) || !defined(REAPERAPI_MINIMAL) 5286 REAPERAPI_DEF //============================================== 5287 // ReorderSelectedTracks 5288 // Moves all selected tracks to immediately above track specified by index beforeTrackIdx, returns false if no tracks were selected. makePrevFolder=0 for normal, 1 = as child of track preceding track specified by beforeTrackIdx, 2 = if track preceding track specified by beforeTrackIdx is last track in folder, extend folder 5289 5290 bool (*ReorderSelectedTracks)(int beforeTrackIdx, int makePrevFolder); 5291 #endif 5292 5293 #if defined(REAPERAPI_WANT_Resample_EnumModes) || !defined(REAPERAPI_MINIMAL) 5294 REAPERAPI_DEF //============================================== 5295 // Resample_EnumModes 5296 5297 const char* (*Resample_EnumModes)(int mode); 5298 #endif 5299 5300 #if defined(REAPERAPI_WANT_Resampler_Create) || !defined(REAPERAPI_MINIMAL) 5301 REAPERAPI_DEF //============================================== 5302 // Resampler_Create 5303 5304 REAPER_Resample_Interface* (*Resampler_Create)(); 5305 #endif 5306 5307 #if defined(REAPERAPI_WANT_resolve_fn) || !defined(REAPERAPI_MINIMAL) 5308 REAPERAPI_DEF //============================================== 5309 // resolve_fn 5310 // See resolve_fn2. 5311 5312 void (*resolve_fn)(const char* in, char* out, int out_sz); 5313 #endif 5314 5315 #if defined(REAPERAPI_WANT_resolve_fn2) || !defined(REAPERAPI_MINIMAL) 5316 REAPERAPI_DEF //============================================== 5317 // resolve_fn2 5318 // Resolves a filename "in" by using project settings etc. If no file found, out will be a copy of in. 5319 5320 void (*resolve_fn2)(const char* in, char* out, int out_sz, const char* checkSubDirOptional); 5321 #endif 5322 5323 #if defined(REAPERAPI_WANT_ResolveRenderPattern) || !defined(REAPERAPI_MINIMAL) 5324 REAPERAPI_DEF //============================================== 5325 // ResolveRenderPattern 5326 // Resolve a wildcard pattern into a set of nul-separated, double-nul terminated render target filenames. Returns the length of the string buffer needed for the returned file list. Call with path=NULL to suppress filtering out illegal pathnames, call with targets=NULL to get just the string buffer length. 5327 5328 int (*ResolveRenderPattern)(ReaProject* project, const char* path, const char* pattern, char* targets, int targets_sz); 5329 #endif 5330 5331 #if defined(REAPERAPI_WANT_ReverseNamedCommandLookup) || !defined(REAPERAPI_MINIMAL) 5332 REAPERAPI_DEF //============================================== 5333 // ReverseNamedCommandLookup 5334 // Get the named command for the given command ID. The returned string will not start with '_' (e.g. it will return "SWS_ABOUT"), it will be NULL if command_id is a native action. 5335 5336 const char* (*ReverseNamedCommandLookup)(int command_id); 5337 #endif 5338 5339 #if defined(REAPERAPI_WANT_ScaleFromEnvelopeMode) || !defined(REAPERAPI_MINIMAL) 5340 REAPERAPI_DEF //============================================== 5341 // ScaleFromEnvelopeMode 5342 // See GetEnvelopeScalingMode. 5343 5344 double (*ScaleFromEnvelopeMode)(int scaling_mode, double val); 5345 #endif 5346 5347 #if defined(REAPERAPI_WANT_ScaleToEnvelopeMode) || !defined(REAPERAPI_MINIMAL) 5348 REAPERAPI_DEF //============================================== 5349 // ScaleToEnvelopeMode 5350 // See GetEnvelopeScalingMode. 5351 5352 double (*ScaleToEnvelopeMode)(int scaling_mode, double val); 5353 #endif 5354 5355 #if defined(REAPERAPI_WANT_screenset_register) || !defined(REAPERAPI_MINIMAL) 5356 REAPERAPI_DEF //============================================== 5357 // screenset_register 5358 5359 void (*screenset_register)(char* id, void* callbackFunc, void* param); 5360 #endif 5361 5362 #if defined(REAPERAPI_WANT_screenset_registerNew) || !defined(REAPERAPI_MINIMAL) 5363 REAPERAPI_DEF //============================================== 5364 // screenset_registerNew 5365 5366 void (*screenset_registerNew)(char* id, screensetNewCallbackFunc callbackFunc, void* param); 5367 #endif 5368 5369 #if defined(REAPERAPI_WANT_screenset_unregister) || !defined(REAPERAPI_MINIMAL) 5370 REAPERAPI_DEF //============================================== 5371 // screenset_unregister 5372 5373 void (*screenset_unregister)(char* id); 5374 #endif 5375 5376 #if defined(REAPERAPI_WANT_screenset_unregisterByParam) || !defined(REAPERAPI_MINIMAL) 5377 REAPERAPI_DEF //============================================== 5378 // screenset_unregisterByParam 5379 5380 void (*screenset_unregisterByParam)(void* param); 5381 #endif 5382 5383 #if defined(REAPERAPI_WANT_screenset_updateLastFocus) || !defined(REAPERAPI_MINIMAL) 5384 REAPERAPI_DEF //============================================== 5385 // screenset_updateLastFocus 5386 5387 void (*screenset_updateLastFocus)(HWND prevWin); 5388 #endif 5389 5390 #if defined(REAPERAPI_WANT_SectionFromUniqueID) || !defined(REAPERAPI_MINIMAL) 5391 REAPERAPI_DEF //============================================== 5392 // SectionFromUniqueID 5393 5394 KbdSectionInfo* (*SectionFromUniqueID)(int uniqueID); 5395 #endif 5396 5397 #if defined(REAPERAPI_WANT_SelectAllMediaItems) || !defined(REAPERAPI_MINIMAL) 5398 REAPERAPI_DEF //============================================== 5399 // SelectAllMediaItems 5400 5401 void (*SelectAllMediaItems)(ReaProject* proj, bool selected); 5402 #endif 5403 5404 #if defined(REAPERAPI_WANT_SelectProjectInstance) || !defined(REAPERAPI_MINIMAL) 5405 REAPERAPI_DEF //============================================== 5406 // SelectProjectInstance 5407 5408 void (*SelectProjectInstance)(ReaProject* proj); 5409 #endif 5410 5411 #if defined(REAPERAPI_WANT_SendLocalOscMessage) || !defined(REAPERAPI_MINIMAL) 5412 REAPERAPI_DEF //============================================== 5413 // SendLocalOscMessage 5414 // Send an OSC message to REAPER. See CreateLocalOscHandler, DestroyLocalOscHandler. 5415 5416 void (*SendLocalOscMessage)(void* local_osc_handler, const char* msg, int msglen); 5417 #endif 5418 5419 #if defined(REAPERAPI_WANT_SetActiveTake) || !defined(REAPERAPI_MINIMAL) 5420 REAPERAPI_DEF //============================================== 5421 // SetActiveTake 5422 // set this take active in this media item 5423 5424 void (*SetActiveTake)(MediaItem_Take* take); 5425 #endif 5426 5427 #if defined(REAPERAPI_WANT_SetAutomationMode) || !defined(REAPERAPI_MINIMAL) 5428 REAPERAPI_DEF //============================================== 5429 // SetAutomationMode 5430 // sets all or selected tracks to mode. 5431 5432 void (*SetAutomationMode)(int mode, bool onlySel); 5433 #endif 5434 5435 #if defined(REAPERAPI_WANT_SetCurrentBPM) || !defined(REAPERAPI_MINIMAL) 5436 REAPERAPI_DEF //============================================== 5437 // SetCurrentBPM 5438 // set current BPM in project, set wantUndo=true to add undo point 5439 5440 void (*SetCurrentBPM)(ReaProject* __proj, double bpm, bool wantUndo); 5441 #endif 5442 5443 #if defined(REAPERAPI_WANT_SetCursorContext) || !defined(REAPERAPI_MINIMAL) 5444 REAPERAPI_DEF //============================================== 5445 // SetCursorContext 5446 // You must use this to change the focus programmatically. mode=0 to focus track panels, 1 to focus the arrange window, 2 to focus the arrange window and select env (or env==NULL to clear the current track/take envelope selection) 5447 5448 void (*SetCursorContext)(int mode, TrackEnvelope* envInOptional); 5449 #endif 5450 5451 #if defined(REAPERAPI_WANT_SetEditCurPos) || !defined(REAPERAPI_MINIMAL) 5452 REAPERAPI_DEF //============================================== 5453 // SetEditCurPos 5454 5455 void (*SetEditCurPos)(double time, bool moveview, bool seekplay); 5456 #endif 5457 5458 #if defined(REAPERAPI_WANT_SetEditCurPos2) || !defined(REAPERAPI_MINIMAL) 5459 REAPERAPI_DEF //============================================== 5460 // SetEditCurPos2 5461 5462 void (*SetEditCurPos2)(ReaProject* proj, double time, bool moveview, bool seekplay); 5463 #endif 5464 5465 #if defined(REAPERAPI_WANT_SetEnvelopePoint) || !defined(REAPERAPI_MINIMAL) 5466 REAPERAPI_DEF //============================================== 5467 // SetEnvelopePoint 5468 // Set attributes of an envelope point. Values that are not supplied will be ignored. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. See SetEnvelopePointEx. 5469 5470 bool (*SetEnvelopePoint)(TrackEnvelope* envelope, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional); 5471 #endif 5472 5473 #if defined(REAPERAPI_WANT_SetEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 5474 REAPERAPI_DEF //============================================== 5475 // SetEnvelopePointEx 5476 // Set attributes of an envelope point. Values that are not supplied will be ignored. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. 5477 // autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. 5478 // For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, 5479 // even if the automation item is trimmed so that not all points are visible. 5480 // Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. 5481 // See CountEnvelopePointsEx, GetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx. 5482 5483 bool (*SetEnvelopePointEx)(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional); 5484 #endif 5485 5486 #if defined(REAPERAPI_WANT_SetEnvelopeStateChunk) || !defined(REAPERAPI_MINIMAL) 5487 REAPERAPI_DEF //============================================== 5488 // SetEnvelopeStateChunk 5489 // Sets the RPPXML state of an envelope, returns true if successful. Undo flag is a performance/caching hint. 5490 5491 bool (*SetEnvelopeStateChunk)(TrackEnvelope* env, const char* str, bool isundoOptional); 5492 #endif 5493 5494 #if defined(REAPERAPI_WANT_SetExtState) || !defined(REAPERAPI_MINIMAL) 5495 REAPERAPI_DEF //============================================== 5496 // SetExtState 5497 // Set the extended state value for a specific section and key. persist=true means the value should be stored and reloaded the next time REAPER is opened. See GetExtState, DeleteExtState, HasExtState. 5498 5499 void (*SetExtState)(const char* section, const char* key, const char* value, bool persist); 5500 #endif 5501 5502 #if defined(REAPERAPI_WANT_SetGlobalAutomationOverride) || !defined(REAPERAPI_MINIMAL) 5503 REAPERAPI_DEF //============================================== 5504 // SetGlobalAutomationOverride 5505 // mode: see GetGlobalAutomationOverride 5506 5507 void (*SetGlobalAutomationOverride)(int mode); 5508 #endif 5509 5510 #if defined(REAPERAPI_WANT_SetItemStateChunk) || !defined(REAPERAPI_MINIMAL) 5511 REAPERAPI_DEF //============================================== 5512 // SetItemStateChunk 5513 // Sets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint. 5514 5515 bool (*SetItemStateChunk)(MediaItem* item, const char* str, bool isundoOptional); 5516 #endif 5517 5518 #if defined(REAPERAPI_WANT_SetMasterTrackVisibility) || !defined(REAPERAPI_MINIMAL) 5519 REAPERAPI_DEF //============================================== 5520 // SetMasterTrackVisibility 5521 // set &1 to show the master track in the TCP, &2 to HIDE in the mixer. Returns the previous visibility state. See GetMasterTrackVisibility. 5522 5523 int (*SetMasterTrackVisibility)(int flag); 5524 #endif 5525 5526 #if defined(REAPERAPI_WANT_SetMediaItemInfo_Value) || !defined(REAPERAPI_MINIMAL) 5527 REAPERAPI_DEF //============================================== 5528 // SetMediaItemInfo_Value 5529 // Set media item numerical-value attributes. 5530 // B_MUTE : bool * : muted (item solo overrides). setting this value will clear C_MUTE_SOLO. 5531 // B_MUTE_ACTUAL : bool * : muted (ignores solo). setting this value will not affect C_MUTE_SOLO. 5532 // C_MUTE_SOLO : char * : solo override (-1=soloed, 0=no override, 1=unsoloed). note that this API does not automatically unsolo other items when soloing (nor clear the unsolos when clearing the last soloed item), it must be done by the caller via action or via this API. 5533 // B_LOOPSRC : bool * : loop source 5534 // B_ALLTAKESPLAY : bool * : all takes play 5535 // B_UISEL : bool * : selected in arrange view 5536 // C_BEATATTACHMODE : char * : item timebase, -1=track or project default, 1=beats (position, length, rate), 2=beats (position only). for auto-stretch timebase: C_BEATATTACHMODE=1, C_AUTOSTRETCH=1 5537 // C_AUTOSTRETCH: : char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1 5538 // C_LOCK : char * : locked, &1=locked 5539 // D_VOL : double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc 5540 // D_POSITION : double * : item position in seconds 5541 // D_LENGTH : double * : item length in seconds 5542 // D_SNAPOFFSET : double * : item snap offset in seconds 5543 // D_FADEINLEN : double * : item manual fadein length in seconds 5544 // D_FADEOUTLEN : double * : item manual fadeout length in seconds 5545 // D_FADEINDIR : double * : item fadein curvature, -1..1 5546 // D_FADEOUTDIR : double * : item fadeout curvature, -1..1 5547 // D_FADEINLEN_AUTO : double * : item auto-fadein length in seconds, -1=no auto-fadein 5548 // D_FADEOUTLEN_AUTO : double * : item auto-fadeout length in seconds, -1=no auto-fadeout 5549 // C_FADEINSHAPE : int * : fadein shape, 0..6, 0=linear 5550 // C_FADEOUTSHAPE : int * : fadeout shape, 0..6, 0=linear 5551 // I_GROUPID : int * : group ID, 0=no group 5552 // I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only) 5553 // I_LASTH : int * : height in pixels (read-only) 5554 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 5555 // I_CURTAKE : int * : active take number 5556 // IP_ITEMNUMBER : int : item number on this track (read-only, returns the item number directly) 5557 // F_FREEMODE_Y : float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1) 5558 // F_FREEMODE_H : float * : free item positioning height, 0=no height, 1=full height of track (will never be 0) 5559 // 5560 5561 bool (*SetMediaItemInfo_Value)(MediaItem* item, const char* parmname, double newvalue); 5562 #endif 5563 5564 #if defined(REAPERAPI_WANT_SetMediaItemLength) || !defined(REAPERAPI_MINIMAL) 5565 REAPERAPI_DEF //============================================== 5566 // SetMediaItemLength 5567 // Redraws the screen only if refreshUI == true. 5568 // See UpdateArrange(). 5569 5570 bool (*SetMediaItemLength)(MediaItem* item, double length, bool refreshUI); 5571 #endif 5572 5573 #if defined(REAPERAPI_WANT_SetMediaItemPosition) || !defined(REAPERAPI_MINIMAL) 5574 REAPERAPI_DEF //============================================== 5575 // SetMediaItemPosition 5576 // Redraws the screen only if refreshUI == true. 5577 // See UpdateArrange(). 5578 5579 bool (*SetMediaItemPosition)(MediaItem* item, double position, bool refreshUI); 5580 #endif 5581 5582 #if defined(REAPERAPI_WANT_SetMediaItemSelected) || !defined(REAPERAPI_MINIMAL) 5583 REAPERAPI_DEF //============================================== 5584 // SetMediaItemSelected 5585 5586 void (*SetMediaItemSelected)(MediaItem* item, bool selected); 5587 #endif 5588 5589 #if defined(REAPERAPI_WANT_SetMediaItemTake_Source) || !defined(REAPERAPI_MINIMAL) 5590 REAPERAPI_DEF //============================================== 5591 // SetMediaItemTake_Source 5592 // Set media source of media item take. The old source will not be destroyed, it is the caller's responsibility to retrieve it and destroy it after. If source already exists in any project, it will be duplicated before being set. C/C++ code should not use this and instead use GetSetMediaItemTakeInfo() with P_SOURCE to manage ownership directly. 5593 5594 bool (*SetMediaItemTake_Source)(MediaItem_Take* take, PCM_source* source); 5595 #endif 5596 5597 #if defined(REAPERAPI_WANT_SetMediaItemTakeInfo_Value) || !defined(REAPERAPI_MINIMAL) 5598 REAPERAPI_DEF //============================================== 5599 // SetMediaItemTakeInfo_Value 5600 // Set media item take numerical-value attributes. 5601 // D_STARTOFFS : double * : start offset in source media, in seconds 5602 // D_VOL : double * : take volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc, negative if take polarity is flipped 5603 // D_PAN : double * : take pan, -1..1 5604 // D_PANLAW : double * : take pan law, -1=default, 0.5=-6dB, 1.0=+0dB, etc 5605 // D_PLAYRATE : double * : take playback rate, 0.5=half speed, 1=normal, 2=double speed, etc 5606 // D_PITCH : double * : take pitch adjustment in semitones, -12=one octave down, 0=normal, +12=one octave up, etc 5607 // B_PPITCH : bool * : preserve pitch when changing playback rate 5608 // I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only) 5609 // I_LASTH : int * : height in pixels (read-only) 5610 // I_CHANMODE : int * : channel mode, 0=normal, 1=reverse stereo, 2=downmix, 3=left, 4=right 5611 // I_PITCHMODE : int * : pitch shifter mode, -1=projext default, otherwise high 2 bytes=shifter, low 2 bytes=parameter 5612 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 5613 // IP_TAKENUMBER : int : take number (read-only, returns the take number directly) 5614 // 5615 5616 bool (*SetMediaItemTakeInfo_Value)(MediaItem_Take* take, const char* parmname, double newvalue); 5617 #endif 5618 5619 #if defined(REAPERAPI_WANT_SetMediaTrackInfo_Value) || !defined(REAPERAPI_MINIMAL) 5620 REAPERAPI_DEF //============================================== 5621 // SetMediaTrackInfo_Value 5622 // Set track numerical-value attributes. 5623 // B_MUTE : bool * : muted 5624 // B_PHASE : bool * : track phase inverted 5625 // B_RECMON_IN_EFFECT : bool * : record monitoring in effect (current audio-thread playback state, read-only) 5626 // IP_TRACKNUMBER : int : track number 1-based, 0=not found, -1=master track (read-only, returns the int directly) 5627 // I_SOLO : int * : soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place 5628 // B_SOLO_DEFEAT : bool * : when set, if anything else is soloed and this track is not muted, this track acts soloed 5629 // I_FXEN : int * : fx enabled, 0=bypassed, !0=fx active 5630 // I_RECARM : int * : record armed, 0=not record armed, 1=record armed 5631 // I_RECINPUT : int * : record input, <0=no input. if 4096 set, input is MIDI and low 5 bits represent channel (0=all, 1-16=only chan), next 6 bits represent physical input (63=all, 62=VKB). If 4096 is not set, low 10 bits (0..1023) are input start channel (ReaRoute/Loopback start at 512). If 2048 is set, input is multichannel input (using track channel count), or if 1024 is set, input is stereo input, otherwise input is mono. 5632 // I_RECMODE : int * : record mode, 0=input, 1=stereo out, 2=none, 3=stereo out w/latency compensation, 4=midi output, 5=mono out, 6=mono out w/ latency compensation, 7=midi overdub, 8=midi replace 5633 // I_RECMODE_FLAGS : int * : record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader) 5634 // I_RECMON : int * : record monitoring, 0=off, 1=normal, 2=not when playing (tape style) 5635 // I_RECMONITEMS : int * : monitor items while recording, 0=off, 1=on 5636 // B_AUTO_RECARM : bool * : automatically set record arm when selected (does not immediately affect recarm state, script should set directly if desired) 5637 // I_VUMODE : int * : track vu mode, &1:disabled, &30==0:stereo peaks, &30==2:multichannel peaks, &30==4:stereo RMS, &30==8:combined RMS, &30==12:LUFS-M, &30==16:LUFS-S (readout=max), &30==20:LUFS-S (readout=current), &32:LUFS calculation on channels 1+2 only 5638 // I_AUTOMODE : int * : track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch 5639 // I_NCHAN : int * : number of track channels, 2-64, even numbers only 5640 // I_SELECTED : int * : track selected, 0=unselected, 1=selected 5641 // I_WNDH : int * : current TCP window height in pixels including envelopes (read-only) 5642 // I_TCPH : int * : current TCP window height in pixels not including envelopes (read-only) 5643 // I_TCPY : int * : current TCP window Y-position in pixels relative to top of arrange view (read-only) 5644 // I_MCPX : int * : current MCP X-position in pixels relative to mixer container (read-only) 5645 // I_MCPY : int * : current MCP Y-position in pixels relative to mixer container (read-only) 5646 // I_MCPW : int * : current MCP width in pixels (read-only) 5647 // I_MCPH : int * : current MCP height in pixels (read-only) 5648 // I_FOLDERDEPTH : int * : folder depth change, 0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc 5649 // I_FOLDERCOMPACT : int * : folder compacted state (only valid on folders), 0=normal, 1=small, 2=tiny children 5650 // I_MIDIHWOUT : int * : track midi hardware output index, <0=disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31) 5651 // I_PERFFLAGS : int * : track performance flags, &1=no media buffering, &2=no anticipative FX 5652 // I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). If you do not |0x1000000, then it will not be used, but will store the color 5653 // I_HEIGHTOVERRIDE : int * : custom height override for TCP window, 0 for none, otherwise size in pixels 5654 // B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking) 5655 // D_VOL : double * : trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc 5656 // D_PAN : double * : trim pan of track, -1..1 5657 // D_WIDTH : double * : width of track, -1..1 5658 // D_DUALPANL : double * : dualpan position 1, -1..1, only if I_PANMODE==6 5659 // D_DUALPANR : double * : dualpan position 2, -1..1, only if I_PANMODE==6 5660 // I_PANMODE : int * : pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan 5661 // D_PANLAW : double * : pan law of track, <0=project default, 0.5=-6dB, 0.707..=-3dB, 1=+0dB, 1.414..=-3dB with gain compensation, 2=-6dB with gain compensation, etc 5662 // I_PANLAW_FLAGS : int * : pan law flags, 0=sine taper, 1=hybrid taper with deprecated behavior when gain compensation enabled, 2=linear taper, 3=hybrid taper 5663 // P_ENV:<envchunkname or P_ENV:{GUID... : TrackEnvelope * : (read-only) chunkname can be <VOLENV, <PANENV, etc; GUID is the stringified envelope GUID. 5664 // B_SHOWINMIXER : bool * : track control panel visible in mixer (do not use on master track) 5665 // B_SHOWINTCP : bool * : track control panel visible in arrange view (do not use on master track) 5666 // B_MAINSEND : bool * : track sends audio to parent 5667 // C_MAINSEND_OFFS : char * : channel offset of track send to parent 5668 // C_MAINSEND_NCH : char * : channel count of track send to parent (0=use all child track channels, 1=use one channel only) 5669 // I_FREEMODE : int * : 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing) 5670 // C_BEATATTACHMODE : char * : track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only) 5671 // F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed) 5672 // F_MCP_FXPARM_SCALE : float * : scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed) 5673 // F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed) 5674 // F_TCP_FXPARM_SCALE : float * : scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed) 5675 // I_PLAY_OFFSET_FLAG : int * : track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds) 5676 // D_PLAY_OFFSET : double * : track media playback offset, units depend on I_PLAY_OFFSET_FLAG 5677 // 5678 5679 bool (*SetMediaTrackInfo_Value)(MediaTrack* tr, const char* parmname, double newvalue); 5680 #endif 5681 5682 #if defined(REAPERAPI_WANT_SetMIDIEditorGrid) || !defined(REAPERAPI_MINIMAL) 5683 REAPERAPI_DEF //============================================== 5684 // SetMIDIEditorGrid 5685 // Set the MIDI editor grid division. 0.25=quarter note, 1.0/3.0=half note tripet, etc. 5686 5687 void (*SetMIDIEditorGrid)(ReaProject* project, double division); 5688 #endif 5689 5690 #if defined(REAPERAPI_WANT_SetMixerScroll) || !defined(REAPERAPI_MINIMAL) 5691 REAPERAPI_DEF //============================================== 5692 // SetMixerScroll 5693 // Scroll the mixer so that leftmosttrack is the leftmost visible track. Returns the leftmost track after scrolling, which may be different from the passed-in track if there are not enough tracks to its right. 5694 5695 MediaTrack* (*SetMixerScroll)(MediaTrack* leftmosttrack); 5696 #endif 5697 5698 #if defined(REAPERAPI_WANT_SetMouseModifier) || !defined(REAPERAPI_MINIMAL) 5699 REAPERAPI_DEF //============================================== 5700 // SetMouseModifier 5701 // Set the mouse modifier assignment for a specific modifier key assignment, in a specific context. 5702 // Context is a string like "MM_CTX_ITEM". Find these strings by modifying an assignment in 5703 // Preferences/Editing/Mouse Modifiers, then looking in reaper-mouse.ini. 5704 // Modifier flag is a number from 0 to 15: add 1 for shift, 2 for control, 4 for alt, 8 for win. 5705 // (macOS: add 1 for shift, 2 for command, 4 for opt, 8 for control.) 5706 // For left-click and double-click contexts, the action can be any built-in command ID number 5707 // or any custom action ID string. Find built-in command IDs in the REAPER actions window 5708 // (enable "show action IDs" in the context menu), and find custom action ID strings in reaper-kb.ini. 5709 // For built-in mouse modifier behaviors, find action IDs (which will be low numbers) 5710 // by modifying an assignment in Preferences/Editing/Mouse Modifiers, then looking in reaper-mouse.ini. 5711 // Assigning an action of -1 will reset that mouse modifier behavior to factory default. 5712 // See GetMouseModifier. 5713 // 5714 5715 void (*SetMouseModifier)(const char* context, int modifier_flag, const char* action); 5716 #endif 5717 5718 #if defined(REAPERAPI_WANT_SetOnlyTrackSelected) || !defined(REAPERAPI_MINIMAL) 5719 REAPERAPI_DEF //============================================== 5720 // SetOnlyTrackSelected 5721 // Set exactly one track selected, deselect all others 5722 5723 void (*SetOnlyTrackSelected)(MediaTrack* track); 5724 #endif 5725 5726 #if defined(REAPERAPI_WANT_SetProjectGrid) || !defined(REAPERAPI_MINIMAL) 5727 REAPERAPI_DEF //============================================== 5728 // SetProjectGrid 5729 // Set the arrange view grid division. 0.25=quarter note, 1.0/3.0=half note triplet, etc. 5730 5731 void (*SetProjectGrid)(ReaProject* project, double division); 5732 #endif 5733 5734 #if defined(REAPERAPI_WANT_SetProjectMarker) || !defined(REAPERAPI_MINIMAL) 5735 REAPERAPI_DEF //============================================== 5736 // SetProjectMarker 5737 5738 bool (*SetProjectMarker)(int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name); 5739 #endif 5740 5741 #if defined(REAPERAPI_WANT_SetProjectMarker2) || !defined(REAPERAPI_MINIMAL) 5742 REAPERAPI_DEF //============================================== 5743 // SetProjectMarker2 5744 5745 bool (*SetProjectMarker2)(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name); 5746 #endif 5747 5748 #if defined(REAPERAPI_WANT_SetProjectMarker3) || !defined(REAPERAPI_MINIMAL) 5749 REAPERAPI_DEF //============================================== 5750 // SetProjectMarker3 5751 5752 bool (*SetProjectMarker3)(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name, int color); 5753 #endif 5754 5755 #if defined(REAPERAPI_WANT_SetProjectMarker4) || !defined(REAPERAPI_MINIMAL) 5756 REAPERAPI_DEF //============================================== 5757 // SetProjectMarker4 5758 // color should be 0 to not change, or ColorToNative(r,g,b)|0x1000000, flags&1 to clear name 5759 5760 bool (*SetProjectMarker4)(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name, int color, int flags); 5761 #endif 5762 5763 #if defined(REAPERAPI_WANT_SetProjectMarkerByIndex) || !defined(REAPERAPI_MINIMAL) 5764 REAPERAPI_DEF //============================================== 5765 // SetProjectMarkerByIndex 5766 // See SetProjectMarkerByIndex2. 5767 5768 bool (*SetProjectMarkerByIndex)(ReaProject* proj, int markrgnidx, bool isrgn, double pos, double rgnend, int IDnumber, const char* name, int color); 5769 #endif 5770 5771 #if defined(REAPERAPI_WANT_SetProjectMarkerByIndex2) || !defined(REAPERAPI_MINIMAL) 5772 REAPERAPI_DEF //============================================== 5773 // SetProjectMarkerByIndex2 5774 // Differs from SetProjectMarker4 in that markrgnidx is 0 for the first marker/region, 1 for the next, etc (see EnumProjectMarkers3), rather than representing the displayed marker/region ID number (see SetProjectMarker3). Function will fail if attempting to set a duplicate ID number for a region (duplicate ID numbers for markers are OK). , flags&1 to clear name. 5775 5776 bool (*SetProjectMarkerByIndex2)(ReaProject* proj, int markrgnidx, bool isrgn, double pos, double rgnend, int IDnumber, const char* name, int color, int flags); 5777 #endif 5778 5779 #if defined(REAPERAPI_WANT_SetProjExtState) || !defined(REAPERAPI_MINIMAL) 5780 REAPERAPI_DEF //============================================== 5781 // SetProjExtState 5782 // Save a key/value pair for a specific extension, to be restored the next time this specific project is loaded. Typically extname will be the name of a reascript or extension section. If key is NULL or "", all extended data for that extname will be deleted. If val is NULL or "", the data previously associated with that key will be deleted. Returns the size of the state for this extname. See GetProjExtState, EnumProjExtState. 5783 5784 int (*SetProjExtState)(ReaProject* proj, const char* extname, const char* key, const char* value); 5785 #endif 5786 5787 #if defined(REAPERAPI_WANT_SetRegionRenderMatrix) || !defined(REAPERAPI_MINIMAL) 5788 REAPERAPI_DEF //============================================== 5789 // SetRegionRenderMatrix 5790 // Add (flag > 0) or remove (flag < 0) a track from this region when using the region render matrix. If adding, flag==2 means force mono, flag==4 means force stereo, flag==N means force N/2 channels. 5791 5792 void (*SetRegionRenderMatrix)(ReaProject* proj, int regionindex, MediaTrack* track, int flag); 5793 #endif 5794 5795 #if defined(REAPERAPI_WANT_SetRenderLastError) || !defined(REAPERAPI_MINIMAL) 5796 REAPERAPI_DEF //============================================== 5797 // SetRenderLastError 5798 // Used by pcmsink objects to set an error to display while creating the pcmsink object. 5799 5800 void (*SetRenderLastError)(const char* errorstr); 5801 #endif 5802 5803 #if defined(REAPERAPI_WANT_SetTakeMarker) || !defined(REAPERAPI_MINIMAL) 5804 REAPERAPI_DEF //============================================== 5805 // SetTakeMarker 5806 // Inserts or updates a take marker. If idx<0, a take marker will be added, otherwise an existing take marker will be updated. Returns the index of the new or updated take marker (which may change if srcPos is updated). See GetNumTakeMarkers, GetTakeMarker, DeleteTakeMarker 5807 5808 int (*SetTakeMarker)(MediaItem_Take* take, int idx, const char* nameIn, double* srcposInOptional, int* colorInOptional); 5809 #endif 5810 5811 #if defined(REAPERAPI_WANT_SetTakeStretchMarker) || !defined(REAPERAPI_MINIMAL) 5812 REAPERAPI_DEF //============================================== 5813 // SetTakeStretchMarker 5814 // Adds or updates a stretch marker. If idx<0, stretch marker will be added. If idx>=0, stretch marker will be updated. When adding, if srcposInOptional is omitted, source position will be auto-calculated. When updating a stretch marker, if srcposInOptional is omitted, srcpos will not be modified. Position/srcposition values will be constrained to nearby stretch markers. Returns index of stretch marker, or -1 if did not insert (or marker already existed at time). 5815 5816 int (*SetTakeStretchMarker)(MediaItem_Take* take, int idx, double pos, const double* srcposInOptional); 5817 #endif 5818 5819 #if defined(REAPERAPI_WANT_SetTakeStretchMarkerSlope) || !defined(REAPERAPI_MINIMAL) 5820 REAPERAPI_DEF //============================================== 5821 // SetTakeStretchMarkerSlope 5822 // See GetTakeStretchMarkerSlope 5823 5824 bool (*SetTakeStretchMarkerSlope)(MediaItem_Take* take, int idx, double slope); 5825 #endif 5826 5827 #if defined(REAPERAPI_WANT_SetTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 5828 REAPERAPI_DEF //============================================== 5829 // SetTempoTimeSigMarker 5830 // Set parameters of a tempo/time signature marker. Provide either timepos (with measurepos=-1, beatpos=-1), or measurepos and beatpos (with timepos=-1). If timesig_num and timesig_denom are zero, the previous time signature will be used. ptidx=-1 will insert a new tempo/time signature marker. See CountTempoTimeSigMarkers, GetTempoTimeSigMarker, AddTempoTimeSigMarker. 5831 5832 bool (*SetTempoTimeSigMarker)(ReaProject* proj, int ptidx, double timepos, int measurepos, double beatpos, double bpm, int timesig_num, int timesig_denom, bool lineartempo); 5833 #endif 5834 5835 #if defined(REAPERAPI_WANT_SetThemeColor) || !defined(REAPERAPI_MINIMAL) 5836 REAPERAPI_DEF //============================================== 5837 // SetThemeColor 5838 // Temporarily updates the theme color to the color specified (or the theme default color if -1 is specified). Returns -1 on failure, otherwise returns the color (or transformed-color). Note that the UI is not updated by this, the caller should call UpdateArrange() etc as necessary. If the low bit of flags is set, any color transformations are bypassed. To read a value see GetThemeColor. 5839 5840 int (*SetThemeColor)(const char* ini_key, int color, int flagsOptional); 5841 #endif 5842 5843 #if defined(REAPERAPI_WANT_SetToggleCommandState) || !defined(REAPERAPI_MINIMAL) 5844 REAPERAPI_DEF //============================================== 5845 // SetToggleCommandState 5846 // Updates the toggle state of an action, returns true if succeeded. Only ReaScripts can have their toggle states changed programmatically. See RefreshToolbar2. 5847 5848 bool (*SetToggleCommandState)(int section_id, int command_id, int state); 5849 #endif 5850 5851 #if defined(REAPERAPI_WANT_SetTrackAutomationMode) || !defined(REAPERAPI_MINIMAL) 5852 REAPERAPI_DEF //============================================== 5853 // SetTrackAutomationMode 5854 5855 void (*SetTrackAutomationMode)(MediaTrack* tr, int mode); 5856 #endif 5857 5858 #if defined(REAPERAPI_WANT_SetTrackColor) || !defined(REAPERAPI_MINIMAL) 5859 REAPERAPI_DEF //============================================== 5860 // SetTrackColor 5861 // Set the custom track color, color is OS dependent (i.e. ColorToNative(r,g,b). To unset the track color, see SetMediaTrackInfo_Value I_CUSTOMCOLOR 5862 5863 void (*SetTrackColor)(MediaTrack* track, int color); 5864 #endif 5865 5866 #if defined(REAPERAPI_WANT_SetTrackMIDILyrics) || !defined(REAPERAPI_MINIMAL) 5867 REAPERAPI_DEF //============================================== 5868 // SetTrackMIDILyrics 5869 // Set all MIDI lyrics on the track. Lyrics will be stuffed into any MIDI items found in range. Flag is unused at present. str is passed in as beat position, tab, text, tab (example with flag=2: "1.1.2\tLyric for measure 1 beat 2\t2.1.1\tLyric for measure 2 beat 1 "). See GetTrackMIDILyrics 5870 5871 bool (*SetTrackMIDILyrics)(MediaTrack* track, int flag, const char* str); 5872 #endif 5873 5874 #if defined(REAPERAPI_WANT_SetTrackMIDINoteName) || !defined(REAPERAPI_MINIMAL) 5875 REAPERAPI_DEF //============================================== 5876 // SetTrackMIDINoteName 5877 // channel < 0 assigns these note names to all channels. 5878 5879 bool (*SetTrackMIDINoteName)(int track, int pitch, int chan, const char* name); 5880 #endif 5881 5882 #if defined(REAPERAPI_WANT_SetTrackMIDINoteNameEx) || !defined(REAPERAPI_MINIMAL) 5883 REAPERAPI_DEF //============================================== 5884 // SetTrackMIDINoteNameEx 5885 // channel < 0 assigns note name to all channels. pitch 128 assigns name for CC0, pitch 129 for CC1, etc. 5886 5887 bool (*SetTrackMIDINoteNameEx)(ReaProject* proj, MediaTrack* track, int pitch, int chan, const char* name); 5888 #endif 5889 5890 #if defined(REAPERAPI_WANT_SetTrackSelected) || !defined(REAPERAPI_MINIMAL) 5891 REAPERAPI_DEF //============================================== 5892 // SetTrackSelected 5893 5894 void (*SetTrackSelected)(MediaTrack* track, bool selected); 5895 #endif 5896 5897 #if defined(REAPERAPI_WANT_SetTrackSendInfo_Value) || !defined(REAPERAPI_MINIMAL) 5898 REAPERAPI_DEF //============================================== 5899 // SetTrackSendInfo_Value 5900 // Set send/receive/hardware output numerical-value attributes, return true on success. 5901 // category is <0 for receives, 0=sends, >0 for hardware outputs 5902 // parameter names: 5903 // B_MUTE : bool * 5904 // B_PHASE : bool * : true to flip phase 5905 // B_MONO : bool * 5906 // D_VOL : double * : 1.0 = +0dB etc 5907 // D_PAN : double * : -1..+1 5908 // D_PANLAW : double * : 1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc 5909 // I_SENDMODE : int * : 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx 5910 // I_AUTOMODE : int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch) 5911 // I_SRCCHAN : int * : index,&1024=mono, -1 for none 5912 // I_DSTCHAN : int * : index, &1024=mono, otherwise stereo pair, hwout:&512=rearoute 5913 // I_MIDIFLAGS : int * : low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chan 5914 // See CreateTrackSend, RemoveTrackSend, GetTrackNumSends. 5915 5916 bool (*SetTrackSendInfo_Value)(MediaTrack* tr, int category, int sendidx, const char* parmname, double newvalue); 5917 #endif 5918 5919 #if defined(REAPERAPI_WANT_SetTrackSendUIPan) || !defined(REAPERAPI_MINIMAL) 5920 REAPERAPI_DEF //============================================== 5921 // SetTrackSendUIPan 5922 // send_idx<0 for receives, >=0 for hw ouputs, >=nb_of_hw_ouputs for sends. isend=1 for end of edit, -1 for an instant edit (such as reset), 0 for normal tweak. 5923 5924 bool (*SetTrackSendUIPan)(MediaTrack* track, int send_idx, double pan, int isend); 5925 #endif 5926 5927 #if defined(REAPERAPI_WANT_SetTrackSendUIVol) || !defined(REAPERAPI_MINIMAL) 5928 REAPERAPI_DEF //============================================== 5929 // SetTrackSendUIVol 5930 // send_idx<0 for receives, >=0 for hw ouputs, >=nb_of_hw_ouputs for sends. isend=1 for end of edit, -1 for an instant edit (such as reset), 0 for normal tweak. 5931 5932 bool (*SetTrackSendUIVol)(MediaTrack* track, int send_idx, double vol, int isend); 5933 #endif 5934 5935 #if defined(REAPERAPI_WANT_SetTrackStateChunk) || !defined(REAPERAPI_MINIMAL) 5936 REAPERAPI_DEF //============================================== 5937 // SetTrackStateChunk 5938 // Sets the RPPXML state of a track, returns true if successful. Undo flag is a performance/caching hint. 5939 5940 bool (*SetTrackStateChunk)(MediaTrack* track, const char* str, bool isundoOptional); 5941 #endif 5942 5943 #if defined(REAPERAPI_WANT_ShowActionList) || !defined(REAPERAPI_MINIMAL) 5944 REAPERAPI_DEF //============================================== 5945 // ShowActionList 5946 5947 void (*ShowActionList)(KbdSectionInfo* caller, HWND callerWnd); 5948 #endif 5949 5950 #if defined(REAPERAPI_WANT_ShowConsoleMsg) || !defined(REAPERAPI_MINIMAL) 5951 REAPERAPI_DEF //============================================== 5952 // ShowConsoleMsg 5953 // Show a message to the user (also useful for debugging). Send "\n" for newline, "" to clear the console. See ClearConsole 5954 5955 void (*ShowConsoleMsg)(const char* msg); 5956 #endif 5957 5958 #if defined(REAPERAPI_WANT_ShowMessageBox) || !defined(REAPERAPI_MINIMAL) 5959 REAPERAPI_DEF //============================================== 5960 // ShowMessageBox 5961 // type 0=OK,1=OKCANCEL,2=ABORTRETRYIGNORE,3=YESNOCANCEL,4=YESNO,5=RETRYCANCEL : ret 1=OK,2=CANCEL,3=ABORT,4=RETRY,5=IGNORE,6=YES,7=NO 5962 5963 int (*ShowMessageBox)(const char* msg, const char* title, int type); 5964 #endif 5965 5966 #if defined(REAPERAPI_WANT_ShowPopupMenu) || !defined(REAPERAPI_MINIMAL) 5967 REAPERAPI_DEF //============================================== 5968 // ShowPopupMenu 5969 // shows a context menu, valid names include: track_input, track_panel, track_area, track_routing, item, ruler, envelope, envelope_point, envelope_item. ctxOptional can be a track pointer for track_*, item pointer for item* (but is optional). for envelope_point, ctx2Optional has point index, ctx3Optional has item index (0=main envelope, 1=first AI). for envelope_item, ctx2Optional has AI index (1=first AI) 5970 5971 void (*ShowPopupMenu)(const char* name, int x, int y, HWND hwndParentOptional, void* ctxOptional, int ctx2Optional, int ctx3Optional); 5972 #endif 5973 5974 #if defined(REAPERAPI_WANT_SLIDER2DB) || !defined(REAPERAPI_MINIMAL) 5975 REAPERAPI_DEF //============================================== 5976 // SLIDER2DB 5977 5978 double (*SLIDER2DB)(double y); 5979 #endif 5980 5981 #if defined(REAPERAPI_WANT_SnapToGrid) || !defined(REAPERAPI_MINIMAL) 5982 REAPERAPI_DEF //============================================== 5983 // SnapToGrid 5984 5985 double (*SnapToGrid)(ReaProject* project, double time_pos); 5986 #endif 5987 5988 #if defined(REAPERAPI_WANT_SoloAllTracks) || !defined(REAPERAPI_MINIMAL) 5989 REAPERAPI_DEF //============================================== 5990 // SoloAllTracks 5991 // solo=2 for SIP 5992 5993 void (*SoloAllTracks)(int solo); 5994 #endif 5995 5996 #if defined(REAPERAPI_WANT_Splash_GetWnd) || !defined(REAPERAPI_MINIMAL) 5997 REAPERAPI_DEF //============================================== 5998 // Splash_GetWnd 5999 // gets the splash window, in case you want to display a message over it. Returns NULL when the splash window is not displayed. 6000 6001 HWND (*Splash_GetWnd)(); 6002 #endif 6003 6004 #if defined(REAPERAPI_WANT_SplitMediaItem) || !defined(REAPERAPI_MINIMAL) 6005 REAPERAPI_DEF //============================================== 6006 // SplitMediaItem 6007 // the original item becomes the left-hand split, the function returns the right-hand split (or NULL if the split failed) 6008 6009 MediaItem* (*SplitMediaItem)(MediaItem* item, double position); 6010 #endif 6011 6012 #if defined(REAPERAPI_WANT_StopPreview) || !defined(REAPERAPI_MINIMAL) 6013 REAPERAPI_DEF //============================================== 6014 // StopPreview 6015 // return nonzero on success 6016 6017 int (*StopPreview)(preview_register_t* preview); 6018 #endif 6019 6020 #if defined(REAPERAPI_WANT_StopTrackPreview) || !defined(REAPERAPI_MINIMAL) 6021 REAPERAPI_DEF //============================================== 6022 // StopTrackPreview 6023 // return nonzero on success 6024 6025 int (*StopTrackPreview)(preview_register_t* preview); 6026 #endif 6027 6028 #if defined(REAPERAPI_WANT_StopTrackPreview2) || !defined(REAPERAPI_MINIMAL) 6029 REAPERAPI_DEF //============================================== 6030 // StopTrackPreview2 6031 // return nonzero on success 6032 6033 int (*StopTrackPreview2)(ReaProject* proj, preview_register_t* preview); 6034 #endif 6035 6036 #if defined(REAPERAPI_WANT_stringToGuid) || !defined(REAPERAPI_MINIMAL) 6037 REAPERAPI_DEF //============================================== 6038 // stringToGuid 6039 6040 void (*stringToGuid)(const char* str, GUID* g); 6041 #endif 6042 6043 #if defined(REAPERAPI_WANT_StuffMIDIMessage) || !defined(REAPERAPI_MINIMAL) 6044 REAPERAPI_DEF //============================================== 6045 // StuffMIDIMessage 6046 // Stuffs a 3 byte MIDI message into either the Virtual MIDI Keyboard queue, or the MIDI-as-control input queue, or sends to a MIDI hardware output. mode=0 for VKB, 1 for control (actions map etc), 2 for VKB-on-current-channel; 16 for external MIDI device 0, 17 for external MIDI device 1, etc; see GetNumMIDIOutputs, GetMIDIOutputName. 6047 6048 void (*StuffMIDIMessage)(int mode, int msg1, int msg2, int msg3); 6049 #endif 6050 6051 #if defined(REAPERAPI_WANT_TakeFX_AddByName) || !defined(REAPERAPI_MINIMAL) 6052 REAPERAPI_DEF //============================================== 6053 // TakeFX_AddByName 6054 // Adds or queries the position of a named FX in a take. See TrackFX_AddByName() for information on fxname and instantiate. 6055 6056 int (*TakeFX_AddByName)(MediaItem_Take* take, const char* fxname, int instantiate); 6057 #endif 6058 6059 #if defined(REAPERAPI_WANT_TakeFX_CopyToTake) || !defined(REAPERAPI_MINIMAL) 6060 REAPERAPI_DEF //============================================== 6061 // TakeFX_CopyToTake 6062 // Copies (or moves) FX from src_take to dest_take. Can be used with src_take=dest_take to reorder. 6063 6064 void (*TakeFX_CopyToTake)(MediaItem_Take* src_take, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move); 6065 #endif 6066 6067 #if defined(REAPERAPI_WANT_TakeFX_CopyToTrack) || !defined(REAPERAPI_MINIMAL) 6068 REAPERAPI_DEF //============================================== 6069 // TakeFX_CopyToTrack 6070 // Copies (or moves) FX from src_take to dest_track. dest_fx can have 0x1000000 set to reference input FX. 6071 6072 void (*TakeFX_CopyToTrack)(MediaItem_Take* src_take, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move); 6073 #endif 6074 6075 #if defined(REAPERAPI_WANT_TakeFX_Delete) || !defined(REAPERAPI_MINIMAL) 6076 REAPERAPI_DEF //============================================== 6077 // TakeFX_Delete 6078 // Remove a FX from take chain (returns true on success) 6079 6080 bool (*TakeFX_Delete)(MediaItem_Take* take, int fx); 6081 #endif 6082 6083 #if defined(REAPERAPI_WANT_TakeFX_EndParamEdit) || !defined(REAPERAPI_MINIMAL) 6084 REAPERAPI_DEF //============================================== 6085 // TakeFX_EndParamEdit 6086 6087 bool (*TakeFX_EndParamEdit)(MediaItem_Take* take, int fx, int param); 6088 #endif 6089 6090 #if defined(REAPERAPI_WANT_TakeFX_FormatParamValue) || !defined(REAPERAPI_MINIMAL) 6091 REAPERAPI_DEF //============================================== 6092 // TakeFX_FormatParamValue 6093 // Note: only works with FX that support Cockos VST extensions. 6094 6095 bool (*TakeFX_FormatParamValue)(MediaItem_Take* take, int fx, int param, double val, char* bufOut, int bufOut_sz); 6096 #endif 6097 6098 #if defined(REAPERAPI_WANT_TakeFX_FormatParamValueNormalized) || !defined(REAPERAPI_MINIMAL) 6099 REAPERAPI_DEF //============================================== 6100 // TakeFX_FormatParamValueNormalized 6101 // Note: only works with FX that support Cockos VST extensions. 6102 6103 bool (*TakeFX_FormatParamValueNormalized)(MediaItem_Take* take, int fx, int param, double value, char* buf, int buf_sz); 6104 #endif 6105 6106 #if defined(REAPERAPI_WANT_TakeFX_GetChainVisible) || !defined(REAPERAPI_MINIMAL) 6107 REAPERAPI_DEF //============================================== 6108 // TakeFX_GetChainVisible 6109 // returns index of effect visible in chain, or -1 for chain hidden, or -2 for chain visible but no effect selected 6110 6111 int (*TakeFX_GetChainVisible)(MediaItem_Take* take); 6112 #endif 6113 6114 #if defined(REAPERAPI_WANT_TakeFX_GetCount) || !defined(REAPERAPI_MINIMAL) 6115 REAPERAPI_DEF //============================================== 6116 // TakeFX_GetCount 6117 6118 int (*TakeFX_GetCount)(MediaItem_Take* take); 6119 #endif 6120 6121 #if defined(REAPERAPI_WANT_TakeFX_GetEnabled) || !defined(REAPERAPI_MINIMAL) 6122 REAPERAPI_DEF //============================================== 6123 // TakeFX_GetEnabled 6124 // See TakeFX_SetEnabled 6125 6126 bool (*TakeFX_GetEnabled)(MediaItem_Take* take, int fx); 6127 #endif 6128 6129 #if defined(REAPERAPI_WANT_TakeFX_GetEnvelope) || !defined(REAPERAPI_MINIMAL) 6130 REAPERAPI_DEF //============================================== 6131 // TakeFX_GetEnvelope 6132 // Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created. 6133 6134 TrackEnvelope* (*TakeFX_GetEnvelope)(MediaItem_Take* take, int fxindex, int parameterindex, bool create); 6135 #endif 6136 6137 #if defined(REAPERAPI_WANT_TakeFX_GetFloatingWindow) || !defined(REAPERAPI_MINIMAL) 6138 REAPERAPI_DEF //============================================== 6139 // TakeFX_GetFloatingWindow 6140 // returns HWND of floating window for effect index, if any 6141 6142 HWND (*TakeFX_GetFloatingWindow)(MediaItem_Take* take, int index); 6143 #endif 6144 6145 #if defined(REAPERAPI_WANT_TakeFX_GetFormattedParamValue) || !defined(REAPERAPI_MINIMAL) 6146 REAPERAPI_DEF //============================================== 6147 // TakeFX_GetFormattedParamValue 6148 6149 bool (*TakeFX_GetFormattedParamValue)(MediaItem_Take* take, int fx, int param, char* bufOut, int bufOut_sz); 6150 #endif 6151 6152 #if defined(REAPERAPI_WANT_TakeFX_GetFXGUID) || !defined(REAPERAPI_MINIMAL) 6153 REAPERAPI_DEF //============================================== 6154 // TakeFX_GetFXGUID 6155 6156 GUID* (*TakeFX_GetFXGUID)(MediaItem_Take* take, int fx); 6157 #endif 6158 6159 #if defined(REAPERAPI_WANT_TakeFX_GetFXName) || !defined(REAPERAPI_MINIMAL) 6160 REAPERAPI_DEF //============================================== 6161 // TakeFX_GetFXName 6162 6163 bool (*TakeFX_GetFXName)(MediaItem_Take* take, int fx, char* bufOut, int bufOut_sz); 6164 #endif 6165 6166 #if defined(REAPERAPI_WANT_TakeFX_GetIOSize) || !defined(REAPERAPI_MINIMAL) 6167 REAPERAPI_DEF //============================================== 6168 // TakeFX_GetIOSize 6169 // Gets the number of input/output pins for FX if available, returns plug-in type or -1 on error 6170 6171 int (*TakeFX_GetIOSize)(MediaItem_Take* take, int fx, int* inputPinsOut, int* outputPinsOut); 6172 #endif 6173 6174 #if defined(REAPERAPI_WANT_TakeFX_GetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 6175 REAPERAPI_DEF //============================================== 6176 // TakeFX_GetNamedConfigParm 6177 // gets plug-in specific named configuration value (returns true on success). see TrackFX_GetNamedConfigParm 6178 6179 bool (*TakeFX_GetNamedConfigParm)(MediaItem_Take* take, int fx, const char* parmname, char* bufOut, int bufOut_sz); 6180 #endif 6181 6182 #if defined(REAPERAPI_WANT_TakeFX_GetNumParams) || !defined(REAPERAPI_MINIMAL) 6183 REAPERAPI_DEF //============================================== 6184 // TakeFX_GetNumParams 6185 6186 int (*TakeFX_GetNumParams)(MediaItem_Take* take, int fx); 6187 #endif 6188 6189 #if defined(REAPERAPI_WANT_TakeFX_GetOffline) || !defined(REAPERAPI_MINIMAL) 6190 REAPERAPI_DEF //============================================== 6191 // TakeFX_GetOffline 6192 // See TakeFX_SetOffline 6193 6194 bool (*TakeFX_GetOffline)(MediaItem_Take* take, int fx); 6195 #endif 6196 6197 #if defined(REAPERAPI_WANT_TakeFX_GetOpen) || !defined(REAPERAPI_MINIMAL) 6198 REAPERAPI_DEF //============================================== 6199 // TakeFX_GetOpen 6200 // Returns true if this FX UI is open in the FX chain window or a floating window. See TakeFX_SetOpen 6201 6202 bool (*TakeFX_GetOpen)(MediaItem_Take* take, int fx); 6203 #endif 6204 6205 #if defined(REAPERAPI_WANT_TakeFX_GetParam) || !defined(REAPERAPI_MINIMAL) 6206 REAPERAPI_DEF //============================================== 6207 // TakeFX_GetParam 6208 6209 double (*TakeFX_GetParam)(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut); 6210 #endif 6211 6212 #if defined(REAPERAPI_WANT_TakeFX_GetParameterStepSizes) || !defined(REAPERAPI_MINIMAL) 6213 REAPERAPI_DEF //============================================== 6214 // TakeFX_GetParameterStepSizes 6215 6216 bool (*TakeFX_GetParameterStepSizes)(MediaItem_Take* take, int fx, int param, double* stepOut, double* smallstepOut, double* largestepOut, bool* istoggleOut); 6217 #endif 6218 6219 #if defined(REAPERAPI_WANT_TakeFX_GetParamEx) || !defined(REAPERAPI_MINIMAL) 6220 REAPERAPI_DEF //============================================== 6221 // TakeFX_GetParamEx 6222 6223 double (*TakeFX_GetParamEx)(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut, double* midvalOut); 6224 #endif 6225 6226 #if defined(REAPERAPI_WANT_TakeFX_GetParamFromIdent) || !defined(REAPERAPI_MINIMAL) 6227 REAPERAPI_DEF //============================================== 6228 // TakeFX_GetParamFromIdent 6229 // gets the parameter index from an identifying string (:wet, :bypass, or a string returned from GetParamIdent), or -1 if unknown. 6230 6231 int (*TakeFX_GetParamFromIdent)(MediaItem_Take* take, int fx, const char* ident_str); 6232 #endif 6233 6234 #if defined(REAPERAPI_WANT_TakeFX_GetParamIdent) || !defined(REAPERAPI_MINIMAL) 6235 REAPERAPI_DEF //============================================== 6236 // TakeFX_GetParamIdent 6237 // gets an identifying string for the parameter 6238 6239 bool (*TakeFX_GetParamIdent)(MediaItem_Take* take, int fx, int param, char* bufOut, int bufOut_sz); 6240 #endif 6241 6242 #if defined(REAPERAPI_WANT_TakeFX_GetParamName) || !defined(REAPERAPI_MINIMAL) 6243 REAPERAPI_DEF //============================================== 6244 // TakeFX_GetParamName 6245 6246 bool (*TakeFX_GetParamName)(MediaItem_Take* take, int fx, int param, char* bufOut, int bufOut_sz); 6247 #endif 6248 6249 #if defined(REAPERAPI_WANT_TakeFX_GetParamNormalized) || !defined(REAPERAPI_MINIMAL) 6250 REAPERAPI_DEF //============================================== 6251 // TakeFX_GetParamNormalized 6252 6253 double (*TakeFX_GetParamNormalized)(MediaItem_Take* take, int fx, int param); 6254 #endif 6255 6256 #if defined(REAPERAPI_WANT_TakeFX_GetPinMappings) || !defined(REAPERAPI_MINIMAL) 6257 REAPERAPI_DEF //============================================== 6258 // TakeFX_GetPinMappings 6259 // gets the effective channel mapping bitmask for a particular pin. high32Out will be set to the high 32 bits 6260 6261 int (*TakeFX_GetPinMappings)(MediaItem_Take* take, int fx, int isoutput, int pin, int* high32Out); 6262 #endif 6263 6264 #if defined(REAPERAPI_WANT_TakeFX_GetPreset) || !defined(REAPERAPI_MINIMAL) 6265 REAPERAPI_DEF //============================================== 6266 // TakeFX_GetPreset 6267 // Get the name of the preset currently showing in the REAPER dropdown, or the full path to a factory preset file for VST3 plug-ins (.vstpreset). Returns false if the current FX parameters do not exactly match the preset (in other words, if the user loaded the preset but moved the knobs afterward). See TakeFX_SetPreset. 6268 6269 bool (*TakeFX_GetPreset)(MediaItem_Take* take, int fx, char* presetnameOut, int presetnameOut_sz); 6270 #endif 6271 6272 #if defined(REAPERAPI_WANT_TakeFX_GetPresetIndex) || !defined(REAPERAPI_MINIMAL) 6273 REAPERAPI_DEF //============================================== 6274 // TakeFX_GetPresetIndex 6275 // Returns current preset index, or -1 if error. numberOfPresetsOut will be set to total number of presets available. See TakeFX_SetPresetByIndex 6276 6277 int (*TakeFX_GetPresetIndex)(MediaItem_Take* take, int fx, int* numberOfPresetsOut); 6278 #endif 6279 6280 #if defined(REAPERAPI_WANT_TakeFX_GetUserPresetFilename) || !defined(REAPERAPI_MINIMAL) 6281 REAPERAPI_DEF //============================================== 6282 // TakeFX_GetUserPresetFilename 6283 6284 void (*TakeFX_GetUserPresetFilename)(MediaItem_Take* take, int fx, char* fnOut, int fnOut_sz); 6285 #endif 6286 6287 #if defined(REAPERAPI_WANT_TakeFX_NavigatePresets) || !defined(REAPERAPI_MINIMAL) 6288 REAPERAPI_DEF //============================================== 6289 // TakeFX_NavigatePresets 6290 // presetmove==1 activates the next preset, presetmove==-1 activates the previous preset, etc. 6291 6292 bool (*TakeFX_NavigatePresets)(MediaItem_Take* take, int fx, int presetmove); 6293 #endif 6294 6295 #if defined(REAPERAPI_WANT_TakeFX_SetEnabled) || !defined(REAPERAPI_MINIMAL) 6296 REAPERAPI_DEF //============================================== 6297 // TakeFX_SetEnabled 6298 // See TakeFX_GetEnabled 6299 6300 void (*TakeFX_SetEnabled)(MediaItem_Take* take, int fx, bool enabled); 6301 #endif 6302 6303 #if defined(REAPERAPI_WANT_TakeFX_SetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 6304 REAPERAPI_DEF //============================================== 6305 // TakeFX_SetNamedConfigParm 6306 // gets plug-in specific named configuration value (returns true on success) 6307 6308 bool (*TakeFX_SetNamedConfigParm)(MediaItem_Take* take, int fx, const char* parmname, const char* value); 6309 #endif 6310 6311 #if defined(REAPERAPI_WANT_TakeFX_SetOffline) || !defined(REAPERAPI_MINIMAL) 6312 REAPERAPI_DEF //============================================== 6313 // TakeFX_SetOffline 6314 // See TakeFX_GetOffline 6315 6316 void (*TakeFX_SetOffline)(MediaItem_Take* take, int fx, bool offline); 6317 #endif 6318 6319 #if defined(REAPERAPI_WANT_TakeFX_SetOpen) || !defined(REAPERAPI_MINIMAL) 6320 REAPERAPI_DEF //============================================== 6321 // TakeFX_SetOpen 6322 // Open this FX UI. See TakeFX_GetOpen 6323 6324 void (*TakeFX_SetOpen)(MediaItem_Take* take, int fx, bool open); 6325 #endif 6326 6327 #if defined(REAPERAPI_WANT_TakeFX_SetParam) || !defined(REAPERAPI_MINIMAL) 6328 REAPERAPI_DEF //============================================== 6329 // TakeFX_SetParam 6330 6331 bool (*TakeFX_SetParam)(MediaItem_Take* take, int fx, int param, double val); 6332 #endif 6333 6334 #if defined(REAPERAPI_WANT_TakeFX_SetParamNormalized) || !defined(REAPERAPI_MINIMAL) 6335 REAPERAPI_DEF //============================================== 6336 // TakeFX_SetParamNormalized 6337 6338 bool (*TakeFX_SetParamNormalized)(MediaItem_Take* take, int fx, int param, double value); 6339 #endif 6340 6341 #if defined(REAPERAPI_WANT_TakeFX_SetPinMappings) || !defined(REAPERAPI_MINIMAL) 6342 REAPERAPI_DEF //============================================== 6343 // TakeFX_SetPinMappings 6344 // sets the channel mapping bitmask for a particular pin. returns false if unsupported (not all types of plug-ins support this capability) 6345 6346 bool (*TakeFX_SetPinMappings)(MediaItem_Take* take, int fx, int isoutput, int pin, int low32bits, int hi32bits); 6347 #endif 6348 6349 #if defined(REAPERAPI_WANT_TakeFX_SetPreset) || !defined(REAPERAPI_MINIMAL) 6350 REAPERAPI_DEF //============================================== 6351 // TakeFX_SetPreset 6352 // Activate a preset with the name shown in the REAPER dropdown. Full paths to .vstpreset files are also supported for VST3 plug-ins. See TakeFX_GetPreset. 6353 6354 bool (*TakeFX_SetPreset)(MediaItem_Take* take, int fx, const char* presetname); 6355 #endif 6356 6357 #if defined(REAPERAPI_WANT_TakeFX_SetPresetByIndex) || !defined(REAPERAPI_MINIMAL) 6358 REAPERAPI_DEF //============================================== 6359 // TakeFX_SetPresetByIndex 6360 // Sets the preset idx, or the factory preset (idx==-2), or the default user preset (idx==-1). Returns true on success. See TakeFX_GetPresetIndex. 6361 6362 bool (*TakeFX_SetPresetByIndex)(MediaItem_Take* take, int fx, int idx); 6363 #endif 6364 6365 #if defined(REAPERAPI_WANT_TakeFX_Show) || !defined(REAPERAPI_MINIMAL) 6366 REAPERAPI_DEF //============================================== 6367 // TakeFX_Show 6368 // showflag=0 for hidechain, =1 for show chain(index valid), =2 for hide floating window(index valid), =3 for show floating window (index valid) 6369 6370 void (*TakeFX_Show)(MediaItem_Take* take, int index, int showFlag); 6371 #endif 6372 6373 #if defined(REAPERAPI_WANT_TakeIsMIDI) || !defined(REAPERAPI_MINIMAL) 6374 REAPERAPI_DEF //============================================== 6375 // TakeIsMIDI 6376 // Returns true if the active take contains MIDI. 6377 6378 bool (*TakeIsMIDI)(MediaItem_Take* take); 6379 #endif 6380 6381 #if defined(REAPERAPI_WANT_ThemeLayout_GetLayout) || !defined(REAPERAPI_MINIMAL) 6382 REAPERAPI_DEF //============================================== 6383 // ThemeLayout_GetLayout 6384 // Gets theme layout information. section can be 'global' for global layout override, 'seclist' to enumerate a list of layout sections, otherwise a layout section such as 'mcp', 'tcp', 'trans', etc. idx can be -1 to query the current value, -2 to get the description of the section (if not global), -3 will return the current context DPI-scaling (256=normal, 512=retina, etc), or 0..x. returns false if failed. 6385 6386 bool (*ThemeLayout_GetLayout)(const char* section, int idx, char* nameOut, int nameOut_sz); 6387 #endif 6388 6389 #if defined(REAPERAPI_WANT_ThemeLayout_GetParameter) || !defined(REAPERAPI_MINIMAL) 6390 REAPERAPI_DEF //============================================== 6391 // ThemeLayout_GetParameter 6392 // returns theme layout parameter. return value is cfg-name, or nil/empty if out of range. 6393 6394 const char* (*ThemeLayout_GetParameter)(int wp, const char** descOutOptional, int* valueOutOptional, int* defValueOutOptional, int* minValueOutOptional, int* maxValueOutOptional); 6395 #endif 6396 6397 #if defined(REAPERAPI_WANT_ThemeLayout_RefreshAll) || !defined(REAPERAPI_MINIMAL) 6398 REAPERAPI_DEF //============================================== 6399 // ThemeLayout_RefreshAll 6400 // Refreshes all layouts 6401 6402 void (*ThemeLayout_RefreshAll)(); 6403 #endif 6404 6405 #if defined(REAPERAPI_WANT_ThemeLayout_SetLayout) || !defined(REAPERAPI_MINIMAL) 6406 REAPERAPI_DEF //============================================== 6407 // ThemeLayout_SetLayout 6408 // Sets theme layout override for a particular section -- section can be 'global' or 'mcp' etc. If setting global layout, prefix a ! to the layout string to clear any per-layout overrides. Returns false if failed. 6409 6410 bool (*ThemeLayout_SetLayout)(const char* section, const char* layout); 6411 #endif 6412 6413 #if defined(REAPERAPI_WANT_ThemeLayout_SetParameter) || !defined(REAPERAPI_MINIMAL) 6414 REAPERAPI_DEF //============================================== 6415 // ThemeLayout_SetParameter 6416 // sets theme layout parameter to value. persist=true in order to have change loaded on next theme load. note that the caller should update layouts via ??? to make changes visible. 6417 6418 bool (*ThemeLayout_SetParameter)(int wp, int value, bool persist); 6419 #endif 6420 6421 #if defined(REAPERAPI_WANT_time_precise) || !defined(REAPERAPI_MINIMAL) 6422 REAPERAPI_DEF //============================================== 6423 // time_precise 6424 // Gets a precise system timestamp in seconds 6425 6426 double (*time_precise)(); 6427 #endif 6428 6429 #if defined(REAPERAPI_WANT_TimeMap2_beatsToTime) || !defined(REAPERAPI_MINIMAL) 6430 REAPERAPI_DEF //============================================== 6431 // TimeMap2_beatsToTime 6432 // convert a beat position (or optionally a beats+measures if measures is non-NULL) to time. 6433 6434 double (*TimeMap2_beatsToTime)(ReaProject* proj, double tpos, const int* measuresInOptional); 6435 #endif 6436 6437 #if defined(REAPERAPI_WANT_TimeMap2_GetDividedBpmAtTime) || !defined(REAPERAPI_MINIMAL) 6438 REAPERAPI_DEF //============================================== 6439 // TimeMap2_GetDividedBpmAtTime 6440 // get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures) 6441 6442 double (*TimeMap2_GetDividedBpmAtTime)(ReaProject* proj, double time); 6443 #endif 6444 6445 #if defined(REAPERAPI_WANT_TimeMap2_GetNextChangeTime) || !defined(REAPERAPI_MINIMAL) 6446 REAPERAPI_DEF //============================================== 6447 // TimeMap2_GetNextChangeTime 6448 // when does the next time map (tempo or time sig) change occur 6449 6450 double (*TimeMap2_GetNextChangeTime)(ReaProject* proj, double time); 6451 #endif 6452 6453 #if defined(REAPERAPI_WANT_TimeMap2_QNToTime) || !defined(REAPERAPI_MINIMAL) 6454 REAPERAPI_DEF //============================================== 6455 // TimeMap2_QNToTime 6456 // converts project QN position to time. 6457 6458 double (*TimeMap2_QNToTime)(ReaProject* proj, double qn); 6459 #endif 6460 6461 #if defined(REAPERAPI_WANT_TimeMap2_timeToBeats) || !defined(REAPERAPI_MINIMAL) 6462 REAPERAPI_DEF //============================================== 6463 // TimeMap2_timeToBeats 6464 // convert a time into beats. 6465 // if measures is non-NULL, measures will be set to the measure count, return value will be beats since measure. 6466 // if cml is non-NULL, will be set to current measure length in beats (i.e. time signature numerator) 6467 // if fullbeats is non-NULL, and measures is non-NULL, fullbeats will get the full beat count (same value returned if measures is NULL). 6468 // if cdenom is non-NULL, will be set to the current time signature denominator. 6469 6470 double (*TimeMap2_timeToBeats)(ReaProject* proj, double tpos, int* measuresOutOptional, int* cmlOutOptional, double* fullbeatsOutOptional, int* cdenomOutOptional); 6471 #endif 6472 6473 #if defined(REAPERAPI_WANT_TimeMap2_timeToQN) || !defined(REAPERAPI_MINIMAL) 6474 REAPERAPI_DEF //============================================== 6475 // TimeMap2_timeToQN 6476 // converts project time position to QN position. 6477 6478 double (*TimeMap2_timeToQN)(ReaProject* proj, double tpos); 6479 #endif 6480 6481 #if defined(REAPERAPI_WANT_TimeMap_curFrameRate) || !defined(REAPERAPI_MINIMAL) 6482 REAPERAPI_DEF //============================================== 6483 // TimeMap_curFrameRate 6484 // Gets project framerate, and optionally whether it is drop-frame timecode 6485 6486 double (*TimeMap_curFrameRate)(ReaProject* proj, bool* dropFrameOut); 6487 #endif 6488 6489 #if defined(REAPERAPI_WANT_TimeMap_GetDividedBpmAtTime) || !defined(REAPERAPI_MINIMAL) 6490 REAPERAPI_DEF //============================================== 6491 // TimeMap_GetDividedBpmAtTime 6492 // get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures) 6493 6494 double (*TimeMap_GetDividedBpmAtTime)(double time); 6495 #endif 6496 6497 #if defined(REAPERAPI_WANT_TimeMap_GetMeasureInfo) || !defined(REAPERAPI_MINIMAL) 6498 REAPERAPI_DEF //============================================== 6499 // TimeMap_GetMeasureInfo 6500 // Get the QN position and time signature information for the start of a measure. Return the time in seconds of the measure start. 6501 6502 double (*TimeMap_GetMeasureInfo)(ReaProject* proj, int measure, double* qn_startOut, double* qn_endOut, int* timesig_numOut, int* timesig_denomOut, double* tempoOut); 6503 #endif 6504 6505 #if defined(REAPERAPI_WANT_TimeMap_GetMetronomePattern) || !defined(REAPERAPI_MINIMAL) 6506 REAPERAPI_DEF //============================================== 6507 // TimeMap_GetMetronomePattern 6508 // Fills in a string representing the active metronome pattern. For example, in a 7/8 measure divided 3+4, the pattern might be "1221222". The length of the string is the time signature numerator, and the function returns the time signature denominator. 6509 6510 int (*TimeMap_GetMetronomePattern)(ReaProject* proj, double time, char* pattern, int pattern_sz); 6511 #endif 6512 6513 #if defined(REAPERAPI_WANT_TimeMap_GetTimeSigAtTime) || !defined(REAPERAPI_MINIMAL) 6514 REAPERAPI_DEF //============================================== 6515 // TimeMap_GetTimeSigAtTime 6516 // get the effective time signature and tempo 6517 6518 void (*TimeMap_GetTimeSigAtTime)(ReaProject* proj, double time, int* timesig_numOut, int* timesig_denomOut, double* tempoOut); 6519 #endif 6520 6521 #if defined(REAPERAPI_WANT_TimeMap_QNToMeasures) || !defined(REAPERAPI_MINIMAL) 6522 REAPERAPI_DEF //============================================== 6523 // TimeMap_QNToMeasures 6524 // Find which measure the given QN position falls in. 6525 6526 int (*TimeMap_QNToMeasures)(ReaProject* proj, double qn, double* qnMeasureStartOutOptional, double* qnMeasureEndOutOptional); 6527 #endif 6528 6529 #if defined(REAPERAPI_WANT_TimeMap_QNToTime) || !defined(REAPERAPI_MINIMAL) 6530 REAPERAPI_DEF //============================================== 6531 // TimeMap_QNToTime 6532 // converts project QN position to time. 6533 6534 double (*TimeMap_QNToTime)(double qn); 6535 #endif 6536 6537 #if defined(REAPERAPI_WANT_TimeMap_QNToTime_abs) || !defined(REAPERAPI_MINIMAL) 6538 REAPERAPI_DEF //============================================== 6539 // TimeMap_QNToTime_abs 6540 // Converts project quarter note count (QN) to time. QN is counted from the start of the project, regardless of any partial measures. See TimeMap2_QNToTime 6541 6542 double (*TimeMap_QNToTime_abs)(ReaProject* proj, double qn); 6543 #endif 6544 6545 #if defined(REAPERAPI_WANT_TimeMap_timeToQN) || !defined(REAPERAPI_MINIMAL) 6546 REAPERAPI_DEF //============================================== 6547 // TimeMap_timeToQN 6548 // converts project QN position to time. 6549 6550 double (*TimeMap_timeToQN)(double tpos); 6551 #endif 6552 6553 #if defined(REAPERAPI_WANT_TimeMap_timeToQN_abs) || !defined(REAPERAPI_MINIMAL) 6554 REAPERAPI_DEF //============================================== 6555 // TimeMap_timeToQN_abs 6556 // Converts project time position to quarter note count (QN). QN is counted from the start of the project, regardless of any partial measures. See TimeMap2_timeToQN 6557 6558 double (*TimeMap_timeToQN_abs)(ReaProject* proj, double tpos); 6559 #endif 6560 6561 #if defined(REAPERAPI_WANT_ToggleTrackSendUIMute) || !defined(REAPERAPI_MINIMAL) 6562 REAPERAPI_DEF //============================================== 6563 // ToggleTrackSendUIMute 6564 // send_idx<0 for receives, >=0 for hw ouputs, >=nb_of_hw_ouputs for sends. 6565 6566 bool (*ToggleTrackSendUIMute)(MediaTrack* track, int send_idx); 6567 #endif 6568 6569 #if defined(REAPERAPI_WANT_Track_GetPeakHoldDB) || !defined(REAPERAPI_MINIMAL) 6570 REAPERAPI_DEF //============================================== 6571 // Track_GetPeakHoldDB 6572 // Returns meter hold state, in dB*0.01 (0 = +0dB, -0.01 = -1dB, 0.02 = +2dB, etc). If clear is set, clears the meter hold. If channel==1024 or channel==1025, returns loudness values if this is the master track or this track's VU meters are set to display loudness. 6573 6574 double (*Track_GetPeakHoldDB)(MediaTrack* track, int channel, bool clear); 6575 #endif 6576 6577 #if defined(REAPERAPI_WANT_Track_GetPeakInfo) || !defined(REAPERAPI_MINIMAL) 6578 REAPERAPI_DEF //============================================== 6579 // Track_GetPeakInfo 6580 // Returns peak meter value (1.0=+0dB, 0.0=-inf) for channel. If channel==1024 or channel==1025, returns loudness values if this is the master track or this track's VU meters are set to display loudness. 6581 6582 double (*Track_GetPeakInfo)(MediaTrack* track, int channel); 6583 #endif 6584 6585 #if defined(REAPERAPI_WANT_TrackCtl_SetToolTip) || !defined(REAPERAPI_MINIMAL) 6586 REAPERAPI_DEF //============================================== 6587 // TrackCtl_SetToolTip 6588 // displays tooltip at location, or removes if empty string 6589 6590 void (*TrackCtl_SetToolTip)(const char* fmt, int xpos, int ypos, bool topmost); 6591 #endif 6592 6593 #if defined(REAPERAPI_WANT_TrackFX_AddByName) || !defined(REAPERAPI_MINIMAL) 6594 REAPERAPI_DEF //============================================== 6595 // TrackFX_AddByName 6596 // Adds or queries the position of a named FX from the track FX chain (recFX=false) or record input FX/monitoring FX (recFX=true, monitoring FX are on master track). Specify a negative value for instantiate to always create a new effect, 0 to only query the first instance of an effect, or a positive value to add an instance if one is not found. If instantiate is <= -1000, it is used for the insertion position (-1000 is first item in chain, -1001 is second, etc). fxname can have prefix to specify type: VST3:,VST2:,VST:,AU:,JS:, or DX:, or FXADD: which adds selected items from the currently-open FX browser, FXADD:2 to limit to 2 FX added, or FXADD:2e to only succeed if exactly 2 FX are selected. Returns -1 on failure or the new position in chain on success. 6597 6598 int (*TrackFX_AddByName)(MediaTrack* track, const char* fxname, bool recFX, int instantiate); 6599 #endif 6600 6601 #if defined(REAPERAPI_WANT_TrackFX_CopyToTake) || !defined(REAPERAPI_MINIMAL) 6602 REAPERAPI_DEF //============================================== 6603 // TrackFX_CopyToTake 6604 // Copies (or moves) FX from src_track to dest_take. src_fx can have 0x1000000 set to reference input FX. 6605 6606 void (*TrackFX_CopyToTake)(MediaTrack* src_track, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move); 6607 #endif 6608 6609 #if defined(REAPERAPI_WANT_TrackFX_CopyToTrack) || !defined(REAPERAPI_MINIMAL) 6610 REAPERAPI_DEF //============================================== 6611 // TrackFX_CopyToTrack 6612 // Copies (or moves) FX from src_track to dest_track. Can be used with src_track=dest_track to reorder, FX indices have 0x1000000 set to reference input FX. 6613 6614 void (*TrackFX_CopyToTrack)(MediaTrack* src_track, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move); 6615 #endif 6616 6617 #if defined(REAPERAPI_WANT_TrackFX_Delete) || !defined(REAPERAPI_MINIMAL) 6618 REAPERAPI_DEF //============================================== 6619 // TrackFX_Delete 6620 // Remove a FX from track chain (returns true on success) 6621 6622 bool (*TrackFX_Delete)(MediaTrack* track, int fx); 6623 #endif 6624 6625 #if defined(REAPERAPI_WANT_TrackFX_EndParamEdit) || !defined(REAPERAPI_MINIMAL) 6626 REAPERAPI_DEF //============================================== 6627 // TrackFX_EndParamEdit 6628 6629 bool (*TrackFX_EndParamEdit)(MediaTrack* track, int fx, int param); 6630 #endif 6631 6632 #if defined(REAPERAPI_WANT_TrackFX_FormatParamValue) || !defined(REAPERAPI_MINIMAL) 6633 REAPERAPI_DEF //============================================== 6634 // TrackFX_FormatParamValue 6635 // Note: only works with FX that support Cockos VST extensions. 6636 6637 bool (*TrackFX_FormatParamValue)(MediaTrack* track, int fx, int param, double val, char* bufOut, int bufOut_sz); 6638 #endif 6639 6640 #if defined(REAPERAPI_WANT_TrackFX_FormatParamValueNormalized) || !defined(REAPERAPI_MINIMAL) 6641 REAPERAPI_DEF //============================================== 6642 // TrackFX_FormatParamValueNormalized 6643 // Note: only works with FX that support Cockos VST extensions. 6644 6645 bool (*TrackFX_FormatParamValueNormalized)(MediaTrack* track, int fx, int param, double value, char* buf, int buf_sz); 6646 #endif 6647 6648 #if defined(REAPERAPI_WANT_TrackFX_GetByName) || !defined(REAPERAPI_MINIMAL) 6649 REAPERAPI_DEF //============================================== 6650 // TrackFX_GetByName 6651 // Get the index of the first track FX insert that matches fxname. If the FX is not in the chain and instantiate is true, it will be inserted. See TrackFX_GetInstrument, TrackFX_GetEQ. Deprecated in favor of TrackFX_AddByName. 6652 6653 int (*TrackFX_GetByName)(MediaTrack* track, const char* fxname, bool instantiate); 6654 #endif 6655 6656 #if defined(REAPERAPI_WANT_TrackFX_GetChainVisible) || !defined(REAPERAPI_MINIMAL) 6657 REAPERAPI_DEF //============================================== 6658 // TrackFX_GetChainVisible 6659 // returns index of effect visible in chain, or -1 for chain hidden, or -2 for chain visible but no effect selected 6660 6661 int (*TrackFX_GetChainVisible)(MediaTrack* track); 6662 #endif 6663 6664 #if defined(REAPERAPI_WANT_TrackFX_GetCount) || !defined(REAPERAPI_MINIMAL) 6665 REAPERAPI_DEF //============================================== 6666 // TrackFX_GetCount 6667 6668 int (*TrackFX_GetCount)(MediaTrack* track); 6669 #endif 6670 6671 #if defined(REAPERAPI_WANT_TrackFX_GetEnabled) || !defined(REAPERAPI_MINIMAL) 6672 REAPERAPI_DEF //============================================== 6673 // TrackFX_GetEnabled 6674 // See TrackFX_SetEnabled 6675 6676 bool (*TrackFX_GetEnabled)(MediaTrack* track, int fx); 6677 #endif 6678 6679 #if defined(REAPERAPI_WANT_TrackFX_GetEQ) || !defined(REAPERAPI_MINIMAL) 6680 REAPERAPI_DEF //============================================== 6681 // TrackFX_GetEQ 6682 // Get the index of ReaEQ in the track FX chain. If ReaEQ is not in the chain and instantiate is true, it will be inserted. See TrackFX_GetInstrument, TrackFX_GetByName. 6683 6684 int (*TrackFX_GetEQ)(MediaTrack* track, bool instantiate); 6685 #endif 6686 6687 #if defined(REAPERAPI_WANT_TrackFX_GetEQBandEnabled) || !defined(REAPERAPI_MINIMAL) 6688 REAPERAPI_DEF //============================================== 6689 // TrackFX_GetEQBandEnabled 6690 // Returns true if the EQ band is enabled. 6691 // Returns false if the band is disabled, or if track/fxidx is not ReaEQ. 6692 // Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass. 6693 // Bandidx (ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc. 6694 // 6695 // See TrackFX_GetEQ, TrackFX_GetEQParam, TrackFX_SetEQParam, TrackFX_SetEQBandEnabled. 6696 6697 bool (*TrackFX_GetEQBandEnabled)(MediaTrack* track, int fxidx, int bandtype, int bandidx); 6698 #endif 6699 6700 #if defined(REAPERAPI_WANT_TrackFX_GetEQParam) || !defined(REAPERAPI_MINIMAL) 6701 REAPERAPI_DEF //============================================== 6702 // TrackFX_GetEQParam 6703 // Returns false if track/fxidx is not ReaEQ. 6704 // Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass. 6705 // Bandidx (ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc. 6706 // Paramtype (ignored for master gain): 0=freq, 1=gain, 2=Q. 6707 // See TrackFX_GetEQ, TrackFX_SetEQParam, TrackFX_GetEQBandEnabled, TrackFX_SetEQBandEnabled. 6708 6709 bool (*TrackFX_GetEQParam)(MediaTrack* track, int fxidx, int paramidx, int* bandtypeOut, int* bandidxOut, int* paramtypeOut, double* normvalOut); 6710 #endif 6711 6712 #if defined(REAPERAPI_WANT_TrackFX_GetFloatingWindow) || !defined(REAPERAPI_MINIMAL) 6713 REAPERAPI_DEF //============================================== 6714 // TrackFX_GetFloatingWindow 6715 // returns HWND of floating window for effect index, if any 6716 6717 HWND (*TrackFX_GetFloatingWindow)(MediaTrack* track, int index); 6718 #endif 6719 6720 #if defined(REAPERAPI_WANT_TrackFX_GetFormattedParamValue) || !defined(REAPERAPI_MINIMAL) 6721 REAPERAPI_DEF //============================================== 6722 // TrackFX_GetFormattedParamValue 6723 6724 bool (*TrackFX_GetFormattedParamValue)(MediaTrack* track, int fx, int param, char* bufOut, int bufOut_sz); 6725 #endif 6726 6727 #if defined(REAPERAPI_WANT_TrackFX_GetFXGUID) || !defined(REAPERAPI_MINIMAL) 6728 REAPERAPI_DEF //============================================== 6729 // TrackFX_GetFXGUID 6730 6731 GUID* (*TrackFX_GetFXGUID)(MediaTrack* track, int fx); 6732 #endif 6733 6734 #if defined(REAPERAPI_WANT_TrackFX_GetFXName) || !defined(REAPERAPI_MINIMAL) 6735 REAPERAPI_DEF //============================================== 6736 // TrackFX_GetFXName 6737 6738 bool (*TrackFX_GetFXName)(MediaTrack* track, int fx, char* bufOut, int bufOut_sz); 6739 #endif 6740 6741 #if defined(REAPERAPI_WANT_TrackFX_GetInstrument) || !defined(REAPERAPI_MINIMAL) 6742 REAPERAPI_DEF //============================================== 6743 // TrackFX_GetInstrument 6744 // Get the index of the first track FX insert that is a virtual instrument, or -1 if none. See TrackFX_GetEQ, TrackFX_GetByName. 6745 6746 int (*TrackFX_GetInstrument)(MediaTrack* track); 6747 #endif 6748 6749 #if defined(REAPERAPI_WANT_TrackFX_GetIOSize) || !defined(REAPERAPI_MINIMAL) 6750 REAPERAPI_DEF //============================================== 6751 // TrackFX_GetIOSize 6752 // Gets the number of input/output pins for FX if available, returns plug-in type or -1 on error 6753 6754 int (*TrackFX_GetIOSize)(MediaTrack* track, int fx, int* inputPinsOut, int* outputPinsOut); 6755 #endif 6756 6757 #if defined(REAPERAPI_WANT_TrackFX_GetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 6758 REAPERAPI_DEF //============================================== 6759 // TrackFX_GetNamedConfigParm 6760 // gets plug-in specific named configuration value (returns true on success). Special values: 'pdc' returns PDC latency. 'in_pin_0' returns name of first input pin (if available), 'out_pin_0' returns name of first output pin (if available), etc. 'fx_type' returns type string, 'fx_ident' returns type-specific identifier, 'fx_name' returns pre-aliased name. 6761 6762 bool (*TrackFX_GetNamedConfigParm)(MediaTrack* track, int fx, const char* parmname, char* bufOut, int bufOut_sz); 6763 #endif 6764 6765 #if defined(REAPERAPI_WANT_TrackFX_GetNumParams) || !defined(REAPERAPI_MINIMAL) 6766 REAPERAPI_DEF //============================================== 6767 // TrackFX_GetNumParams 6768 6769 int (*TrackFX_GetNumParams)(MediaTrack* track, int fx); 6770 #endif 6771 6772 #if defined(REAPERAPI_WANT_TrackFX_GetOffline) || !defined(REAPERAPI_MINIMAL) 6773 REAPERAPI_DEF //============================================== 6774 // TrackFX_GetOffline 6775 // See TrackFX_SetOffline 6776 6777 bool (*TrackFX_GetOffline)(MediaTrack* track, int fx); 6778 #endif 6779 6780 #if defined(REAPERAPI_WANT_TrackFX_GetOpen) || !defined(REAPERAPI_MINIMAL) 6781 REAPERAPI_DEF //============================================== 6782 // TrackFX_GetOpen 6783 // Returns true if this FX UI is open in the FX chain window or a floating window. See TrackFX_SetOpen 6784 6785 bool (*TrackFX_GetOpen)(MediaTrack* track, int fx); 6786 #endif 6787 6788 #if defined(REAPERAPI_WANT_TrackFX_GetParam) || !defined(REAPERAPI_MINIMAL) 6789 REAPERAPI_DEF //============================================== 6790 // TrackFX_GetParam 6791 6792 double (*TrackFX_GetParam)(MediaTrack* track, int fx, int param, double* minvalOut, double* maxvalOut); 6793 #endif 6794 6795 #if defined(REAPERAPI_WANT_TrackFX_GetParameterStepSizes) || !defined(REAPERAPI_MINIMAL) 6796 REAPERAPI_DEF //============================================== 6797 // TrackFX_GetParameterStepSizes 6798 6799 bool (*TrackFX_GetParameterStepSizes)(MediaTrack* track, int fx, int param, double* stepOut, double* smallstepOut, double* largestepOut, bool* istoggleOut); 6800 #endif 6801 6802 #if defined(REAPERAPI_WANT_TrackFX_GetParamEx) || !defined(REAPERAPI_MINIMAL) 6803 REAPERAPI_DEF //============================================== 6804 // TrackFX_GetParamEx 6805 6806 double (*TrackFX_GetParamEx)(MediaTrack* track, int fx, int param, double* minvalOut, double* maxvalOut, double* midvalOut); 6807 #endif 6808 6809 #if defined(REAPERAPI_WANT_TrackFX_GetParamFromIdent) || !defined(REAPERAPI_MINIMAL) 6810 REAPERAPI_DEF //============================================== 6811 // TrackFX_GetParamFromIdent 6812 // gets the parameter index from an identifying string (:wet, :bypass, :delta, or a string returned from GetParamIdent), or -1 if unknown. 6813 6814 int (*TrackFX_GetParamFromIdent)(MediaTrack* track, int fx, const char* ident_str); 6815 #endif 6816 6817 #if defined(REAPERAPI_WANT_TrackFX_GetParamIdent) || !defined(REAPERAPI_MINIMAL) 6818 REAPERAPI_DEF //============================================== 6819 // TrackFX_GetParamIdent 6820 // gets an identifying string for the parameter 6821 6822 bool (*TrackFX_GetParamIdent)(MediaTrack* track, int fx, int param, char* bufOut, int bufOut_sz); 6823 #endif 6824 6825 #if defined(REAPERAPI_WANT_TrackFX_GetParamName) || !defined(REAPERAPI_MINIMAL) 6826 REAPERAPI_DEF //============================================== 6827 // TrackFX_GetParamName 6828 6829 bool (*TrackFX_GetParamName)(MediaTrack* track, int fx, int param, char* bufOut, int bufOut_sz); 6830 #endif 6831 6832 #if defined(REAPERAPI_WANT_TrackFX_GetParamNormalized) || !defined(REAPERAPI_MINIMAL) 6833 REAPERAPI_DEF //============================================== 6834 // TrackFX_GetParamNormalized 6835 6836 double (*TrackFX_GetParamNormalized)(MediaTrack* track, int fx, int param); 6837 #endif 6838 6839 #if defined(REAPERAPI_WANT_TrackFX_GetPinMappings) || !defined(REAPERAPI_MINIMAL) 6840 REAPERAPI_DEF //============================================== 6841 // TrackFX_GetPinMappings 6842 // gets the effective channel mapping bitmask for a particular pin. high32Out will be set to the high 32 bits 6843 6844 int (*TrackFX_GetPinMappings)(MediaTrack* tr, int fx, int isoutput, int pin, int* high32Out); 6845 #endif 6846 6847 #if defined(REAPERAPI_WANT_TrackFX_GetPreset) || !defined(REAPERAPI_MINIMAL) 6848 REAPERAPI_DEF //============================================== 6849 // TrackFX_GetPreset 6850 // Get the name of the preset currently showing in the REAPER dropdown, or the full path to a factory preset file for VST3 plug-ins (.vstpreset). Returns false if the current FX parameters do not exactly match the preset (in other words, if the user loaded the preset but moved the knobs afterward). See TrackFX_SetPreset. 6851 6852 bool (*TrackFX_GetPreset)(MediaTrack* track, int fx, char* presetnameOut, int presetnameOut_sz); 6853 #endif 6854 6855 #if defined(REAPERAPI_WANT_TrackFX_GetPresetIndex) || !defined(REAPERAPI_MINIMAL) 6856 REAPERAPI_DEF //============================================== 6857 // TrackFX_GetPresetIndex 6858 // Returns current preset index, or -1 if error. numberOfPresetsOut will be set to total number of presets available. See TrackFX_SetPresetByIndex 6859 6860 int (*TrackFX_GetPresetIndex)(MediaTrack* track, int fx, int* numberOfPresetsOut); 6861 #endif 6862 6863 #if defined(REAPERAPI_WANT_TrackFX_GetRecChainVisible) || !defined(REAPERAPI_MINIMAL) 6864 REAPERAPI_DEF //============================================== 6865 // TrackFX_GetRecChainVisible 6866 // returns index of effect visible in record input chain, or -1 for chain hidden, or -2 for chain visible but no effect selected 6867 6868 int (*TrackFX_GetRecChainVisible)(MediaTrack* track); 6869 #endif 6870 6871 #if defined(REAPERAPI_WANT_TrackFX_GetRecCount) || !defined(REAPERAPI_MINIMAL) 6872 REAPERAPI_DEF //============================================== 6873 // TrackFX_GetRecCount 6874 // returns count of record input FX. To access record input FX, use a FX indices [0x1000000..0x1000000+n). On the master track, this accesses monitoring FX rather than record input FX. 6875 6876 int (*TrackFX_GetRecCount)(MediaTrack* track); 6877 #endif 6878 6879 #if defined(REAPERAPI_WANT_TrackFX_GetUserPresetFilename) || !defined(REAPERAPI_MINIMAL) 6880 REAPERAPI_DEF //============================================== 6881 // TrackFX_GetUserPresetFilename 6882 6883 void (*TrackFX_GetUserPresetFilename)(MediaTrack* track, int fx, char* fnOut, int fnOut_sz); 6884 #endif 6885 6886 #if defined(REAPERAPI_WANT_TrackFX_NavigatePresets) || !defined(REAPERAPI_MINIMAL) 6887 REAPERAPI_DEF //============================================== 6888 // TrackFX_NavigatePresets 6889 // presetmove==1 activates the next preset, presetmove==-1 activates the previous preset, etc. 6890 6891 bool (*TrackFX_NavigatePresets)(MediaTrack* track, int fx, int presetmove); 6892 #endif 6893 6894 #if defined(REAPERAPI_WANT_TrackFX_SetEnabled) || !defined(REAPERAPI_MINIMAL) 6895 REAPERAPI_DEF //============================================== 6896 // TrackFX_SetEnabled 6897 // See TrackFX_GetEnabled 6898 6899 void (*TrackFX_SetEnabled)(MediaTrack* track, int fx, bool enabled); 6900 #endif 6901 6902 #if defined(REAPERAPI_WANT_TrackFX_SetEQBandEnabled) || !defined(REAPERAPI_MINIMAL) 6903 REAPERAPI_DEF //============================================== 6904 // TrackFX_SetEQBandEnabled 6905 // Enable or disable a ReaEQ band. 6906 // Returns false if track/fxidx is not ReaEQ. 6907 // Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass. 6908 // Bandidx (ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc. 6909 // 6910 // See TrackFX_GetEQ, TrackFX_GetEQParam, TrackFX_SetEQParam, TrackFX_GetEQBandEnabled. 6911 6912 bool (*TrackFX_SetEQBandEnabled)(MediaTrack* track, int fxidx, int bandtype, int bandidx, bool enable); 6913 #endif 6914 6915 #if defined(REAPERAPI_WANT_TrackFX_SetEQParam) || !defined(REAPERAPI_MINIMAL) 6916 REAPERAPI_DEF //============================================== 6917 // TrackFX_SetEQParam 6918 // Returns false if track/fxidx is not ReaEQ. Targets a band matching bandtype. 6919 // Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass. 6920 // Bandidx (ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc. 6921 // Paramtype (ignored for master gain): 0=freq, 1=gain, 2=Q. 6922 // See TrackFX_GetEQ, TrackFX_GetEQParam, TrackFX_GetEQBandEnabled, TrackFX_SetEQBandEnabled. 6923 6924 bool (*TrackFX_SetEQParam)(MediaTrack* track, int fxidx, int bandtype, int bandidx, int paramtype, double val, bool isnorm); 6925 #endif 6926 6927 #if defined(REAPERAPI_WANT_TrackFX_SetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 6928 REAPERAPI_DEF //============================================== 6929 // TrackFX_SetNamedConfigParm 6930 // sets plug-in specific named configuration value (returns true on success) 6931 6932 bool (*TrackFX_SetNamedConfigParm)(MediaTrack* track, int fx, const char* parmname, const char* value); 6933 #endif 6934 6935 #if defined(REAPERAPI_WANT_TrackFX_SetOffline) || !defined(REAPERAPI_MINIMAL) 6936 REAPERAPI_DEF //============================================== 6937 // TrackFX_SetOffline 6938 // See TrackFX_GetOffline 6939 6940 void (*TrackFX_SetOffline)(MediaTrack* track, int fx, bool offline); 6941 #endif 6942 6943 #if defined(REAPERAPI_WANT_TrackFX_SetOpen) || !defined(REAPERAPI_MINIMAL) 6944 REAPERAPI_DEF //============================================== 6945 // TrackFX_SetOpen 6946 // Open this FX UI. See TrackFX_GetOpen 6947 6948 void (*TrackFX_SetOpen)(MediaTrack* track, int fx, bool open); 6949 #endif 6950 6951 #if defined(REAPERAPI_WANT_TrackFX_SetParam) || !defined(REAPERAPI_MINIMAL) 6952 REAPERAPI_DEF //============================================== 6953 // TrackFX_SetParam 6954 6955 bool (*TrackFX_SetParam)(MediaTrack* track, int fx, int param, double val); 6956 #endif 6957 6958 #if defined(REAPERAPI_WANT_TrackFX_SetParamNormalized) || !defined(REAPERAPI_MINIMAL) 6959 REAPERAPI_DEF //============================================== 6960 // TrackFX_SetParamNormalized 6961 6962 bool (*TrackFX_SetParamNormalized)(MediaTrack* track, int fx, int param, double value); 6963 #endif 6964 6965 #if defined(REAPERAPI_WANT_TrackFX_SetPinMappings) || !defined(REAPERAPI_MINIMAL) 6966 REAPERAPI_DEF //============================================== 6967 // TrackFX_SetPinMappings 6968 // sets the channel mapping bitmask for a particular pin. returns false if unsupported (not all types of plug-ins support this capability) 6969 6970 bool (*TrackFX_SetPinMappings)(MediaTrack* tr, int fx, int isoutput, int pin, int low32bits, int hi32bits); 6971 #endif 6972 6973 #if defined(REAPERAPI_WANT_TrackFX_SetPreset) || !defined(REAPERAPI_MINIMAL) 6974 REAPERAPI_DEF //============================================== 6975 // TrackFX_SetPreset 6976 // Activate a preset with the name shown in the REAPER dropdown. Full paths to .vstpreset files are also supported for VST3 plug-ins. See TrackFX_GetPreset. 6977 6978 bool (*TrackFX_SetPreset)(MediaTrack* track, int fx, const char* presetname); 6979 #endif 6980 6981 #if defined(REAPERAPI_WANT_TrackFX_SetPresetByIndex) || !defined(REAPERAPI_MINIMAL) 6982 REAPERAPI_DEF //============================================== 6983 // TrackFX_SetPresetByIndex 6984 // Sets the preset idx, or the factory preset (idx==-2), or the default user preset (idx==-1). Returns true on success. See TrackFX_GetPresetIndex. 6985 6986 bool (*TrackFX_SetPresetByIndex)(MediaTrack* track, int fx, int idx); 6987 #endif 6988 6989 #if defined(REAPERAPI_WANT_TrackFX_Show) || !defined(REAPERAPI_MINIMAL) 6990 REAPERAPI_DEF //============================================== 6991 // TrackFX_Show 6992 // showflag=0 for hidechain, =1 for show chain(index valid), =2 for hide floating window(index valid), =3 for show floating window (index valid) 6993 6994 void (*TrackFX_Show)(MediaTrack* track, int index, int showFlag); 6995 #endif 6996 6997 #if defined(REAPERAPI_WANT_TrackList_AdjustWindows) || !defined(REAPERAPI_MINIMAL) 6998 REAPERAPI_DEF //============================================== 6999 // TrackList_AdjustWindows 7000 7001 void (*TrackList_AdjustWindows)(bool isMinor); 7002 #endif 7003 7004 #if defined(REAPERAPI_WANT_TrackList_UpdateAllExternalSurfaces) || !defined(REAPERAPI_MINIMAL) 7005 REAPERAPI_DEF //============================================== 7006 // TrackList_UpdateAllExternalSurfaces 7007 7008 void (*TrackList_UpdateAllExternalSurfaces)(); 7009 #endif 7010 7011 #if defined(REAPERAPI_WANT_Undo_BeginBlock) || !defined(REAPERAPI_MINIMAL) 7012 REAPERAPI_DEF //============================================== 7013 // Undo_BeginBlock 7014 // call to start a new block 7015 7016 void (*Undo_BeginBlock)(); 7017 #endif 7018 7019 #if defined(REAPERAPI_WANT_Undo_BeginBlock2) || !defined(REAPERAPI_MINIMAL) 7020 REAPERAPI_DEF //============================================== 7021 // Undo_BeginBlock2 7022 // call to start a new block 7023 7024 void (*Undo_BeginBlock2)(ReaProject* proj); 7025 #endif 7026 7027 #if defined(REAPERAPI_WANT_Undo_CanRedo2) || !defined(REAPERAPI_MINIMAL) 7028 REAPERAPI_DEF //============================================== 7029 // Undo_CanRedo2 7030 // returns string of next action,if able,NULL if not 7031 7032 const char* (*Undo_CanRedo2)(ReaProject* proj); 7033 #endif 7034 7035 #if defined(REAPERAPI_WANT_Undo_CanUndo2) || !defined(REAPERAPI_MINIMAL) 7036 REAPERAPI_DEF //============================================== 7037 // Undo_CanUndo2 7038 // returns string of last action,if able,NULL if not 7039 7040 const char* (*Undo_CanUndo2)(ReaProject* proj); 7041 #endif 7042 7043 #if defined(REAPERAPI_WANT_Undo_DoRedo2) || !defined(REAPERAPI_MINIMAL) 7044 REAPERAPI_DEF //============================================== 7045 // Undo_DoRedo2 7046 // nonzero if success 7047 7048 int (*Undo_DoRedo2)(ReaProject* proj); 7049 #endif 7050 7051 #if defined(REAPERAPI_WANT_Undo_DoUndo2) || !defined(REAPERAPI_MINIMAL) 7052 REAPERAPI_DEF //============================================== 7053 // Undo_DoUndo2 7054 // nonzero if success 7055 7056 int (*Undo_DoUndo2)(ReaProject* proj); 7057 #endif 7058 7059 #if defined(REAPERAPI_WANT_Undo_EndBlock) || !defined(REAPERAPI_MINIMAL) 7060 REAPERAPI_DEF //============================================== 7061 // Undo_EndBlock 7062 // call to end the block,with extra flags if any,and a description 7063 7064 void (*Undo_EndBlock)(const char* descchange, int extraflags); 7065 #endif 7066 7067 #if defined(REAPERAPI_WANT_Undo_EndBlock2) || !defined(REAPERAPI_MINIMAL) 7068 REAPERAPI_DEF //============================================== 7069 // Undo_EndBlock2 7070 // call to end the block,with extra flags if any,and a description 7071 7072 void (*Undo_EndBlock2)(ReaProject* proj, const char* descchange, int extraflags); 7073 #endif 7074 7075 #if defined(REAPERAPI_WANT_Undo_OnStateChange) || !defined(REAPERAPI_MINIMAL) 7076 REAPERAPI_DEF //============================================== 7077 // Undo_OnStateChange 7078 // limited state change to items 7079 7080 void (*Undo_OnStateChange)(const char* descchange); 7081 #endif 7082 7083 #if defined(REAPERAPI_WANT_Undo_OnStateChange2) || !defined(REAPERAPI_MINIMAL) 7084 REAPERAPI_DEF //============================================== 7085 // Undo_OnStateChange2 7086 // limited state change to items 7087 7088 void (*Undo_OnStateChange2)(ReaProject* proj, const char* descchange); 7089 #endif 7090 7091 #if defined(REAPERAPI_WANT_Undo_OnStateChange_Item) || !defined(REAPERAPI_MINIMAL) 7092 REAPERAPI_DEF //============================================== 7093 // Undo_OnStateChange_Item 7094 7095 void (*Undo_OnStateChange_Item)(ReaProject* proj, const char* name, MediaItem* item); 7096 #endif 7097 7098 #if defined(REAPERAPI_WANT_Undo_OnStateChangeEx) || !defined(REAPERAPI_MINIMAL) 7099 REAPERAPI_DEF //============================================== 7100 // Undo_OnStateChangeEx 7101 // trackparm=-1 by default,or if updating one fx chain,you can specify track index 7102 7103 void (*Undo_OnStateChangeEx)(const char* descchange, int whichStates, int trackparm); 7104 #endif 7105 7106 #if defined(REAPERAPI_WANT_Undo_OnStateChangeEx2) || !defined(REAPERAPI_MINIMAL) 7107 REAPERAPI_DEF //============================================== 7108 // Undo_OnStateChangeEx2 7109 // trackparm=-1 by default,or if updating one fx chain,you can specify track index 7110 7111 void (*Undo_OnStateChangeEx2)(ReaProject* proj, const char* descchange, int whichStates, int trackparm); 7112 #endif 7113 7114 #if defined(REAPERAPI_WANT_update_disk_counters) || !defined(REAPERAPI_MINIMAL) 7115 REAPERAPI_DEF //============================================== 7116 // update_disk_counters 7117 // Updates disk I/O statistics with bytes transferred since last call. notify REAPER of a write error by calling with readamt=0, writeamt=-101010110 for unknown or -101010111 for disk full 7118 7119 void (*update_disk_counters)(int readamt, int writeamt); 7120 #endif 7121 7122 #if defined(REAPERAPI_WANT_UpdateArrange) || !defined(REAPERAPI_MINIMAL) 7123 REAPERAPI_DEF //============================================== 7124 // UpdateArrange 7125 // Redraw the arrange view 7126 7127 void (*UpdateArrange)(); 7128 #endif 7129 7130 #if defined(REAPERAPI_WANT_UpdateItemInProject) || !defined(REAPERAPI_MINIMAL) 7131 REAPERAPI_DEF //============================================== 7132 // UpdateItemInProject 7133 7134 void (*UpdateItemInProject)(MediaItem* item); 7135 #endif 7136 7137 #if defined(REAPERAPI_WANT_UpdateTimeline) || !defined(REAPERAPI_MINIMAL) 7138 REAPERAPI_DEF //============================================== 7139 // UpdateTimeline 7140 // Redraw the arrange view and ruler 7141 7142 void (*UpdateTimeline)(); 7143 #endif 7144 7145 #if defined(REAPERAPI_WANT_ValidatePtr) || !defined(REAPERAPI_MINIMAL) 7146 REAPERAPI_DEF //============================================== 7147 // ValidatePtr 7148 // see ValidatePtr2 7149 7150 bool (*ValidatePtr)(void* pointer, const char* ctypename); 7151 #endif 7152 7153 #if defined(REAPERAPI_WANT_ValidatePtr2) || !defined(REAPERAPI_MINIMAL) 7154 REAPERAPI_DEF //============================================== 7155 // ValidatePtr2 7156 // Return true if the pointer is a valid object of the right type in proj (proj is ignored if pointer is itself a project). Supported types are: ReaProject*, MediaTrack*, MediaItem*, MediaItem_Take*, TrackEnvelope* and PCM_source*. 7157 7158 bool (*ValidatePtr2)(ReaProject* proj, void* pointer, const char* ctypename); 7159 #endif 7160 7161 #if defined(REAPERAPI_WANT_ViewPrefs) || !defined(REAPERAPI_MINIMAL) 7162 REAPERAPI_DEF //============================================== 7163 // ViewPrefs 7164 // Opens the prefs to a page, use pageByName if page is 0. 7165 7166 void (*ViewPrefs)(int page, const char* pageByName); 7167 #endif 7168 7169 #if defined(REAPERAPI_WANT_WDL_VirtualWnd_ScaledBlitBG) || !defined(REAPERAPI_MINIMAL) 7170 REAPERAPI_DEF //============================================== 7171 // WDL_VirtualWnd_ScaledBlitBG 7172 7173 bool (*WDL_VirtualWnd_ScaledBlitBG)(LICE_IBitmap* dest, WDL_VirtualWnd_BGCfg* src, int destx, int desty, int destw, int desth, int clipx, int clipy, int clipw, int cliph, float alpha, int mode); 7174 #endif 7175 7176 #ifdef REAPERAPI_IMPLEMENT 7177 int REAPERAPI_LoadAPI(void *(*getAPI)(const char *)) 7178 { 7179 static const struct { void **dest; const char *name; } table[]={ 7180 #if defined(REAPERAPI_WANT___mergesort) || !defined(REAPERAPI_MINIMAL) 7181 {(void**)&__mergesort,"__mergesort"}, 7182 #endif 7183 #if defined(REAPERAPI_WANT_AddCustomizableMenu) || !defined(REAPERAPI_MINIMAL) 7184 {(void**)&AddCustomizableMenu,"AddCustomizableMenu"}, 7185 #endif 7186 #if defined(REAPERAPI_WANT_AddExtensionsMainMenu) || !defined(REAPERAPI_MINIMAL) 7187 {(void**)&AddExtensionsMainMenu,"AddExtensionsMainMenu"}, 7188 #endif 7189 #if defined(REAPERAPI_WANT_AddMediaItemToTrack) || !defined(REAPERAPI_MINIMAL) 7190 {(void**)&AddMediaItemToTrack,"AddMediaItemToTrack"}, 7191 #endif 7192 #if defined(REAPERAPI_WANT_AddProjectMarker) || !defined(REAPERAPI_MINIMAL) 7193 {(void**)&AddProjectMarker,"AddProjectMarker"}, 7194 #endif 7195 #if defined(REAPERAPI_WANT_AddProjectMarker2) || !defined(REAPERAPI_MINIMAL) 7196 {(void**)&AddProjectMarker2,"AddProjectMarker2"}, 7197 #endif 7198 #if defined(REAPERAPI_WANT_AddRemoveReaScript) || !defined(REAPERAPI_MINIMAL) 7199 {(void**)&AddRemoveReaScript,"AddRemoveReaScript"}, 7200 #endif 7201 #if defined(REAPERAPI_WANT_AddTakeToMediaItem) || !defined(REAPERAPI_MINIMAL) 7202 {(void**)&AddTakeToMediaItem,"AddTakeToMediaItem"}, 7203 #endif 7204 #if defined(REAPERAPI_WANT_AddTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 7205 {(void**)&AddTempoTimeSigMarker,"AddTempoTimeSigMarker"}, 7206 #endif 7207 #if defined(REAPERAPI_WANT_adjustZoom) || !defined(REAPERAPI_MINIMAL) 7208 {(void**)&adjustZoom,"adjustZoom"}, 7209 #endif 7210 #if defined(REAPERAPI_WANT_AnyTrackSolo) || !defined(REAPERAPI_MINIMAL) 7211 {(void**)&AnyTrackSolo,"AnyTrackSolo"}, 7212 #endif 7213 #if defined(REAPERAPI_WANT_APIExists) || !defined(REAPERAPI_MINIMAL) 7214 {(void**)&APIExists,"APIExists"}, 7215 #endif 7216 #if defined(REAPERAPI_WANT_APITest) || !defined(REAPERAPI_MINIMAL) 7217 {(void**)&APITest,"APITest"}, 7218 #endif 7219 #if defined(REAPERAPI_WANT_ApplyNudge) || !defined(REAPERAPI_MINIMAL) 7220 {(void**)&ApplyNudge,"ApplyNudge"}, 7221 #endif 7222 #if defined(REAPERAPI_WANT_ArmCommand) || !defined(REAPERAPI_MINIMAL) 7223 {(void**)&ArmCommand,"ArmCommand"}, 7224 #endif 7225 #if defined(REAPERAPI_WANT_Audio_Init) || !defined(REAPERAPI_MINIMAL) 7226 {(void**)&Audio_Init,"Audio_Init"}, 7227 #endif 7228 #if defined(REAPERAPI_WANT_Audio_IsPreBuffer) || !defined(REAPERAPI_MINIMAL) 7229 {(void**)&Audio_IsPreBuffer,"Audio_IsPreBuffer"}, 7230 #endif 7231 #if defined(REAPERAPI_WANT_Audio_IsRunning) || !defined(REAPERAPI_MINIMAL) 7232 {(void**)&Audio_IsRunning,"Audio_IsRunning"}, 7233 #endif 7234 #if defined(REAPERAPI_WANT_Audio_Quit) || !defined(REAPERAPI_MINIMAL) 7235 {(void**)&Audio_Quit,"Audio_Quit"}, 7236 #endif 7237 #if defined(REAPERAPI_WANT_Audio_RegHardwareHook) || !defined(REAPERAPI_MINIMAL) 7238 {(void**)&Audio_RegHardwareHook,"Audio_RegHardwareHook"}, 7239 #endif 7240 #if defined(REAPERAPI_WANT_AudioAccessorStateChanged) || !defined(REAPERAPI_MINIMAL) 7241 {(void**)&AudioAccessorStateChanged,"AudioAccessorStateChanged"}, 7242 #endif 7243 #if defined(REAPERAPI_WANT_AudioAccessorUpdate) || !defined(REAPERAPI_MINIMAL) 7244 {(void**)&AudioAccessorUpdate,"AudioAccessorUpdate"}, 7245 #endif 7246 #if defined(REAPERAPI_WANT_AudioAccessorValidateState) || !defined(REAPERAPI_MINIMAL) 7247 {(void**)&AudioAccessorValidateState,"AudioAccessorValidateState"}, 7248 #endif 7249 #if defined(REAPERAPI_WANT_BypassFxAllTracks) || !defined(REAPERAPI_MINIMAL) 7250 {(void**)&BypassFxAllTracks,"BypassFxAllTracks"}, 7251 #endif 7252 #if defined(REAPERAPI_WANT_CalcMediaSrcLoudness) || !defined(REAPERAPI_MINIMAL) 7253 {(void**)&CalcMediaSrcLoudness,"CalcMediaSrcLoudness"}, 7254 #endif 7255 #if defined(REAPERAPI_WANT_CalculateNormalization) || !defined(REAPERAPI_MINIMAL) 7256 {(void**)&CalculateNormalization,"CalculateNormalization"}, 7257 #endif 7258 #if defined(REAPERAPI_WANT_CalculatePeaks) || !defined(REAPERAPI_MINIMAL) 7259 {(void**)&CalculatePeaks,"CalculatePeaks"}, 7260 #endif 7261 #if defined(REAPERAPI_WANT_CalculatePeaksFloatSrcPtr) || !defined(REAPERAPI_MINIMAL) 7262 {(void**)&CalculatePeaksFloatSrcPtr,"CalculatePeaksFloatSrcPtr"}, 7263 #endif 7264 #if defined(REAPERAPI_WANT_ClearAllRecArmed) || !defined(REAPERAPI_MINIMAL) 7265 {(void**)&ClearAllRecArmed,"ClearAllRecArmed"}, 7266 #endif 7267 #if defined(REAPERAPI_WANT_ClearConsole) || !defined(REAPERAPI_MINIMAL) 7268 {(void**)&ClearConsole,"ClearConsole"}, 7269 #endif 7270 #if defined(REAPERAPI_WANT_ClearPeakCache) || !defined(REAPERAPI_MINIMAL) 7271 {(void**)&ClearPeakCache,"ClearPeakCache"}, 7272 #endif 7273 #if defined(REAPERAPI_WANT_ColorFromNative) || !defined(REAPERAPI_MINIMAL) 7274 {(void**)&ColorFromNative,"ColorFromNative"}, 7275 #endif 7276 #if defined(REAPERAPI_WANT_ColorToNative) || !defined(REAPERAPI_MINIMAL) 7277 {(void**)&ColorToNative,"ColorToNative"}, 7278 #endif 7279 #if defined(REAPERAPI_WANT_CountActionShortcuts) || !defined(REAPERAPI_MINIMAL) 7280 {(void**)&CountActionShortcuts,"CountActionShortcuts"}, 7281 #endif 7282 #if defined(REAPERAPI_WANT_CountAutomationItems) || !defined(REAPERAPI_MINIMAL) 7283 {(void**)&CountAutomationItems,"CountAutomationItems"}, 7284 #endif 7285 #if defined(REAPERAPI_WANT_CountEnvelopePoints) || !defined(REAPERAPI_MINIMAL) 7286 {(void**)&CountEnvelopePoints,"CountEnvelopePoints"}, 7287 #endif 7288 #if defined(REAPERAPI_WANT_CountEnvelopePointsEx) || !defined(REAPERAPI_MINIMAL) 7289 {(void**)&CountEnvelopePointsEx,"CountEnvelopePointsEx"}, 7290 #endif 7291 #if defined(REAPERAPI_WANT_CountMediaItems) || !defined(REAPERAPI_MINIMAL) 7292 {(void**)&CountMediaItems,"CountMediaItems"}, 7293 #endif 7294 #if defined(REAPERAPI_WANT_CountProjectMarkers) || !defined(REAPERAPI_MINIMAL) 7295 {(void**)&CountProjectMarkers,"CountProjectMarkers"}, 7296 #endif 7297 #if defined(REAPERAPI_WANT_CountSelectedMediaItems) || !defined(REAPERAPI_MINIMAL) 7298 {(void**)&CountSelectedMediaItems,"CountSelectedMediaItems"}, 7299 #endif 7300 #if defined(REAPERAPI_WANT_CountSelectedTracks) || !defined(REAPERAPI_MINIMAL) 7301 {(void**)&CountSelectedTracks,"CountSelectedTracks"}, 7302 #endif 7303 #if defined(REAPERAPI_WANT_CountSelectedTracks2) || !defined(REAPERAPI_MINIMAL) 7304 {(void**)&CountSelectedTracks2,"CountSelectedTracks2"}, 7305 #endif 7306 #if defined(REAPERAPI_WANT_CountTakeEnvelopes) || !defined(REAPERAPI_MINIMAL) 7307 {(void**)&CountTakeEnvelopes,"CountTakeEnvelopes"}, 7308 #endif 7309 #if defined(REAPERAPI_WANT_CountTakes) || !defined(REAPERAPI_MINIMAL) 7310 {(void**)&CountTakes,"CountTakes"}, 7311 #endif 7312 #if defined(REAPERAPI_WANT_CountTCPFXParms) || !defined(REAPERAPI_MINIMAL) 7313 {(void**)&CountTCPFXParms,"CountTCPFXParms"}, 7314 #endif 7315 #if defined(REAPERAPI_WANT_CountTempoTimeSigMarkers) || !defined(REAPERAPI_MINIMAL) 7316 {(void**)&CountTempoTimeSigMarkers,"CountTempoTimeSigMarkers"}, 7317 #endif 7318 #if defined(REAPERAPI_WANT_CountTrackEnvelopes) || !defined(REAPERAPI_MINIMAL) 7319 {(void**)&CountTrackEnvelopes,"CountTrackEnvelopes"}, 7320 #endif 7321 #if defined(REAPERAPI_WANT_CountTrackMediaItems) || !defined(REAPERAPI_MINIMAL) 7322 {(void**)&CountTrackMediaItems,"CountTrackMediaItems"}, 7323 #endif 7324 #if defined(REAPERAPI_WANT_CountTracks) || !defined(REAPERAPI_MINIMAL) 7325 {(void**)&CountTracks,"CountTracks"}, 7326 #endif 7327 #if defined(REAPERAPI_WANT_CreateLocalOscHandler) || !defined(REAPERAPI_MINIMAL) 7328 {(void**)&CreateLocalOscHandler,"CreateLocalOscHandler"}, 7329 #endif 7330 #if defined(REAPERAPI_WANT_CreateMIDIInput) || !defined(REAPERAPI_MINIMAL) 7331 {(void**)&CreateMIDIInput,"CreateMIDIInput"}, 7332 #endif 7333 #if defined(REAPERAPI_WANT_CreateMIDIOutput) || !defined(REAPERAPI_MINIMAL) 7334 {(void**)&CreateMIDIOutput,"CreateMIDIOutput"}, 7335 #endif 7336 #if defined(REAPERAPI_WANT_CreateNewMIDIItemInProj) || !defined(REAPERAPI_MINIMAL) 7337 {(void**)&CreateNewMIDIItemInProj,"CreateNewMIDIItemInProj"}, 7338 #endif 7339 #if defined(REAPERAPI_WANT_CreateTakeAudioAccessor) || !defined(REAPERAPI_MINIMAL) 7340 {(void**)&CreateTakeAudioAccessor,"CreateTakeAudioAccessor"}, 7341 #endif 7342 #if defined(REAPERAPI_WANT_CreateTrackAudioAccessor) || !defined(REAPERAPI_MINIMAL) 7343 {(void**)&CreateTrackAudioAccessor,"CreateTrackAudioAccessor"}, 7344 #endif 7345 #if defined(REAPERAPI_WANT_CreateTrackSend) || !defined(REAPERAPI_MINIMAL) 7346 {(void**)&CreateTrackSend,"CreateTrackSend"}, 7347 #endif 7348 #if defined(REAPERAPI_WANT_CSurf_FlushUndo) || !defined(REAPERAPI_MINIMAL) 7349 {(void**)&CSurf_FlushUndo,"CSurf_FlushUndo"}, 7350 #endif 7351 #if defined(REAPERAPI_WANT_CSurf_GetTouchState) || !defined(REAPERAPI_MINIMAL) 7352 {(void**)&CSurf_GetTouchState,"CSurf_GetTouchState"}, 7353 #endif 7354 #if defined(REAPERAPI_WANT_CSurf_GoEnd) || !defined(REAPERAPI_MINIMAL) 7355 {(void**)&CSurf_GoEnd,"CSurf_GoEnd"}, 7356 #endif 7357 #if defined(REAPERAPI_WANT_CSurf_GoStart) || !defined(REAPERAPI_MINIMAL) 7358 {(void**)&CSurf_GoStart,"CSurf_GoStart"}, 7359 #endif 7360 #if defined(REAPERAPI_WANT_CSurf_NumTracks) || !defined(REAPERAPI_MINIMAL) 7361 {(void**)&CSurf_NumTracks,"CSurf_NumTracks"}, 7362 #endif 7363 #if defined(REAPERAPI_WANT_CSurf_OnArrow) || !defined(REAPERAPI_MINIMAL) 7364 {(void**)&CSurf_OnArrow,"CSurf_OnArrow"}, 7365 #endif 7366 #if defined(REAPERAPI_WANT_CSurf_OnFwd) || !defined(REAPERAPI_MINIMAL) 7367 {(void**)&CSurf_OnFwd,"CSurf_OnFwd"}, 7368 #endif 7369 #if defined(REAPERAPI_WANT_CSurf_OnFXChange) || !defined(REAPERAPI_MINIMAL) 7370 {(void**)&CSurf_OnFXChange,"CSurf_OnFXChange"}, 7371 #endif 7372 #if defined(REAPERAPI_WANT_CSurf_OnInputMonitorChange) || !defined(REAPERAPI_MINIMAL) 7373 {(void**)&CSurf_OnInputMonitorChange,"CSurf_OnInputMonitorChange"}, 7374 #endif 7375 #if defined(REAPERAPI_WANT_CSurf_OnInputMonitorChangeEx) || !defined(REAPERAPI_MINIMAL) 7376 {(void**)&CSurf_OnInputMonitorChangeEx,"CSurf_OnInputMonitorChangeEx"}, 7377 #endif 7378 #if defined(REAPERAPI_WANT_CSurf_OnMuteChange) || !defined(REAPERAPI_MINIMAL) 7379 {(void**)&CSurf_OnMuteChange,"CSurf_OnMuteChange"}, 7380 #endif 7381 #if defined(REAPERAPI_WANT_CSurf_OnMuteChangeEx) || !defined(REAPERAPI_MINIMAL) 7382 {(void**)&CSurf_OnMuteChangeEx,"CSurf_OnMuteChangeEx"}, 7383 #endif 7384 #if defined(REAPERAPI_WANT_CSurf_OnOscControlMessage) || !defined(REAPERAPI_MINIMAL) 7385 {(void**)&CSurf_OnOscControlMessage,"CSurf_OnOscControlMessage"}, 7386 #endif 7387 #if defined(REAPERAPI_WANT_CSurf_OnPanChange) || !defined(REAPERAPI_MINIMAL) 7388 {(void**)&CSurf_OnPanChange,"CSurf_OnPanChange"}, 7389 #endif 7390 #if defined(REAPERAPI_WANT_CSurf_OnPanChangeEx) || !defined(REAPERAPI_MINIMAL) 7391 {(void**)&CSurf_OnPanChangeEx,"CSurf_OnPanChangeEx"}, 7392 #endif 7393 #if defined(REAPERAPI_WANT_CSurf_OnPause) || !defined(REAPERAPI_MINIMAL) 7394 {(void**)&CSurf_OnPause,"CSurf_OnPause"}, 7395 #endif 7396 #if defined(REAPERAPI_WANT_CSurf_OnPlay) || !defined(REAPERAPI_MINIMAL) 7397 {(void**)&CSurf_OnPlay,"CSurf_OnPlay"}, 7398 #endif 7399 #if defined(REAPERAPI_WANT_CSurf_OnPlayRateChange) || !defined(REAPERAPI_MINIMAL) 7400 {(void**)&CSurf_OnPlayRateChange,"CSurf_OnPlayRateChange"}, 7401 #endif 7402 #if defined(REAPERAPI_WANT_CSurf_OnRecArmChange) || !defined(REAPERAPI_MINIMAL) 7403 {(void**)&CSurf_OnRecArmChange,"CSurf_OnRecArmChange"}, 7404 #endif 7405 #if defined(REAPERAPI_WANT_CSurf_OnRecArmChangeEx) || !defined(REAPERAPI_MINIMAL) 7406 {(void**)&CSurf_OnRecArmChangeEx,"CSurf_OnRecArmChangeEx"}, 7407 #endif 7408 #if defined(REAPERAPI_WANT_CSurf_OnRecord) || !defined(REAPERAPI_MINIMAL) 7409 {(void**)&CSurf_OnRecord,"CSurf_OnRecord"}, 7410 #endif 7411 #if defined(REAPERAPI_WANT_CSurf_OnRecvPanChange) || !defined(REAPERAPI_MINIMAL) 7412 {(void**)&CSurf_OnRecvPanChange,"CSurf_OnRecvPanChange"}, 7413 #endif 7414 #if defined(REAPERAPI_WANT_CSurf_OnRecvVolumeChange) || !defined(REAPERAPI_MINIMAL) 7415 {(void**)&CSurf_OnRecvVolumeChange,"CSurf_OnRecvVolumeChange"}, 7416 #endif 7417 #if defined(REAPERAPI_WANT_CSurf_OnRew) || !defined(REAPERAPI_MINIMAL) 7418 {(void**)&CSurf_OnRew,"CSurf_OnRew"}, 7419 #endif 7420 #if defined(REAPERAPI_WANT_CSurf_OnRewFwd) || !defined(REAPERAPI_MINIMAL) 7421 {(void**)&CSurf_OnRewFwd,"CSurf_OnRewFwd"}, 7422 #endif 7423 #if defined(REAPERAPI_WANT_CSurf_OnScroll) || !defined(REAPERAPI_MINIMAL) 7424 {(void**)&CSurf_OnScroll,"CSurf_OnScroll"}, 7425 #endif 7426 #if defined(REAPERAPI_WANT_CSurf_OnSelectedChange) || !defined(REAPERAPI_MINIMAL) 7427 {(void**)&CSurf_OnSelectedChange,"CSurf_OnSelectedChange"}, 7428 #endif 7429 #if defined(REAPERAPI_WANT_CSurf_OnSendPanChange) || !defined(REAPERAPI_MINIMAL) 7430 {(void**)&CSurf_OnSendPanChange,"CSurf_OnSendPanChange"}, 7431 #endif 7432 #if defined(REAPERAPI_WANT_CSurf_OnSendVolumeChange) || !defined(REAPERAPI_MINIMAL) 7433 {(void**)&CSurf_OnSendVolumeChange,"CSurf_OnSendVolumeChange"}, 7434 #endif 7435 #if defined(REAPERAPI_WANT_CSurf_OnSoloChange) || !defined(REAPERAPI_MINIMAL) 7436 {(void**)&CSurf_OnSoloChange,"CSurf_OnSoloChange"}, 7437 #endif 7438 #if defined(REAPERAPI_WANT_CSurf_OnSoloChangeEx) || !defined(REAPERAPI_MINIMAL) 7439 {(void**)&CSurf_OnSoloChangeEx,"CSurf_OnSoloChangeEx"}, 7440 #endif 7441 #if defined(REAPERAPI_WANT_CSurf_OnStop) || !defined(REAPERAPI_MINIMAL) 7442 {(void**)&CSurf_OnStop,"CSurf_OnStop"}, 7443 #endif 7444 #if defined(REAPERAPI_WANT_CSurf_OnTempoChange) || !defined(REAPERAPI_MINIMAL) 7445 {(void**)&CSurf_OnTempoChange,"CSurf_OnTempoChange"}, 7446 #endif 7447 #if defined(REAPERAPI_WANT_CSurf_OnTrackSelection) || !defined(REAPERAPI_MINIMAL) 7448 {(void**)&CSurf_OnTrackSelection,"CSurf_OnTrackSelection"}, 7449 #endif 7450 #if defined(REAPERAPI_WANT_CSurf_OnVolumeChange) || !defined(REAPERAPI_MINIMAL) 7451 {(void**)&CSurf_OnVolumeChange,"CSurf_OnVolumeChange"}, 7452 #endif 7453 #if defined(REAPERAPI_WANT_CSurf_OnVolumeChangeEx) || !defined(REAPERAPI_MINIMAL) 7454 {(void**)&CSurf_OnVolumeChangeEx,"CSurf_OnVolumeChangeEx"}, 7455 #endif 7456 #if defined(REAPERAPI_WANT_CSurf_OnWidthChange) || !defined(REAPERAPI_MINIMAL) 7457 {(void**)&CSurf_OnWidthChange,"CSurf_OnWidthChange"}, 7458 #endif 7459 #if defined(REAPERAPI_WANT_CSurf_OnWidthChangeEx) || !defined(REAPERAPI_MINIMAL) 7460 {(void**)&CSurf_OnWidthChangeEx,"CSurf_OnWidthChangeEx"}, 7461 #endif 7462 #if defined(REAPERAPI_WANT_CSurf_OnZoom) || !defined(REAPERAPI_MINIMAL) 7463 {(void**)&CSurf_OnZoom,"CSurf_OnZoom"}, 7464 #endif 7465 #if defined(REAPERAPI_WANT_CSurf_ResetAllCachedVolPanStates) || !defined(REAPERAPI_MINIMAL) 7466 {(void**)&CSurf_ResetAllCachedVolPanStates,"CSurf_ResetAllCachedVolPanStates"}, 7467 #endif 7468 #if defined(REAPERAPI_WANT_CSurf_ScrubAmt) || !defined(REAPERAPI_MINIMAL) 7469 {(void**)&CSurf_ScrubAmt,"CSurf_ScrubAmt"}, 7470 #endif 7471 #if defined(REAPERAPI_WANT_CSurf_SetAutoMode) || !defined(REAPERAPI_MINIMAL) 7472 {(void**)&CSurf_SetAutoMode,"CSurf_SetAutoMode"}, 7473 #endif 7474 #if defined(REAPERAPI_WANT_CSurf_SetPlayState) || !defined(REAPERAPI_MINIMAL) 7475 {(void**)&CSurf_SetPlayState,"CSurf_SetPlayState"}, 7476 #endif 7477 #if defined(REAPERAPI_WANT_CSurf_SetRepeatState) || !defined(REAPERAPI_MINIMAL) 7478 {(void**)&CSurf_SetRepeatState,"CSurf_SetRepeatState"}, 7479 #endif 7480 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceMute) || !defined(REAPERAPI_MINIMAL) 7481 {(void**)&CSurf_SetSurfaceMute,"CSurf_SetSurfaceMute"}, 7482 #endif 7483 #if defined(REAPERAPI_WANT_CSurf_SetSurfacePan) || !defined(REAPERAPI_MINIMAL) 7484 {(void**)&CSurf_SetSurfacePan,"CSurf_SetSurfacePan"}, 7485 #endif 7486 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceRecArm) || !defined(REAPERAPI_MINIMAL) 7487 {(void**)&CSurf_SetSurfaceRecArm,"CSurf_SetSurfaceRecArm"}, 7488 #endif 7489 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceSelected) || !defined(REAPERAPI_MINIMAL) 7490 {(void**)&CSurf_SetSurfaceSelected,"CSurf_SetSurfaceSelected"}, 7491 #endif 7492 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceSolo) || !defined(REAPERAPI_MINIMAL) 7493 {(void**)&CSurf_SetSurfaceSolo,"CSurf_SetSurfaceSolo"}, 7494 #endif 7495 #if defined(REAPERAPI_WANT_CSurf_SetSurfaceVolume) || !defined(REAPERAPI_MINIMAL) 7496 {(void**)&CSurf_SetSurfaceVolume,"CSurf_SetSurfaceVolume"}, 7497 #endif 7498 #if defined(REAPERAPI_WANT_CSurf_SetTrackListChange) || !defined(REAPERAPI_MINIMAL) 7499 {(void**)&CSurf_SetTrackListChange,"CSurf_SetTrackListChange"}, 7500 #endif 7501 #if defined(REAPERAPI_WANT_CSurf_TrackFromID) || !defined(REAPERAPI_MINIMAL) 7502 {(void**)&CSurf_TrackFromID,"CSurf_TrackFromID"}, 7503 #endif 7504 #if defined(REAPERAPI_WANT_CSurf_TrackToID) || !defined(REAPERAPI_MINIMAL) 7505 {(void**)&CSurf_TrackToID,"CSurf_TrackToID"}, 7506 #endif 7507 #if defined(REAPERAPI_WANT_DB2SLIDER) || !defined(REAPERAPI_MINIMAL) 7508 {(void**)&DB2SLIDER,"DB2SLIDER"}, 7509 #endif 7510 #if defined(REAPERAPI_WANT_DeleteActionShortcut) || !defined(REAPERAPI_MINIMAL) 7511 {(void**)&DeleteActionShortcut,"DeleteActionShortcut"}, 7512 #endif 7513 #if defined(REAPERAPI_WANT_DeleteEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 7514 {(void**)&DeleteEnvelopePointEx,"DeleteEnvelopePointEx"}, 7515 #endif 7516 #if defined(REAPERAPI_WANT_DeleteEnvelopePointRange) || !defined(REAPERAPI_MINIMAL) 7517 {(void**)&DeleteEnvelopePointRange,"DeleteEnvelopePointRange"}, 7518 #endif 7519 #if defined(REAPERAPI_WANT_DeleteEnvelopePointRangeEx) || !defined(REAPERAPI_MINIMAL) 7520 {(void**)&DeleteEnvelopePointRangeEx,"DeleteEnvelopePointRangeEx"}, 7521 #endif 7522 #if defined(REAPERAPI_WANT_DeleteExtState) || !defined(REAPERAPI_MINIMAL) 7523 {(void**)&DeleteExtState,"DeleteExtState"}, 7524 #endif 7525 #if defined(REAPERAPI_WANT_DeleteProjectMarker) || !defined(REAPERAPI_MINIMAL) 7526 {(void**)&DeleteProjectMarker,"DeleteProjectMarker"}, 7527 #endif 7528 #if defined(REAPERAPI_WANT_DeleteProjectMarkerByIndex) || !defined(REAPERAPI_MINIMAL) 7529 {(void**)&DeleteProjectMarkerByIndex,"DeleteProjectMarkerByIndex"}, 7530 #endif 7531 #if defined(REAPERAPI_WANT_DeleteTakeMarker) || !defined(REAPERAPI_MINIMAL) 7532 {(void**)&DeleteTakeMarker,"DeleteTakeMarker"}, 7533 #endif 7534 #if defined(REAPERAPI_WANT_DeleteTakeStretchMarkers) || !defined(REAPERAPI_MINIMAL) 7535 {(void**)&DeleteTakeStretchMarkers,"DeleteTakeStretchMarkers"}, 7536 #endif 7537 #if defined(REAPERAPI_WANT_DeleteTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 7538 {(void**)&DeleteTempoTimeSigMarker,"DeleteTempoTimeSigMarker"}, 7539 #endif 7540 #if defined(REAPERAPI_WANT_DeleteTrack) || !defined(REAPERAPI_MINIMAL) 7541 {(void**)&DeleteTrack,"DeleteTrack"}, 7542 #endif 7543 #if defined(REAPERAPI_WANT_DeleteTrackMediaItem) || !defined(REAPERAPI_MINIMAL) 7544 {(void**)&DeleteTrackMediaItem,"DeleteTrackMediaItem"}, 7545 #endif 7546 #if defined(REAPERAPI_WANT_DestroyAudioAccessor) || !defined(REAPERAPI_MINIMAL) 7547 {(void**)&DestroyAudioAccessor,"DestroyAudioAccessor"}, 7548 #endif 7549 #if defined(REAPERAPI_WANT_DestroyLocalOscHandler) || !defined(REAPERAPI_MINIMAL) 7550 {(void**)&DestroyLocalOscHandler,"DestroyLocalOscHandler"}, 7551 #endif 7552 #if defined(REAPERAPI_WANT_DoActionShortcutDialog) || !defined(REAPERAPI_MINIMAL) 7553 {(void**)&DoActionShortcutDialog,"DoActionShortcutDialog"}, 7554 #endif 7555 #if defined(REAPERAPI_WANT_Dock_UpdateDockID) || !defined(REAPERAPI_MINIMAL) 7556 {(void**)&Dock_UpdateDockID,"Dock_UpdateDockID"}, 7557 #endif 7558 #if defined(REAPERAPI_WANT_DockGetPosition) || !defined(REAPERAPI_MINIMAL) 7559 {(void**)&DockGetPosition,"DockGetPosition"}, 7560 #endif 7561 #if defined(REAPERAPI_WANT_DockIsChildOfDock) || !defined(REAPERAPI_MINIMAL) 7562 {(void**)&DockIsChildOfDock,"DockIsChildOfDock"}, 7563 #endif 7564 #if defined(REAPERAPI_WANT_DockWindowActivate) || !defined(REAPERAPI_MINIMAL) 7565 {(void**)&DockWindowActivate,"DockWindowActivate"}, 7566 #endif 7567 #if defined(REAPERAPI_WANT_DockWindowAdd) || !defined(REAPERAPI_MINIMAL) 7568 {(void**)&DockWindowAdd,"DockWindowAdd"}, 7569 #endif 7570 #if defined(REAPERAPI_WANT_DockWindowAddEx) || !defined(REAPERAPI_MINIMAL) 7571 {(void**)&DockWindowAddEx,"DockWindowAddEx"}, 7572 #endif 7573 #if defined(REAPERAPI_WANT_DockWindowRefresh) || !defined(REAPERAPI_MINIMAL) 7574 {(void**)&DockWindowRefresh,"DockWindowRefresh"}, 7575 #endif 7576 #if defined(REAPERAPI_WANT_DockWindowRefreshForHWND) || !defined(REAPERAPI_MINIMAL) 7577 {(void**)&DockWindowRefreshForHWND,"DockWindowRefreshForHWND"}, 7578 #endif 7579 #if defined(REAPERAPI_WANT_DockWindowRemove) || !defined(REAPERAPI_MINIMAL) 7580 {(void**)&DockWindowRemove,"DockWindowRemove"}, 7581 #endif 7582 #if defined(REAPERAPI_WANT_DuplicateCustomizableMenu) || !defined(REAPERAPI_MINIMAL) 7583 {(void**)&DuplicateCustomizableMenu,"DuplicateCustomizableMenu"}, 7584 #endif 7585 #if defined(REAPERAPI_WANT_EditTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 7586 {(void**)&EditTempoTimeSigMarker,"EditTempoTimeSigMarker"}, 7587 #endif 7588 #if defined(REAPERAPI_WANT_EnsureNotCompletelyOffscreen) || !defined(REAPERAPI_MINIMAL) 7589 {(void**)&EnsureNotCompletelyOffscreen,"EnsureNotCompletelyOffscreen"}, 7590 #endif 7591 #if defined(REAPERAPI_WANT_EnumerateFiles) || !defined(REAPERAPI_MINIMAL) 7592 {(void**)&EnumerateFiles,"EnumerateFiles"}, 7593 #endif 7594 #if defined(REAPERAPI_WANT_EnumerateSubdirectories) || !defined(REAPERAPI_MINIMAL) 7595 {(void**)&EnumerateSubdirectories,"EnumerateSubdirectories"}, 7596 #endif 7597 #if defined(REAPERAPI_WANT_EnumPitchShiftModes) || !defined(REAPERAPI_MINIMAL) 7598 {(void**)&EnumPitchShiftModes,"EnumPitchShiftModes"}, 7599 #endif 7600 #if defined(REAPERAPI_WANT_EnumPitchShiftSubModes) || !defined(REAPERAPI_MINIMAL) 7601 {(void**)&EnumPitchShiftSubModes,"EnumPitchShiftSubModes"}, 7602 #endif 7603 #if defined(REAPERAPI_WANT_EnumProjectMarkers) || !defined(REAPERAPI_MINIMAL) 7604 {(void**)&EnumProjectMarkers,"EnumProjectMarkers"}, 7605 #endif 7606 #if defined(REAPERAPI_WANT_EnumProjectMarkers2) || !defined(REAPERAPI_MINIMAL) 7607 {(void**)&EnumProjectMarkers2,"EnumProjectMarkers2"}, 7608 #endif 7609 #if defined(REAPERAPI_WANT_EnumProjectMarkers3) || !defined(REAPERAPI_MINIMAL) 7610 {(void**)&EnumProjectMarkers3,"EnumProjectMarkers3"}, 7611 #endif 7612 #if defined(REAPERAPI_WANT_EnumProjects) || !defined(REAPERAPI_MINIMAL) 7613 {(void**)&EnumProjects,"EnumProjects"}, 7614 #endif 7615 #if defined(REAPERAPI_WANT_EnumProjExtState) || !defined(REAPERAPI_MINIMAL) 7616 {(void**)&EnumProjExtState,"EnumProjExtState"}, 7617 #endif 7618 #if defined(REAPERAPI_WANT_EnumRegionRenderMatrix) || !defined(REAPERAPI_MINIMAL) 7619 {(void**)&EnumRegionRenderMatrix,"EnumRegionRenderMatrix"}, 7620 #endif 7621 #if defined(REAPERAPI_WANT_EnumTrackMIDIProgramNames) || !defined(REAPERAPI_MINIMAL) 7622 {(void**)&EnumTrackMIDIProgramNames,"EnumTrackMIDIProgramNames"}, 7623 #endif 7624 #if defined(REAPERAPI_WANT_EnumTrackMIDIProgramNamesEx) || !defined(REAPERAPI_MINIMAL) 7625 {(void**)&EnumTrackMIDIProgramNamesEx,"EnumTrackMIDIProgramNamesEx"}, 7626 #endif 7627 #if defined(REAPERAPI_WANT_Envelope_Evaluate) || !defined(REAPERAPI_MINIMAL) 7628 {(void**)&Envelope_Evaluate,"Envelope_Evaluate"}, 7629 #endif 7630 #if defined(REAPERAPI_WANT_Envelope_FormatValue) || !defined(REAPERAPI_MINIMAL) 7631 {(void**)&Envelope_FormatValue,"Envelope_FormatValue"}, 7632 #endif 7633 #if defined(REAPERAPI_WANT_Envelope_GetParentTake) || !defined(REAPERAPI_MINIMAL) 7634 {(void**)&Envelope_GetParentTake,"Envelope_GetParentTake"}, 7635 #endif 7636 #if defined(REAPERAPI_WANT_Envelope_GetParentTrack) || !defined(REAPERAPI_MINIMAL) 7637 {(void**)&Envelope_GetParentTrack,"Envelope_GetParentTrack"}, 7638 #endif 7639 #if defined(REAPERAPI_WANT_Envelope_SortPoints) || !defined(REAPERAPI_MINIMAL) 7640 {(void**)&Envelope_SortPoints,"Envelope_SortPoints"}, 7641 #endif 7642 #if defined(REAPERAPI_WANT_Envelope_SortPointsEx) || !defined(REAPERAPI_MINIMAL) 7643 {(void**)&Envelope_SortPointsEx,"Envelope_SortPointsEx"}, 7644 #endif 7645 #if defined(REAPERAPI_WANT_ExecProcess) || !defined(REAPERAPI_MINIMAL) 7646 {(void**)&ExecProcess,"ExecProcess"}, 7647 #endif 7648 #if defined(REAPERAPI_WANT_file_exists) || !defined(REAPERAPI_MINIMAL) 7649 {(void**)&file_exists,"file_exists"}, 7650 #endif 7651 #if defined(REAPERAPI_WANT_FindTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 7652 {(void**)&FindTempoTimeSigMarker,"FindTempoTimeSigMarker"}, 7653 #endif 7654 #if defined(REAPERAPI_WANT_format_timestr) || !defined(REAPERAPI_MINIMAL) 7655 {(void**)&format_timestr,"format_timestr"}, 7656 #endif 7657 #if defined(REAPERAPI_WANT_format_timestr_len) || !defined(REAPERAPI_MINIMAL) 7658 {(void**)&format_timestr_len,"format_timestr_len"}, 7659 #endif 7660 #if defined(REAPERAPI_WANT_format_timestr_pos) || !defined(REAPERAPI_MINIMAL) 7661 {(void**)&format_timestr_pos,"format_timestr_pos"}, 7662 #endif 7663 #if defined(REAPERAPI_WANT_FreeHeapPtr) || !defined(REAPERAPI_MINIMAL) 7664 {(void**)&FreeHeapPtr,"FreeHeapPtr"}, 7665 #endif 7666 #if defined(REAPERAPI_WANT_genGuid) || !defined(REAPERAPI_MINIMAL) 7667 {(void**)&genGuid,"genGuid"}, 7668 #endif 7669 #if defined(REAPERAPI_WANT_get_config_var) || !defined(REAPERAPI_MINIMAL) 7670 {(void**)&get_config_var,"get_config_var"}, 7671 #endif 7672 #if defined(REAPERAPI_WANT_get_config_var_string) || !defined(REAPERAPI_MINIMAL) 7673 {(void**)&get_config_var_string,"get_config_var_string"}, 7674 #endif 7675 #if defined(REAPERAPI_WANT_get_ini_file) || !defined(REAPERAPI_MINIMAL) 7676 {(void**)&get_ini_file,"get_ini_file"}, 7677 #endif 7678 #if defined(REAPERAPI_WANT_get_midi_config_var) || !defined(REAPERAPI_MINIMAL) 7679 {(void**)&get_midi_config_var,"get_midi_config_var"}, 7680 #endif 7681 #if defined(REAPERAPI_WANT_GetActionShortcutDesc) || !defined(REAPERAPI_MINIMAL) 7682 {(void**)&GetActionShortcutDesc,"GetActionShortcutDesc"}, 7683 #endif 7684 #if defined(REAPERAPI_WANT_GetActiveTake) || !defined(REAPERAPI_MINIMAL) 7685 {(void**)&GetActiveTake,"GetActiveTake"}, 7686 #endif 7687 #if defined(REAPERAPI_WANT_GetAllProjectPlayStates) || !defined(REAPERAPI_MINIMAL) 7688 {(void**)&GetAllProjectPlayStates,"GetAllProjectPlayStates"}, 7689 #endif 7690 #if defined(REAPERAPI_WANT_GetAppVersion) || !defined(REAPERAPI_MINIMAL) 7691 {(void**)&GetAppVersion,"GetAppVersion"}, 7692 #endif 7693 #if defined(REAPERAPI_WANT_GetArmedCommand) || !defined(REAPERAPI_MINIMAL) 7694 {(void**)&GetArmedCommand,"GetArmedCommand"}, 7695 #endif 7696 #if defined(REAPERAPI_WANT_GetAudioAccessorEndTime) || !defined(REAPERAPI_MINIMAL) 7697 {(void**)&GetAudioAccessorEndTime,"GetAudioAccessorEndTime"}, 7698 #endif 7699 #if defined(REAPERAPI_WANT_GetAudioAccessorHash) || !defined(REAPERAPI_MINIMAL) 7700 {(void**)&GetAudioAccessorHash,"GetAudioAccessorHash"}, 7701 #endif 7702 #if defined(REAPERAPI_WANT_GetAudioAccessorSamples) || !defined(REAPERAPI_MINIMAL) 7703 {(void**)&GetAudioAccessorSamples,"GetAudioAccessorSamples"}, 7704 #endif 7705 #if defined(REAPERAPI_WANT_GetAudioAccessorStartTime) || !defined(REAPERAPI_MINIMAL) 7706 {(void**)&GetAudioAccessorStartTime,"GetAudioAccessorStartTime"}, 7707 #endif 7708 #if defined(REAPERAPI_WANT_GetAudioDeviceInfo) || !defined(REAPERAPI_MINIMAL) 7709 {(void**)&GetAudioDeviceInfo,"GetAudioDeviceInfo"}, 7710 #endif 7711 #if defined(REAPERAPI_WANT_GetColorTheme) || !defined(REAPERAPI_MINIMAL) 7712 {(void**)&GetColorTheme,"GetColorTheme"}, 7713 #endif 7714 #if defined(REAPERAPI_WANT_GetColorThemeStruct) || !defined(REAPERAPI_MINIMAL) 7715 {(void**)&GetColorThemeStruct,"GetColorThemeStruct"}, 7716 #endif 7717 #if defined(REAPERAPI_WANT_GetConfigWantsDock) || !defined(REAPERAPI_MINIMAL) 7718 {(void**)&GetConfigWantsDock,"GetConfigWantsDock"}, 7719 #endif 7720 #if defined(REAPERAPI_WANT_GetContextMenu) || !defined(REAPERAPI_MINIMAL) 7721 {(void**)&GetContextMenu,"GetContextMenu"}, 7722 #endif 7723 #if defined(REAPERAPI_WANT_GetCurrentProjectInLoadSave) || !defined(REAPERAPI_MINIMAL) 7724 {(void**)&GetCurrentProjectInLoadSave,"GetCurrentProjectInLoadSave"}, 7725 #endif 7726 #if defined(REAPERAPI_WANT_GetCursorContext) || !defined(REAPERAPI_MINIMAL) 7727 {(void**)&GetCursorContext,"GetCursorContext"}, 7728 #endif 7729 #if defined(REAPERAPI_WANT_GetCursorContext2) || !defined(REAPERAPI_MINIMAL) 7730 {(void**)&GetCursorContext2,"GetCursorContext2"}, 7731 #endif 7732 #if defined(REAPERAPI_WANT_GetCursorPosition) || !defined(REAPERAPI_MINIMAL) 7733 {(void**)&GetCursorPosition,"GetCursorPosition"}, 7734 #endif 7735 #if defined(REAPERAPI_WANT_GetCursorPositionEx) || !defined(REAPERAPI_MINIMAL) 7736 {(void**)&GetCursorPositionEx,"GetCursorPositionEx"}, 7737 #endif 7738 #if defined(REAPERAPI_WANT_GetDisplayedMediaItemColor) || !defined(REAPERAPI_MINIMAL) 7739 {(void**)&GetDisplayedMediaItemColor,"GetDisplayedMediaItemColor"}, 7740 #endif 7741 #if defined(REAPERAPI_WANT_GetDisplayedMediaItemColor2) || !defined(REAPERAPI_MINIMAL) 7742 {(void**)&GetDisplayedMediaItemColor2,"GetDisplayedMediaItemColor2"}, 7743 #endif 7744 #if defined(REAPERAPI_WANT_GetEnvelopeInfo_Value) || !defined(REAPERAPI_MINIMAL) 7745 {(void**)&GetEnvelopeInfo_Value,"GetEnvelopeInfo_Value"}, 7746 #endif 7747 #if defined(REAPERAPI_WANT_GetEnvelopeName) || !defined(REAPERAPI_MINIMAL) 7748 {(void**)&GetEnvelopeName,"GetEnvelopeName"}, 7749 #endif 7750 #if defined(REAPERAPI_WANT_GetEnvelopePoint) || !defined(REAPERAPI_MINIMAL) 7751 {(void**)&GetEnvelopePoint,"GetEnvelopePoint"}, 7752 #endif 7753 #if defined(REAPERAPI_WANT_GetEnvelopePointByTime) || !defined(REAPERAPI_MINIMAL) 7754 {(void**)&GetEnvelopePointByTime,"GetEnvelopePointByTime"}, 7755 #endif 7756 #if defined(REAPERAPI_WANT_GetEnvelopePointByTimeEx) || !defined(REAPERAPI_MINIMAL) 7757 {(void**)&GetEnvelopePointByTimeEx,"GetEnvelopePointByTimeEx"}, 7758 #endif 7759 #if defined(REAPERAPI_WANT_GetEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 7760 {(void**)&GetEnvelopePointEx,"GetEnvelopePointEx"}, 7761 #endif 7762 #if defined(REAPERAPI_WANT_GetEnvelopeScalingMode) || !defined(REAPERAPI_MINIMAL) 7763 {(void**)&GetEnvelopeScalingMode,"GetEnvelopeScalingMode"}, 7764 #endif 7765 #if defined(REAPERAPI_WANT_GetEnvelopeStateChunk) || !defined(REAPERAPI_MINIMAL) 7766 {(void**)&GetEnvelopeStateChunk,"GetEnvelopeStateChunk"}, 7767 #endif 7768 #if defined(REAPERAPI_WANT_GetExePath) || !defined(REAPERAPI_MINIMAL) 7769 {(void**)&GetExePath,"GetExePath"}, 7770 #endif 7771 #if defined(REAPERAPI_WANT_GetExtState) || !defined(REAPERAPI_MINIMAL) 7772 {(void**)&GetExtState,"GetExtState"}, 7773 #endif 7774 #if defined(REAPERAPI_WANT_GetFocusedFX) || !defined(REAPERAPI_MINIMAL) 7775 {(void**)&GetFocusedFX,"GetFocusedFX"}, 7776 #endif 7777 #if defined(REAPERAPI_WANT_GetFocusedFX2) || !defined(REAPERAPI_MINIMAL) 7778 {(void**)&GetFocusedFX2,"GetFocusedFX2"}, 7779 #endif 7780 #if defined(REAPERAPI_WANT_GetFreeDiskSpaceForRecordPath) || !defined(REAPERAPI_MINIMAL) 7781 {(void**)&GetFreeDiskSpaceForRecordPath,"GetFreeDiskSpaceForRecordPath"}, 7782 #endif 7783 #if defined(REAPERAPI_WANT_GetFXEnvelope) || !defined(REAPERAPI_MINIMAL) 7784 {(void**)&GetFXEnvelope,"GetFXEnvelope"}, 7785 #endif 7786 #if defined(REAPERAPI_WANT_GetGlobalAutomationOverride) || !defined(REAPERAPI_MINIMAL) 7787 {(void**)&GetGlobalAutomationOverride,"GetGlobalAutomationOverride"}, 7788 #endif 7789 #if defined(REAPERAPI_WANT_GetHZoomLevel) || !defined(REAPERAPI_MINIMAL) 7790 {(void**)&GetHZoomLevel,"GetHZoomLevel"}, 7791 #endif 7792 #if defined(REAPERAPI_WANT_GetIconThemePointer) || !defined(REAPERAPI_MINIMAL) 7793 {(void**)&GetIconThemePointer,"GetIconThemePointer"}, 7794 #endif 7795 #if defined(REAPERAPI_WANT_GetIconThemePointerForDPI) || !defined(REAPERAPI_MINIMAL) 7796 {(void**)&GetIconThemePointerForDPI,"GetIconThemePointerForDPI"}, 7797 #endif 7798 #if defined(REAPERAPI_WANT_GetIconThemeStruct) || !defined(REAPERAPI_MINIMAL) 7799 {(void**)&GetIconThemeStruct,"GetIconThemeStruct"}, 7800 #endif 7801 #if defined(REAPERAPI_WANT_GetInputChannelName) || !defined(REAPERAPI_MINIMAL) 7802 {(void**)&GetInputChannelName,"GetInputChannelName"}, 7803 #endif 7804 #if defined(REAPERAPI_WANT_GetInputOutputLatency) || !defined(REAPERAPI_MINIMAL) 7805 {(void**)&GetInputOutputLatency,"GetInputOutputLatency"}, 7806 #endif 7807 #if defined(REAPERAPI_WANT_GetItemEditingTime2) || !defined(REAPERAPI_MINIMAL) 7808 {(void**)&GetItemEditingTime2,"GetItemEditingTime2"}, 7809 #endif 7810 #if defined(REAPERAPI_WANT_GetItemFromPoint) || !defined(REAPERAPI_MINIMAL) 7811 {(void**)&GetItemFromPoint,"GetItemFromPoint"}, 7812 #endif 7813 #if defined(REAPERAPI_WANT_GetItemProjectContext) || !defined(REAPERAPI_MINIMAL) 7814 {(void**)&GetItemProjectContext,"GetItemProjectContext"}, 7815 #endif 7816 #if defined(REAPERAPI_WANT_GetItemStateChunk) || !defined(REAPERAPI_MINIMAL) 7817 {(void**)&GetItemStateChunk,"GetItemStateChunk"}, 7818 #endif 7819 #if defined(REAPERAPI_WANT_GetLastColorThemeFile) || !defined(REAPERAPI_MINIMAL) 7820 {(void**)&GetLastColorThemeFile,"GetLastColorThemeFile"}, 7821 #endif 7822 #if defined(REAPERAPI_WANT_GetLastMarkerAndCurRegion) || !defined(REAPERAPI_MINIMAL) 7823 {(void**)&GetLastMarkerAndCurRegion,"GetLastMarkerAndCurRegion"}, 7824 #endif 7825 #if defined(REAPERAPI_WANT_GetLastTouchedFX) || !defined(REAPERAPI_MINIMAL) 7826 {(void**)&GetLastTouchedFX,"GetLastTouchedFX"}, 7827 #endif 7828 #if defined(REAPERAPI_WANT_GetLastTouchedTrack) || !defined(REAPERAPI_MINIMAL) 7829 {(void**)&GetLastTouchedTrack,"GetLastTouchedTrack"}, 7830 #endif 7831 #if defined(REAPERAPI_WANT_GetMainHwnd) || !defined(REAPERAPI_MINIMAL) 7832 {(void**)&GetMainHwnd,"GetMainHwnd"}, 7833 #endif 7834 #if defined(REAPERAPI_WANT_GetMasterMuteSoloFlags) || !defined(REAPERAPI_MINIMAL) 7835 {(void**)&GetMasterMuteSoloFlags,"GetMasterMuteSoloFlags"}, 7836 #endif 7837 #if defined(REAPERAPI_WANT_GetMasterTrack) || !defined(REAPERAPI_MINIMAL) 7838 {(void**)&GetMasterTrack,"GetMasterTrack"}, 7839 #endif 7840 #if defined(REAPERAPI_WANT_GetMasterTrackVisibility) || !defined(REAPERAPI_MINIMAL) 7841 {(void**)&GetMasterTrackVisibility,"GetMasterTrackVisibility"}, 7842 #endif 7843 #if defined(REAPERAPI_WANT_GetMaxMidiInputs) || !defined(REAPERAPI_MINIMAL) 7844 {(void**)&GetMaxMidiInputs,"GetMaxMidiInputs"}, 7845 #endif 7846 #if defined(REAPERAPI_WANT_GetMaxMidiOutputs) || !defined(REAPERAPI_MINIMAL) 7847 {(void**)&GetMaxMidiOutputs,"GetMaxMidiOutputs"}, 7848 #endif 7849 #if defined(REAPERAPI_WANT_GetMediaFileMetadata) || !defined(REAPERAPI_MINIMAL) 7850 {(void**)&GetMediaFileMetadata,"GetMediaFileMetadata"}, 7851 #endif 7852 #if defined(REAPERAPI_WANT_GetMediaItem) || !defined(REAPERAPI_MINIMAL) 7853 {(void**)&GetMediaItem,"GetMediaItem"}, 7854 #endif 7855 #if defined(REAPERAPI_WANT_GetMediaItem_Track) || !defined(REAPERAPI_MINIMAL) 7856 {(void**)&GetMediaItem_Track,"GetMediaItem_Track"}, 7857 #endif 7858 #if defined(REAPERAPI_WANT_GetMediaItemInfo_Value) || !defined(REAPERAPI_MINIMAL) 7859 {(void**)&GetMediaItemInfo_Value,"GetMediaItemInfo_Value"}, 7860 #endif 7861 #if defined(REAPERAPI_WANT_GetMediaItemNumTakes) || !defined(REAPERAPI_MINIMAL) 7862 {(void**)&GetMediaItemNumTakes,"GetMediaItemNumTakes"}, 7863 #endif 7864 #if defined(REAPERAPI_WANT_GetMediaItemTake) || !defined(REAPERAPI_MINIMAL) 7865 {(void**)&GetMediaItemTake,"GetMediaItemTake"}, 7866 #endif 7867 #if defined(REAPERAPI_WANT_GetMediaItemTake_Item) || !defined(REAPERAPI_MINIMAL) 7868 {(void**)&GetMediaItemTake_Item,"GetMediaItemTake_Item"}, 7869 #endif 7870 #if defined(REAPERAPI_WANT_GetMediaItemTake_Peaks) || !defined(REAPERAPI_MINIMAL) 7871 {(void**)&GetMediaItemTake_Peaks,"GetMediaItemTake_Peaks"}, 7872 #endif 7873 #if defined(REAPERAPI_WANT_GetMediaItemTake_Source) || !defined(REAPERAPI_MINIMAL) 7874 {(void**)&GetMediaItemTake_Source,"GetMediaItemTake_Source"}, 7875 #endif 7876 #if defined(REAPERAPI_WANT_GetMediaItemTake_Track) || !defined(REAPERAPI_MINIMAL) 7877 {(void**)&GetMediaItemTake_Track,"GetMediaItemTake_Track"}, 7878 #endif 7879 #if defined(REAPERAPI_WANT_GetMediaItemTakeByGUID) || !defined(REAPERAPI_MINIMAL) 7880 {(void**)&GetMediaItemTakeByGUID,"GetMediaItemTakeByGUID"}, 7881 #endif 7882 #if defined(REAPERAPI_WANT_GetMediaItemTakeInfo_Value) || !defined(REAPERAPI_MINIMAL) 7883 {(void**)&GetMediaItemTakeInfo_Value,"GetMediaItemTakeInfo_Value"}, 7884 #endif 7885 #if defined(REAPERAPI_WANT_GetMediaItemTrack) || !defined(REAPERAPI_MINIMAL) 7886 {(void**)&GetMediaItemTrack,"GetMediaItemTrack"}, 7887 #endif 7888 #if defined(REAPERAPI_WANT_GetMediaSourceFileName) || !defined(REAPERAPI_MINIMAL) 7889 {(void**)&GetMediaSourceFileName,"GetMediaSourceFileName"}, 7890 #endif 7891 #if defined(REAPERAPI_WANT_GetMediaSourceLength) || !defined(REAPERAPI_MINIMAL) 7892 {(void**)&GetMediaSourceLength,"GetMediaSourceLength"}, 7893 #endif 7894 #if defined(REAPERAPI_WANT_GetMediaSourceNumChannels) || !defined(REAPERAPI_MINIMAL) 7895 {(void**)&GetMediaSourceNumChannels,"GetMediaSourceNumChannels"}, 7896 #endif 7897 #if defined(REAPERAPI_WANT_GetMediaSourceParent) || !defined(REAPERAPI_MINIMAL) 7898 {(void**)&GetMediaSourceParent,"GetMediaSourceParent"}, 7899 #endif 7900 #if defined(REAPERAPI_WANT_GetMediaSourceSampleRate) || !defined(REAPERAPI_MINIMAL) 7901 {(void**)&GetMediaSourceSampleRate,"GetMediaSourceSampleRate"}, 7902 #endif 7903 #if defined(REAPERAPI_WANT_GetMediaSourceType) || !defined(REAPERAPI_MINIMAL) 7904 {(void**)&GetMediaSourceType,"GetMediaSourceType"}, 7905 #endif 7906 #if defined(REAPERAPI_WANT_GetMediaTrackInfo_Value) || !defined(REAPERAPI_MINIMAL) 7907 {(void**)&GetMediaTrackInfo_Value,"GetMediaTrackInfo_Value"}, 7908 #endif 7909 #if defined(REAPERAPI_WANT_GetMIDIInputName) || !defined(REAPERAPI_MINIMAL) 7910 {(void**)&GetMIDIInputName,"GetMIDIInputName"}, 7911 #endif 7912 #if defined(REAPERAPI_WANT_GetMIDIOutputName) || !defined(REAPERAPI_MINIMAL) 7913 {(void**)&GetMIDIOutputName,"GetMIDIOutputName"}, 7914 #endif 7915 #if defined(REAPERAPI_WANT_GetMixerScroll) || !defined(REAPERAPI_MINIMAL) 7916 {(void**)&GetMixerScroll,"GetMixerScroll"}, 7917 #endif 7918 #if defined(REAPERAPI_WANT_GetMouseModifier) || !defined(REAPERAPI_MINIMAL) 7919 {(void**)&GetMouseModifier,"GetMouseModifier"}, 7920 #endif 7921 #if defined(REAPERAPI_WANT_GetMousePosition) || !defined(REAPERAPI_MINIMAL) 7922 {(void**)&GetMousePosition,"GetMousePosition"}, 7923 #endif 7924 #if defined(REAPERAPI_WANT_GetNumAudioInputs) || !defined(REAPERAPI_MINIMAL) 7925 {(void**)&GetNumAudioInputs,"GetNumAudioInputs"}, 7926 #endif 7927 #if defined(REAPERAPI_WANT_GetNumAudioOutputs) || !defined(REAPERAPI_MINIMAL) 7928 {(void**)&GetNumAudioOutputs,"GetNumAudioOutputs"}, 7929 #endif 7930 #if defined(REAPERAPI_WANT_GetNumMIDIInputs) || !defined(REAPERAPI_MINIMAL) 7931 {(void**)&GetNumMIDIInputs,"GetNumMIDIInputs"}, 7932 #endif 7933 #if defined(REAPERAPI_WANT_GetNumMIDIOutputs) || !defined(REAPERAPI_MINIMAL) 7934 {(void**)&GetNumMIDIOutputs,"GetNumMIDIOutputs"}, 7935 #endif 7936 #if defined(REAPERAPI_WANT_GetNumTakeMarkers) || !defined(REAPERAPI_MINIMAL) 7937 {(void**)&GetNumTakeMarkers,"GetNumTakeMarkers"}, 7938 #endif 7939 #if defined(REAPERAPI_WANT_GetNumTracks) || !defined(REAPERAPI_MINIMAL) 7940 {(void**)&GetNumTracks,"GetNumTracks"}, 7941 #endif 7942 #if defined(REAPERAPI_WANT_GetOS) || !defined(REAPERAPI_MINIMAL) 7943 {(void**)&GetOS,"GetOS"}, 7944 #endif 7945 #if defined(REAPERAPI_WANT_GetOutputChannelName) || !defined(REAPERAPI_MINIMAL) 7946 {(void**)&GetOutputChannelName,"GetOutputChannelName"}, 7947 #endif 7948 #if defined(REAPERAPI_WANT_GetOutputLatency) || !defined(REAPERAPI_MINIMAL) 7949 {(void**)&GetOutputLatency,"GetOutputLatency"}, 7950 #endif 7951 #if defined(REAPERAPI_WANT_GetParentTrack) || !defined(REAPERAPI_MINIMAL) 7952 {(void**)&GetParentTrack,"GetParentTrack"}, 7953 #endif 7954 #if defined(REAPERAPI_WANT_GetPeakFileName) || !defined(REAPERAPI_MINIMAL) 7955 {(void**)&GetPeakFileName,"GetPeakFileName"}, 7956 #endif 7957 #if defined(REAPERAPI_WANT_GetPeakFileNameEx) || !defined(REAPERAPI_MINIMAL) 7958 {(void**)&GetPeakFileNameEx,"GetPeakFileNameEx"}, 7959 #endif 7960 #if defined(REAPERAPI_WANT_GetPeakFileNameEx2) || !defined(REAPERAPI_MINIMAL) 7961 {(void**)&GetPeakFileNameEx2,"GetPeakFileNameEx2"}, 7962 #endif 7963 #if defined(REAPERAPI_WANT_GetPeaksBitmap) || !defined(REAPERAPI_MINIMAL) 7964 {(void**)&GetPeaksBitmap,"GetPeaksBitmap"}, 7965 #endif 7966 #if defined(REAPERAPI_WANT_GetPlayPosition) || !defined(REAPERAPI_MINIMAL) 7967 {(void**)&GetPlayPosition,"GetPlayPosition"}, 7968 #endif 7969 #if defined(REAPERAPI_WANT_GetPlayPosition2) || !defined(REAPERAPI_MINIMAL) 7970 {(void**)&GetPlayPosition2,"GetPlayPosition2"}, 7971 #endif 7972 #if defined(REAPERAPI_WANT_GetPlayPosition2Ex) || !defined(REAPERAPI_MINIMAL) 7973 {(void**)&GetPlayPosition2Ex,"GetPlayPosition2Ex"}, 7974 #endif 7975 #if defined(REAPERAPI_WANT_GetPlayPositionEx) || !defined(REAPERAPI_MINIMAL) 7976 {(void**)&GetPlayPositionEx,"GetPlayPositionEx"}, 7977 #endif 7978 #if defined(REAPERAPI_WANT_GetPlayState) || !defined(REAPERAPI_MINIMAL) 7979 {(void**)&GetPlayState,"GetPlayState"}, 7980 #endif 7981 #if defined(REAPERAPI_WANT_GetPlayStateEx) || !defined(REAPERAPI_MINIMAL) 7982 {(void**)&GetPlayStateEx,"GetPlayStateEx"}, 7983 #endif 7984 #if defined(REAPERAPI_WANT_GetPreferredDiskReadMode) || !defined(REAPERAPI_MINIMAL) 7985 {(void**)&GetPreferredDiskReadMode,"GetPreferredDiskReadMode"}, 7986 #endif 7987 #if defined(REAPERAPI_WANT_GetPreferredDiskReadModePeak) || !defined(REAPERAPI_MINIMAL) 7988 {(void**)&GetPreferredDiskReadModePeak,"GetPreferredDiskReadModePeak"}, 7989 #endif 7990 #if defined(REAPERAPI_WANT_GetPreferredDiskWriteMode) || !defined(REAPERAPI_MINIMAL) 7991 {(void**)&GetPreferredDiskWriteMode,"GetPreferredDiskWriteMode"}, 7992 #endif 7993 #if defined(REAPERAPI_WANT_GetProjectLength) || !defined(REAPERAPI_MINIMAL) 7994 {(void**)&GetProjectLength,"GetProjectLength"}, 7995 #endif 7996 #if defined(REAPERAPI_WANT_GetProjectName) || !defined(REAPERAPI_MINIMAL) 7997 {(void**)&GetProjectName,"GetProjectName"}, 7998 #endif 7999 #if defined(REAPERAPI_WANT_GetProjectPath) || !defined(REAPERAPI_MINIMAL) 8000 {(void**)&GetProjectPath,"GetProjectPath"}, 8001 #endif 8002 #if defined(REAPERAPI_WANT_GetProjectPathEx) || !defined(REAPERAPI_MINIMAL) 8003 {(void**)&GetProjectPathEx,"GetProjectPathEx"}, 8004 #endif 8005 #if defined(REAPERAPI_WANT_GetProjectStateChangeCount) || !defined(REAPERAPI_MINIMAL) 8006 {(void**)&GetProjectStateChangeCount,"GetProjectStateChangeCount"}, 8007 #endif 8008 #if defined(REAPERAPI_WANT_GetProjectTimeOffset) || !defined(REAPERAPI_MINIMAL) 8009 {(void**)&GetProjectTimeOffset,"GetProjectTimeOffset"}, 8010 #endif 8011 #if defined(REAPERAPI_WANT_GetProjectTimeSignature) || !defined(REAPERAPI_MINIMAL) 8012 {(void**)&GetProjectTimeSignature,"GetProjectTimeSignature"}, 8013 #endif 8014 #if defined(REAPERAPI_WANT_GetProjectTimeSignature2) || !defined(REAPERAPI_MINIMAL) 8015 {(void**)&GetProjectTimeSignature2,"GetProjectTimeSignature2"}, 8016 #endif 8017 #if defined(REAPERAPI_WANT_GetProjExtState) || !defined(REAPERAPI_MINIMAL) 8018 {(void**)&GetProjExtState,"GetProjExtState"}, 8019 #endif 8020 #if defined(REAPERAPI_WANT_GetResourcePath) || !defined(REAPERAPI_MINIMAL) 8021 {(void**)&GetResourcePath,"GetResourcePath"}, 8022 #endif 8023 #if defined(REAPERAPI_WANT_GetSelectedEnvelope) || !defined(REAPERAPI_MINIMAL) 8024 {(void**)&GetSelectedEnvelope,"GetSelectedEnvelope"}, 8025 #endif 8026 #if defined(REAPERAPI_WANT_GetSelectedMediaItem) || !defined(REAPERAPI_MINIMAL) 8027 {(void**)&GetSelectedMediaItem,"GetSelectedMediaItem"}, 8028 #endif 8029 #if defined(REAPERAPI_WANT_GetSelectedTrack) || !defined(REAPERAPI_MINIMAL) 8030 {(void**)&GetSelectedTrack,"GetSelectedTrack"}, 8031 #endif 8032 #if defined(REAPERAPI_WANT_GetSelectedTrack2) || !defined(REAPERAPI_MINIMAL) 8033 {(void**)&GetSelectedTrack2,"GetSelectedTrack2"}, 8034 #endif 8035 #if defined(REAPERAPI_WANT_GetSelectedTrackEnvelope) || !defined(REAPERAPI_MINIMAL) 8036 {(void**)&GetSelectedTrackEnvelope,"GetSelectedTrackEnvelope"}, 8037 #endif 8038 #if defined(REAPERAPI_WANT_GetSet_ArrangeView2) || !defined(REAPERAPI_MINIMAL) 8039 {(void**)&GetSet_ArrangeView2,"GetSet_ArrangeView2"}, 8040 #endif 8041 #if defined(REAPERAPI_WANT_GetSet_LoopTimeRange) || !defined(REAPERAPI_MINIMAL) 8042 {(void**)&GetSet_LoopTimeRange,"GetSet_LoopTimeRange"}, 8043 #endif 8044 #if defined(REAPERAPI_WANT_GetSet_LoopTimeRange2) || !defined(REAPERAPI_MINIMAL) 8045 {(void**)&GetSet_LoopTimeRange2,"GetSet_LoopTimeRange2"}, 8046 #endif 8047 #if defined(REAPERAPI_WANT_GetSetAutomationItemInfo) || !defined(REAPERAPI_MINIMAL) 8048 {(void**)&GetSetAutomationItemInfo,"GetSetAutomationItemInfo"}, 8049 #endif 8050 #if defined(REAPERAPI_WANT_GetSetAutomationItemInfo_String) || !defined(REAPERAPI_MINIMAL) 8051 {(void**)&GetSetAutomationItemInfo_String,"GetSetAutomationItemInfo_String"}, 8052 #endif 8053 #if defined(REAPERAPI_WANT_GetSetEnvelopeInfo_String) || !defined(REAPERAPI_MINIMAL) 8054 {(void**)&GetSetEnvelopeInfo_String,"GetSetEnvelopeInfo_String"}, 8055 #endif 8056 #if defined(REAPERAPI_WANT_GetSetEnvelopeState) || !defined(REAPERAPI_MINIMAL) 8057 {(void**)&GetSetEnvelopeState,"GetSetEnvelopeState"}, 8058 #endif 8059 #if defined(REAPERAPI_WANT_GetSetEnvelopeState2) || !defined(REAPERAPI_MINIMAL) 8060 {(void**)&GetSetEnvelopeState2,"GetSetEnvelopeState2"}, 8061 #endif 8062 #if defined(REAPERAPI_WANT_GetSetItemState) || !defined(REAPERAPI_MINIMAL) 8063 {(void**)&GetSetItemState,"GetSetItemState"}, 8064 #endif 8065 #if defined(REAPERAPI_WANT_GetSetItemState2) || !defined(REAPERAPI_MINIMAL) 8066 {(void**)&GetSetItemState2,"GetSetItemState2"}, 8067 #endif 8068 #if defined(REAPERAPI_WANT_GetSetMediaItemInfo) || !defined(REAPERAPI_MINIMAL) 8069 {(void**)&GetSetMediaItemInfo,"GetSetMediaItemInfo"}, 8070 #endif 8071 #if defined(REAPERAPI_WANT_GetSetMediaItemInfo_String) || !defined(REAPERAPI_MINIMAL) 8072 {(void**)&GetSetMediaItemInfo_String,"GetSetMediaItemInfo_String"}, 8073 #endif 8074 #if defined(REAPERAPI_WANT_GetSetMediaItemTakeInfo) || !defined(REAPERAPI_MINIMAL) 8075 {(void**)&GetSetMediaItemTakeInfo,"GetSetMediaItemTakeInfo"}, 8076 #endif 8077 #if defined(REAPERAPI_WANT_GetSetMediaItemTakeInfo_String) || !defined(REAPERAPI_MINIMAL) 8078 {(void**)&GetSetMediaItemTakeInfo_String,"GetSetMediaItemTakeInfo_String"}, 8079 #endif 8080 #if defined(REAPERAPI_WANT_GetSetMediaTrackInfo) || !defined(REAPERAPI_MINIMAL) 8081 {(void**)&GetSetMediaTrackInfo,"GetSetMediaTrackInfo"}, 8082 #endif 8083 #if defined(REAPERAPI_WANT_GetSetMediaTrackInfo_String) || !defined(REAPERAPI_MINIMAL) 8084 {(void**)&GetSetMediaTrackInfo_String,"GetSetMediaTrackInfo_String"}, 8085 #endif 8086 #if defined(REAPERAPI_WANT_GetSetObjectState) || !defined(REAPERAPI_MINIMAL) 8087 {(void**)&GetSetObjectState,"GetSetObjectState"}, 8088 #endif 8089 #if defined(REAPERAPI_WANT_GetSetObjectState2) || !defined(REAPERAPI_MINIMAL) 8090 {(void**)&GetSetObjectState2,"GetSetObjectState2"}, 8091 #endif 8092 #if defined(REAPERAPI_WANT_GetSetProjectAuthor) || !defined(REAPERAPI_MINIMAL) 8093 {(void**)&GetSetProjectAuthor,"GetSetProjectAuthor"}, 8094 #endif 8095 #if defined(REAPERAPI_WANT_GetSetProjectGrid) || !defined(REAPERAPI_MINIMAL) 8096 {(void**)&GetSetProjectGrid,"GetSetProjectGrid"}, 8097 #endif 8098 #if defined(REAPERAPI_WANT_GetSetProjectInfo) || !defined(REAPERAPI_MINIMAL) 8099 {(void**)&GetSetProjectInfo,"GetSetProjectInfo"}, 8100 #endif 8101 #if defined(REAPERAPI_WANT_GetSetProjectInfo_String) || !defined(REAPERAPI_MINIMAL) 8102 {(void**)&GetSetProjectInfo_String,"GetSetProjectInfo_String"}, 8103 #endif 8104 #if defined(REAPERAPI_WANT_GetSetProjectNotes) || !defined(REAPERAPI_MINIMAL) 8105 {(void**)&GetSetProjectNotes,"GetSetProjectNotes"}, 8106 #endif 8107 #if defined(REAPERAPI_WANT_GetSetRepeat) || !defined(REAPERAPI_MINIMAL) 8108 {(void**)&GetSetRepeat,"GetSetRepeat"}, 8109 #endif 8110 #if defined(REAPERAPI_WANT_GetSetRepeatEx) || !defined(REAPERAPI_MINIMAL) 8111 {(void**)&GetSetRepeatEx,"GetSetRepeatEx"}, 8112 #endif 8113 #if defined(REAPERAPI_WANT_GetSetTrackGroupMembership) || !defined(REAPERAPI_MINIMAL) 8114 {(void**)&GetSetTrackGroupMembership,"GetSetTrackGroupMembership"}, 8115 #endif 8116 #if defined(REAPERAPI_WANT_GetSetTrackGroupMembershipHigh) || !defined(REAPERAPI_MINIMAL) 8117 {(void**)&GetSetTrackGroupMembershipHigh,"GetSetTrackGroupMembershipHigh"}, 8118 #endif 8119 #if defined(REAPERAPI_WANT_GetSetTrackMIDISupportFile) || !defined(REAPERAPI_MINIMAL) 8120 {(void**)&GetSetTrackMIDISupportFile,"GetSetTrackMIDISupportFile"}, 8121 #endif 8122 #if defined(REAPERAPI_WANT_GetSetTrackSendInfo) || !defined(REAPERAPI_MINIMAL) 8123 {(void**)&GetSetTrackSendInfo,"GetSetTrackSendInfo"}, 8124 #endif 8125 #if defined(REAPERAPI_WANT_GetSetTrackSendInfo_String) || !defined(REAPERAPI_MINIMAL) 8126 {(void**)&GetSetTrackSendInfo_String,"GetSetTrackSendInfo_String"}, 8127 #endif 8128 #if defined(REAPERAPI_WANT_GetSetTrackState) || !defined(REAPERAPI_MINIMAL) 8129 {(void**)&GetSetTrackState,"GetSetTrackState"}, 8130 #endif 8131 #if defined(REAPERAPI_WANT_GetSetTrackState2) || !defined(REAPERAPI_MINIMAL) 8132 {(void**)&GetSetTrackState2,"GetSetTrackState2"}, 8133 #endif 8134 #if defined(REAPERAPI_WANT_GetSubProjectFromSource) || !defined(REAPERAPI_MINIMAL) 8135 {(void**)&GetSubProjectFromSource,"GetSubProjectFromSource"}, 8136 #endif 8137 #if defined(REAPERAPI_WANT_GetTake) || !defined(REAPERAPI_MINIMAL) 8138 {(void**)&GetTake,"GetTake"}, 8139 #endif 8140 #if defined(REAPERAPI_WANT_GetTakeEnvelope) || !defined(REAPERAPI_MINIMAL) 8141 {(void**)&GetTakeEnvelope,"GetTakeEnvelope"}, 8142 #endif 8143 #if defined(REAPERAPI_WANT_GetTakeEnvelopeByName) || !defined(REAPERAPI_MINIMAL) 8144 {(void**)&GetTakeEnvelopeByName,"GetTakeEnvelopeByName"}, 8145 #endif 8146 #if defined(REAPERAPI_WANT_GetTakeMarker) || !defined(REAPERAPI_MINIMAL) 8147 {(void**)&GetTakeMarker,"GetTakeMarker"}, 8148 #endif 8149 #if defined(REAPERAPI_WANT_GetTakeName) || !defined(REAPERAPI_MINIMAL) 8150 {(void**)&GetTakeName,"GetTakeName"}, 8151 #endif 8152 #if defined(REAPERAPI_WANT_GetTakeNumStretchMarkers) || !defined(REAPERAPI_MINIMAL) 8153 {(void**)&GetTakeNumStretchMarkers,"GetTakeNumStretchMarkers"}, 8154 #endif 8155 #if defined(REAPERAPI_WANT_GetTakeStretchMarker) || !defined(REAPERAPI_MINIMAL) 8156 {(void**)&GetTakeStretchMarker,"GetTakeStretchMarker"}, 8157 #endif 8158 #if defined(REAPERAPI_WANT_GetTakeStretchMarkerSlope) || !defined(REAPERAPI_MINIMAL) 8159 {(void**)&GetTakeStretchMarkerSlope,"GetTakeStretchMarkerSlope"}, 8160 #endif 8161 #if defined(REAPERAPI_WANT_GetTCPFXParm) || !defined(REAPERAPI_MINIMAL) 8162 {(void**)&GetTCPFXParm,"GetTCPFXParm"}, 8163 #endif 8164 #if defined(REAPERAPI_WANT_GetTempoMatchPlayRate) || !defined(REAPERAPI_MINIMAL) 8165 {(void**)&GetTempoMatchPlayRate,"GetTempoMatchPlayRate"}, 8166 #endif 8167 #if defined(REAPERAPI_WANT_GetTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 8168 {(void**)&GetTempoTimeSigMarker,"GetTempoTimeSigMarker"}, 8169 #endif 8170 #if defined(REAPERAPI_WANT_GetThemeColor) || !defined(REAPERAPI_MINIMAL) 8171 {(void**)&GetThemeColor,"GetThemeColor"}, 8172 #endif 8173 #if defined(REAPERAPI_WANT_GetThingFromPoint) || !defined(REAPERAPI_MINIMAL) 8174 {(void**)&GetThingFromPoint,"GetThingFromPoint"}, 8175 #endif 8176 #if defined(REAPERAPI_WANT_GetToggleCommandState) || !defined(REAPERAPI_MINIMAL) 8177 {(void**)&GetToggleCommandState,"GetToggleCommandState"}, 8178 #endif 8179 #if defined(REAPERAPI_WANT_GetToggleCommandState2) || !defined(REAPERAPI_MINIMAL) 8180 {(void**)&GetToggleCommandState2,"GetToggleCommandState2"}, 8181 #endif 8182 #if defined(REAPERAPI_WANT_GetToggleCommandStateEx) || !defined(REAPERAPI_MINIMAL) 8183 {(void**)&GetToggleCommandStateEx,"GetToggleCommandStateEx"}, 8184 #endif 8185 #if defined(REAPERAPI_WANT_GetToggleCommandStateThroughHooks) || !defined(REAPERAPI_MINIMAL) 8186 {(void**)&GetToggleCommandStateThroughHooks,"GetToggleCommandStateThroughHooks"}, 8187 #endif 8188 #if defined(REAPERAPI_WANT_GetTooltipWindow) || !defined(REAPERAPI_MINIMAL) 8189 {(void**)&GetTooltipWindow,"GetTooltipWindow"}, 8190 #endif 8191 #if defined(REAPERAPI_WANT_GetTrack) || !defined(REAPERAPI_MINIMAL) 8192 {(void**)&GetTrack,"GetTrack"}, 8193 #endif 8194 #if defined(REAPERAPI_WANT_GetTrackAutomationMode) || !defined(REAPERAPI_MINIMAL) 8195 {(void**)&GetTrackAutomationMode,"GetTrackAutomationMode"}, 8196 #endif 8197 #if defined(REAPERAPI_WANT_GetTrackColor) || !defined(REAPERAPI_MINIMAL) 8198 {(void**)&GetTrackColor,"GetTrackColor"}, 8199 #endif 8200 #if defined(REAPERAPI_WANT_GetTrackDepth) || !defined(REAPERAPI_MINIMAL) 8201 {(void**)&GetTrackDepth,"GetTrackDepth"}, 8202 #endif 8203 #if defined(REAPERAPI_WANT_GetTrackEnvelope) || !defined(REAPERAPI_MINIMAL) 8204 {(void**)&GetTrackEnvelope,"GetTrackEnvelope"}, 8205 #endif 8206 #if defined(REAPERAPI_WANT_GetTrackEnvelopeByChunkName) || !defined(REAPERAPI_MINIMAL) 8207 {(void**)&GetTrackEnvelopeByChunkName,"GetTrackEnvelopeByChunkName"}, 8208 #endif 8209 #if defined(REAPERAPI_WANT_GetTrackEnvelopeByName) || !defined(REAPERAPI_MINIMAL) 8210 {(void**)&GetTrackEnvelopeByName,"GetTrackEnvelopeByName"}, 8211 #endif 8212 #if defined(REAPERAPI_WANT_GetTrackFromPoint) || !defined(REAPERAPI_MINIMAL) 8213 {(void**)&GetTrackFromPoint,"GetTrackFromPoint"}, 8214 #endif 8215 #if defined(REAPERAPI_WANT_GetTrackGUID) || !defined(REAPERAPI_MINIMAL) 8216 {(void**)&GetTrackGUID,"GetTrackGUID"}, 8217 #endif 8218 #if defined(REAPERAPI_WANT_GetTrackInfo) || !defined(REAPERAPI_MINIMAL) 8219 {(void**)&GetTrackInfo,"GetTrackInfo"}, 8220 #endif 8221 #if defined(REAPERAPI_WANT_GetTrackMediaItem) || !defined(REAPERAPI_MINIMAL) 8222 {(void**)&GetTrackMediaItem,"GetTrackMediaItem"}, 8223 #endif 8224 #if defined(REAPERAPI_WANT_GetTrackMIDILyrics) || !defined(REAPERAPI_MINIMAL) 8225 {(void**)&GetTrackMIDILyrics,"GetTrackMIDILyrics"}, 8226 #endif 8227 #if defined(REAPERAPI_WANT_GetTrackMIDINoteName) || !defined(REAPERAPI_MINIMAL) 8228 {(void**)&GetTrackMIDINoteName,"GetTrackMIDINoteName"}, 8229 #endif 8230 #if defined(REAPERAPI_WANT_GetTrackMIDINoteNameEx) || !defined(REAPERAPI_MINIMAL) 8231 {(void**)&GetTrackMIDINoteNameEx,"GetTrackMIDINoteNameEx"}, 8232 #endif 8233 #if defined(REAPERAPI_WANT_GetTrackMIDINoteRange) || !defined(REAPERAPI_MINIMAL) 8234 {(void**)&GetTrackMIDINoteRange,"GetTrackMIDINoteRange"}, 8235 #endif 8236 #if defined(REAPERAPI_WANT_GetTrackName) || !defined(REAPERAPI_MINIMAL) 8237 {(void**)&GetTrackName,"GetTrackName"}, 8238 #endif 8239 #if defined(REAPERAPI_WANT_GetTrackNumMediaItems) || !defined(REAPERAPI_MINIMAL) 8240 {(void**)&GetTrackNumMediaItems,"GetTrackNumMediaItems"}, 8241 #endif 8242 #if defined(REAPERAPI_WANT_GetTrackNumSends) || !defined(REAPERAPI_MINIMAL) 8243 {(void**)&GetTrackNumSends,"GetTrackNumSends"}, 8244 #endif 8245 #if defined(REAPERAPI_WANT_GetTrackReceiveName) || !defined(REAPERAPI_MINIMAL) 8246 {(void**)&GetTrackReceiveName,"GetTrackReceiveName"}, 8247 #endif 8248 #if defined(REAPERAPI_WANT_GetTrackReceiveUIMute) || !defined(REAPERAPI_MINIMAL) 8249 {(void**)&GetTrackReceiveUIMute,"GetTrackReceiveUIMute"}, 8250 #endif 8251 #if defined(REAPERAPI_WANT_GetTrackReceiveUIVolPan) || !defined(REAPERAPI_MINIMAL) 8252 {(void**)&GetTrackReceiveUIVolPan,"GetTrackReceiveUIVolPan"}, 8253 #endif 8254 #if defined(REAPERAPI_WANT_GetTrackSendInfo_Value) || !defined(REAPERAPI_MINIMAL) 8255 {(void**)&GetTrackSendInfo_Value,"GetTrackSendInfo_Value"}, 8256 #endif 8257 #if defined(REAPERAPI_WANT_GetTrackSendName) || !defined(REAPERAPI_MINIMAL) 8258 {(void**)&GetTrackSendName,"GetTrackSendName"}, 8259 #endif 8260 #if defined(REAPERAPI_WANT_GetTrackSendUIMute) || !defined(REAPERAPI_MINIMAL) 8261 {(void**)&GetTrackSendUIMute,"GetTrackSendUIMute"}, 8262 #endif 8263 #if defined(REAPERAPI_WANT_GetTrackSendUIVolPan) || !defined(REAPERAPI_MINIMAL) 8264 {(void**)&GetTrackSendUIVolPan,"GetTrackSendUIVolPan"}, 8265 #endif 8266 #if defined(REAPERAPI_WANT_GetTrackState) || !defined(REAPERAPI_MINIMAL) 8267 {(void**)&GetTrackState,"GetTrackState"}, 8268 #endif 8269 #if defined(REAPERAPI_WANT_GetTrackStateChunk) || !defined(REAPERAPI_MINIMAL) 8270 {(void**)&GetTrackStateChunk,"GetTrackStateChunk"}, 8271 #endif 8272 #if defined(REAPERAPI_WANT_GetTrackUIMute) || !defined(REAPERAPI_MINIMAL) 8273 {(void**)&GetTrackUIMute,"GetTrackUIMute"}, 8274 #endif 8275 #if defined(REAPERAPI_WANT_GetTrackUIPan) || !defined(REAPERAPI_MINIMAL) 8276 {(void**)&GetTrackUIPan,"GetTrackUIPan"}, 8277 #endif 8278 #if defined(REAPERAPI_WANT_GetTrackUIVolPan) || !defined(REAPERAPI_MINIMAL) 8279 {(void**)&GetTrackUIVolPan,"GetTrackUIVolPan"}, 8280 #endif 8281 #if defined(REAPERAPI_WANT_GetUnderrunTime) || !defined(REAPERAPI_MINIMAL) 8282 {(void**)&GetUnderrunTime,"GetUnderrunTime"}, 8283 #endif 8284 #if defined(REAPERAPI_WANT_GetUserFileNameForRead) || !defined(REAPERAPI_MINIMAL) 8285 {(void**)&GetUserFileNameForRead,"GetUserFileNameForRead"}, 8286 #endif 8287 #if defined(REAPERAPI_WANT_GetUserInputs) || !defined(REAPERAPI_MINIMAL) 8288 {(void**)&GetUserInputs,"GetUserInputs"}, 8289 #endif 8290 #if defined(REAPERAPI_WANT_GoToMarker) || !defined(REAPERAPI_MINIMAL) 8291 {(void**)&GoToMarker,"GoToMarker"}, 8292 #endif 8293 #if defined(REAPERAPI_WANT_GoToRegion) || !defined(REAPERAPI_MINIMAL) 8294 {(void**)&GoToRegion,"GoToRegion"}, 8295 #endif 8296 #if defined(REAPERAPI_WANT_GR_SelectColor) || !defined(REAPERAPI_MINIMAL) 8297 {(void**)&GR_SelectColor,"GR_SelectColor"}, 8298 #endif 8299 #if defined(REAPERAPI_WANT_GSC_mainwnd) || !defined(REAPERAPI_MINIMAL) 8300 {(void**)&GSC_mainwnd,"GSC_mainwnd"}, 8301 #endif 8302 #if defined(REAPERAPI_WANT_guidToString) || !defined(REAPERAPI_MINIMAL) 8303 {(void**)&guidToString,"guidToString"}, 8304 #endif 8305 #if defined(REAPERAPI_WANT_HasExtState) || !defined(REAPERAPI_MINIMAL) 8306 {(void**)&HasExtState,"HasExtState"}, 8307 #endif 8308 #if defined(REAPERAPI_WANT_HasTrackMIDIPrograms) || !defined(REAPERAPI_MINIMAL) 8309 {(void**)&HasTrackMIDIPrograms,"HasTrackMIDIPrograms"}, 8310 #endif 8311 #if defined(REAPERAPI_WANT_HasTrackMIDIProgramsEx) || !defined(REAPERAPI_MINIMAL) 8312 {(void**)&HasTrackMIDIProgramsEx,"HasTrackMIDIProgramsEx"}, 8313 #endif 8314 #if defined(REAPERAPI_WANT_Help_Set) || !defined(REAPERAPI_MINIMAL) 8315 {(void**)&Help_Set,"Help_Set"}, 8316 #endif 8317 #if defined(REAPERAPI_WANT_HiresPeaksFromSource) || !defined(REAPERAPI_MINIMAL) 8318 {(void**)&HiresPeaksFromSource,"HiresPeaksFromSource"}, 8319 #endif 8320 #if defined(REAPERAPI_WANT_image_resolve_fn) || !defined(REAPERAPI_MINIMAL) 8321 {(void**)&image_resolve_fn,"image_resolve_fn"}, 8322 #endif 8323 #if defined(REAPERAPI_WANT_InsertAutomationItem) || !defined(REAPERAPI_MINIMAL) 8324 {(void**)&InsertAutomationItem,"InsertAutomationItem"}, 8325 #endif 8326 #if defined(REAPERAPI_WANT_InsertEnvelopePoint) || !defined(REAPERAPI_MINIMAL) 8327 {(void**)&InsertEnvelopePoint,"InsertEnvelopePoint"}, 8328 #endif 8329 #if defined(REAPERAPI_WANT_InsertEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 8330 {(void**)&InsertEnvelopePointEx,"InsertEnvelopePointEx"}, 8331 #endif 8332 #if defined(REAPERAPI_WANT_InsertMedia) || !defined(REAPERAPI_MINIMAL) 8333 {(void**)&InsertMedia,"InsertMedia"}, 8334 #endif 8335 #if defined(REAPERAPI_WANT_InsertMediaSection) || !defined(REAPERAPI_MINIMAL) 8336 {(void**)&InsertMediaSection,"InsertMediaSection"}, 8337 #endif 8338 #if defined(REAPERAPI_WANT_InsertTrackAtIndex) || !defined(REAPERAPI_MINIMAL) 8339 {(void**)&InsertTrackAtIndex,"InsertTrackAtIndex"}, 8340 #endif 8341 #if defined(REAPERAPI_WANT_IsInRealTimeAudio) || !defined(REAPERAPI_MINIMAL) 8342 {(void**)&IsInRealTimeAudio,"IsInRealTimeAudio"}, 8343 #endif 8344 #if defined(REAPERAPI_WANT_IsItemTakeActiveForPlayback) || !defined(REAPERAPI_MINIMAL) 8345 {(void**)&IsItemTakeActiveForPlayback,"IsItemTakeActiveForPlayback"}, 8346 #endif 8347 #if defined(REAPERAPI_WANT_IsMediaExtension) || !defined(REAPERAPI_MINIMAL) 8348 {(void**)&IsMediaExtension,"IsMediaExtension"}, 8349 #endif 8350 #if defined(REAPERAPI_WANT_IsMediaItemSelected) || !defined(REAPERAPI_MINIMAL) 8351 {(void**)&IsMediaItemSelected,"IsMediaItemSelected"}, 8352 #endif 8353 #if defined(REAPERAPI_WANT_IsProjectDirty) || !defined(REAPERAPI_MINIMAL) 8354 {(void**)&IsProjectDirty,"IsProjectDirty"}, 8355 #endif 8356 #if defined(REAPERAPI_WANT_IsREAPER) || !defined(REAPERAPI_MINIMAL) 8357 {(void**)&IsREAPER,"IsREAPER"}, 8358 #endif 8359 #if defined(REAPERAPI_WANT_IsTrackSelected) || !defined(REAPERAPI_MINIMAL) 8360 {(void**)&IsTrackSelected,"IsTrackSelected"}, 8361 #endif 8362 #if defined(REAPERAPI_WANT_IsTrackVisible) || !defined(REAPERAPI_MINIMAL) 8363 {(void**)&IsTrackVisible,"IsTrackVisible"}, 8364 #endif 8365 #if defined(REAPERAPI_WANT_joystick_create) || !defined(REAPERAPI_MINIMAL) 8366 {(void**)&joystick_create,"joystick_create"}, 8367 #endif 8368 #if defined(REAPERAPI_WANT_joystick_destroy) || !defined(REAPERAPI_MINIMAL) 8369 {(void**)&joystick_destroy,"joystick_destroy"}, 8370 #endif 8371 #if defined(REAPERAPI_WANT_joystick_enum) || !defined(REAPERAPI_MINIMAL) 8372 {(void**)&joystick_enum,"joystick_enum"}, 8373 #endif 8374 #if defined(REAPERAPI_WANT_joystick_getaxis) || !defined(REAPERAPI_MINIMAL) 8375 {(void**)&joystick_getaxis,"joystick_getaxis"}, 8376 #endif 8377 #if defined(REAPERAPI_WANT_joystick_getbuttonmask) || !defined(REAPERAPI_MINIMAL) 8378 {(void**)&joystick_getbuttonmask,"joystick_getbuttonmask"}, 8379 #endif 8380 #if defined(REAPERAPI_WANT_joystick_getinfo) || !defined(REAPERAPI_MINIMAL) 8381 {(void**)&joystick_getinfo,"joystick_getinfo"}, 8382 #endif 8383 #if defined(REAPERAPI_WANT_joystick_getpov) || !defined(REAPERAPI_MINIMAL) 8384 {(void**)&joystick_getpov,"joystick_getpov"}, 8385 #endif 8386 #if defined(REAPERAPI_WANT_joystick_update) || !defined(REAPERAPI_MINIMAL) 8387 {(void**)&joystick_update,"joystick_update"}, 8388 #endif 8389 #if defined(REAPERAPI_WANT_kbd_enumerateActions) || !defined(REAPERAPI_MINIMAL) 8390 {(void**)&kbd_enumerateActions,"kbd_enumerateActions"}, 8391 #endif 8392 #if defined(REAPERAPI_WANT_kbd_formatKeyName) || !defined(REAPERAPI_MINIMAL) 8393 {(void**)&kbd_formatKeyName,"kbd_formatKeyName"}, 8394 #endif 8395 #if defined(REAPERAPI_WANT_kbd_getCommandName) || !defined(REAPERAPI_MINIMAL) 8396 {(void**)&kbd_getCommandName,"kbd_getCommandName"}, 8397 #endif 8398 #if defined(REAPERAPI_WANT_kbd_getTextFromCmd) || !defined(REAPERAPI_MINIMAL) 8399 {(void**)&kbd_getTextFromCmd,"kbd_getTextFromCmd"}, 8400 #endif 8401 #if defined(REAPERAPI_WANT_KBD_OnMainActionEx) || !defined(REAPERAPI_MINIMAL) 8402 {(void**)&KBD_OnMainActionEx,"KBD_OnMainActionEx"}, 8403 #endif 8404 #if defined(REAPERAPI_WANT_kbd_OnMidiEvent) || !defined(REAPERAPI_MINIMAL) 8405 {(void**)&kbd_OnMidiEvent,"kbd_OnMidiEvent"}, 8406 #endif 8407 #if defined(REAPERAPI_WANT_kbd_OnMidiList) || !defined(REAPERAPI_MINIMAL) 8408 {(void**)&kbd_OnMidiList,"kbd_OnMidiList"}, 8409 #endif 8410 #if defined(REAPERAPI_WANT_kbd_ProcessActionsMenu) || !defined(REAPERAPI_MINIMAL) 8411 {(void**)&kbd_ProcessActionsMenu,"kbd_ProcessActionsMenu"}, 8412 #endif 8413 #if defined(REAPERAPI_WANT_kbd_processMidiEventActionEx) || !defined(REAPERAPI_MINIMAL) 8414 {(void**)&kbd_processMidiEventActionEx,"kbd_processMidiEventActionEx"}, 8415 #endif 8416 #if defined(REAPERAPI_WANT_kbd_reprocessMenu) || !defined(REAPERAPI_MINIMAL) 8417 {(void**)&kbd_reprocessMenu,"kbd_reprocessMenu"}, 8418 #endif 8419 #if defined(REAPERAPI_WANT_kbd_RunCommandThroughHooks) || !defined(REAPERAPI_MINIMAL) 8420 {(void**)&kbd_RunCommandThroughHooks,"kbd_RunCommandThroughHooks"}, 8421 #endif 8422 #if defined(REAPERAPI_WANT_kbd_translateAccelerator) || !defined(REAPERAPI_MINIMAL) 8423 {(void**)&kbd_translateAccelerator,"kbd_translateAccelerator"}, 8424 #endif 8425 #if defined(REAPERAPI_WANT_kbd_translateMouse) || !defined(REAPERAPI_MINIMAL) 8426 {(void**)&kbd_translateMouse,"kbd_translateMouse"}, 8427 #endif 8428 8429 8430 #ifndef REAPERAPI_NO_LICE 8431 #if defined(REAPERAPI_WANT_LICE__Destroy) || !defined(REAPERAPI_MINIMAL) 8432 {(void**)&LICE__Destroy,"LICE__Destroy"}, 8433 #endif 8434 #if defined(REAPERAPI_WANT_LICE__DestroyFont) || !defined(REAPERAPI_MINIMAL) 8435 {(void**)&LICE__DestroyFont,"LICE__DestroyFont"}, 8436 #endif 8437 #if defined(REAPERAPI_WANT_LICE__DrawText) || !defined(REAPERAPI_MINIMAL) 8438 {(void**)&LICE__DrawText,"LICE__DrawText"}, 8439 #endif 8440 #if defined(REAPERAPI_WANT_LICE__GetBits) || !defined(REAPERAPI_MINIMAL) 8441 {(void**)&LICE__GetBits,"LICE__GetBits"}, 8442 #endif 8443 #if defined(REAPERAPI_WANT_LICE__GetDC) || !defined(REAPERAPI_MINIMAL) 8444 {(void**)&LICE__GetDC,"LICE__GetDC"}, 8445 #endif 8446 #if defined(REAPERAPI_WANT_LICE__GetHeight) || !defined(REAPERAPI_MINIMAL) 8447 {(void**)&LICE__GetHeight,"LICE__GetHeight"}, 8448 #endif 8449 #if defined(REAPERAPI_WANT_LICE__GetRowSpan) || !defined(REAPERAPI_MINIMAL) 8450 {(void**)&LICE__GetRowSpan,"LICE__GetRowSpan"}, 8451 #endif 8452 #if defined(REAPERAPI_WANT_LICE__GetWidth) || !defined(REAPERAPI_MINIMAL) 8453 {(void**)&LICE__GetWidth,"LICE__GetWidth"}, 8454 #endif 8455 #if defined(REAPERAPI_WANT_LICE__IsFlipped) || !defined(REAPERAPI_MINIMAL) 8456 {(void**)&LICE__IsFlipped,"LICE__IsFlipped"}, 8457 #endif 8458 #if defined(REAPERAPI_WANT_LICE__resize) || !defined(REAPERAPI_MINIMAL) 8459 {(void**)&LICE__resize,"LICE__resize"}, 8460 #endif 8461 #if defined(REAPERAPI_WANT_LICE__SetBkColor) || !defined(REAPERAPI_MINIMAL) 8462 {(void**)&LICE__SetBkColor,"LICE__SetBkColor"}, 8463 #endif 8464 #if defined(REAPERAPI_WANT_LICE__SetFromHFont) || !defined(REAPERAPI_MINIMAL) 8465 {(void**)&LICE__SetFromHFont,"LICE__SetFromHFont"}, 8466 #endif 8467 #if defined(REAPERAPI_WANT_LICE__SetTextColor) || !defined(REAPERAPI_MINIMAL) 8468 {(void**)&LICE__SetTextColor,"LICE__SetTextColor"}, 8469 #endif 8470 #if defined(REAPERAPI_WANT_LICE__SetTextCombineMode) || !defined(REAPERAPI_MINIMAL) 8471 {(void**)&LICE__SetTextCombineMode,"LICE__SetTextCombineMode"}, 8472 #endif 8473 #if defined(REAPERAPI_WANT_LICE_Arc) || !defined(REAPERAPI_MINIMAL) 8474 {(void**)&LICE_Arc,"LICE_Arc"}, 8475 #endif 8476 #if defined(REAPERAPI_WANT_LICE_Blit) || !defined(REAPERAPI_MINIMAL) 8477 {(void**)&LICE_Blit,"LICE_Blit"}, 8478 #endif 8479 #if defined(REAPERAPI_WANT_LICE_Blur) || !defined(REAPERAPI_MINIMAL) 8480 {(void**)&LICE_Blur,"LICE_Blur"}, 8481 #endif 8482 #if defined(REAPERAPI_WANT_LICE_BorderedRect) || !defined(REAPERAPI_MINIMAL) 8483 {(void**)&LICE_BorderedRect,"LICE_BorderedRect"}, 8484 #endif 8485 #if defined(REAPERAPI_WANT_LICE_Circle) || !defined(REAPERAPI_MINIMAL) 8486 {(void**)&LICE_Circle,"LICE_Circle"}, 8487 #endif 8488 #if defined(REAPERAPI_WANT_LICE_Clear) || !defined(REAPERAPI_MINIMAL) 8489 {(void**)&LICE_Clear,"LICE_Clear"}, 8490 #endif 8491 #if defined(REAPERAPI_WANT_LICE_ClearRect) || !defined(REAPERAPI_MINIMAL) 8492 {(void**)&LICE_ClearRect,"LICE_ClearRect"}, 8493 #endif 8494 #if defined(REAPERAPI_WANT_LICE_ClipLine) || !defined(REAPERAPI_MINIMAL) 8495 {(void**)&LICE_ClipLine,"LICE_ClipLine"}, 8496 #endif 8497 #if defined(REAPERAPI_WANT_LICE_Copy) || !defined(REAPERAPI_MINIMAL) 8498 {(void**)&LICE_Copy,"LICE_Copy"}, 8499 #endif 8500 #if defined(REAPERAPI_WANT_LICE_CreateBitmap) || !defined(REAPERAPI_MINIMAL) 8501 {(void**)&LICE_CreateBitmap,"LICE_CreateBitmap"}, 8502 #endif 8503 #if defined(REAPERAPI_WANT_LICE_CreateFont) || !defined(REAPERAPI_MINIMAL) 8504 {(void**)&LICE_CreateFont,"LICE_CreateFont"}, 8505 #endif 8506 #if defined(REAPERAPI_WANT_LICE_DrawCBezier) || !defined(REAPERAPI_MINIMAL) 8507 {(void**)&LICE_DrawCBezier,"LICE_DrawCBezier"}, 8508 #endif 8509 #if defined(REAPERAPI_WANT_LICE_DrawChar) || !defined(REAPERAPI_MINIMAL) 8510 {(void**)&LICE_DrawChar,"LICE_DrawChar"}, 8511 #endif 8512 #if defined(REAPERAPI_WANT_LICE_DrawGlyph) || !defined(REAPERAPI_MINIMAL) 8513 {(void**)&LICE_DrawGlyph,"LICE_DrawGlyph"}, 8514 #endif 8515 #if defined(REAPERAPI_WANT_LICE_DrawRect) || !defined(REAPERAPI_MINIMAL) 8516 {(void**)&LICE_DrawRect,"LICE_DrawRect"}, 8517 #endif 8518 #if defined(REAPERAPI_WANT_LICE_DrawText) || !defined(REAPERAPI_MINIMAL) 8519 {(void**)&LICE_DrawText,"LICE_DrawText"}, 8520 #endif 8521 #if defined(REAPERAPI_WANT_LICE_FillCBezier) || !defined(REAPERAPI_MINIMAL) 8522 {(void**)&LICE_FillCBezier,"LICE_FillCBezier"}, 8523 #endif 8524 #if defined(REAPERAPI_WANT_LICE_FillCircle) || !defined(REAPERAPI_MINIMAL) 8525 {(void**)&LICE_FillCircle,"LICE_FillCircle"}, 8526 #endif 8527 #if defined(REAPERAPI_WANT_LICE_FillConvexPolygon) || !defined(REAPERAPI_MINIMAL) 8528 {(void**)&LICE_FillConvexPolygon,"LICE_FillConvexPolygon"}, 8529 #endif 8530 #if defined(REAPERAPI_WANT_LICE_FillRect) || !defined(REAPERAPI_MINIMAL) 8531 {(void**)&LICE_FillRect,"LICE_FillRect"}, 8532 #endif 8533 #if defined(REAPERAPI_WANT_LICE_FillTrapezoid) || !defined(REAPERAPI_MINIMAL) 8534 {(void**)&LICE_FillTrapezoid,"LICE_FillTrapezoid"}, 8535 #endif 8536 #if defined(REAPERAPI_WANT_LICE_FillTriangle) || !defined(REAPERAPI_MINIMAL) 8537 {(void**)&LICE_FillTriangle,"LICE_FillTriangle"}, 8538 #endif 8539 #if defined(REAPERAPI_WANT_LICE_GetPixel) || !defined(REAPERAPI_MINIMAL) 8540 {(void**)&LICE_GetPixel,"LICE_GetPixel"}, 8541 #endif 8542 #if defined(REAPERAPI_WANT_LICE_GradRect) || !defined(REAPERAPI_MINIMAL) 8543 {(void**)&LICE_GradRect,"LICE_GradRect"}, 8544 #endif 8545 #if defined(REAPERAPI_WANT_LICE_Line) || !defined(REAPERAPI_MINIMAL) 8546 {(void**)&LICE_Line,"LICE_Line"}, 8547 #endif 8548 #if defined(REAPERAPI_WANT_LICE_LineInt) || !defined(REAPERAPI_MINIMAL) 8549 {(void**)&LICE_LineInt,"LICE_LineInt"}, 8550 #endif 8551 #if defined(REAPERAPI_WANT_LICE_LoadPNG) || !defined(REAPERAPI_MINIMAL) 8552 {(void**)&LICE_LoadPNG,"LICE_LoadPNG"}, 8553 #endif 8554 #if defined(REAPERAPI_WANT_LICE_LoadPNGFromResource) || !defined(REAPERAPI_MINIMAL) 8555 {(void**)&LICE_LoadPNGFromResource,"LICE_LoadPNGFromResource"}, 8556 #endif 8557 #if defined(REAPERAPI_WANT_LICE_MeasureText) || !defined(REAPERAPI_MINIMAL) 8558 {(void**)&LICE_MeasureText,"LICE_MeasureText"}, 8559 #endif 8560 #if defined(REAPERAPI_WANT_LICE_MultiplyAddRect) || !defined(REAPERAPI_MINIMAL) 8561 {(void**)&LICE_MultiplyAddRect,"LICE_MultiplyAddRect"}, 8562 #endif 8563 #if defined(REAPERAPI_WANT_LICE_PutPixel) || !defined(REAPERAPI_MINIMAL) 8564 {(void**)&LICE_PutPixel,"LICE_PutPixel"}, 8565 #endif 8566 #if defined(REAPERAPI_WANT_LICE_RotatedBlit) || !defined(REAPERAPI_MINIMAL) 8567 {(void**)&LICE_RotatedBlit,"LICE_RotatedBlit"}, 8568 #endif 8569 #if defined(REAPERAPI_WANT_LICE_RoundRect) || !defined(REAPERAPI_MINIMAL) 8570 {(void**)&LICE_RoundRect,"LICE_RoundRect"}, 8571 #endif 8572 #if defined(REAPERAPI_WANT_LICE_ScaledBlit) || !defined(REAPERAPI_MINIMAL) 8573 {(void**)&LICE_ScaledBlit,"LICE_ScaledBlit"}, 8574 #endif 8575 #if defined(REAPERAPI_WANT_LICE_SimpleFill) || !defined(REAPERAPI_MINIMAL) 8576 {(void**)&LICE_SimpleFill,"LICE_SimpleFill"}, 8577 #endif 8578 #if defined(REAPERAPI_WANT_LICE_ThickFLine) || !defined(REAPERAPI_MINIMAL) 8579 {(void**)&LICE_ThickFLine,"LICE_ThickFLine"}, 8580 #endif 8581 8582 #endif // !REAPERAPI_NO_LICE 8583 8584 #if defined(REAPERAPI_WANT_LocalizeString) || !defined(REAPERAPI_MINIMAL) 8585 {(void**)&LocalizeString,"LocalizeString"}, 8586 #endif 8587 #if defined(REAPERAPI_WANT_Loop_OnArrow) || !defined(REAPERAPI_MINIMAL) 8588 {(void**)&Loop_OnArrow,"Loop_OnArrow"}, 8589 #endif 8590 #if defined(REAPERAPI_WANT_Main_OnCommand) || !defined(REAPERAPI_MINIMAL) 8591 {(void**)&Main_OnCommand,"Main_OnCommand"}, 8592 #endif 8593 #if defined(REAPERAPI_WANT_Main_OnCommandEx) || !defined(REAPERAPI_MINIMAL) 8594 {(void**)&Main_OnCommandEx,"Main_OnCommandEx"}, 8595 #endif 8596 #if defined(REAPERAPI_WANT_Main_openProject) || !defined(REAPERAPI_MINIMAL) 8597 {(void**)&Main_openProject,"Main_openProject"}, 8598 #endif 8599 #if defined(REAPERAPI_WANT_Main_SaveProject) || !defined(REAPERAPI_MINIMAL) 8600 {(void**)&Main_SaveProject,"Main_SaveProject"}, 8601 #endif 8602 #if defined(REAPERAPI_WANT_Main_SaveProjectEx) || !defined(REAPERAPI_MINIMAL) 8603 {(void**)&Main_SaveProjectEx,"Main_SaveProjectEx"}, 8604 #endif 8605 #if defined(REAPERAPI_WANT_Main_UpdateLoopInfo) || !defined(REAPERAPI_MINIMAL) 8606 {(void**)&Main_UpdateLoopInfo,"Main_UpdateLoopInfo"}, 8607 #endif 8608 #if defined(REAPERAPI_WANT_MarkProjectDirty) || !defined(REAPERAPI_MINIMAL) 8609 {(void**)&MarkProjectDirty,"MarkProjectDirty"}, 8610 #endif 8611 #if defined(REAPERAPI_WANT_MarkTrackItemsDirty) || !defined(REAPERAPI_MINIMAL) 8612 {(void**)&MarkTrackItemsDirty,"MarkTrackItemsDirty"}, 8613 #endif 8614 #if defined(REAPERAPI_WANT_Master_GetPlayRate) || !defined(REAPERAPI_MINIMAL) 8615 {(void**)&Master_GetPlayRate,"Master_GetPlayRate"}, 8616 #endif 8617 #if defined(REAPERAPI_WANT_Master_GetPlayRateAtTime) || !defined(REAPERAPI_MINIMAL) 8618 {(void**)&Master_GetPlayRateAtTime,"Master_GetPlayRateAtTime"}, 8619 #endif 8620 #if defined(REAPERAPI_WANT_Master_GetTempo) || !defined(REAPERAPI_MINIMAL) 8621 {(void**)&Master_GetTempo,"Master_GetTempo"}, 8622 #endif 8623 #if defined(REAPERAPI_WANT_Master_NormalizePlayRate) || !defined(REAPERAPI_MINIMAL) 8624 {(void**)&Master_NormalizePlayRate,"Master_NormalizePlayRate"}, 8625 #endif 8626 #if defined(REAPERAPI_WANT_Master_NormalizeTempo) || !defined(REAPERAPI_MINIMAL) 8627 {(void**)&Master_NormalizeTempo,"Master_NormalizeTempo"}, 8628 #endif 8629 #if defined(REAPERAPI_WANT_MB) || !defined(REAPERAPI_MINIMAL) 8630 {(void**)&MB,"MB"}, 8631 #endif 8632 #if defined(REAPERAPI_WANT_MediaItemDescendsFromTrack) || !defined(REAPERAPI_MINIMAL) 8633 {(void**)&MediaItemDescendsFromTrack,"MediaItemDescendsFromTrack"}, 8634 #endif 8635 #if defined(REAPERAPI_WANT_MIDI_CountEvts) || !defined(REAPERAPI_MINIMAL) 8636 {(void**)&MIDI_CountEvts,"MIDI_CountEvts"}, 8637 #endif 8638 #if defined(REAPERAPI_WANT_MIDI_DeleteCC) || !defined(REAPERAPI_MINIMAL) 8639 {(void**)&MIDI_DeleteCC,"MIDI_DeleteCC"}, 8640 #endif 8641 #if defined(REAPERAPI_WANT_MIDI_DeleteEvt) || !defined(REAPERAPI_MINIMAL) 8642 {(void**)&MIDI_DeleteEvt,"MIDI_DeleteEvt"}, 8643 #endif 8644 #if defined(REAPERAPI_WANT_MIDI_DeleteNote) || !defined(REAPERAPI_MINIMAL) 8645 {(void**)&MIDI_DeleteNote,"MIDI_DeleteNote"}, 8646 #endif 8647 #if defined(REAPERAPI_WANT_MIDI_DeleteTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 8648 {(void**)&MIDI_DeleteTextSysexEvt,"MIDI_DeleteTextSysexEvt"}, 8649 #endif 8650 #if defined(REAPERAPI_WANT_MIDI_DisableSort) || !defined(REAPERAPI_MINIMAL) 8651 {(void**)&MIDI_DisableSort,"MIDI_DisableSort"}, 8652 #endif 8653 #if defined(REAPERAPI_WANT_MIDI_EnumSelCC) || !defined(REAPERAPI_MINIMAL) 8654 {(void**)&MIDI_EnumSelCC,"MIDI_EnumSelCC"}, 8655 #endif 8656 #if defined(REAPERAPI_WANT_MIDI_EnumSelEvts) || !defined(REAPERAPI_MINIMAL) 8657 {(void**)&MIDI_EnumSelEvts,"MIDI_EnumSelEvts"}, 8658 #endif 8659 #if defined(REAPERAPI_WANT_MIDI_EnumSelNotes) || !defined(REAPERAPI_MINIMAL) 8660 {(void**)&MIDI_EnumSelNotes,"MIDI_EnumSelNotes"}, 8661 #endif 8662 #if defined(REAPERAPI_WANT_MIDI_EnumSelTextSysexEvts) || !defined(REAPERAPI_MINIMAL) 8663 {(void**)&MIDI_EnumSelTextSysexEvts,"MIDI_EnumSelTextSysexEvts"}, 8664 #endif 8665 #if defined(REAPERAPI_WANT_MIDI_eventlist_Create) || !defined(REAPERAPI_MINIMAL) 8666 {(void**)&MIDI_eventlist_Create,"MIDI_eventlist_Create"}, 8667 #endif 8668 #if defined(REAPERAPI_WANT_MIDI_eventlist_Destroy) || !defined(REAPERAPI_MINIMAL) 8669 {(void**)&MIDI_eventlist_Destroy,"MIDI_eventlist_Destroy"}, 8670 #endif 8671 #if defined(REAPERAPI_WANT_MIDI_GetAllEvts) || !defined(REAPERAPI_MINIMAL) 8672 {(void**)&MIDI_GetAllEvts,"MIDI_GetAllEvts"}, 8673 #endif 8674 #if defined(REAPERAPI_WANT_MIDI_GetCC) || !defined(REAPERAPI_MINIMAL) 8675 {(void**)&MIDI_GetCC,"MIDI_GetCC"}, 8676 #endif 8677 #if defined(REAPERAPI_WANT_MIDI_GetCCShape) || !defined(REAPERAPI_MINIMAL) 8678 {(void**)&MIDI_GetCCShape,"MIDI_GetCCShape"}, 8679 #endif 8680 #if defined(REAPERAPI_WANT_MIDI_GetEvt) || !defined(REAPERAPI_MINIMAL) 8681 {(void**)&MIDI_GetEvt,"MIDI_GetEvt"}, 8682 #endif 8683 #if defined(REAPERAPI_WANT_MIDI_GetGrid) || !defined(REAPERAPI_MINIMAL) 8684 {(void**)&MIDI_GetGrid,"MIDI_GetGrid"}, 8685 #endif 8686 #if defined(REAPERAPI_WANT_MIDI_GetHash) || !defined(REAPERAPI_MINIMAL) 8687 {(void**)&MIDI_GetHash,"MIDI_GetHash"}, 8688 #endif 8689 #if defined(REAPERAPI_WANT_MIDI_GetNote) || !defined(REAPERAPI_MINIMAL) 8690 {(void**)&MIDI_GetNote,"MIDI_GetNote"}, 8691 #endif 8692 #if defined(REAPERAPI_WANT_MIDI_GetPPQPos_EndOfMeasure) || !defined(REAPERAPI_MINIMAL) 8693 {(void**)&MIDI_GetPPQPos_EndOfMeasure,"MIDI_GetPPQPos_EndOfMeasure"}, 8694 #endif 8695 #if defined(REAPERAPI_WANT_MIDI_GetPPQPos_StartOfMeasure) || !defined(REAPERAPI_MINIMAL) 8696 {(void**)&MIDI_GetPPQPos_StartOfMeasure,"MIDI_GetPPQPos_StartOfMeasure"}, 8697 #endif 8698 #if defined(REAPERAPI_WANT_MIDI_GetPPQPosFromProjQN) || !defined(REAPERAPI_MINIMAL) 8699 {(void**)&MIDI_GetPPQPosFromProjQN,"MIDI_GetPPQPosFromProjQN"}, 8700 #endif 8701 #if defined(REAPERAPI_WANT_MIDI_GetPPQPosFromProjTime) || !defined(REAPERAPI_MINIMAL) 8702 {(void**)&MIDI_GetPPQPosFromProjTime,"MIDI_GetPPQPosFromProjTime"}, 8703 #endif 8704 #if defined(REAPERAPI_WANT_MIDI_GetProjQNFromPPQPos) || !defined(REAPERAPI_MINIMAL) 8705 {(void**)&MIDI_GetProjQNFromPPQPos,"MIDI_GetProjQNFromPPQPos"}, 8706 #endif 8707 #if defined(REAPERAPI_WANT_MIDI_GetProjTimeFromPPQPos) || !defined(REAPERAPI_MINIMAL) 8708 {(void**)&MIDI_GetProjTimeFromPPQPos,"MIDI_GetProjTimeFromPPQPos"}, 8709 #endif 8710 #if defined(REAPERAPI_WANT_MIDI_GetRecentInputEvent) || !defined(REAPERAPI_MINIMAL) 8711 {(void**)&MIDI_GetRecentInputEvent,"MIDI_GetRecentInputEvent"}, 8712 #endif 8713 #if defined(REAPERAPI_WANT_MIDI_GetScale) || !defined(REAPERAPI_MINIMAL) 8714 {(void**)&MIDI_GetScale,"MIDI_GetScale"}, 8715 #endif 8716 #if defined(REAPERAPI_WANT_MIDI_GetTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 8717 {(void**)&MIDI_GetTextSysexEvt,"MIDI_GetTextSysexEvt"}, 8718 #endif 8719 #if defined(REAPERAPI_WANT_MIDI_GetTrackHash) || !defined(REAPERAPI_MINIMAL) 8720 {(void**)&MIDI_GetTrackHash,"MIDI_GetTrackHash"}, 8721 #endif 8722 #if defined(REAPERAPI_WANT_midi_init) || !defined(REAPERAPI_MINIMAL) 8723 {(void**)&midi_init,"midi_init"}, 8724 #endif 8725 #if defined(REAPERAPI_WANT_MIDI_InsertCC) || !defined(REAPERAPI_MINIMAL) 8726 {(void**)&MIDI_InsertCC,"MIDI_InsertCC"}, 8727 #endif 8728 #if defined(REAPERAPI_WANT_MIDI_InsertEvt) || !defined(REAPERAPI_MINIMAL) 8729 {(void**)&MIDI_InsertEvt,"MIDI_InsertEvt"}, 8730 #endif 8731 #if defined(REAPERAPI_WANT_MIDI_InsertNote) || !defined(REAPERAPI_MINIMAL) 8732 {(void**)&MIDI_InsertNote,"MIDI_InsertNote"}, 8733 #endif 8734 #if defined(REAPERAPI_WANT_MIDI_InsertTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 8735 {(void**)&MIDI_InsertTextSysexEvt,"MIDI_InsertTextSysexEvt"}, 8736 #endif 8737 #if defined(REAPERAPI_WANT_midi_reinit) || !defined(REAPERAPI_MINIMAL) 8738 {(void**)&midi_reinit,"midi_reinit"}, 8739 #endif 8740 #if defined(REAPERAPI_WANT_MIDI_SelectAll) || !defined(REAPERAPI_MINIMAL) 8741 {(void**)&MIDI_SelectAll,"MIDI_SelectAll"}, 8742 #endif 8743 #if defined(REAPERAPI_WANT_MIDI_SetAllEvts) || !defined(REAPERAPI_MINIMAL) 8744 {(void**)&MIDI_SetAllEvts,"MIDI_SetAllEvts"}, 8745 #endif 8746 #if defined(REAPERAPI_WANT_MIDI_SetCC) || !defined(REAPERAPI_MINIMAL) 8747 {(void**)&MIDI_SetCC,"MIDI_SetCC"}, 8748 #endif 8749 #if defined(REAPERAPI_WANT_MIDI_SetCCShape) || !defined(REAPERAPI_MINIMAL) 8750 {(void**)&MIDI_SetCCShape,"MIDI_SetCCShape"}, 8751 #endif 8752 #if defined(REAPERAPI_WANT_MIDI_SetEvt) || !defined(REAPERAPI_MINIMAL) 8753 {(void**)&MIDI_SetEvt,"MIDI_SetEvt"}, 8754 #endif 8755 #if defined(REAPERAPI_WANT_MIDI_SetItemExtents) || !defined(REAPERAPI_MINIMAL) 8756 {(void**)&MIDI_SetItemExtents,"MIDI_SetItemExtents"}, 8757 #endif 8758 #if defined(REAPERAPI_WANT_MIDI_SetNote) || !defined(REAPERAPI_MINIMAL) 8759 {(void**)&MIDI_SetNote,"MIDI_SetNote"}, 8760 #endif 8761 #if defined(REAPERAPI_WANT_MIDI_SetTextSysexEvt) || !defined(REAPERAPI_MINIMAL) 8762 {(void**)&MIDI_SetTextSysexEvt,"MIDI_SetTextSysexEvt"}, 8763 #endif 8764 #if defined(REAPERAPI_WANT_MIDI_Sort) || !defined(REAPERAPI_MINIMAL) 8765 {(void**)&MIDI_Sort,"MIDI_Sort"}, 8766 #endif 8767 #if defined(REAPERAPI_WANT_MIDIEditor_EnumTakes) || !defined(REAPERAPI_MINIMAL) 8768 {(void**)&MIDIEditor_EnumTakes,"MIDIEditor_EnumTakes"}, 8769 #endif 8770 #if defined(REAPERAPI_WANT_MIDIEditor_GetActive) || !defined(REAPERAPI_MINIMAL) 8771 {(void**)&MIDIEditor_GetActive,"MIDIEditor_GetActive"}, 8772 #endif 8773 #if defined(REAPERAPI_WANT_MIDIEditor_GetMode) || !defined(REAPERAPI_MINIMAL) 8774 {(void**)&MIDIEditor_GetMode,"MIDIEditor_GetMode"}, 8775 #endif 8776 #if defined(REAPERAPI_WANT_MIDIEditor_GetSetting_int) || !defined(REAPERAPI_MINIMAL) 8777 {(void**)&MIDIEditor_GetSetting_int,"MIDIEditor_GetSetting_int"}, 8778 #endif 8779 #if defined(REAPERAPI_WANT_MIDIEditor_GetSetting_str) || !defined(REAPERAPI_MINIMAL) 8780 {(void**)&MIDIEditor_GetSetting_str,"MIDIEditor_GetSetting_str"}, 8781 #endif 8782 #if defined(REAPERAPI_WANT_MIDIEditor_GetTake) || !defined(REAPERAPI_MINIMAL) 8783 {(void**)&MIDIEditor_GetTake,"MIDIEditor_GetTake"}, 8784 #endif 8785 #if defined(REAPERAPI_WANT_MIDIEditor_LastFocused_OnCommand) || !defined(REAPERAPI_MINIMAL) 8786 {(void**)&MIDIEditor_LastFocused_OnCommand,"MIDIEditor_LastFocused_OnCommand"}, 8787 #endif 8788 #if defined(REAPERAPI_WANT_MIDIEditor_OnCommand) || !defined(REAPERAPI_MINIMAL) 8789 {(void**)&MIDIEditor_OnCommand,"MIDIEditor_OnCommand"}, 8790 #endif 8791 #if defined(REAPERAPI_WANT_MIDIEditor_SetSetting_int) || !defined(REAPERAPI_MINIMAL) 8792 {(void**)&MIDIEditor_SetSetting_int,"MIDIEditor_SetSetting_int"}, 8793 #endif 8794 #if defined(REAPERAPI_WANT_mkpanstr) || !defined(REAPERAPI_MINIMAL) 8795 {(void**)&mkpanstr,"mkpanstr"}, 8796 #endif 8797 #if defined(REAPERAPI_WANT_mkvolpanstr) || !defined(REAPERAPI_MINIMAL) 8798 {(void**)&mkvolpanstr,"mkvolpanstr"}, 8799 #endif 8800 #if defined(REAPERAPI_WANT_mkvolstr) || !defined(REAPERAPI_MINIMAL) 8801 {(void**)&mkvolstr,"mkvolstr"}, 8802 #endif 8803 #if defined(REAPERAPI_WANT_MoveEditCursor) || !defined(REAPERAPI_MINIMAL) 8804 {(void**)&MoveEditCursor,"MoveEditCursor"}, 8805 #endif 8806 #if defined(REAPERAPI_WANT_MoveMediaItemToTrack) || !defined(REAPERAPI_MINIMAL) 8807 {(void**)&MoveMediaItemToTrack,"MoveMediaItemToTrack"}, 8808 #endif 8809 #if defined(REAPERAPI_WANT_MuteAllTracks) || !defined(REAPERAPI_MINIMAL) 8810 {(void**)&MuteAllTracks,"MuteAllTracks"}, 8811 #endif 8812 #if defined(REAPERAPI_WANT_my_getViewport) || !defined(REAPERAPI_MINIMAL) 8813 {(void**)&my_getViewport,"my_getViewport"}, 8814 #endif 8815 #if defined(REAPERAPI_WANT_NamedCommandLookup) || !defined(REAPERAPI_MINIMAL) 8816 {(void**)&NamedCommandLookup,"NamedCommandLookup"}, 8817 #endif 8818 #if defined(REAPERAPI_WANT_OnPauseButton) || !defined(REAPERAPI_MINIMAL) 8819 {(void**)&OnPauseButton,"OnPauseButton"}, 8820 #endif 8821 #if defined(REAPERAPI_WANT_OnPauseButtonEx) || !defined(REAPERAPI_MINIMAL) 8822 {(void**)&OnPauseButtonEx,"OnPauseButtonEx"}, 8823 #endif 8824 #if defined(REAPERAPI_WANT_OnPlayButton) || !defined(REAPERAPI_MINIMAL) 8825 {(void**)&OnPlayButton,"OnPlayButton"}, 8826 #endif 8827 #if defined(REAPERAPI_WANT_OnPlayButtonEx) || !defined(REAPERAPI_MINIMAL) 8828 {(void**)&OnPlayButtonEx,"OnPlayButtonEx"}, 8829 #endif 8830 #if defined(REAPERAPI_WANT_OnStopButton) || !defined(REAPERAPI_MINIMAL) 8831 {(void**)&OnStopButton,"OnStopButton"}, 8832 #endif 8833 #if defined(REAPERAPI_WANT_OnStopButtonEx) || !defined(REAPERAPI_MINIMAL) 8834 {(void**)&OnStopButtonEx,"OnStopButtonEx"}, 8835 #endif 8836 #if defined(REAPERAPI_WANT_OpenColorThemeFile) || !defined(REAPERAPI_MINIMAL) 8837 {(void**)&OpenColorThemeFile,"OpenColorThemeFile"}, 8838 #endif 8839 #if defined(REAPERAPI_WANT_OpenMediaExplorer) || !defined(REAPERAPI_MINIMAL) 8840 {(void**)&OpenMediaExplorer,"OpenMediaExplorer"}, 8841 #endif 8842 #if defined(REAPERAPI_WANT_OscLocalMessageToHost) || !defined(REAPERAPI_MINIMAL) 8843 {(void**)&OscLocalMessageToHost,"OscLocalMessageToHost"}, 8844 #endif 8845 #if defined(REAPERAPI_WANT_parse_timestr) || !defined(REAPERAPI_MINIMAL) 8846 {(void**)&parse_timestr,"parse_timestr"}, 8847 #endif 8848 #if defined(REAPERAPI_WANT_parse_timestr_len) || !defined(REAPERAPI_MINIMAL) 8849 {(void**)&parse_timestr_len,"parse_timestr_len"}, 8850 #endif 8851 #if defined(REAPERAPI_WANT_parse_timestr_pos) || !defined(REAPERAPI_MINIMAL) 8852 {(void**)&parse_timestr_pos,"parse_timestr_pos"}, 8853 #endif 8854 #if defined(REAPERAPI_WANT_parsepanstr) || !defined(REAPERAPI_MINIMAL) 8855 {(void**)&parsepanstr,"parsepanstr"}, 8856 #endif 8857 #if defined(REAPERAPI_WANT_PCM_Sink_Create) || !defined(REAPERAPI_MINIMAL) 8858 {(void**)&PCM_Sink_Create,"PCM_Sink_Create"}, 8859 #endif 8860 #if defined(REAPERAPI_WANT_PCM_Sink_CreateEx) || !defined(REAPERAPI_MINIMAL) 8861 {(void**)&PCM_Sink_CreateEx,"PCM_Sink_CreateEx"}, 8862 #endif 8863 #if defined(REAPERAPI_WANT_PCM_Sink_CreateMIDIFile) || !defined(REAPERAPI_MINIMAL) 8864 {(void**)&PCM_Sink_CreateMIDIFile,"PCM_Sink_CreateMIDIFile"}, 8865 #endif 8866 #if defined(REAPERAPI_WANT_PCM_Sink_CreateMIDIFileEx) || !defined(REAPERAPI_MINIMAL) 8867 {(void**)&PCM_Sink_CreateMIDIFileEx,"PCM_Sink_CreateMIDIFileEx"}, 8868 #endif 8869 #if defined(REAPERAPI_WANT_PCM_Sink_Enum) || !defined(REAPERAPI_MINIMAL) 8870 {(void**)&PCM_Sink_Enum,"PCM_Sink_Enum"}, 8871 #endif 8872 #if defined(REAPERAPI_WANT_PCM_Sink_GetExtension) || !defined(REAPERAPI_MINIMAL) 8873 {(void**)&PCM_Sink_GetExtension,"PCM_Sink_GetExtension"}, 8874 #endif 8875 #if defined(REAPERAPI_WANT_PCM_Sink_ShowConfig) || !defined(REAPERAPI_MINIMAL) 8876 {(void**)&PCM_Sink_ShowConfig,"PCM_Sink_ShowConfig"}, 8877 #endif 8878 #if defined(REAPERAPI_WANT_PCM_Source_BuildPeaks) || !defined(REAPERAPI_MINIMAL) 8879 {(void**)&PCM_Source_BuildPeaks,"PCM_Source_BuildPeaks"}, 8880 #endif 8881 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromFile) || !defined(REAPERAPI_MINIMAL) 8882 {(void**)&PCM_Source_CreateFromFile,"PCM_Source_CreateFromFile"}, 8883 #endif 8884 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromFileEx) || !defined(REAPERAPI_MINIMAL) 8885 {(void**)&PCM_Source_CreateFromFileEx,"PCM_Source_CreateFromFileEx"}, 8886 #endif 8887 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromSimple) || !defined(REAPERAPI_MINIMAL) 8888 {(void**)&PCM_Source_CreateFromSimple,"PCM_Source_CreateFromSimple"}, 8889 #endif 8890 #if defined(REAPERAPI_WANT_PCM_Source_CreateFromType) || !defined(REAPERAPI_MINIMAL) 8891 {(void**)&PCM_Source_CreateFromType,"PCM_Source_CreateFromType"}, 8892 #endif 8893 #if defined(REAPERAPI_WANT_PCM_Source_Destroy) || !defined(REAPERAPI_MINIMAL) 8894 {(void**)&PCM_Source_Destroy,"PCM_Source_Destroy"}, 8895 #endif 8896 #if defined(REAPERAPI_WANT_PCM_Source_GetPeaks) || !defined(REAPERAPI_MINIMAL) 8897 {(void**)&PCM_Source_GetPeaks,"PCM_Source_GetPeaks"}, 8898 #endif 8899 #if defined(REAPERAPI_WANT_PCM_Source_GetSectionInfo) || !defined(REAPERAPI_MINIMAL) 8900 {(void**)&PCM_Source_GetSectionInfo,"PCM_Source_GetSectionInfo"}, 8901 #endif 8902 #if defined(REAPERAPI_WANT_PeakBuild_Create) || !defined(REAPERAPI_MINIMAL) 8903 {(void**)&PeakBuild_Create,"PeakBuild_Create"}, 8904 #endif 8905 #if defined(REAPERAPI_WANT_PeakBuild_CreateEx) || !defined(REAPERAPI_MINIMAL) 8906 {(void**)&PeakBuild_CreateEx,"PeakBuild_CreateEx"}, 8907 #endif 8908 #if defined(REAPERAPI_WANT_PeakGet_Create) || !defined(REAPERAPI_MINIMAL) 8909 {(void**)&PeakGet_Create,"PeakGet_Create"}, 8910 #endif 8911 #if defined(REAPERAPI_WANT_PitchShiftSubModeMenu) || !defined(REAPERAPI_MINIMAL) 8912 {(void**)&PitchShiftSubModeMenu,"PitchShiftSubModeMenu"}, 8913 #endif 8914 #if defined(REAPERAPI_WANT_PlayPreview) || !defined(REAPERAPI_MINIMAL) 8915 {(void**)&PlayPreview,"PlayPreview"}, 8916 #endif 8917 #if defined(REAPERAPI_WANT_PlayPreviewEx) || !defined(REAPERAPI_MINIMAL) 8918 {(void**)&PlayPreviewEx,"PlayPreviewEx"}, 8919 #endif 8920 #if defined(REAPERAPI_WANT_PlayTrackPreview) || !defined(REAPERAPI_MINIMAL) 8921 {(void**)&PlayTrackPreview,"PlayTrackPreview"}, 8922 #endif 8923 #if defined(REAPERAPI_WANT_PlayTrackPreview2) || !defined(REAPERAPI_MINIMAL) 8924 {(void**)&PlayTrackPreview2,"PlayTrackPreview2"}, 8925 #endif 8926 #if defined(REAPERAPI_WANT_PlayTrackPreview2Ex) || !defined(REAPERAPI_MINIMAL) 8927 {(void**)&PlayTrackPreview2Ex,"PlayTrackPreview2Ex"}, 8928 #endif 8929 #if defined(REAPERAPI_WANT_plugin_getapi) || !defined(REAPERAPI_MINIMAL) 8930 {(void**)&plugin_getapi,"plugin_getapi"}, 8931 #endif 8932 #if defined(REAPERAPI_WANT_plugin_getFilterList) || !defined(REAPERAPI_MINIMAL) 8933 {(void**)&plugin_getFilterList,"plugin_getFilterList"}, 8934 #endif 8935 #if defined(REAPERAPI_WANT_plugin_getImportableProjectFilterList) || !defined(REAPERAPI_MINIMAL) 8936 {(void**)&plugin_getImportableProjectFilterList,"plugin_getImportableProjectFilterList"}, 8937 #endif 8938 #if defined(REAPERAPI_WANT_plugin_register) || !defined(REAPERAPI_MINIMAL) 8939 {(void**)&plugin_register,"plugin_register"}, 8940 #endif 8941 #if defined(REAPERAPI_WANT_PluginWantsAlwaysRunFx) || !defined(REAPERAPI_MINIMAL) 8942 {(void**)&PluginWantsAlwaysRunFx,"PluginWantsAlwaysRunFx"}, 8943 #endif 8944 #if defined(REAPERAPI_WANT_PreventUIRefresh) || !defined(REAPERAPI_MINIMAL) 8945 {(void**)&PreventUIRefresh,"PreventUIRefresh"}, 8946 #endif 8947 #if defined(REAPERAPI_WANT_projectconfig_var_addr) || !defined(REAPERAPI_MINIMAL) 8948 {(void**)&projectconfig_var_addr,"projectconfig_var_addr"}, 8949 #endif 8950 #if defined(REAPERAPI_WANT_projectconfig_var_getoffs) || !defined(REAPERAPI_MINIMAL) 8951 {(void**)&projectconfig_var_getoffs,"projectconfig_var_getoffs"}, 8952 #endif 8953 #if defined(REAPERAPI_WANT_PromptForAction) || !defined(REAPERAPI_MINIMAL) 8954 {(void**)&PromptForAction,"PromptForAction"}, 8955 #endif 8956 #if defined(REAPERAPI_WANT_realloc_cmd_clear) || !defined(REAPERAPI_MINIMAL) 8957 {(void**)&realloc_cmd_clear,"realloc_cmd_clear"}, 8958 #endif 8959 #if defined(REAPERAPI_WANT_realloc_cmd_ptr) || !defined(REAPERAPI_MINIMAL) 8960 {(void**)&realloc_cmd_ptr,"realloc_cmd_ptr"}, 8961 #endif 8962 #if defined(REAPERAPI_WANT_realloc_cmd_register_buf) || !defined(REAPERAPI_MINIMAL) 8963 {(void**)&realloc_cmd_register_buf,"realloc_cmd_register_buf"}, 8964 #endif 8965 #if defined(REAPERAPI_WANT_ReaperGetPitchShiftAPI) || !defined(REAPERAPI_MINIMAL) 8966 {(void**)&ReaperGetPitchShiftAPI,"ReaperGetPitchShiftAPI"}, 8967 #endif 8968 #if defined(REAPERAPI_WANT_ReaScriptError) || !defined(REAPERAPI_MINIMAL) 8969 {(void**)&ReaScriptError,"ReaScriptError"}, 8970 #endif 8971 #if defined(REAPERAPI_WANT_RecursiveCreateDirectory) || !defined(REAPERAPI_MINIMAL) 8972 {(void**)&RecursiveCreateDirectory,"RecursiveCreateDirectory"}, 8973 #endif 8974 #if defined(REAPERAPI_WANT_reduce_open_files) || !defined(REAPERAPI_MINIMAL) 8975 {(void**)&reduce_open_files,"reduce_open_files"}, 8976 #endif 8977 #if defined(REAPERAPI_WANT_RefreshToolbar) || !defined(REAPERAPI_MINIMAL) 8978 {(void**)&RefreshToolbar,"RefreshToolbar"}, 8979 #endif 8980 #if defined(REAPERAPI_WANT_RefreshToolbar2) || !defined(REAPERAPI_MINIMAL) 8981 {(void**)&RefreshToolbar2,"RefreshToolbar2"}, 8982 #endif 8983 #if defined(REAPERAPI_WANT_relative_fn) || !defined(REAPERAPI_MINIMAL) 8984 {(void**)&relative_fn,"relative_fn"}, 8985 #endif 8986 #if defined(REAPERAPI_WANT_RemoveTrackSend) || !defined(REAPERAPI_MINIMAL) 8987 {(void**)&RemoveTrackSend,"RemoveTrackSend"}, 8988 #endif 8989 #if defined(REAPERAPI_WANT_RenderFileSection) || !defined(REAPERAPI_MINIMAL) 8990 {(void**)&RenderFileSection,"RenderFileSection"}, 8991 #endif 8992 #if defined(REAPERAPI_WANT_ReorderSelectedTracks) || !defined(REAPERAPI_MINIMAL) 8993 {(void**)&ReorderSelectedTracks,"ReorderSelectedTracks"}, 8994 #endif 8995 #if defined(REAPERAPI_WANT_Resample_EnumModes) || !defined(REAPERAPI_MINIMAL) 8996 {(void**)&Resample_EnumModes,"Resample_EnumModes"}, 8997 #endif 8998 #if defined(REAPERAPI_WANT_Resampler_Create) || !defined(REAPERAPI_MINIMAL) 8999 {(void**)&Resampler_Create,"Resampler_Create"}, 9000 #endif 9001 #if defined(REAPERAPI_WANT_resolve_fn) || !defined(REAPERAPI_MINIMAL) 9002 {(void**)&resolve_fn,"resolve_fn"}, 9003 #endif 9004 #if defined(REAPERAPI_WANT_resolve_fn2) || !defined(REAPERAPI_MINIMAL) 9005 {(void**)&resolve_fn2,"resolve_fn2"}, 9006 #endif 9007 #if defined(REAPERAPI_WANT_ResolveRenderPattern) || !defined(REAPERAPI_MINIMAL) 9008 {(void**)&ResolveRenderPattern,"ResolveRenderPattern"}, 9009 #endif 9010 #if defined(REAPERAPI_WANT_ReverseNamedCommandLookup) || !defined(REAPERAPI_MINIMAL) 9011 {(void**)&ReverseNamedCommandLookup,"ReverseNamedCommandLookup"}, 9012 #endif 9013 #if defined(REAPERAPI_WANT_ScaleFromEnvelopeMode) || !defined(REAPERAPI_MINIMAL) 9014 {(void**)&ScaleFromEnvelopeMode,"ScaleFromEnvelopeMode"}, 9015 #endif 9016 #if defined(REAPERAPI_WANT_ScaleToEnvelopeMode) || !defined(REAPERAPI_MINIMAL) 9017 {(void**)&ScaleToEnvelopeMode,"ScaleToEnvelopeMode"}, 9018 #endif 9019 #if defined(REAPERAPI_WANT_screenset_register) || !defined(REAPERAPI_MINIMAL) 9020 {(void**)&screenset_register,"screenset_register"}, 9021 #endif 9022 #if defined(REAPERAPI_WANT_screenset_registerNew) || !defined(REAPERAPI_MINIMAL) 9023 {(void**)&screenset_registerNew,"screenset_registerNew"}, 9024 #endif 9025 #if defined(REAPERAPI_WANT_screenset_unregister) || !defined(REAPERAPI_MINIMAL) 9026 {(void**)&screenset_unregister,"screenset_unregister"}, 9027 #endif 9028 #if defined(REAPERAPI_WANT_screenset_unregisterByParam) || !defined(REAPERAPI_MINIMAL) 9029 {(void**)&screenset_unregisterByParam,"screenset_unregisterByParam"}, 9030 #endif 9031 #if defined(REAPERAPI_WANT_screenset_updateLastFocus) || !defined(REAPERAPI_MINIMAL) 9032 {(void**)&screenset_updateLastFocus,"screenset_updateLastFocus"}, 9033 #endif 9034 #if defined(REAPERAPI_WANT_SectionFromUniqueID) || !defined(REAPERAPI_MINIMAL) 9035 {(void**)&SectionFromUniqueID,"SectionFromUniqueID"}, 9036 #endif 9037 #if defined(REAPERAPI_WANT_SelectAllMediaItems) || !defined(REAPERAPI_MINIMAL) 9038 {(void**)&SelectAllMediaItems,"SelectAllMediaItems"}, 9039 #endif 9040 #if defined(REAPERAPI_WANT_SelectProjectInstance) || !defined(REAPERAPI_MINIMAL) 9041 {(void**)&SelectProjectInstance,"SelectProjectInstance"}, 9042 #endif 9043 #if defined(REAPERAPI_WANT_SendLocalOscMessage) || !defined(REAPERAPI_MINIMAL) 9044 {(void**)&SendLocalOscMessage,"SendLocalOscMessage"}, 9045 #endif 9046 #if defined(REAPERAPI_WANT_SetActiveTake) || !defined(REAPERAPI_MINIMAL) 9047 {(void**)&SetActiveTake,"SetActiveTake"}, 9048 #endif 9049 #if defined(REAPERAPI_WANT_SetAutomationMode) || !defined(REAPERAPI_MINIMAL) 9050 {(void**)&SetAutomationMode,"SetAutomationMode"}, 9051 #endif 9052 #if defined(REAPERAPI_WANT_SetCurrentBPM) || !defined(REAPERAPI_MINIMAL) 9053 {(void**)&SetCurrentBPM,"SetCurrentBPM"}, 9054 #endif 9055 #if defined(REAPERAPI_WANT_SetCursorContext) || !defined(REAPERAPI_MINIMAL) 9056 {(void**)&SetCursorContext,"SetCursorContext"}, 9057 #endif 9058 #if defined(REAPERAPI_WANT_SetEditCurPos) || !defined(REAPERAPI_MINIMAL) 9059 {(void**)&SetEditCurPos,"SetEditCurPos"}, 9060 #endif 9061 #if defined(REAPERAPI_WANT_SetEditCurPos2) || !defined(REAPERAPI_MINIMAL) 9062 {(void**)&SetEditCurPos2,"SetEditCurPos2"}, 9063 #endif 9064 #if defined(REAPERAPI_WANT_SetEnvelopePoint) || !defined(REAPERAPI_MINIMAL) 9065 {(void**)&SetEnvelopePoint,"SetEnvelopePoint"}, 9066 #endif 9067 #if defined(REAPERAPI_WANT_SetEnvelopePointEx) || !defined(REAPERAPI_MINIMAL) 9068 {(void**)&SetEnvelopePointEx,"SetEnvelopePointEx"}, 9069 #endif 9070 #if defined(REAPERAPI_WANT_SetEnvelopeStateChunk) || !defined(REAPERAPI_MINIMAL) 9071 {(void**)&SetEnvelopeStateChunk,"SetEnvelopeStateChunk"}, 9072 #endif 9073 #if defined(REAPERAPI_WANT_SetExtState) || !defined(REAPERAPI_MINIMAL) 9074 {(void**)&SetExtState,"SetExtState"}, 9075 #endif 9076 #if defined(REAPERAPI_WANT_SetGlobalAutomationOverride) || !defined(REAPERAPI_MINIMAL) 9077 {(void**)&SetGlobalAutomationOverride,"SetGlobalAutomationOverride"}, 9078 #endif 9079 #if defined(REAPERAPI_WANT_SetItemStateChunk) || !defined(REAPERAPI_MINIMAL) 9080 {(void**)&SetItemStateChunk,"SetItemStateChunk"}, 9081 #endif 9082 #if defined(REAPERAPI_WANT_SetMasterTrackVisibility) || !defined(REAPERAPI_MINIMAL) 9083 {(void**)&SetMasterTrackVisibility,"SetMasterTrackVisibility"}, 9084 #endif 9085 #if defined(REAPERAPI_WANT_SetMediaItemInfo_Value) || !defined(REAPERAPI_MINIMAL) 9086 {(void**)&SetMediaItemInfo_Value,"SetMediaItemInfo_Value"}, 9087 #endif 9088 #if defined(REAPERAPI_WANT_SetMediaItemLength) || !defined(REAPERAPI_MINIMAL) 9089 {(void**)&SetMediaItemLength,"SetMediaItemLength"}, 9090 #endif 9091 #if defined(REAPERAPI_WANT_SetMediaItemPosition) || !defined(REAPERAPI_MINIMAL) 9092 {(void**)&SetMediaItemPosition,"SetMediaItemPosition"}, 9093 #endif 9094 #if defined(REAPERAPI_WANT_SetMediaItemSelected) || !defined(REAPERAPI_MINIMAL) 9095 {(void**)&SetMediaItemSelected,"SetMediaItemSelected"}, 9096 #endif 9097 #if defined(REAPERAPI_WANT_SetMediaItemTake_Source) || !defined(REAPERAPI_MINIMAL) 9098 {(void**)&SetMediaItemTake_Source,"SetMediaItemTake_Source"}, 9099 #endif 9100 #if defined(REAPERAPI_WANT_SetMediaItemTakeInfo_Value) || !defined(REAPERAPI_MINIMAL) 9101 {(void**)&SetMediaItemTakeInfo_Value,"SetMediaItemTakeInfo_Value"}, 9102 #endif 9103 #if defined(REAPERAPI_WANT_SetMediaTrackInfo_Value) || !defined(REAPERAPI_MINIMAL) 9104 {(void**)&SetMediaTrackInfo_Value,"SetMediaTrackInfo_Value"}, 9105 #endif 9106 #if defined(REAPERAPI_WANT_SetMIDIEditorGrid) || !defined(REAPERAPI_MINIMAL) 9107 {(void**)&SetMIDIEditorGrid,"SetMIDIEditorGrid"}, 9108 #endif 9109 #if defined(REAPERAPI_WANT_SetMixerScroll) || !defined(REAPERAPI_MINIMAL) 9110 {(void**)&SetMixerScroll,"SetMixerScroll"}, 9111 #endif 9112 #if defined(REAPERAPI_WANT_SetMouseModifier) || !defined(REAPERAPI_MINIMAL) 9113 {(void**)&SetMouseModifier,"SetMouseModifier"}, 9114 #endif 9115 #if defined(REAPERAPI_WANT_SetOnlyTrackSelected) || !defined(REAPERAPI_MINIMAL) 9116 {(void**)&SetOnlyTrackSelected,"SetOnlyTrackSelected"}, 9117 #endif 9118 #if defined(REAPERAPI_WANT_SetProjectGrid) || !defined(REAPERAPI_MINIMAL) 9119 {(void**)&SetProjectGrid,"SetProjectGrid"}, 9120 #endif 9121 #if defined(REAPERAPI_WANT_SetProjectMarker) || !defined(REAPERAPI_MINIMAL) 9122 {(void**)&SetProjectMarker,"SetProjectMarker"}, 9123 #endif 9124 #if defined(REAPERAPI_WANT_SetProjectMarker2) || !defined(REAPERAPI_MINIMAL) 9125 {(void**)&SetProjectMarker2,"SetProjectMarker2"}, 9126 #endif 9127 #if defined(REAPERAPI_WANT_SetProjectMarker3) || !defined(REAPERAPI_MINIMAL) 9128 {(void**)&SetProjectMarker3,"SetProjectMarker3"}, 9129 #endif 9130 #if defined(REAPERAPI_WANT_SetProjectMarker4) || !defined(REAPERAPI_MINIMAL) 9131 {(void**)&SetProjectMarker4,"SetProjectMarker4"}, 9132 #endif 9133 #if defined(REAPERAPI_WANT_SetProjectMarkerByIndex) || !defined(REAPERAPI_MINIMAL) 9134 {(void**)&SetProjectMarkerByIndex,"SetProjectMarkerByIndex"}, 9135 #endif 9136 #if defined(REAPERAPI_WANT_SetProjectMarkerByIndex2) || !defined(REAPERAPI_MINIMAL) 9137 {(void**)&SetProjectMarkerByIndex2,"SetProjectMarkerByIndex2"}, 9138 #endif 9139 #if defined(REAPERAPI_WANT_SetProjExtState) || !defined(REAPERAPI_MINIMAL) 9140 {(void**)&SetProjExtState,"SetProjExtState"}, 9141 #endif 9142 #if defined(REAPERAPI_WANT_SetRegionRenderMatrix) || !defined(REAPERAPI_MINIMAL) 9143 {(void**)&SetRegionRenderMatrix,"SetRegionRenderMatrix"}, 9144 #endif 9145 #if defined(REAPERAPI_WANT_SetRenderLastError) || !defined(REAPERAPI_MINIMAL) 9146 {(void**)&SetRenderLastError,"SetRenderLastError"}, 9147 #endif 9148 #if defined(REAPERAPI_WANT_SetTakeMarker) || !defined(REAPERAPI_MINIMAL) 9149 {(void**)&SetTakeMarker,"SetTakeMarker"}, 9150 #endif 9151 #if defined(REAPERAPI_WANT_SetTakeStretchMarker) || !defined(REAPERAPI_MINIMAL) 9152 {(void**)&SetTakeStretchMarker,"SetTakeStretchMarker"}, 9153 #endif 9154 #if defined(REAPERAPI_WANT_SetTakeStretchMarkerSlope) || !defined(REAPERAPI_MINIMAL) 9155 {(void**)&SetTakeStretchMarkerSlope,"SetTakeStretchMarkerSlope"}, 9156 #endif 9157 #if defined(REAPERAPI_WANT_SetTempoTimeSigMarker) || !defined(REAPERAPI_MINIMAL) 9158 {(void**)&SetTempoTimeSigMarker,"SetTempoTimeSigMarker"}, 9159 #endif 9160 #if defined(REAPERAPI_WANT_SetThemeColor) || !defined(REAPERAPI_MINIMAL) 9161 {(void**)&SetThemeColor,"SetThemeColor"}, 9162 #endif 9163 #if defined(REAPERAPI_WANT_SetToggleCommandState) || !defined(REAPERAPI_MINIMAL) 9164 {(void**)&SetToggleCommandState,"SetToggleCommandState"}, 9165 #endif 9166 #if defined(REAPERAPI_WANT_SetTrackAutomationMode) || !defined(REAPERAPI_MINIMAL) 9167 {(void**)&SetTrackAutomationMode,"SetTrackAutomationMode"}, 9168 #endif 9169 #if defined(REAPERAPI_WANT_SetTrackColor) || !defined(REAPERAPI_MINIMAL) 9170 {(void**)&SetTrackColor,"SetTrackColor"}, 9171 #endif 9172 #if defined(REAPERAPI_WANT_SetTrackMIDILyrics) || !defined(REAPERAPI_MINIMAL) 9173 {(void**)&SetTrackMIDILyrics,"SetTrackMIDILyrics"}, 9174 #endif 9175 #if defined(REAPERAPI_WANT_SetTrackMIDINoteName) || !defined(REAPERAPI_MINIMAL) 9176 {(void**)&SetTrackMIDINoteName,"SetTrackMIDINoteName"}, 9177 #endif 9178 #if defined(REAPERAPI_WANT_SetTrackMIDINoteNameEx) || !defined(REAPERAPI_MINIMAL) 9179 {(void**)&SetTrackMIDINoteNameEx,"SetTrackMIDINoteNameEx"}, 9180 #endif 9181 #if defined(REAPERAPI_WANT_SetTrackSelected) || !defined(REAPERAPI_MINIMAL) 9182 {(void**)&SetTrackSelected,"SetTrackSelected"}, 9183 #endif 9184 #if defined(REAPERAPI_WANT_SetTrackSendInfo_Value) || !defined(REAPERAPI_MINIMAL) 9185 {(void**)&SetTrackSendInfo_Value,"SetTrackSendInfo_Value"}, 9186 #endif 9187 #if defined(REAPERAPI_WANT_SetTrackSendUIPan) || !defined(REAPERAPI_MINIMAL) 9188 {(void**)&SetTrackSendUIPan,"SetTrackSendUIPan"}, 9189 #endif 9190 #if defined(REAPERAPI_WANT_SetTrackSendUIVol) || !defined(REAPERAPI_MINIMAL) 9191 {(void**)&SetTrackSendUIVol,"SetTrackSendUIVol"}, 9192 #endif 9193 #if defined(REAPERAPI_WANT_SetTrackStateChunk) || !defined(REAPERAPI_MINIMAL) 9194 {(void**)&SetTrackStateChunk,"SetTrackStateChunk"}, 9195 #endif 9196 #if defined(REAPERAPI_WANT_ShowActionList) || !defined(REAPERAPI_MINIMAL) 9197 {(void**)&ShowActionList,"ShowActionList"}, 9198 #endif 9199 #if defined(REAPERAPI_WANT_ShowConsoleMsg) || !defined(REAPERAPI_MINIMAL) 9200 {(void**)&ShowConsoleMsg,"ShowConsoleMsg"}, 9201 #endif 9202 #if defined(REAPERAPI_WANT_ShowMessageBox) || !defined(REAPERAPI_MINIMAL) 9203 {(void**)&ShowMessageBox,"ShowMessageBox"}, 9204 #endif 9205 #if defined(REAPERAPI_WANT_ShowPopupMenu) || !defined(REAPERAPI_MINIMAL) 9206 {(void**)&ShowPopupMenu,"ShowPopupMenu"}, 9207 #endif 9208 #if defined(REAPERAPI_WANT_SLIDER2DB) || !defined(REAPERAPI_MINIMAL) 9209 {(void**)&SLIDER2DB,"SLIDER2DB"}, 9210 #endif 9211 #if defined(REAPERAPI_WANT_SnapToGrid) || !defined(REAPERAPI_MINIMAL) 9212 {(void**)&SnapToGrid,"SnapToGrid"}, 9213 #endif 9214 #if defined(REAPERAPI_WANT_SoloAllTracks) || !defined(REAPERAPI_MINIMAL) 9215 {(void**)&SoloAllTracks,"SoloAllTracks"}, 9216 #endif 9217 #if defined(REAPERAPI_WANT_Splash_GetWnd) || !defined(REAPERAPI_MINIMAL) 9218 {(void**)&Splash_GetWnd,"Splash_GetWnd"}, 9219 #endif 9220 #if defined(REAPERAPI_WANT_SplitMediaItem) || !defined(REAPERAPI_MINIMAL) 9221 {(void**)&SplitMediaItem,"SplitMediaItem"}, 9222 #endif 9223 #if defined(REAPERAPI_WANT_StopPreview) || !defined(REAPERAPI_MINIMAL) 9224 {(void**)&StopPreview,"StopPreview"}, 9225 #endif 9226 #if defined(REAPERAPI_WANT_StopTrackPreview) || !defined(REAPERAPI_MINIMAL) 9227 {(void**)&StopTrackPreview,"StopTrackPreview"}, 9228 #endif 9229 #if defined(REAPERAPI_WANT_StopTrackPreview2) || !defined(REAPERAPI_MINIMAL) 9230 {(void**)&StopTrackPreview2,"StopTrackPreview2"}, 9231 #endif 9232 #if defined(REAPERAPI_WANT_stringToGuid) || !defined(REAPERAPI_MINIMAL) 9233 {(void**)&stringToGuid,"stringToGuid"}, 9234 #endif 9235 #if defined(REAPERAPI_WANT_StuffMIDIMessage) || !defined(REAPERAPI_MINIMAL) 9236 {(void**)&StuffMIDIMessage,"StuffMIDIMessage"}, 9237 #endif 9238 #if defined(REAPERAPI_WANT_TakeFX_AddByName) || !defined(REAPERAPI_MINIMAL) 9239 {(void**)&TakeFX_AddByName,"TakeFX_AddByName"}, 9240 #endif 9241 #if defined(REAPERAPI_WANT_TakeFX_CopyToTake) || !defined(REAPERAPI_MINIMAL) 9242 {(void**)&TakeFX_CopyToTake,"TakeFX_CopyToTake"}, 9243 #endif 9244 #if defined(REAPERAPI_WANT_TakeFX_CopyToTrack) || !defined(REAPERAPI_MINIMAL) 9245 {(void**)&TakeFX_CopyToTrack,"TakeFX_CopyToTrack"}, 9246 #endif 9247 #if defined(REAPERAPI_WANT_TakeFX_Delete) || !defined(REAPERAPI_MINIMAL) 9248 {(void**)&TakeFX_Delete,"TakeFX_Delete"}, 9249 #endif 9250 #if defined(REAPERAPI_WANT_TakeFX_EndParamEdit) || !defined(REAPERAPI_MINIMAL) 9251 {(void**)&TakeFX_EndParamEdit,"TakeFX_EndParamEdit"}, 9252 #endif 9253 #if defined(REAPERAPI_WANT_TakeFX_FormatParamValue) || !defined(REAPERAPI_MINIMAL) 9254 {(void**)&TakeFX_FormatParamValue,"TakeFX_FormatParamValue"}, 9255 #endif 9256 #if defined(REAPERAPI_WANT_TakeFX_FormatParamValueNormalized) || !defined(REAPERAPI_MINIMAL) 9257 {(void**)&TakeFX_FormatParamValueNormalized,"TakeFX_FormatParamValueNormalized"}, 9258 #endif 9259 #if defined(REAPERAPI_WANT_TakeFX_GetChainVisible) || !defined(REAPERAPI_MINIMAL) 9260 {(void**)&TakeFX_GetChainVisible,"TakeFX_GetChainVisible"}, 9261 #endif 9262 #if defined(REAPERAPI_WANT_TakeFX_GetCount) || !defined(REAPERAPI_MINIMAL) 9263 {(void**)&TakeFX_GetCount,"TakeFX_GetCount"}, 9264 #endif 9265 #if defined(REAPERAPI_WANT_TakeFX_GetEnabled) || !defined(REAPERAPI_MINIMAL) 9266 {(void**)&TakeFX_GetEnabled,"TakeFX_GetEnabled"}, 9267 #endif 9268 #if defined(REAPERAPI_WANT_TakeFX_GetEnvelope) || !defined(REAPERAPI_MINIMAL) 9269 {(void**)&TakeFX_GetEnvelope,"TakeFX_GetEnvelope"}, 9270 #endif 9271 #if defined(REAPERAPI_WANT_TakeFX_GetFloatingWindow) || !defined(REAPERAPI_MINIMAL) 9272 {(void**)&TakeFX_GetFloatingWindow,"TakeFX_GetFloatingWindow"}, 9273 #endif 9274 #if defined(REAPERAPI_WANT_TakeFX_GetFormattedParamValue) || !defined(REAPERAPI_MINIMAL) 9275 {(void**)&TakeFX_GetFormattedParamValue,"TakeFX_GetFormattedParamValue"}, 9276 #endif 9277 #if defined(REAPERAPI_WANT_TakeFX_GetFXGUID) || !defined(REAPERAPI_MINIMAL) 9278 {(void**)&TakeFX_GetFXGUID,"TakeFX_GetFXGUID"}, 9279 #endif 9280 #if defined(REAPERAPI_WANT_TakeFX_GetFXName) || !defined(REAPERAPI_MINIMAL) 9281 {(void**)&TakeFX_GetFXName,"TakeFX_GetFXName"}, 9282 #endif 9283 #if defined(REAPERAPI_WANT_TakeFX_GetIOSize) || !defined(REAPERAPI_MINIMAL) 9284 {(void**)&TakeFX_GetIOSize,"TakeFX_GetIOSize"}, 9285 #endif 9286 #if defined(REAPERAPI_WANT_TakeFX_GetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 9287 {(void**)&TakeFX_GetNamedConfigParm,"TakeFX_GetNamedConfigParm"}, 9288 #endif 9289 #if defined(REAPERAPI_WANT_TakeFX_GetNumParams) || !defined(REAPERAPI_MINIMAL) 9290 {(void**)&TakeFX_GetNumParams,"TakeFX_GetNumParams"}, 9291 #endif 9292 #if defined(REAPERAPI_WANT_TakeFX_GetOffline) || !defined(REAPERAPI_MINIMAL) 9293 {(void**)&TakeFX_GetOffline,"TakeFX_GetOffline"}, 9294 #endif 9295 #if defined(REAPERAPI_WANT_TakeFX_GetOpen) || !defined(REAPERAPI_MINIMAL) 9296 {(void**)&TakeFX_GetOpen,"TakeFX_GetOpen"}, 9297 #endif 9298 #if defined(REAPERAPI_WANT_TakeFX_GetParam) || !defined(REAPERAPI_MINIMAL) 9299 {(void**)&TakeFX_GetParam,"TakeFX_GetParam"}, 9300 #endif 9301 #if defined(REAPERAPI_WANT_TakeFX_GetParameterStepSizes) || !defined(REAPERAPI_MINIMAL) 9302 {(void**)&TakeFX_GetParameterStepSizes,"TakeFX_GetParameterStepSizes"}, 9303 #endif 9304 #if defined(REAPERAPI_WANT_TakeFX_GetParamEx) || !defined(REAPERAPI_MINIMAL) 9305 {(void**)&TakeFX_GetParamEx,"TakeFX_GetParamEx"}, 9306 #endif 9307 #if defined(REAPERAPI_WANT_TakeFX_GetParamFromIdent) || !defined(REAPERAPI_MINIMAL) 9308 {(void**)&TakeFX_GetParamFromIdent,"TakeFX_GetParamFromIdent"}, 9309 #endif 9310 #if defined(REAPERAPI_WANT_TakeFX_GetParamIdent) || !defined(REAPERAPI_MINIMAL) 9311 {(void**)&TakeFX_GetParamIdent,"TakeFX_GetParamIdent"}, 9312 #endif 9313 #if defined(REAPERAPI_WANT_TakeFX_GetParamName) || !defined(REAPERAPI_MINIMAL) 9314 {(void**)&TakeFX_GetParamName,"TakeFX_GetParamName"}, 9315 #endif 9316 #if defined(REAPERAPI_WANT_TakeFX_GetParamNormalized) || !defined(REAPERAPI_MINIMAL) 9317 {(void**)&TakeFX_GetParamNormalized,"TakeFX_GetParamNormalized"}, 9318 #endif 9319 #if defined(REAPERAPI_WANT_TakeFX_GetPinMappings) || !defined(REAPERAPI_MINIMAL) 9320 {(void**)&TakeFX_GetPinMappings,"TakeFX_GetPinMappings"}, 9321 #endif 9322 #if defined(REAPERAPI_WANT_TakeFX_GetPreset) || !defined(REAPERAPI_MINIMAL) 9323 {(void**)&TakeFX_GetPreset,"TakeFX_GetPreset"}, 9324 #endif 9325 #if defined(REAPERAPI_WANT_TakeFX_GetPresetIndex) || !defined(REAPERAPI_MINIMAL) 9326 {(void**)&TakeFX_GetPresetIndex,"TakeFX_GetPresetIndex"}, 9327 #endif 9328 #if defined(REAPERAPI_WANT_TakeFX_GetUserPresetFilename) || !defined(REAPERAPI_MINIMAL) 9329 {(void**)&TakeFX_GetUserPresetFilename,"TakeFX_GetUserPresetFilename"}, 9330 #endif 9331 #if defined(REAPERAPI_WANT_TakeFX_NavigatePresets) || !defined(REAPERAPI_MINIMAL) 9332 {(void**)&TakeFX_NavigatePresets,"TakeFX_NavigatePresets"}, 9333 #endif 9334 #if defined(REAPERAPI_WANT_TakeFX_SetEnabled) || !defined(REAPERAPI_MINIMAL) 9335 {(void**)&TakeFX_SetEnabled,"TakeFX_SetEnabled"}, 9336 #endif 9337 #if defined(REAPERAPI_WANT_TakeFX_SetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 9338 {(void**)&TakeFX_SetNamedConfigParm,"TakeFX_SetNamedConfigParm"}, 9339 #endif 9340 #if defined(REAPERAPI_WANT_TakeFX_SetOffline) || !defined(REAPERAPI_MINIMAL) 9341 {(void**)&TakeFX_SetOffline,"TakeFX_SetOffline"}, 9342 #endif 9343 #if defined(REAPERAPI_WANT_TakeFX_SetOpen) || !defined(REAPERAPI_MINIMAL) 9344 {(void**)&TakeFX_SetOpen,"TakeFX_SetOpen"}, 9345 #endif 9346 #if defined(REAPERAPI_WANT_TakeFX_SetParam) || !defined(REAPERAPI_MINIMAL) 9347 {(void**)&TakeFX_SetParam,"TakeFX_SetParam"}, 9348 #endif 9349 #if defined(REAPERAPI_WANT_TakeFX_SetParamNormalized) || !defined(REAPERAPI_MINIMAL) 9350 {(void**)&TakeFX_SetParamNormalized,"TakeFX_SetParamNormalized"}, 9351 #endif 9352 #if defined(REAPERAPI_WANT_TakeFX_SetPinMappings) || !defined(REAPERAPI_MINIMAL) 9353 {(void**)&TakeFX_SetPinMappings,"TakeFX_SetPinMappings"}, 9354 #endif 9355 #if defined(REAPERAPI_WANT_TakeFX_SetPreset) || !defined(REAPERAPI_MINIMAL) 9356 {(void**)&TakeFX_SetPreset,"TakeFX_SetPreset"}, 9357 #endif 9358 #if defined(REAPERAPI_WANT_TakeFX_SetPresetByIndex) || !defined(REAPERAPI_MINIMAL) 9359 {(void**)&TakeFX_SetPresetByIndex,"TakeFX_SetPresetByIndex"}, 9360 #endif 9361 #if defined(REAPERAPI_WANT_TakeFX_Show) || !defined(REAPERAPI_MINIMAL) 9362 {(void**)&TakeFX_Show,"TakeFX_Show"}, 9363 #endif 9364 #if defined(REAPERAPI_WANT_TakeIsMIDI) || !defined(REAPERAPI_MINIMAL) 9365 {(void**)&TakeIsMIDI,"TakeIsMIDI"}, 9366 #endif 9367 #if defined(REAPERAPI_WANT_ThemeLayout_GetLayout) || !defined(REAPERAPI_MINIMAL) 9368 {(void**)&ThemeLayout_GetLayout,"ThemeLayout_GetLayout"}, 9369 #endif 9370 #if defined(REAPERAPI_WANT_ThemeLayout_GetParameter) || !defined(REAPERAPI_MINIMAL) 9371 {(void**)&ThemeLayout_GetParameter,"ThemeLayout_GetParameter"}, 9372 #endif 9373 #if defined(REAPERAPI_WANT_ThemeLayout_RefreshAll) || !defined(REAPERAPI_MINIMAL) 9374 {(void**)&ThemeLayout_RefreshAll,"ThemeLayout_RefreshAll"}, 9375 #endif 9376 #if defined(REAPERAPI_WANT_ThemeLayout_SetLayout) || !defined(REAPERAPI_MINIMAL) 9377 {(void**)&ThemeLayout_SetLayout,"ThemeLayout_SetLayout"}, 9378 #endif 9379 #if defined(REAPERAPI_WANT_ThemeLayout_SetParameter) || !defined(REAPERAPI_MINIMAL) 9380 {(void**)&ThemeLayout_SetParameter,"ThemeLayout_SetParameter"}, 9381 #endif 9382 #if defined(REAPERAPI_WANT_time_precise) || !defined(REAPERAPI_MINIMAL) 9383 {(void**)&time_precise,"time_precise"}, 9384 #endif 9385 #if defined(REAPERAPI_WANT_TimeMap2_beatsToTime) || !defined(REAPERAPI_MINIMAL) 9386 {(void**)&TimeMap2_beatsToTime,"TimeMap2_beatsToTime"}, 9387 #endif 9388 #if defined(REAPERAPI_WANT_TimeMap2_GetDividedBpmAtTime) || !defined(REAPERAPI_MINIMAL) 9389 {(void**)&TimeMap2_GetDividedBpmAtTime,"TimeMap2_GetDividedBpmAtTime"}, 9390 #endif 9391 #if defined(REAPERAPI_WANT_TimeMap2_GetNextChangeTime) || !defined(REAPERAPI_MINIMAL) 9392 {(void**)&TimeMap2_GetNextChangeTime,"TimeMap2_GetNextChangeTime"}, 9393 #endif 9394 #if defined(REAPERAPI_WANT_TimeMap2_QNToTime) || !defined(REAPERAPI_MINIMAL) 9395 {(void**)&TimeMap2_QNToTime,"TimeMap2_QNToTime"}, 9396 #endif 9397 #if defined(REAPERAPI_WANT_TimeMap2_timeToBeats) || !defined(REAPERAPI_MINIMAL) 9398 {(void**)&TimeMap2_timeToBeats,"TimeMap2_timeToBeats"}, 9399 #endif 9400 #if defined(REAPERAPI_WANT_TimeMap2_timeToQN) || !defined(REAPERAPI_MINIMAL) 9401 {(void**)&TimeMap2_timeToQN,"TimeMap2_timeToQN"}, 9402 #endif 9403 #if defined(REAPERAPI_WANT_TimeMap_curFrameRate) || !defined(REAPERAPI_MINIMAL) 9404 {(void**)&TimeMap_curFrameRate,"TimeMap_curFrameRate"}, 9405 #endif 9406 #if defined(REAPERAPI_WANT_TimeMap_GetDividedBpmAtTime) || !defined(REAPERAPI_MINIMAL) 9407 {(void**)&TimeMap_GetDividedBpmAtTime,"TimeMap_GetDividedBpmAtTime"}, 9408 #endif 9409 #if defined(REAPERAPI_WANT_TimeMap_GetMeasureInfo) || !defined(REAPERAPI_MINIMAL) 9410 {(void**)&TimeMap_GetMeasureInfo,"TimeMap_GetMeasureInfo"}, 9411 #endif 9412 #if defined(REAPERAPI_WANT_TimeMap_GetMetronomePattern) || !defined(REAPERAPI_MINIMAL) 9413 {(void**)&TimeMap_GetMetronomePattern,"TimeMap_GetMetronomePattern"}, 9414 #endif 9415 #if defined(REAPERAPI_WANT_TimeMap_GetTimeSigAtTime) || !defined(REAPERAPI_MINIMAL) 9416 {(void**)&TimeMap_GetTimeSigAtTime,"TimeMap_GetTimeSigAtTime"}, 9417 #endif 9418 #if defined(REAPERAPI_WANT_TimeMap_QNToMeasures) || !defined(REAPERAPI_MINIMAL) 9419 {(void**)&TimeMap_QNToMeasures,"TimeMap_QNToMeasures"}, 9420 #endif 9421 #if defined(REAPERAPI_WANT_TimeMap_QNToTime) || !defined(REAPERAPI_MINIMAL) 9422 {(void**)&TimeMap_QNToTime,"TimeMap_QNToTime"}, 9423 #endif 9424 #if defined(REAPERAPI_WANT_TimeMap_QNToTime_abs) || !defined(REAPERAPI_MINIMAL) 9425 {(void**)&TimeMap_QNToTime_abs,"TimeMap_QNToTime_abs"}, 9426 #endif 9427 #if defined(REAPERAPI_WANT_TimeMap_timeToQN) || !defined(REAPERAPI_MINIMAL) 9428 {(void**)&TimeMap_timeToQN,"TimeMap_timeToQN"}, 9429 #endif 9430 #if defined(REAPERAPI_WANT_TimeMap_timeToQN_abs) || !defined(REAPERAPI_MINIMAL) 9431 {(void**)&TimeMap_timeToQN_abs,"TimeMap_timeToQN_abs"}, 9432 #endif 9433 #if defined(REAPERAPI_WANT_ToggleTrackSendUIMute) || !defined(REAPERAPI_MINIMAL) 9434 {(void**)&ToggleTrackSendUIMute,"ToggleTrackSendUIMute"}, 9435 #endif 9436 #if defined(REAPERAPI_WANT_Track_GetPeakHoldDB) || !defined(REAPERAPI_MINIMAL) 9437 {(void**)&Track_GetPeakHoldDB,"Track_GetPeakHoldDB"}, 9438 #endif 9439 #if defined(REAPERAPI_WANT_Track_GetPeakInfo) || !defined(REAPERAPI_MINIMAL) 9440 {(void**)&Track_GetPeakInfo,"Track_GetPeakInfo"}, 9441 #endif 9442 #if defined(REAPERAPI_WANT_TrackCtl_SetToolTip) || !defined(REAPERAPI_MINIMAL) 9443 {(void**)&TrackCtl_SetToolTip,"TrackCtl_SetToolTip"}, 9444 #endif 9445 #if defined(REAPERAPI_WANT_TrackFX_AddByName) || !defined(REAPERAPI_MINIMAL) 9446 {(void**)&TrackFX_AddByName,"TrackFX_AddByName"}, 9447 #endif 9448 #if defined(REAPERAPI_WANT_TrackFX_CopyToTake) || !defined(REAPERAPI_MINIMAL) 9449 {(void**)&TrackFX_CopyToTake,"TrackFX_CopyToTake"}, 9450 #endif 9451 #if defined(REAPERAPI_WANT_TrackFX_CopyToTrack) || !defined(REAPERAPI_MINIMAL) 9452 {(void**)&TrackFX_CopyToTrack,"TrackFX_CopyToTrack"}, 9453 #endif 9454 #if defined(REAPERAPI_WANT_TrackFX_Delete) || !defined(REAPERAPI_MINIMAL) 9455 {(void**)&TrackFX_Delete,"TrackFX_Delete"}, 9456 #endif 9457 #if defined(REAPERAPI_WANT_TrackFX_EndParamEdit) || !defined(REAPERAPI_MINIMAL) 9458 {(void**)&TrackFX_EndParamEdit,"TrackFX_EndParamEdit"}, 9459 #endif 9460 #if defined(REAPERAPI_WANT_TrackFX_FormatParamValue) || !defined(REAPERAPI_MINIMAL) 9461 {(void**)&TrackFX_FormatParamValue,"TrackFX_FormatParamValue"}, 9462 #endif 9463 #if defined(REAPERAPI_WANT_TrackFX_FormatParamValueNormalized) || !defined(REAPERAPI_MINIMAL) 9464 {(void**)&TrackFX_FormatParamValueNormalized,"TrackFX_FormatParamValueNormalized"}, 9465 #endif 9466 #if defined(REAPERAPI_WANT_TrackFX_GetByName) || !defined(REAPERAPI_MINIMAL) 9467 {(void**)&TrackFX_GetByName,"TrackFX_GetByName"}, 9468 #endif 9469 #if defined(REAPERAPI_WANT_TrackFX_GetChainVisible) || !defined(REAPERAPI_MINIMAL) 9470 {(void**)&TrackFX_GetChainVisible,"TrackFX_GetChainVisible"}, 9471 #endif 9472 #if defined(REAPERAPI_WANT_TrackFX_GetCount) || !defined(REAPERAPI_MINIMAL) 9473 {(void**)&TrackFX_GetCount,"TrackFX_GetCount"}, 9474 #endif 9475 #if defined(REAPERAPI_WANT_TrackFX_GetEnabled) || !defined(REAPERAPI_MINIMAL) 9476 {(void**)&TrackFX_GetEnabled,"TrackFX_GetEnabled"}, 9477 #endif 9478 #if defined(REAPERAPI_WANT_TrackFX_GetEQ) || !defined(REAPERAPI_MINIMAL) 9479 {(void**)&TrackFX_GetEQ,"TrackFX_GetEQ"}, 9480 #endif 9481 #if defined(REAPERAPI_WANT_TrackFX_GetEQBandEnabled) || !defined(REAPERAPI_MINIMAL) 9482 {(void**)&TrackFX_GetEQBandEnabled,"TrackFX_GetEQBandEnabled"}, 9483 #endif 9484 #if defined(REAPERAPI_WANT_TrackFX_GetEQParam) || !defined(REAPERAPI_MINIMAL) 9485 {(void**)&TrackFX_GetEQParam,"TrackFX_GetEQParam"}, 9486 #endif 9487 #if defined(REAPERAPI_WANT_TrackFX_GetFloatingWindow) || !defined(REAPERAPI_MINIMAL) 9488 {(void**)&TrackFX_GetFloatingWindow,"TrackFX_GetFloatingWindow"}, 9489 #endif 9490 #if defined(REAPERAPI_WANT_TrackFX_GetFormattedParamValue) || !defined(REAPERAPI_MINIMAL) 9491 {(void**)&TrackFX_GetFormattedParamValue,"TrackFX_GetFormattedParamValue"}, 9492 #endif 9493 #if defined(REAPERAPI_WANT_TrackFX_GetFXGUID) || !defined(REAPERAPI_MINIMAL) 9494 {(void**)&TrackFX_GetFXGUID,"TrackFX_GetFXGUID"}, 9495 #endif 9496 #if defined(REAPERAPI_WANT_TrackFX_GetFXName) || !defined(REAPERAPI_MINIMAL) 9497 {(void**)&TrackFX_GetFXName,"TrackFX_GetFXName"}, 9498 #endif 9499 #if defined(REAPERAPI_WANT_TrackFX_GetInstrument) || !defined(REAPERAPI_MINIMAL) 9500 {(void**)&TrackFX_GetInstrument,"TrackFX_GetInstrument"}, 9501 #endif 9502 #if defined(REAPERAPI_WANT_TrackFX_GetIOSize) || !defined(REAPERAPI_MINIMAL) 9503 {(void**)&TrackFX_GetIOSize,"TrackFX_GetIOSize"}, 9504 #endif 9505 #if defined(REAPERAPI_WANT_TrackFX_GetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 9506 {(void**)&TrackFX_GetNamedConfigParm,"TrackFX_GetNamedConfigParm"}, 9507 #endif 9508 #if defined(REAPERAPI_WANT_TrackFX_GetNumParams) || !defined(REAPERAPI_MINIMAL) 9509 {(void**)&TrackFX_GetNumParams,"TrackFX_GetNumParams"}, 9510 #endif 9511 #if defined(REAPERAPI_WANT_TrackFX_GetOffline) || !defined(REAPERAPI_MINIMAL) 9512 {(void**)&TrackFX_GetOffline,"TrackFX_GetOffline"}, 9513 #endif 9514 #if defined(REAPERAPI_WANT_TrackFX_GetOpen) || !defined(REAPERAPI_MINIMAL) 9515 {(void**)&TrackFX_GetOpen,"TrackFX_GetOpen"}, 9516 #endif 9517 #if defined(REAPERAPI_WANT_TrackFX_GetParam) || !defined(REAPERAPI_MINIMAL) 9518 {(void**)&TrackFX_GetParam,"TrackFX_GetParam"}, 9519 #endif 9520 #if defined(REAPERAPI_WANT_TrackFX_GetParameterStepSizes) || !defined(REAPERAPI_MINIMAL) 9521 {(void**)&TrackFX_GetParameterStepSizes,"TrackFX_GetParameterStepSizes"}, 9522 #endif 9523 #if defined(REAPERAPI_WANT_TrackFX_GetParamEx) || !defined(REAPERAPI_MINIMAL) 9524 {(void**)&TrackFX_GetParamEx,"TrackFX_GetParamEx"}, 9525 #endif 9526 #if defined(REAPERAPI_WANT_TrackFX_GetParamFromIdent) || !defined(REAPERAPI_MINIMAL) 9527 {(void**)&TrackFX_GetParamFromIdent,"TrackFX_GetParamFromIdent"}, 9528 #endif 9529 #if defined(REAPERAPI_WANT_TrackFX_GetParamIdent) || !defined(REAPERAPI_MINIMAL) 9530 {(void**)&TrackFX_GetParamIdent,"TrackFX_GetParamIdent"}, 9531 #endif 9532 #if defined(REAPERAPI_WANT_TrackFX_GetParamName) || !defined(REAPERAPI_MINIMAL) 9533 {(void**)&TrackFX_GetParamName,"TrackFX_GetParamName"}, 9534 #endif 9535 #if defined(REAPERAPI_WANT_TrackFX_GetParamNormalized) || !defined(REAPERAPI_MINIMAL) 9536 {(void**)&TrackFX_GetParamNormalized,"TrackFX_GetParamNormalized"}, 9537 #endif 9538 #if defined(REAPERAPI_WANT_TrackFX_GetPinMappings) || !defined(REAPERAPI_MINIMAL) 9539 {(void**)&TrackFX_GetPinMappings,"TrackFX_GetPinMappings"}, 9540 #endif 9541 #if defined(REAPERAPI_WANT_TrackFX_GetPreset) || !defined(REAPERAPI_MINIMAL) 9542 {(void**)&TrackFX_GetPreset,"TrackFX_GetPreset"}, 9543 #endif 9544 #if defined(REAPERAPI_WANT_TrackFX_GetPresetIndex) || !defined(REAPERAPI_MINIMAL) 9545 {(void**)&TrackFX_GetPresetIndex,"TrackFX_GetPresetIndex"}, 9546 #endif 9547 #if defined(REAPERAPI_WANT_TrackFX_GetRecChainVisible) || !defined(REAPERAPI_MINIMAL) 9548 {(void**)&TrackFX_GetRecChainVisible,"TrackFX_GetRecChainVisible"}, 9549 #endif 9550 #if defined(REAPERAPI_WANT_TrackFX_GetRecCount) || !defined(REAPERAPI_MINIMAL) 9551 {(void**)&TrackFX_GetRecCount,"TrackFX_GetRecCount"}, 9552 #endif 9553 #if defined(REAPERAPI_WANT_TrackFX_GetUserPresetFilename) || !defined(REAPERAPI_MINIMAL) 9554 {(void**)&TrackFX_GetUserPresetFilename,"TrackFX_GetUserPresetFilename"}, 9555 #endif 9556 #if defined(REAPERAPI_WANT_TrackFX_NavigatePresets) || !defined(REAPERAPI_MINIMAL) 9557 {(void**)&TrackFX_NavigatePresets,"TrackFX_NavigatePresets"}, 9558 #endif 9559 #if defined(REAPERAPI_WANT_TrackFX_SetEnabled) || !defined(REAPERAPI_MINIMAL) 9560 {(void**)&TrackFX_SetEnabled,"TrackFX_SetEnabled"}, 9561 #endif 9562 #if defined(REAPERAPI_WANT_TrackFX_SetEQBandEnabled) || !defined(REAPERAPI_MINIMAL) 9563 {(void**)&TrackFX_SetEQBandEnabled,"TrackFX_SetEQBandEnabled"}, 9564 #endif 9565 #if defined(REAPERAPI_WANT_TrackFX_SetEQParam) || !defined(REAPERAPI_MINIMAL) 9566 {(void**)&TrackFX_SetEQParam,"TrackFX_SetEQParam"}, 9567 #endif 9568 #if defined(REAPERAPI_WANT_TrackFX_SetNamedConfigParm) || !defined(REAPERAPI_MINIMAL) 9569 {(void**)&TrackFX_SetNamedConfigParm,"TrackFX_SetNamedConfigParm"}, 9570 #endif 9571 #if defined(REAPERAPI_WANT_TrackFX_SetOffline) || !defined(REAPERAPI_MINIMAL) 9572 {(void**)&TrackFX_SetOffline,"TrackFX_SetOffline"}, 9573 #endif 9574 #if defined(REAPERAPI_WANT_TrackFX_SetOpen) || !defined(REAPERAPI_MINIMAL) 9575 {(void**)&TrackFX_SetOpen,"TrackFX_SetOpen"}, 9576 #endif 9577 #if defined(REAPERAPI_WANT_TrackFX_SetParam) || !defined(REAPERAPI_MINIMAL) 9578 {(void**)&TrackFX_SetParam,"TrackFX_SetParam"}, 9579 #endif 9580 #if defined(REAPERAPI_WANT_TrackFX_SetParamNormalized) || !defined(REAPERAPI_MINIMAL) 9581 {(void**)&TrackFX_SetParamNormalized,"TrackFX_SetParamNormalized"}, 9582 #endif 9583 #if defined(REAPERAPI_WANT_TrackFX_SetPinMappings) || !defined(REAPERAPI_MINIMAL) 9584 {(void**)&TrackFX_SetPinMappings,"TrackFX_SetPinMappings"}, 9585 #endif 9586 #if defined(REAPERAPI_WANT_TrackFX_SetPreset) || !defined(REAPERAPI_MINIMAL) 9587 {(void**)&TrackFX_SetPreset,"TrackFX_SetPreset"}, 9588 #endif 9589 #if defined(REAPERAPI_WANT_TrackFX_SetPresetByIndex) || !defined(REAPERAPI_MINIMAL) 9590 {(void**)&TrackFX_SetPresetByIndex,"TrackFX_SetPresetByIndex"}, 9591 #endif 9592 #if defined(REAPERAPI_WANT_TrackFX_Show) || !defined(REAPERAPI_MINIMAL) 9593 {(void**)&TrackFX_Show,"TrackFX_Show"}, 9594 #endif 9595 #if defined(REAPERAPI_WANT_TrackList_AdjustWindows) || !defined(REAPERAPI_MINIMAL) 9596 {(void**)&TrackList_AdjustWindows,"TrackList_AdjustWindows"}, 9597 #endif 9598 #if defined(REAPERAPI_WANT_TrackList_UpdateAllExternalSurfaces) || !defined(REAPERAPI_MINIMAL) 9599 {(void**)&TrackList_UpdateAllExternalSurfaces,"TrackList_UpdateAllExternalSurfaces"}, 9600 #endif 9601 #if defined(REAPERAPI_WANT_Undo_BeginBlock) || !defined(REAPERAPI_MINIMAL) 9602 {(void**)&Undo_BeginBlock,"Undo_BeginBlock"}, 9603 #endif 9604 #if defined(REAPERAPI_WANT_Undo_BeginBlock2) || !defined(REAPERAPI_MINIMAL) 9605 {(void**)&Undo_BeginBlock2,"Undo_BeginBlock2"}, 9606 #endif 9607 #if defined(REAPERAPI_WANT_Undo_CanRedo2) || !defined(REAPERAPI_MINIMAL) 9608 {(void**)&Undo_CanRedo2,"Undo_CanRedo2"}, 9609 #endif 9610 #if defined(REAPERAPI_WANT_Undo_CanUndo2) || !defined(REAPERAPI_MINIMAL) 9611 {(void**)&Undo_CanUndo2,"Undo_CanUndo2"}, 9612 #endif 9613 #if defined(REAPERAPI_WANT_Undo_DoRedo2) || !defined(REAPERAPI_MINIMAL) 9614 {(void**)&Undo_DoRedo2,"Undo_DoRedo2"}, 9615 #endif 9616 #if defined(REAPERAPI_WANT_Undo_DoUndo2) || !defined(REAPERAPI_MINIMAL) 9617 {(void**)&Undo_DoUndo2,"Undo_DoUndo2"}, 9618 #endif 9619 #if defined(REAPERAPI_WANT_Undo_EndBlock) || !defined(REAPERAPI_MINIMAL) 9620 {(void**)&Undo_EndBlock,"Undo_EndBlock"}, 9621 #endif 9622 #if defined(REAPERAPI_WANT_Undo_EndBlock2) || !defined(REAPERAPI_MINIMAL) 9623 {(void**)&Undo_EndBlock2,"Undo_EndBlock2"}, 9624 #endif 9625 #if defined(REAPERAPI_WANT_Undo_OnStateChange) || !defined(REAPERAPI_MINIMAL) 9626 {(void**)&Undo_OnStateChange,"Undo_OnStateChange"}, 9627 #endif 9628 #if defined(REAPERAPI_WANT_Undo_OnStateChange2) || !defined(REAPERAPI_MINIMAL) 9629 {(void**)&Undo_OnStateChange2,"Undo_OnStateChange2"}, 9630 #endif 9631 #if defined(REAPERAPI_WANT_Undo_OnStateChange_Item) || !defined(REAPERAPI_MINIMAL) 9632 {(void**)&Undo_OnStateChange_Item,"Undo_OnStateChange_Item"}, 9633 #endif 9634 #if defined(REAPERAPI_WANT_Undo_OnStateChangeEx) || !defined(REAPERAPI_MINIMAL) 9635 {(void**)&Undo_OnStateChangeEx,"Undo_OnStateChangeEx"}, 9636 #endif 9637 #if defined(REAPERAPI_WANT_Undo_OnStateChangeEx2) || !defined(REAPERAPI_MINIMAL) 9638 {(void**)&Undo_OnStateChangeEx2,"Undo_OnStateChangeEx2"}, 9639 #endif 9640 #if defined(REAPERAPI_WANT_update_disk_counters) || !defined(REAPERAPI_MINIMAL) 9641 {(void**)&update_disk_counters,"update_disk_counters"}, 9642 #endif 9643 #if defined(REAPERAPI_WANT_UpdateArrange) || !defined(REAPERAPI_MINIMAL) 9644 {(void**)&UpdateArrange,"UpdateArrange"}, 9645 #endif 9646 #if defined(REAPERAPI_WANT_UpdateItemInProject) || !defined(REAPERAPI_MINIMAL) 9647 {(void**)&UpdateItemInProject,"UpdateItemInProject"}, 9648 #endif 9649 #if defined(REAPERAPI_WANT_UpdateTimeline) || !defined(REAPERAPI_MINIMAL) 9650 {(void**)&UpdateTimeline,"UpdateTimeline"}, 9651 #endif 9652 #if defined(REAPERAPI_WANT_ValidatePtr) || !defined(REAPERAPI_MINIMAL) 9653 {(void**)&ValidatePtr,"ValidatePtr"}, 9654 #endif 9655 #if defined(REAPERAPI_WANT_ValidatePtr2) || !defined(REAPERAPI_MINIMAL) 9656 {(void**)&ValidatePtr2,"ValidatePtr2"}, 9657 #endif 9658 #if defined(REAPERAPI_WANT_ViewPrefs) || !defined(REAPERAPI_MINIMAL) 9659 {(void**)&ViewPrefs,"ViewPrefs"}, 9660 #endif 9661 #if defined(REAPERAPI_WANT_WDL_VirtualWnd_ScaledBlitBG) || !defined(REAPERAPI_MINIMAL) 9662 {(void**)&WDL_VirtualWnd_ScaledBlitBG,"WDL_VirtualWnd_ScaledBlitBG"}, 9663 #endif 9664 {NULL, NULL} 9665 }; 9666 int i,failcnt=0; 9667 for (i=0;table[i].dest; i++) 9668 failcnt += !(*table[i].dest = getAPI(table[i].name)); 9669 return failcnt; 9670 } 9671 #else//REAPERAPI_IMPLEMENT 9672 int REAPERAPI_LoadAPI(void *(*getAPI)(const char *)); 9673 #endif 9674 #endif // _REAPER_PLUGIN_FUNCTIONS_H_ 9675