Ultraschall Internals Documentation Reaper Internals Documentation Downloads Changelog of documentation Impressum and Contact
Reaper internals logo Documentation:
  Filetype Descriptions    Config Variables        Misc Docs 
   ReaScript-Api-Docs     Video-Api-Docs    WebRC-Api-Docs 

View: [all] [C/C++] [EEL2] [Lua] [Python]
Jump to Index

Reaper Reascript-Api-Documentation 6.82
"Fortified with Optimism"

The Functions Reference


^ API-Documentation

1 Introduction to ReaScript2.1 CPP Api-Description2.2 EEL Api-Description
2.3 Python Api-Description2.4 Lua Api-Description3 Datatypes used in this document

^ Api-Helper-Functions


^ Action Related Functions
kbd_enumerateActions  

^ Actions
AddRemoveReaScriptArmCommandCF_EnumerateActions
CF_GetCommandTextGetArmedCommandGetToggleCommandState
GetToggleCommandStateExMIDIEditor_LastFocused_OnCommandMIDIEditor_OnCommand
Main_OnCommandMain_OnCommandExNamedCommandLookup
PromptForActionReverseNamedCommandLookupSetToggleCommandState

^ Address/Datatype Management
BR_Win32_GetConstantBR_Win32_HIBYTEBR_Win32_HIWORD
BR_Win32_LOBYTEBR_Win32_LOWORDBR_Win32_MAKELONG
BR_Win32_MAKELPARAMBR_Win32_MAKELRESULTBR_Win32_MAKEWORD
BR_Win32_MAKEWPARAMJS_ByteJS_Double
JS_IntJS_Mem_AllocJS_Mem_Free
JS_Mem_FromStringJS_PtrFromStrJS_String

^ Config Variables
SNM_GetDoubleConfigVarSNM_GetIntConfigVarSNM_GetLongConfigVar
SNM_SetDoubleConfigVarSNM_SetIntConfigVarSNM_SetLongConfigVar
SNM_SetStringConfigVarget_config_var_string 

^ Extension States
DeleteExtStateGetExtStateHasExtState
SetExtState  

^ Localization
JS_LocalizeLocalizeString 

^ Midi
SendMIDIMessageToHardwareStuffMIDIMessage 

^ Misc
APIExistsAPITestBR_Win32_ShellExecute
CF_GetClipboardCF_GetClipboardBigCF_GetSWSVersion
CF_LocateInExplorerCF_SetClipboardCF_ShellExecute
ExecProcessGetAppVersionGetExePath
GetOSGetResourcePathIsMediaExtension
Main_UpdateLoopInfoNF_Base64_DecodeNF_Base64_Encode
PreventUIRefreshReaScriptErrorSNM_CreateFastString
SNM_DeleteFastStringSNM_GetFastStringSNM_GetFastStringLength
SNM_GetSetObjectStateSNM_SetFastStringValidatePtr
ValidatePtr2genGuidstringToGuid
time_precise  

^ ReaScript Console
ClearConsoleShowConsoleMsg 

^ Shortcuts
CountActionShortcutsDeleteActionShortcutDoActionShortcutDialog
GetActionShortcutDescSectionFromUniqueID 

^ Time/Grid Conversion/Management
BR_GetClosestGridDivisionBR_GetNextGridDivisionBR_GetPrevGridDivision
TimeMap2_GetDividedBpmAtTimeTimeMap2_GetNextChangeTimeTimeMap2_QNToTime
TimeMap2_beatsToTimeTimeMap2_timeToBeatsTimeMap2_timeToQN
TimeMap_GetDividedBpmAtTimeTimeMap_GetMeasureInfoTimeMap_GetMetronomePattern
TimeMap_GetTimeSigAtTimeTimeMap_QNToMeasuresTimeMap_QNToTime
TimeMap_QNToTime_absTimeMap_curFrameRateTimeMap_timeToQN
TimeMap_timeToQN_abs  

^ Value Conversion
ColorFromNativeColorToNativeDB2SLIDER
SLIDER2DBformat_timestrformat_timestr_len
format_timestr_posguidToStringimage_resolve_fn
mkpanstrmkvolpanstrmkvolstr
parse_timestrparse_timestr_lenparse_timestr_pos
parsepanstr  

^ Audio Management


^ Misc
CF_Preview_GetPeakCF_Preview_GetValueCF_Preview_Play
CF_Preview_SetOutputTrackCF_Preview_SetValueCF_Preview_Stop
CF_Preview_StopAllGetItemEditingTime2GetSubProjectFromSource
GetTempoMatchPlayRateNF_ReadAudioFileBitratePCM_Source_GetSectionInfo
Resample_EnumModesXen_AudioWriter_CreateXen_AudioWriter_Destroy
Xen_AudioWriter_WriteXen_StartSourcePreviewXen_StopSourcePreview

^ PCM_Sink
PCM_Sink_EnumPCM_Sink_GetExtensionPCM_Sink_ShowConfig

^ Peaks/Waveforms
ClearPeakCacheGetPeakFileNameGetPeakFileNameEx
GetPeakFileNameEx2PCM_Source_BuildPeaksPCM_Source_GetPeaks

^ Source Management
CF_CreatePreviewCF_EnumMediaSourceCuesCF_ExportMediaSource
CF_GetMediaSourceBitDepthCF_GetMediaSourceBitRateCF_GetMediaSourceMetadata
CF_GetMediaSourceOnlineCF_GetMediaSourceRPPCF_PCM_Source_SetSectionInfo
CF_SetMediaSourceOnlineCalcMediaSrcLoudnessCalculateNormalization
GetMediaSourceFileNameGetMediaSourceLengthGetMediaSourceNumChannels
GetMediaSourceParentGetMediaSourceSampleRateGetMediaSourceType
PCM_Source_CreateFromFilePCM_Source_CreateFromFileExPCM_Source_CreateFromType
PCM_Source_DestroyXen_GetMediaSourceSamples 

^ C++-only functions


^ Actions
GetToggleCommandState2GetToggleCommandStateThroughHooksKBD_OnMainActionEx
kbd_RunCommandThroughHookskbd_getCommandNamekbd_getTextFromCmd
kbd_processMidiEventActionExkbd_translateAccelerator 

^ Audio
Audio_RegHardwareHookCalculatePeaksCalculatePeaksFloatSrcPtr
GetPeaksBitmapHiresPeaksFromSourceIsInRealTimeAudio
PCM_Sink_CreatePCM_Sink_CreateExPCM_Source_CreateFromSimple
PeakBuild_CreatePeakBuild_CreateExPeakGet_Create

^ Config Vars
get_config_varget_midi_config_varprojectconfig_var_addr
projectconfig_var_getoffsrealloc_cmd_clearrealloc_cmd_register_buf

^ Files
GetPreferredDiskReadModeGetPreferredDiskReadModePeakGetPreferredDiskWriteMode
update_disk_counters  

^ GFX
LICE_ArcLICE_BlitLICE_Blur
LICE_BorderedRectLICE_CircleLICE_Clear
LICE_ClearRectLICE_CopyLICE_CreateBitmap
LICE_CreateFontLICE_DrawCBezierLICE_DrawChar
LICE_DrawGlyphLICE_DrawRectLICE_DrawText
LICE_FillCBezierLICE_FillCircleLICE_FillConvexPolygon
LICE_FillRectLICE_FillTrapezoidLICE_FillTriangle
LICE_GetPixelLICE_GradRectLICE_Line
LICE_LineIntLICE_LoadPNGLICE_LoadPNGFromResource
LICE_MeasureTextLICE_MultiplyAddRectLICE_PutPixel
LICE_RotatedBlitLICE_RoundRectLICE_ScaledBlit
LICE_SimpleFillLICE_ThickFLineLICE__Destroy
LICE__DestroyFontLICE__DrawTextLICE__GetBits
LICE__GetDCLICE__GetHeightLICE__GetRowSpan
LICE__GetWidthLICE__IsFlippedLICE__SetBkColor
LICE__SetFromHFontLICE__SetTextColorLICE__SetTextCombineMode
LICE__resizeWDL_VirtualWnd_ScaledBlitBG 

^ Media Track
GetSetMediaTrackInfoGetTrackInfo 

^ MediaItem Take
GetSetMediaItemTakeInfoIsItemTakeActiveForPlayback 

^ MediaItems
GetSetMediaItemInfo  

^ Menus
AddCustomizableMenuAddExtensionsMainMenuDuplicateCustomizableMenu
GetContextMenukbd_ProcessActionsMenukbd_reprocessMenu

^ Midi
CreateMIDIInputCreateMIDIOutputGetSetTrackMIDISupportFile
MIDI_eventlist_CreateMIDI_eventlist_DestroyPCM_Sink_CreateMIDIFile
PCM_Sink_CreateMIDIFileExkbd_OnMidiEventkbd_OnMidiList

^ Misc
FreeHeapPtrGetSetObjectStateGetSetObjectState2
IsREAPERPitchShiftSubModeMenuREAPERAPI_LoadAPI
ReaperGetPitchShiftAPIResampler_CreateResolveRenderPattern
SetRenderLastError__mergesortkbd_formatKeyName
kbd_translateMouseplugin_getFilterListplugin_getImportableProjectFilterList
plugin_getapiplugin_registerrealloc_cmd_ptr

^ OSC
CSurf_OnOscControlMessageCSurf_OnOscControlMessage2CreateLocalOscHandler
DestroyLocalOscHandlerSendLocalOscMessage 

^ Preview
PlayPreviewPlayPreviewExPlayTrackPreview
PlayTrackPreview2PlayTrackPreview2ExStopPreview
StopTrackPreviewStopTrackPreview2 

^ Routing
GetSetTrackSendInfo  

^ Screensets
screenset_registerscreenset_registerNewscreenset_unregister
screenset_unregisterByParamscreenset_updateLastFocus 

^ Theme
GetColorThemeGetColorThemeStructGetIconThemePointer
GetIconThemePointerForDPIGetIconThemeStruct 

^ Configuration Settings

NF_ClearGlobalStartupActionNF_ClearProjectStartupActionNF_ClearProjectTrackSelectionAction
NF_GetGlobalStartupActionNF_GetProjectStartupActionNF_GetProjectTrackSelectionAction
NF_GetSWS_RMSoptionsNF_SetGlobalStartupActionNF_SetProjectStartupAction
NF_SetProjectTrackSelectionActionNF_SetSWS_RMSoptions 

^ EEL-only functions


^ File Management
fclosefeoffflush
fgetcfgetsfopen
fprintffreadfseek
ftellfwrite 

^ GFX-functions
gfx_arcgfx_blitgfx_blitext
gfx_blurtogfx_circlegfx_clienttoscreen
gfx_deltablitgfx_drawchargfx_drawnumber
gfx_drawstrgfx_getchareel_getdropfile
gfx_getfontgfx_getimgdimgfx_getpixel
gfx_gradrectgfx_initgfx_line
gfx_linetogfx_loadimggfx_measurechar
gfx_measurestrgfx_muladdrectgfx_printf
gfx_quitgfx_rectgfx_rectto
gfx_roundrectgfx_screentoclientgfx_set
gfx_setcursorgfx_setfontgfx_setimgdim
gfx_setpixelgfx_showmenugfx_transformblit
gfx_trianglegfx_updategfx_variables

^ Math
absacosasin
atanatan2ceil
convolve_ccosexp
fftfft_ipermutefft_permute
fft_realfloorifft
ifft_realinvsqrtlog
log10randsin
sqrsqrttan

^ Memory Management
freembufmem_get_valuesmem_insert_shuffle
mem_multiply_summem_set_valuesmemcpy
memset  

^ Misc
atexitdefereval
extension_apiget_action_contextgfx_dock
loopmatchmatchi
maxminprintf
runloopsignsleep
sprintftimetime_precise
while  

^ Network
tcp_closetcp_connecttcp_listen
tcp_listen_endtcp_recvtcp_send
tcp_set_block  

^ Stack Management
stack_exchstack_peekstack_pop
stack_push  

^ Strings
str_delsubstr_getcharstr_insert
str_setcharstr_setlenstrcat
strcmpstrcpystrcpy_from
strcpy_substrstricmpstrlen
strncatstrncmpstrncpy
strnicmp  

^ Envelope Management


^ Automation Items
CountAutomationItemsGetSetAutomationItemInfoGetSetAutomationItemInfo_String
InsertAutomationItem  

^ Envelope Points
BR_EnvCountPointsBR_EnvDeletePointBR_EnvGetPoint
BR_EnvSetPointBR_EnvSortPointsCountEnvelopePoints
CountEnvelopePointsExDeleteEnvelopePointExDeleteEnvelopePointRange
DeleteEnvelopePointRangeExEnvelope_SortPointsEnvelope_SortPointsEx
GetEnvelopePointGetEnvelopePointByTimeGetEnvelopePointByTimeEx
GetEnvelopePointExInsertEnvelopePointInsertEnvelopePointEx
SetEnvelopePointSetEnvelopePointEx 

^ Get
GetEnvelopeUIState  

^ Misc
BR_EnvAllocBR_EnvFindBR_EnvFindNext
BR_EnvFindPreviousBR_EnvFreeBR_EnvGetProperties
BR_EnvSetPropertiesBR_EnvValueAtPosBR_GetMouseCursorContext_Envelope
CSurf_SetAutoModeEnvelope_EvaluateEnvelope_FormatValue
GetEnvelopeInfo_ValueGetEnvelopeNameGetEnvelopeScalingMode
GetEnvelopeStateChunkGetFXEnvelopeGetGlobalAutomationOverride
GetSelectedEnvelopeGetSelectedTrackEnvelopeGetSetEnvelopeInfo_String
GetSetEnvelopeStateGetSetEnvelopeState2GetTrackAutomationMode
ScaleFromEnvelopeModeScaleToEnvelopeModeSetAutomationMode
SetEnvelopeStateChunkSetGlobalAutomationOverrideSetTrackAutomationMode

^ Take Envelopes
BR_EnvGetParentTakeEnvelope_GetParentTakeGetTakeEnvelope
GetTakeEnvelopeByName  

^ Track Envelopes
BR_EnvGetParentTrackCountTrackEnvelopesEnvelope_GetParentTrack
GetTrackEnvelopeGetTrackEnvelopeByChunkNameGetTrackEnvelopeByName

^ FX Management


^ Misc
CF_EnumSelectedFXCF_GetFocusedFXChainGetFocusedFX
GetFocusedFX2GetLastTouchedFXPluginWantsAlwaysRunFx
SNM_AddTCPFXParm  

^ Take FX
BR_GetTakeFXCountCF_GetTakeFXChainNF_TakeFX_GetFXModuleName
NF_TakeFX_GetModuleNameTakeFX_AddByNameTakeFX_CopyToTake
TakeFX_CopyToTrackTakeFX_DeleteTakeFX_EndParamEdit
TakeFX_FormatParamValueTakeFX_FormatParamValueNormalizedTakeFX_GetChainVisible
TakeFX_GetCountTakeFX_GetEnabledTakeFX_GetEnvelope
TakeFX_GetFXGUIDTakeFX_GetFXNameTakeFX_GetFloatingWindow
TakeFX_GetFormattedParamValueTakeFX_GetIOSizeTakeFX_GetNamedConfigParm
TakeFX_GetNumParamsTakeFX_GetOfflineTakeFX_GetOpen
TakeFX_GetParamTakeFX_GetParamExTakeFX_GetParamFromIdent
TakeFX_GetParamIdentTakeFX_GetParamNameTakeFX_GetParamNormalized
TakeFX_GetParameterStepSizesTakeFX_GetPinMappingsTakeFX_GetPreset
TakeFX_GetPresetIndexTakeFX_GetUserPresetFilenameTakeFX_NavigatePresets
TakeFX_SetEnabledTakeFX_SetNamedConfigParmTakeFX_SetOffline
TakeFX_SetOpenTakeFX_SetParamTakeFX_SetParamNormalized
TakeFX_SetPinMappingsTakeFX_SetPresetTakeFX_SetPresetByIndex
TakeFX_Show  

^ Track FX
BR_TrackFX_GetFXModuleNameCF_GetTrackFXChainCF_SelectTrackFX
GetTCPFXParmSNM_MoveOrRemoveTrackFXTrackFX_AddByName
TrackFX_CopyToTakeTrackFX_CopyToTrackTrackFX_Delete
TrackFX_EndParamEditTrackFX_FormatParamValueTrackFX_FormatParamValueNormalized
TrackFX_GetByNameTrackFX_GetChainVisibleTrackFX_GetCount
TrackFX_GetEQTrackFX_GetEQBandEnabledTrackFX_GetEQParam
TrackFX_GetEnabledTrackFX_GetFXGUIDTrackFX_GetFXName
TrackFX_GetFloatingWindowTrackFX_GetFormattedParamValueTrackFX_GetIOSize
TrackFX_GetInstrumentTrackFX_GetNamedConfigParmTrackFX_GetNumParams
TrackFX_GetOfflineTrackFX_GetOpenTrackFX_GetParam
TrackFX_GetParamExTrackFX_GetParamFromIdentTrackFX_GetParamIdent
TrackFX_GetParamNameTrackFX_GetParamNormalizedTrackFX_GetParameterStepSizes
TrackFX_GetPinMappingsTrackFX_GetPresetTrackFX_GetPresetIndex
TrackFX_GetRecChainVisibleTrackFX_GetRecCountTrackFX_GetUserPresetFilename
TrackFX_NavigatePresetsTrackFX_SetEQBandEnabledTrackFX_SetEQParam
TrackFX_SetEnabledTrackFX_SetNamedConfigParmTrackFX_SetOffline
TrackFX_SetOpenTrackFX_SetParamTrackFX_SetParamNormalized
TrackFX_SetPinMappingsTrackFX_SetPresetTrackFX_SetPresetByIndex
TrackFX_Show  

^ File Management

BR_Win32_GetPrivateProfileStringBR_Win32_WritePrivateProfileStringEnumerateFiles
EnumerateSubdirectoriesGetMediaFileMetadataJS_File_Stat
RecursiveCreateDirectorySNM_ReadMediaFileTagSNM_TagMediaFile
file_existsget_ini_filereduce_open_files
relative_fnresolve_fnresolve_fn2

^ Image Files
JS_LICE_LoadJPGJS_LICE_LoadJPGFromMemoryJS_LICE_LoadPNG
JS_LICE_LoadPNGFromMemoryJS_LICE_WriteJPGJS_LICE_WritePNG

^ Render
RenderFileSection  

^ Zip Files
JS_Zip_CloseJS_Zip_CountEntriesJS_Zip_DeleteEntries
JS_Zip_Entry_CloseJS_Zip_Entry_CompressFileJS_Zip_Entry_CompressMemory
JS_Zip_Entry_ExtractToFileJS_Zip_Entry_ExtractToMemoryJS_Zip_Entry_Info
JS_Zip_Entry_OpenByIndexJS_Zip_Entry_OpenByNameJS_Zip_ErrorString
JS_Zip_ExtractJS_Zip_ListAllEntriesJS_Zip_Open

^ Input/Output Devices


^ Accessor
AudioAccessorStateChangedAudioAccessorUpdateAudioAccessorValidateState
CreateTakeAudioAccessorCreateTrackAudioAccessorDestroyAudioAccessor
GetAudioAccessorEndTimeGetAudioAccessorHashGetAudioAccessorSamples
GetAudioAccessorStartTime  

^ Audio
Audio_InitAudio_IsPreBufferAudio_IsRunning
Audio_QuitGetAudioDeviceInfoGetInputActivityLevel
GetInputChannelNameGetInputOutputLatencyGetNumAudioInputs
GetNumAudioOutputsGetOutputChannelNameGetOutputLatency
GetUnderrunTime  

^ Joystick
joystick_createjoystick_destroyjoystick_enum
joystick_getaxisjoystick_getbuttonmaskjoystick_getinfo
joystick_getpovjoystick_update 

^ Keyboard
JS_VKeys_ClearHistoryJS_VKeys_GetDownJS_VKeys_GetHistory
JS_VKeys_GetStateJS_VKeys_GetUpJS_VKeys_Intercept
OscLocalMessageToHost  

^ Midi
GetMIDIInputNameGetMIDIOutputNameGetMaxMidiInputs
GetMaxMidiOutputsGetNumMIDIInputsGetNumMIDIOutputs
MIDI_GetRecentInputEventmidi_initmidi_reinit

^ Mouse
BR_GetMouseCursorContextBR_GetMouseCursorContext_ItemGetMouseModifier
GetMousePositionJS_Mouse_GetCursorJS_Mouse_GetState
JS_Mouse_LoadCursorJS_Mouse_LoadCursorFromFileJS_Mouse_SetCursor
JS_Mouse_SetPositionSetMouseModifier 

^ Surfaces
CSurf_FlushUndoTrackList_UpdateAllExternalSurfaces 

^ JS_Plugin


^ Misc
JS_ReaScriptAPI_Version  

^ Shortcuts
JS_Actions_CountShortcutsJS_Actions_DeleteShortcutJS_Actions_DoShortcutDialog
JS_Actions_GetShortcutDesc  

^ Lua-only functions


^ GFX-functions
gfx.arcgfx.blitgfx.blitext
gfx.blurtogfx.circlegfx.clienttoscreen
gfx.deltablitgfx.dockgfx.drawchar
gfx.drawnumbergfx.drawstrgfx.getchar
gfx.getfontgfx.getimgdimgfx.getpixel
gfx.gradrectgfx.initgfx.line
gfx.linetogfx.loadimggfx.measurechar
gfx.measurestrgfx.muladdrectgfx.printf
gfx.quitgfx.rectgfx.rectto
gfx.roundrectgfx.screentoclientgfx.set
gfx.setcursorgfx.setfontgfx.setimgdim
gfx.setpixelgfx.showmenugfx.transformblit
gfx.trianglegfx.updategfx_variables

^ Global Shared Memory
gmem_attachgmem_readgmem_write

^ Misc
atexitdeferget_action_context
gfx.getdropfilerunloop 

^ Reaper Arrays
new_array{reaper.array}.clear{reaper.array}.convolve
{reaper.array}.copy{reaper.array}.fft{reaper.array}.fft_real
{reaper.array}.get_alloc{reaper.array}.ifft{reaper.array}.ifft_real
{reaper.array}.multiply{reaper.array}.resize{reaper.array}.table

^ MIDI Management

BR_GetMidiSourceLenPPQBR_GetMidiTakePoolGUIDBR_GetMidiTakeTempoInfo
BR_IsMidiOpenInInlineEditorBR_IsTakeMidiBR_MIDI_CCLaneRemove
BR_MIDI_CCLaneReplaceBR_SetMidiTakeTempoInfoEnumTrackMIDIProgramNames
EnumTrackMIDIProgramNamesExFNG_AddMidiNoteFNG_AllocMidiTake
FNG_CountMidiNotesFNG_FreeMidiTakeFNG_GetMidiNote
FNG_GetMidiNoteIntPropertyFNG_SetMidiNoteIntPropertyGetTrackMIDILyrics
GetTrackMIDINoteNameGetTrackMIDINoteNameExGetTrackMIDINoteRange
HasTrackMIDIProgramsHasTrackMIDIProgramsExMIDIEditor_EnumTakes
MIDIEditor_GetActiveMIDIEditor_GetModeMIDIEditor_GetSetting_int
MIDIEditor_GetSetting_strMIDIEditor_GetTakeMIDIEditor_SetSetting_int
MIDI_CountEvtsMIDI_DeleteCCMIDI_DeleteEvt
MIDI_DeleteNoteMIDI_DeleteTextSysexEvtMIDI_DisableSort
MIDI_EnumSelCCMIDI_EnumSelEvtsMIDI_EnumSelNotes
MIDI_EnumSelTextSysexEvtsMIDI_GetAllEvtsMIDI_GetCC
MIDI_GetCCShapeMIDI_GetEvtMIDI_GetGrid
MIDI_GetHashMIDI_GetNoteMIDI_GetPPQPosFromProjQN
MIDI_GetPPQPosFromProjTimeMIDI_GetPPQPos_EndOfMeasureMIDI_GetPPQPos_StartOfMeasure
MIDI_GetProjQNFromPPQPosMIDI_GetProjTimeFromPPQPosMIDI_GetScale
MIDI_GetTextSysexEvtMIDI_GetTrackHashMIDI_InsertCC
MIDI_InsertEvtMIDI_InsertNoteMIDI_InsertTextSysexEvt
MIDI_SelectAllMIDI_SetAllEvtsMIDI_SetCC
MIDI_SetCCShapeMIDI_SetEvtMIDI_SetItemExtents
MIDI_SetNoteMIDI_SetTextSysexEvtMIDI_Sort
SetMIDIEditorGridSetTrackMIDILyricsSetTrackMIDINoteName
SetTrackMIDINoteNameExTakeIsMIDI 

^ Marker Management


^ Misc
EnumRegionRenderMatrixSetRegionRenderMatrix 

^ Project Markers
AddProjectMarkerAddProjectMarker2CountProjectMarkers
DeleteProjectMarkerDeleteProjectMarkerByIndexEnumProjectMarkers
EnumProjectMarkers2EnumProjectMarkers3GetLastMarkerAndCurRegion
NF_GetSWSMarkerRegionSubNF_SetSWSMarkerRegionSubSNM_GetProjectMarkerName
SNM_SetProjectMarkerSetProjectMarkerSetProjectMarker2
SetProjectMarker3SetProjectMarker4SetProjectMarkerByIndex
SetProjectMarkerByIndex2  

^ Stretch Markers
BR_GetMouseCursorContext_StretchMarkerDeleteTakeStretchMarkersGetTakeNumStretchMarkers
GetTakeStretchMarkerGetTakeStretchMarkerSlopeSetTakeStretchMarker
SetTakeStretchMarkerSlope  

^ Take Markers
DeleteTakeMarkerGetNumTakeMarkersGetTakeMarker
SetTakeMarker  

^ Time Signature Marker
DeleteTempoTimeSigMarkerEditTempoTimeSigMarkerFindTempoTimeSigMarker

^ Time Signature Markers
AddTempoTimeSigMarkerCountTempoTimeSigMarkersGetProjectTimeSignature
GetProjectTimeSignature2GetTempoTimeSigMarkerSetTempoTimeSigMarker

^ Mediaitem Management


^ Item States
BR_GetMediaItemByGUIDBR_GetMediaItemGUIDBR_GetMediaItemImageResource
BR_SetItemEdgesBR_SetMediaItemImageResourceGetDisplayedMediaItemColor
GetDisplayedMediaItemColor2GetItemProjectContextGetItemStateChunk
GetMediaItemInfo_ValueGetSetItemStateGetSetItemState2
GetSetMediaItemInfo_StringIsMediaItemSelectedSNM_GetSetSourceState
SetItemStateChunkSetMediaItemInfo_ValueSetMediaItemLength
SetMediaItemPositionSetMediaItemSelectedULT_GetMediaItemNote
ULT_SetMediaItemNote  

^ Misc
AddMediaItemToTrackApplyNudgeBR_ItemAtMouseCursor
CountMediaItemsCountSelectedMediaItemsCountTrackMediaItems
CreateNewMIDIItemInProjDeleteTrackMediaItemGetItemFromPoint
GetMediaItemGetMediaItemTrackGetMediaItem_Track
GetSelectedMediaItemGetTrackMediaItemInsertMedia
InsertMediaSectionMarkTrackItemsDirtyMediaItemDescendsFromTrack
MoveMediaItemToTrackSelectAllMediaItemsSplitMediaItem
UpdateItemInProject  

^ Normalizing/Loudness
NF_AnalyzeMediaItemPeakAndRMSNF_GetMediaItemMaxPeakNF_GetMediaItemMaxPeakAndMaxPeakPos
NF_GetMediaItemPeakRMS_NonWindowedNF_GetMediaItemPeakRMS_Windowed 

^ Mediaitem Take Management


^ Misc
AddTakeToMediaItemBR_GetMouseCursorContext_TakeBR_TakeAtMouseCursor
CountTakeEnvelopesCountTakesGetActiveTake
GetMediaItemNumTakesGetMediaItemTakeGetMediaItemTake_Item
GetMediaItemTake_PeaksGetMediaItemTake_TrackGetTake
NF_DeleteTakeFromItem  

^ Normalizing/Loudness
NF_AnalyzeTakeLoudnessNF_AnalyzeTakeLoudness2NF_AnalyzeTakeLoudness_IntegratedOnly
NF_GetMediaItemAverageRMS  

^ Take States
BR_GetMediaItemTakeGUIDBR_GetMediaSourcePropertiesBR_SetMediaSourceProperties
BR_SetTakeSourceFromFileBR_SetTakeSourceFromFile2GetMediaItemTakeByGUID
GetMediaItemTakeInfo_ValueGetMediaItemTake_SourceGetSetMediaItemTakeInfo_String
GetTakeNameSNM_GetMediaItemTakeByGUIDSNM_GetSetSourceState2
SNM_GetSourceTypeSetActiveTakeSetMediaItemTakeInfo_Value
SetMediaItemTake_Source  

^ Osara

osara_outputMessage  

^ PeloReaper

RDNA_GetMediaSourceMetadata  

^ Pitchshifting

EnumPitchShiftModesEnumPitchShiftSubModes 

^ Project Management


^ Misc
EnumProjectsGetCurrentProjectInLoadSaveGetFreeDiskSpaceForRecordPath
Main_SaveProjectMain_SaveProjectExMain_openProject
SelectProjectInstanceSnapToGrid 

^ Project Extension States
EnumProjExtStateGetProjExtStateSetProjExtState

^ Project States
CSurf_OnTempoChangeGetProjectLengthGetProjectName
GetProjectPathGetProjectPathExGetProjectStateChangeCount
GetProjectTimeOffsetGetSetProjectAuthorGetSetProjectGrid
GetSetProjectInfoGetSetProjectInfo_StringGetSetProjectNotes
IsProjectDirtyMarkProjectDirtySetCurrentBPM
SetProjectGrid  

^ Undo
Undo_BeginBlockUndo_BeginBlock2Undo_CanRedo2
Undo_CanUndo2Undo_DoRedo2Undo_DoUndo2
Undo_EndBlockUndo_EndBlock2Undo_OnStateChange
Undo_OnStateChange2Undo_OnStateChangeExUndo_OnStateChangeEx2
Undo_OnStateChange_Item  

^ Project Navigation

CSurf_GoEndCSurf_GoStartCSurf_OnFwd
CSurf_OnPauseCSurf_OnPlayCSurf_OnPlayRateChange
CSurf_OnRecordCSurf_OnRewCSurf_OnRewFwd
CSurf_ScrubAmtCSurf_SetPlayStateCSurf_SetRepeatState
GetAllProjectPlayStatesGetCursorPositionGetCursorPositionEx
GetPlayPositionGetPlayPosition2GetPlayPosition2Ex
GetPlayPositionExGetPlayStateGetPlayStateEx
GetSetRepeatGetSetRepeatExGetSet_LoopTimeRange
GetSet_LoopTimeRange2GoToMarkerGoToRegion
Loop_OnArrowMaster_GetPlayRateMaster_GetPlayRateAtTime
Master_GetTempoMaster_NormalizePlayRateMaster_NormalizeTempo
MoveEditCursorOnPauseButtonOnPauseButtonEx
OnPlayButtonOnPlayButtonExOnStopButton
OnStopButtonExSetEditCurPosSetEditCurPos2

^ Python-only functions

atexitdeferrunloop

^ ReaBlink

Blink_GetBeatAtTime(Blink)Blink_GetClockNow(Blink)Blink_GetEnabled(Blink)
Blink_GetMaster(Blink)Blink_GetNumPeers(Blink)Blink_GetPhaseAtTime(Blink)
Blink_GetPlaying(Blink)Blink_GetPuppet(Blink)Blink_GetQuantum(Blink)
Blink_GetStartStopSyncEnabled(Blink)Blink_GetTempo(Blink)Blink_GetTimeAtBeat(Blink)
Blink_GetTimeForPlaying(Blink)Blink_GetVersion(Blink)Blink_SetBeatAtStartPlayingTimeRequest(Blink)
Blink_SetBeatAtTimeForce(Blink)Blink_SetBeatAtTimeRequest(Blink)Blink_SetCaptureTransportCommands(Blink)
Blink_SetEnabled(Blink)Blink_SetMaster(Blink)Blink_SetPlaying(Blink)
Blink_SetPlayingAndBeatAtTimeRequest(Blink)Blink_SetPuppet(Blink)Blink_SetQuantum(Blink)
Blink_SetStartStopSyncEnabled(Blink)Blink_SetTempo(Blink)Blink_SetTempoAtTime(Blink)
Blink_StartStop(Blink)  

^ ReaFab

Fab_ClearFab_DoFab_Dump
Fab_GetFab_Map 

^ ReaImGui

ImGui_AcceptDragDropPayloadImGui_AcceptDragDropPayloadFilesImGui_AcceptDragDropPayloadRGB
ImGui_AcceptDragDropPayloadRGBAImGui_AlignTextToFramePaddingImGui_ArrowButton
ImGui_AttachImGui_BeginImGui_BeginChild
ImGui_BeginChildFrameImGui_BeginComboImGui_BeginDisabled
ImGui_BeginDragDropSourceImGui_BeginDragDropTargetImGui_BeginGroup
ImGui_BeginListBoxImGui_BeginMenuImGui_BeginMenuBar
ImGui_BeginPopupImGui_BeginPopupContextItemImGui_BeginPopupContextWindow
ImGui_BeginPopupModalImGui_BeginTabBarImGui_BeginTabItem
ImGui_BeginTableImGui_BeginTooltipImGui_Bullet
ImGui_BulletTextImGui_ButtonImGui_ButtonFlags_MouseButtonLeft
ImGui_ButtonFlags_MouseButtonMiddleImGui_ButtonFlags_MouseButtonRightImGui_ButtonFlags_None
ImGui_CalcItemWidthImGui_CalcTextSizeImGui_Checkbox
ImGui_CheckboxFlagsImGui_CloseCurrentPopupImGui_Col_Border
ImGui_Col_BorderShadowImGui_Col_ButtonImGui_Col_ButtonActive
ImGui_Col_ButtonHoveredImGui_Col_CheckMarkImGui_Col_ChildBg
ImGui_Col_DockingEmptyBgImGui_Col_DockingPreviewImGui_Col_DragDropTarget
ImGui_Col_FrameBgImGui_Col_FrameBgActiveImGui_Col_FrameBgHovered
ImGui_Col_HeaderImGui_Col_HeaderActiveImGui_Col_HeaderHovered
ImGui_Col_MenuBarBgImGui_Col_ModalWindowDimBgImGui_Col_NavHighlight
ImGui_Col_NavWindowingDimBgImGui_Col_NavWindowingHighlightImGui_Col_PlotHistogram
ImGui_Col_PlotHistogramHoveredImGui_Col_PlotLinesImGui_Col_PlotLinesHovered
ImGui_Col_PopupBgImGui_Col_ResizeGripImGui_Col_ResizeGripActive
ImGui_Col_ResizeGripHoveredImGui_Col_ScrollbarBgImGui_Col_ScrollbarGrab
ImGui_Col_ScrollbarGrabActiveImGui_Col_ScrollbarGrabHoveredImGui_Col_Separator
ImGui_Col_SeparatorActiveImGui_Col_SeparatorHoveredImGui_Col_SliderGrab
ImGui_Col_SliderGrabActiveImGui_Col_TabImGui_Col_TabActive
ImGui_Col_TabHoveredImGui_Col_TabUnfocusedImGui_Col_TabUnfocusedActive
ImGui_Col_TableBorderLightImGui_Col_TableBorderStrongImGui_Col_TableHeaderBg
ImGui_Col_TableRowBgImGui_Col_TableRowBgAltImGui_Col_Text
ImGui_Col_TextDisabledImGui_Col_TextSelectedBgImGui_Col_TitleBg
ImGui_Col_TitleBgActiveImGui_Col_TitleBgCollapsedImGui_Col_WindowBg
ImGui_CollapsingHeaderImGui_ColorButtonImGui_ColorConvertDouble4ToU32
ImGui_ColorConvertHSVtoRGBImGui_ColorConvertNativeImGui_ColorConvertRGBtoHSV
ImGui_ColorConvertU32ToDouble4ImGui_ColorEdit3ImGui_ColorEdit4
ImGui_ColorEditFlags_AlphaBarImGui_ColorEditFlags_AlphaPreviewImGui_ColorEditFlags_AlphaPreviewHalf
ImGui_ColorEditFlags_DisplayHSVImGui_ColorEditFlags_DisplayHexImGui_ColorEditFlags_DisplayRGB
ImGui_ColorEditFlags_FloatImGui_ColorEditFlags_InputHSVImGui_ColorEditFlags_InputRGB
ImGui_ColorEditFlags_NoAlphaImGui_ColorEditFlags_NoBorderImGui_ColorEditFlags_NoDragDrop
ImGui_ColorEditFlags_NoInputsImGui_ColorEditFlags_NoLabelImGui_ColorEditFlags_NoOptions
ImGui_ColorEditFlags_NoPickerImGui_ColorEditFlags_NoSidePreviewImGui_ColorEditFlags_NoSmallPreview
ImGui_ColorEditFlags_NoTooltipImGui_ColorEditFlags_NoneImGui_ColorEditFlags_PickerHueBar
ImGui_ColorEditFlags_PickerHueWheelImGui_ColorEditFlags_Uint8ImGui_ColorPicker3
ImGui_ColorPicker4ImGui_ComboImGui_ComboFlags_HeightLarge
ImGui_ComboFlags_HeightLargestImGui_ComboFlags_HeightRegularImGui_ComboFlags_HeightSmall
ImGui_ComboFlags_NoArrowButtonImGui_ComboFlags_NoPreviewImGui_ComboFlags_None
ImGui_ComboFlags_PopupAlignLeftImGui_Cond_AlwaysImGui_Cond_Appearing
ImGui_Cond_FirstUseEverImGui_Cond_OnceImGui_ConfigFlags_DockingEnable
ImGui_ConfigFlags_NavEnableKeyboardImGui_ConfigFlags_NavEnableSetMousePosImGui_ConfigFlags_NavNoCaptureKeyboard
ImGui_ConfigFlags_NoMouseImGui_ConfigFlags_NoMouseCursorChangeImGui_ConfigFlags_NoSavedSettings
ImGui_ConfigFlags_NoneImGui_ConfigVar_DebugBeginReturnValueLoopImGui_ConfigVar_DebugBeginReturnValueOnce
ImGui_ConfigVar_DockingNoSplitImGui_ConfigVar_DockingTransparentPayloadImGui_ConfigVar_DockingWithShift
ImGui_ConfigVar_DragClickToInputTextImGui_ConfigVar_FlagsImGui_ConfigVar_HoverDelayNormal
ImGui_ConfigVar_HoverDelayShortImGui_ConfigVar_InputTextCursorBlinkImGui_ConfigVar_InputTextEnterKeepActive
ImGui_ConfigVar_InputTrickleEventQueueImGui_ConfigVar_KeyRepeatDelayImGui_ConfigVar_KeyRepeatRate
ImGui_ConfigVar_MacOSXBehaviorsImGui_ConfigVar_MouseDoubleClickMaxDistImGui_ConfigVar_MouseDoubleClickTime
ImGui_ConfigVar_MouseDragThresholdImGui_ConfigVar_ViewportsNoDecorationImGui_ConfigVar_WindowsMoveFromTitleBarOnly
ImGui_ConfigVar_WindowsResizeFromEdgesImGui_CreateContextImGui_CreateDrawListSplitter
ImGui_CreateFontImGui_CreateFunctionFromEELImGui_CreateImage
ImGui_CreateImageFromMemImGui_CreateImageSetImGui_CreateListClipper
ImGui_CreateTextFilterImGui_DebugTextEncodingImGui_DestroyContext
ImGui_DetachImGui_Dir_DownImGui_Dir_Left
ImGui_Dir_NoneImGui_Dir_RightImGui_Dir_Up
ImGui_DragDoubleImGui_DragDouble2ImGui_DragDouble3
ImGui_DragDouble4ImGui_DragDoubleNImGui_DragDropFlags_AcceptBeforeDelivery
ImGui_DragDropFlags_AcceptNoDrawDefaultRectImGui_DragDropFlags_AcceptNoPreviewTooltipImGui_DragDropFlags_AcceptPeekOnly
ImGui_DragDropFlags_NoneImGui_DragDropFlags_SourceAllowNullIDImGui_DragDropFlags_SourceAutoExpirePayload
ImGui_DragDropFlags_SourceExternImGui_DragDropFlags_SourceNoDisableHoverImGui_DragDropFlags_SourceNoHoldToOpenOthers
ImGui_DragDropFlags_SourceNoPreviewTooltipImGui_DragFloatRange2ImGui_DragInt
ImGui_DragInt2ImGui_DragInt3ImGui_DragInt4
ImGui_DragIntRange2ImGui_DrawFlags_ClosedImGui_DrawFlags_None
ImGui_DrawFlags_RoundCornersAllImGui_DrawFlags_RoundCornersBottomImGui_DrawFlags_RoundCornersBottomLeft
ImGui_DrawFlags_RoundCornersBottomRightImGui_DrawFlags_RoundCornersLeftImGui_DrawFlags_RoundCornersNone
ImGui_DrawFlags_RoundCornersRightImGui_DrawFlags_RoundCornersTopImGui_DrawFlags_RoundCornersTopLeft
ImGui_DrawFlags_RoundCornersTopRightImGui_DrawListSplitter_ClearImGui_DrawListSplitter_Merge
ImGui_DrawListSplitter_SetCurrentChannelImGui_DrawListSplitter_SplitImGui_DrawList_AddBezierCubic
ImGui_DrawList_AddBezierQuadraticImGui_DrawList_AddCircleImGui_DrawList_AddCircleFilled
ImGui_DrawList_AddConvexPolyFilledImGui_DrawList_AddImageImGui_DrawList_AddImageQuad
ImGui_DrawList_AddImageRoundedImGui_DrawList_AddLineImGui_DrawList_AddNgon
ImGui_DrawList_AddNgonFilledImGui_DrawList_AddPolylineImGui_DrawList_AddQuad
ImGui_DrawList_AddQuadFilledImGui_DrawList_AddRectImGui_DrawList_AddRectFilled
ImGui_DrawList_AddRectFilledMultiColorImGui_DrawList_AddTextImGui_DrawList_AddTextEx
ImGui_DrawList_AddTriangleImGui_DrawList_AddTriangleFilledImGui_DrawList_PathArcTo
ImGui_DrawList_PathArcToFastImGui_DrawList_PathBezierCubicCurveToImGui_DrawList_PathBezierQuadraticCurveTo
ImGui_DrawList_PathClearImGui_DrawList_PathFillConvexImGui_DrawList_PathLineTo
ImGui_DrawList_PathRectImGui_DrawList_PathStrokeImGui_DrawList_PopClipRect
ImGui_DrawList_PushClipRectImGui_DrawList_PushClipRectFullScreenImGui_Dummy
ImGui_EndImGui_EndChildImGui_EndChildFrame
ImGui_EndComboImGui_EndDisabledImGui_EndDragDropSource
ImGui_EndDragDropTargetImGui_EndGroupImGui_EndListBox
ImGui_EndMenuImGui_EndMenuBarImGui_EndPopup
ImGui_EndTabBarImGui_EndTabItemImGui_EndTable
ImGui_EndTooltipImGui_FocusedFlags_AnyWindowImGui_FocusedFlags_ChildWindows
ImGui_FocusedFlags_DockHierarchyImGui_FocusedFlags_NoPopupHierarchyImGui_FocusedFlags_None
ImGui_FocusedFlags_RootAndChildWindowsImGui_FocusedFlags_RootWindowImGui_FontFlags_Bold
ImGui_FontFlags_ItalicImGui_FontFlags_NoneImGui_Function_Execute
ImGui_Function_GetValueImGui_Function_GetValue_ArrayImGui_Function_GetValue_String
ImGui_Function_SetValueImGui_Function_SetValue_ArrayImGui_Function_SetValue_String
ImGui_GetBackgroundDrawListImGui_GetClipboardTextImGui_GetColor
ImGui_GetColorExImGui_GetConfigVarImGui_GetContentRegionAvail
ImGui_GetContentRegionMaxImGui_GetCursorPosImGui_GetCursorPosX
ImGui_GetCursorPosYImGui_GetCursorScreenPosImGui_GetCursorStartPos
ImGui_GetDeltaTimeImGui_GetDragDropPayloadImGui_GetDragDropPayloadFile
ImGui_GetFontImGui_GetFontSizeImGui_GetForegroundDrawList
ImGui_GetFrameCountImGui_GetFrameHeightImGui_GetFrameHeightWithSpacing
ImGui_GetFramerateImGui_GetInputQueueCharacterImGui_GetItemRectMax
ImGui_GetItemRectMinImGui_GetItemRectSizeImGui_GetKeyDownDuration
ImGui_GetKeyModsImGui_GetKeyPressedAmountImGui_GetMainViewport
ImGui_GetMouseClickedCountImGui_GetMouseClickedPosImGui_GetMouseCursor
ImGui_GetMouseDeltaImGui_GetMouseDownDurationImGui_GetMouseDragDelta
ImGui_GetMousePosImGui_GetMousePosOnOpeningCurrentPopupImGui_GetMouseWheel
ImGui_GetScrollMaxXImGui_GetScrollMaxYImGui_GetScrollX
ImGui_GetScrollYImGui_GetStyleColorImGui_GetStyleVar
ImGui_GetTextLineHeightImGui_GetTextLineHeightWithSpacingImGui_GetTime
ImGui_GetTreeNodeToLabelSpacingImGui_GetVersionImGui_GetWindowContentRegionMax
ImGui_GetWindowContentRegionMinImGui_GetWindowDockIDImGui_GetWindowDpiScale
ImGui_GetWindowDrawListImGui_GetWindowHeightImGui_GetWindowPos
ImGui_GetWindowSizeImGui_GetWindowViewportImGui_GetWindowWidth
ImGui_HoveredFlags_AllowWhenBlockedByActiveItemImGui_HoveredFlags_AllowWhenBlockedByPopupImGui_HoveredFlags_AllowWhenDisabled
ImGui_HoveredFlags_AllowWhenOverlappedImGui_HoveredFlags_AnyWindowImGui_HoveredFlags_ChildWindows
ImGui_HoveredFlags_DelayNormalImGui_HoveredFlags_DelayShortImGui_HoveredFlags_DockHierarchy
ImGui_HoveredFlags_NoNavOverrideImGui_HoveredFlags_NoPopupHierarchyImGui_HoveredFlags_NoSharedDelay
ImGui_HoveredFlags_NoneImGui_HoveredFlags_RectOnlyImGui_HoveredFlags_RootAndChildWindows
ImGui_HoveredFlags_RootWindowImGui_ImageImGui_ImageButton
ImGui_ImageSet_AddImGui_Image_GetSizeImGui_Indent
ImGui_InputDoubleImGui_InputDouble2ImGui_InputDouble3
ImGui_InputDouble4ImGui_InputDoubleNImGui_InputInt
ImGui_InputInt2ImGui_InputInt3ImGui_InputInt4
ImGui_InputTextImGui_InputTextFlags_AllowTabInputImGui_InputTextFlags_AlwaysOverwrite
ImGui_InputTextFlags_AutoSelectAllImGui_InputTextFlags_CallbackAlwaysImGui_InputTextFlags_CallbackCharFilter
ImGui_InputTextFlags_CallbackCompletionImGui_InputTextFlags_CallbackEditImGui_InputTextFlags_CallbackHistory
ImGui_InputTextFlags_CharsDecimalImGui_InputTextFlags_CharsHexadecimalImGui_InputTextFlags_CharsNoBlank
ImGui_InputTextFlags_CharsScientificImGui_InputTextFlags_CharsUppercaseImGui_InputTextFlags_CtrlEnterForNewLine
ImGui_InputTextFlags_EnterReturnsTrueImGui_InputTextFlags_EscapeClearsAllImGui_InputTextFlags_NoHorizontalScroll
ImGui_InputTextFlags_NoUndoRedoImGui_InputTextFlags_NoneImGui_InputTextFlags_Password
ImGui_InputTextFlags_ReadOnlyImGui_InputTextMultilineImGui_InputTextWithHint
ImGui_InvisibleButtonImGui_IsAnyItemActiveImGui_IsAnyItemFocused
ImGui_IsAnyItemHoveredImGui_IsAnyMouseDownImGui_IsItemActivated
ImGui_IsItemActiveImGui_IsItemClickedImGui_IsItemDeactivated
ImGui_IsItemDeactivatedAfterEditImGui_IsItemEditedImGui_IsItemFocused
ImGui_IsItemHoveredImGui_IsItemToggledOpenImGui_IsItemVisible
ImGui_IsKeyDownImGui_IsKeyPressedImGui_IsKeyReleased
ImGui_IsMouseClickedImGui_IsMouseDoubleClickedImGui_IsMouseDown
ImGui_IsMouseDraggingImGui_IsMouseHoveringRectImGui_IsMousePosValid
ImGui_IsMouseReleasedImGui_IsPopupOpenImGui_IsRectVisible
ImGui_IsRectVisibleExImGui_IsWindowAppearingImGui_IsWindowDocked
ImGui_IsWindowFocusedImGui_IsWindowHoveredImGui_Key_0
ImGui_Key_1ImGui_Key_2ImGui_Key_3
ImGui_Key_4ImGui_Key_5ImGui_Key_6
ImGui_Key_7ImGui_Key_8ImGui_Key_9
ImGui_Key_AImGui_Key_ApostropheImGui_Key_B
ImGui_Key_BackslashImGui_Key_BackspaceImGui_Key_C
ImGui_Key_CapsLockImGui_Key_CommaImGui_Key_D
ImGui_Key_DeleteImGui_Key_DownArrowImGui_Key_E
ImGui_Key_EndImGui_Key_EnterImGui_Key_Equal
ImGui_Key_EscapeImGui_Key_FImGui_Key_F1
ImGui_Key_F10ImGui_Key_F11ImGui_Key_F12
ImGui_Key_F2ImGui_Key_F3ImGui_Key_F4
ImGui_Key_F5ImGui_Key_F6ImGui_Key_F7
ImGui_Key_F8ImGui_Key_F9ImGui_Key_G
ImGui_Key_GraveAccentImGui_Key_HImGui_Key_Home
ImGui_Key_IImGui_Key_InsertImGui_Key_J
ImGui_Key_KImGui_Key_Keypad0ImGui_Key_Keypad1
ImGui_Key_Keypad2ImGui_Key_Keypad3ImGui_Key_Keypad4
ImGui_Key_Keypad5ImGui_Key_Keypad6ImGui_Key_Keypad7
ImGui_Key_Keypad8ImGui_Key_Keypad9ImGui_Key_KeypadAdd
ImGui_Key_KeypadDecimalImGui_Key_KeypadDivideImGui_Key_KeypadEnter
ImGui_Key_KeypadEqualImGui_Key_KeypadMultiplyImGui_Key_KeypadSubtract
ImGui_Key_LImGui_Key_LeftAltImGui_Key_LeftArrow
ImGui_Key_LeftBracketImGui_Key_LeftCtrlImGui_Key_LeftShift
ImGui_Key_LeftSuperImGui_Key_MImGui_Key_Menu
ImGui_Key_MinusImGui_Key_MouseLeftImGui_Key_MouseMiddle
ImGui_Key_MouseRightImGui_Key_MouseWheelXImGui_Key_MouseWheelY
ImGui_Key_MouseX1ImGui_Key_MouseX2ImGui_Key_N
ImGui_Key_NumLockImGui_Key_OImGui_Key_P
ImGui_Key_PageDownImGui_Key_PageUpImGui_Key_Pause
ImGui_Key_PeriodImGui_Key_PrintScreenImGui_Key_Q
ImGui_Key_RImGui_Key_RightAltImGui_Key_RightArrow
ImGui_Key_RightBracketImGui_Key_RightCtrlImGui_Key_RightShift
ImGui_Key_RightSuperImGui_Key_SImGui_Key_ScrollLock
ImGui_Key_SemicolonImGui_Key_SlashImGui_Key_Space
ImGui_Key_TImGui_Key_TabImGui_Key_U
ImGui_Key_UpArrowImGui_Key_VImGui_Key_W
ImGui_Key_XImGui_Key_YImGui_Key_Z
ImGui_LabelTextImGui_ListBoxImGui_ListClipper_Begin
ImGui_ListClipper_EndImGui_ListClipper_ForceDisplayRangeByIndicesImGui_ListClipper_GetDisplayRange
ImGui_ListClipper_StepImGui_LogFinishImGui_LogText
ImGui_LogToClipboardImGui_LogToFileImGui_LogToTTY
ImGui_MenuItemImGui_Mod_AltImGui_Mod_Ctrl
ImGui_Mod_NoneImGui_Mod_ShiftImGui_Mod_Shortcut
ImGui_Mod_SuperImGui_MouseButton_LeftImGui_MouseButton_Middle
ImGui_MouseButton_RightImGui_MouseCursor_ArrowImGui_MouseCursor_Hand
ImGui_MouseCursor_NoneImGui_MouseCursor_NotAllowedImGui_MouseCursor_ResizeAll
ImGui_MouseCursor_ResizeEWImGui_MouseCursor_ResizeNESWImGui_MouseCursor_ResizeNS
ImGui_MouseCursor_ResizeNWSEImGui_MouseCursor_TextInputImGui_NewLine
ImGui_NumericLimits_DoubleImGui_NumericLimits_FloatImGui_NumericLimits_Int
ImGui_OpenPopupImGui_OpenPopupOnItemClickImGui_PlotHistogram
ImGui_PlotLinesImGui_PointConvertNativeImGui_PopButtonRepeat
ImGui_PopClipRectImGui_PopFontImGui_PopID
ImGui_PopItemWidthImGui_PopStyleColorImGui_PopStyleVar
ImGui_PopTabStopImGui_PopTextWrapPosImGui_PopupFlags_AnyPopup
ImGui_PopupFlags_AnyPopupIdImGui_PopupFlags_AnyPopupLevelImGui_PopupFlags_MouseButtonLeft
ImGui_PopupFlags_MouseButtonMiddleImGui_PopupFlags_MouseButtonRightImGui_PopupFlags_NoOpenOverExistingPopup
ImGui_PopupFlags_NoOpenOverItemsImGui_PopupFlags_NoneImGui_ProgressBar
ImGui_PushButtonRepeatImGui_PushClipRectImGui_PushFont
ImGui_PushIDImGui_PushItemWidthImGui_PushStyleColor
ImGui_PushStyleVarImGui_PushTabStopImGui_PushTextWrapPos
ImGui_RadioButtonImGui_RadioButtonExImGui_ResetMouseDragDelta
ImGui_SameLineImGui_SelectableImGui_SelectableFlags_AllowDoubleClick
ImGui_SelectableFlags_AllowItemOverlapImGui_SelectableFlags_DisabledImGui_SelectableFlags_DontClosePopups
ImGui_SelectableFlags_NoneImGui_SelectableFlags_SpanAllColumnsImGui_Separator
ImGui_SeparatorTextImGui_SetClipboardTextImGui_SetColorEditOptions
ImGui_SetConfigVarImGui_SetCursorPosImGui_SetCursorPosX
ImGui_SetCursorPosYImGui_SetCursorScreenPosImGui_SetDragDropPayload
ImGui_SetItemAllowOverlapImGui_SetItemDefaultFocusImGui_SetKeyboardFocusHere
ImGui_SetMouseCursorImGui_SetNextFrameWantCaptureKeyboardImGui_SetNextItemOpen
ImGui_SetNextItemWidthImGui_SetNextWindowBgAlphaImGui_SetNextWindowCollapsed
ImGui_SetNextWindowContentSizeImGui_SetNextWindowDockIDImGui_SetNextWindowFocus
ImGui_SetNextWindowPosImGui_SetNextWindowScrollImGui_SetNextWindowSize
ImGui_SetNextWindowSizeConstraintsImGui_SetScrollFromPosXImGui_SetScrollFromPosY
ImGui_SetScrollHereXImGui_SetScrollHereYImGui_SetScrollX
ImGui_SetScrollYImGui_SetTabItemClosedImGui_SetTooltip
ImGui_SetWindowCollapsedImGui_SetWindowCollapsedExImGui_SetWindowFocus
ImGui_SetWindowFocusExImGui_SetWindowPosImGui_SetWindowPosEx
ImGui_SetWindowSizeImGui_SetWindowSizeExImGui_ShowAboutWindow
ImGui_ShowDebugLogWindowImGui_ShowMetricsWindowImGui_ShowStackToolWindow
ImGui_SliderAngleImGui_SliderDoubleImGui_SliderDouble2
ImGui_SliderDouble3ImGui_SliderDouble4ImGui_SliderDoubleN
ImGui_SliderFlags_AlwaysClampImGui_SliderFlags_LogarithmicImGui_SliderFlags_NoInput
ImGui_SliderFlags_NoRoundToFormatImGui_SliderFlags_NoneImGui_SliderInt
ImGui_SliderInt2ImGui_SliderInt3ImGui_SliderInt4
ImGui_SmallButtonImGui_SortDirection_AscendingImGui_SortDirection_Descending
ImGui_SortDirection_NoneImGui_SpacingImGui_StyleVar_Alpha
ImGui_StyleVar_ButtonTextAlignImGui_StyleVar_CellPaddingImGui_StyleVar_ChildBorderSize
ImGui_StyleVar_ChildRoundingImGui_StyleVar_DisabledAlphaImGui_StyleVar_FrameBorderSize
ImGui_StyleVar_FramePaddingImGui_StyleVar_FrameRoundingImGui_StyleVar_GrabMinSize
ImGui_StyleVar_GrabRoundingImGui_StyleVar_IndentSpacingImGui_StyleVar_ItemInnerSpacing
ImGui_StyleVar_ItemSpacingImGui_StyleVar_PopupBorderSizeImGui_StyleVar_PopupRounding
ImGui_StyleVar_ScrollbarRoundingImGui_StyleVar_ScrollbarSizeImGui_StyleVar_SelectableTextAlign
ImGui_StyleVar_SeparatorTextAlignImGui_StyleVar_SeparatorTextBorderSizeImGui_StyleVar_SeparatorTextPadding
ImGui_StyleVar_TabRoundingImGui_StyleVar_WindowBorderSizeImGui_StyleVar_WindowMinSize
ImGui_StyleVar_WindowPaddingImGui_StyleVar_WindowRoundingImGui_StyleVar_WindowTitleAlign
ImGui_TabBarFlags_AutoSelectNewTabsImGui_TabBarFlags_FittingPolicyResizeDownImGui_TabBarFlags_FittingPolicyScroll
ImGui_TabBarFlags_NoCloseWithMiddleMouseButtonImGui_TabBarFlags_NoTabListScrollingButtonsImGui_TabBarFlags_NoTooltip
ImGui_TabBarFlags_NoneImGui_TabBarFlags_ReorderableImGui_TabBarFlags_TabListPopupButton
ImGui_TabItemButtonImGui_TabItemFlags_LeadingImGui_TabItemFlags_NoCloseWithMiddleMouseButton
ImGui_TabItemFlags_NoPushIdImGui_TabItemFlags_NoReorderImGui_TabItemFlags_NoTooltip
ImGui_TabItemFlags_NoneImGui_TabItemFlags_SetSelectedImGui_TabItemFlags_Trailing
ImGui_TabItemFlags_UnsavedDocumentImGui_TableBgTarget_CellBgImGui_TableBgTarget_None
ImGui_TableBgTarget_RowBg0ImGui_TableBgTarget_RowBg1ImGui_TableColumnFlags_DefaultHide
ImGui_TableColumnFlags_DefaultSortImGui_TableColumnFlags_DisabledImGui_TableColumnFlags_IndentDisable
ImGui_TableColumnFlags_IndentEnableImGui_TableColumnFlags_IsEnabledImGui_TableColumnFlags_IsHovered
ImGui_TableColumnFlags_IsSortedImGui_TableColumnFlags_IsVisibleImGui_TableColumnFlags_NoClip
ImGui_TableColumnFlags_NoHeaderLabelImGui_TableColumnFlags_NoHeaderWidthImGui_TableColumnFlags_NoHide
ImGui_TableColumnFlags_NoReorderImGui_TableColumnFlags_NoResizeImGui_TableColumnFlags_NoSort
ImGui_TableColumnFlags_NoSortAscendingImGui_TableColumnFlags_NoSortDescendingImGui_TableColumnFlags_None
ImGui_TableColumnFlags_PreferSortAscendingImGui_TableColumnFlags_PreferSortDescendingImGui_TableColumnFlags_WidthFixed
ImGui_TableColumnFlags_WidthStretchImGui_TableFlags_BordersImGui_TableFlags_BordersH
ImGui_TableFlags_BordersInnerImGui_TableFlags_BordersInnerHImGui_TableFlags_BordersInnerV
ImGui_TableFlags_BordersOuterImGui_TableFlags_BordersOuterHImGui_TableFlags_BordersOuterV
ImGui_TableFlags_BordersVImGui_TableFlags_ContextMenuInBodyImGui_TableFlags_Hideable
ImGui_TableFlags_NoClipImGui_TableFlags_NoHostExtendXImGui_TableFlags_NoHostExtendY
ImGui_TableFlags_NoKeepColumnsVisibleImGui_TableFlags_NoPadInnerXImGui_TableFlags_NoPadOuterX
ImGui_TableFlags_NoSavedSettingsImGui_TableFlags_NoneImGui_TableFlags_PadOuterX
ImGui_TableFlags_PreciseWidthsImGui_TableFlags_ReorderableImGui_TableFlags_Resizable
ImGui_TableFlags_RowBgImGui_TableFlags_ScrollXImGui_TableFlags_ScrollY
ImGui_TableFlags_SizingFixedFitImGui_TableFlags_SizingFixedSameImGui_TableFlags_SizingStretchProp
ImGui_TableFlags_SizingStretchSameImGui_TableFlags_SortMultiImGui_TableFlags_SortTristate
ImGui_TableFlags_SortableImGui_TableGetColumnCountImGui_TableGetColumnFlags
ImGui_TableGetColumnIndexImGui_TableGetColumnNameImGui_TableGetColumnSortSpecs
ImGui_TableGetRowIndexImGui_TableHeaderImGui_TableHeadersRow
ImGui_TableNeedSortImGui_TableNextColumnImGui_TableNextRow
ImGui_TableRowFlags_HeadersImGui_TableRowFlags_NoneImGui_TableSetBgColor
ImGui_TableSetColumnEnabledImGui_TableSetColumnIndexImGui_TableSetupColumn
ImGui_TableSetupScrollFreezeImGui_TextImGui_TextColored
ImGui_TextDisabledImGui_TextFilter_ClearImGui_TextFilter_Draw
ImGui_TextFilter_GetImGui_TextFilter_IsActiveImGui_TextFilter_PassFilter
ImGui_TextFilter_SetImGui_TextWrappedImGui_TreeNode
ImGui_TreeNodeExImGui_TreeNodeFlags_AllowItemOverlapImGui_TreeNodeFlags_Bullet
ImGui_TreeNodeFlags_CollapsingHeaderImGui_TreeNodeFlags_DefaultOpenImGui_TreeNodeFlags_FramePadding
ImGui_TreeNodeFlags_FramedImGui_TreeNodeFlags_LeafImGui_TreeNodeFlags_NoAutoOpenOnLog
ImGui_TreeNodeFlags_NoTreePushOnOpenImGui_TreeNodeFlags_NoneImGui_TreeNodeFlags_OpenOnArrow
ImGui_TreeNodeFlags_OpenOnDoubleClickImGui_TreeNodeFlags_SelectedImGui_TreeNodeFlags_SpanAvailWidth
ImGui_TreeNodeFlags_SpanFullWidthImGui_TreePopImGui_TreePush
ImGui_UnindentImGui_VSliderDoubleImGui_VSliderInt
ImGui_ValidatePtrImGui_Viewport_GetCenterImGui_Viewport_GetPos
ImGui_Viewport_GetSizeImGui_Viewport_GetWorkCenterImGui_Viewport_GetWorkPos
ImGui_Viewport_GetWorkSizeImGui_WindowFlags_AlwaysAutoResizeImGui_WindowFlags_AlwaysHorizontalScrollbar
ImGui_WindowFlags_AlwaysUseWindowPaddingImGui_WindowFlags_AlwaysVerticalScrollbarImGui_WindowFlags_HorizontalScrollbar
ImGui_WindowFlags_MenuBarImGui_WindowFlags_NoBackgroundImGui_WindowFlags_NoCollapse
ImGui_WindowFlags_NoDecorationImGui_WindowFlags_NoDockingImGui_WindowFlags_NoFocusOnAppearing
ImGui_WindowFlags_NoInputsImGui_WindowFlags_NoMouseInputsImGui_WindowFlags_NoMove
ImGui_WindowFlags_NoNavImGui_WindowFlags_NoNavFocusImGui_WindowFlags_NoNavInputs
ImGui_WindowFlags_NoResizeImGui_WindowFlags_NoSavedSettingsImGui_WindowFlags_NoScrollWithMouse
ImGui_WindowFlags_NoScrollbarImGui_WindowFlags_NoTitleBarImGui_WindowFlags_None
ImGui_WindowFlags_TopMostImGui_WindowFlags_UnsavedDocument 

^ ReaLlm

Llm_DoLlm_GetLlm_Set

^ ReaMCULive

MCULive_GetButtonValueMCULive_GetDeviceMCULive_GetEncoderValue
MCULive_GetFaderValueMCULive_GetMIDIMessageMCULive_Map
MCULive_ResetMCULive_SendMIDIMessageMCULive_SetButtonPassthrough
MCULive_SetButtonPressOnlyMCULive_SetButtonValueMCULive_SetDefault
MCULive_SetDisplayMCULive_SetEncoderValueMCULive_SetFaderValue
MCULive_SetMeterValueMCULive_SetOption 

^ ReaPack

ReaPack_AboutInstalledPackage(ReaPack)ReaPack_AboutRepository(ReaPack)ReaPack_AddSetRepository(ReaPack)
ReaPack_BrowsePackages(ReaPack)ReaPack_CompareVersions(ReaPack)ReaPack_EnumOwnedFiles(ReaPack)
ReaPack_FreeEntry(ReaPack)ReaPack_GetEntryInfo(ReaPack)ReaPack_GetOwner(ReaPack)
ReaPack_GetRepositoryInfo(ReaPack)ReaPack_ProcessQueue(ReaPack) 

^ SWS


^ Miscellaneous
CF_GetCustomColorCF_SetCustomColor 

^ Theme Management

BR_GetCurrentThemeBR_GetMediaTrackLayoutsBR_SetMediaTrackLayouts
GetLastColorThemeFileGetThemeColorOpenColorThemeFile
SetThemeColorThemeLayout_GetLayoutThemeLayout_GetParameter
ThemeLayout_RefreshAllThemeLayout_SetLayoutThemeLayout_SetParameter

^ Track Management


^ Misc
BR_GetMouseCursorContext_TrackBR_TrackAtMouseCursorBypassFxAllTracks
CSurf_NumTracksCSurf_ResetAllCachedVolPanStatesClearAllRecArmed
CountSelectedTracksCountSelectedTracks2CountTCPFXParms
CountTracksDeleteTrackGetLastTouchedTrack
GetMasterTrackGetNumTracksGetParentTrack
GetSelectedTrackGetSelectedTrack2GetTrack
GetTrackFromPointGetTrackNumMediaItemsInsertTrackAtIndex
MuteAllTracksReorderSelectedTracksSoloAllTracks
Track_GetPeakHoldDBTrack_GetPeakInfo 

^ Routing
BR_GetMediaTrackSendInfo_EnvelopeBR_GetMediaTrackSendInfo_TrackBR_GetSetTrackSendInfo
CSurf_OnRecvPanChangeCSurf_OnRecvVolumeChangeCSurf_OnSendPanChange
CSurf_OnSendVolumeChangeCreateTrackSendGetSetTrackSendInfo_String
GetTrackNumSendsGetTrackReceiveNameGetTrackReceiveUIMute
GetTrackReceiveUIVolPanGetTrackSendInfo_ValueGetTrackSendName
GetTrackSendUIMuteGetTrackSendUIVolPanRemoveTrackSend
SNM_AddReceiveSNM_RemoveReceiveSNM_RemoveReceivesFrom
SetTrackSendInfo_ValueSetTrackSendUIPanSetTrackSendUIVol
ToggleTrackSendUIMute  

^ Set Track States
SetTrackUIInputMonitorSetTrackUIMuteSetTrackUIPan
SetTrackUIPolaritySetTrackUIRecArmSetTrackUISolo
SetTrackUIVolumeSetTrackUIWidth 

^ Track States
AnyTrackSoloBR_GetMediaTrackByGUIDBR_GetMediaTrackFreezeCount
BR_GetMediaTrackGUIDCSurf_GetTouchStateCSurf_OnFXChange
CSurf_OnInputMonitorChangeCSurf_OnInputMonitorChangeExCSurf_OnMuteChange
CSurf_OnMuteChangeExCSurf_OnPanChangeCSurf_OnPanChangeEx
CSurf_OnRecArmChangeCSurf_OnRecArmChangeExCSurf_OnSelectedChange
CSurf_OnSoloChangeCSurf_OnSoloChangeExCSurf_OnStop
CSurf_OnTrackSelectionCSurf_OnVolumeChangeCSurf_OnVolumeChangeEx
CSurf_OnWidthChangeCSurf_OnWidthChangeExCSurf_SetSurfaceMute
CSurf_SetSurfacePanCSurf_SetSurfaceRecArmCSurf_SetSurfaceSelected
CSurf_SetSurfaceSoloCSurf_SetSurfaceVolumeCSurf_TrackFromID
CSurf_TrackToIDGetMasterMuteSoloFlagsGetMasterTrackVisibility
GetMediaTrackInfo_ValueGetSetMediaTrackInfo_StringGetSetTrackGroupMembership
GetSetTrackGroupMembershipHighGetSetTrackStateGetSetTrackState2
GetTrackColorGetTrackDepthGetTrackGUID
GetTrackNameGetTrackStateGetTrackStateChunk
GetTrackUIMuteGetTrackUIPanGetTrackUIVolPan
IsTrackSelectedIsTrackVisibleNF_GetSWSTrackNotes
NF_SetSWSTrackNotesSetMasterTrackVisibilitySetMediaTrackInfo_Value
SetOnlyTrackSelectedSetTrackColorSetTrackSelected
SetTrackStateChunk  

^ User Interface


^ Arrangeview Management
BR_GetArrangeViewBR_GetMouseCursorContext_PositionBR_PositionAtMouseCursor
BR_SetArrangeViewCSurf_OnArrowCSurf_OnScroll
CSurf_OnZoomGetHZoomLevelGetSet_ArrangeView2
NF_ScrollHorizontallyByPercentageadjustZoom 

^ Dialogs
GR_SelectColorGetUserFileNameForReadGetUserInputs
JS_Dialog_BrowseForFolderJS_Dialog_BrowseForOpenFilesJS_Dialog_BrowseForSaveFile
MBSNM_SelectResourceBookmarkSNM_TieResourceSlotActions
ShowActionListShowMessageBoxViewPrefs

^ Dockers
DockGetPositionDockIsChildOfDockDockWindowActivate
DockWindowAddDockWindowAddExDockWindowRefresh
DockWindowRefreshForHWNDDockWindowRemoveDock_UpdateDockID
GetConfigWantsDock  

^ Drawing in HWNDs
JS_CompositeJS_Composite_DelayJS_Composite_ListBitmaps
JS_Composite_UnlinkJS_GDI_BlitJS_GDI_CreateFillBrush
JS_GDI_CreateFontJS_GDI_CreatePenJS_GDI_DeleteObject
JS_GDI_DrawTextJS_GDI_FillEllipseJS_GDI_FillPolygon
JS_GDI_FillRectJS_GDI_FillRoundRectJS_GDI_GetSysColor
JS_GDI_GetTextColorJS_GDI_LineJS_GDI_Polyline
JS_GDI_ReleaseDCJS_GDI_SelectObjectJS_GDI_SetPixel
JS_GDI_SetTextBkColorJS_GDI_SetTextBkModeJS_GDI_SetTextColor
JS_GDI_StretchBlitJS_LICE_AlterBitmapHSVJS_LICE_AlterRectHSV
JS_LICE_ArcJS_LICE_ArrayAllBitmapsJS_LICE_Bezier
JS_LICE_BlitJS_LICE_CircleJS_LICE_Clear
JS_LICE_CreateBitmapJS_LICE_CreateFontJS_LICE_DestroyBitmap
JS_LICE_DestroyFontJS_LICE_DrawCharJS_LICE_DrawText
JS_LICE_FillCircleJS_LICE_FillPolygonJS_LICE_FillRect
JS_LICE_FillTriangleJS_LICE_GetDCJS_LICE_GetHeight
JS_LICE_GetPixelJS_LICE_GetWidthJS_LICE_GradRect
JS_LICE_IsFlippedJS_LICE_LineJS_LICE_ListAllBitmaps
JS_LICE_MeasureTextJS_LICE_ProcessRectJS_LICE_PutPixel
JS_LICE_ResizeJS_LICE_RotatedBlitJS_LICE_RoundRect
JS_LICE_ScaledBlitJS_LICE_SetAlphaFromColorMaskJS_LICE_SetFontBkColor
JS_LICE_SetFontColorJS_LICE_SetFontFXColorJS_LICE_SetFontFromGDI
LICE_ClipLine  

^ List Views
JS_Header_GetItemCountJS_ListView_EnsureVisibleJS_ListView_EnumSelItems
JS_ListView_GetFocusedItemJS_ListView_GetHeaderJS_ListView_GetItem
JS_ListView_GetItemCountJS_ListView_GetItemRectJS_ListView_GetItemState
JS_ListView_GetItemTextJS_ListView_GetSelectedCountJS_ListView_GetTopIndex
JS_ListView_HitTestJS_ListView_ListAllSelItemsJS_ListView_SetItemState
JS_ListView_SetItemText  

^ Misc
BR_Win32_GetCursorPosCSurf_SetTrackListChangeEnsureNotCompletelyOffscreen
GSC_mainwndGetCursorContextGetCursorContext2
GetMixerScrollGetThingFromPointGetTooltipWindow
Help_SetNF_Win32_GetSystemMetricsOpenMediaExplorer
SetCursorContextSetMixerScrollShowPopupMenu
Splash_GetWndTrackCtl_SetToolTipTrackList_AdjustWindows
UpdateArrangeUpdateTimelinemy_getViewport

^ Toolbars
RefreshToolbarRefreshToolbar2 

^ Window Management
BR_GetMouseCursorContext_MIDIBR_Win32_CB_FindStringBR_Win32_CB_FindStringExact
BR_Win32_ClientToScreenBR_Win32_FindWindowExBR_Win32_GET_X_LPARAM
BR_Win32_GET_Y_LPARAMBR_Win32_GetFocusBR_Win32_GetForegroundWindow
BR_Win32_GetMainHwndBR_Win32_GetMixerHwndBR_Win32_GetMonitorRectFromRect
BR_Win32_GetParentBR_Win32_GetWindowBR_Win32_GetWindowLong
BR_Win32_GetWindowRectBR_Win32_GetWindowTextBR_Win32_HwndToString
BR_Win32_IsWindowBR_Win32_IsWindowVisibleBR_Win32_MIDIEditor_GetActive
BR_Win32_ScreenToClientBR_Win32_SendMessageBR_Win32_SetFocus
BR_Win32_SetForegroundWindowBR_Win32_SetWindowLongBR_Win32_SetWindowPos
BR_Win32_ShowWindowBR_Win32_StringToHwndBR_Win32_WindowFromPoint
CF_GetTrackFXChainExGetMainHwndJS_GDI_GetClientDC
JS_GDI_GetScreenDCJS_GDI_GetWindowDCJS_MIDIEditor_ArrayAll
JS_MIDIEditor_ListAllJS_WindowMessage_InterceptJS_WindowMessage_InterceptList
JS_WindowMessage_ListInterceptsJS_WindowMessage_PassThroughJS_WindowMessage_Peek
JS_WindowMessage_PostJS_WindowMessage_ReleaseJS_WindowMessage_ReleaseAll
JS_WindowMessage_ReleaseWindowJS_WindowMessage_SendJS_Window_AddressFromHandle
JS_Window_ArrayAllChildJS_Window_ArrayAllTopJS_Window_ArrayFind
JS_Window_AttachResizeGripJS_Window_AttachTopmostPinJS_Window_ClientToScreen
JS_Window_CreateJS_Window_DestroyJS_Window_Enable
JS_Window_EnableMetalJS_Window_FindJS_Window_FindChild
JS_Window_FindChildByIDJS_Window_FindExJS_Window_FindTop
JS_Window_FromPointJS_Window_GetClassNameJS_Window_GetClientRect
JS_Window_GetClientSizeJS_Window_GetFocusJS_Window_GetForeground
JS_Window_GetLongJS_Window_GetLongPtrJS_Window_GetParent
JS_Window_GetRectJS_Window_GetRelatedJS_Window_GetScrollInfo
JS_Window_GetTitleJS_Window_GetViewportFromRectJS_Window_HandleFromAddress
JS_Window_InvalidateRectJS_Window_IsChildJS_Window_IsVisible
JS_Window_IsWindowJS_Window_ListAllChildJS_Window_ListAllTop
JS_Window_ListFindJS_Window_MonitorFromRectJS_Window_Move
JS_Window_OnCommandJS_Window_RemoveXPStyleJS_Window_Resize
JS_Window_ScreenToClientJS_Window_SetFocusJS_Window_SetForeground
JS_Window_SetLongJS_Window_SetOpacityJS_Window_SetParent
JS_Window_SetPositionJS_Window_SetScrollPosJS_Window_SetStyle
JS_Window_SetTitleJS_Window_SetZOrderJS_Window_Show
JS_Window_UpdateNF_UpdateSWSMarkerRegionSubWindowSN_FocusMIDIEditor


^ 1 Introduction to ReaScript

ReaScript API

REAPER provides an API (advanced programming interface) for users and third parties to create extended functionality. API functions can be called from a compiled C/C++ dynamic library that is loaded by REAPER, or at run-time by user-created ReaScripts that can be written using REAPER's own editor.

ReaScripts can be written in EEL2, a specialized language that is also used to write JSFX; Lua, a popular scripting language; or Python, another scripting language. EEL and Lua are embedded within REAPER and require no additional downloads or settings. Python must be downloaded and installed separately, and enabled in REAPER preferences.

A script named "__startup.lua|.eel" will be started automatically by Reaper at startup. You can have both; Reaper will run __startup.eel first, __startup.lua second. This __startup-script doesn't need to be registered into the actionlist of Reaper; it's pure existence in the scripts-folder of the resources-folder of Reaper is sufficient for it to be run.

Learn more about ReaScript: http://www.cockos.com/reaper/sdk/reascript/reascript.php.

This documentation includes the functions provided by SWS: sws-extension.org as well as Julian Sader's plugin, that can be installed via ReaPack.

The IDE in Reaper has some limitations, as every line must not exceed 4095 characters, or they will be split when the script is loaded the next time. It also tries to obey the script's chose character for indentation. So if every line begins with a tab, hitting tab will insert 4 spaces, if every line begins with spaces, hitting tab will insert 2 spaces. The IDE has known issues with Unicode-characters, especially when inserted via Alt+GR. So sometimes it's easier to use an external IDE/editor instead.

The base-directory for files created from ReaScript can be read from the reaper.ini -> [REAPER] -> lastcwd= That means, if you create a new file without giving it a path, it will be created in the path set in lastcwd.

Note: a lot of the functions in this document require 3rd-party-extensions. You can find and install them from here:
SWS: https://www.sws-extension.org
JS-extension: https://forum.cockos.com/showthread.php?t=212174
ReaPack: https://reapack.com/
ReaImGui: https://forum.cockos.com/showthread.php?t=250419
Osara: https://osara.reaperaccessibility.com/
ReaBlink: https://github.com/ak5k/reablink/releases/
ReaLlm: https://github.com/ak5k/reallm
ReaFab: https://github.com/ak5k/reafab
ReaMCULive: https://github.com/ak5k/reamculive/releases/
PeloReaper: https://github.com/pelori/PeloReaper



^ 2.1 CPP Api-Description

Usage of the Reaper Api in C++

Note: the C++ pure virtual interfaces used require the MSVC-compatible C++ ABI on Win32. Sorry, mingw users.

Reaper extensions: see http://www.cockos.com/reaper/sdk/plugin/plugin.php and reaper_plugin.h. The API functions in this header can be retrieved using reaper_plugin_info_t.GetFunc() or by using the Action "[developer] Write C++ API functions header" directly in Reaper.

VST plugins: see http://www.cockos.com/reaper/sdk/vst/vst_ext.php The API functions in this header can be retrieved using audioMasterCallback.

Because the API is dynamic, callers should never assume a function exists. Check that a non-NULL function pointer was returned before using it (unless loaded functions are verified using REAPERAPI_LoadAPI(), see note below).

New (4.76+) usage of this file: - 1) most source files should just #include "reaper_plugin_functions.h" as is. - 2) one file should #define REAPERAPI_IMPLEMENT before including this file. - 3) the plug-in should call REAPERAPI_LoadAPI(rec->GetFunc) from REAPER_PLUGIN_ENTRYPOINT - and check the return value for errors (REAPERAPI_LoadAPI will return 0 on success).

By default, all functions listed in this file are loaded. This means that an older version of REAPER may not succeed in loading, and also it may bloat your plug-in. If you wish to only load needed functions, #define REAPERAPI_MINIMAL and various #define REAPERAPI_WANT_ lines before including this file. You must put these definitions where REAPERAPI_IMPLEMENT is defined and you can optionally put them elsewhere (to detect needed REAPERAPI_WANT_xxx lines at compile- time rather than link-time).



^ 2.2 EEL Api-Description

ReaScript/EEL API

For information on the EEL2 language, please see the EEL2 User Guide

ReaScript/EEL scripts can call API functions using functionname().

Parameters that return information are effectively passed by reference, not value. If an API returns a string value, it will usually be as the first parameter.

Examples:

// function returning a single (scalar) value:
sec = parse_timestr("1:12");

// function returning information in the first parameter (function returns void):
GetProjectPath(#string);

// lower volume of track 3 by half:
tr = GetTrack(0, 2);
GetTrackUIVolPan(tr, vol, pan);
SetMediaTrackInfo_Value(tr, "D_VOL", vol*0.5);

ReaScript/EEL can import functions from other reascripts using @import filename.eel -- note that only the file's functions will be imported, normal code in that file will not be executed.



^ 2.3 Python Api-Description

ReaScript/Python API

ReaScript/Python requires a recent version of Python installed on this machine. Python is available from multiple sources as a free download. After installing Python, REAPER may detect the Python dynamic library automatically. If not, you can enter the path in the ReaScript preferences page, at Options/Preferences/Plug-Ins/ReaScript.

ReaScript/Python scripts can call API functions using RPR_functionname().

All parameters are passed by value, not reference. API functions that cannot return information in the parameter list will return a single value. API functions that can return any information in the parameter list will return a list of values; The first value in the list will be the function return value (unless the function is declared to return void).

Examples:

# function returning a single (scalar) value:  
sec = RPR_parse_timestr("1:12")  

# function returning information in the first parameter (function returns void):  
(str) = RPR_GetProjectPath("", 512)  

# lower volume of track 3 by half (RPR_GetTrackUIVolPan returns Bool):  
tr = RPR_GetTrack(0, 2)  
(ok, tr, vol, pan) = RPR_GetTrackUIVolPan(tr, 0, 0)  
# this also works, if you only care about one of the returned values:  
vol = RPR_GetTrackUIVolPan(tr, 0, 0)[2]  
RPR_SetMediaTrackInfo_Value(tr, "D_VOL", vol*0.5)  

You can create and save modules of useful functions that you can import into other ReaScripts. For example, if you create a file called reascript_utility.py that contains the function helpful_function(), you can import that file into any Python ReaScript with the line:

import reascript_utility

and call the function by using:

reascript_utility.helpful_function()

Note that ReaScripts must explicitly import the REAPER python module, even if the script is imported into another ReaScript:

from reaper_python import *


^ 2.4 Lua Api-Description

ReaScript/Lua API

ReaScript/Lua scripts can call API functions using reaper.functionname().

Some functions return multiple values. In many cases, some function parameters are ignored, especially when similarly named parameters are present in the returned values.

Examples:

-- function returning a single (scalar) value:
sec = reaper.parse_timestr("1:12")

-- function with an ignored (dummy) parameter:
path = reaper.GetProjectPath("")

-- lower volume of track 3 by half:
tr = reaper.GetTrack(0, 2)
ok, vol, pan = reaper.GetTrackUIVolPan(tr, 0, 0)
reaper.SetMediaTrackInfo_Value(tr, "D_VOL", vol*0.5)

ReaScript/Lua can import functions from other ReaScripts using require. If the files are not being found, it is probably a path problem (remember that lua paths are wildcard patterns, not just directory listings, see details here).



^ 3 Datatypes used in this document

Datatypes used in this document

boolean - accepts only true or false as values
optional boolean - a boolean, that can be given, but is not required
number - can be integer, double or a floating-point-number
optional number - a number, that can be given, but is not required
integer - only integer numbers allowed
reaper.array - a special array, that Reaper provides
string - a string of characters/text
optional string - a string, that can be given, but is not required

AudioAccessor - Audio Accessor object for a track or a media-item
BR_Envelope (BR) - an envelope-object, created from a track or take-envelope
HWND - a window
IReaperControlSurface - a ControlSurface, e.g. OSC-devices
joystick_device - a joystick-device
KbdSectionInfo - Keyboard Section Info, - 0, Main
- 100, Main (alt recording)
- 32060, MIDI Editor
- 32061, MIDI Event List Editor
- 32062, MIDI Inline Editor
- 32063, Media Explorer
PCM_source - the audiosource of a MediaItem
ReaProject - a project within Reaper; 0 for current open project(-tab); in EnumProjects, it is an object, not a number!
RprMidiTake (FNG) - ReaperMidiTake as object
RprMidiNote (FNG) - RprMidiNote as object
MediaTrack - a Reaper-Track as object
MediaItem - a Reaper-MediaItem like audio,video, Midi, etc as object
MediaItem_Take - a take within a MediaItem as object
TrackEnvelope - an envelope of a track as object
WDL_FastString(S&M) - a different kind of a string, made into a Reaper-object

deviceHDC - get it using function JS_GDI_GetWindowDC



^ Reaper version 6.71kbd_enumerateActions

C: int retval = kbd_enumerateActions(KbdSectionInfo* section, int idx, const char** nameOut)
EEL2: int retval = kbd_enumerateActions(KbdSectionInfo section, int idx, #name)
Lua: integer retval, string name = reaper.kbd_enumerateActions(KbdSectionInfo section, integer idx)
Python: Int retval = RPR_kbd_enumerateActions(KbdSectionInfo section, Int idx, String nameOut)

Returns the description of an action.

Returnvalues:
integer retval
true, the action exists; false, the action does not exist
string name
the name of the action

Parameters:
KbdSectionInfo section
the section, in which the action is located
0, Main
100, Main (alt recording)
32060, MIDI Editor
32061, MIDI Event List Editor
32062, MIDI Inline Editor
32063, Media Explorer
integer idx
the command-id of the action, whose description you want to have.

see also:
  • kbd_getTextFromCmd - an alternative version of this function


  • ^ Reaper version 5.62AddRemoveReaScript

    C: int AddRemoveReaScript(bool add, int sectionID, const char* scriptfn, bool commit)
    EEL2: int AddRemoveReaScript(bool add, int sectionID, "scriptfn", bool commit)
    Lua: integer command_id = reaper.AddRemoveReaScript(boolean add, integer sectionID, string scriptfn, boolean commit)
    Python: Int retval = RPR_AddRemoveReaScript(Boolean add, Int sectionID, String scriptfn, Boolean commit)

    Adds a ReaScript (returns the new command ID, or 0 if failed) or removes a ReaScript
    Returns >0 on success.
    Use commit==true when adding/removing a single script.
    Committing means, that Reaper stores the Reascript-information into the reaper-kb.ini for permanent use.
    It will be committed at Reaper's exit as well, but if Reaper crashes before exiting properly, your added
    script might get lost. When adding many Reascripts to Reaper, setting commit to false might help prevail
    ressources, as you don't rewrite the reaper-kb.ini file over and over again. However, if you only add a
    few scripts, this might not be of importance to you.
    So when bulk adding/removing multiple scripts, you can optimize the n-1 first calls with commit==false and commit==true for the last call.

    The commandID returned, might change, when adding this script into another Reaper-installation.
    To be sure to use the right command-id, use ReverseNamedCommandLookup() to get the ActionCommandID, which will never change, until you remove the script.

    If you want to add a script to several sections, you need to add them individually, by calling the function again with the changed section-number.

    Returnvalues:
    integer command_id
    the command ID for this script.

    Parameters:
    boolean add
    true, if it shall be added, false if it shall be removed
    integer sectionID
    the section, in which this script shall appear(e.g. in the Show Actions-Dialog)
      0, Main
      100, Main (alt recording) Note: If you already added to main(section 0), this function automatically adds the script to Main(alt) as well.
      32060, MIDI Editor
      32061, MIDI Event List Editor
      32062, MIDI Inline Editor
      32063, Media Explorer
    string scriptfn
    the filename of the Reascript to be added
    boolean commit
    true, if it shall be committed, false, if you want to add new scripts first.

    see also:
  • ReverseNamedCommandLookup - to get ActionCommandID-string of the script


  • ^ Reaper version 5.95ArmCommand

    C: void ArmCommand(int cmd, const char* sectionname)
    EEL2: ArmCommand(int cmd, "sectionname")
    Lua: reaper.ArmCommand(integer cmd, string sectionname)
    Python: RPR_ArmCommand(Int cmd, String sectionname)

    arms a command (or disarms if 0 passed) in section sectionname (empty string for main)

    Parameters:
    integer cmd
    string sectionname


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_EnumerateActions

    C: int CF_EnumerateActions(int section, int index, char* nameOut, int nameOut_sz)
    EEL2: int extension_api("CF_EnumerateActions", int section, int index, #name)
    Lua: integer retval, string name = reaper.CF_EnumerateActions(integer section, integer index)
    Python: (Int retval, Int section, Int index, String nameOut, Int nameOut_sz) = CF_EnumerateActions(section, index, nameOut, nameOut_sz)

    Deprecated, see kbd_enumerateActions (v6.71+).

    Wrapper for the unexposed kbd_enumerateActions API function.
    Main=0, Main (alt recording)=100, MIDI Editor=32060, MIDI Event List Editor=32061, MIDI Inline Editor=32062, Media Explorer=32063

    Returnvalues:
    integer retval
    string name

    Parameters:
    integer section
    integer index


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_GetCommandText

    C: const char* CF_GetCommandText(int section, int command)
    EEL2: bool extension_api("CF_GetCommandText", #retval, int section, int command)
    Lua: string str = reaper.CF_GetCommandText(integer section, integer command)
    Python: String retval = CF_GetCommandText(Int section, Int command)

    Deprecated, see kbd_getTextFromCmd (v6.71+).

    Wrapper for the unexposed kbd_getTextFromCmd API function.

    See CF_EnumerateActions for common section IDs.


    Returnvalues:
    string str

    Parameters:
    integer section
    integer command


    ^ Reaper version 5.95GetArmedCommand

    C: int GetArmedCommand(char* secOut, int secOut_sz)
    EEL2: int GetArmedCommand(#sec)
    Lua: integer retval, string sec = reaper.GetArmedCommand()
    Python: (Int retval, String secOut, Int secOut_sz) = RPR_GetArmedCommand(secOut, secOut_sz)

    gets the currently armed command and section name (returns 0 if nothing armed). section name is empty-string for main section.

    Returnvalues:
    integer retval
    string sec


    ^ Reaper version 5.62GetToggleCommandState

    C: int GetToggleCommandState(int command_id)
    EEL2: int GetToggleCommandState(int command_id)
    Lua: integer retval = reaper.GetToggleCommandState(integer command_id)
    Python: Int retval = RPR_GetToggleCommandState(Int command_id)

    Return toggle-state of an action. See GetToggleCommandStateEx.
    See NamedCommandLookup() for the correct command_id.

    Returnvalues:
    integer retval
    toggle-state
    0, off
    &1, on/checked in menus
    &2, on/grayed out in menus
    &16, on/bullet in front of the entry in menus
    -1, NA because the action does not have on/off states.

    Parameters:
    integer command_id
    the command_id, whose toggle-state you want to know.

    see also:
  • GetToggleCommandStateEx - get the toggle state of commands, including those in other sections
  • NamedCommandLookup - get the named action-command-id by command-id-number


  • ^ Reaper version 5.62GetToggleCommandStateEx

    C: int GetToggleCommandStateEx(int section_id, int command_id)
    EEL2: int GetToggleCommandStateEx(int section_id, int command_id)
    Lua: integer retval = reaper.GetToggleCommandStateEx(integer section_id, integer command_id)
    Python: Int retval = RPR_GetToggleCommandStateEx(Int section_id, Int command_id)

    Return toggle-state of an action.

    For the main action context, the MIDI editor, or the media explorer, returns the toggle state of the action. For the MIDI editor, the action state for the most recently focused window will be returned.
    See NamedCommandLookup() for the correct command_id.

    Returnvalues:
    integer retval
    toggle-state
    0, off
    &1, on/checked in menus
    &2, on/grayed out in menus
    &16, on/bullet in front of the entry in menus
    -1, NA because the action does not have on/off states.

    Parameters:
    integer section_id
    the section, in which the action lies
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer command_id
    the command_id, whose toggle-state you want to know.

    see also:
  • GetToggleCommandState - get the toggle state of commands in the main-section only
  • NamedCommandLookup - get the named action-command-id by command-id-number


  • ^ Reaper version 5.62MIDIEditor_LastFocused_OnCommand

    C: bool MIDIEditor_LastFocused_OnCommand(int command_id, bool islistviewcommand)
    EEL2: bool MIDIEditor_LastFocused_OnCommand(int command_id, bool islistviewcommand)
    Lua: boolean retval = reaper.MIDIEditor_LastFocused_OnCommand(integer command_id, boolean islistviewcommand)
    Python: Boolean retval = RPR_MIDIEditor_LastFocused_OnCommand(Int command_id, Boolean islistviewcommand)

    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.

    see MIDIEditor_OnCommand

    Returnvalues:
    boolean retval

    Parameters:
    integer command_id
    boolean islistviewcommand

    see also:
  • MIDIEditor_OnCommand - runs an action from the MIDI-Editor-section in a Midi editor


  • ^ Reaper version 5.62MIDIEditor_OnCommand

    C: bool MIDIEditor_OnCommand(HWND midieditor, int command_id)
    EEL2: bool MIDIEditor_OnCommand(HWND midieditor, int command_id)
    Lua: boolean retval = reaper.MIDIEditor_OnCommand(HWND midieditor, integer command_id)
    Python: Boolean retval = RPR_MIDIEditor_OnCommand(HWND midieditor, Int command_id)

    Send an action command to a MIDI editor.

    Returns false if the supplied MIDI editor pointer is not valid (not an open MIDI editor).

    see MIDIEditor_GetActive, MIDIEditor_LastFocused_OnCommand

    Returnvalues:
    boolean retval

    Parameters:
    HWND midieditor
    integer command_id

    see also:
  • MIDIEditor_GetActive - gets the hwnd of the currently active MIDI editor.
  • MIDIEditor_LastFocused_OnCommand - runs an action from the MIDI editor-section in the last/currently focused MIDI editor


  • ^ Reaper version 5.62Main_OnCommand

    C: void Main_OnCommand(int command, int flag)
    EEL2: Main_OnCommand(int command, int flag)
    Lua: reaper.Main_OnCommand(integer command, integer flag)
    Python: RPR_Main_OnCommand(Int command, Int flag)

    Performs an action belonging to the main action section.
    To perform non-native actions (ReaScripts, custom or extension plugins' actions) safely, see NamedCommandLookup().
    See Main_OnCommandEx.

    Parameters:
    integer command
    the command-id of the action, you want to run
    integer flag
    set to 0

    see also:
  • NamedCommandLookup - gets the numerical representation of an action-command-id of scripts or named actions(by SWS, etc)
  • ReverseNamedCommandLookup - gets the action-command-id by its numerical representation
  • Main_OnCommandEx - runs an action of main-context towards another project


  • ^ Reaper version 5.62Main_OnCommandEx

    C: void Main_OnCommandEx(int command, int flag, ReaProject* proj)
    EEL2: Main_OnCommandEx(int command, int flag, ReaProject proj)
    Lua: reaper.Main_OnCommandEx(integer command, integer flag, ReaProject proj)
    Python: RPR_Main_OnCommandEx(Int command, Int flag, ReaProject proj)

    Performs an action belonging to the main action section. To perform non-native actions (ReaScripts, custom or extension plugins' actions) safely, see NamedCommandLookup().

    Parameters:
    integer command
    the command-id of the action, you want to run
    integer flag
    unknown, use 0
    ReaProject proj
    the project-number. 0 for the current project.

    see also:
  • NamedCommandLookup - gets the numerical representation of an action-command-id of scripts or named actions(by SWS, etc)
  • ReverseNamedCommandLookup - gets the action-command-id by its numerical representation
  • Main_OnCommand - runs an action of main-context


  • ^ Reaper version 5.62NamedCommandLookup

    C: int NamedCommandLookup(const char* command_name)
    EEL2: int NamedCommandLookup("command_name")
    Lua: integer retval = reaper.NamedCommandLookup(string command_name)
    Python: Int retval = RPR_NamedCommandLookup(String command_name)

    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.

    see Main_OnCommand for executing actions with command-ID-numbers.

    Note: never assume that this command-id is valid across multiple installations. That means, the command-id returned by NamedCommandLookup can be different for the same _ActionCommandID between different Reaper-installations. So when you want to run a command, using the command-id, ALWAYS get it using NamedCommandLookup in your script first, and never store it somewhere to be used later on. Otherwise, you risk an action not running. This note is important for custom-actions/scripts/actions from extensions. The command-ids from Reaper's own actions will always stay the same. So rule of thumb: if an action has an action_command_id starting with an underscore _, always use NamedCommandLookup with it.


    Returnvalues:
    integer retval
    the command-id-number of the script/action, which can be used to e.g. run the action, toggle actions, refresh toolbars, etc.

    Parameters:
    string command_name
    the ActionCommandID of the script/action, whose command-id number you want. Must start with _, eg. "SWS_ABOUT" -> "_SWS_ABOUT"


    ^ Reaper version 6.12PromptForAction

    C: int PromptForAction(int session_mode, int init_id, int section_id)
    EEL2: int PromptForAction(int session_mode, int init_id, int section_id)
    Lua: integer retval = reaper.PromptForAction(integer session_mode, integer init_id, integer section_id)
    Python: Int retval = RPR_PromptForAction(Int session_mode, Int init_id, Int section_id)

    Opens the actionlist and allows you to get, which action the user selected.

    So the user can select numerous actions, and when they hit the select or select/close-button, you can get the actions selected.

    To start a new session, pass 1 as parameter session_mode.

    After that, repeatedly call the function with session_mode=0, which will return the selected actions.
            - -1, the actionlist is closed
            - 0, no action has been selected
            - any other number, this action has been selected.
    In the latter case, call the function until it returns 0 again to get all selected actions.

    If you're finished, call the function with session_mode=-1


    When finished, call with session_mode=-1.

    Returnvalues:
    integer retval
    the selected actions
    -1, actionlist is not opened
    0, no action has been selected yet/you retrieved all selected actions
    any other number, the selected actions; call repeatedly to get all selected commandids until the function returns 0 again

    Parameters:
    integer session_mode
    1, start a new session; 0, retrieve selected actions; -1, end a session
    integer init_id
    the command-id, which shall be preselected, when the actionlist opens
    integer section_id
    the section in which you want to let the user select
    0 - Main
    100 - Main (alt recording)
    32060 - MIDI Editor
    32061 - MIDI Event List Editor
    32062 - MIDI Inline Editor
    32063 - Media Explorer


    ^ Reaper version 5.62ReverseNamedCommandLookup

    C: const char* ReverseNamedCommandLookup(int command_id)
    EEL2: bool ReverseNamedCommandLookup(#retval, int command_id)
    Lua: string action_command_id = reaper.ReverseNamedCommandLookup(integer command_id)
    Python: String retval = RPR_ReverseNamedCommandLookup(Int command_id)

    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.

    Returnvalues:
    string action_command_id
    the ActionCommandID of the command/script/action

    Parameters:
    integer command_id
    the command/script/action, whose ActionCommandID you want to have


    ^ Reaper version 5.62SetToggleCommandState

    C: bool SetToggleCommandState(int section_id, int command_id, int state)
    EEL2: bool SetToggleCommandState(int section_id, int command_id, int state)
    Lua: boolean retval = reaper.SetToggleCommandState(integer section_id, integer command_id, integer state)
    Python: Boolean retval = RPR_SetToggleCommandState(Int section_id, Int command_id, Int state)

    Updates the toggle state of an action, returns true if succeeded. Only ReaScripts can have their toggle states changed programmatically.

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    integer section_id
    the section of the action
           0, Main  
           100, Main (alt recording)  
           32060, MIDI Editor  
           32061, MIDI Event List Editor  
           32062, MIDI Inline Editor  
           32063, Media Explorer  
    integer command_id
    the command-id of the action whose toggle command state you want to query
    integer state
    toggle-state
    0, off
    &1, on/checked in menus
    &2, on/grayed out in menus
    &16, on/bullet in front of the entry in menus
    -1, NA because the action does not have on/off states.

    see also:
  • RefreshToolbar2 - updates toolbar-buttons to on/off-state


  • ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetConstant

    C: int BR_Win32_GetConstant(const char* constantName)
    EEL2: int extension_api("BR_Win32_GetConstant", "constantName")
    Lua: integer retval = reaper.BR_Win32_GetConstant(string constantName)
    Python: Int retval = BR_Win32_GetConstant(String constantName)

    [BR] Returns various constants needed for BR_Win32 functions.
    Supported constants are:
    CB_ERR, CB_GETCOUNT, CB_GETCURSEL, CB_SETCURSEL
    EM_SETSEL
    GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV, GW_OWNER
    GWL_STYLE
    SW_HIDE, SW_MAXIMIZE, SW_SHOW, SW_SHOWMINIMIZED, SW_SHOWNA, SW_SHOWNOACTIVATE, SW_SHOWNORMAL
    SWP_FRAMECHANGED, SWP_FRAMECHANGED, SWP_NOMOVE, SWP_NOOWNERZORDER, SWP_NOSIZE, SWP_NOZORDER
    VK_DOWN, VK_UP
    WM_CLOSE, WM_KEYDOWN
    WS_MAXIMIZE, WS_OVERLAPPEDWINDOW


    Returnvalues:
    integer retval

    Parameters:
    string constantName


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_HIBYTE

    C: int BR_Win32_HIBYTE(int value)
    EEL2: int extension_api("BR_Win32_HIBYTE", int value)
    Lua: integer retval = reaper.BR_Win32_HIBYTE(integer value)
    Python: Int retval = BR_Win32_HIBYTE(Int value)

    [BR] Equivalent to win32 API HIBYTE().


    Returnvalues:
    integer retval

    Parameters:
    integer value


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_HIWORD

    C: int BR_Win32_HIWORD(int value)
    EEL2: int extension_api("BR_Win32_HIWORD", int value)
    Lua: integer retval = reaper.BR_Win32_HIWORD(integer value)
    Python: Int retval = BR_Win32_HIWORD(Int value)

    [BR] Equivalent to win32 API HIWORD().


    Returnvalues:
    integer retval

    Parameters:
    integer value


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_LOBYTE

    C: int BR_Win32_LOBYTE(int value)
    EEL2: int extension_api("BR_Win32_LOBYTE", int value)
    Lua: integer retval = reaper.BR_Win32_LOBYTE(integer value)
    Python: Int retval = BR_Win32_LOBYTE(Int value)

    [BR] Equivalent to win32 API LOBYTE().



    Returnvalues:
    integer retval

    Parameters:
    integer value


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_LOWORD

    C: int BR_Win32_LOWORD(int value)
    EEL2: int extension_api("BR_Win32_LOWORD", int value)
    Lua: integer retval = reaper.BR_Win32_LOWORD(integer value)
    Python: Int retval = BR_Win32_LOWORD(Int value)

    [BR] Equivalent to win32 API LOWORD().


    Returnvalues:
    integer retval

    Parameters:
    integer value


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKELONG

    C: int BR_Win32_MAKELONG(int low, int high)
    EEL2: int extension_api("BR_Win32_MAKELONG", int low, int high)
    Lua: integer retval = reaper.BR_Win32_MAKELONG(integer low, integer high)
    Python: Int retval = BR_Win32_MAKELONG(Int low, Int high)

    [BR] Equivalent to win32 API MAKELONG().


    Returnvalues:
    integer retval

    Parameters:
    integer low
    integer high


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKELPARAM

    C: int BR_Win32_MAKELPARAM(int low, int high)
    EEL2: int extension_api("BR_Win32_MAKELPARAM", int low, int high)
    Lua: integer retval = reaper.BR_Win32_MAKELPARAM(integer low, integer high)
    Python: Int retval = BR_Win32_MAKELPARAM(Int low, Int high)

    [BR] Equivalent to win32 API MAKELPARAM().


    Returnvalues:
    integer retval

    Parameters:
    integer low
    integer high


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKELRESULT

    C: int BR_Win32_MAKELRESULT(int low, int high)
    EEL2: int extension_api("BR_Win32_MAKELRESULT", int low, int high)
    Lua: integer retval = reaper.BR_Win32_MAKELRESULT(integer low, integer high)
    Python: Int retval = BR_Win32_MAKELRESULT(Int low, Int high)

    [BR] Equivalent to win32 API MAKELRESULT().


    Returnvalues:
    integer retval

    Parameters:
    integer low
    integer high


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKEWORD

    C: int BR_Win32_MAKEWORD(int low, int high)
    EEL2: int extension_api("BR_Win32_MAKEWORD", int low, int high)
    Lua: integer retval = reaper.BR_Win32_MAKEWORD(integer low, integer high)
    Python: Int retval = BR_Win32_MAKEWORD(Int low, Int high)

    [BR] Equivalent to win32 API MAKEWORD().


    Returnvalues:
    integer retval

    Parameters:
    integer low
    integer high


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MAKEWPARAM

    C: int BR_Win32_MAKEWPARAM(int low, int high)
    EEL2: int extension_api("BR_Win32_MAKEWPARAM", int low, int high)
    Lua: integer retval = reaper.BR_Win32_MAKEWPARAM(integer low, integer high)
    Python: Int retval = BR_Win32_MAKEWPARAM(Int low, Int high)

    [BR] Equivalent to win32 API MAKEWPARAM().


    Returnvalues:
    integer retval

    Parameters:
    integer low
    integer high


    ^ Reaper version 5.974 JS version 0.971JS_Byte

    C: void JS_Byte(void* pointer, int offset, int* byteOut)
    EEL2: extension_api("JS_Byte", void* pointer, int offset, int &byte)
    Lua: integer byte = reaper.JS_Byte(identifier pointer, integer offset)
    Python: (void pointer, Int offset, Int byteOut) = JS_Byte(pointer, offset, byteOut)

    Returns the unsigned byte at address[offset]. Offset is added as steps of 1 byte each.

    Returnvalues:
    integer byte

    Parameters:
    identifier address
    integer offset


    ^ Reaper version 5.974 JS version 0.971JS_Double

    C: void JS_Double(void* pointer, int offset, double* doubleOut)
    EEL2: extension_api("JS_Double", void* pointer, int offset, &double)
    Lua: number double = reaper.JS_Double(identifier address, integer pointer)
    Python: (void pointer, Int offset, Float doubleOut) = JS_Double(pointer, offset, doubleOut)

    Returns the 8-byte floating point value at address[offset]. Offset is added as steps of 8 bytes each.

    Returnvalues:
    number double

    Parameters:
    identifier address
    integer offset


    ^ Reaper version 5.974 JS version 0.971JS_Int

    C: void JS_Int(void* pointer, int offset, int* intOut)
    EEL2: extension_api("JS_Int", void* pointer, int offset, int &int)
    Lua: integer int = reaper.JS_Int(identifier pointer, integer offset)
    Python: (void pointer, Int offset, Int intOut) = JS_Int(pointer, offset, intOut)

    Returns the 4-byte signed integer at address[offset]. Offset is added as steps of 4 bytes each.

    Returnvalues:
    integer int

    Parameters:
    identifier address
    integer offset


    ^ Reaper version 5.974 JS version 0.971JS_Mem_Alloc

    C: void* JS_Mem_Alloc(int sizeBytes)
    EEL2: void* extension_api("JS_Mem_Alloc", int sizeBytes)
    Lua: identifier memory = reaper.JS_Mem_Alloc(integer sizeBytes)
    Python: identifier memory = JS_Mem_Alloc(Int sizeBytes)

    Allocates memory for general use by functions that require memory buffers.

    Returnvalues:
    identifier memory

    Parameters:
    integer sizeBytes


    ^ Reaper version 5.974 JS version 0.971JS_Mem_Free

    C: bool JS_Mem_Free(void* mallocPointer)
    EEL2: bool extension_api("JS_Mem_Free", void* mallocPointer)
    Lua: boolean retval = reaper.JS_Mem_Free(identifier mallocPointer)
    Python: Boolean retval = JS_Mem_Free(void mallocPointer)

    Frees memory that was previously allocated by JS_Mem_Alloc.


    Returnvalues:
    boolean retval

    Parameters:
    identifier mallocPointer


    ^ Reaper version 5.974 JS version 0.971JS_Mem_FromString

    C: bool JS_Mem_FromString(void* mallocPointer, int offset, const char* packedString, int stringLength)
    EEL2: bool extension_api("JS_Mem_FromString", void* mallocPointer, int offset, "packedString", int stringLength)
    Lua: boolean retval = reaper.JS_Mem_FromString(identifier mallocPointer, integer offset, string packedString, integer stringLength)
    Python: Boolean retval = JS_Mem_FromString(void mallocPointer, Int offset, String packedString, Int stringLength)

    Copies a packed string into a memory buffer.

    Returnvalues:
    boolean retval

    Parameters:
    identifier mallocPointer
    integer offset
    string packedString
    integer stringLength


    ^ Reaper version 5.974 JS version 0.951JS_PtrFromStr

    C: void* JS_PtrFromStr(const char* s)
    EEL2: void* extension_api("JS_PtrFromStr", "s")
    Lua: identifier ptr = reaper.JS_PtrFromStr(string s)
    Python: identifier ptr = JS_PtrFromStr(String s)



    Returnvalues:
    identifier ptr

    Parameters:
    string s


    ^ Reaper version 5.974 JS version 0.971JS_String

    C: bool JS_String(void* pointer, int offset, int lengthChars, char* bufOutNeedBig, int bufOutNeedBig_sz)
    EEL2: bool extension_api("JS_String", void* pointer, int offset, int lengthChars, #buf)
    Lua: boolean retval, string buf = reaper.JS_String(identifier pointer, integer offset, integer lengthChars)
    Python: (Boolean retval, void pointer, Int offset, Int lengthChars, String bufOutNeedBig, Int bufOutNeedBig_sz) = JS_String(pointer, offset, lengthChars, bufOutNeedBig, bufOutNeedBig_sz)

    Returns the memory contents starting at address[offset] as a packed string. Offset is added as steps of 1 byte (char) each.

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    identifier pointer
    integer offset
    integer lengthChars


    ^ Reaper version 5.62 SWS version 2.12.1SNM_GetDoubleConfigVar

    C: double SNM_GetDoubleConfigVar(const char* varname, double errvalue)
    EEL2: double extension_api("SNM_GetDoubleConfigVar", "varname", errvalue)
    Lua: number retval = reaper.SNM_GetDoubleConfigVar(string varname, number errvalue)
    Python: Float retval = SNM_GetDoubleConfigVar(String varname, Float errvalue)

    [S&M] Returns a floating-point preference (look in project prefs first, then in general prefs). Returns errvalue if failed (e.g. varname not found).

    The settings can be from the Preferences, Project settings and Render-dialog, as well as numerous other settings, as e.g. set in the context menu of the transport-area.
    Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.

    see Reaper Config Variables for valid config-vars

    Returnvalues:
    number retval
    the returned number/doublefloat-value of varname

    Parameters:
    string varname
    the name of the config-variable to be read; not case sensitive
    number errvalue
    the errorvalue that will be returned, if varname isn't a valid one

    see also:
  • SNM_GetIntConfigVar - gets value of integer-config variables
  • SNM_SetIntConfigVar - sets value of integer-config variables
  • SNM_SetDoubleConfigVar - sets value of double-float-config variables
  • get_config_var_string - gets value of string-config variables
  • SNM_SetStringConfigVar - sets value of string-config variables
  • Reaper_Config_Variables.html - a list of config-variables as used in Reaper


  • ^ Reaper version 5.80 SWS version 2.9.7SNM_GetIntConfigVar

    C: int SNM_GetIntConfigVar(const char* varname, int errvalue)
    EEL2: int extension_api("SNM_GetIntConfigVar", "varname", int errvalue)
    Lua: integer retval = reaper.SNM_GetIntConfigVar(string varname, integer errvalue)
    Python: Int retval = SNM_GetIntConfigVar(String varname, Int errvalue)

    [S&M] Returns an integer preference (look in project prefs first, then in general prefs). Returns errvalue if failed (e.g. varname not found).

    The settings can be from the Preferences, Project settings and Render-dialog, as well as numerous other settings, as e.g. set in the context menu of the transport-area.
    Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.

    see Reaper Config Variables for valid config-vars

    Returnvalues:
    integer retval
    the returned integer-value of varname

    Parameters:
    string varname
    the name of the config-variable to be read; not case sensitive
    integer errvalue
    the errorvalue that will be returned, if varname isn't a valid one

    see also:
  • SNM_SetIntConfigVar - sets value of integer-config variables
  • SNM_GetDoubleConfigVar - gets value of double-float-config variables
  • SNM_SetDoubleConfigVar - sets value of double-float-config variables
  • get_config_var_string - gets value of string-config variables
  • SNM_SetStringConfigVar - sets value of string-config variables
  • Reaper_Config_Variables.html - a list of config-variables as used in Reaper


  • ^ Reaper version 5.80 SWS version 2.12.1SNM_GetLongConfigVar

    C: bool SNM_GetLongConfigVar(const char* varname, int* highOut, int* lowOut)
    EEL2: bool extension_api("SNM_GetLongConfigVar", "varname", int &high, int &low)
    Lua: boolean retval, integer high, integer low = reaper.SNM_GetLongConfigVar(string varname)
    Python: (Boolean retval, String varname, Int highOut, Int lowOut) = SNM_GetLongConfigVar(varname, highOut, lowOut)

    [S&M] Reads a 64-bit integer preference split in two 32-bit integers (look in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found).

    see Reaper Config Variables for valid config-vars


    Returnvalues:
    boolean retval
    true, varname was found; false, varname wasn't found
    integer high
    the high-32bits of the value
    integer low
    the low-32bits of the value

    Parameters:
    string varname
    the name of the config-variable to be read; not case sensitive


    ^ Reaper version 5.62 SWS version 2.12.1SNM_SetDoubleConfigVar

    C: bool SNM_SetDoubleConfigVar(const char* varname, double newvalue)
    EEL2: bool extension_api("SNM_SetDoubleConfigVar", "varname", newvalue)
    Lua: boolean retval = reaper.SNM_SetDoubleConfigVar(string varname, number newvalue)
    Python: Boolean retval = SNM_SetDoubleConfigVar(String varname, Float newvalue)

    [S&M] Sets a floating-point preference (look in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found or newvalue out of range).

    The settings can be from the Preferences, Project settings and Render-dialog, as well as numerous other settings, as e.g. set in the context menu of the transport-area.
    Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.

    The changed settings are usually only changed within the running Reaper, but not stored in the config-files, so you need to do it manually or they get lost after Reaper is closed!

    see Reaper Config Variables for valid config-vars

    Returnvalues:
    boolean retval
    true, if setting was successful; false, if not

    Parameters:
    string varname
    the name of the config-variable to be read; not case sensitive
    number newvalue
    the new value to be set into varname

    see also:
  • SNM_GetIntConfigVar - gets value of integer-config variables
  • SNM_SetIntConfigVar - sets value of integer-config variables
  • SNM_GetDoubleConfigVar - gets value of double-float-config variables
  • get_config_var_string - gets value of string-config variables
  • SNM_SetStringConfigVar - sets value of string-config variables
  • Reaper_Config_Variables.html - a list of config-variables as used in Reaper


  • ^ Reaper version 5.62 SWS version 2.9.7SNM_SetIntConfigVar

    C: bool SNM_SetIntConfigVar(const char* varname, int newvalue)
    EEL2: bool extension_api("SNM_SetIntConfigVar", "varname", int newvalue)
    Lua: boolean retval = reaper.SNM_SetIntConfigVar(string varname, integer newvalue)
    Python: Boolean retval = SNM_SetIntConfigVar(String varname, Int newvalue)

    [S&M] Sets an integer preference (look in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found).

    Some variables are bitfields, where each bit represents e.g a checkbox in the preferences.
    The changed settings are usually only changed within the running Reaper, but not stored in the config-files, so you need to do it manually or they get lost after Reaper is closed!

    see Reaper Config Variables for valid config-vars

    Returnvalues:
    boolean retval
    true, if setting was successful, false if not

    Parameters:
    string varname
    the name of the config-variable to be read; not case sensitive
    integer newvalue
    the newly set value for varname

    see also:
  • SNM_GetIntConfigVar - gets value of integer-config variables
  • SNM_GetDoubleConfigVar - gets value of double-float-config variables
  • SNM_SetDoubleConfigVar - sets value of double-float-config variables
  • get_config_var_string - gets value of string-config variables
  • SNM_SetStringConfigVar - sets value of string-config variables
  • Reaper_Config_Variables.html - a list of config-variables as used in Reaper


  • ^ Reaper version 5.62 SWS version 2.12.1SNM_SetLongConfigVar

    C: bool SNM_SetLongConfigVar(const char* varname, int newHighValue, int newLowValue)
    EEL2: bool extension_api("SNM_SetLongConfigVar", "varname", int newHighValue, int newLowValue)
    Lua: boolean retval = reaper.SNM_SetLongConfigVar(string varname, integer newHighValue, integer newLowValue)
    Python: Boolean retval = SNM_SetLongConfigVar(String varname, Int newHighValue, Int newLowValue)

    [S&M] Sets a 64-bit integer preference from two 32-bit integers (looks in project prefs first, then in general prefs). Returns false if failed (e.g. varname not found).

    Some variables are bitfields, where each bit represents e.g a checkbox in the preferences. The changed settings are usually only changed within the running Reaper, but not stored in the config-files, so you need to do it manually or they get lost after Reaper is closed!

    see Reaper Config Variables for valid config-vars


    Returnvalues:
    boolean retval
    true, if setting was successful, false if not

    Parameters:
    string varname
    the name of the config-variable to be read; not case sensitive
    integer newHighValue
    the newly set value for varname of the high-32bits
    integer newLowValue
    the newly set value for varname of the low-32bits


    ^ Reaper version 6.02 SWS version 2.13.0.0SNM_SetStringConfigVar

    C: bool SNM_SetStringConfigVar(const char* varname, const char* newvalue)
    EEL2: bool extension_api("SNM_SetStringConfigVar", "varname", "newvalue")
    Lua: boolean retval = reaper.SNM_SetStringConfigVar(string varname, string newvalue)
    Python: Boolean retval = SNM_SetStringConfigVar(String varname, String newvalue)

    [S&M] Sets a string preference (general prefs only). Returns false if failed (e.g. varname not found or value too long).

    see Reaper Config Variables for valid config-vars

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    string varname
    the name of the config-var
    string newvalue
    the new value to set the config variable with

    see also:
  • SNM_GetIntConfigVar - gets value of integer-config variables
  • SNM_SetIntConfigVar - sets value of integer-config variables
  • SNM_GetDoubleConfigVar - gets value of double-float-config variables
  • SNM_SetDoubleConfigVar - sets value of double-float-config variables
  • get_config_var_string - gets value of string-config variables
  • Reaper_Config_Variables.html - a list of config-variables as used in Reaper


  • ^ Reaper version 5.972get_config_var_string

    C: bool get_config_var_string(const char* name, char* bufOut, int bufOut_sz)
    EEL2: bool get_config_var_string("name", #buf)
    Lua: boolean retval, string buf = reaper.get_config_var_string(string name)
    Python: (Boolean retval, String name, String bufOut, Int bufOut_sz) = RPR_get_config_var_string(name, bufOut, bufOut_sz)

    gets ini configuration variable value as string

    see the configuration-variable documentation for more details

    Returnvalues:
    boolean retval
    true, the configuration-variable is a valid string variable
    string buf
    the current value of the configuration-variable

    Parameters:
    string name
    the config-var, whose value you want

    see also:
  • SNM_GetIntConfigVar - gets value of integer-config variables
  • SNM_SetIntConfigVar - sets value of integer-config variables
  • SNM_GetDoubleConfigVar - gets value of double-float-config variables
  • SNM_SetDoubleConfigVar - sets value of double-float-config variables
  • SNM_SetStringConfigVar - sets value of string-config variables
  • Reaper_Config_Variables.html - a list of config-variables as used in Reaper


  • ^ Reaper version 5.62DeleteExtState

    C: void DeleteExtState(const char* section, const char* key, bool persist)
    EEL2: DeleteExtState("section", "key", bool persist)
    Lua: reaper.DeleteExtState(string section, string key, boolean persist)
    Python: RPR_DeleteExtState(String section, String key, Boolean persist)

    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. If persistent, the value will be deleted from the file reaper-extstate.ini in the ressources-folder.

    Parameters:
    string section
    the section, in which the value is stored
    string key
    the key, with which the value is stored
    boolean persist
    true, the value shall be deleted permanently; false, delete it only temporarily.

    see also:
  • SetExtState - sets an extstate to store information for your script
  • GetExtState - gets an extstate that stores information for your script
  • HasExtState - checks, if an extstate exists


  • ^ Reaper version 5.62GetExtState

    C: const char* GetExtState(const char* section, const char* key)
    EEL2: bool GetExtState(#retval, "section", "key")
    Lua: string extstate_value= reaper.GetExtState(string section, string key)
    Python: String retval = RPR_GetExtState(String section, String key)

    Get the extended state value for a specific section and key.

    Note: section and key are not case-sensitive

    Returnvalues:
    string extstate_value
    the value of the extstate

    Parameters:
    string section
    the section, in which the key and value is stored
    string key
    the key, that contains the value

    see also:
  • SetExtState - sets an extstate to store information for your script
  • DeleteExtState - deleted an extstate that stores information for your script
  • HasExtState - checks, if an extstate exists


  • ^ Reaper version 5.62HasExtState

    C: bool HasExtState(const char* section, const char* key)
    EEL2: bool HasExtState("section", "key")
    Lua: boolean retval = reaper.HasExtState(string section, string key)
    Python: Boolean retval = RPR_HasExtState(String section, String key)

    Returns true if there exists an extended state value for a specific section and key.

    Returnvalues:
    boolean retval
    true, extstate exists; false, extstate does not exist

    Parameters:
    string section
    the section of the extstate
    string key
    the key of the extstate

    see also:
  • SetExtState - sets an extstate to store information for your script
  • GetExtState - gets an extstate that stores information for your script
  • DeleteExtState - deleted an extstate that stores information for your script


  • ^ Reaper version 5.62SetExtState

    C: void SetExtState(const char* section, const char* key, const char* value, bool persist)
    EEL2: SetExtState("section", "key", "value", bool persist)
    Lua: reaper.SetExtState(string section, string key, string value, boolean persist)
    Python: RPR_SetExtState(String section, String key, String value, Boolean persist)

    Set the extended state value for a specific section and key.

    Persistant states are stored into the reaper-extstate.ini in the resources-folder.

    Note: section and key are not case-sensitive

    Important: always use a section-name, that is unique to you. For instance, add your name into the section-name,
    so it's less likely, that somebody else uses the same section and accidentally overwrites your keys.
    Something like: "mespotine_MyCoolScript.lua"

    Note: Do not use newlines in extstates, as they might be cut when rereading them using GetExtState!
          Find workarounds, like \n -> \\n to store and \\n -> \n to get them again.
          This is due limitations of the ini-file-format.
          
          
    Here are some of the sections used by ReaTeam-scripts and extensions. Don't use to avoid possible name-conflicts.
    If your section is missing, contact me and I'll add it too:

    "_Slicer_"
    "(Un)Collapse envelope lanes"
    "+"
    "amagalma_Chunk Viewer-Editor"
    "amagalma_Grid Settings"
    "amagalma_Horizontal zoom presets"
    "amagalma_NormalizeTracks"
    "amagalma_Take_Vol_in_TS"
    "amagalma_Vertical zoom presets"
    "amagalma_backup_limit"
    "APIhelp"
    "babag_copy_paste_item_params"
    "BR_SPK_GlueTools"
    "brso_articulate"
    "BuyOne_Check length of custom action(s).lua"
    "BuyOne_Cycle through focused FX presets backwards (guide inside).lua"
    "BuyOne_Cycle through focused FX presets forward (guide inside).lua"
    "BuyOne_Exclusive dummy toggle"
    "BuyOne_Exclusive dummy toggles.lua"
    "BuyOne_Link two FX parameters via parameter modulation (guide inside).lua"
    "cfillion_copy_paste_markers"
    "cfillion_ireascript"
    "cfillion_ramp_envelope_points"
    "cfillion_show_nudge_settings"
    "cfillion_song_switcher"
    "cfillion_stepRecordReplace"
    "cfillion_underrun_monitor"
    "colswatch"
    "com.timtam.AccessiChord"
    "cool_MK Slicer.lua"
    "cool_MK_Shaper/Stutter.lua"
    "copy_paste"
    "Default_6.0 theme adjuster"
    "Dfk Project Map"
    "Edgemeal_fx_float"
    "Edit Groups"
    "GoToTimecode_AZ"
    "js_Draw LFO"
    "js_Draw ramp"
    "js_Insert ramps"
    "js_Mouse actions"
    "js_Mouse actions"
    "js_Multi Tool"
    "js_Step pattern"
    "js_Thumbnails"
    "LFO generator"
    "Lokasenna"
    "Lokasenna's Script Compiler"
    "Lokasenna's Theory Helper"
    "Lokasenna_CC Ryder"
    "Lokasenna_Copy values from selected MIDI notes"
    "Lokasenna_Debug mode"
    "Lokasenna_GUI"
    "Lokasenna_Pedal Steel"
    "Mespotine"
    "MFX-list"
    "MIDI Inspector"
    "MK Slicer (80icio MOD).lua"
    "osara"
    "Play-Stop with memory"
    "Preset Velocity"
    "RODILAB_Color_palette"
    "RODILAB_Match_criteria"
    "RODILAB_Track_name_groups"
    "ReaL_Comps"
    "ReaNoir"
    "savegrid"
    "Select CC lanes to show"
    "SmartSplit_AZ"
    "solger_ReaLauncher"
    "Source time position v2"
    "spk77_velocity_tool"
    "take_envelope_source"
    "talagan_Distribute MIDI notes evenly"
    "ToggleWet"
    "Track-Item Name Manipulation"
    "ultraschall_api"
    "vo_pomodoro"

    Parameters:
    string section
    the section, in which the key-value is stored
    string key
    the key, which stores the value
    string value
    the new value to be set
    boolean persist
    true, means the value should be stored and reloaded the next time REAPER is opened

    see also:
  • GetExtState - gets an extstate that stores information for your script
  • HasExtState - checks, if an extstate exists
  • DeleteExtState - deleted an extstate that stores information for your script


  • ^ Reaper version 5.974 JS version 0.963JS_Localize

    C: void JS_Localize(const char* USEnglish, const char* LangPackSection, char* translationOut, int translationOut_sz)
    EEL2: extension_api("JS_Localize", "USEnglish", "LangPackSection", #translation)
    Lua: string translation = reaper.JS_Localize(string USEnglish, string LangPackSection)
    Python: (String USEnglish, String LangPackSection, String translationOut, Int translationOut_sz) = JS_Localize(USEnglish, LangPackSection, translationOut, translationOut_sz)

    Returns the translation of the given US English text, according to the currently loaded Language Pack.

    Parameters: * LangPackSection: Language Packs are divided into sections such as "common" or "DLG_102". * In Lua, by default, text of up to 1024 chars can be returned. To increase (or reduce) the default buffer size, a string and size can be included as optional 3rd and 4th arguments.

    Example: reaper.JS_Localize("Actions", "common", "", 20)


    Returnvalues:
    string translation
    the translated string, according to the currently used LangPack

    Parameters:
    string USEnglish
    the original english string
    string LangPackSection
    the section in the Reaper-language-pack-file, in which the string is locate


    ^ Reaper version 6.11LocalizeString

    C: const char* LocalizeString(const char* src_string, const char* section, int flagsOptional)
    EEL2: bool LocalizeString(#retval, "src_string", "section", int flags)
    Lua: string retval = reaper.LocalizeString(string src_string, string section, integer flags)
    Python: String retval = RPR_LocalizeString(String src_string, String section, Int flagsOptional)

    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.

    Returnvalues:
    string retval
    the localized string or the original string, if no localized string is available

    Parameters:
    string src_string
    the string, which you want to be translated
    string section
    the section in the ReaperLangPack-file, in which the string to localize is located
    integer flags
    1, set to only localize if sprintf-style formatting matches the original


    ^ Reaper version 6.76SendMIDIMessageToHardware

    C: void SendMIDIMessageToHardware(int output, const char* msg, int msg_sz)
    EEL2: SendMIDIMessageToHardware(int output, "msg")
    Lua: reaper.SendMIDIMessageToHardware(integer output, string msg)
    Python: RPR_SendMIDIMessageToHardware(Int output, String msg, Int msg_sz)

    Sends a MIDI message to output device specified by output. Message is sent in immediate mode.

    Parameters:
    integer output
    string msg


    ^ Reaper version 5.92StuffMIDIMessage

    C: void StuffMIDIMessage(int mode, int msg1, int msg2, int msg3)
    EEL2: StuffMIDIMessage(int mode, int msg1, int msg2, int msg3)
    Lua: reaper.StuffMIDIMessage(integer mode, integer msg1, integer msg2, integer msg3)
    Python: RPR_StuffMIDIMessage(Int mode, Int msg1, Int msg2, Int msg3)

    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.

    if mode is set to 1, you can send messages as control-message for Parameter Learn/Modulation and as shortcut for scripts. The parameter msg3 can be retrieved with the returnvalue val of the function reaper.get_action_context, so sending values to a script is possible that way.

    For more detailed information about the possible midi-messages you can send via StuffMIDIMessage, see: StuffMIDIMessage-docs


    Parameters:
    integer mode
    the mode for sending the midi-message
    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
    integer msg1
    modifier
    integer msg2
    note/keyname
    integer msg3
    velocity


    ^ Reaper version 5.62APIExists

    C: bool APIExists(const char* function_name)
    EEL2: bool APIExists(function_name")
    Lua: boolean func_exists = reaper.APIExists(string function_name)
    Python: Boolean retval = RPR_APIExists(String function_name)

    Returns true if function_name exists in the REAPER API

    Returnvalues:
    boolean func_exists
    true, if function_name exists, false if not

    Parameters:
    string function_name
    the name of the function you want to check the existence for


    ^ Reaper version 5.62APITest

    C: void APITest()
    EEL2: APITest()
    Lua: reaper.APITest()
    Python: RPR_APITest()

    Displays a message window with "Hello World", if the API was successfully called.


    ^ Reaper version 5.62 SWS version 2.9.7BR_Win32_ShellExecute

    C: int BR_Win32_ShellExecute(const char* operation, const char* file, const char* parameters, const char* directory, int showFlags)
    EEL2: int extension_api("BR_Win32_ShellExecute", "operation", "file", "parameters", "directory", int showFlags)
    Lua: integer retval = reaper.BR_Win32_ShellExecute(string operation, string file, string parameters, string directory, integer showFlags)
    Python: Int retval = BR_Win32_ShellExecute(String operation, String file, String parameters, String directory, Int showFlags)

    [BR] Equivalent to win32 API ShellExecute() with HWND set to main window

    Returnvalues:
    integer retval

    Parameters:
    string operation
    string file
    string parameters
    string directory
    integer showFlags


    ^ Reaper version 5.979 SWS version 2.12.1.1CF_GetClipboard

    C: void CF_GetClipboard(char* textOutNeedBig, int textOutNeedBig_sz)
    EEL2: extension_api("CF_GetClipboard", #text)
    Lua: string text = reaper.CF_GetClipboard()
    Python: (String textOutNeedBig, Int textOutNeedBig_sz) = CF_GetClipboard(textOutNeedBig, textOutNeedBig_sz)

    Read the contents of the system clipboard.

    Returnvalues:
    string text
    the content of the clipboard


    ^ Reaper version 5.62 SWS version 2.11.0CF_GetClipboardBig

    C: const char* CF_GetClipboardBig(WDL_FastString* output)
    EEL2: bool extension_api("CF_GetClipboardBig", #retval, WDL_FastString output)
    Lua: string clipboard_content = reaper.CF_GetClipboardBig(WDL_FastString output)
    Python: String retval = CF_GetClipboardBig(WDL_FastString output)

    [DEPRECATED: Use CF_GetClipboard] Read the contents of the system clipboard. See SNM_CreateFastString and SNM_DeleteFastString.


    Returnvalues:
    string clipboard_content
    the content of the clipboard

    Parameters:
    WDL_FastString output
    a faststring used by this


    ^ Reaper version 5.965 SWS version 2.12.0CF_GetSWSVersion

    C: void CF_GetSWSVersion(char* versionOut, int versionOut_sz)
    EEL2: extension_api("CF_GetSWSVersion", #version)
    Lua: string version = reaper.CF_GetSWSVersion()
    Python: (String versionOut, Int versionOut_sz) = CF_GetSWSVersion(versionOut, versionOut_sz)

    Return the current SWS version number.

    Returnvalues:
    string version


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_LocateInExplorer

    C: bool CF_LocateInExplorer(const char* file)
    EEL2: bool extension_api("CF_LocateInExplorer", "file")
    Lua: boolean retval = reaper.CF_LocateInExplorer(string file)
    Python: Boolean retval = CF_LocateInExplorer(String file)

    Select the given file in explorer/finder.

    Returnvalues:
    boolean retval

    Parameters:
    string file


    ^ Reaper version 5.62 SWS version 2.9.7CF_SetClipboard

    C: void CF_SetClipboard(const char* str)
    EEL2: extension_api("CF_SetClipboard", "str")
    Lua: reaper.CF_SetClipboard(string str)
    Python: CF_SetClipboard(String str)

    Write the given string into the system clipboard.

    Parameters:
    string str
    the string to put into the clipboard


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_ShellExecute

    C: bool CF_ShellExecute(const char* file)
    EEL2: bool extension_api("CF_ShellExecute", "file")
    Lua: boolean retval = reaper.CF_ShellExecute(string file)
    Python: Boolean retval = CF_ShellExecute(String file)

    Open the given file or URL in the default application. See also CF_LocateInExplorer.


    Returnvalues:
    boolean retval

    Parameters:
    string file


    ^ Reaper version 5.62ExecProcess

    C: const char* ExecProcess(const char* cmdline, int timeoutmsec)
    EEL2: bool ExecProcess(#retval, "cmdline", int timeoutmsec)
    Lua: string command_output = reaper.ExecProcess(string cmdline, integer timeoutmsec)
    Python: String retval = RPR_ExecProcess(String cmdline, Int timeoutmsec)

    Executes command line, returns NULL on total failure, otherwise the return value, a newline, and then the output of the command.

    Commands executed with ExecProcess() don't benefit from PATH-system-variables. That said, you must give the full path to a command, even if you can usually just type the command into a shell. You also may need to set a codepage manually to get the correct character-encoding. So in some cases, writing a batch-script and executing it with ExecProcess() might be a good idea.

    Note: when using this in Lua, you need to take care of the right file-separators: / on Mac and Linux or \ on Windows. Unlike other Lua/Lua-used-ReaScript-functions, this will not convert the file-separators to the current system's equivalent.
    Keep that in mind, when doing multi-platform-scripts!

    The base-directory is Reaper's appdirectory.

    On Windows, you can not use command-line-internal commands, like dir or cd, directly. To use them, you need to use cmd.exe.
    You can do it like:

    -    "$Path_to_Command_Exe\\cmd.exe /Q /C command"

    where "/Q" executes cmd.exe silently(otherwise a command-line-window pops up; but output of commands will show anyway) and "/C command" executes command.

    To get a full directory-listing of c:\\ in a file c:\\directorylisting.txt, you can use:
    -   "c:\\windows\\system32\\cmd.exe /Q /C dir c:\\ >c:\\directorylisting.txt"

    Returnvalues:
    string command_output
    return value, newline and output of the command; otherwise nil

    Parameters:
    string cmdline
    the command to execute
    integer timeoutmsec
    how long to wait, until termination of execution
    positive value, the time to wait for execution in milliseconds
       0, command will be allowed to run indefinitely (recommended for large amounts of returned output).
      -1, for no wait/terminate
      -2, for no wait and minimize


    ^ Reaper version 6.18GetAppVersion

    C: const char* GetAppVersion()
    EEL2: bool GetAppVersion(#retval)
    Lua: string reaper_app_version = reaper.GetAppVersion()
    Python: String retval = RPR_GetAppVersion()

    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

    Returnvalues:
    string reaper_app_version
    the returned version-number of Reaper


    ^ Reaper version 5.62GetExePath

    C: const char* GetExePath()
    EEL2: bool GetExePath(#retval)
    Lua: string path = reaper.GetExePath()
    Python: String retval = RPR_GetExePath()

    returns path of REAPER.exe (not including EXE), i.e. C:\Program Files\REAPER

    Returnvalues:
    string path
    the path to the reaper.exe or reaper.app


    ^ Reaper version 6.18GetOS

    C: const char* GetOS()
    EEL2: bool GetOS(#retval)
    Lua: string operating_system = reaper.GetOS()
    Python: String retval = RPR_GetOS()

    Returns the current operating-system. Good for determining, e.g. the correct filesystem-separators.

    Returnvalues:
    string operating_system
    "Win32", "Win64", "OSX32", "OSX64", "macOS-arm64" or "Other"


    ^ Reaper version 5.62GetResourcePath

    C: const char* GetResourcePath()
    EEL2: bool GetResourcePath(#retval)
    Lua: string resource_path = reaper.GetResourcePath()
    Python: String retval = RPR_GetResourcePath()

    returns path where ini files are stored, other things are in subdirectories.

    When resourcepath is equal to app-path(see GetExePath), it is an indicator that Reaper is installed as portable installation.

    Returnvalues:
    string resource_path
    the path to the resource-folder

    see also:
  • GetExePath - returns the path of the reaper.exe/reaper.app


  • ^ Reaper version 5.62IsMediaExtension

    C: bool IsMediaExtension(const char* ext, bool wantOthers)
    EEL2: bool IsMediaExtension("ext", bool wantOthers)
    Lua: boolean is_mediaextension = reaper.IsMediaExtension(string ext, boolean wantOthers)
    Python: Boolean retval = RPR_IsMediaExtension(String ext, Boolean wantOthers)

    Tests a file extension (i.e. "wav" or "mid") to see if it's a media extension.
    If wantOthers is set, then "RPP", "TXT" and other project-type formats will also pass.

    Returnvalues:
    boolean is_mediaextension

    Parameters:
    string ext
    boolean wantOthers


    ^ Reaper version 5.62Main_UpdateLoopInfo

    C: void Main_UpdateLoopInfo(int ignoremask)
    EEL2: Main_UpdateLoopInfo(int ignoremask)
    Lua: reaper.Main_UpdateLoopInfo(integer ignoremask)
    Python: RPR_Main_UpdateLoopInfo(Int ignoremask)



    Parameters:
    integer ignoremask


    ^ Reaper version 5.965 SWS version 2.13.2.0NF_Base64_Decode

    C: bool NF_Base64_Decode(const char* base64Str, char* decodedStrOutNeedBig, int decodedStrOutNeedBig_sz)
    EEL2: bool extension_api("NF_Base64_Decode", "base64Str", #decodedStr)
    Lua: boolean retval, string decodedStr = reaper.NF_Base64_Decode(string base64Str)
    Python: (Boolean retval, String base64Str, String decodedStrOutNeedBig, Int decodedStrOutNeedBig_sz) = NF_Base64_Decode(base64Str, decodedStrOutNeedBig, decodedStrOutNeedBig_sz)

    Decodes a Base64-string.

    Returns true on success.

    Returnvalues:
    boolean retval
    string decodeStr

    Parameters:
    string base64Str


    ^ Reaper version 5.965 SWS version 2.13.2.0NF_Base64_Encode

    C: void NF_Base64_Encode(const char* str, int str_sz, bool usePadding, char* encodedStrOutNeedBig, int encodedStrOutNeedBig_sz)
    EEL2: extension_api("NF_Base64_Encode", "str", bool usePadding, #encodedStr)
    Lua: string encodedStr = reaper.NF_Base64_Encode(string str, boolean usePadding)
    Python: (String str, Int str_sz, Boolean usePadding, String encodedStrOutNeedBig, Int encodedStrOutNeedBig_sz) = NF_Base64_Encode(str, str_sz, usePadding, encodedStrOutNeedBig, encodedStrOutNeedBig_sz)

    Encodes a string into Base64-encoding

    Input string may contain null bytes in REAPER 6.44 or newer.

    Note: Doesn't allow padding in the middle (e.g. concatenated encoded strings), doesn't allow newlines.

    Returnvalues:
    string decodeStr

    Parameters:
    string str
    boolean usePadding


    ^ Reaper version 5.62PreventUIRefresh

    C: void PreventUIRefresh(int prevent_count)
    EEL2: PreventUIRefresh(int prevent_count)
    Lua: reaper.PreventUIRefresh(integer prevent_count)
    Python: RPR_PreventUIRefresh(Int prevent_count)

    adds prevent_count to the UI refresh prevention state;

    Important: always add then remove the same amount, or major disfunction will occur
    It's important to add first and remove second, as other functions you use inbetween might
    change this counter as well.
    If you remove first and then add later, UI-refresh might be turned on again by another function used
    causing unwanted flicker!


    Parameters:
    integer prevent_count


    ^ Reaper version 6.29ReaScriptError

    C: void ReaScriptError(const char* errmsg)
    EEL2: ReaScriptError("errmsg")
    Lua: reaper.ReaScriptError(string errmsg)
    Python: RPR_ReaScriptError(String errmsg)

    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.

    Parameters:
    string errmsg
    the message to show


    ^ Reaper version 5.62 SWS version 2.9.7SNM_CreateFastString

    C: WDL_FastString* SNM_CreateFastString(const char* str)
    EEL2: WDL_FastString extension_api("SNM_CreateFastString", "str")
    Lua: WDL_FastString fstr = reaper.SNM_CreateFastString(string str)
    Python: WDL_FastString fstr = SNM_CreateFastString(String str)

    [S&M] Instantiates a new "fast string". You must delete this string, see SNM_DeleteFastString.


    Returnvalues:
    WDL_FastString fstr

    Parameters:
    string str


    ^ Reaper version 5.62 SWS version 2.9.7SNM_DeleteFastString

    C: void SNM_DeleteFastString(WDL_FastString* str)
    EEL2: extension_api("SNM_DeleteFastString", WDL_FastString str)
    Lua: reaper.SNM_DeleteFastString(WDL_FastString str)
    Python: SNM_DeleteFastString(WDL_FastString str)

    [S&M] Deletes a "fast string" instance.

    Parameters:
    WDL_FastString str


    ^ Reaper version 5.62 SWS version 2.9.7SNM_GetFastString

    C: const char* SNM_GetFastString(WDL_FastString* str)
    EEL2: bool extension_api("SNM_GetFastString", #retval, WDL_FastString str)
    Lua: string str = reaper.SNM_GetFastString(WDL_FastString str)
    Python: String retval = SNM_GetFastString(WDL_FastString str)

    [S&M] Gets the "fast string" content.

    Returnvalues:
    string str

    Parameters:
    WDL_FastString str


    ^ Reaper version 5.62 SWS version 2.9.7SNM_GetFastStringLength

    C: int SNM_GetFastStringLength(WDL_FastString* str)
    EEL2: int extension_api("SNM_GetFastStringLength", WDL_FastString str)
    Lua: integer retval = reaper.SNM_GetFastStringLength(WDL_FastString str)
    Python: Int retval = SNM_GetFastStringLength(WDL_FastString str)

    [S&M] Gets the "fast string" length.

    Returnvalues:
    integer retval

    Parameters:
    WDL_FastString str


    ^ Reaper version 5.62 SWS version 2.9.7SNM_GetSetObjectState

    C: bool SNM_GetSetObjectState(void* obj, WDL_FastString* state, bool setnewvalue, bool wantminimalstate)
    EEL2: bool extension_api("SNM_GetSetObjectState", void* obj, WDL_FastString state, bool setnewvalue, bool wantminimalstate)
    Lua: boolean retval = reaper.SNM_GetSetObjectState(identifier obj, WDL_FastString state, boolean setnewvalue, boolean wantminimalstate)
    Python: Boolean retval = SNM_GetSetObjectState(void obj, WDL_FastString state, Boolean setnewvalue, Boolean wantminimalstate)

    [S&M] Gets or sets the state of a track, an item or an envelope. The state chunk size is unlimited. Returns false if failed.
    When getting a track state (and when you are not interested in FX data), you can use wantminimalstate=true to radically reduce the length of the state. Do not set such minimal states back though, this is for read-only applications!
    Note: unlike the native GetSetObjectState, calling to FreeHeapPtr() is not required.

    Returnvalues:
    boolean retval

    Parameters:
    identifier obj
    WDL_FastString state
    boolean setnewvalue
    boolean wantminimalstate


    ^ Reaper version 5.62 SWS version 2.9.7SNM_SetFastString

    C: WDL_FastString* SNM_SetFastString(WDL_FastString* str, const char* newstr)
    EEL2: WDL_FastString extension_api("SNM_SetFastString", WDL_FastString str, "newstr")
    Lua: WDL_FastString fstr = reaper.SNM_SetFastString(WDL_FastString str, string newstr)
    Python: WDL_FastString fstr = SNM_SetFastString(WDL_FastString str, String newstr)

    [S&M] Sets the "fast string" content. Returns str for facility.

    Returnvalues:
    WDL_FastString fstr

    Parameters:
    WDL_FastString str
    string newstr


    ^ Reaper version 5.62ValidatePtr

    C: bool ValidatePtr(void* pointer, const char* ctypename)
    EEL2: bool ValidatePtr(void* pointer, "ctypename")
    Lua: boolean retval = reaper.ValidatePtr(identifier pointer, string ctypename)
    Python: Boolean retval = RPR_ValidatePtr(void pointer, String ctypename)

    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*.

    see ValidatePtr2

    Returnvalues:
    boolean retval
    true, the object/pointer is of ctypename; false, it is not

    Parameters:
    identifier pointer
    a pointer to the object to check for. In Lua or Python, you just give the object to check as this parameter.
    string ctypename
    the type of project to check for(given as a pointer)

    see also:
  • ValidatePtr2 - checks, if a pointer is a valid one within a project


  • ^ Reaper version 5.62ValidatePtr2

    C: bool ValidatePtr2(ReaProject* proj, void* pointer, const char* ctypename)
    EEL2: bool ValidatePtr2(ReaProject proj, void* pointer, "ctypename")
    Lua: boolean retval = reaper.ValidatePtr2(ReaProject proj, identifier pointer, string ctypename)
    Python: Boolean retval = RPR_ValidatePtr2(ReaProject proj, void pointer, String ctypename)

    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*.

    Returnvalues:
    boolean retval
    true, the object/pointer is of ctypename; false, it is not

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    identifier pointer
    a pointer to the object to check for. In Lua or Python, you just give the object to check as this parameter.
    string ctypename
    the type of project to check for(given as a pointer)


    ^ Reaper version 5.62genGuid

    C: void genGuid(GUID* g)
    EEL2: genGuid(#gGUID)
    Lua: string gGUID = reaper.genGuid(string gGUID)
    Python: RPR_genGuid(GUID g)

    Generates a GUID.

    Returnvalues:
    string gGUID
    the generated GUID

    Parameters:
    string gGUID
    set it to ""


    ^ Reaper version 5.62stringToGuid

    C: void stringToGuid(const char* str, GUID* g)
    EEL2: stringToGuid("str", #gGUID)
    Lua: string gGUID = reaper.stringToGuid(string str, string gGUID)
    Python: RPR_stringToGuid(String str, GUID g)



    Returnvalues:
    string gGUID

    Parameters:
    string str
    string gGUID


    ^ Reaper version 5.62time_precise

    C: double time_precise()
    Lua: number time_stamp = reaper.time_precise()
    Python: Float retval = RPR_time_precise()

    Gets a precise system timestamp in seconds.

    For EEL-programming, see eel_time_precise.


    Returnvalues:
    number time_stamp
    the system-timestamp in seconds with a precision of 7 digits


    ^ Reaper version 5.62ClearConsole

    C: void ClearConsole()
    EEL2: ClearConsole()
    Lua: reaper.ClearConsole()
    Python: RPR_ClearConsole()

    Clear the ReaScript console.

    see also:
  • ShowConsoleMsg - for printing messages into the ReaScript-console


  • ^ Reaper version 5.62ShowConsoleMsg

    C: void ShowConsoleMsg(const char* msg)
    EEL2: ShowConsoleMsg("msg")
    Lua: reaper.ShowConsoleMsg(string msg)
    Python: RPR_ShowConsoleMsg(String msg)

    Show a message to the user (also useful for debugging). Send "\n" for newline, "" to clear the console.

    Parameters:
    string msg
    a message to be shown in ReaConsole

    see also:
  • ClearConsole - clears the ReaScript-console window


  • ^ Reaper version 6.72CountActionShortcuts

    C: int retval = CountActionShortcuts(KbdSectionInfo* section, int cmdID)
    EEL2: int retval = CountActionShortcuts(KbdSectionInfo section, int cmdID)
    Lua: integer retval = reaper.CountActionShortcuts(KbdSectionInfo section, integer cmdID)
    Python: Int retval = RPR_CountActionShortcuts(KbdSectionInfo section, Int cmdID)

    Returns the number of shortcuts that exist for the given command ID.

    Returnvalues:
    integer retval
    the number of available shortcuts for this action

    Parameters:
    KbdSectionInfo section
    the section, in which the action is located, use retval of SectionFromUniqueID for this parameter
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the action command-id of the action, whose shortcuts you want to count

    see also:
  • GetActionShortcutDesc - for getting the description of the shortcut
  • DeleteActionShortcut - for deleting a shortcut
  • DoActionShortcutDialog - for opening the add shortcut-dialog
  • SectionFromUniqueID - get the section, that you want to pass to this function


  • ^ Reaper version 6.71DeleteActionShortcut

    C: bool retval = DeleteActionShortcut(KbdSectionInfo* section, int cmdID, int shortcutidx)
    EEL2: bool retval = DeleteActionShortcut(KbdSectionInfo section, int cmdID, int shortcutidx)
    Lua: boolean retval = reaper.DeleteActionShortcut(KbdSectionInfo section, integer cmdID, integer shortcutidx)
    Python: Boolean retval = RPR_DeleteActionShortcut(KbdSectionInfo section, Int cmdID, Int shortcutidx)

    Delete the specific shortcut for the given command ID.

    Returnvalues:
    boolean retval
    true, such shortcuts exists; false, no such shortcut

    Parameters:
    KbdSectionInfo section
    the section, in which the action is located
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the action command-id of the action, whose shortcut you want to delete
    integer shortcutidx
    the index of the shortcut

    see also:
  • CountActionShortcuts - for counting the available shortcuts of an action
  • GetActionShortcutDesc - for getting a shortcut's description
  • DoActionShortcutDialog - for opening the add shortcut-dialog
  • SectionFromUniqueID - get the section, that you want to pass to this function


  • ^ Reaper version 6.71DoActionShortcutDialog

    C: bool retval = DoActionShortcutDialog(HWND hwnd, KbdSectionInfo* section, int cmdID, int shortcutidx)
    EEL2: bool retval = DoActionShortcutDialog(HWND hwnd, KbdSectionInfo section, int cmdID, int shortcutidx)
    Lua: boolean retval = reaper.DoActionShortcutDialog(HWND hwnd, KbdSectionInfo section, integer cmdID, integer shortcutidx)
    Python: Boolean retval = RPR_DoActionShortcutDialog(HWND hwnd, KbdSectionInfo section, Int cmdID, Int shortcutidx)

    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.

    Returnvalues:
    boolean retval
    true, shortcuts has been edited/added; false, not added/edited

    Parameters:
    HWND hwnd
    unknown, which hwnd to pass over here
    KbdSectionInfo section
    the section, in which the action is located
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the action command-id of the action, whose shortcut you want to delete
    integer shortcutidx
    the index of the shortcut to add/edit

    see also:
  • CountActionShortcuts - for counting the available shortcuts of an action
  • GetActionShortcutDesc - for getting a shortcut's description
  • DeleteActionShortcutDialog - for deleting a shortcut
  • SectionFromUniqueID - get the section, that you want to pass to this function


  • ^ Reaper version 6.72GetActionShortcutDesc

    C: bool GetActionShortcutDesc(KbdSectionInfo* section, int cmdID, int shortcutidx, char* descOut, int descOut_sz)
    EEL2: bool GetActionShortcutDesc(KbdSectionInfo section, int cmdID, int shortcutidx, #desc)
    Lua: boolean retval, string desc = reaper.GetActionShortcutDesc(KbdSectionInfo section, integer cmdID, integer shortcutidx)
    Python: (Boolean retval, KbdSectionInfo section, Int cmdID, Int shortcutidx, String descOut, Int descOut_sz) = RPR_GetActionShortcutDesc(section, cmdID, shortcutidx, descOut, descOut_sz)

    Get the text description of a specific shortcut for the given command ID.

    Returnvalues:
    boolean retval
    true, such shortcuts exists; false, no such shortcut
    string desc
    the description of the shortcut

    Parameters:
    KbdSectionInfo section
    the section, in which the action is located
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the action command-id of the action, whose shortcut's description you want
    integer shortcutidx
    the index of the shortcut

    see also:
  • CountActionShortcuts - for counting the available shortcuts of an action
  • DeleteActionShortcut - for deleting a shortcut
  • DoActionShortcutDialog - for opening the add shortcut-dialog
  • SectionFromUniqueID - get the section, that you want to pass to this function


  • ^ Reaper version 6.71SectionFromUniqueID

    C: KbdSectionInfo* section = SectionFromUniqueID(int uniqueID)
    EEL2: KbdSectionInfo section = SectionFromUniqueID(int uniqueID)/functioncall> KbdSectionInfo section = reaper.SectionFromUniqueID(integer uniqueID)
    Python: KbdSectionInfo section = RPR_SectionFromUniqueID(Int uniqueID)

    Delete the specific shortcut for the given command ID.

    Returnvalues:
    KbdSectionInfo section
    the section-object, that can be used for the various shortcut-functions

    Parameters:
    integer uniqueID
    the section, in which the action is located
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer

    see also:
  • CountActionShortcuts - counts the number of shortcuts available for a command
  • GetActionShortcutDesc - for getting the description of the shortcut
  • DeleteActionShortcut - for deleting a shortcut
  • DoActionShortcutDialog - for opening the add shortcut-dialog


  • ^ Reaper version 5.62 SWS version 2.9.7BR_GetClosestGridDivision

    C: double BR_GetClosestGridDivision(double position)
    EEL2: double extension_api("BR_GetClosestGridDivision", position)
    Lua: number retval = reaper.BR_GetClosestGridDivision(number position)
    Python: Float retval = BR_GetClosestGridDivision(Float position)

    [BR] Get closest grid division to position.

    Note that this functions is different from SnapToGrid in two regards. SnapToGrid() needs snap enabled to work and this one works always.
    Secondly, grid divisions are different from grid lines because some grid lines may be hidden due to zoom level - this function ignores grid line visibility and always searches for the closest grid division at given position.

    For more grid division functions, see BR_GetNextGridDivision and BR_GetPrevGridDivision.

    Returnvalues:
    number retval

    Parameters:
    number position

    see also:
  • BR_GetNextGridDivision - gets the next grid division after position
  • BR_GetPrevGridDivision - gets the previous grid division before position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_GetNextGridDivision

    C: double BR_GetNextGridDivision(double position)
    EEL2: double extension_api("BR_GetNextGridDivision", position)
    Lua: number retval = reaper.BR_GetNextGridDivision(number position)
    Python: Float retval = BR_GetNextGridDivision(Float position)

    [BR] Get next grid division after the time position. For more grid divisions function, see BR_GetClosestGridDivision and BR_GetPrevGridDivision.


    Returnvalues:
    number retval

    Parameters:
    number position


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetPrevGridDivision

    C: double BR_GetPrevGridDivision(double position)
    EEL2: double extension_api("BR_GetPrevGridDivision", position)
    Lua: number retval = reaper.BR_GetPrevGridDivision(number position)
    Python: Float retval = BR_GetPrevGridDivision(Float position)

    [BR] Get previous grid division before the time position. For more grid division functions, see BR_GetClosestGridDivision and BR_GetNextGridDivision.


    Returnvalues:
    number retval

    Parameters:
    number position


    ^ Reaper version 5.62TimeMap2_GetDividedBpmAtTime

    C: double TimeMap2_GetDividedBpmAtTime(ReaProject* proj, double time)
    EEL2: double TimeMap2_GetDividedBpmAtTime(ReaProject proj, time)
    Lua: number retval = reaper.TimeMap2_GetDividedBpmAtTime(ReaProject proj, number time)
    Python: Float retval = RPR_TimeMap2_GetDividedBpmAtTime(ReaProject proj, Float time)

    get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures)

    Returnvalues:
    number retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number time


    ^ Reaper version 5.62TimeMap2_GetNextChangeTime

    C: double TimeMap2_GetNextChangeTime(ReaProject* proj, double time)
    EEL2: double TimeMap2_GetNextChangeTime(ReaProject proj, time)
    Lua: number retval = reaper.TimeMap2_GetNextChangeTime(ReaProject proj, number time)
    Python: Float retval = RPR_TimeMap2_GetNextChangeTime(ReaProject proj, Float time)

    when does the next time map (tempo or time sig) change occur

    Returnvalues:
    number retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number time


    ^ Reaper version 5.62TimeMap2_QNToTime

    C: double TimeMap2_QNToTime(ReaProject* proj, double qn)
    EEL2: double TimeMap2_QNToTime(ReaProject proj, qn)
    Lua: number retval = reaper.TimeMap2_QNToTime(ReaProject proj, number qn)
    Python: Float retval = RPR_TimeMap2_QNToTime(ReaProject proj, Float qn)

    converts project QN position to time.

    Returnvalues:
    number retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number qn


    ^ Reaper version 5.62TimeMap2_beatsToTime

    C: double TimeMap2_beatsToTime(ReaProject* proj, double tpos, const int* measuresInOptional)
    EEL2: double TimeMap2_beatsToTime(ReaProject proj, tpos, optional int measuresIn)
    Lua: number retval = reaper.TimeMap2_beatsToTime(ReaProject proj, number tpos, optional integer measuresIn)
    Python: Float retval = RPR_TimeMap2_beatsToTime(ReaProject proj, Float tpos, const int measuresInOptional)

    convert a beat position (or optionally a beats+measures if measures is non-NULL) to time.

    Returnvalues:
    number retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number tpos
    optional integer measuresIn


    ^ Reaper version 5.62TimeMap2_timeToBeats

    C: double TimeMap2_timeToBeats(ReaProject* proj, double tpos, int* measuresOutOptional, int* cmlOutOptional, double* fullbeatsOutOptional, int* cdenomOutOptional)
    EEL2: double TimeMap2_timeToBeats(ReaProject proj, tpos, optional int &measures, optional int &cml, optional &fullbeats, optional int &cdenom)
    Lua: number retval, optional integer measures, optional integer cml, optional number fullbeats, optional integer cdenom = reaper.TimeMap2_timeToBeats(ReaProject proj, number tpos)
    Python: (Float retval, ReaProject proj, Float tpos, Int measuresOutOptional, Int cmlOutOptional, Float fullbeatsOutOptional, Int cdenomOutOptional) = RPR_TimeMap2_timeToBeats(proj, tpos, measuresOutOptional, cmlOutOptional, fullbeatsOutOptional, cdenomOutOptional)

    convert a time into beats.
    if measures is non-NULL, measures will be set to the measure count, return value will be beats since measure.
    if cml is non-NULL, will be set to current measure length in beats (i.e. time signature numerator)
    if fullbeats is non-NULL, and measures is non-NULL, fullbeats will get the full beat count (same value returned if measures is NULL).
    if cdenom is non-NULL, will be set to the current time signature denominator.

    Returnvalues:
    number retval
    optional integer measures
    optional integer cml
    optional number fullbeats
    optional integer cdenom

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number tpos


    ^ Reaper version 5.62TimeMap2_timeToQN

    C: double TimeMap2_timeToQN(ReaProject* proj, double tpos)
    EEL2: double TimeMap2_timeToQN(ReaProject proj, tpos)
    Lua: number retval = reaper.TimeMap2_timeToQN(ReaProject proj, number tpos)
    Python: Float retval = RPR_TimeMap2_timeToQN(ReaProject proj, Float tpos)

    converts project time position to QN position.

    Returnvalues:
    number retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number tpos


    ^ Reaper version 5.62TimeMap_GetDividedBpmAtTime

    C: double TimeMap_GetDividedBpmAtTime(double time)
    EEL2: double TimeMap_GetDividedBpmAtTime(time)
    Lua: number retval = reaper.TimeMap_GetDividedBpmAtTime(number time)
    Python: Float retval = RPR_TimeMap_GetDividedBpmAtTime(Float time)

    get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures)

    Returnvalues:
    number retval

    Parameters:
    number time


    ^ Reaper version 5.62TimeMap_GetMeasureInfo

    C: double TimeMap_GetMeasureInfo(ReaProject* proj, int measure, double* qn_startOut, double* qn_endOut, int* timesig_numOut, int* timesig_denomOut, double* tempoOut)
    EEL2: double TimeMap_GetMeasureInfo(ReaProject proj, int measure, &qn_start, &qn_end, int ×ig_num, int ×ig_denom, &tempo)
    Lua: number retval, number qn_start, number qn_end, integer timesig_num, integer timesig_denom, number tempo = reaper.TimeMap_GetMeasureInfo(ReaProject proj, integer measure)
    Python: (Float retval, ReaProject proj, Int measure, Float qn_startOut, Float qn_endOut, Int timesig_numOut, Int timesig_denomOut, Float tempoOut) = RPR_TimeMap_GetMeasureInfo(proj, measure, qn_startOut, qn_endOut, timesig_numOut, timesig_denomOut, tempoOut)

    Get the QN position and time signature information for the start of a measure. Return the time in seconds of the measure start.

    Returnvalues:
    number retval
    number qn_start
    number qn_end
    integer timesig_num
    integer timesig_denom
    number tempo

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer measure


    ^ Reaper version 5.62TimeMap_GetMetronomePattern

    C: int TimeMap_GetMetronomePattern(ReaProject* proj, double time, char* pattern, int pattern_sz)
    EEL2: int TimeMap_GetMetronomePattern(ReaProject proj, time, #pattern)
    Lua: integer retval, string pattern = reaper.TimeMap_GetMetronomePattern(ReaProject proj, number time, string pattern)
    Python: (Int retval, ReaProject proj, Float time, String pattern, Int pattern_sz) = RPR_TimeMap_GetMetronomePattern(proj, time, pattern, pattern_sz)

    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.

    Returnvalues:
    boolean retval
    string pattern

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number time
    string pattern


    ^ Reaper version 5.62TimeMap_GetTimeSigAtTime

    C: void TimeMap_GetTimeSigAtTime(ReaProject* proj, double time, int* timesig_numOut, int* timesig_denomOut, double* tempoOut)
    EEL2: TimeMap_GetTimeSigAtTime(ReaProject proj, time, int ×ig_num, int ×ig_denom, &tempo)
    Lua: integer timesig_num, integer timesig_denom, number tempo = reaper.TimeMap_GetTimeSigAtTime(ReaProject proj, number time)
    Python: (ReaProject proj, Float time, Int timesig_numOut, Int timesig_denomOut, Float tempoOut) = RPR_TimeMap_GetTimeSigAtTime(proj, time, timesig_numOut, timesig_denomOut, tempoOut)

    get the effective time signature and tempo

    Returnvalues:
    integer timesig_num
    integer timesig_denom
    number tempo

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number time


    ^ Reaper version 5.62TimeMap_QNToMeasures

    C: int TimeMap_QNToMeasures(ReaProject* proj, double qn, double* qnMeasureStartOutOptional, double* qnMeasureEndOutOptional)
    EEL2: int TimeMap_QNToMeasures(ReaProject proj, qn, optional &qnMeasureStart, optional &qnMeasureEnd)
    Lua: integer retval, optional number qnMeasureStart, optional number qnMeasureEnd = reaper.TimeMap_QNToMeasures(ReaProject proj, number qn)
    Python: (Int retval, ReaProject proj, Float qn, Float qnMeasureStartOutOptional, Float qnMeasureEndOutOptional) = RPR_TimeMap_QNToMeasures(proj, qn, qnMeasureStartOutOptional, qnMeasureEndOutOptional)

    Find which measure the given QN position falls in.

    Returnvalues:
    integer retval
    optional number qnMeasureStart
    optional number qnMeasureEnd

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number qn


    ^ Reaper version 5.62TimeMap_QNToTime

    C: double TimeMap_QNToTime(double qn)
    EEL2: double TimeMap_QNToTime(qn)
    Lua: number retval = reaper.TimeMap_QNToTime(number qn)
    Python: Float retval = RPR_TimeMap_QNToTime(Float qn)

    converts project QN position to time.

    Returnvalues:
    number retval

    Parameters:
    number qn


    ^ Reaper version 5.62TimeMap_QNToTime_abs

    C: double TimeMap_QNToTime_abs(ReaProject* proj, double qn)
    EEL2: double TimeMap_QNToTime_abs(ReaProject proj, qn)
    Lua: number retval = reaper.TimeMap_QNToTime_abs(ReaProject proj, number qn)
    Python: Float retval = RPR_TimeMap_QNToTime_abs(ReaProject proj, Float qn)

    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


    Returnvalues:
    number retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number qn


    ^ Reaper version 6.43TimeMap_curFrameRate

    C: double TimeMap_curFrameRate(ReaProject* proj, bool* dropFrameOut)
    EEL2: double TimeMap_curFrameRate(ReaProject proj, bool &dropFrame)
    Lua: number retval, boolean dropFrame = reaper.TimeMap_curFrameRate(ReaProject proj)
    Python: (Float retval, ReaProject proj, Boolean dropFrameOut) = RPR_TimeMap_curFrameRate(proj, dropFrameOut)

    Gets project framerate, and optionally whether it is drop-frame timecode

    Returnvalues:
    number retval
    boolean dropFrame

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62TimeMap_timeToQN

    C: double TimeMap_timeToQN(double tpos)
    EEL2: double TimeMap_timeToQN(tpos)
    Lua: number retval = reaper.TimeMap_timeToQN(number tpos)
    Python: Float retval = RPR_TimeMap_timeToQN(Float tpos)

    converts project QN position to time.

    Returnvalues:
    number retval

    Parameters:
    number tpos


    ^ Reaper version 5.62TimeMap_timeToQN_abs

    C: double TimeMap_timeToQN_abs(ReaProject* proj, double tpos)
    EEL2: double TimeMap_timeToQN_abs(ReaProject proj, tpos)
    Lua: number retval = reaper.TimeMap_timeToQN_abs(ReaProject proj, number tpos)
    Python: Float retval = RPR_TimeMap_timeToQN_abs(ReaProject proj, Float tpos)

    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


    Returnvalues:
    number retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number tpos


    ^ Reaper version 5.62ColorFromNative

    C: void ColorFromNative(int col, int* rOut, int* gOut, int* bOut)
    EEL2: ColorFromNative(int col, int &r, int &g, int &b)
    Lua: integer r, integer g, integer b = reaper.ColorFromNative(integer col)
    Python: (Int col, Int rOut, Int gOut, Int bOut) = RPR_ColorFromNative(col, rOut, gOut, bOut)

    Extract RGB values from an OS dependent color.

    As Reaper treats colors differently on Mac and Windows, you should always use ColorFromNative and ColorToNative.

    Returnvalues:
    integer r
    the value for red, from 0 to 255
    integer g
    the value for green, from 0 to 255
    integer b
    the value for blue, from 0 to 255

    Parameters:
    integer col
    the colorvalue to convert from

    see also:
  • ColorToNative - for converting r-g-b-values to a native-color value


  • ^ Reaper version 5.62ColorToNative

    C: int ColorToNative(int r, int g, int b)
    EEL2: int ColorToNative(int r, int g, int b)
    Lua: integer col = reaper.ColorToNative(integer r, integer g, integer b)
    Python: Int retval = RPR_ColorToNative(Int r, Int g, Int b)

    Make an OS dependent color from RGB values (e.g. RGB() macro on Windows). r,g and b are in [0..255].
    As Reaper treats colors differently on Mac and Windows, you should always use ColorFromNative and ColorToNative.

    When using the returned colorvalue, you need to add |0x1000000 at the end of it, like ColorToNative(20,30,40)|0x1000000.

    Returnvalues:
    integer col
    the correct colorvalue, fitting to your system.

    Parameters:
    integer r
    the value for red, from 0 to 255
    integer g
    the value for green, from 0 to 255
    integer b
    the value for blue, from 0 to 255

    see also:
  • ColorFromNative - for converting a native color-calue into its r-g-b-representation


  • ^ Reaper version 5.62DB2SLIDER

    C: double DB2SLIDER(double x)
    EEL2: double DB2SLIDER(x)
    Lua: number slider_value = reaper.DB2SLIDER(number x)
    Python: Float retval = RPR_DB2SLIDER(Float x)

    Converts dB-value into a slider-value. Good for converting envelope-point-values.

    Returnvalues:
    number slider_value
    the slider-value

    Parameters:
    number x
    the dB-value to be converted. Minimum -332db for position 0


    ^ Reaper version 5.62SLIDER2DB

    C: double SLIDER2DB(double y)
    EEL2: double SLIDER2DB(y)
    Lua: number db_value = reaper.SLIDER2DB(number y)
    Python: Float retval = RPR_SLIDER2DB(Float y)

    Convert slider-value to it's dB-value-equivalent.

    Returnvalues:
    number db_value
    the slider-value, you want to convert to dB

    Parameters:
    number y
    the dB-value


    ^ Reaper version 5.62format_timestr

    C: void format_timestr(double tpos, char* buf, int buf_sz)
    EEL2: format_timestr(tpos, #buf)
    Lua: string formatted_time = reaper.format_timestr(number tpos, string buf)
    Python: (Float tpos, String buf, Int buf_sz) = RPR_format_timestr(tpos, buf, buf_sz)

    Creates a timestring and formats it as hh:mm:ss.sss.

    Returnvalues:
    string formatted_time
    the formatted timestring

    Parameters:
    number tpos
    the position in seconds, that you want to have formatted
    string buf
    needed by Reaper, just set it to ""

    see also:
  • format_timestr_pos - creates a timestring and formats with overrides
  • format_timestr_len - creates a timestring and formats with overrides and offset for length


  • ^ Reaper version 5.62format_timestr_len

    C: void format_timestr_len(double tpos, char* buf, int buf_sz, double offset, int modeoverride)
    EEL2: format_timestr_len(tpos, #buf, offset, int modeoverride)
    Lua: string formatted_time = reaper.format_timestr_len(number tpos, string buf, number offset, integer modeoverride)
    Python: (Float tpos, String buf, Int buf_sz, Float offset, Int modeoverride) = RPR_format_timestr_len(tpos, buf, buf_sz, offset, modeoverride)

    creates a timestring and formats with overrides and offset for a time-length

    time formatting mode overrides: -1=proj default.
    0=time
    1=measures.beats + time
    2=measures.beats
    3=seconds
    4=samples
    5=h:m:s:f
    offset is start of where the length will be calculated from

    Returnvalues:
    string formatted_time

    Parameters:
    number tpos
    string buf
    number offset
    integer modeoverride


    ^ Reaper version 5.62format_timestr_pos

    C: void format_timestr_pos(double tpos, char* buf, int buf_sz, int modeoverride)
    EEL2: format_timestr_pos(tpos, #buf, int modeoverride)
    Lua: string formatted_time = reaper.format_timestr_pos(number tpos, string buf, integer modeoverride)
    Python: (Float tpos, String buf, Int buf_sz, Int modeoverride) = RPR_format_timestr_pos(tpos, buf, buf_sz, modeoverride)

    time formatting mode overrides: -1=proj default.
        0=time
        1=measures.beats + time
        2=measures.beats
        3=seconds
        4=samples
        5=h:m:s:f

    Returnvalues:
    string formatted_time

    Parameters:
    number tpos
    string buf
    integer modeoverride


    ^ Reaper version 5.62guidToString

    C: void guidToString(const GUID* g, char* destNeed64)
    EEL2: guidToString("gGUID", #destNeed64)
    Lua: string destNeed64 = reaper.guidToString(string gGUID, string destNeed64)
    Python: (const GUID g, String destNeed64) = RPR_guidToString(g, destNeed64)

    dest should be at least 64 chars long to be safe

    Returnvalues:
    string destNeed64

    Parameters:
    string gGUID
    string destNeed64


    ^ Reaper version 5.62image_resolve_fn

    C: void image_resolve_fn(const char* in, char* out, int out_sz)
    EEL2: image_resolve_fn("in", #out)
    Lua: string out = reaper.image_resolve_fn(string in, string out)
    Python: (String in, String out, Int out_sz) = RPR_image_resolve_fn(in, out, out_sz)



    Returnvalues:
    string out

    Parameters:
    string in
    string out


    ^ Reaper version 5.62mkpanstr

    C: void mkpanstr(char* strNeed64, double pan)
    EEL2: mkpanstr(#strNeed64, pan)
    Lua: string strNeed64 = reaper.mkpanstr(string strNeed64, number pan)
    Python: (String strNeed64, Float pan) = RPR_mkpanstr(strNeed64, pan)

    Converts a double-number to its panstr-equivalent.

    See parsepanstr for its counterpart.

    Returnvalues:
    string strNeed64
    the converted panstring, from -100% over center to 100%

    Parameters:
    string strNeed64
    just set this to ""
    number pan
    the pan-number which shall be converted to the panstring; valid numbers are -1.0 to 1.0 even if you can set higher ones

    see also:
  • parsepanstr - converts a panstr into a double-number


  • ^ Reaper version 5.62mkvolpanstr

    C: void mkvolpanstr(char* strNeed64, double vol, double pan)
    EEL2: mkvolpanstr(#strNeed64, vol, pan)
    Lua: string strNeed64 = reaper.mkvolpanstr(string strNeed64, number vol, number pan)
    Python: (String strNeed64, Float vol, Float pan) = RPR_mkvolpanstr(strNeed64, vol, pan)

    creates a vol-pan-string, which holds a readable representation of the vol and pan-values.

    The format is like "+6.02db center" or "+inf +80R", etc

    see mkpanstr and mkvolstr for the individual pan/vol-string functions.


    Returnvalues:
    string strNeed64
    the converted volpan-string

    Parameters:
    string strNeed64
    just set this to ""
    number vol
    the volume-value, which you want to convert into db
    number pan
    the pan-value, which you want to convert into its percentage value; valid -1.0 to 1.0


    ^ Reaper version 5.62mkvolstr

    C: void mkvolstr(char* strNeed64, double vol)
    EEL2: mkvolstr(#strNeed64, vol)
    Lua: string strNeed64 = reaper.mkvolstr(string strNeed64, number vol)
    Python: (String strNeed64, Float vol) = RPR_mkvolstr(strNeed64, vol)

    Converts a volume-value into a string-representation of it as dB.

    Note: Unlike panstr, there is no parsevolstr-string-function available!

    Returnvalues:
    string strNeed64
    the converted vol-string

    Parameters:
    string strNeed64
    just set this to ""
    number vol
    the volume-value, which shall be converted; 0, -inf; 1, 0dB; 1.412, +3dB


    ^ Reaper version 5.62parse_timestr

    C: double parse_timestr(const char* buf)
    EEL2: double parse_timestr("buf")
    Lua: number timestr = reaper.parse_timestr(string buf)
    Python: Float retval = RPR_parse_timestr(String buf)

    Parse hh:mm:ss.sss time string, return time in seconds (or 0.0 on error). See parse_timestr_pos, parse_timestr_len.


    Returnvalues:
    number timestr
    the converted time in seconds

    Parameters:
    string buf
    the timestring to convert (hh:mm:ss.sss). Each position of the time can be one digit only, means: "1:2:3.4" is valid. Milliseconds can be more than 3 digits. Hours, seconds, minutes with more than two digits will be converted correctly "1:120" will be converted to 180 seconds.


    ^ Reaper version 5.62parse_timestr_len

    C: double parse_timestr_len(const char* buf, double offset, int modeoverride)
    EEL2: double parse_timestr_len("buf", offset, int modeoverride)
    Lua: number converted_time = reaper.parse_timestr_len(string buf, number offset, integer modeoverride)
    Python: Float retval = RPR_parse_timestr_len(String buf, Float offset, Int modeoverride)

    Converts a time-string in its time-in-seconds-representation

    time formatting mode overrides: -1=proj default.
    0, time
    1, measures.beats + time
    2, measures.beats
    3, seconds
    4, samples
    5, h:m:s:f

    Returnvalues:
    number converted_time
    the time, as interpreted from the buf-parameter

    Parameters:
    string buf
    the time-string, which shall be converted into its time in seconds
    number offset
    ??Buggy??
    integer modeoverride
    the format, in which the timestring is


    ^ Reaper version 5.62parse_timestr_pos

    C: double parse_timestr_pos(const char* buf, int modeoverride)
    EEL2: double parse_timestr_pos("buf", int modeoverride)
    Lua: number converted_time = reaper.parse_timestr_pos(string buf, integer modeoverride)
    Python: Float retval = RPR_parse_timestr_pos(String buf, Int modeoverride)

    Parse time string and convert it into seconds.

    Returnvalues:
    number converted_time
    the converted time in seconds

    Parameters:
    string buf
    the timestring to be parsed and converted into seconds
    integer modeoverride
    the format of the timestring to parse and convert
    -1, proj default.
    0, time
    1, measures.beats + time
    2, measures.beats
    3, seconds
    4, samples
    5, h:m:s:f


    ^ Reaper version 5.62parsepanstr

    C: double parsepanstr(const char* str)
    EEL2: double parsepanstr("str")
    Lua: number retval = reaper.parsepanstr(string str)
    Python: Float retval = RPR_parsepanstr(String str)

    Converts a string created by mkpanstr back to it's double-number.


    Returnvalues:
    number retval
    the double-value of the panstring

    Parameters:
    string str
    a panstring, whose value you want to convert back to its double-equivalent


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_Preview_GetPeak

    C: bool CF_Preview_GetPeak(CF_Preview* preview, int channel, double* peakvolOut)
    EEL2: bool extension_api("CF_Preview_GetPeak", CF_Preview preview, int channel, &peakvol)
    Lua: boolean retval, number peakvol = reaper.CF_Preview_GetPeak(CF_Preview preview, integer channel)
    Python: (Boolean retval, CF_Preview preview, Int channel, Float peakvolOut) = CF_Preview_GetPeak(preview, channel, peakvolOut)

    Read peak volume for channel 0 or 1. Only available when outputting to a hardware output (not through a track).

    Returnvalues:
    boolean retval
    number peakvol

    Parameters:
    CF_Preview preview
    integer channel


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_Preview_GetValue

    C: bool CF_Preview_GetValue(CF_Preview* preview, const char* name, double* valueOut)
    EEL2: bool extension_api("CF_Preview_GetValue", CF_Preview preview, "name", &value)
    Lua: boolean retval, number value = reaper.CF_Preview_GetValue(CF_Preview preview, string name)
    Python: (Boolean retval, CF_Preview preview, String name, Float valueOut) = CF_Preview_GetValue(preview, name, valueOut)

    Supported attributes:

    B_LOOP seek to the beginning when reaching the end of the source
    B_PPITCH preserve pitch when changing playback rate
    D_FADEINLEN lenght in seconds of playback fade in
    D_FADEOUTLEN lenght in seconds of playback fade out
    D_LENGTH (read only) length of the source * playback rate
    D_MEASUREALIGN >0 = wait until the next bar before starting playback (note: this causes playback to silently continue when project is paused and previewing through a track)
    D_PAN playback pan
    D_PITCH pitch adjustment in semitones
    D_PLAYRATE playback rate
    D_POSITION current playback position
    D_VOLUME playback volume
    I_OUTCHAN first hardware output channel (&1024=mono, reads -1 when playing through a track, see CF_Preview_SetOutputTrack)
    I_PITCHMODE highest 16 bits=pitch shift mode (see EnumPitchShiftModes), lower 16 bits=pitch shift submode (see EnumPitchShiftSubModes)

    Returnvalues:
    boolean retval
    number peakvol

    Parameters:
    CF_Preview preview
    integer channel


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_Preview_Play

    C: bool CF_Preview_Play(CF_Preview preview)
    EEL2: bool extension_api("CF_Preview_Play", CF_Preview preview)
    Lua: boolean retval = reaper.CF_Preview_Play(CF_Preview preview)
    Python: Boolean CF_Preview_Play(CF_Preview preview)

    Start playback of the configured preview object.

    Returnvalues:
    boolean retval

    Parameters:
    CF_Preview preview


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_Preview_SetOutputTrack

    C: bool CF_Preview_SetOutputTrack(CF_Preview* preview, ReaProject* project, MediaTrack* track)
    EEL2: bool extension_api("CF_Preview_SetOutputTrack", CF_Preview preview, ReaProject project, MediaTrack track)
    Lua: boolean retval = reaper.CF_Preview_SetOutputTrack(CF_Preview preview, ReaProject project, MediaTrack track)
    Python: Boolean CF_Preview_SetOutputTrack(CF_Preview preview, ReaProject project, MediaTrack track)



    Returnvalues:
    boolean retval

    Parameters:
    CF_Preview preview
    ReaProject project
    MediaTrack track


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_Preview_SetValue

    C: bool CF_Preview_SetValue(CF_Preview* preview, const char* name, double newValue)
    EEL2: bool extension_api("CF_Preview_SetValue", CF_Preview preview, "name", newValue)
    Lua: boolean retval = reaper.CF_Preview_SetValue(CF_Preview preview, string name, number newValue)
    Python: Boolean CF_Preview_SetValue(CF_Preview preview, String name, Float newValue)

    See CF_Preview_GetValue.

    Returnvalues:
    boolean retval

    Parameters:
    CF_Preview preview
    string name
    number newValue


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_Preview_Stop

    C: bool CF_Preview_Stop(CF_Preview* preview)
    EEL2: bool extension_api("CF_Preview_Stop", CF_Preview preview)
    Lua: boolean retval = reaper.CF_Preview_Stop(CF_Preview preview)
    Python: Boolean CF_Preview_Stop(CF_Preview preview)

    Stop and destroy a preview object.

    Returnvalues:
    boolean retval

    Parameters:
    CF_Preview preview


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_Preview_StopAll

    C: void CF_Preview_StopAll()
    EEL2: extension_api("CF_Preview_StopAll")
    Lua: reaper.CF_Preview_StopAll()
    Python: CF_Preview_StopAll()

    Stop and destroy all currently active preview objects.


    ^ Reaper version 5.97GetItemEditingTime2

    C: double GetItemEditingTime2(PCM_source** which_itemOut, int* flagsOut)
    EEL2: double GetItemEditingTime2(PCM_source &which_item, int &flags)
    Lua: number position, PCM_source which_item, integer flags = reaper.GetItemEditingTime2()
    Python: (Float retval, PCM_source* which_itemOut, Int flagsOut) = RPR_GetItemEditingTime2(which_itemOut, flagsOut)

    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)

    Returnvalues:
    number position
    PCM_source which_item
    integer flags


    ^ Reaper version 5.62GetSubProjectFromSource

    C: ReaProject* GetSubProjectFromSource(PCM_source* src)
    EEL2: ReaProject GetSubProjectFromSource(PCM_source src)
    Lua: ReaProject sub_proj = reaper.GetSubProjectFromSource(PCM_source src)
    Python: ReaProject sub_proj = RPR_GetSubProjectFromSource(PCM_source src)



    Returnvalues:
    ReaProject sub_proj
    the project-number. 0 for the current project.

    Parameters:
    PCM_source src


    ^ Reaper version 5.62GetTempoMatchPlayRate

    C: bool GetTempoMatchPlayRate(PCM_source* source, double srcscale, double position, double mult, double* rateOut, double* targetlenOut)
    EEL2: bool GetTempoMatchPlayRate(PCM_source source, srcscale, position, mult, &rate, &targetlen)
    Lua: boolean retval, number rate, number targetlen = reaper.GetTempoMatchPlayRate(PCM_source source, number srcscale, number position, number mult)
    Python: (Boolean retval, PCM_source source, Float srcscale, Float position, Float mult, Float rateOut, Float targetlenOut) = RPR_GetTempoMatchPlayRate(source, srcscale, position, mult, rateOut, targetlenOut)

    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

    Returnvalues:
    boolean retval
    number rate
    number targetlen

    Parameters:
    PCM_source source
    number srcscale
    number position
    number mult


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_ReadAudioFileBitrate

    C: int NF_ReadAudioFileBitrate(const char* fn)
    EEL2: int extension_api("NF_ReadAudioFileBitrate", "fn")
    Lua: integer retval = reaper.NF_ReadAudioFileBitrate(string fn)
    Python: Int retval = NF_ReadAudioFileBitrate(const char* fn)

    Returns the bitrate of an audio file in kb/s if available (0 otherwise). For supported filetypes see TagLib::AudioProperties::bitrate.

    Returnvalues:
    integer retval

    Parameters:
    string fn


    ^ Reaper version 5.62PCM_Source_GetSectionInfo

    C: bool PCM_Source_GetSectionInfo(PCM_source* src, double* offsOut, double* lenOut, bool* revOut)
    EEL2: bool PCM_Source_GetSectionInfo(PCM_source src, &offs, &len, bool &rev)
    Lua: boolean retval, number offs, number len, boolean rev = reaper.PCM_Source_GetSectionInfo(PCM_source src)
    Python: (Boolean retval, PCM_source src, Float offsOut, Float lenOut, Boolean revOut) = RPR_PCM_Source_GetSectionInfo(src, offsOut, lenOut, revOut)

    If a section/reverse block, retrieves offset/len/reverse. return true if success

    Returnvalues:
    boolean retval
    number offs
    number len
    boolean rev

    Parameters:
    PCM_Source src


    ^ Reaper version 5.62Resample_EnumModes

    C: const char* Resample_EnumModes(int mode)
    EEL2: bool Resample_EnumModes(#retval, int mode)
    Lua: string resample_mode = reaper.Resample_EnumModes(integer mode)
    Python: String retval = RPR_Resample_EnumModes(Int mode)

    enumerates the existing resample-modes

    Returnvalues:
    string resample_mode
    the resample-mode

    Parameters:
    integer mode
    0, Medium (64pt Sinc)
    1, Low (Linear Interpolation)
    2, Lowest (Point Sampling)
    3, Good (192pt Sinc)
    4, Better (384pt Sinc)
    5, Fast (IIR + Linear Interpolation)
    6, Fast (IIRx2 + Linear Interpolation)
    7, Fast (16pt Sinc)
    8, HQ (512pt Sinc)
    9, Extreme HQ (768pt HQ Sinc)


    ^ Reaper version 5.974 JS version 0.951Xen_AudioWriter_Create

    C: AudioWriter* Xen_AudioWriter_Create(const char* filename, int numchans, int samplerate)
    EEL2: AudioWriter extension_api("Xen_AudioWriter_Create", "filename", int numchans, int samplerate)
    Lua: AudioWriter writer = reaper.Xen_AudioWriter_Create(string filename, integer numchans, integer samplerate)
    Python: AudioWriter retval = Xen_AudioWriter_Create(String filename, Int numchans, Int samplerate)

    Creates writer for 32 bit floating point WAV

    Returnvalues:
    AudioWriter writer

    Parameters:
    string filename
    integer numchans
    integer samplerate


    ^ Reaper version 5.974 JS version 0.951Xen_AudioWriter_Destroy

    C: void Xen_AudioWriter_Destroy(AudioWriter* writer)
    EEL2: extension_api("Xen_AudioWriter_Destroy", AudioWriter writer)
    Lua: reaper.Xen_AudioWriter_Destroy(AudioWriter writer)
    Python: Xen_AudioWriter_Destroy(AudioWriter writer)

    Destroys writer

    Parameters:
    AudioWriter writer


    ^ Reaper version 5.974 JS version 0.951Xen_AudioWriter_Write

    C: int Xen_AudioWriter_Write(AudioWriter* writer, int numframes, void* data, int offset)
    EEL2: int extension_api("Xen_AudioWriter_Write", AudioWriter writer, int numframes, void* data, int offset)
    Lua: integer retval = reaper.Xen_AudioWriter_Write(AudioWriter writer, integer numframes, identifier data, integer offset)
    Python: Int retval = Xen_AudioWriter_Write(AudioWriter writer, Int numframes, void data, Int offset)

    Write interleaved audio data to disk

    Returnvalues:
    integer retval

    Parameters:
    AudioWriter writer
    integer numframes
    identifier data
    integer offset


    ^ Reaper version 5.974 JS version 0.991Xen_StartSourcePreview

    C: int Xen_StartSourcePreview(PCM_source* source, double gain, bool loop, int* outputchanindexInOptional)
    EEL2: int extension_api("Xen_StartSourcePreview", PCM_source source, gain, bool loop, optional int outputchanindexIn)
    Lua: integer retval = reaper.Xen_StartSourcePreview(PCM_source source, number gain, boolean loop, optional integer outputchanindexIn)
    Python: (Int retval, PCM_source source, Float gain, Boolean loop, Int outputchanindexInOptional) = Xen_StartSourcePreview(source, gain, loop, outputchanindexInOptional)

    Start audio preview of a PCM_source, which can be created using functions like PCM_Source_CreateFromFile

    Returns id of a preview handle that can be provided to Xen_StopSourcePreview.

    If the given PCM_source does not belong to an existing MediaItem/Take, it will be deleted by the preview system when the preview is stopped.

    You can preview more than one file at the same time.


    Returnvalues:
    integer id
    the id of this preview, which can be used to stop it again

    Parameters:
    PCM_source source
    a PCM_source-created using a mediafile/item
    number gain
    the volume of the previewed pcm_source; 0, no sound; 10, maximum volume
    boolean loop
    true, loop the PCM_source; false, play only once
    optional integer outputchanindexIn
    the output channel; for multichannel files, this is the first hardware-output-channel for e.g. left channel of a stereo file


    ^ Reaper version 5.974 JS version 0.986Xen_StopSourcePreview

    C: int Xen_StopSourcePreview(int preview_id)
    EEL2: int extension_api("Xen_StopSourcePreview", int preview_id)
    Lua: integer retval = reaper.Xen_StopSourcePreview(integer preview_id)
    Python: Int retval = Xen_StopSourcePreview(Int preview_id)

    Stop audio preview.

    To stop all running previews, set id=-1

    Returnvalues:
    integer retval

    Parameters:
    integer preview_id
    the id of the running preview; -1, stops all running previews


    ^ Reaper version 5.62PCM_Sink_Enum

    C: unsigned int PCM_Sink_Enum(int idx, const char** descstrOut)
    EEL2: uint PCM_Sink_Enum(int idx, #descstr)
    Lua: integer retval, string descstr = reaper.PCM_Sink_Enum(integer idx)
    Python: Int retval = RPR_PCM_Sink_Enum(Int idx, String descstrOut)

    enumerates the available PCM-sink-formats, which means, the output-formats available in Reaper

    Returnvalues:
    integer retval
    a number, which represents the PCM-sink-format as an integer-representation
    2002876005 - WAV (evaw)
    1634297446 - AIFF (ffia)
    1769172768 - Audio CD Image (CUE/BIN format) ( osi)
    1684303904 - DDP ( pdd)
    1718378851 - FLAC (calf)
    1836069740 - MP3 (encoder by LAME project) (l3pm)
    1869047670 - OGG Vorbis (vggo)
    1332176723 - OGG Opus (SggO)
    1179012432 - Video (ffmpeg/libav encoder) (PMFF)
    1195984416 - Video (GIF) ( FIG)
    1279477280 - Video (LCF) ( FCL)
    2004250731 - WavPack lossless compressor (kpvw)
    maybe others as well?
    string descstr
    the PCM-sink-format
    0 - WAV
    1 - AIFF
    2 - Audio CD Image (CUE/BIN format)
    3 - DDP
    4 - FLAC
    5 - MP3 (encoder by LAME project)
    6 - OGG Vorbis
    7 - OGG Opus
    8 - Video (ffmpeg/libav encoder)
    9 - Video (GIF)
    10 - Video (LCF)
    11 - WavPack lossless compressor
    maybe others as well?

    Parameters:
    integer idx
    the index of the sink-format, beginning with 0


    ^ Reaper version 5.62PCM_Sink_GetExtension

    C: const char* PCM_Sink_GetExtension(const char* data, int data_sz)
    EEL2: bool PCM_Sink_GetExtension(#retval, "data")
    Lua: string extension = reaper.PCM_Sink_GetExtension(string data)
    Python: String retval = RPR_PCM_Sink_GetExtension(String data, Int data_sz)

    allows you to retrieve the file-extension of a certain PCM-sink/fileformat available.

    See PCM_Sink_Enum to enumerate available PCM-sink/fileformats.


    Returnvalues:
    string extension
    the extension returned by a certain format passed as parameter data

    Parameters:
    string data
    the format, whose extension-format you'd like to get:
    evaw, extension: "wav"
    ffia, extension: "aif"
    osi, extension: "cue"
    pdd, extension: "DAT"
    calf, extension: "flac"
    l3pm, extension: "mp3"
    vggo, extension: "ogg"
    SggO, extension: "opus"
    PMFF, extension: "avi"
    FIG, extension: "gif"
    FCL, extension: "lcf"
    kpvw, extension: "wv"
    maybe others?


    ^ Reaper version 5.62PCM_Sink_ShowConfig

    C: HWND PCM_Sink_ShowConfig(const char* cfg, int cfg_sz, HWND hwndParent)
    EEL2: HWND PCM_Sink_ShowConfig("cfg", HWND hwndParent)
    Lua: HWND hwnd = reaper.PCM_Sink_ShowConfig(string cfg, HWND hwndParent)
    Python: HWND hwnd = RPR_PCM_Sink_ShowConfig(String cfg, Int cfg_sz, HWND hwndParent)



    Returnvalues:
    HWND hwnd

    Parameters:
    string cfg
    HWND hwndParent


    ^ Reaper version 5.62ClearPeakCache

    C: void ClearPeakCache()
    EEL2: ClearPeakCache()
    Lua: reaper.ClearPeakCache()
    Python: RPR_ClearPeakCache()

    resets the global peak caches


    ^ Reaper version 6.37GetPeakFileName

    C: void GetPeakFileName(const char* fn, char* bufOut, int bufOut_sz)
    EEL2: GetPeakFileName("fn", #buf)
    Lua: string peakfilename_with_path = reaper.GetPeakFileName(string fn)
    Python: (String fn, String buf, Int buf_sz) = RPR_GetPeakFileName(fn, buf, buf_sz)

    get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path)

    Returnvalues:
    string peakfilename_with_path
    the peakfilename with path

    Parameters:
    string fn
    the filename of the mediafile


    ^ Reaper version 5.62GetPeakFileNameEx

    C: void GetPeakFileNameEx(const char* fn, char* buf, int buf_sz, bool forWrite)
    EEL2: GetPeakFileNameEx("fn", #buf, bool forWrite)
    Lua: string buf = reaper.GetPeakFileNameEx(string fn, string buf, boolean forWrite)
    Python: (String fn, String buf, Int buf_sz, Boolean forWrite) = RPR_GetPeakFileNameEx(fn, buf, buf_sz, forWrite)

    get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path)

    Returnvalues:
    string buf
    the peak-filename

    Parameters:
    string fn
    string buf
    a string-buffer needed by the function, just give "" in Lua
    boolean forWrite


    ^ Reaper version 5.62GetPeakFileNameEx2

    C: void GetPeakFileNameEx2(const char* fn, char* buf, int buf_sz, bool forWrite, const char* peaksfileextension)
    EEL2: GetPeakFileNameEx2("fn", #buf, bool forWrite, "peaksfileextension")
    Lua: string buf = reaper.GetPeakFileNameEx2(string fn, string buf, boolean forWrite, string peaksfileextension)
    Python: (String fn, String buf, Int buf_sz, Boolean forWrite, String peaksfileextension) = RPR_GetPeakFileNameEx2(fn, buf, buf_sz, forWrite, peaksfileextension)

    Like GetPeakFileNameEx, but you can specify peaksfileextension such as ".reapeaks"

    Returnvalues:
    string buf
    the peak-filename

    Parameters:
    string fn
    string buf
    a string-buffer needed by the function, just give "" in Lua
    boolean forWrite
    string peaksfileextension


    ^ Reaper version 6.35PCM_Source_BuildPeaks

    C: int PCM_Source_BuildPeaks(PCM_source* src, int mode)
    EEL2: int PCM_Source_BuildPeaks(PCM_source src, int mode)
    Lua: integer retval = reaper.PCM_Source_BuildPeaks(PCM_source src, integer mode)
    Python: Int retval = RPR_PCM_Source_BuildPeaks(PCM_source src, Int mode)

    The process to build a new peak is to use the modes in a certain order:

    mode=0 starts the peak-building process(must be done once for this PCM_Source) returned values are: 0, no peaks need to be built; 1, peaks are building

    mode=1 progresses the peak-building a bit each time you call PCM_Source_BuildPeaks with mode=1) call it repeatedly until it's finished and returns value 0! returned values are: how many percent the peak-building still needs to do until it is finished

    mode=2, this finishes up peak-building(call this, when mode=1 returns 0 and only then!) returned value is 0 Running this before mode=1 returns 0 can cause broken peaks shown, until you click into a mediaitem that uses the PCM_Source.

    After all peak-building is done, use reaper.UpdateArrange() to show them.

    Note: All peaks of all takes that use a certain PCM_Source will be built!

    Building peaks for multiple PCM_Sources simultaneously is allowed.

    The following code builds a peak very simply. This is the easiest implementation. However, if the PCM_Source, whose peaks need to be build, is a very long one, this can cause Reaper's UI to hang. So use this on short PCM_Sources mainly.

        -- Meo-Ada Mespotine - 19th of August 2021 - licensed under MIT-license
        -- Rebuilt-Peak-Demo without defer, might cause hanging of Reaper's UI
    
        -- Get Item 1, Take 1 and Source of Take 1
        Item=reaper.GetMediaItem(0,0)
        Take=reaper.GetMediaItemTake(Item,0)
        Source=reaper.GetMediaItemTake_Source(Take)
    
        -- start peak-building process(mode must be 0)
        BuildStart=reaper.PCM_Source_BuildPeaks(Source, 0)
    
        -- build peaks, until PCM_Source_BuildPeaks returns 0(mode must be 1)
        while BuildProgress~=0 do
          BuildProgress=reaper.PCM_Source_BuildPeaks(Source, 1)
        end
    
        -- when build-process is done, finish build-process(mode must be 2)
        BuildXit=reaper.PCM_Source_BuildPeaks(Source, 2) 
    
        -- update the arrangeview, so the newly built peaks are shown
        reaper.UpdateArrange()

    If you want to build peaks for longer files and maybe showing a status-bar, you can use the following code. It uses defer-loops instead of a while-loop. As each ReaScript can have up to 1024 defer-loops running at the same time(more or less), I use each of the 1024 defer-loops to build the peak a little further. This will prevent hanging UI but might be a little slower than the while-approach.

        -- Meo-Ada Mespotine - 19th of August 2021 - licensed under MIT-license
        -- Rebuilt-Peak-Demo using defer, might be a little slower but doesn't 
        -- cause hanging of Reaper's UI
        -- 
        -- set Build_Factor to speed up building process
        -- allowed values: 0(slow) and 1024(fast)
        -- Use 1024 only, if you don't have any other defer-loops running.
        -- If you have other defer-loops that need to be run now, set
        -- Build_Factor to Build_Factor minus number of running defer-loops.
    
        -- the number of defer-loops used to go through the peak build-process
        -- the higher, the faster.
        -- if you use other defer-loops at the time as well, set this lower than 1024 or the other defer-loop will not run
        Build_Factor=255
    
        -- Get Item 1, Take 1 and Source of Take 1
        Item=reaper.GetMediaItem(0,0)
        Take=reaper.GetMediaItemTake(Item,0)
        Source=reaper.GetMediaItemTake_Source(Take)
    
        -- start build-process of the peak(mode=0)
        BuildStart=reaper.PCM_Source_BuildPeaks(Source, 0)
    
        function main()
          -- build peaks, until PCM_Source_BuildPeaks returns 0(mode must be 1)
          BuildProgress=reaper.PCM_Source_BuildPeaks(Source, 1)
          
          if BuildProgress~=0 then 
            -- if PCM_Source_BuildPeaks returned anything else than 0, defer this function again
            reaper.defer(main) 
          else 
            -- if PCM_Source_BuildPeaks returned 0, finish building of the peaks(mode must be 2)
            -- and update the arrangeview for the newly built peaks to show
            BuildXit=reaper.PCM_Source_BuildPeaks(Source, 2) 
            reaper.UpdateArrange()
          end
        end
    
        -- run multiple defer-instances of the peak-build-function
        for i=0, Build_Factor do
          main()
        end

    The following code combines both, defer-loops to cirvumvent possible hanging of Reaper's UI and a loop(for in this case) to build as many small peak-bits and pieces as possible within each defer-loop. You can influence the ratio between using defer-loops and for-loops by setting Build_Factor(defer) and Build_Progression(for). Experiment, how high you can go with the number of for-loops, until Reaper's UI becomes laggy.

        -- Meo-Ada Mespotine - 19th of August 2021 - licensed under MIT-license
        -- Rebuilt-Peak-Demo defer and a regular for-loop combined, doesn't 
        -- cause hanging of Reaper's UI
        -- 
        -- set Build_Factor to speed up building process
        -- allowed values: 0(slow) and 1024(fast)
        -- Use 1024 only, if you don't have any other defer-loops running.
        -- If you have other defer-loops that need to be run now, set
        -- Build_Factor to Build_Factor minus number of running defer-loops.
    
        -- build-speed factors
        Build_Factor=255     -- set to the number of defer-loops used
        Build_Progression=20 -- set to the number of peak-building-bits built within each defer-loop
    
        -- Get Item 1, Take 1 and Source of Take 1
        Item=reaper.GetMediaItem(0,0)
        Take=reaper.GetMediaItemTake(Item,0)
        Source=reaper.GetMediaItemTake_Source(Take)
    
        -- start build-process of the peak(mode=0)
        BuildStart=reaper.PCM_Source_BuildPeaks(Source,0)
    
        function main()
          -- build peaks, until PCM_Source_BuildPeaks returns 0(mode must be 1)
          -- do it for Build_Progression-times within this defer-loop.
          for i=0, Build_Progression do
            BuildProgress=reaper.PCM_Source_BuildPeaks(Source,1)
          end
          
          if BuildProgress~=0 then 
            -- if PCM_Source_BuildPeaks returned anything else than 0, defer this function again
            reaper.defer(main) 
          else 
            -- if PCM_Source_BuildPeaks returned 0, finish building of the peaks(mode must be 2)
            -- and update the arrangeview for the newly built peaks to show
            BuildXit=reaper.PCM_Source_BuildPeaks(Source,2) 
            reaper.UpdateArrange()
          end
        end
    
    
        -- run multiple defer-instances of the peak-build-function
        for i=0, Build_Factor do
          main()
        end

    Returnvalues:
    integer retval
    a value that returns the current state of the peak-building-process, depending on parameter mode
    when mode=0
      0, no peaks need to be built
      1, peaks are building
    when mode=1
      the percentage, how much of the peaks still need to be built
      0, peak-building is finished
    when mode=2
      0, peak building is successfully finished for this PCM_source

    Parameters:
    PCM_source src
    the PCM_source, whose peaks you want to rebuild
    integer mode
    sets the current "phase" of the peak-building
    0, starts the peak-building-process for this PCM_source(must be done once per PCM_Source)
    1, process the peak-building-process a bit further; do repeatedly until retval=0
    2, finish up peak-building for this PCM_source


    ^ Reaper version 5.62PCM_Source_GetPeaks

    C: int PCM_Source_GetPeaks(PCM_source* src, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf)
    EEL2: int PCM_Source_GetPeaks(PCM_source src, peakrate, starttime, int numchannels, int numsamplesperchannel, int want_extra_type, buffer_ptr buf)
    Lua: integer retval = reaper.PCM_Source_GetPeaks(PCM_source src, number peakrate, number starttime, integer numchannels, integer numsamplesperchannel, integer want_extra_type, reaper.array buf)
    Python: (Int retval, PCM_source src, Float peakrate, Float starttime, Int numchannels, Int numsamplesperchannel, Int want_extra_type, Float buf) = RPR_PCM_Source_GetPeaks(src, peakrate, starttime, numchannels, numsamplesperchannel, want_extra_type, buf)

    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.

    Returnvalues:
    integer retval

    Parameters:
    PCM_source src
    number peakrate
    number starttime
    integer numchannels
    integer numsamplesperchannel
    integer want_extra_type
    reaper.array buf


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_CreatePreview

    C: CF_Preview* CF_CreatePreview(PCM_source* source)
    EEL2: CF_Preview extension_api("CF_CreatePreview", PCM_source source)
    Lua: CF_Preview retval = reaper.CF_CreatePreview(PCM_source source)
    Python: CF_Preview CF_CreatePreview(PCM_source source)

    Create a new preview object. Does not take ownership of the source (don't forget to destroy it unless it came from a take!). See CF_Preview_Play and the others CF_Preview_* functions.

    The preview object is automatically destroyed at the end of a defer cycle if at least one of these conditions are met:
    - playback finished
    - playback was not started using CF_Preview_Play
    - the output track no longer exists

    Returnvalues:
    CF_Preview retval

    Parameters:
    PCM_source src


    ^ Reaper version 5.965 SWS version 2.13.0.0CF_EnumMediaSourceCues

    C: int CF_EnumMediaSourceCues(PCM_source* src, int index, double* timeOut, double* endTimeOut, bool* isRegionOut, char* nameOut, int nameOut_sz, bool* isChapterOut)
    EEL2: int extension_api("CF_EnumMediaSourceCues", PCM_source src, int index, &time, &endTime, bool &isRegion, #name, bool &isChapter)
    Lua: integer retval, number time, number endTime, boolean isRegion, string name, boolean isChapter = reaper.CF_EnumMediaSourceCues(PCM_source src, integer index)
    Python: (Int retval, PCM_source src, Int index, Float timeOut, Float endTimeOut, Boolean isRegionOut, String nameOut, Int nameOut_sz, Boolean isChapterOut) = CF_EnumMediaSourceCues(src, index, timeOut, endTimeOut, isRegionOut, nameOut, nameOut_sz, isChapterOut)

    Enumerate the source's media cues. Returns the next index or 0 when finished.

    Returnvalues:
    integer retval
    number time
    number endTime
    boolean isRegion
    string name
    boolean isChapter

    Parameters:
    PCM_source src
    integer index


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_ExportMediaSource

    C: bool CF_ExportMediaSource(PCM_source* src, const char* fn)
    EEL2: bool extension_api("CF_ExportMediaSource", PCM_source src, "fn")
    Lua: boolean retval = reaper.CF_ExportMediaSource(PCM_source src, string fn)
    Python: Boolean retval = CF_ExportMediaSource(PCM_source src, String fn)

    Export the source to the given file (MIDI only).


    Returnvalues:
    boolean retval

    Parameters:
    PCM_source src
    string fn


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_GetMediaSourceBitDepth

    C: int CF_GetMediaSourceBitDepth(PCM_source* src)
    EEL2: int extension_api("CF_GetMediaSourceBitDepth", PCM_source src)
    Lua: integer retval = reaper.CF_GetMediaSourceBitDepth(PCM_source src)
    Python: Int retval = CF_GetMediaSourceBitDepth(PCM_source src)

    Returns the bit depth if available (0 otherwise).


    Returnvalues:
    integer retval

    Parameters:
    PCM_source src


    ^ Reaper version 5.965 SWS version 2.13.0.0CF_GetMediaSourceBitRate

    C: double CF_GetMediaSourceBitRate(PCM_source* src)
    EEL2: double extension_api("CF_GetMediaSourceBitRate", PCM_source src)
    Lua: number bitrate = reaper.CF_GetMediaSourceBitRate(PCM_source src)
    Python: Float retval = CF_GetMediaSourceBitRate(PCM_source src)

    Returns the bit rate for WAVE (wav, aif) and streaming/variable formats (mp3, ogg, opus).

    REAPER v6.19 or later is required for non-WAVE formats.

    Returnvalues:
    number bitrate
    the bitrate of the pcm-source

    Parameters:
    PCM_source src
    the PCM-source, whose bitrate you want to query


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_GetMediaSourceMetadata

    C: bool CF_GetMediaSourceMetadata(PCM_source* src, const char* name, char* out, int out_sz)
    EEL2: bool extension_api("CF_GetMediaSourceMetadata", PCM_source src, "name", #out)
    Lua: boolean retval, string out = reaper.CF_GetMediaSourceMetadata(PCM_source src, string name, string out)
    Python: (Boolean retval, PCM_source src, String name, String out, Int out_sz) = CF_GetMediaSourceMetadata(src, name, out, out_sz)

    Get the value of the given metadata field (eg. DESC, ORIG, ORIGREF, DATE, TIME, UMI, CODINGHISTORY for BWF).

    Returnvalues:
    boolean retval
    string out

    Parameters:
    PCM_source src
    string name
    string out


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_GetMediaSourceOnline

    C: bool CF_GetMediaSourceOnline(PCM_source* src)
    EEL2: bool extension_api("CF_GetMediaSourceOnline", PCM_source src)
    Lua: boolean retval = reaper.CF_GetMediaSourceOnline(PCM_source src)
    Python: Boolean retval = CF_GetMediaSourceOnline(PCM_source src)

    Returns the online/offline status of the given source.


    Returnvalues:
    boolean retval

    Parameters:
    PCM_source src


    ^ Reaper version 5.965 SWS version 2.12.1.1CF_GetMediaSourceRPP

    C: bool CF_GetMediaSourceRPP(PCM_source* src, char* fnOut, int fnOut_sz)
    EEL2: bool extension_api("CF_GetMediaSourceRPP", PCM_source src, #fn)
    Lua: boolean retval, string fn = reaper.CF_GetMediaSourceRPP(PCM_source src)
    Python: (Boolean retval, PCM_source src, String fnOut, Int fnOut_sz) = CF_GetMediaSourceRPP(src, fnOut, fnOut_sz)

    Get the project associated with this source (BWF, subproject...).


    Returnvalues:
    boolean retval
    string fn

    Parameters:
    PCM_source src


    ^ Reaper version 5.965 SWS version 2.13.2.0CF_PCM_Source_SetSectionInfo

    C: bool CF_PCM_Source_SetSectionInfo(PCM_source* section, PCM_source* source, double offset, double length, bool reverse)
    EEL2: bool extension_api("CF_PCM_Source_SetSectionInfo", PCM_source section, PCM_source source, offset, length, bool reverse)
    Lua: boolean retval = reaper.CF_PCM_Source_SetSectionInfo(PCM_source section, PCM_source source, number offset, number length, boolean reverse)
    Python: Boolean CF_PCM_Source_SetSectionInfo(PCM_source section, PCM_source source, Float offset, Float length, Boolean reverse)

    Give a section source created using PCM_Source_CreateFromType("SECTION"). Offset and length are ignored if 0. Negative length to subtract from the total length of the source.

    Returnvalues:
    boolean retval

    Parameters:
    PCM_source section
    PCM_source source
    number offset
    number length
    boolean reverse


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_SetMediaSourceOnline

    C: void CF_SetMediaSourceOnline(PCM_source* src, bool set)
    EEL2: extension_api("CF_SetMediaSourceOnline", PCM_source src, bool set)
    Lua: reaper.CF_SetMediaSourceOnline(PCM_source src, boolean set)
    Python: CF_SetMediaSourceOnline(PCM_source src, Boolean set)

    Set the online/offline status of the given source (closes files when set=false).


    Parameters:
    PCM_source src
    boolean set


    ^ Reaper version 6.64CalcMediaSrcLoudness

    C: int retval = CalcMediaSrcLoudness(PCM_source* mediasource)
    EEL2: int retval = CalcMediaSrcLoudness(PCM_source mediasource)
    Lua: integer retval = reaper.CalcMediaSrcLoudness(PCM_source mediasource)
    Python: Int retval = RPR_CalcMediaSrcLoudness(PCM_source mediasource)

    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.

    Returnvalues:
    integer retval
    1, calculation was successful; -1, calculation was unsuccessful/canceled by the user

    Parameters:
    PCM_source source
    the source to calculate the loudness from


    ^ Reaper version 6.44CalculateNormalization

    C: double retval = CalculateNormalization(PCM_source* source, int normalizeTo, double normalizeTarget, double normalizeStart, double normalizeEnd)
    EEL2: double retval = CalculateNormalization(PCM_source source, int normalizeTo, normalizeTarget, normalizeStart, normalizeEnd)
    Lua: number normalized_value = reaper.CalculateNormalization(PCM_source source, integer normalizeTo, number normalizeTarget, number normalizeStart, number normalizeEnd)
    Python: Float retval = RPR_CalculateNormalization(PCM_source source, Int normalizeTo, Float normalizeTarget, Float normalizeStart, Float normalizeEnd)

    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

    Returnvalues:
    number normalized_value
    the normalized value

    Parameters:
    PCM_source source
    the source to be normalized
    integer normalizeTo
    the normalizing mode
    0, LUFS-I
    1, RMS-I
    2, peak
    3, true peak
    4, LUFS-M max
    5, LUFS-S max
    number normalizeTarget
    the target to normalize to, dBFS or LUFS value
    number normalizeStart
    the start-position from where to normalize; 0, for start of source
    number normalizeEnd
    the endposition to where to normalize; 0, for end of source


    ^ Reaper version 6.37GetMediaSourceFileName

    C: void GetMediaSourceFileName(PCM_source* source, char* filenamebufOut, int filenamebufOut_sz)
    EEL2: GetMediaSourceFileName(PCM_source source, #filenamebuf)
    Lua: string filenamebuf = reaper.GetMediaSourceFileName(PCM_source source)
    Python: (PCM_source source, String filenamebufOut, Int filenamebufOut_sz) = RPR_GetMediaSourceFileName(source, filenamebufOut, filenamebufOut_sz)

    Copies the media source filename to filenamebuf. Note that in-project MIDI media sources have no associated filename.

    Returnvalues:
    string filenamebuf
    the filename of the source-file

    Parameters:
    PCM_source source
    the source, whose source-filename you want to retrieve

    see also:
  • GetMediaSourceParent - returns, the parent-source of a source


  • ^ Reaper version 5.62GetMediaSourceLength

    C: double GetMediaSourceLength(PCM_source* source, bool* lengthIsQNOut)
    EEL2: double GetMediaSourceLength(PCM_source source, bool &lengthIsQN)
    Lua: number retval, boolean lengthIsQN = reaper.GetMediaSourceLength(PCM_source source)
    Python: (Float retval, PCM_source source, Boolean lengthIsQNOut) = RPR_GetMediaSourceLength(source, lengthIsQNOut)

    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.

    Returnvalues:
    number retval
    boolean lengthIsQN

    Parameters:
    PCM_source source


    ^ Reaper version 5.62GetMediaSourceNumChannels

    C: int GetMediaSourceNumChannels(PCM_source* source)
    EEL2: int GetMediaSourceNumChannels(PCM_source source)
    Lua: integer mediasourcenumchans = reaper.GetMediaSourceNumChannels(PCM_source source)
    Python: Int retval = RPR_GetMediaSourceNumChannels(PCM_source source)

    Returns the number of channels in the source media.

    Returnvalues:
    integer mediasourcenumchans

    Parameters:
    PCM_source source


    ^ Reaper version 5.62GetMediaSourceParent

    C: PCM_source* GetMediaSourceParent(PCM_source* src)
    EEL2: PCM_source GetMediaSourceParent(PCM_source src)
    Lua: PCM_source parent_src = reaper.GetMediaSourceParent(PCM_source src)
    Python: PCM_source parent_src = RPR_GetMediaSourceParent(PCM_source src)

    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.

    Returnvalues:
    PCM_source parent_src

    Parameters:
    PCM_source src


    ^ Reaper version 5.62GetMediaSourceSampleRate

    C: int GetMediaSourceSampleRate(PCM_source* source)
    EEL2: int GetMediaSourceSampleRate(PCM_source source)
    Lua: integer mediasourcesamplerate = reaper.GetMediaSourceSampleRate(PCM_source source)
    Python: Int retval = RPR_GetMediaSourceSampleRate(PCM_source source)

    Returns the sample rate. MIDI source media will return zero.

    Returnvalues:
    integer mediasourcesamplerate

    Parameters:
    PCM_source source


    ^ Reaper version 6.37GetMediaSourceType

    C: void GetMediaSourceType(PCM_source* source, char* typebufOut, int typebufOut_sz)
    EEL2: GetMediaSourceType(PCM_source source, #typebuf)
    Lua: string typebuf = reaper.GetMediaSourceType(PCM_source source)
    Python: (PCM_source source, String typebufOut, Int typebufOut_sz) = RPR_GetMediaSourceType(source, typebufOut, typebufOut_sz)

    copies the media source type ("WAV", "MIDI", etc) to typebuf

    Returnvalues:
    string typebuf
    the source-type

    Parameters:
    PCM_source source
    the source, whose source-type you want to get


    ^ Reaper version 5.62PCM_Source_CreateFromFile

    C: PCM_source* PCM_Source_CreateFromFile(const char* filename)
    EEL2: PCM_source PCM_Source_CreateFromFile("filename")
    Lua: PCM_source src = reaper.PCM_Source_CreateFromFile(string filename)
    Python: PCM_source src = RPR_PCM_Source_CreateFromFile(String filename)

    See PCM_Source_CreateFromFileEx.


    Returnvalues:
    PCM_source src

    Parameters:
    string filename


    ^ Reaper version 5.62PCM_Source_CreateFromFileEx

    C: PCM_source* PCM_Source_CreateFromFileEx(const char* filename, bool forcenoMidiImp)
    EEL2: PCM_source PCM_Source_CreateFromFileEx("filename", bool forcenoMidiImp)
    Lua: PCM_source src = reaper.PCM_Source_CreateFromFileEx(string filename, boolean forcenoMidiImp)
    Python: PCM_source src = RPR_PCM_Source_CreateFromFileEx(String filename, Boolean forcenoMidiImp)

    Create a PCM_source from filename, and override pref of MIDI files being imported as in-project MIDI events.

    Returnvalues:
    PCM_source src

    Parameters:
    string filename
    boolean forcenoMidiImp


    ^ Reaper version 5.62PCM_Source_CreateFromType

    C: PCM_source* PCM_Source_CreateFromType(const char* sourcetype)
    EEL2: PCM_source PCM_Source_CreateFromType("sourcetype")
    Lua: PCM_source src = reaper.PCM_Source_CreateFromType(string sourcetype)
    Python: PCM_source src = RPR_PCM_Source_CreateFromType(String sourcetype)

    Create a PCM_source from a "type" (use this if you're going to load its state via LoadState/ProjectStateContext).
    Valid types include "WAVE", "MIDI", or whatever plug-ins define as well.

    Returnvalues:
    PCM_source src

    Parameters:
    string sourcetype


    ^ Reaper version 5.62PCM_Source_Destroy

    C: void PCM_Source_Destroy(PCM_source* src)
    EEL2: PCM_Source_Destroy(PCM_source src)
    Lua: reaper.PCM_Source_Destroy(PCM_source src)
    Python: RPR_PCM_Source_Destroy(PCM_source src)

    Deletes a PCM_source -- be sure that you remove any project reference before deleting a source

    Parameters:
    PCM_source src
    the source to be deleted


    ^ Reaper version 5.974 JS version 0.951Xen_GetMediaSourceSamples

    C: int Xen_GetMediaSourceSamples(PCM_source* src, void* destbuf, int destbufoffset, int numframes, int numchans, double samplerate, double sourceposition)
    EEL2: int extension_api("Xen_GetMediaSourceSamples", PCM_source src, void* destbuf, int destbufoffset, int numframes, int numchans, samplerate, sourceposition)
    Lua: integer retval = reaper.Xen_GetMediaSourceSamples(PCM_source src, identifier destbuf, integer destbufoffset, integer numframes, integer numchans, number samplerate, number sourceposition)
    Python: Int retval = Xen_GetMediaSourceSamples(PCM_source src, void destbuf, Int destbufoffset, Int numframes, Int numchans, Float samplerate, Float sourceposition)

    Get interleaved audio data from media source

    Returnvalues:
    integer retval

    Parameters:
    PCM_source src
    identifier destbuf
    integer destbufoffset
    integer numframes
    integer numchans
    number samplerate
    number sourceposition


    ^ Reaper version 5.62GetToggleCommandState2

    C: int retval = (*GetToggleCommandState2)(KbdSectionInfo* section, int command_id)

    Get Toggle Command State 2

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    int command_id
    the command-id of the command, whose toggle-state you want


    ^ Reaper version 5.62GetToggleCommandStateThroughHooks

    C: int retval = (*GetToggleCommandStateThroughHooks)(KbdSectionInfo* section, int command_id)

    Returns the state of an action via extension plugins' hooks.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    MediaTrack* section
    the section, in which the action appears in
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    int command_id
    the command-id of the action, whose state you want


    ^ Reaper version 5.62KBD_OnMainActionEx

    C: int retval = (*KBD_OnMainActionEx)(int cmd, int val, int valhw, int relmode, HWND hwnd, ReaProject* proj)

    val/valhw are used for midi stuff.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    int cmd
    int val
    val=[0..127] and valhw=-1 (midi CC)
    int valhw
    valhw >=0 (midi pitch (valhw | val<<7))
    int relmode
    relmode absolute (0) or 1/2/3 for relative adjust modes
    HWND hwnd
    ReaProject* proj


    ^ Reaper version 5.62kbd_RunCommandThroughHooks

    C: bool retval = (*kbd_RunCommandThroughHooks)(KbdSectionInfo* section, int* actionCommandID, int* val, int* valhw, int* relmode, HWND hwnd)

    Run command through hooks. actioncommandID may get modified.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    int* actionCommandID
    the commandid-number of the action you want to run.
    int* val
    int* valhw
    int* relmode
    HWND hwnd


    ^ Reaper version 5.62kbd_getCommandName

    C: void (*kbd_getCommandName)(int cmd, char* s, KbdSectionInfo* section)

    Get the string of a key assigned to command "cmd" in a section.
    This function is poorly named as it doesn't return the command's name, see kbd_getTextFromCmd.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    int cmd
    commandid of the action
    char* s
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer

    see also:
  • kbd_getTextFromCmd - get text from a command


  • ^ Reaper version 5.62kbd_getTextFromCmd

    C: const char* retval = (*kbd_getTextFromCmd)(int cmd, KbdSectionInfo* section)

    Get text from Command

    Stored in reaper_plugin_functions.h

    Returnvalues:
    const char*

    Parameters:
    int cmd
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer


    ^ Reaper version 5.62kbd_processMidiEventActionEx

    C: bool retval = (*kbd_processMidiEventActionEx)(MIDI_event_t* evt, KbdSectionInfo* section, HWND hwndCtx)

    Process Midi Event Action

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    MIDI_event_t* evt
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    HWND hwndCtx


    ^ Reaper version 5.62kbd_translateAccelerator

    C: int retval = (*kbd_translateAccelerator)(HWND hwnd, MSG* msg, KbdSectionInfo* section)

    Pass in the HWND to receive commands, a MSG of a key command, and a valid section,
    and kbd_translateAccelerator() will process it looking for any keys bound to it, and send the messages off.
    Returns 1 if processed, 0 if no key binding found.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    HWND hwnd
    MSG* msg
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer


    ^ Reaper version 5.62Audio_RegHardwareHook

    C: int retval = (*Audio_RegHardwareHook)(bool isAdd, audio_hook_register_t* reg)

    Registers Audio Hardware-Hook.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    bool isAdd
    audio_hook_register_t* reg


    ^ Reaper version 5.62CalculatePeaks

    C: int retval = (*CalculatePeaks)(PCM_source_transfer_t* srcBlock, PCM_source_peaktransfer_t* pksBlock)

    Calculates Peaks.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    PCM_source_transfer_t* srcBlock
    PCM_source_peaktransfer_t* pksBlock


    ^ Reaper version 5.62CalculatePeaksFloatSrcPtr

    C: int retval = (*CalculatePeaksFloatSrcPtr)(PCM_source_transfer_t* srcBlock, PCM_source_peaktransfer_t* pksBlock)

    Calculates Peaks.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    PCM_source_transfer_t* srcBlock
    PCM_source_peaktransfer_t* pksBlock


    ^ Reaper version 5.62GetPeaksBitmap

    C: void* (*GetPeaksBitmap)(PCM_source_peaktransfer_t* pks, double maxamp, int w, int h, LICE_IBitmap* bmp)

    See note in reaper_plugin.h about PCM_source_peaktransfer_t::samplerate

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    PCM_source_peaktransfer_t* pks
    double maxamp
    int w
    int h
    LICE_IBitmap* bmp


    ^ Reaper version 5.62HiresPeaksFromSource

    C: void (*HiresPeaksFromSource)(PCM_source* src, PCM_source_peaktransfer_t* block)

    Hires peaks from source.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    PCM_source* src
    PCM_source_peaktransfer_t* block


    ^ Reaper version 5.62IsInRealTimeAudio

    C: int retval = (*IsInRealTimeAudio)()

    Are we in a realtime audio thread (between OnAudioBuffer calls,not in some worker/anticipative FX thread)? threadsafe

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval


    ^ Reaper version 5.62PCM_Sink_Create

    C: PCM_sink* retval = (*PCM_Sink_Create)(const char* filename, const char* cfg, int cfg_sz, int nch, int srate, bool buildpeaks)

    PCM sink create

    Stored in reaper_plugin_functions.h

    Returnvalues:
    PCM_sink* retval

    Parameters:
    const char* filename
    const char* cfg
    int cfg_sz
    int nch
    int srate
    bool buildpeaks


    ^ Reaper version 5.62PCM_Sink_CreateEx

    C: PCM_sink* retval = (*PCM_Sink_CreateEx)(ReaProject* proj, const char* filename, const char* cfg, int cfg_sz, int nch, int srate, bool buildpeaks)

    PCM sink create ex.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    PCM_sink* retval

    Parameters:
    ReaProject* proj
    the project-number. 0 for the current project.
    const char* filename
    const char* cfg
    int cfg_sz
    int nch
    int srate
    bool buildpeaks


    ^ Reaper version 5.62PCM_Source_CreateFromSimple

    C: PCM_source* retval = (*PCM_Source_CreateFromSimple)(ISimpleMediaDecoder* dec, const char* fn)

    PCM_Source create from simple

    Stored in reaper_plugin_functions.h

    Returnvalues:
    PCM_source* retval

    Parameters:
    ISimpleMediaDecoder* dec
    const char* fn


    ^ Reaper version 5.62PeakBuild_Create

    C: REAPER_PeakBuild_Interface* retval = (*PeakBuild_Create)(PCM_source* src, const char* fn, int srate, int nch)

    Peak build create

    Stored in reaper_plugin_functions.h

    Returnvalues:
    REAPER_PeakBuild_Interface* retval

    Parameters:
    PCM_source* src
    const char* fn
    int srate
    int nch


    ^ Reaper version 5.62PeakBuild_CreateEx

    C: REAPER_PeakBuild_Interface* retval = (*PeakBuild_CreateEx)(PCM_source* src, const char* fn, int srate, int nch, int flags)

    Peakbuild create-ex. flags&1 for FP support

    Stored in reaper_plugin_functions.h

    Returnvalues:
    REAPER_PeakBuild_Interface* retval

    Parameters:
    PCM_source* src
    const char* fn
    int srate
    int nch
    int flags


    ^ Reaper version 5.62PeakGet_Create

    C: REAPER_PeakGet_Interface* retval =(*PeakGet_Create)(const char* fn, int srate, int nch)

    Peak get create.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    REAPER_PeakGet_Interface* retval

    Parameters:
    const char* fn
    int srate
    int nch


    ^ Reaper version 5.62get_config_var

    C: void* (*get_config_var)(const char* name, int* szOut)

    gets config var

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    const char* name
    int* szOut

    see also:
  • Reaper_Config_Variables.html - all config-variables documented


  • ^ Reaper version 5.62get_midi_config_var

    C: void* (*get_midi_config_var)(const char* name, int* szOut);

    Deprecated.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    const char* name
    int* szOut


    ^ Reaper version 5.62projectconfig_var_addr

    C: void* (*projectconfig_var_addr)(ReaProject* proj, int idx)

    Project config var addr.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    ReaProject* proj
    the project-number. 0 for the current project.
    int idx

    see also:
  • Reaper_Config_Variables.html - all valid config-variables documented


  • ^ Reaper version 5.62projectconfig_var_getoffs

    C: int retval = (*projectconfig_var_getoffs)(const char* name, int* szOut)

    Returns offset to pass to projectconfig_var_addr() to get project-config var of name. szout gets size of object.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    const char* name
    int* szOut
    size of the object

    see also:
  • Reaper_Config_Variables.html - all valid config-variables documented


  • ^ Reaper version 6.68realloc_cmd_clear

    C: void (*realloc_cmd_clear)(int tok)

    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.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    int tok


    ^ Reaper version 6.68realloc_cmd_register_buf

    C: int (*realloc_cmd_register_buf)(char** ptr, int* ptr_size)

    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.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int

    Parameters:
    char** ptr
    int* ptr_size


    ^ Reaper version 5.62GetPreferredDiskReadMode

    C: void (*GetPreferredDiskReadMode)(int* mode, int* nb, int* bs)

    Gets user configured preferred disk read mode. mode/nb/bs are all parameters that should be passed to WDL_FileRead, see for more information.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    int* mode
    int* nb
    int* bs


    ^ Reaper version 5.62GetPreferredDiskReadModePeak

    C: void (*GetPreferredDiskReadModePeak)(int* mode, int* nb, int* bs)

    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.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    int* mode
    int* nb
    int* bs


    ^ Reaper version 5.62GetPreferredDiskWriteMode

    C: void (*GetPreferredDiskWriteMode)(int* mode, int* nb, int* bs)

    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.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    int* mode
    int* nb
    int* bs


    ^ Reaper version 6.13update_disk_counters

    C: void (*update_disk_counters)(int readamt, int writeamt)

    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

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    int readamt
    int writeamt


    ^ Reaper version 5.62LICE_Arc

    C: 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)

    LICE arc

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    float cx
    float cy
    float r
    float minAngle
    float maxAngle
    LICE_pixel color
    float alpha
    int mode
    bool aa


    ^ Reaper version 5.62LICE_Blit

    C: 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)

    LICE blit

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    LICE_IBitmap* src
    int dstx
    int dsty
    int srcx
    int srcy
    int srcw
    int srch
    float alpha
    int mode


    ^ Reaper version 5.62LICE_Blur

    C: void (*LICE_Blur)(LICE_IBitmap* dest, LICE_IBitmap* src, int dstx, int dsty, int srcx, int srcy, int srcw, int srch)

    LICE blur

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    LICE_IBitmap* src
    int dstx
    int dsty
    int srcx
    int srcy
    int srcw
    int srch


    ^ Reaper version 5.62LICE_BorderedRect

    C: void (*LICE_BorderedRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel bgcolor, LICE_pixel fgcolor, float alpha, int mode)

    LICE bordered rect.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x
    int y
    int w
    int h
    LICE_pixel bgcolor
    LICE_pixel fgcolor
    float alpha
    int mode


    ^ Reaper version 5.62LICE_Circle

    C: void (*LICE_Circle)(LICE_IBitmap* dest, float cx, float cy, float r, LICE_pixel color, float alpha, int mode, bool aa)

    LICE circle

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    float cx
    float cy
    float r
    LICE_pixel color
    float alpha
    int mode
    bool aa


    ^ Reaper version 5.62LICE_Clear

    C: void (*LICE_Clear)(LICE_IBitmap* dest, LICE_pixel color)

    LICE clear

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    LICE_pixel color


    ^ Reaper version 5.62LICE_ClearRect

    C: void (*LICE_ClearRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel mask, LICE_pixel orbits)

    LICE clear rect

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x
    int y
    int w
    int h
    LICE_pixel mask
    LICE_pixel orbits


    ^ Reaper version 5.62LICE_Copy

    C: void (*LICE_Copy)(LICE_IBitmap* dest, LICE_IBitmap* src)

    LICE copy

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    LICE_IBitmap* src


    ^ Reaper version 5.62LICE_CreateBitmap

    C: LICE_IBitmap* retval = (*LICE_CreateBitmap)(int mode, int w, int h)

    Create a new bitmap. this is like calling new LICE_MemBitmap (mode=0) or new LICE_SysBitmap (mode=1).

    Stored in reaper_plugin_functions.h

    Returnvalues:
    LICE_IBitmap* retval

    Parameters:
    int mode
    int w
    int h


    ^ Reaper version 5.62LICE_CreateFont

    C: LICE_IFont* retval = (*LICE_CreateFont)()

    LICE create font

    Stored in reaper_plugin_functions.h

    Returnvalues:
    LICE_IFont* retval


    ^ Reaper version 5.80LICE_DrawCBezier

    C: 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)

    LICE Draw C Bezier

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    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


    ^ Reaper version 5.62LICE_DrawChar

    C: void (*LICE_DrawChar)(LICE_IBitmap* bm, int x, int y, char c, LICE_pixel color, float alpha, int mode)

    LICE draw char

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* bm
    int x
    int y
    char c
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.62LICE_DrawGlyph

    C: 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)

    LICE draw glyph

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x
    int y
    LICE_pixel color
    LICE_pixel_chan* alphas
    int glyph_w
    int glyph_h
    float alpha
    int mode


    ^ Reaper version 5.62LICE_DrawRect

    C: void (*LICE_DrawRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel color, float alpha, int mode)

    LICE draw rect

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x
    int y
    int w
    int h
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.62LICE_DrawText

    C: void (*LICE_DrawText)(LICE_IBitmap* bm, int x, int y, const char* string, LICE_pixel color, float alpha, int mode)

    LICE draw text

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* bm
    int x
    int y
    const char* string
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.95LICE_FillCBezier

    C: 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);

    LICE Fill CBezier

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    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


    ^ Reaper version 5.62LICE_FillCircle

    C: void (*LICE_FillCircle)(LICE_IBitmap* dest, float cx, float cy, float r, LICE_pixel color, float alpha, int mode, bool aa)

    LICE fill circle

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    float cx
    float cy
    float r
    LICE_pixel color
    float alpha
    int mode
    bool aa


    ^ Reaper version 5.62LICE_FillConvexPolygon

    C: void (*LICE_FillConvexPolygon)(LICE_IBitmap* dest, int* x, int* y, int npoints, LICE_pixel color, float alpha, int mode)

    LICE fill convex polygon

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int* x
    int* y
    int npoints
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.62LICE_FillRect

    C: void (*LICE_FillRect)(LICE_IBitmap* dest, int x, int y, int w, int h, LICE_pixel color, float alpha, int mode)

    LICE fill rect

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x
    int y
    int w
    int h
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.62LICE_FillTrapezoid

    C: 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)

    LICE fill trapezoid

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x1a
    int x1b
    int y1
    int x2a
    int x2b
    int y2
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.62LICE_FillTriangle

    C: 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)

    LICE fill triangle

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x1
    int y1
    int x2
    int y2
    int x3
    int y3
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.62LICE_GetPixel

    C: LICE_pixel retval = (*LICE_GetPixel)(LICE_IBitmap* bm, int x, int y)

    LICE get pixel

    Stored in reaper_plugin_functions.h

    Returnvalues:
    LICE_pixel retval

    Parameters:
    LICE_IBitmap* bm
    int x
    int y


    ^ Reaper version 5.62LICE_GradRect

    C: 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)

    LICE grad rect

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    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


    ^ Reaper version 5.62LICE_Line

    C: void (*LICE_Line)(LICE_IBitmap* dest, float x1, float y1, float x2, float y2, LICE_pixel color, float alpha, int mode, bool aa)

    LICE line

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    float x1
    float y1
    float x2
    float y2
    LICE_pixel color
    float alpha
    int mode
    bool aa


    ^ Reaper version 5.62LICE_LineInt

    C: void (*LICE_LineInt)(LICE_IBitmap* dest, int x1, int y1, int x2, int y2, LICE_pixel color, float alpha, int mode, bool aa)

    LICE line int

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x1
    int y1
    int x2
    int y2
    LICE_pixel color
    float alpha
    int mode
    bool aa


    ^ Reaper version 5.62LICE_LoadPNG

    C: LICE_IBitmap* retval = (*LICE_LoadPNG)(const char* filename, LICE_IBitmap* bmp)

    LICE load png

    Stored in reaper_plugin_functions.h

    Returnvalues:
    LICE_IBitmap* retval

    Parameters:
    const char* filename
    Lice_IBitmap* bmp


    ^ Reaper version 5.62LICE_LoadPNGFromResource

    C: LICE_IBitmap* retval = (*LICE_LoadPNGFromResource)(HINSTANCE hInst, int resid, LICE_IBitmap* bmp)

    LICE load png from resource

    Stored in reaper_plugin_functions.h

    Returnvalues:
    LICE_IBitmap* retval

    Parameters:
    HINSTANCE hInst
    int resid
    LICE_IBitmap* bmp


    ^ Reaper version 5.62LICE_MeasureText

    C: void (*LICE_MeasureText)(const char* string, int* w, int* h)

    LICE measure text

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    const char* string
    int* w
    int* h


    ^ Reaper version 5.62LICE_MultiplyAddRect

    C: 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)

    LICE multiplay add rect

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    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


    ^ Reaper version 5.62LICE_PutPixel

    C: void (*LICE_PutPixel)(LICE_IBitmap* bm, int x, int y, LICE_pixel color, float alpha, int mode)

    LICE put pixel

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* bm
    int x
    int y
    LICE_pixel color
    float alpha
    int mode


    ^ Reaper version 5.62LICE_RotatedBlit

    C: 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)

    LICE rotate blit. These coordinates are offset from the center of the image,in source pixel coordinates.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    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


    ^ Reaper version 5.62LICE_RoundRect

    C: 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)

    LICE round rect

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* drawbm
    float xpos
    float ypos
    float w
    float h
    int cornerradius
    LICE_pixel col
    float alpha
    int mode
    bool aa


    ^ Reaper version 5.62LICE_ScaledBlit

    C: 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)

    LICE scaled blit.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    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


    ^ Reaper version 5.62LICE_SimpleFill

    C: void (*LICE_SimpleFill)(LICE_IBitmap* dest, int x, int y, LICE_pixel newcolor, LICE_pixel comparemask, LICE_pixel keepmask)

    LICE simple fill

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    int x
    int y
    LICE_pixel newcolor
    LICE_pixel comparemask
    LICE_pixel keepmask


    ^ Reaper version 6.48LICE_ThickFLine

    C: void (*LICE_ThickFLine)(LICE_IBitmap* dest, double x1, double y1, double x2, double y2, LICE_pixel color, float alpha, int mode, int wid);

    LICE simple fill

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* dest
    double x1
    double y1
    double x2
    double y2
    LICE_pixel color
    float alpha
    int mode
    int wid


    ^ Reaper version 5.62LICE__Destroy

    C: void (*LICE__Destroy)(LICE_IBitmap* bm)

    LICE destroy.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IBitmap* bm


    ^ Reaper version 5.62LICE__DestroyFont

    C: void (*LICE__DestroyFont)(LICE_IFont* font);

    LICE destroy-font.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IFont* font


    ^ Reaper version 5.62LICE__DrawText

    C: int retval = (*LICE__DrawText)(LICE_IFont* font, LICE_IBitmap* bm, const char* str, int strcnt, RECT* rect, UINT dtFlags)

    LICE draw text.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    LICE_IFont* font
    LICE_IBitmap* bm
    const char* str
    int strcnt
    RECT* rect
    UINT dtFlags


    ^ Reaper version 5.62LICE__GetBits

    C: void* (*LICE__GetBits)(LICE_IBitmap* bm)

    LICE get bits.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    LICE_IBitmap* bm


    ^ Reaper version 5.62LICE__GetDC

    C: HDC retval = (*LICE__GetDC)(LICE_IBitmap* bm)

    LICE__GetDC

    Returnvalues:
    HDC retval

    Parameters:
    LICE_IBitmap* bm


    ^ Reaper version 5.62LICE__GetHeight

    C: int retval = (*LICE__GetHeight)(LICE_IBitmap* bm)

    LICE get height

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    LICE_IBitmap* bm


    ^ Reaper version 5.62LICE__GetRowSpan

    C: int retval = (*LICE__GetRowSpan)(LICE_IBitmap* bm)

    LICE get row span.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    LICE_IBitmap* bm


    ^ Reaper version 5.62LICE__GetWidth

    C: int retval = (*LICE__GetWidth)(LICE_IBitmap* bm)

    LICE get width.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    LICE_IBitmap* bm


    ^ Reaper version 5.62LICE__IsFlipped

    C: bool retval = (*LICE__IsFlipped)(LICE_IBitmap* bm)

    LICE is flipped

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    LICE_IBitmap* bm


    ^ Reaper version 5.62LICE__SetBkColor

    C: LICE_pixel retval = (*LICE__SetBkColor)(LICE_IFont* font, LICE_pixel color)

    LICE set bk color

    Stored in reaper_plugin_functions.h

    Returnvalues:
    LICE_pixel retval

    Parameters:
    LICE_IFont* font
    LICE_pixel color


    ^ Reaper version 5.62LICE__SetFromHFont

    C: void (*LICE__SetFromHFont)(LICE_IFont* font, HFONT hfont, int flags)

    LICE set from h-font

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IFont* font
    font must REMAIN valid,unless LICE_FONT_FLAG_PRECALCALL is set
    HFONT hfont
    int flags


    ^ Reaper version 5.62LICE__SetTextColor

    C: LICE_pixel retval = (*LICE__SetTextColor)(LICE_IFont* font, LICE_pixel color)

    LICE set text color

    Stored in reaper_plugin_functions.h

    Returnvalues:
    LICE_pixel retval

    Parameters:
    LICE_IFont* font
    LICE_pixel color


    ^ Reaper version 5.62LICE__SetTextCombineMode

    C: void (*LICE__SetTextCombineMode)(LICE_IFont* ifont, int mode, float alpha)

    LICE set text combine mode

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    LICE_IFont* ifont
    int mode
    float alpha


    ^ Reaper version 5.62LICE__resize

    C: bool retval = (*LICE__resize)(LICE_IBitmap* bm, int w, int h)

    LICE resize

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    LICE_IBitmap* bm
    int w
    int h


    ^ Reaper version 5.62WDL_VirtualWnd_ScaledBlitBG

    C: bool retval = (*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)

    WDL virtualwnd scale blit bg.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    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


    ^ Reaper version 6.65GetSetMediaTrackInfo

    C: void* (*GetSetMediaTrackInfo)(MediaTrack* tr, const char* parmname, void* setNewValue)

    Gets/Sets MediaTrack-parameters. Works like GetMediaTrackInfo_Value and SetMediaTrackInfo_Value but has more parameters.

         -P_PARTRACK : MediaTrack * : parent track (read-only)
         -P_PROJECT : ReaProject * : parent project (read-only)
         -P_NAME : char * : track name (on master returns NULL)
         -P_ICON : const char * : track icon (full filename, or relative to resource_path/data/track_icons)
         -P_MCP_LAYOUT : const char * : layout name
         -P_RAZOREDITS : const char * : list of razor edit areas, as space-separated triples of start time, end time, and envelope GUID string.
           -Example: "0.00 1.00 \"\" 0.00 1.00 "{xyz-...}"
         -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, optional fixed/fipm top y-position, optional fixed/fipm bottom y-position(fipm means fixed item positioning).
          - Example: "0.0 1.0,0.0 1.0 "{xyz-...}",1.0 2.0 "" 0.25 0.5"
         -P_TCP_LAYOUT : const char * : layout name
         -P_EXT:xyz : char * : extension-specific persistent data
         -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).
         -GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.
         -B_MUTE : bool * : muted
         -B_PHASE : bool * : track phase inverted
         -B_RECMON_IN_EFFECT : bool * : record monitoring in effect (current audio-thread playback state, read-only)
         -IP_TRACKNUMBER : int : track number 1-based, 0=not found, -1=master track (read-only, returns the int directly)
         -I_SOLO : int * : soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place
         -I_FXEN : int * : fx enabled, 0=bypassed, !0=fx active
         -I_RECARM : int * : record armed, 0=not record armed, 1=record armed
         -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.
         -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
         -I_RECMODE_FLAGS : int * : record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader)
         -I_RECMON : int * : record monitoring, 0=off, 1=normal, 2=not when playing (tape style)
         -I_RECMONITEMS : int * : monitor items while recording, 0=off, 1=on
         -I_AUTOMODE : int * : track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch
         -I_NCHAN : int * : number of track channels, 2-64, even numbers only
         -I_SELECTED : int * : track selected, 0=unselected, 1=selected
         -I_WNDH : int * : current TCP window height in pixels including envelopes (read-only)
         -I_TCPH : int * : current TCP window height in pixels not including envelopes (read-only)
         -I_TCPY : int * : current TCP window Y-position in pixels relative to top of arrange view (read-only)
         -I_MCPX : int * : current MCP X-position in pixels relative to mixer container
         -I_MCPY : int * : current MCP Y-position in pixels relative to mixer container
         -I_MCPW : int * : current MCP width in pixels
         -I_MCPH : int * : current MCP height in pixels
         -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
         -I_FOLDERCOMPACT : int * : folder compacted state (only valid on folders), 0=normal, 1=small, 2=tiny children
         -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)
         -I_PERFFLAGS : int * : track performance flags, &1=no media buffering, &2=no anticipative FX
         -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
         -I_HEIGHTOVERRIDE : int * : custom height override for TCP window, 0 for none, otherwise size in pixels
         -B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking)
         -D_VOL : double * : trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
         -D_PAN : double * : trim pan of track, -1..1
         -D_WIDTH : double * : width of track, -1..1
         -D_DUALPANL : double * : dualpan position 1, -1..1, only if I_PANMODE==6
         -D_DUALPANR : double * : dualpan position 2, -1..1, only if I_PANMODE==6
         -I_PANMODE : int * : pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan
         -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
         -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
         -P_ENV:      -B_SHOWINMIXER : bool * : track control panel visible in mixer (do not use on master track)
         -B_SHOWINTCP : bool * : track control panel visible in arrange view (do not use on master track)
         -B_MAINSEND : bool * : track sends audio to parent
         -C_MAINSEND_OFFS : char * : channel offset of track send to parent
         -I_FREEMODE : int * : 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing)
         -C_BEATATTACHMODE : char * : track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only)
         -F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed)
         -F_MCP_FXPARM_SCALE : float * : scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed)
         -F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed)
         -F_TCP_FXPARM_SCALE : float * : scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed)
         -I_PLAY_OFFSET_FLAG : int * : track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds)
         -D_PLAY_OFFSET : double * : track media playback offset, units depend on I_PLAY_OFFSET_FLAG
        
    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    MediaTrack* tr
    the Mediatrack-object, that shall be modified
    const char* parmname
    the parameter to be gotten or set
    void* setNewValue
    the new value. See the description of parmname above for more details


    ^ Reaper version 5.62GetTrackInfo

    C: const char* retval = (*GetTrackInfo)(INT_PTR track, int* flags)

    Gets track info (returns name).

    Stored in reaper_plugin_functions.h

    Returnvalues:
    const char* retval

    Parameters:
    INT_PTR track
    track index, -1=master, 0..n, or cast a MediaTrack* to int
    int* flags
    if flags is non-NULL, will be set to:
    &1, folder
    &2, selected
    &4, has fx enabled
    &8, muted
    &16, soloed
    &32, SIP'd (with &16)
    &64, rec armed


    ^ Reaper version 6.34GetSetMediaItemTakeInfo

    C: void* (*GetSetMediaItemTakeInfo)(MediaItem_Take* tk, const char* parmname, void* setNewValue)

    Gets/Sets Media Item Take-parameters. Works like GetMediaItemTakeInfo_Value and SetMediaItemTakeInfo_Value but has more parameters.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    MediaItek_Take* tk
    a MediaItem_Take-object, that shall be altered
    const char* parmname
    the name of the parameter to be changed
    P_TRACK : pointer to MediaTrack (read-only)
    P_ITEM : pointer to MediaItem (read-only)
    P_SOURCE : PCM_source *. Note that if setting this, you should first retrieve the old source, set the new, THEN delete the old.
    GUID : GUID * : 16-byte GUID, can query or update
    P_NAME : char * to take name
    D_STARTOFFS : double *, start offset in take of item
    D_VOL : double *, take volume
    D_PAN : double *, take pan
    D_PANLAW : double *, take pan law (-1.0=default, 0.5=-6dB, 1.0=+0dB, etc)
    D_PLAYRATE : double *, take playrate (1.0=normal, 2.0=doublespeed, etc)
    D_PITCH : double *, take pitch adjust (in semitones, 0.0=normal, +12 = one octave up, etc)
    B_PPITCH, bool *, preserve pitch when changing rate
    I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
    I_LASTH : int * : height in pixels (read-only)
    I_CHANMODE, int *, channel mode (0=normal, 1=revstereo, 2=downmix, 3=l, 4=r)
    I_PITCHMODE, int *, pitch shifter mode, -1=proj default, otherwise high word=shifter low word = parameter
    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 (though will store the color anyway).
    IP_TAKENUMBER : int, take number within the item (read-only, returns the take number directly)
    void* setNewValue
    the new value to be set to the parameter. See the description of parmname above for more details.


    ^ Reaper version 5.62IsItemTakeActiveForPlayback

    C: bool retval = (*IsItemTakeActiveForPlayback)(MediaItem* item, MediaItem_Take* take)

    get whether a take will be played (active take, unmuted, etc)

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    MediaItem* item
    MediaItem in which the take is to be checked
    MediaItem_Take* take
    the MediaItem_Take to be checked


    ^ Reaper version 6.34GetSetMediaItemInfo

    C: void* (*GetSetMediaItemInfo)(MediaItem* item, const char* parmname, void* setNewValue)

    Get/Set Media Item Info

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    MediaItem* item
    a MediaItem-object
    const char* parmname
    the parameter to be gotten/set
    P_TRACK : MediaTrack * (read only)
    B_MUTE : bool * to muted state
    B_MUTE_ACTUAL : bool * : muted (ignores solo). setting this value will not affect C_MUTE_SOLO.
    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.
    B_LOOPSRC : bool * to loop source
    B_ALLTAKESPLAY : bool * to all takes play
    B_UISEL : bool * to ui selected
    C_BEATATTACHMODE : char * to one char of beat attached mode, -1=def, 0=time, 1=allbeats, 2=beatsosonly
    C_LOCK : char * to one char of lock flags (&1 is locked, currently)
    D_VOL : double *, take volume (negative if take polarity is flipped)
    D_POSITION : double * of item position (seconds)
    D_LENGTH : double * of item length (seconds)
    D_SNAPOFFSET : double * of item snap offset (seconds)
    D_FADEINLEN : double * of item fade in length (manual, seconds)
    D_FADEOUTLEN : double * of item fade out length (manual, seconds)
    D_FADEINDIR : double * of item fade in curve [-1; 1]
    D_FADEOUTDIR : double * of item fade out curve [-1; 1]
    D_FADEINLEN_AUTO : double * of item autofade in length (seconds, -1 for no autofade set)
    D_FADEOUTLEN_AUTO : double * of item autofade out length (seconds, -1 for no autofade set)
    C_FADEINSHAPE : int * to fadein shape, 0=linear, ...
    C_FADEOUTSHAPE : int * to fadeout shape
    I_GROUPID : int * to group ID (0 = no group)
    I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
    I_LASTH : int * : height in pixels (read-only)
    I_LASTY : int * to last y position in track (readonly)
    I_LASTH : int * to last height in track (readonly)
    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 (though will store the color anyway).
    I_CURTAKE : int * to active take
    IP_ITEMNUMBER : int, item number within the track (read-only, returns the item number directly)
    F_FREEMODE_Y : float * to free mode y position (0..1)
    F_FREEMODE_H : float * to free mode height (0..1)
    P_NOTES : char * : item note text (do not write to returned pointer, use setNewValue to update)
    void* setNewValue
    the new value to be set, refer description of parmname for the values


    ^ Reaper version 5.62AddCustomizableMenu

    C: bool retval = (*AddCustomizableMenu)(const char* menuidstr, const char* menuname, const char* kbdsecname, bool addtomainmenu)

    Adds customizable menu.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    const char* menuidstr
    is some unique identifying string
    const char* menuname
    is for main menus only (displayed in a menu bar somewhere), NULL otherwise
    const char* kbdsecname
    is the name of the KbdSectionInfo registered by this plugin, or NULL for the main actions section
    bool addtomainmenu
    true, add to main menu; false, don't add to main menu


    ^ Reaper version 5.62AddExtensionsMainMenu

    C: bool retval = (*AddExtensionsMainMenu)()

    Add an Extensions main menu, which the extension can populate/modify with plugin_register("hookcustommenu")

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    see also:
  • plugin_register - hook a menu using plugin_register("hookcustommenu")


  • ^ Reaper version 5.62DuplicateCustomizableMenu

    C: bool retval = (*DuplicateCustomizableMenu)(void* srcmenu, void* destmenu)

    Populate destmenu with all the entries and submenus found in srcmenu.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    void* srcmenu
    void* destmenu


    ^ Reaper version 5.62GetContextMenu

    C: HMENU retval = (*GetContextMenu)(int idx)

    gets context menus. submenu 0:trackctl, 1:mediaitems, 2:ruler, 3:empty track area

    Stored in reaper_plugin_functions.h

    Returnvalues:
    HMENU retval

    Parameters:
    int idx


    ^ Reaper version 5.62kbd_ProcessActionsMenu

    C: void (*kbd_ProcessActionsMenu)(HMENU menu, KbdSectionInfo* section)

    Process actions-menu.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    HMENU menu
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer


    ^ Reaper version 5.62kbd_reprocessMenu

    C: void (*kbd_reprocessMenu)(HMENU menu, KbdSectionInfo* section)

    Reprocess a menu recursively, setting key assignments to what their command IDs are mapped to.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    HMENU menu
    KbdSectionInfo* section
    the section, in which the action exists
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer


    ^ Reaper version 5.62CreateMIDIInput

    C: midi_Input* retval = (*CreateMIDIInput)(int dev)

    Can only reliably create midi access for devices not already opened in prefs/MIDI, suitable for control surfaces etc.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    midi_Input* retval

    Parameters:
    int dev


    ^ Reaper version 5.62CreateMIDIOutput

    C: midi_Output* retval = (*CreateMIDIOutput)(int dev, bool streamMode, int* msoffset100)

    Can only reliably create midi access for devices not already opened in prefs/MIDI, suitable for control surfaces etc.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    midi_Output* retval

    Parameters:
    int dev
    bool streamMode
    true, msoffset points to a persistent variable(see msoffset100 for more details)
    int* msoffset100
    points to a persistent variable that can change and reflects added delay to output in 100ths of a millisecond.


    ^ Reaper version 6.02GetSetTrackMIDISupportFile

    C: const char* retval = (*GetSetTrackMIDISupportFile)(ReaProject* proj, MediaTrack* track, int which, const char* filename)

    Get or set the filename for storage of the MIDI bank/program select file.
    "which" must be 1.

    If fn != NULL, a new track MIDI storage file will be set; otherwise the existing track MIDI storage file will be returned.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    const char* retval

    Parameters:
    ReaProject* proj
    the project-number. 0 for the current project.
    MediaTrack* track
    the MediaTrack-object of the track to be treated
    int which
    which MIDI-file to use
    0, MIDI colormap image file,
    1, MIDI bank/program select file,
    2, MIDI text string file,
    3, MIDI note mapping file.
    const char* filename
    If fn != NULL, a new track MIDI storage file will be set; otherwise the existing track MIDI storage file will be returned.


    ^ Reaper version 5.62MIDI_eventlist_Create

    C: MIDI_eventlist* retval = (*MIDI_eventlist_Create)()

    Create a MIDI_eventlist object. The returned object must be deleted with MIDI_eventlist_destroy.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    MIDI_eventlist* retval

    see also:
  • MIDI_eventlist_destroy - destroy an eventlist-object


  • ^ Reaper version 5.62MIDI_eventlist_Destroy

    C: void (*MIDI_eventlist_Destroy)(MIDI_eventlist* evtlist)

    Destroy a MIDI_eventlist object that was created using MIDI_eventlist_Create.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    MIDI_eventlist* evtlist

    see also:
  • MIDI_eventlist_Create - create a MIDI eventlist-object


  • ^ Reaper version 5.62PCM_Sink_CreateMIDIFile

    C: PCM_sink* retval = (*PCM_Sink_CreateMIDIFile)(const char* filename, const char* cfg, int cfg_sz, double bpm, int div)

    PCM sink create MIDI file.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    PCM_sink* retval

    Parameters:
    const char* filename
    const char* cfg
    int cfg_sz
    double bpm
    int div


    ^ Reaper version 5.62PCM_Sink_CreateMIDIFileEx

    C: PCM_sink* retval = (*PCM_Sink_CreateMIDIFileEx)(ReaProject* proj, const char* filename, const char* cfg, int cfg_sz, double bpm, int div)

    PCM sink create MIDI file ex

    Stored in reaper_plugin_functions.h

    Returnvalues:
    PCM_sink* retval

    Parameters:
    ReaProject* proj
    the project-number. 0 for the current project.
    const char* filename
    const char* cfg
    int cfg_sz
    double bpm
    int div


    ^ Reaper version 5.62kbd_OnMidiEvent

    C: void (*kbd_OnMidiEvent)(MIDI_event_t* evt, int dev_index)

    On Midi Event. Can be called from anywhere (threadsafe)

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    MIDI_event_t* evt
    the MIDI-event
    int dev_index


    ^ Reaper version 5.62kbd_OnMidiList

    C: void (*kbd_OnMidiList)(MIDI_eventlist* list, int dev_index)

    On MIDI List. Can be called from anywhere (threadsafe)

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    MIDI_eventlist* list
    int dev_index


    ^ Reaper version 5.62FreeHeapPtr

    C: void (*FreeHeapPtr)(void* ptr)

    free heap memory returned from a Reaper API function

    Stored in reaper_plugin_functions.h

    Parameters:
    void* ptr


    ^ Reaper version 5.62GetSetObjectState

    C: char* retval = (*GetSetObjectState)(void* obj, const char* str)

    get or set the state of a {track,item,envelope} as an RPPXML chunk
    str="" to get the chunk string returned (must call FreeHeapPtr when done)
    supply str to set the state (returns zero)

    Stored in reaper_plugin_functions.h

    Returnvalues:
    char* retval

    Parameters:
    void* obj
    the object, to be modified. Can be MediaItem, TrackEnvelope, MediaTrack.
    const char* str
    supply str to set the state (returns zero); str="" to get the chunk string returned

    see also:
  • FreeHeapPtr - free heap-memory returned from an API-function


  • ^ Reaper version 5.62GetSetObjectState2

    C: char* retval = (*GetSetObjectState2)(void* obj, const char* str, bool isundo)

    get or set the state of a {track,item,envelope} as an RPPXML chunk

    Stored in reaper_plugin_functions.h

    Returnvalues:
    char* retval

    Parameters:
    void* obj
    the object, to be modified. Can be MediaItem, TrackEnvelope, MediaTrack.
    const char* str
    supply str to set the state (returns zero); str="" to get the chunk string returned (must call FreeHeapPtr when done)
    bool isundo
    set, if the state will be used for undo purposes (which may allow REAPER to get the state more efficiently


    ^ Reaper version 5.62IsREAPER

    C: bool retval = (*IsREAPER)()

    Returns true if dealing with REAPER, returns false for ReaMote, etc

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval


    ^ Reaper version 5.62PitchShiftSubModeMenu

    C: int retval = (*PitchShiftSubModeMenu)(HWND hwnd, int x, int y, int mode, int submode_sel)

    menu to select/modify pitch shifter submode, returns new value (or old value if no item selected)

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    HWND hwnd
    int x
    int y
    int mode
    int submode_sel


    ^ Reaper version 5.62REAPERAPI_LoadAPI

    C: int retval = REAPERAPI_LoadAPI(void *(*getAPI)(const char *))

    Checks, whether a certain Reaper-API-function exists.

    Because the API is dynamic, callers should never assume a function exists.
    Check that a non-NULL function pointer was returned before using it (unless
    loaded functions are verified using REAPERAPI_LoadAPI(), see note below).

      1) most source files should just #include "reaper_plugin_functions.h" as is.
      2) one file should #define REAPERAPI_IMPLEMENT before including this file.
      3) the plug-in should call REAPERAPI_LoadAPI(rec->GetFunc) from REAPER_PLUGIN_ENTRYPOINT
         and check the return value for errors (REAPERAPI_LoadAPI will return 0 on success).
        
    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval
    0, if a function exists

    Parameters:
    const char *


    ^ Reaper version 5.62ReaperGetPitchShiftAPI

    C: IReaperPitchShift* retval = (*ReaperGetPitchShiftAPI)(int version)

    version must be REAPER_PITCHSHIFT_API_VER

    Stored in reaper_plugin_functions.h

    Returnvalues:
    IReaperPitchShift* retval

    Parameters:
    int version


    ^ Reaper version 5.62Resampler_Create

    C: REAPER_Resample_Interface* retval = (*Resampler_Create)()

    Resampler create

    Stored in reaper_plugin_functions.h

    Returnvalues:
    REAPER_Resample_Interface* retval


    ^ Reaper version 6.26ResolveRenderPattern

    C: int retval = (*ResolveRenderPattern)(ReaProject* project, const char* path, const char* pattern, char* targets, int targets_sz)

    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.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    ReaProject* project
    const char* path
    const char* pattern
    char* targets
    int targets_sz


    ^ Reaper version 5.62SetRenderLastError

    C: void (*SetRenderLastError)(const char* errorstr)

    Set render last error.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    const char* errorstr


    ^ Reaper version 5.62__mergesort

    C: void (*__mergesort)(void* base, size_t nmemb, size_t size, int (*cmpfunc)(const void*,const void*), void* tmpspace)

    is a stable sorting function with an API similar to qsort().
    HOWEVER, it requires some temporary space, equal to the size of the data being sorted, so you can pass it as the last parameter,
    or NULL and it will allocate and free space internally.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    void* base
    size_t nmemb
    size_t size
    int *cmpfunc...
    void* tmpspace


    ^ Reaper version 5.62kbd_formatKeyName

    C: void (*kbd_formatKeyName)(ACCEL* ac, char* s)

    Format keyname

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    ACCEL* ac
    char* s


    ^ Reaper version 5.62kbd_translateMouse

    C: bool retval = (*kbd_translateMouse)(void* winmsg, unsigned char* midimsg)

    removed from API!

    Translate mouse.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    bool retval

    Parameters:
    void* winmsg
    unsigned char* midimsg


    ^ Reaper version 5.62plugin_getFilterList

    C: const char* retval (*plugin_getFilterList)()

    Plugin get filter list. Returns a double-NULL terminated list of importable media files, suitable for passing to GetOpenFileName() etc. Includes *.* (All files).

    Stored in reaper_plugin_functions.h

    Returnvalues:
    const char* retval


    ^ Reaper version 5.62plugin_getImportableProjectFilterList

    C: const char* retval = (*plugin_getImportableProjectFilterList)()

    Plugin get importable project filter list. Returns a double-NULL terminated list of importable project files, suitable for passing to GetOpenFileName() etc. Includes *.* (All files).

    Stored in reaper_plugin_functions.h

    Returnvalues:
    const char* retval


    ^ Reaper version 5.62plugin_getapi

    C: void* (*plugin_getapi)(const char* name)

    Plugin get api.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    const char* name


    ^ Reaper version 5.62plugin_register

    C: int retval = (*plugin_register)(const char* name, void* infostruct)

    like rec->Register

    if you have a function called myfunction(..) that you want to expose to other extensions or plug-ins, use register("API_myfunction",funcaddress), and "-API_myfunction" to remove.          Other extensions then use GetFunc("myfunction") to get the function pointer.

    REAPER will also export the function address to ReaScript, so your extension could supply a Python module that provides a wrapper called RPR_myfunction(..).
    register("APIdef_myfunction",defstring) will include your function declaration and help in the auto-generated REAPER API header and ReaScript documentation.

    defstring is four null-separated fields: return type, argument types, argument names, and help.

       Example: double myfunction(char* str, int flag) would have defstring="double\0char*,int\0str,flag\0help text for myfunction"

    another thing you can register is "hookcommand", which you pass a callback:

       NON_API: bool runCommand(int command, int flag);
                register("hookcommand",runCommand);

    which returns TRUE to eat (process) the command.

    flag is usually 0 but can sometimes have useful info depending on the message.

    note: it's OK to call Main_OnCommand() within your runCommand, however you MUST check for recursion if doing so!
    in fact, any use of this hook should benefit from a simple reentrancy test...

    to get notified when an action of the main section is performed, you can register "hookpostcommand", which you pass a callback:

       NON_API: void postCommand(int command, int flag);
                register("hookpostcommand",postCommand);

    you can also register "hookcommand2", which you pass a callback:

       NON_API: bool onAction(KbdSectionInfo *sec, int command, int val, int valhw, int relmode, HWND hwnd);
                register("hookcommand2",onAction);

    which returns TRUE to eat (process) the command.

    val/valhw are used for actions learned with MIDI/OSC.
    val = [0..127] and valhw = -1 for MIDI CC,
    valhw >=0 for MIDI pitch or OSC with value = (valhw|val<<7)/16383.0,
    relmode absolute(0) or 1/2/3 for relative adjust modes

    you can also register command IDs for actions, register with "command_id", parameter is a unique string with only A-Z, 0-9, returns command ID (or 0 if not supported/out of actions)

    register("command_id_lookup", unique_string) will look up the integer ID of the named action without registering the string if it doesn't already exist.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    const char* name
    void* infostruct


    ^ Reaper version 5.965realloc_cmd_ptr

    C: bool retval = (*realloc_cmd_ptr)(char** ptr, int* ptr_size, int new_size)

    special use for NeedBig script API functions - reallocates a NeedBig buffer and updates its size, returns false on error

    Stored in reaper_plugin_functions.h

    Returnvalues:
    boolean retval

    Parameters:
    char** ptr
    int* ptr_size
    int new_size


    ^ Reaper version 5.62CSurf_OnOscControlMessage

    C: void (*CSurf_OnOscControlMessage)(const char* msg, const float* arg)

    On OSC Control Message.

    Stored in reaper_plugin_functions.h

    Parameters:
    const char* msg
    const float* arg


    ^ Reaper version 6.71CSurf_OnOscControlMessage2

    C: void (*CSurf_OnOscControlMessage2)(const char* msg, const float* arg, const char* argstr);

    Stored in reaper_plugin_functions.h

    Parameters:
    const char* msg
    const float* arg
    const char* argstr


    ^ Reaper version 5.62CreateLocalOscHandler

    C: void* (*CreateLocalOscHandler)(void* obj, void* callback)

    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.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    void* obj
    void* callback

    see also:
  • SendLocalOscMessage - sends a osc message to a local osc-handler


  • ^ Reaper version 5.62DestroyLocalOscHandler

    C: void (*DestroyLocalOscHandler)(void* local_osc_handler)

    See CreateLocalOscHandler, SendLocalOscMessage.

    Stored in reaper_plugin_functions.h

    Parameters:
    void* local_osc_handler

    see also:
  • CreateLocalOscHandler - create a local osc-handler
  • SendLocalOscMessage - send local osc-message


  • ^ Reaper version 5.62SendLocalOscMessage

    C: void (*SendLocalOscMessage)(void* local_osc_handler, const char* msg, int msglen)

    Send local Osc message.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    void* local_osc_handler
    const char* msg
    int msglen


    ^ Reaper version 5.62PlayPreview

    C: int retval = (*PlayPreview)(preview_register_t* preview)

    Play preview. Return nonzero on success.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    preview_register_t* preview


    ^ Reaper version 6.19PlayPreviewEx

    C: int retval = (*PlayPreviewEx)(preview_register_t* preview, int bufflags, double measure_align)

    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

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    preview_register_t* preview
    int bufflags
    double measure_align


    ^ Reaper version 5.62PlayTrackPreview

    C: int retval = (*PlayTrackPreview)(preview_register_t* preview)

    Play track preview. Returns nonzero on success,in these,m_out_chan is a track index (0-n).

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    preview_register_t* preview


    ^ Reaper version 5.62PlayTrackPreview2

    C: int retval = (*PlayTrackPreview2)(ReaProject* proj, preview_register_t* preview)

    Play track preview. Return nonzero on success,in these,m_out_chan is a track index (0-n).

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    ReaProject* proj
    the project-number. 0 for the current project.
    preview_register_t* preview


    ^ Reaper version 6.19PlayTrackPreview2Ex

    C: int retval = (*PlayTrackPreview2Ex)(ReaProject* proj, preview_register_t* preview, int flags, double measure_align)

    return nonzero on success,in these,m_out_chan is a track index (0-n). for flags see PlayPreviewEx bufflags

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    ReaProject* proj
    the project-number. 0 for the current project.
    preview_register_t* preview
    int flags
    double measure_align

    see also:
  • PlayPreviewEx - an enhanced version of play preview


  • ^ Reaper version 5.62StopPreview

    C: int retval = (*StopPreview)(preview_register_t* preview)

    Stop preview.
    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    preview_register_t* preview


    ^ Reaper version 5.62StopTrackPreview

    C: int retval = (*StopTrackPreview)(preview_register_t* preview)

    Stop track preview. Return nonzero on success.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    preview_register_t* preview


    ^ Reaper version 5.62StopTrackPreview2

    C: int retval = (*StopTrackPreview2)(ReaProject* proj, preview_register_t* preview)

    Stop track preview2.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    int retval

    Parameters:
    void* ReaProject
    the project-number. 0 for the current project.
    preview_register_t* preview


    ^ Reaper version 5.62GetSetTrackSendInfo

    C: void* (*GetSetTrackSendInfo)(MediaTrack* tr, int category, int sendidx, const char* parmname, void* setNewValue)

    Get or set send/receive/hardware output attributes.

    For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    MediaTrack* tr
    the MediaTrack object for the track to be gotten or set
    int category
    <0 for receives, 0=sends, >0 for hardware outputs
    int sendidx
    0..n (to enumerate, iterate over sendidx until it returns NULL)
    const char* parmname
    the parameter to get/set
    P_DESTTRACK : read only, returns MediaTrack *, destination track, only applies for sends/recvs
    P_SRCTRACK : read only, returns MediaTrack *, source track, only applies for sends/recvs
    P_ENV : read only, returns TrackEnvelope *, setNewValue= B_MUTE : returns bool *
    B_PHASE : returns bool *, true to flip phase
    B_MONO : returns bool *
    D_VOL : returns double *, 1.0 = +0dB etc
    D_PAN : returns double *, -1..+1
    D_PANLAW : returns double *,1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc
    I_SENDMODE : returns int *, 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx
    I_AUTOMODE : returns int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)
    I_SRCCHAN : returns int *, index,&1024=mono, -1 for none
    I_DSTCHAN : returns int *, index, &1024=mono, otherwise stereo pair, hwout:&512=rearoute
    I_MIDIFLAGS : returns int *, low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chan
    void* setNewValue
    the new value to be set

    see also:
  • CreateTrackSend - creates a track-send
  • GetTrackNumSends - get number of send of a track
  • GetSetTrackSendInfo_String - gets sets additional string-attributes for metadata of track-sends
  • GetTrackSendInfo_Value - gets attributes of a track-send
  • RemoveTrackSend - removes a track-send
  • SetTrackSendInfo_Value - sets attributes of a track-send


  • ^ Reaper version 5.62screenset_register

    C: void (*screenset_register)(char* id, void* callbackFunc, void* param)

    Screenset register.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    char* id
    void* callbackFunc
    void* param


    ^ Reaper version 5.62screenset_registerNew

    C: void (*screenset_registerNew)(char* id, screensetNewCallbackFunc callbackFunc, void* param)

    Screenset register new.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    char* id
    screensetNewCallbackFunc callbackFunc
    void* param


    ^ Reaper version 5.62screenset_unregister

    C: void (*screenset_unregister)(char* id)

    Screenset unregister.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    char* id


    ^ Reaper version 5.62screenset_unregisterByParam

    C: void (*screenset_unregisterByParam)(void* param)

    Screenset unregister by param
    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    void* param


    ^ Reaper version 5.62screenset_updateLastFocus

    C: void (*screenset_updateLastFocus)(HWND prevWin)

    screenset_updateLastFocus

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void

    Parameters:
    HWND prevWin


    ^ Reaper version 5.62GetColorTheme

    C: INT_PTR retval = (*GetColorTheme)(int idx, int defval)

    Deprecated, see GetColorThemeStruct().

    Stored in reaper_plugin_functions.h

    Returnvalues:
    INT_PTR retval

    Parameters:
    int idx
    int defval

    see also:
  • GetColorThemeStruct - returns the color theme


  • ^ Reaper version 5.62GetColorThemeStruct

    C: void* (*GetColorThemeStruct)(int* szOut)

    returns the whole color theme (icontheme.h) and the size

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    int* szOut


    ^ Reaper version 5.62GetIconThemePointer

    C: void* (*GetIconThemePointer)(const char* name)

    returns a named icontheme entry

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    const char* name


    ^ Reaper version 6.02GetIconThemePointerForDPI

    C: void* (*GetIconThemePointerForDPI)(const char* name, int dpisc);

    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

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    const char* name
    int dpisc


    ^ Reaper version 5.62GetIconThemeStruct

    C: void* (*GetIconThemeStruct)(int* szOut)

    returns a pointer to the icon theme (icontheme.h) and the size of that struct.

    Stored in reaper_plugin_functions.h

    Returnvalues:
    void*

    Parameters:
    int* szOut


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_ClearGlobalStartupAction

    C: bool NF_ClearGlobalStartupAction()
    EEL2: bool extension_api("NF_ClearGlobalStartupAction")
    Lua: boolean retval = reaper.NF_ClearGlobalStartupAction()
    Python: Boolean retval = NF_ClearGlobalStartupAction()

    Returns true if global startup action was cleared successfully.

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_ClearProjectStartupAction

    C: bool NF_ClearProjectStartupAction()
    EEL2: bool extension_api("NF_ClearProjectStartupAction")
    Lua: boolean retval = reaper.NF_ClearProjectStartupAction()
    Python: Boolean retval = NF_ClearProjectStartupAction()

    Returns true if project startup action was cleared successfully.

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_ClearProjectTrackSelectionAction

    C: bool NF_ClearProjectTrackSelectionAction()
    EEL2: bool extension_api("NF_ClearProjectTrackSelectionAction")
    Lua: boolean retval = reaper.NF_ClearProjectTrackSelectionAction()
    Python: Boolean retval = NF_ClearProjectTrackSelectionAction()

    Returns true if project track selection action was cleared successfully.

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_GetGlobalStartupAction

    C: bool NF_GetGlobalStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)
    EEL2: bool extension_api("NF_GetGlobalStartupAction", #desc, #cmdId)
    Lua: boolean retval, string desc, string cmdId = reaper.NF_GetGlobalStartupAction()
    Python: Boolean retval = NF_GetGlobalStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)

    Gets action description and command ID number (for native actions) or named command IDs / identifier strings (for extension actions /ReaScripts) if global startup action is set, otherwise empty string. Returns false on failure.

    Returnvalues:
    boolean retval
    string desc
    string cmdId


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_GetProjectStartupAction

    C: bool NF_GetProjectStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)
    EEL2: bool extension_api("NF_GetProjectStartupAction", #desc, #cmdId)
    Lua: boolean retval, string desc, string cmdId = reaper.NF_GetProjectStartupAction()
    Python: Boolean retval = NF_GetProjectStartupAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)

    Gets action description and command ID number (for native actions) or named command IDs / identifier strings (for extension actions /ReaScripts) if project startup action is set, otherwise empty string. Returns false on failure.

    Returnvalues:
    boolean retval
    string desc
    string cmdId


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_GetProjectTrackSelectionAction

    C: bool NF_GetProjectTrackSelectionAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)
    EEL2: bool extension_api("NF_GetProjectTrackSelectionAction", #desc, #cmdId)
    Lua: boolean retval, string desc, string cmdId = reaper.NF_GetProjectTrackSelectionAction()
    Python: Boolean retval = NF_GetProjectTrackSelectionAction(char* descOut, int descOut_sz, char* cmdIdOut, int cmdIdOut_sz)

    Gets action description and command ID number (for native actions) or named command IDs / identifier strings (for extension actions /ReaScripts) if project track selection action is set, otherwise empty string. Returns false on failure.

    Returnvalues:
    boolean retval
    string desc
    string cmdId


    ^ Reaper version 5.965 SWS version 2.12.0NF_GetSWS_RMSoptions

    C: void NF_GetSWS_RMSoptions(double* targetOut, double* windowSizeOut)
    EEL2: extension_api("NF_GetSWS_RMSoptions", &target, &windowSize)
    Lua: number target, number windowSize = reaper.NF_GetSWS_RMSoptions()
    Python: (Float targetOut, Float windowSizeOut) = NF_GetSWS_RMSoptions(targetOut, windowSizeOut)

    Get SWS analysis/normalize options. See NF_SetSWS_RMSoptions.


    Returnvalues:
    number target
    number windowSize


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_SetGlobalStartupAction

    C: bool NF_SetGlobalStartupAction(const char* str)
    EEL2: bool extension_api("NF_SetGlobalStartupAction", "str")
    Lua: boolean retval = reaper.NF_SetGlobalStartupAction(string str)
    Python: Boolean retval = NF_SetGlobalStartupAction(const char* str)

    Returns true if global startup action was set successfully (i.e. valid action ID). Note: For SWS / S&M actions and macros / scripts, you must use identifier strings (e.g. "_SWS_ABOUT", "_f506bc780a0ab34b8fdedb67ed5d3649"), not command IDs (e.g. "47145").
    Tip: to copy such identifiers, right-click the action in the Actions window > Copy selected action cmdID / identifier string.
    NOnly works for actions / scripts from Main action section.

    Returnvalues:
    boolean retval

    Parameters:
    string str


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_SetProjectStartupAction

    C: bool NF_SetProjectStartupAction(const char* str)
    EEL2: bool extension_api("NF_SetProjectStartupAction", "str")
    Lua: boolean retval = reaper.NF_SetProjectStartupAction(string str)
    Python: Boolean retval = NF_SetProjectStartupAction(const char* str)

    Returns true if project startup action was set successfully (i.e. valid action ID). Note: For SWS / S&M actions and macros / scripts, you must use identifier strings (e.g. "_SWS_ABOUT", "_f506bc780a0ab34b8fdedb67ed5d3649"), not command IDs (e.g. "47145").
    Tip: to copy such identifiers, right-click the action in the Actions window > Copy selected action cmdID / identifier string.
    Only works for actions / scripts from Main action section. Project must be saved after setting project startup action to be persistent.

    Returnvalues:
    boolean retval

    Parameters:
    string str


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_SetProjectTrackSelectionAction

    C: bool NF_SetProjectTrackSelectionAction(const char* str)
    EEL2: bool extension_api("NF_SetProjectTrackSelectionAction", "str")
    Lua: boolean retval = reaper.NF_SetProjectTrackSelectionAction(string str)
    Python: Boolean retval = NF_SetProjectTrackSelectionAction(const char* str)

    Returns true if project track selection action was set successfully (i.e. valid action ID). Note: For SWS / S&M actions and macros / scripts, you must use identifier strings (e.g. "_SWS_ABOUT", "_f506bc780a0ab34b8fdedb67ed5d3649"), not command IDs (e.g. "47145").
    Tip: to copy such identifiers, right-click the action in the Actions window > Copy selected action cmdID / identifier string.
    Only works for actions / scripts from Main action section. Project must be saved after setting project track selection action to be persistent.

    Returnvalues:
    boolean retval

    Parameters:
    string str


    ^ Reaper version 5.965 SWS version 2.12.0NF_SetSWS_RMSoptions

    C: bool NF_SetSWS_RMSoptions(double targetLevel, double windowSize)
    EEL2: bool extension_api("NF_SetSWS_RMSoptions", targetLevel, windowSize)
    Lua: boolean retval = reaper.NF_SetSWS_RMSoptions(number targetLevel, number windowSize)
    Python: Boolean retval = NF_SetSWS_RMSoptions(Float targetLevel, Float windowSize)

    Set SWS analysis/normalize options (same as running action 'SWS: Set RMS analysis/normalize options'). targetLevel: target RMS normalize level (dB), windowSize: window size for peak RMS (sec.)

    See NF_GetSWS_RMSoptions.


    Returnvalues:
    boolean retval

    Parameters:
    number targetLevel
    number windowSize


    ^ Reaper version 5.62fclose

    EEL2: integer retval = fclose(filehandler fp)

    Closes a file previously opened with fopen().

    Returnvalues:
    integer retval
    0, closing was successful; -1, closing was unsuccessful

    Parameters:
    filehandler fp
    the handler of the opened file


    ^ Reaper version 5.62feof

    EEL2: integer retval = feof(filehandler fp)

    Returns nonzero if the file fp is at the end of file.

    Returnvalues:
    integer rteval
    0, file is not at the end of a file; nonzero, it is at the end of the file

    Parameters:
    filehandler fp
    the handler of the opened file


    ^ Reaper version 5.62fflush

    EEL2: integer retval = fflush(filehandler fp)

    If file fp is open for writing, flushes out any buffered data to disk.

    Returnvalues:
    integer retval
    -1, couldn't flush file; 0, flushing was successful

    Parameters:
    filehandler fp
    the handler of the file


    ^ Reaper version 5.62fgetc

    EEL2: integer character = fgetc(filehandler fp)

    Reads a character from file fp, returns -1 if EOF.

    Returnvalues:
    integer character
    a character read from the file; -1, if end of file

    Parameters:
    filehandler fp
    the handler to the file


    ^ Reaper version 5.62fgets

    EEL2: integer length = fgets(filehandler fp, string #str)

    Reads a line from file fp into #str. Returns length of #str read.

    Returnvalues:
    integer length
    the length of the line read from file.

    Parameters:
    filehandler fp
    the handler of the file
    string #str
    the returned string


    ^ Reaper version 5.62fopen

    EEL2: filehandler fp = fopen(string fn, string mode)

    Opens a file "fn" with mode "mode". For read, use "r" or "rb", write "w" or "wb". Returns a positive integer on success.

    Returnvalues:
    filehandler fp
    the filehandler of the opened file; 0, if file couldn't be opened

    Parameters:
    string fn
    the filename to be opened
    string mode
    the opening mode
    "r" read,
    "rb", read binary
    "w", write
    "wb", write binary


    ^ Reaper version 5.62fprintf

    EEL2: integer length = fprintf(filehandler fp, string format[, various ...])

    Formats a string and writes it to file fp. For more information on format specifiers, see sprintf(). Returns bytes written to file.

    Many standard C printf() modifiers can be used, including:

    Values for format specifiers can be specified as additional parameters to fprintf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).


    Returnvalues:
    integer length
    the length of the written string

    Parameters:
    filehandler fp
    string format
    a string to format
    various [...]


    ^ Reaper version 5.62fread

    EEL2: integer read_length = fread(filehandler fp, string #str, integer length)

    Reads from file fp into #str, up to length bytes. Returns actual length read, or negative if error.

    Returnvalues:
    integer read_length
    the length of the returned string(might be less than parameter length)

    Parameters:
    filehandler fp
    the handler of the file
    string #str
    the string read from the file
    integer length
    the length you want to read from the file


    ^ Reaper version 5.62fseek

    EEL2: integer retval = fseek(filehandler fp, integer offset, integer whence)

    Seeks file fp, offset bytes from whence reference. Whence negative specifies start of file, positive whence specifies end of file, and zero whence specifies current file position.

    Returnvalues:
    integer retval
    -1, if seek isn't possible;

    Parameters:
    filehandler fp
    integer offset
    integer whence


    ^ Reaper version 5.62ftell

    EEL2: integer fposition = ftell(filehandler fp)

    Returns the current file position.

    Returnvalues:
    integer fposition
    the current position within the opened file

    Parameters:
    filehandler fp
    the handler of the file


    ^ Reaper version 5.62fwrite

    EEL2: integer length = fwrite(filehandler fp, string #str, integer len)

    Writes up to len characters of #str to file fp. If len is less than 1, the full contents of #str will be written. Returns the number of bytes written to file.

    Use fflush(fp) to write all data from the cache into the file.

    Returnvalues:
    integer length
    the number of written bytes

    Parameters:
    filehandler fp
    the handler of the file
    string #str
    the string to write into the file
    integer len
    the number of bytes to write to the file; 0, to write entire string


    ^ Reaper version 5.62gfx_arc

    EEL2: integer retval = gfx_arc(integer x, integer y, integer r, float ang1, float ang2[, optional float antialias])

    Draws an arc of the circle centered at x,y, with ang1/ang2 being specified in radians.

    Returnvalues:
    integer retval
    usually 0

    Parameters:
    integer x
    x position of the center of the circle
    integer y
    y position of the center of the circle
    integer r
    the radius of the circle
    float ang1
    the beginning of the circle in radians; meant for partial circles; 0-6.28
    float ang2
    the end of the circle in radians; meant for partial circles; 0-6.28
    optional float antialias
    <=0.5, antialias off; >0.5, antialias on


    ^ Reaper version 6.46gfx_blit

    EEL2: integer src = gfx_blit(integer source, float scale, float rotation[, optional float srcx, optional float srcy, optional float srcw, optional float srch, optional integer destx, optional integer desty, optional integer destw, optional integer desth, optional float rotxoffs, optional float rotyoffs])

    Copies from source (-1 = main framebuffer, or an image from gfx_loadimg() etc), using current opacity and copy mode (set with gfx_a, gfx_mode).

    If destx/desty are not specified, gfx_x/gfx_y will be used as the destination position.

    scale (1.0 is unscaled) will be used only if destw/desth are not specified.

    rotation is an angle in radians

    srcx/srcy/srcw/srch specify the source rectangle (if omitted srcw/srch default to image size)

    destx/desty/destw/desth specify destination rectangle (if not specified destw/desth default to srcw/srch * scale).

    Returnvalues:
    integer src
    the blitted source

    Parameters:
    integer source
    the source-image/framebuffer to blit; -1 to 1023; -1 for the currently displayed framebuffer.
    float scale
    the scale-factor; 1, for normal size; smaller or bigger than 1 make image smaller or bigger
    has no effect, when destx, desty, destw, desth are given
    float rotation
    the rotation-factor; 0 to 6.28; 3.14 for 180 degrees.
    optional float srcx
    the x-coordinate-offset in the source-image
    optional float srcy
    the y-coordinate-offset in the source-image
    optional float srcw
    the width-offset in the source-image
    optional float srch
    the height-offset in the source-image
    optional integer destx
    the x-coordinate of the blitting destination
    optional integer desty
    the y-coordinate of the blitting destination
    optional integer destw
    the width of the blitting destination; may lead to stretched images
    optional integer desth
    the height of the blitting destination; may lead to stretched images
    optional float rotxoffs
    influences rotation
    optional float rotyoffs
    influences rotation


    ^ Reaper version 5.62gfx_blitext

    EEL2: gfx_blitext(integer source, array coordinatelist, integer rotation)

    Deprecated, use gfx_blit instead.

    Note: the naming of the function might be misleading, as it has nothing to do with blitting of text, but rather is called Blit Ext.

    Parameters:
    integer source
    array coordinatelist
    float rotation


    ^ Reaper version 5.62gfx_blurto

    EEL2: gfx_blurto(integer x, integer y)

    Blurs the region of the screen between gfx_x,gfx_y and x,y, and updates gfx_x,gfx_y to x,y.

    Parameters:
    integer x
    x position of the other edge of the blur-region
    integer y
    y position of the other edge of the blur-region


    ^ Reaper version 5.62gfx_circle

    EEL2: gfx_circle(integer x, integer y, float r[, float fill, float antialias])

    Draws a circle, optionally filling/antialiasing

    Parameters:
    integer x
    x position of center of the circle
    integer y
    y position of center of the circle
    float r
    radius of the circle
    float fill
    <=0.5, circle is not filled; >0.5, circle is filled
    float antialias
    <=0.5, circle is not antialiased; >0.5, circle is antialiased


    ^ Reaper version 5.62gfx_clienttoscreen

    EEL2: gfx_clienttoscreen(integer x, integer y)

    Converts client coordinates x,y to screen coordinates.

    Use variables for x and y, as the returned values will be put back into them:
    
        gfx_init(""); // open window
        x=10; // the client x-coordinate
        y=20; // the client y-coordinate
    
        gfx_clienttoscreen(x,y); // x and y hold now the converted screen-coordinates
    


    Parameters:
    integer x
    the x coordinate within(!) the gfx_init()-window, that shall be converted to screen-coordinates
    integer y
    the y coordinate within(!) the gfx_init()-window, that shall be converted to screen-coordinates


    ^ Reaper version 5.95gfx_deltablit

    EEL2: gfx_deltablit(integer srcimg, integer srcs, integer srct, integer srcw, integer srch, float destx, float desty, float destw, float desth, float dsdx, float dtdx, float dsdy, float dtdy, float dsdxdy, float dtdxdy[,optional integer usecliprect=1])

    Blits from srcimg(srcs,srct,srcw,srch) to destination (destx,desty,destw,desth). Source texture coordinates are s/t, dsdx represents the change in s coordinate for each x pixel, dtdy represents the change in t coordinate for each y pixel, etc. dsdxdy represents the change in dsdx for each line. If usecliprect is specified and 0, then srcw/srch are ignored.

    This function allows you to manipulate the image, which you want to blit, by transforming, moving or cropping it.

    To do rotation, you can manipulate dtdx and dsdy together.

    Parameters:
    integer srcimg
    image - the image to blit
    integer srcs
    positiondeltaX - the delta of the x-position of the image within the blitted area in pixels(useful default: 0)
    integer srct
    positiondeltaY - the delta of the y-position of the image within the blitted area in pixels(useful default: 0)
    integer srcw
    unknown - (useful default: 0)
    integer srch
    unknown - (useful default: 0)
    float destx
    positiondeltaX - the delta of the x-position of the blitted area in pixels(useful default: 0)
    float desty
    positiondeltaY - the delta of the y-position of the blitted area in pixels(useful default: 0)
    float destw
    blitsizeX - the x-size of the blitted area in pixels; the deltaimage might be cropped, if it exceeds this size(useful default: width of the image)
    float desth
    blitsizeY - the y-size of the blitted area in pixels; the deltaimage might be cropped, if it exceeds this size(useful default: height of the image)
    float dsdx
    stretchfactorX, the lower, the more stretched is the image(minimum 0; 1 for full size); limited by blitsizeX(useful default: 1)
    float dtdx
    deltaY: the delta of the right side of the image, related to the left side of the image; positive, right is moved up; negative, right is moved down; this delta is linear(useful default: 0)
    float dsdy
    deltaX: the delta of the bottom side of the image, related to the top side of the image; positive, bottom is moved left; negative, bottom is moved right; this delta is linear(useful default: 0)
    float dtdy
    stretchfactorY, the lower, the more stretched is the image(minimum 0; 1 for full size); limited by blitsizeY(useful default: 1)
    float dsdxdy
    deltacurvedY: the delta of the right side of the image, related to the left side of the image; positive, right is moved up; negative, right is moved down; this delta "curves" the delta via a bezier(useful default: 0)
    float dtdxdy
    deltacurvedX: the delta of the bottom side of the image, related to the top side of the image; positive, bottom is moved left; negative, bottom is moved right; this delta "curves" the delta via a bezier(useful default: 0)
    optional float usecliprect
    can be set to 0 or 1(useful default: 0)


    ^ Reaper version 5.62gfx_drawchar

    EEL2: integer retval = gfx_drawchar(integer char)

    Draws the character (can be a numeric ASCII code as well), to gfx_x, gfx_y, and moves gfx_x over by the size of the character.

    Returnvalues:
    integer retval
    the ASCII-representation of the shown character

    Parameters:
    integer char
    the numeric ASCII-representation of the character to be drawn


    ^ Reaper version 5.62gfx_drawnumber

    EEL2: double retval = gfx_drawnumber(double n, double n_digits)

    Draws the number n with ndigits of precision to gfx_x, gfx_y, and updates gfx_x to the right side of the drawing. The text height is gfx_texth.

    Returnvalues:
    double retval
    the number of parameter n

    Parameters:
    double n
    the number to draw
    double n_digits
    the number of shown digits; double values will be rounded


    ^ Reaper version 5.62gfx_drawstr

    EEL2: integer retval = gfx_drawstr(string str, optional integer flags, optional integer right, optional integer bottom)

    Draws a string at gfx_x, gfx_y, and updates gfx_x/gfx_y so that subsequent draws will occur in a similar place.

    * If flags, right ,bottom passed in: * flags&1: center horizontally * flags&2: right justify * flags&4: center vertically * flags&8: bottom justify * flags&256: ignore right/bottom, otherwise text is clipped to (gfx_x, gfx_y, right, bottom)


    Returnvalues:
    integer retval
    2000000, no string is drawn; 2000001, string is drawn

    Parameters:
    string str
    the string to draw
    optional integer flags
    the flags to adjust the text-alignement
    optional integer right
    clip text at x-pixels from gfx_x
    optional integer bottom
    clip text at y-pixels from gfx_y


    ^ Reaper version 6.74gfx_getchar

    EEL2: integer typed_character = gfx_getchar(optional integer char, optional integer unicode_char)

    If char is 0 or omitted, returns a character from the keyboard queue, or 0 if no character is available, or -1 if the graphics window is not open. If char is specified and nonzero, that character's status will be checked, and the function will return greater than 0 if it is pressed.

    Common values are standard ASCII, such as 'a', 'A', '=' and '1', but for many keys multi-byte values are used, including 'home', 'up', 'down', 'left', 'rght', 'f1'.. 'f12', 'pgup', 'pgdn', 'ins', and 'del'.

    Shortcuts with scope "Global + textfields" will still run the associated action, scope of "Normal" or "Global" will not.

    Modified and special keys can also be returned, including:

    * Ctrl/Cmd+A..Ctrl+Z as 1..26 * Ctrl/Cmd+Alt+A..Z as 257..282 * Alt+A..Z as 'A'+256..'Z'+256 * 27 for ESC * 13 for Enter * ' ' for space

    If the user typed in multiple characters, the character queue will hold them. So calling gfx_getchar multiple times, until it returns 0 or -1 will give you all typed keys.

    Typed characters between 256 and 1024(maybe higher?) seem to hint at multibyte-unicode characters. That means, you need to take the next character-value in the character-queue into consideration as well to get the current unicode-character!

    If unichar is specified, it will be set to the unicode value of the key if available (and the return value may be the unicode value or a raw key value as described above, depending). If unichar is not specified, unicode codepoints greater than 255 will be returned as 'u'<<24 + value

    Note that calling gfx_getchar() at least once causes mouse_cap to reflect keyboard modifiers even when the mouse is not captured.


    Returnvalues:
    integer typed_character
    the character that has been typed; -1, if no window is open

    Parameters:
    integer char
    if you want to get only a certain character-key, pass the ASCII-code for the character into this parameter
    integer unicode_char
    the unicode-charactercode


    ^ Reaper version 6.69eel_getdropfile

    EEL2: integer retval = gfx_getdropfile(integer idx[, string #filename])

    Returns filenames, drag'n'dropped into a window created by gfx_init().
    Use idx to get a specific filename, that has been dropped into the gfx_init()-window.

    When returned filename starts with @fx: it is an fx dropped.

    Does NOT support mediaitems/takes or other Reaper-objects!

    It MUST be called BEFORE calling gfx_update, as gfx_update flushes the filelist accessible with gfx_getdropfile.

    Returnvalues:
    integer retval
    0, if droppped-filename with indexnumber idx doesn't exist; 1, if it exists; hints, if you already read all dropped filenames.
    string filename
    the filename of dropped-file with indexnumber idx; when starting with @fx: it is an fx dropped

    Parameters:
    integer idx
    the indexnumber for a filename, that has been dropped into a gfx_init()-window.
    0, the first file; 1, the second file; 2, the third file, etc.
    -1, clears the filelist.


    ^ Reaper version 5.62gfx_getfont

    EEL2: integer font_index = gfx_getfont(optional string #str)

    Returns current font index. If a string is passed, it will receive the actual font face used by this font, if available.

    Returnvalues:
    integer font_index
    the index of the currently used font

    Parameters:
    optional string #str
    this variable will hold the font-face after calling gfx_getfont


    ^ Reaper version 5.62gfx_getimgdim

    EEL2: integer retval = gfx_getimgdim(integer image, integer w, integer h)

    Retrieves the dimensions of image (representing a filename: index number) into w and h. Sets these values to 0 if an image failed loading (or if the filename index is invalid).

    Returnvalues:
    integer retval
    the image-index

    Parameters:
    integer image
    the image, whose dimensions you want to retrieve
    integer w
    will hold the width of the image
    integer h
    will hold the height of the image


    ^ Reaper version 5.62gfx_getpixel

    EEL2: integer red_value = gfx_getpixel(integer r, integer g, integer b)

    Gets the value of the pixel at gfx_x,gfx_y into r,g,b.

    Parameters:
    integer r
    will hold the red-color-value, a value between 0 to 1
    integer g
    will hold the green-color-value, a value between 0 to 1
    integer b
    will hold the blue-color-value, a value between 0 to 1


    ^ Reaper version 5.62gfx_gradrect

    EEL2: integer retval = gfx_gradrect(integer x, integer y, integer w, integer h, double r, double g, double b, double a, optional double drdx, optional double dgdx, optional double dbdx, optional double dadx, optional double drdy, optional double dgdy, optional double dbdy, optional double dady)

    Fills a gradient rectangle with the color and alpha specified. drdx-dadx reflect the adjustment (per-pixel) applied for each pixel moved to the right, drdy-dady are the adjustment applied for each pixel moved toward the bottom. Normally drdx=adjustamount/w, drdy=adjustamount/h, etc.

    Returnvalues:
    integer retval

    Parameters:
    integer x
    integer y
    integer w
    integer h
    double r
    double g
    double b
    double a
    optional double drdx
    optional double dgdx
    optional double dbdx
    optional double dadx
    optional double drdy
    optional double dgdy
    optional double dbdy
    optional double dady


    ^ Reaper version 6.40gfx_init

    EEL2: integer retval = gfx_init(string name, optional integer width, optional integer height, optional integer dockstate, optional integer xpos, optional integer ypos)

    Initializes the graphics window with title name. Suggested width and height can be specified.

    Once the graphics window is open, gfx_update() should be called periodically.

    To resize/reposition the window, call gfx_init again and pass an empty string as name-parameter.

    To retitle the window, run gfx_init again with the new title as parameter name.

    To get the current window-states, dimensions, etc, you can use gfx_dock.


    Parameters:
    string name
    the name of the window; "" to alter position/size of already opened window
    optional integer width
    the width of the window(default=640)
    optional integer height
    the height of the window(default=400)
    optional integer dockstate
    the dockstate of the window; 1, docked; 0, undocked(default undocked=0)
    optional integer xpos
    the x-position of the window(default: 0)
    optional integer ypos
    the y-position of the window(default: 0)


    ^ Reaper version 5.62gfx_line

    EEL2: gfx_line(integer x, integer y, integer x2, integer y2, optional float aa)

    Draws a line from x,y to x2,y2, and if aa is not specified or 0.5 or greater, it will be antialiased.

    Parameters:
    integer x
    the x-position of starting-point
    integer y
    the y-position of starting-point
    integer x2
    the x-position of ending-point
    integer y2
    the y-position of ending-point
    optional float aa
    0.5 and higher or not specified, antialias; lower than 0.5, not antialiased


    ^ Reaper version 5.62gfx_lineto

    EEL2: gfx_lineto(x,y[,aa])

    Draws a line from gfx_x,gfx_y to x,y. If aa is 0.5 or greater, then antialiasing is used. Updates gfx_x and gfx_y to x,y.

    Parameters:
    x
    y
    aa


    ^ Reaper version 5.62gfx_loadimg

    EEL2: gfx_loadimg(image,filename)

    Load image from filename into slot 0..1024-1 specified by image. Returns the image index if success, otherwise -1 if failure. The image will be resized to the dimensions of the image file.

    Parameters:
    image
    filename


    ^ Reaper version 5.62gfx_measurechar

    EEL2: gfx_measurechar(character,&w,&h)

    Measures the drawing dimensions of a character with the current font (as set by gfx.setfont). Returns width and height of character.


    Parameters:
    character
    a character, whose dimensions you want to know
    w
    the width of this character
    h
    the height if this character


    ^ Reaper version 5.62gfx_measurestr

    EEL2: gfx_measurestr(str,&w,&h)

    Measures the drawing dimensions of a string with the current font (as set by gfx_setfont).

    Parameters:
    str
    w
    h


    ^ Reaper version 5.62gfx_muladdrect

    EEL2: gfx_muladdrect(x,y,w,h,mul_r,mul_g,mul_b[,mul_a,add_r,add_g,add_b,add_a])

    Multiplies each pixel by mul_* and adds add_*, and updates in-place. Useful for changing brightness/contrast, or other effects.

    Parameters:
    x
    y
    w
    h
    mul_r
    mul_g
    mul_b
    mul_a
    add_r
    add_g
    add_b
    add_a


    ^ Reaper version 5.62gfx_printf

    EEL2: gfx_printf(format[, ...])

    Formats and draws a string at gfx_x, gfx_y, and updates gfx_x/gfx_y accordingly (the latter only if the formatted string contains newline). For more information on format strings, see sprintf()

    Many standard C printf() modifiers can be used, including:

    Values for format specifiers can be specified as additional parameters to gfx_printf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).


    Parameters:
    format
    ...


    ^ Reaper version 5.62gfx_quit

    EEL2: gfx_quit()

    Closes the graphics window.


    ^ Reaper version 5.62gfx_rect

    EEL2: gfx_rect(x,y,w,h[,filled])

    Fills a rectangle at x,y,w,h pixels in dimension, filled by default.

    Parameters:
    x
    y
    w
    h
    filled


    ^ Reaper version 5.62gfx_rectto

    EEL2: gfx_rectto(x,y)

    Fills a rectangle from gfx_x,gfx_y to x,y. Updates gfx_x,gfx_y to x,y.

    Parameters:
    x
    y


    ^ Reaper version 5.62gfx_roundrect

    EEL2: gfx_roundrect(x,y,w,h,radius[,antialias])

    Draws a rectangle with rounded corners.

    Parameters:
    x
    y
    w
    h
    radius
    antialias


    ^ Reaper version 5.62gfx_screentoclient

    EEL2: gfx_screentoclient(x,y)

    Converts screen coordinates x,y to client coordinates.

    Parameters:
    x
    y


    ^ Reaper version 5.62gfx_set

    EEL2: gfx_set(r[,g,b,a2,mode,dest])

    Sets gfx_r/gfx_g/gfx_b/gfx_a2/gfx_mode, sets gfx_dest if final parameter specified

    Parameters:
    r
    g
    b
    a
    mode
    dest


    ^ Reaper version 5.62gfx_setcursor

    EEL2: gfx_setcursor(resource_id,custom_cursor_name)

    Sets the mouse cursor. resource_id is a value like 32512 (for an arrow cursor), custom_cursor_name is a string like "arrow" (for the REAPER custom arrow cursor). resource_id must be nonzero, but custom_cursor_name is optional.

    Parameters:
    resource_id
    custom_cursor_name


    ^ Reaper version 5.62gfx_setfont

    EEL2: gfx_setfont(idx[,fontface, sz, flags])

    Can select a font and optionally configure it.

    After calling gfx_setfont(), gfx_texth may be updated to reflect the new average line height.

    Parameters:
    idx
    the font-id; idx=0 for default bitmapped font, no configuration is possible for this font.
    idx=1..16 for a configurable font
    fontface
    the name of the font, like "arial"
    sz
    the size of the font (8-100)
    flags
    flags, how to render the text; values are repeating every 256 numbers
    a multibyte character, which can include 'i' for italics, 'u' for underline, or 'b' for bold.
    These flags may or may not be supported depending on the font and OS.
    66 and 98, Bold (B), (b)
    73 and 105, italic (I), (i)
    79 and 111, white outline (O), (o)
    82 and 114, reduced(halfbright) (R), (r)
    83 and 115, sharpen (S), (s)
    85 and 117, underline (U), (u)
    86 and 118, inVerse (V), (v)


    ^ Reaper version 6.14gfx_setimgdim

    EEL2: gfx_setimgdim(image,w,h)

    Resize image referenced by index 0..1024-1, width and height must be 0-8192. The contents of the image will be undefined after the resize.

    Parameters:
    image
    w
    h


    ^ Reaper version 5.62gfx_setpixel

    EEL2: gfx_setpixel(r,g,b)

    Writes a pixel of r,g,b to gfx_x,gfx_y.

    Parameters:
    r
    g
    b


    ^ Reaper version 5.62gfx_showmenu

    EEL2: gfx_showmenu(menu_string)

    Shows a popup menu at gfx_x,gfx_y.
    str is a list of fields separated by | characters. Each field represents a menu item.
    Fields can start with special characters:

    # : grayed out
    ! : checked
    > : this menu item shows a submenu
    < : last item in the current submenu
    & : before a character makes it underlined as the quick-access-character for this menu-item

    An empty field will appear as a separator in the menu. gfx_showmenu returns 0 if the user selected nothing from the menu, 1 if the first field is selected, etc.
    Example:

    gfx_showmenu("first item, followed by separator||!second item, checked|>third item which spawns a submenu|#first item in submenu, grayed out| Note: It skips submenus and separators in the selection-number, so a if menu_string="Entry1||

    Parameters:
    menu_string


    ^ Reaper version 5.62gfx_transformblit

    EEL2: gfx_transformblit(srcimg,destx,desty,destw,desth,div_w,div_h,table)

    Blits to destination at (destx,desty), size (destw,desth). div_w and div_h should be 2..64, and table should point to a table of 2*div_w*div_h values (this table must not cross a 65536 item boundary). Each pair in the table represents a S,T coordinate in the source image, and the table is treated as a left-right, top-bottom list of texture coordinates, which will then be rendered to the destination.

    Parameters:
    srcimg
    destx
    desty
    destw
    desth
    div_w
    div_h
    table


    ^ Reaper version 5.62gfx_triangle

    EEL2: gfx_triangle(x1,y1,x2,y2,x3,y3[x4,y4...])

    Draws a filled triangle, or any convex polygon.

    Parameters:
    x1
    y1
    x2
    y2
    x3
    y3
    x4
    y4
    ...


    ^ Reaper version 5.62gfx_update

    EEL2: gfx_update()

    Updates the graphics display, if opened.


    ^ Reaper version 6.43gfx_variables

    EEL2: gfx VARIABLES

    The following global variables are special and will be used by the graphics system:

       * gfx_r - current red component (0..1) used by drawing operations.
       * gfx_g - current green component (0..1) used by drawing operations.
       * gfx_b - current blue component (0..1) used by drawing operations.
       * gfx_a2 - current alpha component (0..1) used by drawing operations when writing solid colors (normally ignored but useful when creating transparent images).
       * gfx_a - alpha for drawing (1=normal).
       * gfx_mode - blend mode for drawing. Set mode to 0 for default options. Add 1.0 for additive blend mode (if you wish to do subtractive, set gfx_a to negative and use gfx_mode as additive). Add 2.0 to disable source alpha for gfx_blit(). Add 4.0 to disable filtering for gfx_blit().
       * gfx_w - width of the UI framebuffer.
       * gfx_h - height of the UI framebuffer.
       * gfx_x - current graphics position X. Some drawing functions use as start position and update.
       * gfx_y - current graphics position Y. Some drawing functions use as start position and update.
       * gfx_clear - if greater than -1.0, framebuffer will be cleared to that color. the color for this one is packed RGB (0..255), i.e. red+green*256+blue*65536. The default is 0 (black).
       * gfx_dest - destination for drawing operations, -1 is main framebuffer, set to 0..1024-1 to have drawing operations go to an offscreen buffer (or loaded image).
       * gfx_texth - the (READ-ONLY) height of a line of text in the current font. Do not modify this variable.
       * gfx_ext_retina - to support hidpi/retina, callers should set to 1.0 on initialization, this value will be updated to value greater than 1.0 (such as 2.0) if retina/hidpi. On macOS gfx_w/gfx_h/etc will be doubled, but on other systems gfx_w/gfx_h will remain the same and gfx_ext_retina is a scaling hint for drawing.
       * mouse_x - current X coordinate of the mouse relative to the graphics window.
       * mouse_y - current Y coordinate of the mouse relative to the graphics window.
       * mouse_wheel - wheel position, will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.
       * mouse_hwheel - horizontal wheel positions, will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.
       * mouse_cap - a bitfield of mouse and keyboard modifier state:
            1: left mouse button
            2: right mouse button
            4: Control key
            8: Shift key
            16: Alt key
            32: Windows key
            64: middle mouse button

        Note: Mousebuttons will be returned after gfx_init(), the other keyboard-modifier only when using gfx_getchar()!


    ^ Reaper version 5.62abs

    EEL2: float abs_value = abs(float value)

    Returns the absolute value of the parameter.

    Parameters:
    float abs_value
    the absolute-value of value


    ^ Reaper version 5.62acos

    EEL2: float arc_cos = acos(float value)

    Returns the arc cosine of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.

    Returnvalues:
    float arc_cos
    the arc-cosine-value in radians

    Parameters:
    float value
    the value, that you want to convert into arc-cosine


    ^ Reaper version 5.62asin

    EEL2: float arc_sine = asin(float value)

    Returns the arc sine of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.

    Returnvalues:
    float arc_sine
    the arc-sine-value in radians of value

    Parameters:
    float value
    the value, that you want to convert to arc-sine


    ^ Reaper version 5.62atan

    EEL2: float arc_tan = atan(value)

    Returns the arc tangent of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.

    Returnvalues:
    float arc_tan
    the arc-tan-value in radians of value

    Parameters:
    float value
    the value, that you want to convert to arc-tan


    ^ Reaper version 5.62atan2

    EEL2: atan2(numerator,denominator)

    Returns the arc tangent of the numerator divided by the denominator, allowing the denominator to be 0, and using their signs to produce a more meaningful result.

    Returnvalues:
    float arc_tangent
    the arc-tangent

    Parameters:
    float numerator
    the numerator to calculate the arc-tangent
    float denominator
    the denominator to calculate the arc-tangent


    ^ Reaper version 5.62ceil

    EEL2: float round_val = ceil(float value)

    Returns the value rounded to the next highest integer (ceil(3.1)==4, ceil(-3.9)==-3).

    Returnvalues:
    float round_val
    the rounded value to the next highest integer

    Parameters:
    float value
    the value to round


    ^ Reaper version 5.62convolve_c

    EEL2: float convolved_val = convolve_c(float dest, float src, float size)

    Multiplies each of size complex pairs in dest by the complex pairs in src. Often used for convolution.

    Returnvalues:
    float convolved_val

    Parameters:
    float dest
    float src
    float size


    ^ Reaper version 5.62cos

    EEL2: float cos = cos(float angle)

    Returns the cosine of the angle specified (specified in radians).

    Returnvalues:
    float cos
    the cosine value in radians

    Parameters:
    float angle
    the angle to convert into cosine


    ^ Reaper version 5.62exp

    EEL2: float e_pow = exp(float exponent)

    Returns the number e ($e, approximately 2.718) raised to the parameter-th power. This function is significantly faster than pow() or the ^ operator.

    Returnvalues:
    float e_pow
    the number e raised to parameter-th power

    Parameters:
    float exponent
    the exponent to use for raise


    ^ Reaper version 5.62fft

    EEL2: float retval = fft(data buffer, integer size)

    Performs a FFT on the data in the local memory buffer at the offset specified by the first parameter. The size of the FFT is specified by the second parameter, which must be 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, or 32768. The outputs are permuted, so if you plan to use them in-order, call fft_permute(buffer, size) before and fft_ipermute(buffer,size) after your in-order use. Your inputs or outputs will need to be scaled down by 1/size, if used.
    Note that fft()/ifft() require real / imaginary input pairs, so a 256 point FFT actually works with 512 items.
    Note that fft()/ifft() must NOT cross a 65,536 item boundary, so be sure to specify the offset accordingly.

    Returnvalues:
    float retval

    Parameters:
    data buffer
    integer size


    ^ Reaper version 5.62fft_ipermute

    EEL2: float retval = fft_ipermute(data buffer, integer size)

    Permute the input for ifft(), taking bands from in-order to the order ifft() requires. See fft() for more information.


    Returnvalues:
    float retval

    Parameters:
    data buffer
    integer size


    ^ Reaper version 5.62fft_permute

    EEL2: float retval = fft_permute(data buffer, integer size)

    Permute the output of fft() to have bands in-order. See fft() for more information.


    Returnvalues:
    float retval

    Parameters:
    data buffer
    integer size


    ^ Reaper version 5.62fft_real

    EEL2: fft_real(data buffer, integer size)

    Performs an FFT, but takes size input samples and produces size/2 complex output pairs. Usually used along with fft_permute(size/2). Inputs/outputs will need to be scaled by 0.5/size.

    Parameters:
    data buffer
    integer size


    ^ Reaper version 5.62floor

    EEL2: integer rounded_value = floor(float value)

    Returns the value rounded to the next lowest integer (floor(3.9)==3, floor(-3.1)==-4).

    Returnvalues:
    integer rounded_value
    the rounded value to the next lowest integer

    Parameters:
    float value
    the value to be rounded


    ^ Reaper version 5.62ifft

    EEL2: ifft(buffer,size)

    Perform an inverse FFT. For more information see fft()

    Parameters:
    buffer
    size

    see also:
  • eel_fft - perform a FFT


  • ^ Reaper version 5.62ifft_real

    EEL2: ifft_real(buffer,size)

    Performs an inverse FFT, but takes size/2 complex input pairs and produces size real output values. Usually used along with fft_ipermute(size/2).

    Parameters:
    buffer
    size


    ^ Reaper version 5.62invsqrt

    EEL2: invsqrt(value)

    Returns a fast inverse square root (1/sqrt(x)) approximation of the parameter.

    Parameters:
    value


    ^ Reaper version 5.62log

    EEL2: log(value)

    Returns the natural logarithm (base e) of the parameter. If the value is not greater than 0, the return value is undefined.

    Parameters:
    value


    ^ Reaper version 5.62log10

    EEL2: log10(value)

    Returns the base-10 logarithm of the parameter. If the value is not greater than 0, the return value is undefined.

    Parameters:
    value


    ^ Reaper version 5.62rand

    EEL2: rand([max])

    Returns a pseudorandom real number between 0 and the parameter, inclusive. If the parameter is omitted or less than 1.0, 1.0 is used as a maximum instead.

    Parameters:
    max


    ^ Reaper version 5.62sin

    EEL2: sin(angle)

    Returns the sine of the angle specified (specified in radians -- to convert from degrees to radians, multiply by $pi/180, or 0.017453).

    Parameters:
    angle


    ^ Reaper version 5.62sqr

    EEL2: sqr(value)

    Returns the square of the parameter (similar to value*value, but only evaluating value once).

    Parameters:
    value


    ^ Reaper version 5.62sqrt

    EEL2: sqrt(value)

    Returns the square root of the parameter. If the parameter is negative, the return value is undefined.

    Parameters:
    value


    ^ Reaper version 5.62tan

    EEL2: double tangent = tan(double angle)

    Returns the tangent of the angle specified (specified in radians).

    Returnvalues:
    double tangent
    the tangent of the angle

    Parameters:
    double angle
    the angle in radians


    ^ Reaper version 5.62freembuf

    EEL2: float retval = freembuf(float address)

    Hints the runtime that memory above the address specified may no longer be used. The runtime may, at its leisure, choose to lose the contents of memory above the address specified.

    Returnvalues:
    float retval

    Parameters:
    float address


    ^ Reaper version 5.62mem_get_values

    EEL2: mem_get_values(offset, ...)

    Reads values from memory starting at offset into variables specified. Slower than regular memory reads for less than a few variables, faster for more than a few. Undefined behavior if used with more than 32767 variables.

    Parameters:
    offset
    ...


    ^ Reaper version 6.74mem_insert_shuffle

    EEL2: mem_insert_shuffle(buf,len,value)

    Shuffles contents of buf right by 1, inserts value at buf[0], returns previous buf[len-1].

    Parameters:
    buf
    len
    value


    ^ Reaper version 6.74mem_multiply_sum

    EEL2: mem_multiply_sum(src1,src2,length)

    Calculates the sum of the products of values pointed to by src1 and src2. If src2 is -1, then calculates the sum of squares of src1, if -2, the sum of the absolute values of src, if -3, calculates the sum of the values of src1. Other negative values are undefined.

    Parameters:
    src1
    src2
    length


    ^ Reaper version 5.62mem_set_values

    EEL2: mem_set_values(offset, ...)

    Writes values to memory starting at offset from variables specified. Slower than regular memory writes for less than a few variables, faster for more than a few. Undefined behavior if used with more than 32767 variables.

    Parameters:
    offset
    ...


    ^ Reaper version 5.62memcpy

    EEL2: memcpy(dest,src,length)

    Copies length items of memory from src to dest. Regions are permitted to overlap.

    Parameters:
    dest
    src
    length


    ^ Reaper version 5.62memset

    EEL2: memset(offset,value,length)

    Sets length items of memory at offset to value.

    Parameters:
    offset
    value
    length


    ^ Reaper version 5.62atexit

    EEL2: float retval = atexit(string code)

    Adds code to be executed when the script finishes or is ended by the user. Typically used to clean up after the user terminates defer() or runloop() code.

    Parameters:
    string code
    the code to be run. You can also add a regular functioncall into this string, like "main()", if there's a main-function in the script


    ^ Reaper version 5.62defer

    EEL2: defer(string "code")

    Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to runloop().
    Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

    Each function called by defer can only be deferred once per defer-cycle(unlike in Lua, where you can have one function deferred multiple times).

    Unlike "normal" loops, defer allows looped code to run in the background without blocking Reaper's user interface.
    That way, scripts, who need longer time to run, can be made possible.

    Example:
    the following example allows adding a to variable A with each defer-cycle.
    
    function main()(
      A=A+1;
      defer("main()");
    );
    
    main();
    


    Parameters:
    string code
    the code to be run. You can also add a regular functioncall into this string, like "main()", if there's a main-function in the script


    ^ Reaper version 5.62eval

    EEL2: eval(code)

    Executes code passed in. Code can use functions, but functions created in code can't be used elsewhere.

    Allows loading code from files and executing it

    Parameters:
    string code
    the code to be executed


    ^ Reaper version 5.62extension_api

    EEL2: various retval = extension_api(string function_name[,...])

    Used to call functions exported by extension plugins. The first parameter must be the exported function name, then its own parameters (as if the function was called directly).

    Will return the returnvalue of the function called.

    Returnvalues:
    various retval
    the return value of functionname, can be of numerous datatypes, refer to the docs of functionname

    Parameters:
    string functionname
    the name of the function to run
    various parameters...
    the parameters used by functionname


    ^ Reaper version 6.71get_action_context

    EEL2: get_action_context(string #filename, integer sectionID, integer cmdID, integer mode, integer resolution, integer val, string contextstr)

    Queries contextual information about the script, typically MIDI/OSC input values.
    Returns true if a new value has been updated.
    val will be set to a relative or absolute value depending on mode (=0: absolute mode, >0: relative modes). resolution=127 for 7-bit resolution, =16383 for 14-bit resolution.
    Notes: sectionID, and cmdID will be set to -1 if the script is not part of the action list. mode, resolution and val will be set to -1 if the script was not triggered via MIDI/OSC.

    For relative mode bindings, calling get_action_context() will return the accumulated relative value in decoded form (not 65 or 63, but +1/-1 etc), and clear the internal state. So if you call it multiple times, the first one will return the accumulated value, and the second will always return 0.

    contextstr may be empty or one of:

    midi:XX[:YY] (one or two bytes hex)
    [wheel|hwheel|mtvert|mthorz|mtzoom|mtrot|mediakbd]:flags
    key:flags:keycode
    osc:/msg[:f=FloatValue|:s=StringValue]
    KBD_OnMainActionEx
    (flags may include V=virtkey, S=shift, A=alt/option, C=control/command, W=win/control)

    Parameters:
    string #filename
    the filename plus path of the script
    integer sectionID
    the section
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the command id of the script
    integer mode
    -1, if script isn't run by shortcut; 55953, if script is run by shortcut
    integer resolution
    -1, if script isn't run by shortcut; resolution of OSC(14 bit)/MIDI(7 bit)
    integer val
    the value sent by MIDI or OSC
    string contextstr
    the shortcut, that ran this action, more info in the description


    ^ Reaper version 5.62gfx_dock

    EEL2: integer dockstate = gfx_dock(integer v[, optional integer wx, optional integer wy, optional integer ww, optional integer wh])

    Call with v=-1 to query docked state, otherwise v>=0 to set docked state. State is &1 if docked, second byte is docker index (or last docker index if undocked). If wx-wh are specified, they will be filled with the undocked window position/size

    Returnvalues:
    integer dockstate
    the new/queried dockstate

    Parameters:
    integer v
    -1, query only docking-state; 0 and higher, set state of the window to docked
    optional integer wx
    will hold window-x-position
    optional integer wy
    will hold window-y-position
    optional integer ww
    will hold window-width            
    optional integer wh
    will hold window-height


    ^ Reaper version 5.62loop

    EEL2: loop(count,expression)

    Evaluates count once, and then executes expression count, but not more than 1048576, times.

    Parameters:
    count
    expression


    ^ Reaper version 5.62match

    EEL2: match(needle,haystack[, ...])

    Searches for the first parameter in the second parameter, using a simplified regular expression syntax.

    * * = match 0 or more characters
    * *? = match 0 or more characters, lazy
    * + = match 1 or more characters
    * +? = match 1 or more characters, lazy
    * ? = match one character

    You can also use format specifiers to match certain types of data, and optionally put that into a variable:

    * %s means 1 or more chars
    * %0s means 0 or more chars
    * %5s means exactly 5 chars
    * %5-s means 5 or more chars
    * %-10s means 1-10 chars
    * %3-5s means 3-5 chars
    * %0-5s means 0-5 chars
    * %x, %d, %u, and %f are available for use similarly
    * %c can be used, but can't take any length modifiers
    * Use uppercase (%S, %D, etc) for lazy matching

    See also sprintf() for other notes, including specifying direct variable references via {}.

    Parameters:
    needle
    haystack
    ...


    ^ Reaper version 5.62matchi

    EEL2: matchi(needle,haystack[, ...])

    Case-insensitive version of match().

    Parameters:
    needle
    haystack
    ...

    see also:
  • eel_match - case-sensitive version of match


  • ^ Reaper version 5.62max

    EEL2: max(&value,&value2)

    Returns (by reference) the maximum value of the two parameters. Since max() returns by reference, expressions such as max(x,y) = 5 are possible.

    Parameters:
    value
    value2


    ^ Reaper version 5.62min

    EEL2: min(&value,&value2)

    Returns (by reference) the minimum value of the two parameters. Since min() returns by reference, expressions such as min(x,y) = 5 are possible.

    Parameters:
    value
    value2


    ^ Reaper version 5.62printf

    EEL2: printf(format[, ...])

    Output formatted string to system-specific destination, see sprintf() for more information

    Many standard C printf() modifiers can be used, including:

    Values for format specifiers can be specified as additional parameters to printf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).


    Parameters:
    format
    ...


    ^ Reaper version 5.62runloop

    EEL2: runloop(string code)

    Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to defer().

    Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

    Each function called by runloop can only be deferred once per runloop-cycle(unlike in Lua, where you can have one function deferred multiple times).

    Unlike "normal" loops, runloop allows looped code to run in the background without blocking Reaper's user interface.
    That way, scripts, who need longer time to run, can be made possible.

    Example:
    the following example allows adding a to variable A with each runloop-cycle.
    
    function main()(
      A=A+1;
      runloop("main()");
    );
    
    main();
    


    Parameters:
    string code
    the code to be run. You can also add a regular functioncall into this string, like "main()", if there's a main-function in the script


    ^ Reaper version 5.62sign

    EEL2: sign(value)

    Returns 1.0 if the parameter is greater than 0, -1.0 if the parameter is less than 0, or 0 if the parameter is 0.

    Parameters:
    value


    ^ Reaper version 5.62sleep

    EEL2: sleep(ms)

    Yields the CPU for the millisecond count specified, calling Sleep() on Windows or usleep() on other platforms.

    Parameters:
    ms


    ^ Reaper version 5.62sprintf

    EEL2: sprintf(#dest,format[, ...])

    Formats a string and stores it in #dest. Format specifiers begin with %, and may include:

        * %% = %
        * %s = string from parameter
        * %d = parameter as integer
        * %i = parameter as integer
        * %u = parameter as unsigned integer
        * %x = parameter as hex (lowercase) integer
        * %X = parameter as hex (uppercase) integer
        * %c = parameter as character
        * %f = parameter as floating point
        * %e = parameter as floating point (scientific notation, lowercase)
        * %E = parameter as floating point (scientific notation, uppercase)
        * %g = parameter as floating point (shortest representation, lowercase)
        * %G = parameter as floating point (shortest representation, uppercase)

    Many standard C printf() modifiers can be used, including:

        * %.10s = string, but only print up to 10 characters
        * %-10s = string, left justified to 10 characters
        * %10s = string, right justified to 10 characters
        * %+f = floating point, always show sign
        * %.4f = floating point, minimum of 4 digits after decimal point
        * %10d = integer, minimum of 10 digits (space padded)
        * %010f = integer, minimum of 10 digits (zero padded)

    Values for format specifiers can be specified as additional parameters to sprintf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).

    Parameters:
    #dest
    format
    ...


    ^ Reaper version 5.62time

    EEL2: time([&val])

    Sets the parameter (or a temporary buffer if omitted) to the number of seconds since January 1, 1970, and returns a reference to that value. The granularity of the value returned is 1 second.

    Parameters:
    integer seconds
    number of seconds since January 1, 1970


    ^ Reaper version 5.62time_precise

    EEL2: float timestamp = time_precise([×tamp])

    Sets the parameter (or a temporary buffer if omitted) to a system-local timestamp in seconds, and returns a reference to that value. The granularity of the value returned is system defined (but generally significantly smaller than one second).

    Parameters:
    float timestamp
    the timestamp


    ^ Reaper version 5.62while

    EEL2: integer retval = while(code expression)

    Executes expression until expression evaluates to zero, or until 1048576 iterations occur. An alternate and more useful syntax is while (expression) ( statements ), which evaluates statements after every non-zero evaluation of expression.
    
        A=0; // set A to 0
    
        // while A is still less than 10, add 1 to A
        while(A < 10)(
          A=A+1;
        );
    


    Returnvalues:
    integer retval
    0

    Parameters:
    code expression
    the expression that needs to return true or false


    ^ Reaper version 5.62tcp_close

    EEL2: integer retval = tcp_close(tcp_handler connection)

    Closes a TCP connection created by tcp_listen() or tcp_connect().

    Returnvalues:
    integer retval
    1, closing was successful; 0, closing was unsuccessful

    Parameters:
    tcp_handler connection
    the handler to the tcp-connection


    ^ Reaper version 5.62tcp_connect

    EEL2: tcp_handler connection = tcp_connect(string address, integer port[, optional integer block])

    Create a new TCP connection to address:port. If block is specified and 0, connection will be made nonblocking. Returns TCP connection ID greater than 0 on success.

    Returnvalues:
    tcp_handler connection
    the handler to the tcp-connection

    Parameters:
    string address
    the tcp-address of the connection
    integer port
    the port of the connection
    optional integer block
    0, non-blocking connection; unspecified, blocking connection


    ^ Reaper version 5.62tcp_listen

    EEL2: tcp_listen(integer port[, optional string interface, optional string #ip_out])

    Listens on port specified. Returns less than 0 if could not listen, 0 if no new connection available, or greater than 0 (as a TCP connection ID) if a new connection was made. If a connection made and #ip_out specified, it will be set to the remote IP. interface can be empty for all interfaces, otherwise an interface IP as a string.

    Parameters:
    integer port
    optional string interface
    optional string #ip_out


    ^ Reaper version 5.62tcp_listen_end

    EEL2: tcp_listen_end(integer port)

    Ends listening on port specified.

    Parameters:
    integer port


    ^ Reaper version 5.62tcp_recv

    EEL2: integer retval = tcp_recv(tcp_handler connection, string #str[, integer maxlen])

    Receives data from a connection to #str. If maxlen is specified, no more than maxlen bytes will be received. If non-blocking, 0 will be returned if would block. Returns less than 0 if error.

    Returnvalues:
    integer retval
    0, receiving works; -1, receiving doesn't work

    Parameters:
    tcp_handler connection
    string #str
    integer maxlen


    ^ Reaper version 5.62tcp_send

    EEL2: tcp_send(tcp_handler connection, string str[, optional integer len])

    Sends a string to connection. Returns -1 on error, 0 if connection is non-blocking and would block, otherwise returns length sent. If len is specified and not less than 1, only the first len bytes of the string parameter will be sent.

    Parameters:
    tcp_handler connection
    string str
    optional integer len


    ^ Reaper version 5.62tcp_set_block

    EEL2: integer retval = tcp_set_block(connection,block)

    Sets whether a connection blocks.

    Returnvalues:
    integer retval
    the new block-state

    Parameters:
    tcp_handlerconnection
    the handler to the tcp-connection
    integer block
    0, keep block unblocked


    ^ Reaper version 5.62stack_exch

    EEL2: stack_exch(&value)

    Exchanges a value with the top of the stack, and returns a reference to the parameter (with the new value).

    Parameters:
    value


    ^ Reaper version 5.62stack_peek

    EEL2: stack_peek(index)

    Returns a reference to the item on the top of the stack (if index is 0), or to the Nth item on the stack if index is greater than 0.

    Parameters:
    index


    ^ Reaper version 5.62stack_pop

    EEL2: stack_pop(&value)

    Pops a value from the user stack into value, or into a temporary buffer if value is not specified, and returns a reference to where the stack was popped. Note that no checking is done to determine if the stack is empty, and as such stack_pop() will never fail.

    Parameters:
    value


    ^ Reaper version 5.62stack_push

    EEL2: stack_push(&value)

    Pushes value onto the user stack, returns a reference to the parameter.

    Parameters:
    value


    ^ Reaper version 5.62str_delsub

    EEL2: str_delsub(#str,pos,len)

    Deletes len characters at offset pos from #str, and returns #str.

    Parameters:
    #str
    pos
    len


    ^ Reaper version 5.62str_getchar

    EEL2: str_getchar(str,offset[,type])

    Returns the data at byte-offset offset of str.
    If offset is negative, position is relative to end of string.type defaults to signed char, but can be specified to read raw binary data in other formats
    (note the single quotes, these are single/multi-byte characters):

    * 'c' - signed char
    * 'cu' - unsigned char
    * 's' - signed short
    * 'S' - signed short, big endian
    * 'su' - unsigned short
    * 'Su' - unsigned short, big endian
    * 'i' - signed int
    * 'I' - signed int, big endian
    * 'iu' - unsigned int
    * 'Iu' - unsigned int, big endian
    * 'f' - float
    * 'F' - float, big endian
    * 'd' - double
    * 'D' - double, big endian

    Parameters:
    str
    offset
    type


    ^ Reaper version 5.62str_insert

    EEL2: str_insert(#str,srcstr,pos)

    Inserts srcstr into #str at offset pos. Returns #str.

    Parameters:
    #str
    srcstr
    pos


    ^ Reaper version 5.62str_setchar

    EEL2: str_setchar(#str,offset,val[,type]))

    Sets value at offset offset, type optional. offset may be negative to refer to offset relative to end of string, or between 0 and length, inclusive, and if set to length it will lengthen string. See eel_str_getchar for more information on types.

    Parameters:
    #str
    offset
    val
    type

    see also:
  • eel_str_getchar - gets a character from the keyboard-queue, as input into a gfx-window


  • ^ Reaper version 5.62str_setlen

    EEL2: str_setlen(#str,len)

    Sets length of #str (if increasing, will be space-padded), and returns #str.

    Parameters:
    #str
    len


    ^ Reaper version 5.62strcat

    EEL2: strcat(#str,srcstr)

    Appends srcstr to #str, and returns #str

    Parameters:
    #str
    srcstr


    ^ Reaper version 5.62strcmp

    EEL2: strcmp(str,str2)

    Compares strings, returning 0 if equal

    Parameters:
    str
    str2


    ^ Reaper version 5.62strcpy

    EEL2: strcpy(#str,srcstr)

    Copies the contents of srcstr to #str, and returns #str

    Parameters:
    #str
    srcstr


    ^ Reaper version 5.62strcpy_from

    EEL2: strcpy_from(#str,srcstr,offset)

    Copies srcstr to #str, but starts reading srcstr at offset offset

    Parameters:
    #str
    srcstr
    offset


    ^ Reaper version 5.62strcpy_substr

    EEL2: strcpy_substr(#str,srcstr,offs,ml))

    PHP-style (start at offs, offs<0 means from end, ml for maxlen, ml<0 = reduce length by this amt)

    Parameters:
    #str
    srcstr
    offs
    ml


    ^ Reaper version 5.62stricmp

    EEL2: stricmp(str,str2)

    Compares strings ignoring case, returning 0 if equal.

    Parameters:
    str
    str2


    ^ Reaper version 5.62strlen

    EEL2: strlen(str)

    Returns the length of the string passed as a parameter.

    Parameters:
    str


    ^ Reaper version 5.62strncat

    EEL2: strncat(#str,srcstr,maxlen)

    Appends srcstr to #str, stopping after maxlen characters of srcstr. Returns #str.

    Parameters:
    #str
    srcstr
    maxlen


    ^ Reaper version 5.62strncmp

    EEL2: strncmp(str,str2,maxlen)

    Compares strings giving up after maxlen characters, returning 0 if equal.

    Parameters:
    str
    str2
    maxlen


    ^ Reaper version 5.62strncpy

    EEL2: strncpy(#str,srcstr,maxlen)

    Copies srcstr to #str, stopping after maxlen characters. Returns #str.

    Parameters:
    #str
    srcstr
    maxlen


    ^ Reaper version 5.62strnicmp

    EEL2: strnicmp(str,str2,maxlen)

    Compares strings giving up after maxlen characters, ignoring case, returning 0 if equal.

    Parameters:
    str
    str2
    maxlen


    ^ Reaper version 5.62CountAutomationItems

    C: int CountAutomationItems(TrackEnvelope* env)
    EEL2: int CountAutomationItems(TrackEnvelope env)
    Lua: integer ai_count = reaper.CountAutomationItems(TrackEnvelope env)
    Python: Int retval = RPR_CountAutomationItems(TrackEnvelope env)

    Returns the number of automation items on this envelope.

    Returnvalues:
    integer ai_count
    number of automation items

    Parameters:
    TrackEnvelope env
    the envelope-object for the envelope-lane

    see also:
  • GetSetAutomationItemInfo - for setting attributes of an automation-item


  • ^ Reaper version 6.01GetSetAutomationItemInfo

    C: double GetSetAutomationItemInfo(TrackEnvelope* env, int autoitem_idx, const char* desc, double value, bool is_set)
    EEL2: double GetSetAutomationItemInfo(TrackEnvelope env, int autoitem_idx, "desc", value, bool is_set)
    Lua: number retval = reaper.GetSetAutomationItemInfo(TrackEnvelope env, integer autoitem_idx, string desc, number value, boolean is_set)
    Python: Float retval = RPR_GetSetAutomationItemInfo(TrackEnvelope env, Int autoitem_idx, String desc, Float value, Boolean is_set)

    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:
    D_POOL_ID : double * : automation item pool ID (as an integer); edits are propagated to all other automation items that share a pool ID
    D_POSITION : double * : automation item timeline position in seconds
    D_LENGTH : double * : automation item length in seconds
    D_STARTOFFS : double * : automation item start offset in seconds
    D_PLAYRATE : double * : automation item playback rate
    D_BASELINE : double * : automation item baseline value in the range [0,1]
    D_AMPLITUDE : double * : automation item amplitude in the range [-1,1]
    D_LOOPSRC : double * : nonzero if the automation item contents are looped
    D_UISEL : double * : nonzero if the automation item is selected in the arrange view
    D_POOL_QNLEN : double * : automation item pooled source length in quarter notes (setting will affect all pooled instances)

    Returnvalues:
    number retval

    Parameters:
    TrackEnvelope env
    the envelope, that contains the automation-item
    integer autoitem_idx
    the index of the automation-item, whose information-attribute you want to get/set
    string desc
    the attribute to get/set
    number value
    the new value to be set; write any value, when is_set=false
    boolean is_set
    true, set a new value; false, get the current value


    ^ Reaper version 6.30GetSetAutomationItemInfo_String

    C: bool GetSetAutomationItemInfo_String(TrackEnvelope* env, int autoitem_idx, const char* desc, char* valuestrNeedBig, bool is_set)
    EEL2: bool GetSetAutomationItemInfo_String(TrackEnvelope env, int autoitem_idx, "desc", #valuestrNeedBig, bool is_set)
    Lua: boolean retval, string valuestrNeedBig = reaper.GetSetAutomationItemInfo_String(TrackEnvelope env, integer autoitem_idx, string desc, string valuestrNeedBig, boolean is_set)
    Python: (Boolean retval, TrackEnvelope env, Int autoitem_idx, String desc, String valuestrNeedBig, Boolean is_set) = RPR_GetSetAutomationItemInfo_String(env, autoitem_idx, desc, valuestrNeedBig, is_set)

    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:

    P_POOL_NAME : char * : name of the underlying automation item pool
    P_POOL_EXT:xyz : char * : extension-specific persistent data

    Returnvalues:
    boolean retval
    true, getting/setting the value was successful; falsem getting/setting the value was unsuccessful
    string valuestrNeedBig
    the current value set

    Parameters:
    TrackEnvelope env
    the envelope, that contains the automation-item
    integer autoitem_idx
    the index of the automation-item, whose information-attribute you want to get/set
    string desc
    the attribute to get/set
    string valuestrNeedBig
    the new value to set; set it to "" when is_set=false
    boolean is_set
    true, set a new value; false, get the current value


    ^ Reaper version 5.96InsertAutomationItem

    C: int InsertAutomationItem(TrackEnvelope* env, int pool_id, double position, double length)
    EEL2: int InsertAutomationItem(TrackEnvelope env, int pool_id, position, length)
    Lua: integer retval = reaper.InsertAutomationItem(TrackEnvelope env, integer pool_id, number position, number length)
    Python: Int retval = RPR_InsertAutomationItem(TrackEnvelope env, Int pool_id, Float position, Float length)

    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.

    Returnvalues:
    integer retval

    Parameters:
    TrackEnvelope env
    integer pool_id
    number position
    number length

    see also:
  • GetSetAutomationItemInfo - gets/sets additional attributes of an automation item


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvCountPoints

    C: int BR_EnvCountPoints(BR_Envelope* envelope)
    EEL2: int extension_api("BR_EnvCountPoints", BR_Envelope envelope)
    Lua: integer retval = reaper.BR_EnvCountPoints(BR_Envelope envelope)
    Python: Int retval = BR_EnvCountPoints(BR_Envelope envelope)

    [BR] Count envelope points in the envelope object allocated with BR_EnvAlloc.

    Returnvalues:
    integer retval
    the number of envelope-points in the BR_Envelope-object

    Parameters:
    BR_Envelope envelope
    the BR_Envelope-object, whose points you want to count

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvDeletePoint

    C: bool BR_EnvDeletePoint(BR_Envelope* envelope, int id)
    EEL2: bool extension_api("BR_EnvDeletePoint", BR_Envelope envelope, int id)
    Lua: boolean retval = reaper.BR_EnvDeletePoint(BR_Envelope envelope, integer id)
    Python: Boolean retval = BR_EnvDeletePoint(BR_Envelope envelope, Int id)

    [BR] Delete envelope point by index (zero-based) in the envelope object allocated with BR_EnvAlloc.

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful

    Parameters:
    BR_Envelope envelope
    the BR_Envelope-object, where you want to delete an envelope-point
    integer id
    the envelope-point-idx, that you want to delete. 0, first envelope-point; 1, second envelope-point, etc

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvGetPoint

    C: bool BR_EnvGetPoint(BR_Envelope* envelope, int id, double* positionOut, double* valueOut, int* shapeOut, bool* selectedOut, double* bezierOut)
    EEL2: bool extension_api("BR_EnvGetPoint", BR_Envelope envelope, int id, &position, &value, int &shape, bool &selected, &bezier)
    Lua: boolean retval, number position, number value, integer shape, boolean selected, number bezier = reaper.BR_EnvGetPoint(BR_Envelope envelope, integer id)
    Python: (Boolean retval, BR_Envelope envelope, Int id, Float positionOut, Float valueOut, Int shapeOut, Boolean selectedOut, Float bezierOut) = BR_EnvGetPoint(envelope, id, positionOut, valueOut, shapeOut, selectedOut, bezierOut)

    [BR] Get envelope point by id (zero-based) from the envelope object allocated with BR_EnvAlloc.

    Returns true on success.

    Returnvalues:
    boolean retval
    number position
    number value
    integer shape
    boolean selected
    number bezier

    Parameters:
    BR_Envelope envelope
    integer id

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvSetPoint

    C: bool BR_EnvSetPoint(BR_Envelope* envelope, int id, double position, double value, int shape, bool selected, double bezier)
    EEL2: bool extension_api("BR_EnvSetPoint", BR_Envelope envelope, int id, position, value, int shape, bool selected, bezier)
    Lua: boolean retval = reaper.BR_EnvSetPoint(BR_Envelope envelope, integer id, number position, number value, integer shape, boolean selected, number bezier)
    Python: Boolean retval = BR_EnvSetPoint(BR_Envelope envelope, Int id, Float position, Float value, Int shape, Boolean selected, Float bezier)

    [BR] Set envelope point by id (zero-based) in the envelope object allocated with BR_EnvAlloc.

    To create point instead, pass id = -1.

    Note that if new point is inserted or existing point's time position is changed, points won't automatically get sorted. To do that, see BR_EnvSortPoints.
    Returns true on success.

    Returnvalues:
    boolean retval

    Parameters:
    BR_Envelope envelope
    integer id
    number position
    number value
    integer shape
    boolean selected
    number bezier

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvSortPoints

    C: void BR_EnvSortPoints(BR_Envelope* envelope)
    EEL2: extension_api("BR_EnvSortPoints", BR_Envelope envelope)
    Lua: reaper.BR_EnvSortPoints(BR_Envelope envelope)
    Python: BR_EnvSortPoints(BR_Envelope envelope)

    [BR] Sort envelope points by position.

    The only reason to call this is if sorted points are explicitly needed after editing them with BR_EnvSetPoint.

    Note that you do not have to call this before doing BR_EnvFree since it does handle unsorted points too.

    Parameters:
    BR_Envelope envelope

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.979CountEnvelopePoints

    C: int CountEnvelopePoints(TrackEnvelope* envelope)
    EEL2: int CountEnvelopePoints(TrackEnvelope envelope)
    Lua: integer count_envpoints = reaper.CountEnvelopePoints(TrackEnvelope envelope)
    Python: Int retval = RPR_CountEnvelopePoints(TrackEnvelope envelope)

    Returns the number of points in the envelope.

    Returnvalues:
    integer count_envpoints
    the number of envelope-points in the envelopeobject envelope

    Parameters:
    TrackEnvelope envelope
    the TrackEnvelope-object, in which to count for the envelope-points

    see also:
  • CountEnvelopePointsEx - to count envelope-points of envelopes and automation-items
  • GetEnvelopePoint - to get envelope-points in envelopes only
  • SetEnvelopePoint - to set envelope-points in envelopes only
  • InsertEnvelopePoint - to insert an envelope-point into envelopes only
  • DeleteEnvelopePoint - to delete an envelope-point into envelopes only


  • ^ Reaper version 5.979CountEnvelopePointsEx

    C: int CountEnvelopePointsEx(TrackEnvelope* envelope, int autoitem_idx)
    EEL2: int CountEnvelopePointsEx(TrackEnvelope envelope, int autoitem_idx)
    Lua: integer count_envpoints = reaper.CountEnvelopePointsEx(TrackEnvelope envelope, integer autoitem_idx)
    Python: Int retval = RPR_CountEnvelopePointsEx(TrackEnvelope envelope, Int autoitem_idx)

    Returns the number of points in the envelope.
    autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
    For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
    even if the automation item is trimmed so that not all points are visible.
    Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

    Returnvalues:
    integer count_envpoints
    the number of envelope-points in the envelopeobject envelope

    Parameters:
    TrackEnvelope envelope
    the TrackEnvelope-object, in which to count for the envelope-points
    integer autoitem_idx
    -1, for the underlying envelope, 0, for the first automation item on the envelope, etc.

    see also:
  • CountEnvelopePoints - to count envelope-points of envelopes only
  • GetEnvelopePointEx - to get envelope-points in envelopes and automation-items
  • SetEnvelopePointEx - to set envelope-points in envelopes and automation-items
  • InsertEnvelopePointEx - to insert an envelope-point into envelopes and automation-items
  • DeleteEnvelopePointEx - to delete an envelope-point into envelopes and automation-items


  • ^ Reaper version 5.979DeleteEnvelopePointEx

    C: bool DeleteEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx)
    EEL2: bool DeleteEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx)
    Lua: boolean retval = reaper.DeleteEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx)
    Python: Boolean retval = RPR_DeleteEnvelopePointEx(TrackEnvelope envelope, Int autoitem_idx, Int ptidx)

    Delete an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.
    autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
    For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
    even if the automation item is trimmed so that not all points are visible.
    Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful

    Parameters:
    TrackEnvelope envelope
    the envelope, in which the point lies, that you want to delete
    integer autoitem_idx
    -1, the underlying envelope;
    0 to x, the 1st to x-1th automation-item
    |0x10000000 to base ptidx on the number of points in one full loop iteration,
    even if the automation item is trimmed so that not all points are visible.
    Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.
    integer ptidx
    the envelope-point to delete

    see also:
  • CountEnvelopePointsEx - count envelope-points in envelopes and automation-items
  • GetEnvelopePointEx - get envelope-points of envelopes and automation-items
  • SetEnvelopePointEx - sets envelope-points of envelopes and automation-items
  • InsertEnvelopePointEx - inserts an envelope-point into envelopes and automation-items


  • ^ Reaper version 5.979DeleteEnvelopePointRange

    C: bool DeleteEnvelopePointRange(TrackEnvelope* envelope, double time_start, double time_end)
    EEL2: bool DeleteEnvelopePointRange(TrackEnvelope envelope, time_start, time_end)
    Lua: boolean retval = reaper.DeleteEnvelopePointRange(TrackEnvelope envelope, number time_start, number time_end)
    Python: Boolean retval = RPR_DeleteEnvelopePointRange(TrackEnvelope envelope, Float time_start, Float time_end)

    Delete a range of envelope points.

    Returnvalues:
    boolean retval
    true, if it succeeded

    Parameters:
    TrackEnvelope envelope
    the envelope-point-object, in which to delete the envelope-points
    number time_start
    the starttime of the deletionrange in seconds
    number time_end
    the endtime of the deletionrange in seconds

    see also:
  • DeleteEnvelopePointRangeEx - deletes a range of envelope-points within envelopes and automation items
  • DeleteEnvelopePointEx - deletes an envelope-point within an envelope and automation-items


  • ^ Reaper version 5.975DeleteEnvelopePointRangeEx

    C: bool DeleteEnvelopePointRangeEx(TrackEnvelope* envelope, int autoitem_idx, double time_start, double time_end)
    EEL2: bool DeleteEnvelopePointRangeEx(TrackEnvelope envelope, int autoitem_idx, time_start, time_end)
    Lua: boolean retval = reaper.DeleteEnvelopePointRangeEx(TrackEnvelope envelope, integer autoitem_idx, number time_start, number time_end)
    Python: Boolean retval = RPR_DeleteEnvelopePointRangeEx(TrackEnvelope envelope, Int autoitem_idx, Float time_start, Float time_end)

    Delete a range of envelope points. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.

    Returnvalues:
    boolean retval
    true, if deleting was successful; false, if not

    Parameters:
    TrackEnvelope envelope
    the envelope-point-object, in which to delete the envelope-points
    integer autoitem_idx
    the automation item to be affected by deletion; -1, for the underlying envelope itself; 0, for the first automation item on the envelope; 1 for the second, etc
    number time_start
    the starttime of the deletionrange in seconds
    number time_end
    the endtime of the deletionrange in seconds


    ^ Reaper version 5.62Envelope_SortPoints

    C: bool Envelope_SortPoints(TrackEnvelope* envelope)
    EEL2: bool Envelope_SortPoints(TrackEnvelope envelope)
    Lua: boolean retval = reaper.Envelope_SortPoints(TrackEnvelope envelope)
    Python: Boolean retval = RPR_Envelope_SortPoints(TrackEnvelope envelope)

    Sort envelope points by time.

    Returnvalues:
    boolean retval

    Parameters:
    TrackEnvelope envelope

    see also:
  • InsertEnvelopePoint - inserts an envelope-point into envelopes
  • InsertEnvelopePointEx - inserts an envelope-point into envelopes and automation-items
  • SetEnvelopePoint - sets envelope-points in envelopes
  • SetEnvelopePointEx - sets envelope-points in envelopes and automation-items


  • ^ Reaper version 5.975Envelope_SortPointsEx

    C: bool Envelope_SortPointsEx(TrackEnvelope* envelope, int autoitem_idx)
    EEL2: bool Envelope_SortPointsEx(TrackEnvelope envelope, int autoitem_idx)
    Lua: boolean retval = reaper.Envelope_SortPointsEx(TrackEnvelope envelope, integer autoitem_idx)
    Python: Boolean retval = RPR_Envelope_SortPointsEx(TrackEnvelope envelope, Int autoitem_idx)

    Sort envelope points by time. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.

    Returnvalues:
    boolean retval

    Parameters:
    TrackEnvelope envelope
    integer autoitem_idx

    see also:
  • InsertEnvelopePoint - inserts an envelope-point into envelopes
  • InsertEnvelopePointEx - inserts an envelope-point into envelopes and automation-items
  • SetEnvelopePoint - sets envelope-points in envelopes
  • SetEnvelopePointEx - sets envelope-points in envelopes and automation-items


  • ^ Reaper version 6.43GetEnvelopePoint

    C: bool GetEnvelopePoint(TrackEnvelope* envelope, int ptidx, double* timeOut, double* valueOut, int* shapeOut, double* tensionOut, bool* selectedOut)
    EEL2: bool GetEnvelopePoint(TrackEnvelope envelope, int ptidx, &time, &value, int &shape, &tension, bool &selected)
    Lua: boolean retval, number time, number value, integer shape, number tension, boolean selected = reaper.GetEnvelopePoint(TrackEnvelope envelope, integer ptidx)
    Python: (Boolean retval, TrackEnvelope envelope, Int ptidx, Float timeOut, Float valueOut, Int shapeOut, Float tensionOut, Boolean selectedOut) = RPR_GetEnvelopePoint(envelope, ptidx, timeOut, valueOut, shapeOut, tensionOut, selectedOut)

    Get the attributes of an envelope point.

    Returnvalues:
    boolean retval
    number time
    number value
    integer shape
    number tension
    boolean selected

    Parameters:
    TrackEnvelope envelope
    integer ptidx

    see also:
  • GetEnvelopePointEx - gets an envelopepoint from envelopes or automation-items


  • ^ Reaper version 5.979GetEnvelopePointByTime

    C: int GetEnvelopePointByTime(TrackEnvelope* envelope, double time)
    EEL2: int GetEnvelopePointByTime(TrackEnvelope envelope, time)
    Lua: integer envelope_index = reaper.GetEnvelopePointByTime(TrackEnvelope envelope, number time)
    Python: Int retval = RPR_GetEnvelopePointByTime(TrackEnvelope envelope, Float time)

    Returns the envelope point at or immediately prior to the given time position.

    Returnvalues:
    integer envelope_index

    Parameters:
    TrackEnvelope envelope
    number time

    see also:
  • GetEnvelopePointByTimeEx - gets an envelope-point by time in envelopes or automation-items


  • ^ Reaper version 5.979GetEnvelopePointByTimeEx

    C: int GetEnvelopePointByTimeEx(TrackEnvelope* envelope, int autoitem_idx, double time)
    EEL2: int GetEnvelopePointByTimeEx(TrackEnvelope envelope, int autoitem_idx, time)
    Lua: integer envelope_index = reaper.GetEnvelopePointByTimeEx(TrackEnvelope envelope, integer autoitem_idx, number time)
    Python: Int retval = RPR_GetEnvelopePointByTimeEx(TrackEnvelope envelope, Int autoitem_idx, Float time)

    Returns the envelope point at or immediately prior to the given time position.
    autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
    For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
    even if the automation item is trimmed so that not all points are visible.
    Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

    Returnvalues:
    integer envelope_index

    Parameters:
    TrackEnvelope envelope
    integer autoitem_idx
    number time

    see also:
  • GetEnvelopePointEx - gets an envelope-point from envelopes or automation-items
  • SetEnvelopePointEx - sets an envelope-point in envelopes or automation-items
  • InsertEnvelopePointEx - inserts envelope-points in envelopes or automation-items
  • DeleteEnvelopePointEx - deletes envelope-points in envelopes or automation-items


  • ^ Reaper version 6.43GetEnvelopePointEx

    C: bool GetEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeOut, double* valueOut, int* shapeOut, double* tensionOut, bool* selectedOut)
    EEL2: bool GetEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx, &time, &value, int &shape, &tension, bool &selected)
    Lua: boolean retval, number time, number value, integer shape, number tension, boolean selected = reaper.GetEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx)
    Python: (Boolean retval, TrackEnvelope envelope, Int autoitem_idx, Int ptidx, Float timeOut, Float valueOut, Int shapeOut, Float tensionOut, Boolean selectedOut) = RPR_GetEnvelopePointEx(envelope, autoitem_idx, ptidx, timeOut, valueOut, shapeOut, tensionOut, selectedOut)

    Get the attributes of an envelope point.
    autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
    For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
    even if the automation item is trimmed so that not all points are visible.
    Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

    Returnvalues:
    boolean retval
    number time
    number value
    integer shape
    number tension
    boolean selected

    Parameters:
    TrackEnvelope envelope
    integer autoitem_idx
    integer ptidx

    see also:
  • CountEnvelopePointsEx - counts envelope-points in envelopes or automation-items
  • SetEnvelopePointEx - sets an envelope-point in envelopes or automation-items
  • InsertEnvelopePointEx - inserts envelope-points in envelopes or automation-items
  • DeleteEnvelopePointEx - deletes envelope-points in envelopes or automation-items


  • ^ Reaper version 5.979InsertEnvelopePoint

    C: bool InsertEnvelopePoint(TrackEnvelope* envelope, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional)
    EEL2: bool InsertEnvelopePoint(TrackEnvelope envelope, time, value, int shape, tension, bool selected, optional bool noSortIn)
    Lua: boolean retval = reaper.InsertEnvelopePoint(TrackEnvelope envelope, number time, number value, integer shape, number tension, boolean selected, optional boolean noSortIn)
    Python: (Boolean retval, TrackEnvelope envelope, Float time, Float value, Int shape, Float tension, Boolean selected, Boolean noSortInOptional) = RPR_InsertEnvelopePoint(envelope, time, value, shape, tension, selected, noSortInOptional)

    Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.

    See InsertEnvelopePointEx.

    Returnvalues:
    boolean retval

    Parameters:
    TrackEnvelope envelope
    number time
    number value
    integer shape
    number tension
    boolean selected
    optional boolean noSortIn

    see also:
  • Envelope_SortPoints - sorts the envelope-points, after you are finished with modifying them
  • InsertEnvelopePointEx - allows inserting envelope-points to envelopes as well as automation-items


  • ^ Reaper version 5.979InsertEnvelopePointEx

    C: bool InsertEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional)
    EEL2: bool InsertEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, time, value, int shape, tension, bool selected, optional bool noSortIn)
    Lua: boolean retval = reaper.InsertEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, number time, number value, integer shape, number tension, boolean selected, optional boolean noSortIn)
    Python: (Boolean retval, TrackEnvelope envelope, Int autoitem_idx, Float time, Float value, Int shape, Float tension, Boolean selected, Boolean noSortInOptional) = RPR_InsertEnvelopePointEx(envelope, autoitem_idx, time, value, shape, tension, selected, noSortInOptional)

    Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.
    autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.
    For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration,
    even if the automation item is trimmed so that not all points are visible.
    Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations.

    See CountEnvelopePointsEx, GetEnvelopePointEx, SetEnvelopePointEx, DeleteEnvelopePointEx.

    Returnvalues:
    boolean retval

    Parameters:
    TrackEnvelope envelope
    integer autoitem_idx
    number time
    number value
    integer shape
    number tension
    boolean selected
    optional boolean noSortIn

    see also:
  • Envelope_SortPoints - sorts the envelope-points, after you are finished with modifying them
  • CountEnvelopePointsEx - counts envelope-points in envelopes as well as automation-items
  • GetEnvelopePointEx - gets envelope-points from envelopes as well as automation-items
  • SetEnvelopePointEx - sets envelope-points in envelopes as well as automation-items
  • DeleteEnvelopePointEx - deletes envelope-points from envelopes as well as automation-items


  • ^ Reaper version 5.979SetEnvelopePoint

    C: bool SetEnvelopePoint(TrackEnvelope* envelope, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional)
    EEL2: bool SetEnvelopePoint(TrackEnvelope envelope, int ptidx, optional timeIn, optional valueIn, optional int shapeIn, optional tensionIn, optional bool selectedIn, optional bool noSortIn)
    Lua: boolean retval = reaper.SetEnvelopePoint(TrackEnvelope envelope, integer ptidx, optional number timeIn, optional number valueIn, optional integer shapeIn, optional number tensionIn, optional boolean selectedIn, optional boolean noSortIn)
    Python: (Boolean retval, TrackEnvelope envelope, Int ptidx, Float timeInOptional, Float valueInOptional, Int shapeInOptional, Float tensionInOptional, Boolean selectedInOptional, Boolean noSortInOptional) = RPR_SetEnvelopePoint(envelope, ptidx, timeInOptional, valueInOptional, shapeInOptional, tensionInOptional, selectedInOptional, noSortInOptional)

    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.


    Returnvalues:
    boolean retval

    Parameters:
    TrackEnvelope envelope
    integer ptidx
    optional number timeIn
    optional number valueIn
    optional integer shapeIn
    optional number tensionIn
    optional boolean selectedIn
    optional boolean noSortIn


    ^ Reaper version 5.979SetEnvelopePointEx

    C: bool SetEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional)
    EEL2: bool SetEnvelopePointEx(TrackEnvelope envelope, int autoitem_idx, int ptidx, optional timeIn, optional valueIn, optional int shapeIn, optional tensionIn, optional bool selectedIn, optional bool noSortIn)
    Lua: boolean retval = reaper.SetEnvelopePointEx(TrackEnvelope envelope, integer autoitem_idx, integer ptidx, optional number timeIn, optional number valueIn, optional integer shapeIn, optional number tensionIn, optional boolean selectedIn, optional boolean noSortIn)
    Python: (Boolean retval, TrackEnvelope envelope, Int autoitem_idx, Int ptidx, Float timeInOptional, Float valueInOptional, Int shapeInOptional, Float tensionInOptional, Boolean selectedInOptional, Boolean noSortInOptional) = RPR_SetEnvelopePointEx(envelope, autoitem_idx, ptidx, timeInOptional, valueInOptional, shapeInOptional, tensionInOptional, selectedInOptional, noSortInOptional)

    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. autoitem_idx=-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. For automation items, pass autoitem_idx|0x10000000 to base ptidx on the number of points in one full loop iteration, even if the automation item is trimmed so that not all points are visible. Otherwise, ptidx will be based on the number of visible points in the automation item, including all loop iterations. See CountEnvelopePointsEx, GetEnvelopePointEx, InsertEnvelopePointEx, DeleteEnvelopePointEx.


    Returnvalues:
    boolean retval

    Parameters:
    TrackEnvelope envelope
    integer autoitem_idx
    integer ptidx
    optional number timeIn
    optional number valueIn
    optional integer shapeIn
    optional number tensionIn
    optional boolean selectedIn
    optional boolean noSortIn


    ^ Reaper version 6.71GetEnvelopeUIState

    C: int retval = GetEnvelopeUIState(TrackEnvelope* env)
    EEL2: int retval = GetEnvelopeUIState(TrackEnvelope env)
    Lua: integer retval = reaper.GetEnvelopeUIState(TrackEnvelope env)
    Python: Int retval = RPR_GetEnvelopeUIState(TrackEnvelope env)

    gets information on the UI state of an envelope: returns &1 if automation/modulation is playing back, &2 if automation is being actively written, &4 if the envelope recently had an effective automation mode change

    Returnvalues:
    integer retval
    the ui-state as flag-value

    Parameters:
    TrackEnvelope env
    the envelope, whose ui-state you want


    ^ Reaper version 5.62 SWS version 2.9.7BR_EnvAlloc

    C: BR_Envelope* BR_EnvAlloc(TrackEnvelope* envelope, bool takeEnvelopesUseProjectTime)
    EEL2: BR_Envelope extension_api("BR_EnvAlloc", TrackEnvelope envelope, bool takeEnvelopesUseProjectTime)
    Lua: BR_Envelope env = reaper.BR_EnvAlloc(TrackEnvelope envelope, boolean takeEnvelopesUseProjectTime)
    Python: BR_Envelope env = BR_EnvAlloc(TrackEnvelope envelope, Boolean takeEnvelopesUseProjectTime)

    [BR] Create a BR_Envelope-object from a track-envelope pointer or take-envelope pointer.
    To apply changes to a BR_Envelope-object, always call BR_EnvFree to release the object and commit changes if needed.
    A BR_Envelope is not a TrackEnvelope-object and therefore can't be used as TrackEnvelope-object!

    Delete a BR_Envelope with BR_EnvFree.

    For manipulation see BR_EnvCountPoints, BR_EnvDeletePoint, BR_EnvFind, BR_EnvFindNext, BR_EnvFindPrevious, BR_EnvGetParentTake, BR_EnvGetParentTrack, BR_EnvGetPoint, BR_EnvGetProperties, BR_EnvSetPoint, BR_EnvSetProperties, BR_EnvValueAtPos.

    Returnvalues:
    BR_Envelope env
    the requested Envelope as a BR_Envelope-object

    Parameters:
    TrackEnvelope envelope
    a TrackEnvelope-object of the envelope, that you want to have as a BR_Envelope
    boolean takeEnvelopesUseProjectTime
    false, take envelope points' positions are counted from take position, not project start time; true, work with project time instead

    see also:
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvFind

    C: int BR_EnvFind(BR_Envelope* envelope, double position, double delta)
    EEL2: int extension_api("BR_EnvFind", BR_Envelope envelope, position, delta)
    Lua: integer retval = reaper.BR_EnvFind(BR_Envelope envelope, number position, number delta)
    Python: Int retval = BR_EnvFind(BR_Envelope envelope, Float position, Float delta)

    [BR] Find envelope point at time position in the envelope object allocated with BR_EnvAlloc.

    Pass delta > 0 to search surrounding range - in that case the closest point to position within delta will be searched for.

    Returns envelope point id (zero-based) on success or -1 on failure.

    Returnvalues:
    integer retval
    envelope-point-id or -1 on failure

    Parameters:
    BR_Envelope envelope
    the BR_Envelope-object, in which you want to find an envelope-point
    number position
    the position in seconds, where you want to find from
    number delta
    delta > 0 to search surrounding range

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvFindNext

    C: int BR_EnvFindNext(BR_Envelope* envelope, double position)
    EEL2: int extension_api("BR_EnvFindNext", BR_Envelope envelope, position)
    Lua: integer retval = reaper.BR_EnvFindNext(BR_Envelope envelope, number position)
    Python: Int retval = BR_EnvFindNext(BR_Envelope envelope, Float position)

    [BR] Find next envelope point after time position in the envelope object allocated with BR_EnvAlloc.

    Returns envelope point id (zero-based) on success or -1 on failure.

    Returnvalues:
    integer retval
    envelope-point-id or -1 on failure

    Parameters:
    BR_Envelope envelope
    the BR_Envelope-object, in which you want to find the next envelope-point
    number position
    the position in seconds, where you want to find the next envelope-point from

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvFindPrevious

    C: int BR_EnvFindPrevious(BR_Envelope* envelope, double position)
    EEL2: int extension_api("BR_EnvFindPrevious", BR_Envelope envelope, position)
    Lua: integer retval = reaper.BR_EnvFindPrevious(BR_Envelope envelope, number position)
    Python: Int retval = BR_EnvFindPrevious(BR_Envelope envelope, Float position)

    [BR] Find previous envelope point before time position in the envelope object allocated with BR_EnvAlloc.

    Returns envelope point id (zero-based) on success or -1 on failure.

    Returnvalues:
    integer retval
    envelope-point-id or -1 on failure

    Parameters:
    BR_Envelope envelope
    the BR_Envelope-object, in which you want to find the previous envelope-point
    number position
    the position in seconds, where you want to find the previous envelope-point from

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvFree

    C: bool BR_EnvFree(BR_Envelope* envelope, bool commit)
    EEL2: bool extension_api("BR_EnvFree", BR_Envelope envelope, bool commit)
    Lua: boolean retval = reaper.BR_EnvFree(BR_Envelope envelope, boolean commit)
    Python: Boolean retval = BR_EnvFree(BR_Envelope envelope, Boolean commit)

    [BR] Free envelope object allocated with BR_EnvAlloc and commit changes if needed.

    Returns true if changes were committed successfully.

    Note that when envelope object wasn't modified nothing will get committed even if commit = true - in that case function returns false.

    Returnvalues:
    boolean retval
    true, committing was successful; false, committing was unsuccessful or no committing was necessary

    Parameters:
    BR_Envelope envelope
    the BR_Envelope-object that you want to commit and be freed
    boolean commit
    true, commit changes when freeing the BR_Envelope-object; false, don't commit changes when freeing the BR_Envelope-object

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.11.0BR_EnvGetProperties

    C: void BR_EnvGetProperties(BR_Envelope* envelope, bool* activeOut, bool* visibleOut, bool* armedOut, bool* inLaneOut, int* laneHeightOut, int* defaultShapeOut, double* minValueOut, double* maxValueOut, double* centerValueOut, int* typeOut, bool* faderScalingOut, int* automationItemsOptionsOutOptional)
    EEL2: extension_api("BR_EnvGetProperties", BR_Envelope envelope, bool &active, bool &visible, bool &armed, bool &inLane, int &laneHeight, int &defaultShape, &minValue, &maxValue, ¢erValue, int &type, bool &faderScaling, optional int &automationItemsOptions)
    Lua: boolean active, boolean visible, boolean armed, boolean inLane, integer laneHeight, integer defaultShape, number minValue, number maxValue, number centerValue, integer type, boolean faderScaling, optional integer automationItemsOptions = reaper.BR_EnvGetProperties(BR_Envelope envelope)
    Python: (BR_Envelope envelope, Boolean activeOut, Boolean visibleOut, Boolean armedOut, Boolean inLaneOut, Int laneHeightOut, Int defaultShapeOut, Float minValueOut, Float maxValueOut, Float centerValueOut, Int typeOut, Boolean faderScalingOut, Int automationItemsOptionsOutOptional) = BR_EnvGetProperties(envelope, activeOut, visibleOut, armedOut, inLaneOut, laneHeightOut, defaultShapeOut, minValueOut, maxValueOut, centerValueOut, typeOut, faderScalingOut, automationItemsOptionsOutOptional)

    [BR] Get envelope properties for the envelope object allocated with BR_EnvAlloc.

    active: true if envelope is active
    visible: true if envelope is visible
    armed: true if envelope is armed
    inLane: true if envelope has it's own envelope lane
    laneHeight: envelope lane override height. 0 for none, otherwise size in pixels
    defaultShape: default point shape: 0->Linear, 1->Square, 2->Slow start/end, 3->Fast start, 4->Fast end, 5->Bezier
    minValue: minimum envelope value
    maxValue: maximum envelope value
    type: envelope type: 0->Volume, 1->Volume (Pre-FX), 2->Pan, 3->Pan (Pre-FX), 4->Width, 5->Width (Pre-FX), 6->Mute, 7->Pitch, 8->Playrate, 9->Tempo map, 10->Parameter
    faderScaling: true if envelope uses fader scaling
    automationItemsOptions: -1->project default, &1=0->don't attach to underl. env., &1->attach to underl. env. on right side, &2->attach to underl. env. on both sides, &4: bypass underl. env.

    Returnvalues:
    boolean active
    boolean visible
    boolean armed
    boolean inLane
    integer laneHeight
    integer defaultShape
    number minValue
    number maxValue
    number centerValue
    integer type
    boolean faderScaling
    optional integer automationItemsOptions

    Parameters:
    BR_Envelope envelope

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.979 SWS version 2.11.0BR_EnvSetProperties

    C: void BR_EnvSetProperties(BR_Envelope* envelope, bool active, bool visible, bool armed, bool inLane, int laneHeight, int defaultShape, bool faderScaling, int* automationItemsOptionsInOptional)
    EEL2: extension_api("BR_EnvSetProperties", BR_Envelope envelope, bool active, bool visible, bool armed, bool inLane, int laneHeight, int defaultShape, bool faderScaling, optional int automationItemsOptionsIn)
    Lua: reaper.BR_EnvSetProperties(BR_Envelope envelope, boolean active, boolean visible, boolean armed, boolean inLane, integer laneHeight, integer defaultShape, boolean faderScaling, optional integer automationItemsOptionsIn)
    Python: (BR_Envelope envelope, Boolean active, Boolean visible, Boolean armed, Boolean inLane, Int laneHeight, Int defaultShape, Boolean faderScaling, Int automationItemsOptionsInOptional) = BR_EnvSetProperties(envelope, active, visible, armed, inLane, laneHeight, defaultShape, faderScaling, automationItemsOptionsInOptional)

    [BR] Set envelope properties for the envelope object allocated with BR_EnvAlloc.

    For parameter description see BR_EnvGetProperties.

    Setting automationItemsOptions requires REAPER 5.979+.

    Parameters:
    TrackEnvelope envelope
    boolean active
    boolean visible
    boolean armed
    boolean inLane
    integer laneHeight
    integer defaultShape
    boolean faderScaling
    optional integer automationItemsOptionsIn

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62 SWS version 2.9.7BR_EnvValueAtPos

    C: double BR_EnvValueAtPos(BR_Envelope* envelope, double position)
    EEL2: double extension_api("BR_EnvValueAtPos", BR_Envelope envelope, position)
    Lua: number retval = reaper.BR_EnvValueAtPos(BR_Envelope envelope, number position)
    Python: Float retval = BR_EnvValueAtPos(BR_Envelope envelope, Float position)

    [BR] Get envelope value at time position for the envelope object allocated with BR_EnvAlloc.

    Returnvalues:
    number retval

    Parameters:
    BR_Envelope envelope
    number position

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties


  • ^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext_Envelope

    C: TrackEnvelope* BR_GetMouseCursorContext_Envelope(bool* takeEnvelopeOut)
    EEL2: TrackEnvelope extension_api("BR_GetMouseCursorContext_Envelope", bool &takeEnvelope)
    Lua: TrackEnvelope retval, boolean takeEnvelope = reaper.BR_GetMouseCursorContext_Envelope()
    Python: (TrackEnvelope retval, Boolean takeEnvelopeOut) = BR_GetMouseCursorContext_Envelope(takeEnvelopeOut)

    [BR] Returns envelope that was captured with the last call to BR_GetMouseCursorContext. In case the envelope belongs to take, takeEnvelope will be true.


    Returnvalues:
    TrackEnvelope retval
    boolean takeEnvelope


    ^ Reaper version 5.62CSurf_SetAutoMode

    C: void CSurf_SetAutoMode(int mode, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetAutoMode(int mode, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetAutoMode(integer mode, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetAutoMode(Int mode, IReaperControlSurface ignoresurf)



    Parameters:
    integer mode
    IReaperControlSurface ignoresurf


    ^ Reaper version 6.43Envelope_Evaluate

    C: int Envelope_Evaluate(TrackEnvelope* envelope, double time, double samplerate, int samplesRequested, double* valueOut, double* dVdSOut, double* ddVdSOut, double* dddVdSOut)
    EEL2: int Envelope_Evaluate(TrackEnvelope envelope, time, samplerate, int samplesRequested, &value, &dVdS, &ddVdS, &dddVdS)
    Lua: integer retval, number value, number dVdS, number ddVdS, number dddVdS = reaper.Envelope_Evaluate(TrackEnvelope envelope, number time, number samplerate, integer samplesRequested)
    Python: (Int retval, TrackEnvelope envelope, Float time, Float samplerate, Int samplesRequested, Float valueOut, Float dVdSOut, Float ddVdSOut, Float dddVdSOut) = RPR_Envelope_Evaluate(envelope, time, samplerate, samplesRequested, valueOut, dVdSOut, ddVdSOut, dddVdSOut)

    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.

    Returnvalues:
    integer retval
    number value
    number dVdS
    the change in value per sample (first derivative)
    number ddVdS
    the second derivative
    number dddVdS
    is the third derivative

    Parameters:
    TrackEnvelope envelope
    number time
    number samplerate
    integer samplesRequested

    see also:
  • GetEnvelopeScalingMode - get the scaling more of an envelope
  • Envelope_Evaluate - get effective envelope value at a time position


  • ^ Reaper version 5.62Envelope_FormatValue

    C: void Envelope_FormatValue(TrackEnvelope* env, double value, char* bufOut, int bufOut_sz)
    EEL2: Envelope_FormatValue(TrackEnvelope env, value, #buf)
    Lua: string formatted_value = reaper.Envelope_FormatValue(TrackEnvelope env, number value)
    Python: (TrackEnvelope env, Float value, String bufOut, Int bufOut_sz) = RPR_Envelope_FormatValue(env, value, bufOut, bufOut_sz)

    Formats the value of an envelope to a user-readable form

    Returnvalues:
    string formatted_value

    Parameters:
    TrackEnvelope env
    number value


    ^ Reaper version 6.30GetEnvelopeInfo_Value

    C: double GetEnvelopeInfo_Value(TrackEnvelope* env, const char* parmname)
    EEL2: double GetEnvelopeInfo_Value(TrackEnvelope env, "parmname")
    Lua: number retval = reaper.GetEnvelopeInfo_Value(TrackEnvelope env, string parmname)
    Python: Float retval = RPR_GetEnvelopeInfo_Value(TrackEnvelope env, String parmname)

    Gets an envelope numerical-value attribute:
        I_TCPY : int : Y offset of envelope relative to parent track (may be separate lane or overlap with track contents)
        I_TCPH : int : visible height of envelope
        I_TCPY_USED : int : Y offset of envelope relative to parent track, exclusive of padding
        I_TCPH_USED : int : visible height of envelope, exclusive of padding
        P_TRACK : MediaTrack * : parent track pointer (if any)
        P_DESTTRACK : MediaTrack * : destination track pointer, if on a send
        P_ITEM : MediaItem * : parent item pointer (if any)
        P_TAKE : MediaItem_Take * : parent take pointer (if any)
        I_SEND_IDX : int : 1-based index of send in P_TRACK, or 0 if not a send
        I_HWOUT_IDX : int : 1-based index of hardware output in P_TRACK or 0 if not a hardware output
        I_RECV_IDX : int : 1-based index of receive in P_DESTTRACK or 0 if not a send/receive

    Returnvalues:
    number retval
    the returned value of the attribute

    Parameters:
    TrackEnvelope env
    the TrackEnvelope, of which you want to retrieve the attribute-value
    string parmname
    the attribute, whose value you want;
    see description for the attributes you can use for more details


    ^ Reaper version 5.974GetEnvelopeName

    C: bool GetEnvelopeName(TrackEnvelope* env, char* bufOut, int bufOut_sz)
    EEL2: bool GetEnvelopeName(TrackEnvelope env, #buf)
    Lua: boolean retval, string buf = reaper.GetEnvelopeName(TrackEnvelope env, string buf)
    Python: (Boolean retval, TrackEnvelope env, String bufOut, Int bufOut_sz) = RPR_GetEnvelopeName(env, bufOut, bufOut_sz)



    Returnvalues:
    boolean retval
    string buf

    Parameters:
    TrackEnvelope env
    string buf


    ^ Reaper version 5.62GetEnvelopeScalingMode

    C: int GetEnvelopeScalingMode(TrackEnvelope* env)
    EEL2: int GetEnvelopeScalingMode(TrackEnvelope env)
    Lua: integer scaling_mode = reaper.GetEnvelopeScalingMode(TrackEnvelope env)
    Python: Int retval = RPR_GetEnvelopeScalingMode(TrackEnvelope env)

    Returns the envelope scaling mode: 0=no scaling, 1=fader scaling.

    Note: All API functions deal with raw envelope point values, to convert raw from/to scaled values see ScaleFromEnvelopeMode, ScaleToEnvelopeMode.

    Returnvalues:
    integer scaling_mode
    the sscaling mode of the envelope
    0, no scaling
    1, fader scaling

    Parameters:
    TrackEnvelope env

    see also:
  • ScaleFromEnvelopeMode - scales a value from an envelope-mode
  • ScaleToEnvelopeMode - scales a value to an envelope-mode


  • ^ Reaper version 5.982GetEnvelopeStateChunk

    C: bool GetEnvelopeStateChunk(TrackEnvelope* env, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)
    EEL2: bool GetEnvelopeStateChunk(TrackEnvelope env, #str, bool isundo)
    Lua: boolean retval, string str = reaper.GetEnvelopeStateChunk(TrackEnvelope env, string str, boolean isundo)
    Python: (Boolean retval, TrackEnvelope env, String strNeedBig, Int strNeedBig_sz, Boolean isundoOptional) = RPR_GetEnvelopeStateChunk(env, strNeedBig, strNeedBig_sz, isundoOptional)

    Gets the RPPXML state of an envelope.

    Returnvalues:
    boolean retval
    true, if it's successful; false, if unsuccessful
    string str
    the state-chunk

    Parameters:
    TrackEnvelope env
    the Track-Envelope-object, whose trackstate you want to have
    string str
    just pass "" to it
    boolean isundo
    Undo flag is a performance/caching hint.


    ^ Reaper version 5.62GetFXEnvelope

    C: TrackEnvelope* GetFXEnvelope(MediaTrack* track, int fxindex, int parameterindex, bool create)
    EEL2: TrackEnvelope GetFXEnvelope(MediaTrack track, int fxindex, int parameterindex, bool create)
    Lua: TrackEnvelope env = reaper.GetFXEnvelope(MediaTrack track, integer fxindex, integer parameterindex, boolean create)
    Python: TrackEnvelope env = RPR_GetFXEnvelope(MediaTrack track, Int fxindex, Int parameterindex, Boolean create)

    Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.

    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaTrack track
    integer fxindex
    integer parameterindex
    boolean create


    ^ Reaper version 5.62GetGlobalAutomationOverride

    C: int GetGlobalAutomationOverride()
    EEL2: int GetGlobalAutomationOverride()
    Lua: integer automation_override = reaper.GetGlobalAutomationOverride()
    Python: Int retval = RPR_GetGlobalAutomationOverride()

    return -1=no override, 0=trim/read, 1=read, 2=touch, 3=write, 4=latch, 5=bypass

    Returnvalues:
    integer automation_override
    global automation override-mode
      -1, no override
      0, trim/read
      1, read
      2, touch
      3, write
      4, latch
      5, bypass


    ^ Reaper version 6.14GetSelectedEnvelope

    C: TrackEnvelope* GetSelectedEnvelope(ReaProject* proj)
    EEL2: TrackEnvelope GetSelectedEnvelope(ReaProject proj)
    Lua: TrackEnvelope env = reaper.GetSelectedEnvelope(ReaProject proj)
    Python: TrackEnvelope env = RPR_GetSelectedEnvelope(ReaProject proj)

    get the currently selected envelope, returns NULL/nil if no envelope is selected

    Returnvalues:
    TrackEnvelope env
    the TrackEnvelope-object of the selected envelope-lane requested; 0, if no envelope is selected

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 6.14GetSelectedTrackEnvelope

    C: TrackEnvelope* GetSelectedTrackEnvelope(ReaProject* proj)
    EEL2: TrackEnvelope GetSelectedTrackEnvelope(ReaProject proj)
    Lua: TrackEnvelope sel_env = reaper.GetSelectedTrackEnvelope(ReaProject proj)
    Python: TrackEnvelope sel_env = RPR_GetSelectedTrackEnvelope(ReaProject proj)

    get the currently selected track envelope, returns NULL/nil if no envelope is selected

    Returnvalues:
    TrackEnvelope sel_env
    the selected TrackEnvelope as an object; nil if no TrackEnvelope is selected

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 6.24GetSetEnvelopeInfo_String

    C: bool GetSetEnvelopeInfo_String(TrackEnvelope* env, const char* parmname, char* stringNeedBig, bool setNewValue)
    EEL2: bool GetSetEnvelopeInfo_String(TrackEnvelope env, "parmname", #stringNeedBig, bool setNewValue)
    Lua: boolean retval, string stringNeedBig = reaper.GetSetEnvelopeInfo_String(TrackEnvelope env, string parmname_attribute, string valueStringNeedBig, boolean setNewValue)
    Python: (Boolean retval, TrackEnvelope env, String parmname, String stringNeedBig, Boolean setNewValue) = RPR_GetSetEnvelopeInfo_String(env, parmname, stringNeedBig, setNewValue)

    Gets/sets an attribute string:
    P_EXT:xyz : char * : extension-specific persistent data
    GUID : GUID * : 16-byte GUID, can query only, not set. If using a _String() function, GUID is a string {xyz-...}.

    This is basically a key-value-store for envelopes.

    Returnvalues:
    boolean retval
    true, getting/setting the value was successful; falsem getting/setting the value was unsuccessful
    string valuestrNeedBig
    the current value set

    Parameters:
    TrackEnvelope env
    the envelope, whose ext-attributes you want to get/set
    string parmname_attribute
    the name of the parameter and attribute. For instance, "P_EXT:FooBar" will put the value into the envelope-ext-store named "FooBar"; you can have multiple ones with different names
    string valueStringNeedBig
    the new value to set; set it to "", when setNewValue=false
    boolean setNewValue
    true, set a new value; false, just return the current value


    ^ Reaper version 5.62GetSetEnvelopeState

    C: bool GetSetEnvelopeState(TrackEnvelope* env, char* str, int str_sz)
    EEL2: bool GetSetEnvelopeState(TrackEnvelope env, #str)
    Lua: boolean retval, string str = reaper.GetSetEnvelopeState(TrackEnvelope env, string str)
    Python: (Boolean retval, TrackEnvelope env, String str, Int str_sz) = RPR_GetSetEnvelopeState(env, str, str_sz)

    deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk

    Returnvalues:
    boolean retval
    true, getting/setting was successful; false, getting/setting was unsuccessful
    string str
    the value currently set

    Parameters:
    TrackEnvelope env
    the envelope, of which you want to get/set the value
    string str
    the new value to set

    see also:
  • GetEnvelopeStateChunk - returns, an EnvelopeStateChunk, which holds all attributes-information of an envelope
  • SetEnvelopeStateChunk - sets an EnvelopeStateChunk, to replace all attributes-information of an envelope


  • ^ Reaper version 5.62GetSetEnvelopeState2

    C: bool GetSetEnvelopeState2(TrackEnvelope* env, char* str, int str_sz, bool isundo)
    EEL2: bool GetSetEnvelopeState2(TrackEnvelope env, #str, bool isundo)
    Lua: boolean retval, string str = reaper.GetSetEnvelopeState2(TrackEnvelope env, string str, boolean isundo)
    Python: (Boolean retval, TrackEnvelope env, String str, Int str_sz, Boolean isundo) = RPR_GetSetEnvelopeState2(env, str, str_sz, isundo)

    deprecated -- see SetEnvelopeStateChunk, GetEnvelopeStateChunk

    Returnvalues:
    boolean retval
    true, getting/setting was successful; false, getting/setting was unsuccessful
    string str
    the value currently set

    Parameters:
    TrackEnvelope env
    the envelope to get/set the state of
    string str
    the new value to set
    boolean isundo
    true, undo; false, don't undo

    see also:
  • GetEnvelopeStateChunk - returns, an EnvelopeStateChunk, which holds all attributes-information of an envelope
  • SetEnvelopeStateChunk - sets an EnvelopeStateChunk, to replace all attributes-information of an envelope


  • ^ Reaper version 5.62GetTrackAutomationMode

    C: int GetTrackAutomationMode(MediaTrack* tr)
    EEL2: int GetTrackAutomationMode(MediaTrack tr)
    Lua: integer automation_mode = reaper.GetTrackAutomationMode(MediaTrack tr)
    Python: Int retval = RPR_GetTrackAutomationMode(MediaTrack tr)

    return the track mode, regardless of global override

    Returnvalues:
    integer automation_mode

    Parameters:
    MediaTrack tr


    ^ Reaper version 5.62ScaleFromEnvelopeMode

    C: double ScaleFromEnvelopeMode(int scaling_mode, double val)
    EEL2: double ScaleFromEnvelopeMode(int scaling_mode, val)
    Lua: number retval = reaper.ScaleFromEnvelopeMode(integer scaling_mode, number val)
    Python: Float retval = RPR_ScaleFromEnvelopeMode(Int scaling_mode, Float val)

    See GetEnvelopeScalingMode.


    Returnvalues:
    number retval

    Parameters:
    integer scaling_mode
    number val


    ^ Reaper version 5.62ScaleToEnvelopeMode

    C: double ScaleToEnvelopeMode(int scaling_mode, double val)
    EEL2: double ScaleToEnvelopeMode(int scaling_mode, val)
    Lua: number retval = reaper.ScaleToEnvelopeMode(integer scaling_mode, number val)
    Python: Float retval = RPR_ScaleToEnvelopeMode(Int scaling_mode, Float val)

    See GetEnvelopeScalingMode.


    Returnvalues:
    number retval

    Parameters:
    integer scaling_mode
    number val


    ^ Reaper version 5.62SetAutomationMode

    C: void SetAutomationMode(int mode, bool onlySel)
    EEL2: SetAutomationMode(int mode, bool onlySel)
    Lua: reaper.SetAutomationMode(integer mode, boolean onlySel)
    Python: RPR_SetAutomationMode(Int mode, Boolean onlySel)

    Sets all or selected tracks to mode.

    Includes the master-track.

    Parameters:
    integer mode
    the automation-mode
    0, Trim/read
    1, Read
    2, Touch
    3, Write
    4, Latch
    5 and higher no mode selected
    boolean onlySel
    true, only selected tracks; false, all tracks including master-track


    ^ Reaper version 5.62SetEnvelopeStateChunk

    C: bool SetEnvelopeStateChunk(TrackEnvelope* env, const char* str, bool isundoOptional)
    EEL2: bool SetEnvelopeStateChunk(TrackEnvelope env, "str", bool isundo)
    Lua: boolean retval = reaper.SetEnvelopeStateChunk(TrackEnvelope env, string str, boolean isundo)
    Python: Boolean retval = RPR_SetEnvelopeStateChunk(TrackEnvelope env, String str, Boolean isundoOptional)

    Sets the RPPXML state of an envelope, returns true if successful.

    Returnvalues:
    boolean retval
    true, setting worked; false, setting didn't work

    Parameters:
    TrackEnvelope env
    the TrackEnvelope, whose statechunk you want to set
    string str
    the new statechunk, that you want to set
    boolean isundo
    undo flag is a performance/caching hint.


    ^ Reaper version 5.62SetGlobalAutomationOverride

    C: void SetGlobalAutomationOverride(int mode)
    EEL2: SetGlobalAutomationOverride(int mode)
    Lua: reaper.SetGlobalAutomationOverride(integer mode)
    Python: RPR_SetGlobalAutomationOverride(Int mode)

    mode: see GetGlobalAutomationOverride


    Parameters:
    integer mode


    ^ Reaper version 5.62SetTrackAutomationMode

    C: void SetTrackAutomationMode(MediaTrack* tr, int mode)
    EEL2: SetTrackAutomationMode(MediaTrack tr, int mode)
    Lua: reaper.SetTrackAutomationMode(MediaTrack tr, integer mode)
    Python: RPR_SetTrackAutomationMode(MediaTrack tr, Int mode)

    Set automation-mode for a specific MediaTrack.

    Parameters:
    MediaTrack tr
    the MediaTrack, whose automation-mode you want to set
    integer mode
    the automation-mode
    0, Trim/read
    1, Read
    2, Touch
    3, Write
    4, Latch
    5 and higher no mode selected


    ^ Reaper version 5.62 SWS version 2.9.7BR_EnvGetParentTake

    C: MediaItem_Take* BR_EnvGetParentTake(BR_Envelope* envelope)
    EEL2: MediaItem_Take extension_api("BR_EnvGetParentTake", BR_Envelope envelope)
    Lua: MediaItem_Take take = reaper.BR_EnvGetParentTake(BR_Envelope envelope)
    Python: MediaItem_Take take = BR_EnvGetParentTake(BR_Envelope envelope)

    [BR] If envelope object allocated with BR_EnvAlloc is take envelope, returns parent media item take, otherwise NULL.

    Returnvalues:
    MediaItem_Take take

    Parameters:
    BR_Envelope envelope

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTrack - gets parent track of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 6.43Envelope_GetParentTake

    C: MediaItem_Take* Envelope_GetParentTake(TrackEnvelope* env, int* indexOut, int* index2Out)
    EEL2: MediaItem_Take Envelope_GetParentTake(TrackEnvelope env, int &index, int &index2)
    Lua: MediaItem_Take retval, integer index, integer index2 = reaper.Envelope_GetParentTake(TrackEnvelope env)
    Python: (MediaItem_Take retval, TrackEnvelope env, Int indexOut, Int index2Out) = RPR_Envelope_GetParentTake(env, indexOut, index2Out)

    If take envelope, gets the take from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1.

    Returnvalues:
    MediaItem_Take retval
    integer index
    integer index2

    Parameters:
    TrackEnvelope env


    ^ Reaper version 5.62GetTakeEnvelope

    C: TrackEnvelope* GetTakeEnvelope(MediaItem_Take* take, int envidx)
    EEL2: TrackEnvelope GetTakeEnvelope(MediaItem_Take take, int envidx)
    Lua: TrackEnvelope env = reaper.GetTakeEnvelope(MediaItem_Take take, integer envidx)
    Python: TrackEnvelope env = RPR_GetTakeEnvelope(MediaItem_Take take, Int envidx)



    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaItem_Take take
    integer envidx


    ^ Reaper version 5.62GetTakeEnvelopeByName

    C: TrackEnvelope* GetTakeEnvelopeByName(MediaItem_Take* take, const char* envname)
    EEL2: TrackEnvelope GetTakeEnvelopeByName(MediaItem_Take take, "envname")
    Lua: TrackEnvelope env = reaper.GetTakeEnvelopeByName(MediaItem_Take take, string envname)
    Python: TrackEnvelope env = RPR_GetTakeEnvelopeByName(MediaItem_Take take, String envname)



    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaItem_Take take
    string envname


    ^ Reaper version 5.62 SWS version 2.9.7BR_EnvGetParentTrack

    C: MediaTrack* BR_EnvGetParentTrack(BR_Envelope* envelope)
    EEL2: MediaTrack extension_api("BR_EnvGetParentTrack", BR_Envelope envelope)
    Lua: MediaTrack tr = reaper.BR_EnvGetParentTrack(BR_Envelope envelope)
    Python: MediaTrack tr = BR_EnvGetParentTrack(BR_Envelope envelope)

    [BR] Get parent track of envelope object allocated with BR_EnvAlloc. If take envelope, returns NULL.

    Returnvalues:
    MediaTrack tr

    Parameters:
    BR_Envelope envelope

    see also:
  • BR_EnvAlloc - creates an envelope object, that can be used by BR_Env-functions
  • BR_EnvCountPoints - counts envelope points
  • BR_EnvDeletePoint - deletes an envelope point
  • BR_EnvFind - finds envelope point at position
  • BR_EnvFindNext - find next envelope point after position
  • BR_EnvFindPrevious - find previous envelope point before position
  • BR_EnvFree - delete an BR_Envelope object created by BR_EnvAlloc
  • BR_EnvGetParentTake - gets parent take of an envelope
  • BR_EnvGetPoint - gets envelope point
  • BR_EnvGetProperties - gets envelope point properties
  • BR_EnvSetPoint - sets an envelope point
  • BR_EnvSetProperties - sets envelope point properties
  • BR_EnvValueAtPos - gets envelope point value at position


  • ^ Reaper version 5.62CountTrackEnvelopes

    C: int CountTrackEnvelopes(MediaTrack* track)
    EEL2: int CountTrackEnvelopes(MediaTrack track)
    Lua: integer count_track_envs = reaper.CountTrackEnvelopes(MediaTrack track)
    Python: Int retval = RPR_CountTrackEnvelopes(MediaTrack track)

    Counts the number of track-envelopes of a certain track.

    Returnvalues:
    integer count_track_envs
    the number of track-envelopes in a track

    Parameters:
    MediaTrack track
    the object of the track to count it's envelopes

    see also:
  • GetTrackEnvelope - to get a track-envelope


  • ^ Reaper version 6.43Envelope_GetParentTrack

    C: MediaTrack* Envelope_GetParentTrack(TrackEnvelope* env, int* indexOut, int* index2Out)
    EEL2: MediaTrack Envelope_GetParentTrack(TrackEnvelope env, int &index, int &index2)
    Lua: MediaTrack retval, integer index, integer index2 = reaper.Envelope_GetParentTrack(TrackEnvelope env)
    Python: (MediaTrack retval, TrackEnvelope env, Int indexOut, Int index2Out) = RPR_Envelope_GetParentTrack(env, indexOut, index2Out)

    If track envelope, gets the track from the envelope. If FX, indexOut set to FX index, index2Out set to parameter index, otherwise -1.

    Returnvalues:
    MediaTrack retval
    integer index
    integer index2

    Parameters:
    TrackEnvelope env


    ^ Reaper version 5.62GetTrackEnvelope

    C: TrackEnvelope* GetTrackEnvelope(MediaTrack* track, int envidx)
    EEL2: TrackEnvelope GetTrackEnvelope(MediaTrack track, int envidx)
    Lua: TrackEnvelope env = reaper.GetTrackEnvelope(MediaTrack track, integer envidx)
    Python: TrackEnvelope env = RPR_GetTrackEnvelope(MediaTrack track, Int envidx)

    Gets an envelope of a track.

    Note: to create an FX-envelope, use GetFXEnvelope with parameter create=true

    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaTrack track
    integer envidx


    ^ Reaper version 6.24GetTrackEnvelopeByChunkName

    C: TrackEnvelope* GetTrackEnvelopeByChunkName(MediaTrack* tr, const char* cfgchunkname_or_guid)
    EEL2: TrackEnvelope GetTrackEnvelopeByChunkName(MediaTrack tr, "cfgchunkname_or_guid")
    Lua: TrackEnvelope env = reaper.GetTrackEnvelopeByChunkName(MediaTrack tr, string cfgchunkname_or_guid)
    Python: TrackEnvelope env = RPR_GetTrackEnvelopeByChunkName(MediaTrack tr, String cfgchunkname_or_guid)

    Gets a built-in track envelope by configuration chunk name, e.g. "
    Note: to create an FX-envelope, use GetFXEnvelope with parameter create=true

    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaTrack tr
    string cfgchunkname_or_guid


    ^ Reaper version 5.62GetTrackEnvelopeByName

    C: TrackEnvelope* GetTrackEnvelopeByName(MediaTrack* track, const char* envname)
    EEL2: TrackEnvelope GetTrackEnvelopeByName(MediaTrack track, "envname")
    Lua: TrackEnvelope = reaper.GetTrackEnvelopeByName(MediaTrack track, string envname)
    Python: TrackEnvelope env = RPR_GetTrackEnvelopeByName(MediaTrack track, String envname)

    Gets a TrackEnvelope by its name.

    Note: to create an FX-envelope, use GetFXEnvelope with parameter create=true

    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaTrack track
    string envname


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_EnumSelectedFX

    C: int CF_EnumSelectedFX(FxChain * hwnd, int index)
    EEL2: int extension_api("CF_EnumSelectedFX", FxChain hwnd, int index)
    Lua: integer retval = reaper.CF_EnumSelectedFX(FxChain hwnd, integer index)
    Python: Int retval = CF_EnumSelectedFX(FxChain hwnd, Int index)

    Return the index of the next selected effect in the given FX chain. Start index should be -1. Returns -1 if there are no more selected effects.


    Returnvalues:
    integer retval

    Parameters:
    FxChain hwnd
    integer index


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_GetFocusedFXChain

    C: FxChain * CF_GetFocusedFXChain()
    EEL2: FxChain extension_api("CF_GetFocusedFXChain")
    Lua: FxChain hwnd = reaper.CF_GetFocusedFXChain()
    Python: FXChain retval = CF_GetFocusedFXChain()

    Return a handle to the currently focused FX chain window.


    Returnvalues:
    FxChain hwnd


    ^ Reaper version 5.979GetFocusedFX

    C: int GetFocusedFX(int* tracknumberOut, int* itemnumberOut, int* fxnumberOut)
    EEL2: int GetFocusedFX(int &tracknumber, int &itemnumber, int &fxnumber)
    Lua: integer retval, integer tracknumber, integer itemnumber, integer fxnumber = reaper.GetFocusedFX()
    Python: (Int retval, Int tracknumberOut, Int itemnumberOut, Int fxnumberOut) = RPR_GetFocusedFX(tracknumberOut, itemnumberOut, fxnumberOut)

    Get focused FX.

    !!Deprecated, use GetFocusedFX2 instead

    See GetLastTouchedFX

    Returnvalues:
    integer retval
    0, if no FX window has focus
    1, if a track FX window has focus or was the last focused and still open
    2, if an item FX window has focus or was the last focused and still open
    integer tracknumber
    tracknumber; 0, master track; 1, track 1; etc.
    integer itemnumber
    -1, if it's a track-fx; 0 and higher, the mediaitem-number
    integer fxnumber
    If item FX, fxnumber will have the high word be the take index, the low word the FX index

    see also:
  • GetFocusedFX2 - gets the focused/opened fx and if it's item/track fx
  • GetLastTouchedFX - gets the last fx that was touched by the user


  • ^ Reaper version 6.16GetFocusedFX2

    C: int GetFocusedFX2(int* tracknumberOut, int* itemnumberOut, int* fxnumberOut)
    EEL2: int GetFocusedFX2(int &tracknumber, int &itemnumber, int &fxnumber)
    Lua: integer retval, number tracknumber, number itemnumber, number fxnumber = reaper.GetFocusedFX2()
    Python: (Int retval, Int tracknumberOut, Int itemnumberOut, Int fxnumberOut) = RPR_GetFocusedFX2(tracknumberOut, itemnumberOut, fxnumberOut)

    Return value has 1 set if track FX, 2 if take/item FX, &4 is 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).

    Returnvalues:
    integer retval
    0, if no FX window has focus
    1, if a track FX window has focus or was the last focused and still open
    2, if an item FX window has focus or was the last focused and still open
    &4, if FX is no longer focused but still open
    integer tracknumber
    tracknumber; 0, master track; 1, track 1; etc.
    integer itemnumber
    -1, if it's a track-fx; 0 and higher, the mediaitem-number
    integer fxnumber
    If item FX, fxnumber will have the high word be the take index, the low word the FX index

    see also:
  • GetLastTouchedFX - gets the last fx that was touched by the user


  • ^ Reaper version 5.979GetLastTouchedFX

    C: bool GetLastTouchedFX(int* tracknumberOut, int* fxnumberOut, int* paramnumberOut)
    EEL2: bool GetLastTouchedFX(int &tracknumber, int &fxnumber, int ¶mnumber)
    Lua: boolean retval, integer tracknumber, integer fxnumber, integer paramnumber = reaper.GetLastTouchedFX()
    Python: (Boolean retval, Int tracknumberOut, Int fxnumberOut, Int paramnumberOut) = RPR_GetLastTouchedFX(tracknumberOut, fxnumberOut, paramnumberOut)

    Returns the last touched track, it's last touched parameter and tracknumber.

    The low word of tracknumber is the 1-based track index -- 0 means the master track, 1 means track 1, etc.

    Returnvalues:
    boolean retval
    true, if last touched FX parameter is valid; false, if otherwise
    integer tracknumber
    the tracknumber; 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).
    integer fxnumber
    the id of the FX in the track tracknumber, zero-based
    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.
    integer paramnumber
    the id of the last parameter touched, zero-based

    see also:
  • GetFocusedFX2 - gets the focused/open fx


  • ^ Reaper version 5.62PluginWantsAlwaysRunFx

    C: void PluginWantsAlwaysRunFx(int amt)
    EEL2: PluginWantsAlwaysRunFx(int amt)
    Lua: reaper.PluginWantsAlwaysRunFx(integer amt)
    Python: RPR_PluginWantsAlwaysRunFx(Int amt)



    Parameters:
    integer amt


    ^ Reaper version 5.62 SWS version 2.9.7SNM_AddTCPFXParm

    C: bool SNM_AddTCPFXParm(MediaTrack* tr, int fxId, int prmId)
    EEL2: bool extension_api("SNM_AddTCPFXParm", MediaTrack tr, int fxId, int prmId)
    Lua: boolean retval = reaper.SNM_AddTCPFXParm(MediaTrack tr, integer fxId, integer prmId)
    Python: Boolean retval = SNM_AddTCPFXParm(MediaTrack tr, Int fxId, Int prmId)

    [S&M] Add an FX parameter knob in the TCP. Returns false if nothing updated (invalid parameters, knob already present, etc..)

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack tr
    integer fxId
    integer prmId


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetTakeFXCount

    C: int BR_GetTakeFXCount(MediaItem_Take* take)
    EEL2: int extension_api("BR_GetTakeFXCount", MediaItem_Take take)
    Lua: integer retval = reaper.BR_GetTakeFXCount(MediaItem_Take take)
    Python: Int retval = BR_GetTakeFXCount(MediaItem_Take take)

    [BR] Returns FX count for supplied take

    Returnvalues:
    integer retval

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_GetTakeFXChain

    C: FxChain * CF_GetTakeFXChain(MediaItem_Take* take)
    EEL2: FxChain extension_api("CF_GetTakeFXChain", MediaItem_Take take)
    Lua: FxChain hwnd = reaper.CF_GetTakeFXChain(MediaItem_Take take)
    Python: FXChain retval = CF_GetTakeFXChain(MediaItem_Take take)

    Return a handle to the given take FX chain window. HACK: This temporarily renames the take in order to disambiguate the take FX chain window from similarily named takes.

    Returnvalues:
    FxChain hwnd
    the hwnd-window-handler of the FX-chain of the item

    Parameters:
    MediaItem_Take take
    the take, whose FXChain-window-handler you want to get


    ^ Reaper version 6.23 SWS version 2.13.0.0NF_TakeFX_GetFXModuleName

    C: bool NF_TakeFX_GetFXModuleName(MediaItem* item, int fx, char* nameOut, int nameOut_sz)
    EEL2: bool extension_api("NF_TakeFX_GetFXModuleName", MediaItem item, int fx, #name)
    Lua: boolean retval, string name = reaper.NF_TakeFX_GetFXModuleName(MediaItem item, integer fx)
    Python: (Boolean retval, MediaItem item, Int fx, String nameOut, Int nameOut_sz) = NF_TakeFX_GetFXModuleName(item, fx, nameOut, nameOut_sz)

    Deprecated, see TakeFX_GetNamedConfigParm/'fx_ident' (v6.37+). See BR_TrackFX_GetFXModuleName. fx: counted consecutively across all takes (zero-based).

    Returnvalues:
    boolean retval

    Parameters:
    string str


    ^ Reaper version 5.965 SWS version 2.11.0NF_TakeFX_GetModuleName

    C: bool NF_TakeFX_GetModuleName(MediaItem* item, int fx, char* nameOut, int nameOutSz)
    EEL2: bool extension_api("NF_TakeFX_GetModuleName", MediaItem item, int fx, # name, int name)
    Lua: boolean retval, string name = reaper.NF_TakeFX_GetModuleName(MediaItem item, integer fx)
    Python: (Boolean retval, MediaItem item, Int fx, String nameOut, Int nameOutSz) = NF_TakeFX_GetModuleName(item, fx, nameOut, nameOutSz)

    Deprecated. Retrieves the name of the module of a takefx from a MediaItem.

    See BR_TrackFX_GetFXModuleName. fx: counted consecutively across all takes (zero-based).


    Returnvalues:
    boolean retval
    true, modulename could be retrieved; false, modulename couldn't be retrieved(e.g. no such fx)
    string name
    the name of the module

    Parameters:
    MediaItem item
    the MediaItem, whose modulename of an effect you want to receive
    integer fx
    the index of the fx(with 0 for the first), whose modulename you want to receive


    ^ Reaper version 6.12TakeFX_AddByName

    C: int TakeFX_AddByName(MediaItem_Take* take, const char* fxname, int instantiate)
    EEL2: int TakeFX_AddByName(MediaItem_Take take, "fxname", int instantiate)
    Lua: integer retval = reaper.TakeFX_AddByName(MediaItem_Take take, string fxname, integer instantiate)
    Python: Int retval = RPR_TakeFX_AddByName(MediaItem_Take take, String fxname, Int instantiate)

    Adds or queries the position of a named FX in a take. See TrackFX_AddByName() for information on fxname and instantiate.


    Returnvalues:
    integer retval

    Parameters:
    MediaItem_Take take
    string fxname
    integer instantiate


    ^ Reaper version 5.95TakeFX_CopyToTake

    C: void TakeFX_CopyToTake(MediaItem_Take* src_take, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move)
    EEL2: TakeFX_CopyToTake(MediaItem_Take src_take, int src_fx, MediaItem_Take dest_take, int dest_fx, bool is_move)
    Lua: reaper.TakeFX_CopyToTake(MediaItem_Take src_take, integer src_fx, MediaItem_Take dest_take, integer dest_fx, boolean is_move)
    Python: RPR_TakeFX_CopyToTake(MediaItem_Take src_take, Int src_fx, MediaItem_Take dest_take, Int dest_fx, Boolean is_move)

    Copies (or moves) FX from src_take to dest_take. Can be used with src_take=dest_take to reorder.

    Parameters:
    MediaItem_Take src_take
    the source-take, from which you want to copy an fx
    integer src_fx
    the index of the source-fx
    MediaItem_Take dest_take
    the destination-take, to which you want to copy an fx
    integer dest_fx
    the index of the target-fx
    boolean is_move
    true, move fx from source to destination-take; false, just copy fx from source to destination-take


    ^ Reaper version 5.95TakeFX_CopyToTrack

    C: void TakeFX_CopyToTrack(MediaItem_Take* src_take, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move)
    EEL2: TakeFX_CopyToTrack(MediaItem_Take src_take, int src_fx, MediaTrack dest_track, int dest_fx, bool is_move)
    Lua: reaper.TakeFX_CopyToTrack(MediaItem_Take src_take, integer src_fx, MediaTrack dest_track, integer dest_fx, boolean is_move)
    Python: RPR_TakeFX_CopyToTrack(MediaItem_Take src_take, Int src_fx, MediaTrack dest_track, Int dest_fx, Boolean is_move)

    Copies (or moves) FX from src_take to dest_track.

    Note:
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.
    Add 0x1000000 to the fx-indices to address monitoringFX/rec-inputFX.

    Parameters:
    MediaItem_Take src_take
    integer src_fx
    MediaTrack dest_track
    integer dest_fx
    boolean is_move


    ^ Reaper version 5.95TakeFX_Delete

    C: bool TakeFX_Delete(MediaItem_Take* take, int fx)
    EEL2: bool TakeFX_Delete(MediaItem_Take take, int fx)
    Lua: boolean retval = reaper.TakeFX_Delete(MediaItem_Take take, integer fx)
    Python: Boolean retval = RPR_TakeFX_Delete(MediaItem_Take take, Int fx)

    Remove a FX from take chain (returns true on success)

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 5.62TakeFX_EndParamEdit

    C: bool TakeFX_EndParamEdit(MediaItem_Take* take, int fx, int param)
    EEL2: bool TakeFX_EndParamEdit(MediaItem_Take take, int fx, int param)
    Lua: boolean retval = reaper.TakeFX_EndParamEdit(MediaItem_Take take, integer fx, integer param)
    Python: Boolean retval = RPR_TakeFX_EndParamEdit(MediaItem_Take take, Int fx, Int param)



    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx
    integer param


    ^ Reaper version 6.37TakeFX_FormatParamValue

    C: bool TakeFX_FormatParamValue(MediaItem_Take* take, int fx, int param, double val, char* bufOut, int bufOut_sz)
    EEL2: bool TakeFX_FormatParamValue(MediaItem_Take take, int fx, int param, val, #buf)
    Lua: boolean retval, string buf = reaper.TakeFX_FormatParamValue(MediaItem_Take take, integer fx, integer param, number val)
    Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, Float val, String bufOut, Int bufOut_sz) = RPR_TakeFX_FormatParamValue(take, fx, param, val, bufOut, bufOut_sz)

    Note: only works with FX that support Cockos VST extensions.

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take
    integer fx
    integer param
    number val


    ^ Reaper version 5.62TakeFX_FormatParamValueNormalized

    C: bool TakeFX_FormatParamValueNormalized(MediaItem_Take* take, int fx, int param, double value, char* buf, int buf_sz)
    EEL2: bool TakeFX_FormatParamValueNormalized(MediaItem_Take take, int fx, int param, value, #buf)
    Lua: boolean retval, string buf = reaper.TakeFX_FormatParamValueNormalized(MediaItem_Take take, integer fx, integer param, number value, string buf)
    Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, Float value, String buf, Int buf_sz) = RPR_TakeFX_FormatParamValueNormalized(take, fx, param, value, buf, buf_sz)

    Note: only works with FX that support Cockos VST extensions.

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take
    integer fx
    integer param
    number value
    string buf


    ^ Reaper version 5.62TakeFX_GetChainVisible

    C: int TakeFX_GetChainVisible(MediaItem_Take* take)
    EEL2: int TakeFX_GetChainVisible(MediaItem_Take take)
    Lua: integer retval = reaper.TakeFX_GetChainVisible(MediaItem_Take take)
    Python: Int retval = RPR_TakeFX_GetChainVisible(MediaItem_Take take)

    returns index of effect visible in chain, or -1 for chain hidden, or -2 for chain visible but no effect selected

    Returnvalues:
    integer retval

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62TakeFX_GetCount

    C: int TakeFX_GetCount(MediaItem_Take* take)
    EEL2: int TakeFX_GetCount(MediaItem_Take take)
    Lua: integer retval = reaper.TakeFX_GetCount(MediaItem_Take take)
    Python: Int retval = RPR_TakeFX_GetCount(MediaItem_Take take)



    Returnvalues:
    integer retval

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62TakeFX_GetEnabled

    C: bool TakeFX_GetEnabled(MediaItem_Take* take, int fx)
    EEL2: bool TakeFX_GetEnabled(MediaItem_Take take, int fx)
    Lua: boolean retval = reaper.TakeFX_GetEnabled(MediaItem_Take take, integer fx)
    Python: Boolean retval = RPR_TakeFX_GetEnabled(MediaItem_Take take, Int fx)

    See TakeFX_SetEnabled


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 5.62TakeFX_GetEnvelope

    C: TrackEnvelope* TakeFX_GetEnvelope(MediaItem_Take* take, int fxindex, int parameterindex, bool create)
    EEL2: TrackEnvelope TakeFX_GetEnvelope(MediaItem_Take take, int fxindex, int parameterindex, bool create)
    Lua: TrackEnvelope env = reaper.TakeFX_GetEnvelope(MediaItem_Take take, integer fxindex, integer parameterindex, boolean create)
    Python: TrackEnvelope env = RPR_TakeFX_GetEnvelope(MediaItem_Take take, Int fxindex, Int parameterindex, Boolean create)

    Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.

    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaItem_Take take
    integer fxindex
    integer parameterindex
    boolean create


    ^ Reaper version 5.62TakeFX_GetFXGUID

    C: GUID* TakeFX_GetFXGUID(MediaItem_Take* take, int fx)
    EEL2: bool TakeFX_GetFXGUID(#retguid, MediaItem_Take take, int fx)
    Lua: string GUID = reaper.TakeFX_GetFXGUID(MediaItem_Take take, integer fx)
    Python: String GUID = RPR_TakeFX_GetFXGUID(MediaItem_Take take, Int fx)



    Returnvalues:
    string GUID

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 6.37TakeFX_GetFXName

    C: bool TakeFX_GetFXName(MediaItem_Take* take, int fx, char* bufOut, int bufOut_sz)
    EEL2: bool TakeFX_GetFXName(MediaItem_Take take, int fx, #buf)
    Lua: boolean retval, string buf = reaper.TakeFX_GetFXName(MediaItem_Take take, integer fx)
    Python: (Boolean retval, MediaItem_Take take, Int fx, String bufOut, Int bufOut_sz) = RPR_TakeFX_GetFXName(take, fx, bufOut, bufOut_sz)



    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 5.62TakeFX_GetFloatingWindow

    C: HWND TakeFX_GetFloatingWindow(MediaItem_Take* take, int index)
    EEL2: HWND TakeFX_GetFloatingWindow(MediaItem_Take take, int index)
    Lua: HWND hwnd = reaper.TakeFX_GetFloatingWindow(MediaItem_Take take, integer index)
    Python: HWND hwnd = RPR_TakeFX_GetFloatingWindow(MediaItem_Take take, Int index)

    returns HWND of floating window for effect index, if any

    Returnvalues:
    HWND hwd

    Parameters:
    MediaItem_Take take
    integer index


    ^ Reaper version 5.62TakeFX_GetFormattedParamValue

    C: bool TakeFX_GetFormattedParamValue(MediaItem_Take* take, int fx, int param, char* buf, int buf_sz)
    EEL2: bool TakeFX_GetFormattedParamValue(MediaItem_Take take, int fx, int param, #buf)
    Lua: boolean retval, string buf = reaper.TakeFX_GetFormattedParamValue(MediaItem_Take take, integer fx, integer param, string buf)
    Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, String buf, Int buf_sz) = RPR_TakeFX_GetFormattedParamValue(take, fx, param, buf, buf_sz)



    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take
    integer fx
    integer param
    string buf


    ^ Reaper version 6.43TakeFX_GetIOSize

    C: int TakeFX_GetIOSize(MediaItem_Take* take, int fx, int* inputPinsOut, int* outputPinsOut)
    EEL2: int TakeFX_GetIOSize(MediaItem_Take take, int fx, int &inputPins, int &outputPins)
    Lua: integer retval, integer inputPins, integer outputPins = reaper.TakeFX_GetIOSize(MediaItem_Take take, integer fx)
    Python: (Int retval, MediaItem_Take take, Int fx, Int inputPinsOut, Int outputPinsOut) = RPR_TakeFX_GetIOSize(take, fx, inputPinsOut, outputPinsOut)

    gets the number of input/output pins for FX if available, returns plug-in type or -1 on error

    0, "DX"
    1, "LV2"
    2, "JSFX"
    3, "VST"
    5, "AU"
    6, "Video Processor"
    7, "CLAP"
    8, "Container"

    Returnvalues:
    integer retval
    integer inputPins
    integer outputPins

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 6.74TakeFX_GetNamedConfigParm

    C: bool retval = TakeFX_GetNamedConfigParm(MediaItem_Take* take, int fx, const char* parmname, char* bufOutNeedBig, int bufOutNeedBig_sz)
    EEL2: bool retval = TakeFX_GetNamedConfigParm(MediaItem_Take take, int fx, "parmname", #buf)
    Lua: boolean retval, string buf = reaper.TakeFX_GetNamedConfigParm(MediaItem_Take take, integer fx, string parmname)
    Python: (Boolean retval, MediaItem_Take take, Int fx, String parmname, String bufOutNeedBig, Int bufOutNeedBig_sz) = RPR_TakeFX_GetNamedConfigParm(take, fx, parmname, bufOutNeedBig, bufOutNeedBig_sz)

    gets plug-in specific named configuration value (returns true on success)

    Supported values for read:
      pdc : PDC latency
      in_pin_X : name of input pin X
      out_pin_X : name of output pin X
      fx_type : type string
      fx_ident : type-specific identifier
      fx_name : pre-aliased name
      GainReduction_dB : [ReaComp + other supported compressors]
      vst_chunk[_program] : base64-encoded VST-specific chunk.
      clap_chunk : base64-encoded CLAP-specific chunk.
      param.X.lfo.[active,dir,phase,speed,strength,temposync,free,shape] : parameter moduation LFO state
      param.X.acs.[active,dir,strength,attack,release,dblo,dbhi,chan,stereo,x2,y2] : parameter modulation ACS state
      param.X.plink.[active,scale,offset,effect,param,midi_bus,midi_chan,midi_msg,midi_msg2] : parameter link/MIDI link: set effect=-100 to support midi_*
      param.X.mod.[active,baseline,visible] : parameter module global settings
      param.X.learn.[midi1,midi2,osc] : first two bytes of MIDI message, or OSC string if set
      param.X.learn.mode : absolution/relative mode flag (0: Absolute, 1: 127=-1,1=+1, 2: 63=-1, 65=+1, 3: 65=-1, 1=+1, 4: toggle if nonzero)
      param.X.learn.flags : &1=selected track only, &2=soft takeover, &4=focused FX only, &8=LFO retrigger, &16=visible FX only
      
      BANDTYPEx, BANDENABLEDx : band configuration [ReaEQ]
      THRESHOLD, CEILING, TRUEPEAK : [ReaLlmit]
      NUMCHANNELS, NUMSPEAKERS, RESETCHANNELS : [ReaSurroundPan]
      ITEMx : [ReaVerb] state configuration line, when writing should be followed by a write of DONE
      FILE, FILEx, -FILEx, +FILEx, -FILE* : [RS5k] file list, -/+ prefixes are write-only, when writing any, should be followed by a write of DONE
      MODE, RSMODE : [RS5k] general mode, resample mode
      VIDEO_CODE : [video processor] code
      
      force_auto_bypass : 0 or 1 - force auto-bypass plug-in on silence
      instance_oversample_shift : instance oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
      chain_oversample_shift : chain oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
      chain_pdc_mode : chain PDC mode (0=classic, 1=new-default, 2=ignore PDC, 3=hwcomp-master)

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take
    integer fx
    string parmname


    ^ Reaper version 5.62TakeFX_GetNumParams

    C: int TakeFX_GetNumParams(MediaItem_Take* take, int fx)
    EEL2: int TakeFX_GetNumParams(MediaItem_Take take, int fx)
    Lua: integer retval = reaper.TakeFX_GetNumParams(MediaItem_Take take, integer fx)
    Python: Int retval = RPR_TakeFX_GetNumParams(MediaItem_Take take, Int fx)



    Returnvalues:
    integer retval

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 5.95TakeFX_GetOffline

    C: bool TakeFX_GetOffline(MediaItem_Take* take, int fx)
    EEL2: bool TakeFX_GetOffline(MediaItem_Take take, int fx)
    Lua: boolean retval = reaper.TakeFX_GetOffline(MediaItem_Take take, integer fx)
    Python: Boolean retval = RPR_TakeFX_GetOffline(MediaItem_Take take, Int fx)

    See TakeFX_SetOffline


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 5.62TakeFX_GetOpen

    C: bool TakeFX_GetOpen(MediaItem_Take* take, int fx)
    EEL2: bool TakeFX_GetOpen(MediaItem_Take take, int fx)
    Lua: boolean retval = reaper.TakeFX_GetOpen(MediaItem_Take take, integer fx)
    Python: Boolean retval = RPR_TakeFX_GetOpen(MediaItem_Take take, Int fx)

    Returns true if this FX UI is open in the FX chain window or a floating window. See TakeFX_SetOpen


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 5.62TakeFX_GetParam

    C: double TakeFX_GetParam(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut)
    EEL2: double TakeFX_GetParam(MediaItem_Take take, int fx, int param, &minval, &maxval)
    Lua: number retval, number minval, number maxval = reaper.TakeFX_GetParam(MediaItem_Take take, integer fx, integer param)
    Python: (Float retval, MediaItem_Take take, Int fx, Int param, Float minvalOut, Float maxvalOut) = RPR_TakeFX_GetParam(take, fx, param, minvalOut, maxvalOut)



    Returnvalues:
    number retval
    number minval
    number maxval

    Parameters:
    MediaItem_Take take
    integer fx
    integer param


    ^ Reaper version 5.62TakeFX_GetParamEx

    C: double TakeFX_GetParamEx(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut, double* midvalOut)
    EEL2: double TakeFX_GetParamEx(MediaItem_Take take, int fx, int param, &minval, &maxval, &midval)
    Lua: number retval, number minval, number maxval, number midval = reaper.TakeFX_GetParamEx(MediaItem_Take take, integer fx, integer param)
    Python: (Float retval, MediaItem_Take take, Int fx, Int param, Float minvalOut, Float maxvalOut, Float midvalOut) = RPR_TakeFX_GetParamEx(take, fx, param, minvalOut, maxvalOut, midvalOut)



    Returnvalues:
    number retval
    number minval
    number maxval
    number midval

    Parameters:
    MediaItem_Take take
    integer fx
    integer param


    ^ Reaper version 6.37TakeFX_GetParamFromIdent

    C: int TakeFX_GetParamFromIdent(MediaItem_Take* take, int fx, const char* ident_str)
    EEL2: int TakeFX_GetParamFromIdent(MediaItem_Take take, int fx, "ident_str")
    Lua: integer param = reaper.TakeFX_GetParamFromIdent(MediaItem_Take take, integer fx, string ident_str)
    Python: Int retval = RPR_TakeFX_GetParamFromIdent(MediaItem_Take take, Int fx, String ident_str)

    gets the parameter index from an identifying string (:wet, :bypass, or a string returned from GetParamIdent), or -1 if unknown.

    Returnvalues:
    integer param

    Parameters:
    MediaItem_Take take
    integer fx
    string ident_str


    ^ Reaper version 6.37TakeFX_GetParamIdent

    C: bool TakeFX_GetParamIdent(MediaItem_Take* take, int fx, int param, char* bufOut, int bufOut_sz)
    EEL2: bool TakeFX_GetParamIdent(MediaItem_Take take, int fx, int param, #buf)
    Lua: boolean retval, string buf = reaper.TakeFX_GetParamIdent(MediaItem_Take take, integer fx, integer param)
    Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, String bufOut, Int bufOut_sz) = RPR_TakeFX_GetParamIdent(take, fx, param, bufOut, bufOut_sz)

    gets an identifying string for the parameter

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take
    integer fx
    integer param


    ^ Reaper version 6.37TakeFX_GetParamName

    C: bool TakeFX_GetParamName(MediaItem_Take* take, int fx, int param, char* bufOut, int bufOut_sz)
    EEL2: bool TakeFX_GetParamName(MediaItem_Take take, int fx, int param, #buf)
    Lua: boolean retval, string buf = reaper.TakeFX_GetParamName(MediaItem_Take take, integer fx, integer param)
    Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, String bufOut, Int bufOut_sz) = RPR_TakeFX_GetParamName(take, fx, param, bufOut, bufOut_sz)



    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take
    integer fx
    integer param


    ^ Reaper version 5.62TakeFX_GetParamNormalized

    C: double TakeFX_GetParamNormalized(MediaItem_Take* take, int fx, int param)
    EEL2: double TakeFX_GetParamNormalized(MediaItem_Take take, int fx, int param)
    Lua: number retval = reaper.TakeFX_GetParamNormalized(MediaItem_Take take, integer fx, integer param)
    Python: Float retval = RPR_TakeFX_GetParamNormalized(MediaItem_Take take, Int fx, Int param)



    Returnvalues:
    number retval

    Parameters:
    MediaItem_Take take
    integer fx
    integer param


    ^ Reaper version 5.62TakeFX_GetParameterStepSizes

    C: bool TakeFX_GetParameterStepSizes(MediaItem_Take* take, int fx, int param, double* stepOut, double* smallstepOut, double* largestepOut, bool* istoggleOut)
    EEL2: bool TakeFX_GetParameterStepSizes(MediaItem_Take take, int fx, int param, &step, &smallstep, &largestep, bool &istoggle)
    Lua: boolean retval, number step, number smallstep, number largestep, boolean istoggle = reaper.TakeFX_GetParameterStepSizes(MediaItem_Take take, integer fx, integer param)
    Python: (Boolean retval, MediaItem_Take take, Int fx, Int param, Float stepOut, Float smallstepOut, Float largestepOut, Boolean istoggleOut) = RPR_TakeFX_GetParameterStepSizes(take, fx, param, stepOut, smallstepOut, largestepOut, istoggleOut)



    Returnvalues:
    boolean retval
    number step
    number smallstep
    number largestep
    boolean istoggle

    Parameters:
    MediaItem_Take take
    integer fx
    integer param


    ^ Reaper version 6.43TakeFX_GetPinMappings

    C: int TakeFX_GetPinMappings(MediaItem_Take* take, int fx, int isoutput, int pin, int* high32Out)
    EEL2: int TakeFX_GetPinMappings(MediaItem_Take take, int fx, int isoutput, int pin, int &high32)
    Lua: integer retval, integer high32 = reaper.TakeFX_GetPinMappings(MediaItem_Take take, integer fx, integer isoutput, integer pin)
    Python: (Int retval, MediaItem_Take take, Int fx, Int isoutput, Int pin, Int high32Out) = RPR_TakeFX_GetPinMappings(take, fx, isoutput, pin, high32Out)

    gets the effective channel mapping bitmask for a particular pin. high32Out will be set to the high 32 bits

    Returnvalues:
    integer retval
    integer high32

    Parameters:
    MediaItem_Take take
    integer fx
    integer is
    integer pin


    ^ Reaper version 6.37TakeFX_GetPreset

    C: bool TakeFX_GetPreset(MediaItem_Take* take, int fx, char* presetnameOut, int presetnameOut_sz)
    EEL2: bool TakeFX_GetPreset(MediaItem_Take take, int fx, #presetname)
    Lua: boolean retval, string presetname = reaper.TakeFX_GetPreset(MediaItem_Take take, integer fx)
    Python: (Boolean retval, MediaItem_Take take, Int fx, String presetnameOut, Int presetnameOut_sz) = RPR_TakeFX_GetPreset(take, fx, presetnameOut, presetnameOut_sz)

    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

    Returnvalues:
    boolean retval
    true, the fx-parameters match preset; false, the fx-parameters do not match preset(see description for more details)
    string presetname
    the name of the preset

    Parameters:
    MediaItem_Take take
    the take, of whose fx you want to get the presetname
    integer fx
    the index of the fx, whose indexname you want to get; 0-based

    see also:
  • TakeFX_SetPreset - sets the preset of a take-fx


  • ^ Reaper version 5.62TakeFX_GetPresetIndex

    C: int TakeFX_GetPresetIndex(MediaItem_Take* take, int fx, int* numberOfPresetsOut)
    EEL2: int TakeFX_GetPresetIndex(MediaItem_Take take, int fx, int &numberOfPresets)
    Lua: integer retval, integer numberOfPresets = reaper.TakeFX_GetPresetIndex(MediaItem_Take take, integer fx)
    Python: (Int retval, MediaItem_Take take, Int fx, Int numberOfPresetsOut) = RPR_TakeFX_GetPresetIndex(take, fx, numberOfPresetsOut)

    Returns current preset index, or -1 if error. numberOfPresetsOut will be set to total number of presets available. See TakeFX_SetPresetByIndex


    Returnvalues:
    integer retval
    integer numberOfPresets

    Parameters:
    MediaItem take
    integer fx


    ^ Reaper version 6.37TakeFX_GetUserPresetFilename

    C: void TakeFX_GetUserPresetFilename(MediaItem_Take* take, int fx, char* fnOut, int fnOut_sz)
    EEL2: TakeFX_GetUserPresetFilename(MediaItem_Take take, int fx, #fn)
    Lua: string fn = reaper.TakeFX_GetUserPresetFilename(MediaItem_Take take, integer fx)
    Python: (MediaItem_Take take, Int fx, String fnOut, Int fnOut_sz) = RPR_TakeFX_GetUserPresetFilename(take, fx, fnOut, fnOut_sz)



    Returnvalues:
    string fn

    Parameters:
    MediaItem_Take take
    integer fx


    ^ Reaper version 5.62TakeFX_NavigatePresets

    C: bool TakeFX_NavigatePresets(MediaItem_Take* take, int fx, int presetmove)
    EEL2: bool TakeFX_NavigatePresets(MediaItem_Take take, int fx, int presetmove)
    Lua: boolean retval = reaper.TakeFX_NavigatePresets(MediaItem_Take take, integer fx, integer presetmove)
    Python: Boolean retval = RPR_TakeFX_NavigatePresets(MediaItem_Take take, Int fx, Int presetmove)

    presetmove==1 activates the next preset, presetmove==-1 activates the previous preset, etc.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx
    integer presetmove


    ^ Reaper version 5.62TakeFX_SetEnabled

    C: void TakeFX_SetEnabled(MediaItem_Take* take, int fx, bool enabled)
    EEL2: TakeFX_SetEnabled(MediaItem_Take take, int fx, bool enabled)
    Lua: reaper.TakeFX_SetEnabled(MediaItem_Take take, integer fx, boolean enabled)
    Python: RPR_TakeFX_SetEnabled(MediaItem_Take take, Int fx, Boolean enabled)

    See TakeFX_GetEnabled


    Parameters:
    MediaItem_Take take
    integer fx
    boolean enabled


    ^ Reaper version 6.74TakeFX_SetNamedConfigParm

    C: bool TakeFX_SetNamedConfigParm(MediaItem_Take* take, int fx, const char* parmname, const char* value)
    EEL2: bool TakeFX_SetNamedConfigParm(MediaItem_Take take, int fx, "parmname", "value")
    Lua: boolean retval = reaper.TakeFX_SetNamedConfigParm(MediaItem_Take take, integer fx, string parmname, string value)
    Python: Boolean retval = RPR_TakeFX_SetNamedConfigParm(MediaItem_Take take, Int fx, String parmname, String value)

    sets plug-in specific named configuration value (returns true on success).

    Support values for write:

    vst_chunk[_program] : base64-encoded VST-specific chunk.
    clap_chunk : base64-encoded CLAP-specific chunk.
    param.X.lfo.[active,dir,phase,speed,strength,temposync,free,shape] : parameter moduation LFO state
    param.X.acs.[active,dir,strength,attack,release,dblo,dbhi,chan,stereo,x2,y2] : parameter modulation ACS state
    param.X.plink.[active,scale,offset,effect,param,midi_bus,midi_chan,midi_msg,midi_msg2] : parameter link/MIDI link: set effect=-100 to support midi_*
    param.X.mod.[active,baseline,visible] : parameter module global settings
    param.X.learn.[midi1,midi2,osc] : first two bytes of MIDI message, or OSC string if set
    param.X.learn.mode : absolution/relative mode flag (0: Absolute, 1: 127=-1,1=+1, 2: 63=-1, 65=+1, 3: 65=-1, 1=+1, 4: toggle if nonzero)
    param.X.learn.flags : &1=selected track only, &2=soft takeover, &4=focused FX only, &8=LFO retrigger, &16=visible FX only

    BANDTYPEx, BANDENABLEDx : band configuration [ReaEQ]
    THRESHOLD, CEILING, TRUEPEAK : [ReaLlmit]
    NUMCHANNELS, NUMSPEAKERS, RESETCHANNELS : [ReaSurroundPan]
    ITEMx : [ReaVerb] state configuration line, when writing should be followed by a write of DONE
    FILE, FILEx, -FILEx, +FILEx, -FILE* : [RS5k] file list, -/+ prefixes are write-only, when writing any, should be followed by a write of DONE
    MODE, RSMODE : [RS5k] general mode, resample mode
    VIDEO_CODE : [video processor] code

    force_auto_bypass : 0 or 1 - force auto-bypass plug-in on silence
    instance_oversample_shift : instance oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
    chain_oversample_shift : chain oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
    chain_pdc_mode : chain PDC mode (0=classic, 1=new-default, 2=ignore PDC, 3=hwcomp-master)

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx
    string parmname
    string value


    ^ Reaper version 5.95TakeFX_SetOffline

    C: void TakeFX_SetOffline(MediaItem_Take* take, int fx, bool offline)
    EEL2: TakeFX_SetOffline(MediaItem_Take take, int fx, bool offline)
    Lua: reaper.TakeFX_SetOffline(MediaItem_Take take, integer fx, boolean offline)
    Python: RPR_TakeFX_SetOffline(MediaItem_Take take, Int fx, Boolean offline)

    See TakeFX_GetOffline


    Parameters:
    MediaItem_Take take
    integer fx
    boolean offline


    ^ Reaper version 5.62TakeFX_SetOpen

    C: void TakeFX_SetOpen(MediaItem_Take* take, int fx, bool open)
    EEL2: TakeFX_SetOpen(MediaItem_Take take, int fx, bool open)
    Lua: reaper.TakeFX_SetOpen(MediaItem_Take take, integer fx, boolean open)
    Python: RPR_TakeFX_SetOpen(MediaItem_Take take, Int fx, Boolean open)

    Open this FX UI. See TakeFX_GetOpen


    Parameters:
    MediaItem_Take take
    integer fx
    boolean open


    ^ Reaper version 5.62TakeFX_SetParam

    C: bool TakeFX_SetParam(MediaItem_Take* take, int fx, int param, double val)
    EEL2: bool TakeFX_SetParam(MediaItem_Take take, int fx, int param, val)
    Lua: boolean retval = reaper.TakeFX_SetParam(MediaItem_Take take, integer fx, integer param, number val)
    Python: Boolean retval = RPR_TakeFX_SetParam(MediaItem_Take take, Int fx, Int param, Float val)



    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx
    integer param
    number val


    ^ Reaper version 5.62TakeFX_SetParamNormalized

    C: bool TakeFX_SetParamNormalized(MediaItem_Take* take, int fx, int param, double value)
    EEL2: bool TakeFX_SetParamNormalized(MediaItem_Take take, int fx, int param, value)
    Lua: boolean retval = reaper.TakeFX_SetParamNormalized(MediaItem_Take take, integer fx, integer param, number value)
    Python: Boolean retval = RPR_TakeFX_SetParamNormalized(MediaItem_Take take, Int fx, Int param, Float value)



    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx
    integer param
    number value


    ^ Reaper version 5.62TakeFX_SetPinMappings

    C: bool TakeFX_SetPinMappings(MediaItem_Take* tk, int fx, int isOutput, int pin, int low32bits, int hi32bits)
    EEL2: bool TakeFX_SetPinMappings(MediaItem_Take tk, int fx, int is, int pin, int low32bits, int hi32bits)
    Lua: boolean retval = reaper.TakeFX_SetPinMappings(MediaItem_Take tk, integer fx, integer is, integer pin, integer low32bits, integer hi32bits)
    Python: Boolean retval = RPR_TakeFX_SetPinMappings(MediaItem_Take tk, Int fx, Int isOutput, Int pin, Int low32bits, Int hi32bits)

    sets the channel mapping bitmask for a particular pin. returns false if unsupported (not all types of plug-ins support this capability)

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take tk
    integer fx
    integer is
    integer pin
    integer low32bits
    integer hi32bits


    ^ Reaper version 5.62TakeFX_SetPreset

    C: bool TakeFX_SetPreset(MediaItem_Take* take, int fx, const char* presetname)
    EEL2: bool TakeFX_SetPreset(MediaItem_Take take, int fx, "presetname")
    Lua: boolean retval = reaper.TakeFX_SetPreset(MediaItem_Take take, integer fx, string presetname)
    Python: Boolean retval = RPR_TakeFX_SetPreset(MediaItem_Take take, Int fx, String presetname)

    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.

    presetname is case-sensitive.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx
    string presetname


    ^ Reaper version 5.62TakeFX_SetPresetByIndex

    C: bool TakeFX_SetPresetByIndex(MediaItem_Take* take, int fx, int idx)
    EEL2: bool TakeFX_SetPresetByIndex(MediaItem_Take take, int fx, int idx)
    Lua: boolean retval = reaper.TakeFX_SetPresetByIndex(MediaItem_Take take, integer fx, integer idx)
    Python: Boolean retval = RPR_TakeFX_SetPresetByIndex(MediaItem_Take take, Int fx, Int idx)

    Sets the preset idx, or the factory preset (idx==-2), or the default user preset (idx==-1). Returns true on success. See TakeFX_GetPresetIndex.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer fx
    integer idx


    ^ Reaper version 5.62TakeFX_Show

    C: void TakeFX_Show(MediaItem_Take* take, int index, int showFlag)
    EEL2: TakeFX_Show(MediaItem_Take take, int index, int showFlag)
    Lua: reaper.TakeFX_Show(MediaItem_Take take, integer index, integer showFlag)
    Python: RPR_TakeFX_Show(MediaItem_Take take, Int index, Int showFlag)

    showflag=0 for hidechain, =1 for show chain(index valid), =2 for hide floating window(index valid), =3 for show floating window (index valid)

    Parameters:
    MediaItem_Take take
    integer index
    integer showFlag


    ^ Reaper version 5.62 SWS version 2.13.0.0BR_TrackFX_GetFXModuleName

    C: bool BR_TrackFX_GetFXModuleName(MediaTrack* track, int fx, char* nameOut, int nameOut_sz)
    EEL2: bool extension_api("BR_TrackFX_GetFXModuleName", MediaTrack track, int fx, #name)
    Lua: boolean retval, string name = reaper.BR_TrackFX_GetFXModuleName(MediaTrack track, integer fx)
    Python: (Boolean retval, MediaTrack track, Int fx, String nameOut, Int nameOut_sz) = BR_TrackFX_GetFXModuleName(track, fx, nameOut, nameOut_sz)

    [BR] Deprecated, see TrackFX_GetNamedConfigParm/'fx_ident' (v6.37+). Get the exact name (like effect.dll, effect.vst3, etc...) of an FX.

    Returnvalues:
    boolean retval
    true, getting name was successful; false, getting name was unsuccesful
    string name
    the name of the fx-module

    Parameters:
    MediaTrack track
    the track, in which the fx is located, whose name you want to get
    integer fx
    the index of the fx, whose name you want to get


    ^ Reaper version 5.965 SWS version 2.10.0.1CF_GetTrackFXChain

    C: FxChain * CF_GetTrackFXChain(MediaTrack* track)
    EEL2: FxChain extension_api("CF_GetTrackFXChain", MediaTrack track)
    Lua: FxChain hwnd = reaper.CF_GetTrackFXChain(MediaTrack track)
    Python: FXChain retval = CF_GetTrackFXChain(MediaTrack track)

    Return a handle to the given track FX chain window.

    Returnvalues:
    FxChain hwnd
    the hwnd-window-handler of the FX-chain of the track

    Parameters:
    MediaTrack track
    the track, whose FXChain-window-handler you want to get


    ^ Reaper version 5.965 SWS version 2.12.0CF_SelectTrackFX

    C: bool CF_SelectTrackFX(MediaTrack* track, int index)
    EEL2: bool extension_api("CF_SelectTrackFX", MediaTrack track, int index)
    Lua: boolean retval = reaper.CF_SelectTrackFX(MediaTrack track, integer index)
    Python: Boolean retval = CF_SelectTrackFX(MediaTrack track, Int index)

    Set which track effect is active in the track's FX chain. The FX chain window does not have to be open.


    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    MediaTrack track
    the track, whose active trackfx you want to set
    integer index
    the index of the fx, which you want to activate


    ^ Reaper version 5.62GetTCPFXParm

    C: bool GetTCPFXParm(ReaProject* project, MediaTrack* track, int index, int* fxindexOut, int* parmidxOut)
    EEL2: bool GetTCPFXParm(ReaProject project, MediaTrack track, int index, int &fxindex, int &parmidx)
    Lua: boolean retval, integer fxindex, integer parmidx = reaper.GetTCPFXParm(ReaProject project, MediaTrack track, integer index)
    Python: (Boolean retval, ReaProject project, MediaTrack track, Int index, Int fxindexOut, Int parmidxOut) = RPR_GetTCPFXParm(project, track, index, fxindexOut, parmidxOut)

    Get information about a specific FX parameter knob (see CountTCPFXParms).

    Returnvalues:
    boolean retval
    integer fxindex
    integer parmidx

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    MediaTrack track
    integer index

    see also:
  • CountTCPFXParms - returns the number of tcp-fx parameters


  • ^ Reaper version 5.965 SWS version 2.10.0.1SNM_MoveOrRemoveTrackFX

    C: bool SNM_MoveOrRemoveTrackFX(MediaTrack* tr, int fxId, int what)
    EEL2: bool extension_api("SNM_MoveOrRemoveTrackFX", MediaTrack tr, int fxId, int what)
    Lua: boolean retval = reaper.SNM_MoveOrRemoveTrackFX(MediaTrack tr, integer fxId, integer what)
    Python: Boolean retval = SNM_MoveOrRemoveTrackFX(MediaTrack tr, Int fxId, Int what)

    [S&M] Deprecated, see TakeFX_/TrackFX_ CopyToTrack/Take, TrackFX/TakeFX _Delete (v5.95pre2+). Move or removes a track FX. Returns true if tr has been updated.
    fxId: fx index in chain or -1 for the selected fx. what: 0 to remove, -1 to move fx up in chain, 1 to move fx down in chain.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack tr
    integer fxId
    integer what


    ^ Reaper version 6.72TrackFX_AddByName

    C: int TrackFX_AddByName(MediaTrack* track, const char* fxname, bool recFX, int instantiate)
    EEL2: int TrackFX_AddByName(MediaTrack track, "fxname", bool recFX, int instantiate)
    Lua: integer retval = reaper.TrackFX_AddByName(MediaTrack track, string fxname, boolean recFX, integer instantiate)
    Python: Int retval = RPR_TrackFX_AddByName(MediaTrack track, String fxname, Boolean recFX, Int instantiate)

    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.

    Returns -1 on failure or the new position in chain on success.

    Returnvalues:
    integer retval
    the index of the position of the new fx; -1, in case of an error

    Parameters:
    MediaTrack track
    the track, into whose FXChain you want to add a new FX; for inputFX(monitoring FX), this must be the master track + recFX==true
    string fxname
    the name of the fx/instrument-plugin
    boolean recFX
    true, add the fx to the inputFX(only when track=master track); false, add it to track
    integer instantiate
    negative, always create this new fx; positive, create the fx, if it does not yet exist; 0, query position of the first fx with that name


    ^ Reaper version 5.95TrackFX_CopyToTake

    C: void TrackFX_CopyToTake(MediaTrack* src_track, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move)
    EEL2: TrackFX_CopyToTake(MediaTrack src_track, int src_fx, MediaItem_Take dest_take, int dest_fx, bool is_move)
    Lua: reaper.TrackFX_CopyToTake(MediaTrack src_track, integer src_fx, MediaItem_Take dest_take, integer dest_fx, boolean is_move)
    Python: RPR_TrackFX_CopyToTake(MediaTrack src_track, Int src_fx, MediaItem_Take dest_take, Int dest_fx, Boolean is_move)

    Copies (or moves) FX from src_track to dest_take. src_fx can have 0x1000000 set to reference input FX.

    Note:
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.
    Add 0x1000000 to the fx-indices to address monitoringFX/rec-inputFX.

    Parameters:
    MediaTrack src_track
    the source-track, whose fx you want to copy; use master-track to address inputfx
    Int src_fx
    the index of the fx(0-based); add 0x1000000 to use it for inputfx
    MediaItem_Take dest_take
    the destination-take, into which you want to paste/insert the fx
    Int dest_fx
    the index of the fx(0-based)
    Boolean is_move
    true, move the fx; false, just copy the fx as new fx to the new position


    ^ Reaper version 5.95TrackFX_CopyToTrack

    C: void TrackFX_CopyToTrack(MediaTrack* src_track, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move)
    EEL2: TrackFX_CopyToTrack(MediaTrack src_track, int src_fx, MediaTrack dest_track, int dest_fx, bool is_move)
    Lua: reaper.TrackFX_CopyToTrack(MediaTrack src_track, integer src_fx, MediaTrack dest_track, integer dest_fx, boolean is_move)
    Python: RPR_TrackFX_CopyToTrack(MediaTrack src_track, Int src_fx, MediaTrack dest_track, Int dest_fx, Boolean is_move)

    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.

    Note:
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.
    Add 0x1000000 to the fx-indices to address monitoringFX/rec-inputFX.

    Parameters:
    MediaTrack src_track
    the source-track, whose fx you want to copy; use master-track to address inputfx
    Int src_fx
    the index of the fx(0-based); add 0x1000000 to use it for inputfx
    MediaTrack dest_track
    the destination-track, into which you want to paste/insert the fx; use master-track to address inputfx
    Int dest_fx
    the index of the fx(0-based); add 0x1000000 to use it for inputfx
    Boolean is_move
    true, move the fx; false, just copy the fx as new fx to the new position


    ^ Reaper version 5.95TrackFX_Delete

    C: bool TrackFX_Delete(MediaTrack* track, int fx)
    EEL2: bool TrackFX_Delete(MediaTrack track, int fx)
    Lua: boolean retval = reaper.TrackFX_Delete(MediaTrack track, integer fx)
    Python: Boolean retval = RPR_TrackFX_Delete(MediaTrack track, Int fx)

    Remove a FX from track chain (returns true on success).

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 5.62TrackFX_EndParamEdit

    C: bool TrackFX_EndParamEdit(MediaTrack* track, int fx, int param)
    EEL2: bool TrackFX_EndParamEdit(MediaTrack track, int fx, int param)
    Lua: boolean retval = reaper.TrackFX_EndParamEdit(MediaTrack track, integer fx, integer param)
    Python: Boolean retval = RPR_TrackFX_EndParamEdit(MediaTrack track, Int fx, Int param)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval
    true, setting value was successful; false, setting value was unsuccessful

    Parameters:
    MediaTrack track
    the track, of which you want to set an fx's parameter editing ended
    integer fx
    the index of the fx; ass 0x1000000 to address rec-input-fx/monitoringfx
    integer param


    ^ Reaper version 6.81TrackFX_FormatParamValue

    C: bool TrackFX_FormatParamValue(MediaTrack* track, int fx, int param, double val, char* bufOut, int bufOut_sz)
    EEL2: bool TrackFX_FormatParamValue(MediaTrack track, int fx, int param, val, #buf)
    Lua: boolean retval, string buf = reaper.TrackFX_FormatParamValue(MediaTrack track, integer fx, integer param, number val)
    Python: (Boolean retval, MediaTrack track, Int fx, Int param, Float val, String bufOut, Int bufOut_sz) = RPR_TrackFX_FormatParamValue(track, fx, param, val, bufOut, bufOut_sz)

    returns a formatted version of the currently set parameter-value.

    Note: only works with FX that support Cockos VST extensions.

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, parameter can be retrieved; false, an error occured(e.g. no such fx)
    string buf
    the formatted parameter value

    Parameters:
    MediaTrack track
    the track, which contains the fx; use master-track if you want to address input-fx(see fx)
    integer fx
    the index of the fx(0-based); add 0x1000000 to use inputFX(only with track=mastertrack)
    integer param
    the parameter, whose format you want to apply to the value
    number val
    a value, which shall be formatted accordingly


    ^ Reaper version 5.62TrackFX_FormatParamValueNormalized

    C: bool TrackFX_FormatParamValueNormalized(MediaTrack* track, int fx, int param, double value, char* buf, int buf_sz)
    EEL2: bool TrackFX_FormatParamValueNormalized(MediaTrack track, int fx, int param, value, #buf)
    Lua: boolean retval, string buf = reaper.TrackFX_FormatParamValueNormalized(MediaTrack track, integer fx, integer param, number value, string buf)
    Python: (Boolean retval, MediaTrack track, Int fx, Int param, Float value, String buf, Int buf_sz) = RPR_TrackFX_FormatParamValueNormalized(track, fx, param, value, buf, buf_sz)

    returns a formatted version of the currently set parameter-value and normalizes it.

    Note: only works with FX that support Cockos VST extensions.

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    returns false in case of an error

    Returnvalues:
    boolean retval
    true, parameter can be retrieved; false, an error occured(e.g. no such fx)
    string buf
    the formatted parameter value

    Parameters:
    MediaTrack track
    the track, which contains the fx; use master-track if you want to address input-fx(see fx)
    integer fx
    the index of the fx(0-based); add 0x1000000 to use inputFX(only with track=mastertrack)
    integer param
    the parameter, whose format you want to apply to the value
    number val
    a value, which shall be formatted accordingly
    string buf
    simply set this to ""


    ^ Reaper version 5.62TrackFX_GetByName

    C: int TrackFX_GetByName(MediaTrack* track, const char* fxname, bool instantiate)
    EEL2: int TrackFX_GetByName(MediaTrack track, "fxname", bool instantiate)
    Lua: integer retval = reaper.TrackFX_GetByName(MediaTrack track, string fxname, boolean instantiate)
    Python: Int retval = RPR_TrackFX_GetByName(MediaTrack track, String fxname, Boolean instantiate)

    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.

    returns -1 in case of an error


    Returnvalues:
    integer retval
    the index of the first track FX with fxname

    Parameters:
    MediaTrack track
    the MediaTrack, which may hold the fx
    string fxname
    the name of the fx, whose first index-position you want to query
    boolean instantiate
    true, add the fx, is it's not existing; false, just query


    ^ Reaper version 5.62TrackFX_GetChainVisible

    C: int TrackFX_GetChainVisible(MediaTrack* track)
    EEL2: int TrackFX_GetChainVisible(MediaTrack track)
    Lua: integer retval = reaper.TrackFX_GetChainVisible(MediaTrack track)
    Python: Int retval = RPR_TrackFX_GetChainVisible(MediaTrack track)

    returns index of effect visible in chain, or -1 for chain hidden, or -2 for chain visible but no effect selected

    Returnvalues:
    integer retval
    the current visibility/selected state of the FXChain:
    positive, the index of the selected fx(0-based)
    -1, hidden
    -2, visible but no effect inserted

    Parameters:
    MediaTrack track
    the track, whose FXChain-visibility you want to query


    ^ Reaper version 5.62TrackFX_GetCount

    C: int TrackFX_GetCount(MediaTrack* track)
    EEL2: int TrackFX_GetCount(MediaTrack track)
    Lua: integer retval = reaper.TrackFX_GetCount(MediaTrack track)
    Python: Int retval = RPR_TrackFX_GetCount(MediaTrack track)

    returns the number of trackfx in the FXChain of track

    Returnvalues:
    integer retval
    the number of fx in the FXChain of track

    Parameters:
    MediaTrack track
    the track, whose number of fx in the FXChain you want to count


    ^ Reaper version 5.62TrackFX_GetEQ

    C: int TrackFX_GetEQ(MediaTrack* track, bool instantiate)
    EEL2: int TrackFX_GetEQ(MediaTrack track, bool instantiate)
    Lua: integer retval = reaper.TrackFX_GetEQ(MediaTrack track, boolean instantiate)
    Python: Int retval = RPR_TrackFX_GetEQ(MediaTrack track, Boolean instantiate)

    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.

    returns -1 if no ReaEQ is available.


    Returnvalues:
    integer retval
    the index of first ReaEQ in the FXChain; -1, if no ReaEQ is available

    Parameters:
    MediaTrack track
    the track, whose first ReaEQ-instance-index you want to query
    boolean instantiate
    true, add ReaEQ if not existing yet; false, just query its position


    ^ Reaper version 6.44TrackFX_GetEQBandEnabled

    C: bool TrackFX_GetEQBandEnabled(MediaTrack* track, int fx, int bandtype, int bandidx)
    EEL2: bool TrackFX_GetEQBandEnabled(MediaTrack track, int fx, int bandtype, int bandidx)
    Lua: boolean retval = reaper.TrackFX_GetEQBandEnabled(MediaTrack track, integer fx, integer bandtype, integer bandidx)
    Python: Boolean retval = RPR_TrackFX_GetEQBandEnabled(MediaTrack track, Int fx, Int bandtype, Int bandidx)

    Returns true if the EQ band is enabled. Returns false if the band is disabled, or if track/fxidx is not ReaEQ. Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass. Bandidx:(ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc.

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    See TrackFX_GetEQ, TrackFX_GetEQParam, TrackFX_SetEQParam, TrackFX_SetEQBandEnabled.


    Returnvalues:
    boolean retval
    true, if the EQ band is enabled; false, if the EQ band is disabled

    Parameters:
    MediaTrack track
    the track, whose ReaEQ-instance-enabledstate you want to query
    integer fx
    the index of the fx in the FXChain, that is the ReaEQ-instance in question
    integer bandtype
    -1, master gain;
    0, hipass
    1, loshelf
    2, band
    3, notch,
    4, hishelf
    5, lopass
    6, bandpass
    7, parallel bandpass
    integer bandidx
    (ignored for master gain): 0=first band matching bandtype, 1=2nd band matching bandtype, etc.


    ^ Reaper version 6.44TrackFX_GetEQParam

    C: bool TrackFX_GetEQParam(MediaTrack* track, int fx, int paramidx, int* bandtypeOut, int* bandidxOut, int* paramtypeOut, double* normvalOut)
    EEL2: bool TrackFX_GetEQParam(MediaTrack track, int fx, int paramidx, int &bandtype, int &bandidx, int ¶mtype, &normval)
    Lua: boolean retval, integer bandtype, integer bandidx, integer paramtype, number normval = reaper.TrackFX_GetEQParam(MediaTrack track, integer fx, integer paramidx)
    Python: (Boolean retval, MediaTrack track, Int fx, Int paramidx, Int bandtypeOut, Int bandidxOut, Int paramtypeOut, Float normvalOut) = RPR_TrackFX_GetEQParam(track, fxidx, paramidx, bandtypeOut, bandidxOut, paramtypeOut, normvalOut)

    Returns false if track/fxidx is not ReaEQ. Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass. Bandidx (ignored for master gain): 0=first band matching bandtype, 1=2nd band matching bandtype, etc. Paramtype (ignored for master gain): 0=freq, 1=gain, 2=Q.

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    See TrackFX_GetEQ, TrackFX_SetEQParam, TrackFX_GetEQBandEnabled, TrackFX_SetEQBandEnabled.


    Returnvalues:
    boolean retval
    true, if it's a ReaEQ-instance; false, is not a ReaEQ-instance or in case of an error
    integer bandtype
    -1, master gain;
    0, hipass
    1, loshelf
    2, band
    3, notch,
    4, hishelf
    5, lopass
    6, bandpass
    7, parallel bandpass
    integer bandidx
    0, target first band matching bandtype; 1, target 2nd band matching bandtype, etc.
    integer paramtype
    0, freq; 1, gain; 2, Q
    number normval
    the normalized value

    Parameters:
    MediaTrack track
    the track, whose ReaEQ-instance-attributes you want to get
    integer fx
    the index of the fx; add 0x1000000 to address rec-input-fx/monitoringfx; 0-based
    integer paramidx
    the parameter whose eq-states you want to retrieve; 0-based


    ^ Reaper version 5.62TrackFX_GetEnabled

    C: bool TrackFX_GetEnabled(MediaTrack* track, int fx)
    EEL2: bool TrackFX_GetEnabled(MediaTrack track, int fx)
    Lua: boolean retval = reaper.TrackFX_GetEnabled(MediaTrack track, integer fx)
    Python: Boolean retval = RPR_TrackFX_GetEnabled(MediaTrack track, Int fx)

    returns, if a certain FX in track is enabled

    See TrackFX_SetEnabled

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    returns false in case of an error


    Returnvalues:
    boolean retval
    true, fx is enabled; false, fx is disabled or not existing

    Parameters:
    MediaTrack track
    the track, whose fx-enabled-state you want to query; use master-track to query inputFX(see fx)
    integer fx
    the index of the fx, whose enabled-state you want to query(0-based); add 0x1000000 to query inputFX


    ^ Reaper version 5.62TrackFX_GetFXGUID

    C: GUID* TrackFX_GetFXGUID(MediaTrack* track, int fx)
    EEL2: bool TrackFX_GetFXGUID(#retguid, MediaTrack track, int fx)
    Lua: string GUID = reaper.TrackFX_GetFXGUID(MediaTrack track, integer fx)
    Python: String GUID = RPR_TrackFX_GetFXGUID(MediaTrack track, Int fx)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    string GUID

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 6.37TrackFX_GetFXName

    C: bool TrackFX_GetFXName(MediaTrack* track, int fx, char* bufOut, int bufOut_sz)
    EEL2: bool TrackFX_GetFXName(MediaTrack track, int fx, #buf)
    Lua: boolean retval, string buf = reaper.TrackFX_GetFXName(MediaTrack track, integer fx)
    Python: (Boolean retval, MediaTrack track, Int fx, String bufOut, Int bufOut_sz) = RPR_TrackFX_GetFXName(track, fx, bufOut, bufOut_sz)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 5.62TrackFX_GetFloatingWindow

    C: HWND TrackFX_GetFloatingWindow(MediaTrack* track, int fx)
    EEL2: HWND TrackFX_GetFloatingWindow(MediaTrack track, int fx)
    Lua: HWND hwnd = reaper.TrackFX_GetFloatingWindow(MediaTrack track, integer fx)
    Python: HWND hwnd = RPR_TrackFX_GetFloatingWindow(MediaTrack track, Int fx)

    returns HWND of floating window for effect index, if any

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    HWND hwnd

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 6.37TrackFX_GetFormattedParamValue

    C: bool TrackFX_GetFormattedParamValue(MediaTrack* track, int fx, int param, char* bufOut, int bufOut_sz)
    EEL2: bool TrackFX_GetFormattedParamValue(MediaTrack track, int fx, int param, #buf)
    Lua: boolean retval, string buf = reaper.TrackFX_GetFormattedParamValue(MediaTrack track, integer fx, integer param)
    Python: (Boolean retval, MediaTrack track, Int fx, Int param, String bufOut, Int bufOut_sz) = RPR_TrackFX_GetFormattedParamValue(track, fx, param, bufOut, bufOut_sz)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem track
    integer fx
    integer param


    ^ Reaper version 6.43TrackFX_GetIOSize

    C: int TrackFX_GetIOSize(MediaTrack* track, int fx, int* inputPinsOut, int* outputPinsOut)
    EEL2: int TrackFX_GetIOSize(MediaTrack track, int fx, int &inputPins, int &outputPins)
    Lua: integer retval, integer inputPins, integer outputPins = reaper.TrackFX_GetIOSize(MediaTrack track, integer fx)
    Python: (Int retval, MediaTrack track, Int fx, Int inputPinsOut, Int outputPinsOut) = RPR_TrackFX_GetIOSize(track, fx, inputPinsOut, outputPinsOut)

    gets the number of input/output pins for FX if available, returns plug-in type or -1 on error

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    0, "DX"
    1, "LV2"
    2, "JSFX"
    3, "VST"
    5, "AU"
    6, "Video Processor"
    7, "CLAP"
    8, "Container"

    Returnvalues:
    integer retval
    integer inputPins
    integer outputPins

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 5.62TrackFX_GetInstrument

    C: int TrackFX_GetInstrument(MediaTrack* track)
    EEL2: int TrackFX_GetInstrument(MediaTrack track)
    Lua: integer retval = reaper.TrackFX_GetInstrument(MediaTrack track)
    Python: Int retval = RPR_TrackFX_GetInstrument(MediaTrack track)

    Get the index of the first track FX insert that is a virtual instrument, or -1 if none. See TrackFX_GetEQ, TrackFX_GetByName.


    Returnvalues:
    integer retval

    Parameters:
    MediaTrack track


    ^ Reaper version 6.79TrackFX_GetNamedConfigParm

    C: bool retval = TrackFX_GetNamedConfigParm(MediaTrack* track, int fx, const char* parmname, char* bufOutNeedBig, int bufOutNeedBig_sz)
    EEL2: bool retval = TrackFX_GetNamedConfigParm(MediaTrack track, int fx, "parmname", #buf)
    Lua: boolean retval, string buf = reaper.TrackFX_GetNamedConfigParm(MediaTrack track, integer fx, string parmname)
    Python: (Boolean retval, MediaTrack track, Int fx, String parmname, String bufOutNeedBig, Int bufOutNeedBig_sz) = RPR_TrackFX_GetNamedConfigParm(track, fx, parmname, bufOutNeedBig, bufOutNeedBig_sz)

    gets plug-in specific named configuration value (returns true on success).

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.            

    Supported values for read:
      pdc : PDC latency
      in_pin_X : name of input pin X
      out_pin_X : name of output pin X
      fx_type : type string
      fx_ident : type-specific identifier
      fx_name : pre-aliased name
      GainReduction_dB : [ReaComp + other supported compressors]
      
      original_name : pre-renamed FX instance name
      renamed_name : renamed FX instance name (empty string = not renamed)
      
      vst_chunk[_program] : base64-encoded VST-specific chunk.
      clap_chunk : base64-encoded CLAP-specific chunk.
      
      param.X.lfo.[active,dir,phase,speed,strength,temposync,free,shape] : parameter moduation LFO state
      param.X.acs.[active,dir,strength,attack,release,dblo,dbhi,chan,stereo] : parameter modulation ACS state
      param.X.plink.[active,scale,offset,effect,param,midi_bus,midi_chan,midi_msg,midi_msg2] : parameter link/MIDI link: set effect=-100 to support midi_*
      param.X.mod.[active,baseline,visible] : parameter module global settings
      param.X.learn.[midi1,midi2,osc] : first two bytes of MIDI message, or OSC string if set
      param.X.learn.mode : absolution/relative mode flag (0: Absolute, 1: 127=-1,1=+1, 2: 63=-1, 65=+1, 3: 65=-1, 1=+1, 4: toggle if nonzero)
      param.X.learn.flags : &1=selected track only, &2=soft takeover, &4=focused FX only, &8=LFO retrigger, &16=visible FX only
      BANDTYPEx, BANDENABLEDx : band configuration [ReaEQ]
      THRESHOLD, CEILING, TRUEPEAK : [ReaLlmit]
      NUMCHANNELS, NUMSPEAKERS, RESETCHANNELS : [ReaSurroundPan]
      
      ITEMx : [ReaVerb] state configuration line, when writing should be followed by a write of DONE
      FILE, FILEx, -FILEx, +FILEx, -FILE* : [RS5k] file list, -/+ prefixes are write-only, when writing any, should be followed by a write of DONE
      MODE, RSMODE : [RS5k] general mode, resample mode
      VIDEO_CODE : [video processor] code
      
      force_auto_bypass : 0 or 1 - force auto-bypass plug-in on silence
      instance_oversample_shift : instance oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
      chain_oversample_shift : chain oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
      chain_pdc_mode : chain PDC mode (0=classic, 1=new-default, 2=ignore PDC, 3=hwcomp-master)

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaTrack track
    integer fx
    string parmname


    ^ Reaper version 5.62TrackFX_GetNumParams

    C: int TrackFX_GetNumParams(MediaTrack* track, int fx)
    EEL2: int TrackFX_GetNumParams(MediaTrack track, int fx)
    Lua: integer retval = reaper.TrackFX_GetNumParams(MediaTrack track, integer fx)
    Python: Int retval = RPR_TrackFX_GetNumParams(MediaTrack track, Int fx)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    integer retval

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 5.95TrackFX_GetOffline

    C: bool TrackFX_GetOffline(MediaTrack* track, int fx)
    EEL2: bool TrackFX_GetOffline(MediaTrack track, int fx)
    Lua: boolean retval = reaper.TrackFX_GetOffline(MediaTrack track, integer fx)
    Python: Boolean retval = RPR_TrackFX_GetOffline(MediaTrack track, Int fx)

    See TrackFX_SetOffline

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 5.62TrackFX_GetOpen

    C: bool TrackFX_GetOpen(MediaTrack* track, int fx)
    EEL2: bool TrackFX_GetOpen(MediaTrack track, int fx)
    Lua: boolean retval = reaper.TrackFX_GetOpen(MediaTrack track, integer fx)
    Python: Boolean retval = RPR_TrackFX_GetOpen(MediaTrack track, Int fx)

    Returns true if this FX UI is open in the FX chain window or a floating window. See TrackFX_SetOpen

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Returnvalues:
    boolean retval
    true, TrackFX is open; false, TrackFX is closed

    Parameters:
    MediaTrack track
    the MediaTrack, in which the fx to check is located
    integer fx
    the id of the fx in the fx-chain


    ^ Reaper version 5.62TrackFX_GetParam

    C: double TrackFX_GetParam(MediaTrack* track, int fx, int param, double* minvalOut, double* maxvalOut)
    EEL2: double TrackFX_GetParam(MediaTrack track, int fx, int param, &minval, &maxval)
    Lua: number retval, number minval, number maxval = reaper.TrackFX_GetParam(MediaTrack track, integer fx, integer param)
    Python: (Float retval, MediaTrack track, Int fx, Int param, Float minvalOut, Float maxvalOut) = RPR_TrackFX_GetParam(track, fx, param, minvalOut, maxvalOut)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    number retval
    number minval
    number maxval

    Parameters:
    MediaTrack track
    integer fx
    integer param


    ^ Reaper version 5.62TrackFX_GetParamEx

    C: double TrackFX_GetParamEx(MediaTrack* track, int fx, int param, double* minvalOut, double* maxvalOut, double* midvalOut)
    EEL2: double TrackFX_GetParamEx(MediaTrack track, int fx, int param, &minval, &maxval, &midval)
    Lua: number retval, number minval, number maxval, number midval = reaper.TrackFX_GetParamEx(MediaTrack track, integer fx, integer param)
    Python: (Float retval, MediaTrack track, Int fx, Int param, Float minvalOut, Float maxvalOut, Float midvalOut) = RPR_TrackFX_GetParamEx(track, fx, param, minvalOut, maxvalOut, midvalOut)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    number retval
    number minval
    number maxval
    number midval

    Parameters:
    MediaTrack track
    integer fx
    integer param


    ^ Reaper version 6.38TrackFX_GetParamFromIdent

    C: int TrackFX_GetParamFromIdent(MediaTrack* track, int fx, const char* ident_str)
    EEL2: int TrackFX_GetParamFromIdent(MediaTrack track, int fx, "ident_str")
    Lua: integer param = reaper.TrackFX_GetParamFromIdent(MediaTrack track, integer fx, string ident_str)
    Python: Int retval = RPR_TrackFX_GetParamFromIdent(MediaTrack track, Int fx, String ident_str)

    gets the parameter index from an identifying string (:wet, :bypass, :delta, or a string returned from GetParamIdent), or -1 if unknown.

    Returnvalues:
    integer param

    Parameters:
    MediaTrack track
    integer fx
    string ident_str


    ^ Reaper version 6.37TrackFX_GetParamIdent

    C: bool TrackFX_GetParamIdent(MediaTrack* track, int fx, int param, char* bufOut, int bufOut_sz)
    EEL2: bool TrackFX_GetParamIdent(MediaTrack track, int fx, int param, #buf)
    Lua: boolean retval, string buf = reaper.TrackFX_GetParamIdent(MediaTrack track, integer fx, integer param)
    Python: (Boolean retval, MediaTrack track, Int fx, Int param, String bufOut, Int bufOut_sz) = RPR_TrackFX_GetParamIdent(track, fx, param, bufOut, bufOut_sz)

    gets an identifying string for the parameter

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaTrack track
    integer fx
    integer param


    ^ Reaper version 6.37TrackFX_GetParamName

    C: bool TrackFX_GetParamName(MediaTrack* track, int fx, int param, char* bufOut, int bufOut_sz)
    EEL2: bool TrackFX_GetParamName(MediaTrack track, int fx, int param, #buf)
    Lua: boolean retval, string buf = reaper.TrackFX_GetParamName(MediaTrack track, integer fx, integer param)
    Python: (Boolean retval, MediaTrack track, Int fx, Int param, String bufOut, Int bufOut_sz) = RPR_TrackFX_GetParamName(track, fx, param, bufOut, bufOut_sz)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaTrack track
    integer fx
    integer param


    ^ Reaper version 5.62TrackFX_GetParamNormalized

    C: double TrackFX_GetParamNormalized(MediaTrack* track, int fx, int param)
    EEL2: double TrackFX_GetParamNormalized(MediaTrack track, int fx, int param)
    Lua: number retval = reaper.TrackFX_GetParamNormalized(MediaTrack track, integer fx, integer param)
    Python: Float retval = RPR_TrackFX_GetParamNormalized(MediaTrack track, Int fx, Int param)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    number retval

    Parameters:
    MediaTrack track
    integer fx
    integer param


    ^ Reaper version 5.62TrackFX_GetParameterStepSizes

    C: bool TrackFX_GetParameterStepSizes(MediaTrack* track, int fx, int param, double* stepOut, double* smallstepOut, double* largestepOut, bool* istoggleOut)
    EEL2: bool TrackFX_GetParameterStepSizes(MediaTrack track, int fx, int param, &step, &smallstep, &largestep, bool &istoggle)
    Lua: boolean retval, number step, number smallstep, number largestep, boolean istoggle = reaper.TrackFX_GetParameterStepSizes(MediaTrack track, integer fx, integer param)
    Python: (Boolean retval, MediaTrack track, Int fx, Int param, Float stepOut, Float smallstepOut, Float largestepOut, Boolean istoggleOut) = RPR_TrackFX_GetParameterStepSizes(track, fx, param, stepOut, smallstepOut, largestepOut, istoggleOut)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval
    number step
    number smallstep
    number largestep
    boolean istoggle

    Parameters:
    MediaTrack track
    integer fx
    integer param


    ^ Reaper version 6.43TrackFX_GetPinMappings

    C: int TrackFX_GetPinMappings(MediaTrack* tr, int fx, int isoutput, int pin, int* high32Out)
    EEL2: int TrackFX_GetPinMappings(MediaTrack tr, int fx, int isoutput, int pin, int &high32)
    Lua: integer retval, integer high32 = reaper.TrackFX_GetPinMappings(MediaTrack tr, integer fx, integer isoutput, integer pin)
    Python: (Int retval, MediaTrack tr, Int fx, Int isoutput, Int pin, Int high32Out) = RPR_TrackFX_GetPinMappings(tr, fx, isoutput, pin, high32Out)

    gets the effective channel mapping bitmask for a particular pin. high32Out will be set to the high 32 bits

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    integer retval
    integer high32

    Parameters:
    MediaTrack tr
    integer fx
    integer is
    integer pin


    ^ Reaper version 6.37TrackFX_GetPreset

    C: bool TrackFX_GetPreset(MediaTrack* track, int fx, char* presetnameOut, int presetnameOut_sz)
    EEL2: bool TrackFX_GetPreset(MediaTrack track, int fx, #presetname)
    Lua: boolean retval, string presetname = reaper.TrackFX_GetPreset(MediaTrack track, integer fx)
    Python: (Boolean retval, MediaTrack track, Int fx, String presetnameOut, Int presetnameOut_sz) = RPR_TrackFX_GetPreset(track, fx, presetnameOut, presetnameOut_sz)

    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

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval
    true, the fx-parameters match preset; false, the fx-parameters do not match preset(see description)
    string presetname
    the name of the preset

    Parameters:
    MediaTrack track
    the track, from whose fx you want to get the preset-name
    integer fx
    the index of the fx, whose presetname you want to have; 0-based

    see also:
  • TrackFX_SetPreset - sets the preset of a track-fx


  • ^ Reaper version 5.62TrackFX_GetPresetIndex

    C: int TrackFX_GetPresetIndex(MediaTrack* track, int fx, int* numberOfPresetsOut)
    EEL2: int TrackFX_GetPresetIndex(MediaTrack track, int fx, int &numberOfPresets)
    Lua: integer retval, integer numberOfPresets = reaper.TrackFX_GetPresetIndex(MediaTrack track, integer fx)
    Python: (Int retval, MediaTrack track, Int fx, Int numberOfPresetsOut) = RPR_TrackFX_GetPresetIndex(track, fx, numberOfPresetsOut)

    Returns current preset index, or -1 if error. numberOfPresetsOut will be set to total number of presets available. See TrackFX_SetPresetByIndex

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Returnvalues:
    integer retval
    integer numberOfPresets

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 5.62TrackFX_GetRecChainVisible

    C: int TrackFX_GetRecChainVisible(MediaTrack* track)
    EEL2: int TrackFX_GetRecChainVisible(MediaTrack track)
    Lua: integer retval = reaper.TrackFX_GetRecChainVisible(MediaTrack track)
    Python: Int retval = RPR_TrackFX_GetRecChainVisible(MediaTrack track)

    returns index of effect visible in record input chain, or -1 for chain hidden, or -2 for chain visible but no effect selected

    To get the monitoring FX rather than record input FX, use Master-Track.

    Note:
    To access record input FX in other TrackFX-functions, use FX indices [0x1000000..0x1000000+n) for the individual fxs in the FXChain and pass over the track, whose rec-input-fxchain you want to access.
    Also pass over the track, whose rec-input-fx you want to access. Pass over MasterTrack to get the monitoring FX-chain.

    Returnvalues:
    integer retval

    Parameters:
    MediaTrack track


    ^ Reaper version 5.62TrackFX_GetRecCount

    C: int TrackFX_GetRecCount(MediaTrack* track)
    EEL2: int TrackFX_GetRecCount(MediaTrack track)
    Lua: integer retval = reaper.TrackFX_GetRecCount(MediaTrack track)
    Python: Int retval = RPR_TrackFX_GetRecCount(MediaTrack track)

    returns count of record input FX of a track.

    To get the monitoring FX rather than record input FX, use Master-Track.

    Note:
    To access record input FX in other TrackFX-functions, use FX indices [0x1000000..0x1000000+n) for the individual fxs in the FXChain and pass over the track, whose rec-input-fxchain you want to access.
    Also pass over the track, whose rec-input-fx you want to access. Pass over MasterTrack to get the monitoring FX-chain.


    Returnvalues:
    integer retval

    Parameters:
    MediaTrack track


    ^ Reaper version 6.37TrackFX_GetUserPresetFilename

    C: void TrackFX_GetUserPresetFilename(MediaTrack* track, int fx, char* fnOut, int fnOut_sz)
    EEL2: TrackFX_GetUserPresetFilename(MediaTrack track, int fx, #fn)
    Lua: string fn = reaper.TrackFX_GetUserPresetFilename(MediaTrack track, integer fx)
    Python: (MediaTrack track, Int fx, String fnOut, Int fnOut_sz) = RPR_TrackFX_GetUserPresetFilename(track, fx, fnOut, fnOut_sz)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    string fn

    Parameters:
    MediaTrack track
    integer fx


    ^ Reaper version 5.62TrackFX_NavigatePresets

    C: bool TrackFX_NavigatePresets(MediaTrack* track, int fx, int presetmove)
    EEL2: bool TrackFX_NavigatePresets(MediaTrack track, int fx, int presetmove)
    Lua: boolean retval = reaper.TrackFX_NavigatePresets(MediaTrack track, integer fx, integer presetmove)
    Python: Boolean retval = RPR_TrackFX_NavigatePresets(MediaTrack track, Int fx, Int presetmove)

    presetmove==1 activates the next preset, presetmove==-1 activates the previous preset, etc.

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx
    integer presetmove


    ^ Reaper version 6.44TrackFX_SetEQBandEnabled

    C: bool TrackFX_SetEQBandEnabled(MediaTrack* track, int fxidx, int bandtype, int bandidx, bool enable)
    EEL2: bool TrackFX_SetEQBandEnabled(MediaTrack track, int fxidx, int bandtype, int bandidx, bool enable)
    Lua: boolean reaper.TrackFX_SetEQBandEnabled(MediaTrack track, integer fxidx, integer bandtype, integer bandidx, boolean enable)
    Python: Boolean retval = RPR_TrackFX_SetEQBandEnabled(MediaTrack track, Int fxidx, Int bandtype, Int bandidx, Boolean enable)

    Enable or disable a ReaEQ band. Returns false if track/fxidx is not ReaEQ. Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass Bandidx: (ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc. See TrackFX_GetEQ, TrackFX_GetEQParam, TrackFX_SetEQParam, TrackFX_GetEQBandEnabled.

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    the track, on which the eq is located
    integer fx
    the index of the eq to set bands enabled
    integer bandtype
    -1, master gain;
    0, hipass
    1, loshelf
    2, band
    3, notch,
    4, hishelf
    5, lopass
    6, bandpass
    7, parallel bandpass
    integer bandidx
    (ignored for master gain): 0=first band matching bandtype, 1=2nd band matching bandtype, etc.
    boolean enable
    true, enable the band; false, disble the band


    ^ Reaper version 6.44TrackFX_SetEQParam

    C: bool TrackFX_SetEQParam(MediaTrack* track, int fx, int bandtype, int bandidx, int paramtype, double val, bool isnorm)
    EEL2: bool TrackFX_SetEQParam(MediaTrack track, int fx, int bandtype, int bandidx, int paramtype, val, bool isnorm)
    Lua: boolean retval = reaper.TrackFX_SetEQParam(MediaTrack track, integer fx, integer bandtype, integer bandidx, integer paramtype, number val, boolean isnorm)
    Python: Boolean retval = RPR_TrackFX_SetEQParam(MediaTrack track, Int fx, Int bandtype, Int bandidx, Int paramtype, Float val, Boolean isnorm)

    Returns false if track/fxidx is not ReaEQ. Targets a band matching bandtype. Bandtype: -1=master gain, 0=hipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass, 6=bandpass, 7=parallel bandpass. Bandidx (ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc. Paramtype (ignored for master gain): 0=freq, 1=gain, 2=Q. See TrackFX_GetEQ, TrackFX_GetEQParam, TrackFX_GetEQBandEnabled, TrackFX_SetEQBandEnabled.

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccesful

    Parameters:
    MediaTrack track
    the track, on which the eq is located
    integer fx
    the index of the eq to set bands enabled
    integer bandtype
    -1, master gain;
    0, hipass
    1, loshelf
    2, band
    3, notch,
    4, hishelf
    5, lopass
    6, bandpass
    7, parallel bandpass
    integer bandidx
    (ignored for master gain): 0=first band matching bandtype, 1=2nd band matching bandtype, etc.
    integer paramtype
    0, freq
    1, gain
    2, Q
    number val
    the value to set the paremeter with
    boolean isnorm


    ^ Reaper version 5.62TrackFX_SetEnabled

    C: void TrackFX_SetEnabled(MediaTrack* track, int fx, bool enabled)
    EEL2: TrackFX_SetEnabled(MediaTrack track, int fx, bool enabled)
    Lua: reaper.TrackFX_SetEnabled(MediaTrack track, integer fx, boolean enabled)
    Python: RPR_TrackFX_SetEnabled(MediaTrack track, Int fx, Boolean enabled)

    Set a TrackFX enabled/disabled.

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    See TrackFX_GetEnabled


    Parameters:
    MediaTrack track
    integer fx
    boolean enabled


    ^ Reaper version 6.79TrackFX_SetNamedConfigParm

    C: bool retval = TrackFX_SetNamedConfigParm(MediaTrack* track, int fx, const char* parmname, const char* value)
    EEL2: bool retval = TrackFX_SetNamedConfigParm(MediaTrack track, int fx, "parmname", "value")
    Lua: boolean retval = reaper.TrackFX_SetNamedConfigParm(MediaTrack track, integer fx, string parmname, string value)
    Python: Boolean retval = RPR_TrackFX_SetNamedConfigParm(MediaTrack track, Int fx, String parmname, String value)

    sets plug-in specific named configuration value (returns true on success)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Support values for write:

    vst_chunk[_program] : base64-encoded VST-specific chunk.
    clap_chunk : base64-encoded CLAP-specific chunk.
    param.X.lfo.[active,dir,phase,speed,strength,temposync,free,shape] : parameter moduation LFO state
    param.X.acs.[active,dir,strength,attack,release,dblo,dbhi,chan,stereo] : parameter modulation ACS state
    param.X.plink.[active,scale,offset,effect,param,midi_bus,midi_chan,midi_msg,midi_msg2] : parameter link/MIDI link: set effect=-100 to support midi_*
    param.X.mod.[active,baseline,visible] : parameter module global settings
    param.X.learn.[midi1,midi2,osc] : first two bytes of MIDI message, or OSC string if set
    param.X.learn.mode : absolution/relative mode flag (0: Absolute, 1: 127=-1,1=+1, 2: 63=-1, 65=+1, 3: 65=-1, 1=+1, 4: toggle if nonzero)
    param.X.learn.flags : &1=selected track only, &2=soft takeover, &4=focused FX only, &8=LFO retrigger, &16=visible FX only

    BANDTYPEx, BANDENABLEDx : band configuration [ReaEQ]
    THRESHOLD, CEILING, TRUEPEAK : [ReaLlmit]
    NUMCHANNELS, NUMSPEAKERS, RESETCHANNELS : [ReaSurroundPan]
    ITEMx : [ReaVerb] state configuration line, when writing should be followed by a write of DONE
    FILE, FILEx, -FILEx, +FILEx, -FILE* : [RS5k] file list, -/+ prefixes are write-only, when writing any, should be followed by a write of DONE
    MODE, RSMODE : [RS5k] general mode, resample mode
    VIDEO_CODE : [video processor] code

    force_auto_bypass : 0 or 1 - force auto-bypass plug-in on silence
    instance_oversample_shift : instance oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
    chain_oversample_shift : chain oversampling shift amount, 0=none, 1=~96k, 2=~192k, etc. When setting requires playback stop/start to take effect
    chain_pdc_mode : chain PDC mode (0=classic, 1=new-default, 2=ignore PDC, 3=hwcomp-master)

    renamed_name : renamed FX instance name (empty string = not renamed)

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx
    string parmname
    string value


    ^ Reaper version 5.95TrackFX_SetOffline

    C: void TrackFX_SetOffline(MediaTrack* track, int fx, bool offline)
    EEL2: TrackFX_SetOffline(MediaTrack track, int fx, bool offline)
    Lua: reaper.TrackFX_SetOffline(MediaTrack track, integer fx, boolean offline)
    Python: RPR_TrackFX_SetOffline(MediaTrack track, Int fx, Boolean offline)

    See TrackFX_GetOffline

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Parameters:
    MediaTrack track
    integer fx
    boolean offline


    ^ Reaper version 5.62TrackFX_SetOpen

    C: void TrackFX_SetOpen(MediaTrack* track, int fx, bool open)
    EEL2: TrackFX_SetOpen(MediaTrack track, int fx, bool open)
    Lua: reaper.TrackFX_SetOpen(MediaTrack track, integer fx, boolean open)
    Python: RPR_TrackFX_SetOpen(MediaTrack track, Int fx, Boolean open)

    Open this FX UI. See TrackFX_GetOpen

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Parameters:
    MediaTrack track
    the track, in which the FX to be opened is located
    integer fx
    the fx-id within the fxchain
    boolean open
    true, open FX-UI; false, close FX-UI


    ^ Reaper version 5.62TrackFX_SetParam

    C: bool TrackFX_SetParam(MediaTrack* track, int fx, int param, double val)
    EEL2: bool TrackFX_SetParam(MediaTrack track, int fx, int param, val)
    Lua: boolean retval = reaper.TrackFX_SetParam(MediaTrack track, integer fx, integer param, number val)
    Python: Boolean retval = RPR_TrackFX_SetParam(MediaTrack track, Int fx, Int param, Float val)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx
    integer param
    number val


    ^ Reaper version 5.62TrackFX_SetParamNormalized

    C: bool TrackFX_SetParamNormalized(MediaTrack* track, int fx, int param, double value)
    EEL2: bool TrackFX_SetParamNormalized(MediaTrack track, int fx, int param, value)
    Lua: boolean retval = reaper.TrackFX_SetParamNormalized(MediaTrack track, integer fx, integer param, number value)
    Python: Boolean retval = RPR_TrackFX_SetParamNormalized(MediaTrack track, Int fx, Int param, Float value)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx
    integer param
    number value


    ^ Reaper version 5.62TrackFX_SetPinMappings

    C: bool TrackFX_SetPinMappings(MediaTrack* tr, int fx, int isOutput, int pin, int low32bits, int hi32bits)
    EEL2: bool TrackFX_SetPinMappings(MediaTrack tr, int fx, int is, int pin, int low32bits, int hi32bits)
    Lua: boolean retval = reaper.TrackFX_SetPinMappings(MediaTrack tr, integer fx, integer is, integer pin, integer low32bits, integer hi32bits)
    Python: Boolean retval = RPR_TrackFX_SetPinMappings(MediaTrack tr, Int fx, Int isOutput, Int pin, Int low32bits, Int hi32bits)

    sets the channel mapping bitmask for a particular pin. returns false if unsupported (not all types of plug-ins support this capability)

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack tr
    integer fx
    integer is
    integer pin
    integer low32bits
    integer hi32bits


    ^ Reaper version 5.62TrackFX_SetPreset

    C: bool TrackFX_SetPreset(MediaTrack* track, int fx, const char* presetname)
    EEL2: bool TrackFX_SetPreset(MediaTrack track, int fx, "presetname")
    Lua: boolean retval = reaper.TrackFX_SetPreset(MediaTrack track, integer fx, string presetname)
    Python: Boolean retval = RPR_TrackFX_SetPreset(MediaTrack track, Int fx, String presetname)

    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.

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    presetname is case-sensitive.


    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx
    string presetname


    ^ Reaper version 5.62TrackFX_SetPresetByIndex

    C: bool TrackFX_SetPresetByIndex(MediaTrack* track, int fx, int idx)
    EEL2: bool TrackFX_SetPresetByIndex(MediaTrack track, int fx, int idx)
    Lua: boolean retval = reaper.TrackFX_SetPresetByIndex(MediaTrack track, integer fx, integer idx)
    Python: Boolean retval = RPR_TrackFX_SetPresetByIndex(MediaTrack track, Int fx, Int idx)

    Sets the preset idx, or the factory preset (idx==-2), or the default user preset (idx==-1). Returns true on success. See TrackFX_GetPresetIndex.

    By setting fx you can add 0x1000000 set to reference input FX. To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.


    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer fx
    integer idx


    ^ Reaper version 5.62TrackFX_Show

    C: void TrackFX_Show(MediaTrack* track, int fx, int showFlag)
    EEL2: TrackFX_Show(MediaTrack track, int fx, int showFlag)
    Lua: reaper.TrackFX_Show(MediaTrack track, integer fx, integer showFlag)
    Python: RPR_TrackFX_Show(MediaTrack track, Int fx, Int showFlag)

    Shows a track-FX-window.

    By setting fx you can add 0x1000000 set to reference input FX.
    To use global monitoring inputFX, use the master-track, any other track will access the track's rec-input-fx.

    Parameters:
    MediaTrack track
    the MediaTrack, whose TrackFX you want to show
    integer fx
    the id of the track within the fxchain
    integer showFlag
    how to show the FX-window
    0, for hidechain
    1, for show chain(index valid)
    2, for hide floating window(index valid)
    3, for show floating window(index valid)


    ^ Reaper version 5.62 SWS version 2.9.7BR_Win32_GetPrivateProfileString

    C: int BR_Win32_GetPrivateProfileString(const char* sectionName, const char* keyName, const char* defaultString, const char* filePath, char* stringOut, int stringOut_sz)
    EEL2: int extension_api("BR_Win32_GetPrivateProfileString", "sectionName", "keyName", "defaultString", "filePath", #string)
    Lua: integer retval, string value = reaper.BR_Win32_GetPrivateProfileString(string sectionName, string keyName, string defaultString, string filePath)
    Python: (Int retval, String sectionName, String keyName, String defaultString, String filePath, String stringOut, Int stringOut_sz) = BR_Win32_GetPrivateProfileString(sectionName, keyName, defaultString, filePath, stringOut, stringOut_sz)

    [BR] Equivalent to win32 API GetPrivateProfileString(). For example, you can use this to get values from REAPER.ini

    If you have multiple sections in that file with the same name, only the first one will be used, the rest will be ignored by Reaper. If you have multiple keys with the same name within a section, only the first one will be used, the rest will be ignored by Reaper. You can get the paths using GetExePath for the Reaper-application-folder, GetResourcePath for the ressources-folder or get_ini_file for the path+filename of the Reaper.ini-file.


    Returnvalues:
    integer retval
    number of characters of the value
    string value
    the value of that key

    Parameters:
    string sectionName
    the [section] in which the key is stored, you'd like to get
    string keyName
    the key from the [section], whose value you'd like to get
    string defaultString
    a default value that will be returned, if the [section] and/or key does not exist in the ini-file yet.
    string filePath
    the path+filename, where the [section] and key are stored


    ^ Reaper version 5.62 SWS version 2.13.0.0BR_Win32_WritePrivateProfileString

    C: bool BR_Win32_WritePrivateProfileString(const char* sectionName, const char* keyName, const char* value, const char* filePath)
    EEL2: bool extension_api("BR_Win32_WritePrivateProfileString", "sectionName", "keyName", "value", "filePath")
    Lua: boolean retval = reaper.BR_Win32_WritePrivateProfileString(string sectionName, string keyName, string value, string filePath)
    Python: Boolean retval = BR_Win32_WritePrivateProfileString(String sectionName, String keyName, String value, String filePath)

    [BR] Equivalent to win32 API WritePrivateProfileString(). For example, you can use this to write to REAPER.ini

    If you have multiple sections in that file with the same name, only the first one will be used, the rest will be ignored by Reaper. If you have multiple keys with the same name within a section, only the first one will be used, the rest will be ignored by Reaper. You can get the paths using GetExePath for the Reaper-application-folder, GetResourcePath for the ressources-folder or get_ini_file for the path+filename of the Reaper.ini-file.

    You can pass an empty string as value to delete a key.

    Important: Don't use \n in parameter value, or the reread-value might be incomplete!


    Returnvalues:
    boolean retval
    true, if it worked; false, if not

    Parameters:
    string sectionName
    the [section] in which the key is stored, you'd like to set
    string keyName
    the key from the [section], whose value you'd like to set
    string value
    the value you want to have set to the key
    stirng filePath
    the path+filename, where the [section] and key are going to be stored


    ^ Reaper version 6.20EnumerateFiles

    C: const char* EnumerateFiles(const char* path, int fileindex)
    EEL2: bool EnumerateFiles(#retval, "path", int fileindex)
    Lua: string filename_with_path = reaper.EnumerateFiles(string path, integer fileindex)
    Python: String retval = RPR_EnumerateFiles(String path, Int fileindex)

    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).

    Returnvalues:
    string filename_with_path
    the filename in path, with index fileindex

    Parameters:
    string path
    the path, where the filenames will be read from
    integer fileindex
    the number of the file, with 0 the first file. Ordered by first letter in ascending order.

    see also:
  • EnumerateSubdirectories - enumerates the directories in a directory


  • ^ Reaper version 6.20EnumerateSubdirectories

    C: const char* EnumerateSubdirectories(const char* path, int subdirindex)
    EEL2: bool EnumerateSubdirectories(#retval, "path", int subdirindex)
    Lua: string filename_with_path = reaper.EnumerateSubdirectories(string path, integer subdirindex)
    Python: String retval = RPR_EnumerateSubdirectories(String path, Int subdirindex)

    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.

    Returnvalues:
    string filename_with_path
    the filename in path

    Parameters:
    string path
    the path, where the directorynames will be read from
    integer subdirindex
    the number of the directory, with 0 the first directory. Ordered by first letter in ascending order.

    see also:
  • EnumerateFiles - enumerate files in a directory


  • ^ Reaper version 6.59GetMediaFileMetadata

    C: int GetMediaFileMetadata(PCM_source* mediaSource, const char* identifier, char* bufOutNeedBig, int bufOutNeedBig_sz)
    EEL2: int GetMediaFileMetadata(PCM_source mediaSource, "identifier", #buf)
    Lua: integer retval, string buf = reaper.GetMediaFileMetadata(PCM_source mediaSource, string identifier)
    Python: (Int retval, PCM_source mediaSource, String identifier, String bufOutNeedBig, Int bufOutNeedBig_sz) = RPR_GetMediaFileMetadata(mediaSource, identifier, bufOutNeedBig, bufOutNeedBig_sz)

    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.

    Returnvalues:
    integer retval
    0, identifier not available; 1, identifier available
    string buf
    the returned metadata-value of the identifier

    Parameters:
    PCM_source mediaSource
    the PCM-source of a file, whose metadata you want to get
    string identifier
    the identifier; use "" to get all availbale identifier from the sourcefile


    ^ Reaper version 5.974 JS version 1.217JS_File_Stat

    C: int JS_File_Stat(const char* filePath, double* sizeOut, char* accessedTimeOut, char* modifiedTimeOut, char* cTimeOut, int* deviceIDOut, int* deviceSpecialIDOut, int* inodeOut, int* modeOut, int* numLinksOut, int* ownerUserIDOut, int* ownerGroupIDOut)
    EEL2: int extension_api("JS_File_Stat", "filePath", &size, #accessedTime, #modifiedTime, #cTime, int &deviceID, int &deviceSpecialID, int &inode, int &mode, int &numLinks, int &ownerUserID, int &ownerGroupID)
    Lua: integer retval, number size, string accessedTime, string modifiedTime, string cTime, integer deviceID, integer deviceSpecialID, integer inode, integer mode, integer numLinks, integer ownerUserID, integer ownerGroupID = reaper.JS_File_Stat(string filePath)
    Python: (Int retval, String filePath, Float sizeOut, String accessedTimeOut, String modifiedTimeOut, String cTimeOut, Int deviceIDOut, Int deviceSpecialIDOut, Int inodeOut, Int modeOut, Int numLinksOut, Int ownerUserIDOut, Int ownerGroupIDOut) = JS_File_Stat(filePath, sizeOut, accessedTimeOut, modifiedTimeOut, cTimeOut, deviceIDOut, deviceSpecialIDOut, inodeOut, modeOut, numLinksOut, ownerUserIDOut, ownerGroupIDOut)

    Returns information about a file.

    cTime is not implemented on all systems. If it does return a time, the value may differ depending on the OS: on WindowsOS, it may refer to the time that the file was either created or copied, whereas on Linux and macOS, it may refer to the time of last status change.

    retval is 0 if successful, negative if not.

    Returnvalues:
    integer retval
    negative, if not retrievable; 0, if retrieving was successful
    number size
    the size of the file in bytes
    string accessedTime
    the last time the file was accessed
    string modifiedTime
    the last time the file was modified
    string cTime
    the time the file was created(Windows) or the last time its status had changed(Mac and Linux)
    integer deviceID
    the ID of the device
    integer deviceSpecialID
    the special ID of the file
    integer inode
    the inode
    integer mode
    the attributes set
    integer numLinks
    the number of links
    integer ownerUserID
    ID of the user the file belongs to
    integer ownerGroupID
    ID of the group the file belongs to

    Parameters:
    string filePath
    the file, whose file-stats you want to get


    ^ Reaper version 5.62RecursiveCreateDirectory

    C: int RecursiveCreateDirectory(const char* path, size_t ignored)
    EEL2: int RecursiveCreateDirectory("path", size_t ignored)
    Lua: integer retval = reaper.RecursiveCreateDirectory(string path, integer ignored)
    Python: Int retval = RPR_RecursiveCreateDirectory(String path, Int ignored)

    Creates a new directory.

    You can recursivly create directories, means: if the higher directories don't exist, the will also be automatically created.

    returns positive value on success, 0 on failure.

    Returnvalues:
    integer retval
    0, failure; 1 and higher, success

    Parameters:
    string path
    the directory-path to be created
    integer ignored
    unknown


    ^ Reaper version 5.62 SWS version 2.12.0SNM_ReadMediaFileTag

    C: bool SNM_ReadMediaFileTag(const char* fn, const char* tag, char* tagvalOut, int tagvalOut_sz)
    EEL2: bool extension_api("SNM_ReadMediaFileTag", "fn", "tag", #tagval)
    Lua: boolean retval, string tagval = reaper.SNM_ReadMediaFileTag(string fn, string tag)
    Python: (Boolean retval, String fn, String tag, String tagvalOut, Int tagvalOut_sz) = SNM_ReadMediaFileTag(fn, tag, tagvalOut, tagvalOut_sz)

    [S&M] Reads a media file tag. Supported tags: "artist", "album", "genre", "comment", "title", "track" (track number) or "year". Returns false if tag was not found. See SNM_TagMediaFile.


    Returnvalues:
    boolean retval
    true, value could be read; false, value could not be read
    string tagval
    the value of the requested tag

    Parameters:
    string fn
    the filename+path of the mediafile
    string tag
    the tag you want to request; "artist", "album", "genre", "comment", "title", "track", "year"


    ^ Reaper version 5.62 SWS version 2.12.0SNM_TagMediaFile

    C: bool SNM_TagMediaFile(const char* fn, const char* tag, const char* tagval)
    EEL2: bool extension_api("SNM_TagMediaFile", "fn", "tag", "tagval")
    Lua: boolean retval = reaper.SNM_TagMediaFile(string fn, string tag, string tagval)
    Python: Boolean retval = SNM_TagMediaFile(String fn, String tag, String tagval)

    [S&M] Tags a media file thanks to TagLib. Use an empty tagval to clear a tag. When a file is opened in REAPER, turn it offline before using this function. Returns false if nothing updated. See SNM_ReadMediaFileTag.


    Returnvalues:
    boolean retval
    true, if adding the tag worked; false, if adding didn't work.

    Parameters:
    string fn
    the mediafilename, in which to add the tag
    string tag
    "artist", "album", "genre", "comment", "title", "track" or "year"
    string tagval
    the new value to be added


    ^ Reaper version 5.62file_exists

    C: bool file_exists(const char* path)
    EEL2: bool file_exists("path")
    Lua: boolean file_exists = reaper.file_exists(string path)
    Python: Boolean retval = RPR_file_exists(String path)

    Checks, if a specified file exists and is readable.

    returns true if path points to a valid, readable file

    Returnvalues:
    boolean file_exists
    true, if file exists; false, if it doesn't

    Parameters:
    string path
    filename with path


    ^ Reaper version 5.62get_ini_file

    C: const char* get_ini_file()
    EEL2: bool get_ini_file(#retval)
    Lua: string filename_with_path = reaper.get_ini_file()
    Python: String retval = RPR_get_ini_file()

    Get reaper.ini full filename+path.

    Returnvalues:
    string filename_with_path
    the reaper.ini with path


    ^ Reaper version 6.00reduce_open_files

    C: int reduce_open_files(int flags)
    EEL2: int reduce_open_files(int flags)
    Lua: integer retval = reaper.reduce_open_files(integer flags)
    Python: Int retval = RPR_reduce_open_files(Int flags)

    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.

    Returnvalues:
    integer retval
    the number of closed files

    Parameters:
    integer flags
    influences, how the garbage collection shall be
    &1, incrementally
    &2, aggressively(files need to be reopened after that, if needed)


    ^ Reaper version 5.62relative_fn

    C: void relative_fn(const char* in, char* out, int out_sz)
    EEL2: relative_fn("in", #out)
    Lua: string out = reaper.relative_fn(string in, string out)
    Python: (String in, String out, Int out_sz) = RPR_relative_fn(in, out, out_sz)

    Makes a filename "in" relative to the current project, if any.

    Returnvalues:
    string out

    Parameters:
    string in
    string out


    ^ Reaper version 5.62resolve_fn

    C: void resolve_fn(const char* in, char* out, int out_sz)
    EEL2: resolve_fn("in", #out)
    Lua: string out = reaper.resolve_fn(string in, string out)
    Python: (String in, String out, Int out_sz) = RPR_resolve_fn(in, out, out_sz)

    See resolve_fn2.


    Returnvalues:
    string out

    Parameters:
    string in
    string out


    ^ Reaper version 5.62resolve_fn2

    C: void resolve_fn2(const char* in, char* out, int out_sz, const char* checkSubDirOptional)
    EEL2: resolve_fn2("in", #out, optional "checkSubDir")
    Lua: string out = reaper.resolve_fn2(string in, string out, optional string checkSubDir)
    Python: (String in, String out, Int out_sz, String checkSubDirOptional) = RPR_resolve_fn2(in, out, out_sz, checkSubDirOptional)

    Resolves a filename "in" by using project settings etc. If no file found, out will be a copy of in.

    Returnvalues:
    string out

    Parameters:
    string in
    string out
    string checkSubDir


    ^ Reaper version 5.974 JS version 1.215JS_LICE_LoadJPG

    C: void* JS_LICE_LoadJPG(const char* filename)
    EEL2: void* extension_api("JS_LICE_LoadJPG", "filename")
    Lua: identifier image = reaper.JS_LICE_LoadJPG(string filename)
    Python: identifier image = JS_LICE_LoadJPG(String filename)

    Returns a system LICE bitmap containing the JPEG.

    Returnvalues:
    identifier image
    the bitmap, which holds the jpg

    Parameters:
    string filename
    the filename+path of the jpg-file to load


    ^ Reaper version 5.974 JS version 1.301JS_LICE_LoadJPGFromMemory

    C: void* JS_LICE_LoadJPGFromMemory(const char* buffer, int bufsize)
    EEL2: void* extension_api("JS_LICE_LoadJPGFromMemory", "buffer", int bufsize)
    Lua: identifier image = reaper.JS_LICE_LoadJPGFromMemory(string buffer, integer bufsize)
    Python: identifier image = JS_LICE_LoadJPGFromMemory(String buffer, Int bufsize)

    Returns a system LICE bitmap containing the JPEG.

    Returnvalues:
    identifier image
    the bitmap, which holds the jpg

    Parameters:
    string buffer
    the buffer which holds the jpg-file to load
    integer bufsize
    the size of the buffer to read


    ^ Reaper version 5.974 JS version 0.980JS_LICE_LoadPNG

    C: void* JS_LICE_LoadPNG(const char* filename)
    EEL2: void* extension_api("JS_LICE_LoadPNG", "filename")
    Lua: identifier bitmap = reaper.JS_LICE_LoadPNG(string filename)
    Python: identifier bitmap = JS_LICE_LoadPNG(String filename)

    Returns a system LICE bitmap containing the PNG.


    Returnvalues:
    identifier bitmap
    the bitmap, which holds the png

    Parameters:
    string filename
    the filename with path of the png filename to load


    ^ Reaper version 5.974 JS version 1.301JS_LICE_LoadPNGFromMemory

    C: void* JS_LICE_LoadPNGFromMemory(const char* buffer, int bufsize)
    EEL2: void* extension_api("JS_LICE_LoadPNGFromMemory", "buffer", int bufsize)
    Lua: identifier bitmap = reaper.JS_LICE_LoadPNGFromMemory(string buffer, integer bufsize)
    Python: identifier bitmap = JS_LICE_LoadPNGFromMemory(String buffer, Int bufsize)

    Returns a system LICE bitmap containing the PNG.

    Returnvalues:
    identifier bitmap
    the bitmap, which holds the png

    Parameters:
    string buffer
    the buffer of the png to load
    integer bufsize
    the size of the buffer to load


    ^ Reaper version 5.974 JS version 1.215JS_LICE_WriteJPG

    C: bool JS_LICE_WriteJPG(const char* filename, void* bitmap, int quality, bool* forceBaselineOptional)
    EEL2: bool extension_api("JS_LICE_WriteJPG", "filename", void* bitmap, int quality, unsupported forceBaselineOptional)
    Lua: boolean reaper.JS_LICE_WriteJPG(string filename, identifier bitmap, integer quality, unsupported forceBaseline)
    Python: (Boolean retval, String filename, void bitmap, Int quality, Boolean forceBaselineOptional) = JS_LICE_WriteJPG(filename, bitmap, quality, forceBaselineOptional)

    Parameters:

    * quality is an integer in the range 1..100. * forceBaseline is an optional boolean parameter that ensures compatibility with all JPEG viewers by preventing too low quality, "cubist" settings.


    Returnvalues:
    boolean retval
    true, writing was successful; false, writing was unsuccessful

    Parameters:
    string filename
    the filename+path of the jpg to write
    LICE_IBitmap bitmap
    the bitmap, that you want to write as jpg-file
    integer quality
    the quality-setting in percent, from 1(lowest quality) to 100(highest quality)
    optional boolean forceBaseline
    true, ensure compatibility with all JPEG-viewers(prevent too low quality); nil or false, allow too low quality(possible compatibility-problems with some JPEG-viewers)


    ^ Reaper version 5.974 JS version 1.215JS_LICE_WritePNG

    C: bool JS_LICE_WritePNG(const char* filename, void* bitmap, bool wantAlpha)
    EEL2: bool extension_api("JS_LICE_WritePNG", "filename", void* bitmap, bool wantAlpha)
    Lua: boolean reaper.JS_LICE_WritePNG(string filename, identifier bitmap, boolean wantAlpha)
    Python: Boolean retval = JS_LICE_WritePNG(String filename, void bitmap, Boolean wantAlpha)

    Writes the contents of a LICE_IBitMap as png-file.

    Returnvalues:
    boolean retval
    true, writing was successful; false, writing was not successful

    Parameters:
    string filename
    the filename+path of the png-file to write
    LICE_IBitmap bitmap
    the bitmap, whose contents shall be written as png-file
    boolean wantAlpha
    true, store alpha; false, don't store alpha


    ^ Reaper version 5.62RenderFileSection

    C: bool RenderFileSection(const char* source_filename, const char* target_filename, double start_percent, double end_percent, double playrate)
    EEL2: bool RenderFileSection("source_filename", "target_filename", start_percent, end_percent, playrate)
    Lua: boolean retval = reaper.RenderFileSection(string source_filename, string target_filename, number start_percent, number end_percent, number playrate)
    Python: Boolean retval = RPR_RenderFileSection(String source_filename, String target_filename, Float start_percent, Float end_percent, Float playrate)

    Not available while playing back.

    Returnvalues:
    boolean retval

    Parameters:
    string source_filename
    string target_filename
    number start_percent
    number end_percent
    number playrate


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Close

    C: int JS_Zip_Close(const char* zipFile, void* zipHandleOptional)
    EEL2: int extension_api("JS_Zip_Close", "zipFile", void* zipHandle)
    Lua: integer retval = reaper.JS_Zip_Close(string zipFile, identifier zipHandle)
    Python: Int retval = JS_Zip_Close(const char* zipFile, void* zipHandleOptional)

    Closes the zip archive, using either the file name or the zip handle. Finalizes entries and releases resources.

    Returnvalues:
    integer retval

    Parameters:
    string zipFile
    identifier zipHandle


    ^ Reaper version 6.23 JS version 1.301JS_Zip_CountEntries

    C: int JS_Zip_CountEntries(void* zipHandle)
    EEL2: int extension_api("JS_Zip_CountEntries", void* zipHandle)
    Lua: integer retval = reaper.JS_Zip_CountEntries(identifier zipHandle)
    Python: Int retval = JS_Zip_CountEntries(void* zipHandle)



    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle


    ^ Reaper version 6.23 JS version 1.301JS_Zip_DeleteEntries

    C: int JS_Zip_DeleteEntries(void* zipHandle, const char* entryNames, int entryNamesStrLen)
    EEL2: int extension_api("JS_Zip_DeleteEntries", void* zipHandle, "entryNames", int entryNamesStrLen)
    Lua: integer retval = reaper.JS_Zip_DeleteEntries(identifier zipHandle, string entryNames, integer entryNamesStrLen)
    Python: Int retval = JS_Zip_DeleteEntries(void* zipHandle, const char* entryNames, int entryNamesStrLen)

    Deletes the specified entries from an existing Zip file.

    entryNames is zero-separated and double-zero-terminated.

    Returns the number of deleted entries on success, negative number (< 0) on error.

    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle
    string entryNames
    integer entryNamesStrLen


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_Close

    C: int JS_Zip_Entry_Close(void* zipHandle)
    EEL2: int extension_api("JS_Zip_Entry_Close", void* zipHandle)
    Lua: integer retval = reaper.JS_Zip_Entry_Close(identifier zipHandle)
    Python: Int retval = JS_Zip_Entry_Close(void* zipHandle)

    Closes a zip entry, flushes buffer and releases resources. In WRITE mode, entries must be closed in order to apply and save changes.

    Returns 0 on success, negative number (< 0) on error.

    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_CompressFile

    C: int JS_Zip_Entry_CompressFile(void* zipHandle, const char* inputFile)
    EEL2: int extension_api("JS_Zip_Entry_CompressFile", void* zipHandle, "inputFile")
    Lua: integer retval = reaper.JS_Zip_Entry_CompressFile(identifier zipHandle, string inputFile)
    Python: Int retval = JS_Zip_Entry_CompressFile(void* zipHandle, const char* inputFile)

    Compresses the specified file into the zip archive's open entry.

    Returns 0 on success, negative number (< 0) on error.

    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle
    string inputFile


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_CompressMemory

    C: int JS_Zip_Entry_CompressMemory(void* zipHandle, const char* buf, int buf_size)
    EEL2: int extension_api("JS_Zip_Entry_CompressMemory", void* zipHandle, "buf", int buf_size)
    Lua: integer retval = reaper.JS_Zip_Entry_CompressMemory(identifier zipHandle, string buf, integer buf_size)
    Python: Int retval = JS_Zip_Entry_CompressMemory(void* zipHandle, const char* buf, int buf_size)

    Compresses the specified memory buffer into the zip archive's open entry.

    Returns 0 on success, negative number (< 0) on error.

    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle
    string buf
    integer buf_size


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_ExtractToFile

    C: int JS_Zip_Entry_ExtractToFile(void* zipHandle, const char* outputFile)
    EEL2: int extension_api("JS_Zip_Entry_ExtractToFile", void* zipHandle, "outputFile")
    Lua: integer retval = reaper.JS_Zip_Entry_ExtractToFile(identifier zipHandle, string outputFile)
    Python: Int retval = JS_Zip_Entry_ExtractToFile(void* zipHandle, const char* outputFile)

    Extracts the zip archive's open entry.

    Returns 0 on success, negative number (< 0) on error.

    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle
    string outputFile


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_ExtractToMemory

    C: int JS_Zip_Entry_ExtractToMemory(void* zipHandle, char* contentsOutNeedBig, int contentsOutNeedBig_sz)
    EEL2: int extension_api("JS_Zip_Entry_ExtractToMemory", void* zipHandle, #contents)
    Lua: integer retval, string contents = reaper.JS_Zip_Entry_ExtractToMemory(identifier zipHandle)
    Python: Int retval = JS_Zip_Entry_ExtractToMemory(void* zipHandle, char* contentsOutNeedBig, int contentsOutNeedBig_sz)

    Extracts and returns the zip archive's open entry.

    Returns the number of bytes extracted on success, negative number (< 0) on error.

    Returnvalues:
    integer retval
    string contents

    Parameters:
    identifier zipHandle


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_Info

    C: int JS_Zip_Entry_Info(void* zipHandle, char* nameOutNeedBig, int nameOutNeedBig_sz, int* indexOut, int* isFolderOut, double* sizeOut, double* crc32Out)
    EEL2: int extension_api("JS_Zip_Entry_Info", void* zipHandle, #name, int &index, int &isFolder, &size, &crc32)
    Lua: integer retval, string name, integer index, integer isFolder, number size, number crc32 = reaper.JS_Zip_Entry_Info(identifier zipHandle)
    Python: Int retval = JS_Zip_Entry_Info(void* zipHandle, char* nameOutNeedBig, int nameOutNeedBig_sz, int* indexOut, int* isFolderOut, double* sizeOut, double* crc32Out)

    Returns information about the zip archive's open entry.

    Returnvalues:
    integer retval
    string name
    integer index
    integer isFolder
    number size
    number crc32

    Parameters:
    identifier zipHandle


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_OpenByIndex

    C: int JS_Zip_Entry_OpenByIndex(void* zipHandle, int index)
    EEL2: int extension_api("JS_Zip_Entry_OpenByIndex", void* zipHandle, int index)
    Lua: integer retval = reaper.JS_Zip_Entry_OpenByIndex(identifier zipHandle, integer index)
    Python: Int retval = JS_Zip_Entry_OpenByIndex(void* zipHandle, int index)

    Opens a new entry by index in the zip archive.

    This function is only valid if zip archive was opened in 'r' (readonly) mode.

    Returns 0 on success, negative number on error.

    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle
    integer index


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Entry_OpenByName

    C: int JS_Zip_Entry_OpenByName(void* zipHandle, const char* entryName)
    EEL2: int extension_api("JS_Zip_Entry_OpenByName", void* zipHandle, "entryName")
    Lua: integer retval = reaper.JS_Zip_Entry_OpenByName(identifier zipHandle, string entryName)
    Python: Int retval = JS_Zip_Entry_OpenByName(void* zipHandle, const char* entryName)

    Opens an entry by name in the zip archive.

    For zip archive opened in 'w' or 'a' mode the function will append a new entry. In readonly mode the function tries to locate an existing entry.

    Returns 0 on success, negative number (< 0) on error.

    Returnvalues:
    integer retval

    Parameters:
    identifier zipHandle
    string entryName


    ^ Reaper version 6.23 JS version 1.301JS_Zip_ErrorString

    C: void JS_Zip_ErrorString(int errorNum, char* errorStrOut, int errorStrOut_sz)
    EEL2: extension_api("JS_Zip_ErrorString", int errorNum, #errorStr)
    Lua: string errorStr = reaper.JS_Zip_ErrorString(integer errorNum)
    Python: void void = JS_Zip_ErrorString(int errorNum, char* errorStrOut, int errorStrOut_sz)

    Returns a descriptive string for the given error code.

    Returnvalues:
    string errorStr

    Parameters:
    integer errorNum


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Extract

    C: int JS_Zip_Extract(const char* zipFile, const char* outputFolder)
    EEL2: int extension_api("JS_Zip_Extract", "zipFile", "outputFolder")
    Lua: integer retval = reaper.JS_Zip_Extract(string zipFile, string outputFolder)
    Python: Int retval = JS_Zip_Extract(const char* zipFile, const char* outputFolder)

    Extracts an existing Zip file to the specified folder.

    Returns the number of extracted files on success, negative number (< 0) on error.

    Returnvalues:
    integer retval

    Parameters:
    string zipFile
    string outputFolder


    ^ Reaper version 6.23 JS version 1.301JS_Zip_ListAllEntries

    C: int JS_Zip_ListAllEntries(void* zipHandle, char* listOutNeedBig, int listOutNeedBig_sz)
    EEL2: int extension_api("JS_Zip_ListAllEntries", void* zipHandle, #list)
    Lua: integer retval, string list = reaper.JS_Zip_ListAllEntries(identifier zipHandle)
    Python: Int retval = JS_Zip_ListAllEntries(void* zipHandle, char* listOutNeedBig, int listOutNeedBig_sz)

    Returns the number of entries and a zero-separated and double-zero-terminated string of entry names.

    On error, returns a negative number (< 0).

    Returnvalues:
    integer retval
    string list

    Parameters:
    identifier zipHandle


    ^ Reaper version 6.23 JS version 1.301JS_Zip_Open

    C: void* JS_Zip_Open(const char* zipFile, const char* mode, int compressionLevel, int* retvalOut)
    EEL2: void* extension_api("JS_Zip_Open", "zipFile", "mode", int compressionLevel, int &retval)
    Lua: identifier retval, integer retval = reaper.JS_Zip_Open(string zipFile, string mode, integer compressionLevel)
    Python: void* void = JS_Zip_Open(const char* zipFile, const char* mode, int compressionLevel, int* retvalOut)



    Returnvalues:
    identifier retval
    integer retval

    Parameters:
    string zipFile
    string mode
    integer compressionLevel


    ^ Reaper version 5.97AudioAccessorStateChanged

    C: bool AudioAccessorStateChanged(AudioAccessor* accessor)
    EEL2: bool AudioAccessorStateChanged(AudioAccessor accessor)
    Lua: boolean changed_samples = reaper.AudioAccessorStateChanged(AudioAccessor accessor)
    Python: Boolean retval = RPR_AudioAccessorStateChanged(AudioAccessor accessor)

    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.

    Returnvalues:
    boolean changed_samples
    true, underlying samples changed; false, underlying samples didn't change

    Parameters:
    AudioAccessor accessor
    the AudioAccessor, whose sample-statechange you want to get

    see also:
  • AudioAccessorStateChanged - returns, if audioaccessor has changed
  • AudioAccessorValidateState - to get validation-state of an AudioAccessor
  • CreateTakeAudioAccessor - to create an AudioAccessor for take
  • CreateTrackAudioAccessor - to create an AudioAccessor for track
  • DestroyAudioAccessor - to destroy an AudioAccessor
  • GetAudioAccessorEndTime - to get endtime of an AudioAccessor
  • GetAudioAccessorSamples - to get samples of an AudioAccessor


  • ^ Reaper version 5.97AudioAccessorUpdate

    C: void AudioAccessorUpdate(AudioAccessor* accessor)
    EEL2: AudioAccessorUpdate(AudioAccessor accessor)
    Lua: reaper.AudioAccessorUpdate(AudioAccessor accessor)
    Python: RPR_AudioAccessorUpdate(AudioAccessor accessor)

    Force the accessor to reload its state from the underlying track or media item take.

    Parameters:
    AudioAccessor accessor

    see also:
  • CreateTakeAudioAccessor - for creating a take-audio-accessor
  • CreateTrackAudioAccessor - for creating a track-audio-accessor
  • DestroyAudioAccessor - to destroy an audio-accessor
  • AudioAccessorStateChanged - to get, if an audioaccessor has changed
  • GetAudioAccessorStartTime - to get the audioaccessor-starttime
  • GetAudioAccessorEndTime - to get the audioaccessor-endtime
  • GetAudioAccessorSamples - to get the audioaccessor-samples


  • ^ Reaper version 5.62AudioAccessorValidateState

    C: bool AudioAccessorValidateState(AudioAccessor* accessor)
    EEL2: bool AudioAccessorValidateState(AudioAccessor accessor)
    Lua: boolean statechange = reaper.AudioAccessorValidateState(AudioAccessor accessor)
    Python: Boolean retval = RPR_AudioAccessorValidateState(AudioAccessor accessor)

    Validates the current state of the audio accessor -- must ONLY call this from the main thread. Returns true if the state changed.

    Returnvalues:
    boolean statechange
    true, if state has changed; false, if state hasn't changed

    Parameters:
    AudioAccessor accessor
    the AudioAccessor for a MediaTrack or a MediaItem_Take


    ^ Reaper version 5.97CreateTakeAudioAccessor

    C: AudioAccessor* CreateTakeAudioAccessor(MediaItem_Take* take)
    EEL2: AudioAccessor CreateTakeAudioAccessor(MediaItem_Take take)
    Lua: AudioAccessor acc = reaper.CreateTakeAudioAccessor(MediaItem_Take take)
    Python: AudioAccessor retval = RPR_CreateTakeAudioAccessor(MediaItem_Take take)

    Create an audio accessor object for this take. Must only call from the main thread.

    Returnvalues:
    AudioAccessor acc
    the newly created AudioAccessor

    Parameters:
    MediaItem_Take take
    the take from a MediaItem-object, of which you want to create a new AudioAccessor

    see also:
  • CreateTrackAudioAccessor - gets a track audioaccessor
  • DestroyAudioAccessor - destroys an audioaccessor
  • AudioAccessorStateChanged - gets the state-change of an audioaccessor
  • GetAudioAccessorStartTime - get audioaccessor-starttime
  • GetAudioAccessorEndTime - get audioaccessor-endtime
  • GetAudioAccessorSamples - get audioaccessor-samples


  • ^ Reaper version 5.97CreateTrackAudioAccessor

    C: AudioAccessor* CreateTrackAudioAccessor(MediaTrack* track)
    EEL2: AudioAccessor CreateTrackAudioAccessor(MediaTrack track)
    Lua: AudioAccessor acc = reaper.CreateTrackAudioAccessor(MediaTrack track)
    Python: AudioAccessor retval = RPR_CreateTrackAudioAccessor(MediaTrack track)

    Create an audio accessor object for this track. Must only call from the main thread.

    Returnvalues:
    AudioAccessor acc
    the newly created AudioAccessor for this MediaTrack

    Parameters:
    MediaTrack track
    the MediaTrack, of which you want to create an AudioAccessor

    see also:
  • CreateTakeAudioAccessor - create a take audioaccessor
  • DestroyAudioAccessor - destroys an audioaccessor
  • AudioAccessorStateChanged - gets the state-change of an audioaccessor
  • GetAudioAccessorStartTime - get audioaccessor-starttime
  • GetAudioAccessorEndTime - get audioaccessor-endtime
  • GetAudioAccessorSamples - get audioaccessor-samples


  • ^ Reaper version 5.97DestroyAudioAccessor

    C: void DestroyAudioAccessor(AudioAccessor* accessor)
    EEL2: DestroyAudioAccessor(AudioAccessor accessor)
    Lua: reaper.DestroyAudioAccessor(AudioAccessor accessor)
    Python: RPR_DestroyAudioAccessor(AudioAccessor accessor)

    Destroy an audio accessor. Must only call from the main thread.

    Parameters:
    AudioAccessor accessor
    the AudioAccessor to be destroyed

    see also:
  • AudioAccessorStateChanged - returns, if audioaccessor has changed
  • AudioAccessorValidateState - to get validation-state of an AudioAccessor
  • CreateTakeAudioAccessor - to create an AudioAccessor for take
  • CreateTrackAudioAccessor - to create an AudioAccessor for track
  • GetAudioAccessorStartTime - gets the starttime of an audioaccessor
  • GetAudioAccessorEndTime - to get endtime of an AudioAccessor
  • GetAudioAccessorSamples - to get samples of an AudioAccessor


  • ^ Reaper version 5.97GetAudioAccessorEndTime

    C: double GetAudioAccessorEndTime(AudioAccessor* accessor)
    EEL2: double GetAudioAccessorEndTime(AudioAccessor accessor)
    Lua: number length = reaper.GetAudioAccessorEndTime(AudioAccessor accessor)
    Python: Float retval = RPR_GetAudioAccessorEndTime(AudioAccessor accessor)

    Get the end time of the audio that can be returned from this accessor.

    Returnvalues:
    number length
    the length of the AudioAccessor

    Parameters:
    AudioAccessor accessor
    the AudioAccessor, whose end-time you want to have

    see also:
  • AudioAccessorStateChanged - returns, if audioaccessor has changed
  • AudioAccessorValidateState - to get validation-state of an AudioAccessor
  • CreateTakeAudioAccessor - to create an AudioAccessor for take
  • CreateTrackAudioAccessor - to create an AudioAccessor for track
  • DestroyAudioAccessor - to destroy an AudioAccessor
  • GetAudioAccessorStartTime - gets the starttime of an audioaccessor
  • GetAudioAccessorSamples - to get samples of an AudioAccessor


  • ^ Reaper version 5.97GetAudioAccessorHash

    C: void GetAudioAccessorHash(AudioAccessor* accessor, char* hashNeed128)
    EEL2: GetAudioAccessorHash(AudioAccessor accessor, #hashNeed128)
    Lua: string hashNeed128 = reaper.GetAudioAccessorHash(AudioAccessor accessor, string hashNeed128)
    Python: (AudioAccessor accessor, String hashNeed128) = RPR_GetAudioAccessorHash(accessor, hashNeed128)

    Get a short hash string (128 chars or less) that will change only if the underlying samples change.

    Deprecated.

    Returnvalues:
    string hashNeed128

    Parameters:
    AudioAccessor accessor
    string hashNeed128

    see also:
  • AudioAccessorStateChanged - returns, if audioaccessor has changed
  • AudioAccessorValidateState - to get validation-state of an AudioAccessor
  • CreateTakeAudioAccessor - to create an AudioAccessor for take
  • CreateTrackAudioAccessor - to create an AudioAccessor for track
  • DestroyAudioAccessor - to destroy an AudioAccessor
  • GetAudioAccessorStartTime - gets the starttime of an audioaccessor
  • GetAudioAccessorEndTime - to get endtime of an AudioAccessor
  • GetAudioAccessorSamples - to get samples of an AudioAccessor


  • ^ Reaper version 5.97GetAudioAccessorSamples

    C: int GetAudioAccessorSamples(AudioAccessor* accessor, int samplerate, int numchannels, double starttime_sec, int numsamplesperchannel, double* samplebuffer)
    EEL2: int GetAudioAccessorSamples(AudioAccessor accessor, int samplerate, int numchannels, starttime_sec, int numsamplesperchannel, buffer_ptr samplebuffer)
    Lua: integer samples = reaper.GetAudioAccessorSamples(AudioAccessor accessor, integer samplerate, integer numchannels, number starttime_sec, integer numsamplesperchannel, reaper.array samplebuffer)
    Python: (Int retval, AudioAccessor accessor, Int samplerate, Int numchannels, Float starttime_sec, Int numsamplesperchannel, Float samplebuffer) = RPR_GetAudioAccessorSamples(accessor, samplerate, numchannels, starttime_sec, numsamplesperchannel, samplebuffer)

    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.

    This function has special handling in Python, and only returns two objects, the API function return value, and the sample buffer.

    Example usage:
        
    
                tr = RPR_GetTrack(0, 0)
                aa = RPR_CreateTrackAudioAccessor(tr)
                buf = list([0]*2*1024) # 2 channels, 1024 samples each, initialized to zero
                pos = 0.0
                (ret, buf) = GetAudioAccessorSamples(aa, 44100, 2, pos, 1024, buf)
                # buf now holds the first 2*1024 audio samples from the track.
                # typically GetAudioAccessorSamples() would be called within a loop, increasing pos each time.
        


    Returnvalues:
    integer samples

    Parameters:
    AudioAccessor accessor
    integer samplerate
    integer numchannels
    number starttime_sec
    integer numsamplesperchannel
    reaper.array samplebuffer

    see also:
  • AudioAccessorStateChanged - returns, if audioaccessor has changed
  • AudioAccessorValidateState - to get validation-state of an AudioAccessor
  • CreateTakeAudioAccessor - to create an AudioAccessor for take
  • CreateTrackAudioAccessor - to create an AudioAccessor for track
  • DestroyAudioAccessor - to destroy an AudioAccessor
  • GetAudioAccessorStartTime - gets the starttime of an audioaccessor
  • GetAudioAccessorEndTime - to get endtime of an AudioAccessor


  • ^ Reaper version 5.97GetAudioAccessorStartTime

    C: double GetAudioAccessorStartTime(AudioAccessor* accessor)
    EEL2: double GetAudioAccessorStartTime(AudioAccessor accessor)
    Lua: number audio_start_time = reaper.GetAudioAccessorStartTime(AudioAccessor accessor)
    Python: Float retval = RPR_GetAudioAccessorStartTime(AudioAccessor accessor)

    Get the start time of the audio that can be returned from this accessor.

    Returnvalues:
    number audio_start_time

    Parameters:
    AudioAccessor accessor

    see also:
  • AudioAccessorStateChanged - returns, if audioaccessor has changed
  • AudioAccessorValidateState - to get validation-state of an AudioAccessor
  • CreateTakeAudioAccessor - to create an AudioAccessor for take
  • CreateTrackAudioAccessor - to create an AudioAccessor for track
  • DestroyAudioAccessor - to destroy an AudioAccessor
  • GetAudioAccessorEndTime - to get endtime of an AudioAccessor
  • GetAudioAccessorSamples - to get samples of an AudioAccessor


  • ^ Reaper version 5.62Audio_Init

    C: void Audio_Init()
    EEL2: Audio_Init()
    Lua: reaper.Audio_Init()
    Python: RPR_Audio_Init()

    open all audio and MIDI devices, if not open

    So if the audio-device(s) are closed, you can use this to try to (re)-activate them.


    ^ Reaper version 5.62Audio_IsPreBuffer

    C: int Audio_IsPreBuffer()
    EEL2: int Audio_IsPreBuffer()
    Lua: integer retval = reaper.Audio_IsPreBuffer()
    Python: Int retval = RPR_Audio_IsPreBuffer()

    is in pre-buffer? threadsafe

    Returnvalues:
    integer retval


    ^ Reaper version 5.62Audio_IsRunning

    C: int Audio_IsRunning()
    EEL2: int Audio_IsRunning()
    Lua: integer audio_running = reaper.Audio_IsRunning()
    Python: Int retval = RPR_Audio_IsRunning()

    is audio running at all? threadsafe

    It is an indicator, if the current audio-device is closed(0) or not(1).

    Returnvalues:
    integer audio_running
    0, audio is not running; 1, audio is running


    ^ Reaper version 5.62Audio_Quit

    C: void Audio_Quit()
    EEL2: Audio_Quit()
    Lua: reaper.Audio_Quit()
    Python: RPR_Audio_Quit()

    close all audio and MIDI devices, if open

    This sets all audio-devices to closed.


    ^ Reaper version 6.37GetAudioDeviceInfo

    C: bool GetAudioDeviceInfo(const char* attribute, char* descOut, int descOut_sz)
    EEL2: bool GetAudioDeviceInfo("attribute", #desc)
    Lua: boolean retval, string desc = reaper.GetAudioDeviceInfo(string attribute)
    Python: (Boolean retval, String attribute, String descOut, Int descOut_sz) = RPR_GetAudioDeviceInfo(attribute, descOut, descOut_sz)

    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.

    Returnvalues:
    boolean retval
    true, if returning a value is possible; false, if not(unknown attribute or device not open)
    string desc
    the returned value; will not return a value, if Preferences are opened

    Parameters:
    string attribute
    the attribute to get, as set in Preferences -> Device
    MODE - the Audio system selected
    IDENT_IN - the selected Input device
    IDENT_OUT - the selected Output device
    BSIZE - the Buffer-sample-size (not the multiplier!)
    SRATE - the samplerate in Hz
    BPS - the sample-format (e.g 16, 24, 32 bit)


    ^ Reaper version 6.75GetInputActivityLevel

    C: double GetInputActivityLevel(int input_id)
    EEL2: double GetInputActivityLevel(int input_id)
    Lua: number retval = reaper.GetInputActivityLevel(integer input_id)
    Python: Float RPR_GetInputActivityLevel(Int input_id)

    returns approximate input level if available, 0-511 mono inputs, |1024 for stereo pairs, 4096+devidx*32 for MIDI devices

    Returnvalues:
    number retval

    Parameters:
    integer input_id


    ^ Reaper version 5.62GetInputChannelName

    C: const char* GetInputChannelName(int channelIndex)
    EEL2: bool GetInputChannelName(#retval, int channelIndex)
    Lua: string chan_name = reaper.GetInputChannelName(integer channelIndex)
    Python: String retval = RPR_GetInputChannelName(Int channelIndex)

    Returns the name of a input-channel.

    Returnvalues:
    string chan_name
    the name of the input-channel.

    Parameters:
    integer channelIndex
    the index of the input-channels, with 0 for the first, 1 for the second, etc.


    ^ Reaper version 5.62GetInputOutputLatency

    C: void GetInputOutputLatency(int* inputlatencyOut, int* outputLatencyOut)
    EEL2: GetInputOutputLatency(int &inputlatency, int &outputLatency)
    Lua: number inputlatency, number outputLatency = reaper.GetInputOutputLatency()
    Python: (Int inputlatencyOut, Int outputLatencyOut) = RPR_GetInputOutputLatency(inputlatencyOut, outputLatencyOut)

    Gets the audio device input/output latency in samples

    Returnvalues:
    integer inputlatency
    the input-latency
    integer outputLatency
    the output-latency


    ^ Reaper version 5.62GetNumAudioInputs

    C: int GetNumAudioInputs()
    EEL2: int GetNumAudioInputs()
    Lua: integer numAudioIns = reaper.GetNumAudioInputs()
    Python: Int retval = RPR_GetNumAudioInputs()

    Return number of normal audio hardware inputs available

    Returnvalues:
    integer numAudioIns
    the number of audio hardware outputs available


    ^ Reaper version 5.62GetNumAudioOutputs

    C: int GetNumAudioOutputs()
    EEL2: int GetNumAudioOutputs()
    Lua: integer numAudioOuts = reaper.GetNumAudioOutputs()
    Python: Int retval = RPR_GetNumAudioOutputs()

    Return number of normal audio hardware outputs available

    Returnvalues:
    integer numAudioOuts
    the number of audio hardware outputs available


    ^ Reaper version 5.62GetOutputChannelName

    C: const char* GetOutputChannelName(int channelIndex)
    EEL2: bool GetOutputChannelName(#retval, int channelIndex)
    Lua: string outputchanname= reaper.GetOutputChannelName(integer channelIndex)
    Python: String retval = RPR_GetOutputChannelName(Int channelIndex)

    Get the name of a specific output-channel.

    Returnvalues:
    string outputchanname
    the name of the output-channel.

    Parameters:
    integer channelIndex
    the index of the output-channel


    ^ Reaper version 5.62GetOutputLatency

    C: double GetOutputLatency()
    EEL2: double GetOutputLatency()
    Lua: number outputlatency = reaper.GetOutputLatency()
    Python: Float retval = RPR_GetOutputLatency()

    returns output latency in seconds

    Returnvalues:
    number outputlatency
    output-latency in seconds


    ^ Reaper version 5.62GetUnderrunTime

    C: void GetUnderrunTime(unsigned int* audio_xrunOut, unsigned int* media_xrunOut, unsigned int* curtimeOut)
    EEL2: GetUnderrunTime(unsigned int &audio_xrun, unsigned int &media_xrun, unsigned int &curtime)
    Lua: integer audio_xrun, integer media_xrun, integer curtime = reaper.GetUnderrunTime()
    Python: RPR_GetUnderrunTime(unsigned int audio_xrunOut, unsigned int media_xrunOut, unsigned int curtimeOut)

    retrieves the last timestamps of audio xrun (yellow-flash, if available), media xrun (red-flash), and the current time stamp (all milliseconds)

    Returnvalues:
    integer audio_xrun
    integer media_xrun
    integer curtime


    ^ Reaper version 5.62joystick_create

    C: joystick_device* joystick_create(const GUID* guid)
    EEL2: joystick_device joystick_create("guidGUID")
    Lua: joystick_device joystick = reaper.joystick_create(string guidGUID)
    Python: joystick_device joystick = RPR_joystick_create(const GUID guid)

    creates a joystick device

    Returnvalues:
    joystick_device joystick

    Parameters:
    string guidGUID


    ^ Reaper version 5.62joystick_destroy

    C: void joystick_destroy(joystick_device* device)
    EEL2: joystick_destroy(joystick_device device)
    Lua: reaper.joystick_destroy(joystick_device device)
    Python: RPR_joystick_destroy(joystick_device device)

    destroys a joystick device

    Parameters:
    joystick_device device


    ^ Reaper version 5.62joystick_enum

    C: const char* joystick_enum(int index, const char** namestrOutOptional)
    EEL2: bool joystick_enum(#retval, int index, optional #namestr)
    Lua: string retval, optional string namestr = reaper.joystick_enum(integer index)
    Python: String retval = RPR_joystick_enum(Int index, String namestrOutOptional)

    enumerates installed devices, returns GUID as a string

    Returnvalues:
    string retval
    string namestr

    Parameters:
    integer index


    ^ Reaper version 5.62joystick_getaxis

    C: double joystick_getaxis(joystick_device* dev, int axis)
    EEL2: double joystick_getaxis(joystick_device dev, int axis)
    Lua: number joystick_axis_value = reaper.joystick_getaxis(joystick_device dev, integer axis)
    Python: Float retval = RPR_joystick_getaxis(joystick_device dev, Int axis)

    returns axis value (-1..1)

    Returnvalues:
    number joystick_axis_value

    Parameters:
    joystick_device dev
    integer axis


    ^ Reaper version 5.62joystick_getbuttonmask

    C: unsigned int joystick_getbuttonmask(joystick_device* dev)
    EEL2: uint joystick_getbuttonmask(joystick_device dev)
    Lua: integer joystick_button_mask = reaper.joystick_getbuttonmask(joystick_device dev)
    Python: Int retval = RPR_joystick_getbuttonmask(joystick_device dev)

    returns button pressed mask, 1=first button, 2=second...

    Returnvalues:
    integer joystick_button_mask

    Parameters:
    joystick_device dev


    ^ Reaper version 5.62joystick_getinfo

    C: int joystick_getinfo(joystick_device* dev, int* axesOutOptional, int* povsOutOptional)
    EEL2: int joystick_getinfo(joystick_device dev, optional int &axes, optional int &povs)
    Lua: integer retval, optional integer axes, optional integer povs = reaper.joystick_getinfo(joystick_device dev)
    Python: (Int retval, joystick_device dev, Int axesOutOptional, Int povsOutOptional) = RPR_joystick_getinfo(dev, axesOutOptional, povsOutOptional)

    returns button count

    Returnvalues:
    integer retval
    optional integer axes
    optional integer povs

    Parameters:
    joystick_device dev


    ^ Reaper version 5.62joystick_getpov

    C: double joystick_getpov(joystick_device* dev, int pov)
    EEL2: double joystick_getpov(joystick_device dev, int pov)
    Lua: number joystick_pov = reaper.joystick_getpov(joystick_device dev, integer pov)
    Python: Float retval = RPR_joystick_getpov(joystick_device dev, Int pov)

    returns POV value (usually 0..655.35, or 655.35 on error)

    Returnvalues:
    number joystick_pov

    Parameters:
    joystick_device dev
    integer pov


    ^ Reaper version 5.62joystick_update

    C: bool joystick_update(joystick_device* dev)
    EEL2: bool joystick_update(joystick_device dev)
    Lua: boolean joystick_state = reaper.joystick_update(joystick_device dev)
    Python: Boolean retval = RPR_joystick_update(joystick_device dev)

    Updates joystick state from hardware, returns true if successful (joystick_get* will not be valid until joystick_update() is called successfully)

    Returnvalues:
    boolean joystick_state

    Parameters:
    joystick_device dev


    ^ Reaper version 5.974 JS version 0.980JS_VKeys_ClearHistory

    C: void JS_VKeys_ClearHistory()
    EEL2: extension_api("JS_VKeys_ClearHistory")
    Lua: reaper.JS_VKeys_ClearHistory()
    Python: JS_VKeys_ClearHistory()

    deprecated


    ^ Reaper version 5.974 JS version 0.993JS_VKeys_GetDown

    C: void JS_VKeys_GetDown(double cutoffTime, char* stateOutNeedBig, int* stateOutNeedBig_sz)
    EEL2: extension_api("JS_VKeys_GetDown", cutoffTime, #state)
    Lua: string state = reaper.JS_VKeys_GetDown(number cutoffTime)
    Python: (Float cutoffTime, String stateOutNeedBig, Int stateOutNeedBig_sz) = JS_VKeys_GetDown(cutoffTime, stateOutNeedBig, stateOutNeedBig_sz)

    Returns a 255-byte array that specifies which virtual keys, from 0x01 to 0xFF, have sent KEYDOWN messages since cutoffTime.

    Notes: * Mouse buttons and modifier keys are not (currently) reliably detected, and JS_Mouse_GetState can be used instead. * Auto-repeated KEYDOWN messages are ignored.


    Returnvalues:
    string state

    Parameters:
    number cutoffTime


    ^ Reaper version 5.974 JS version 0.980JS_VKeys_GetHistory

    C: bool JS_VKeys_GetHistory(char* stateOutNeedBig, int* stateOutNeedBig_sz)
    EEL2: bool extension_api("JS_VKeys_GetHistory", #state)
    Lua: boolean retval, string state = reaper.JS_VKeys_GetHistory()
    Python: (Boolean retval, String stateOutNeedBig, Int stateOutNeedBig_sz) = JS_VKeys_GetHistory(stateOutNeedBig, stateOutNeedBig_sz)

    deprecated

    Returnvalues:
    boolean retval
    string state


    ^ Reaper version 5.974 JS version 0.993JS_VKeys_GetState

    C: void JS_VKeys_GetState(double cutoffTime, char* stateOutNeedBig, int* stateOutNeedBig_sz)
    EEL2: extension_api("JS_VKeys_GetState", cutoffTime, #state)
    Lua: string state, integer unknown = reaper.JS_VKeys_GetState(number cutoffTime)
    Python: (Float cutoffTime, String stateOutNeedBig, Int stateOutNeedBig_sz) = JS_VKeys_GetState(cutoffTime, stateOutNeedBig, stateOutNeedBig_sz)

    Retrieves the current states (0 or 1) of all virtual keys, from 0x01 to 0xFF, in a 255-byte array.

    cutoffTime: A key is only regarded as down if it sent a KEYDOWN message after the cut-off time, not followed by KEYUP. (This is useful for excluding old KEYDOWN messages that weren't properly followed by KEYUP.) If cutoffTime is positive, is it interpreted as absolute time in similar format as time_precise(). If cutoffTime is negative, it is relative to the current time.

    Notes: Notes: * Mouse buttons and modifier keys are not (currently) reliably detected, and JS_Mouse_GetState can be used instead. * Auto-repeated KEYDOWN messages are ignored.


    Returnvalues:
    string state
    a 255-byte array, where each entry represents the key pressed. For instance, if A is pressed, the 65th byte=AsciiCode 1, else 65th byte=AsciiCode 0. The IDE-watchlist will probably truncate this string.
    integer unknown
    unknown; probably cutofftime


    ^ Reaper version 5.974 JS version 0.986JS_VKeys_GetUp

    C: void JS_VKeys_GetUp(double cutoffTime, char* stateOutNeedBig, int* stateOutNeedBig_sz)
    EEL2: extension_api("JS_VKeys_GetUp", cutoffTime, #state)
    Lua: string state = reaper.JS_VKeys_GetUp(number cutoffTime)
    Python: (Float cutoffTime, String stateOutNeedBig, Int stateOutNeedBig_sz) = JS_VKeys_GetUp(cutoffTime, stateOutNeedBig, stateOutNeedBig_sz)

    Return a 255-byte array that specifies which virtual keys, from 0x01 to 0xFF, have sent KEYUP messages since cutoffTime.

    Note: Mouse buttons and modifier keys are not (currently) reliably detected, and JS_Mouse_GetState can be used instead.


    Returnvalues:
    string state

    Parameters:
    number cutoffTime


    ^ Reaper version 5.974 JS version 0.980JS_VKeys_Intercept

    C: int JS_VKeys_Intercept(int keyCode, int intercept)
    EEL2: int extension_api("JS_VKeys_Intercept", int keyCode, int intercept)
    Lua: integer retval = reaper.JS_VKeys_Intercept(integer keyCode, integer intercept)
    Python: Int retval = JS_VKeys_Intercept(Int keyCode, Int intercept)

    Intercepting (blocking) virtual keys work similar to the native function PreventUIRefresh: Each key has a (non-negative) intercept state, and the key is passed through as usual if the state equals 0, or blocked if the state is greater than 0.

    keyCode: The virtual key code of the key, or -1 to change the state of all keys.

    intercept: A script can increase the intercept state by passing +1, or lower the state by passing -1.
    Multiple scripts can block the same key, and the intercept state may reach up to 255.
    If zero is passed, the intercept state is not changed, but the current state is returned.

    Returns: If keyCode refers to a single key, the intercept state of that key is returned. If keyCode = -1, the state of the key that is most strongly blocked (highest intercept state) is returned.

    Returnvalues:
    integer retval

    Parameters:
    integer keyCode
    integer intercept


    ^ Reaper version 5.62OscLocalMessageToHost

    C: void OscLocalMessageToHost(const char* message, const double* valueInOptional)
    EEL2: OscLocalMessageToHost("message", optional valueIn)
    Lua: reaper.OscLocalMessageToHost(string message, optional number valueIn)
    Python: RPR_OscLocalMessageToHost(String message, const double valueInOptional)

    Send an OSC message directly to REAPER. The value argument may be NULL. The message will be matched against the default OSC patterns.

    This is not broadcast outside of Reaper, so you can't control devices, plugins, etc with it!

    Messages sent via this function can be used for parameter-learn/modulation and as shortcuts for scripts.
    The parameter valueIn can be retrieved with the returnvalue val of the function reaper.get_action_context, so sending values to a script is possible that way.

    Parameters:
    string message
    the osc-message, which shall be sent to Reaper
    optional number valueIn
    a number, which can be sent to scripts who are started by the osc-message


    ^ Reaper version 5.62GetMIDIInputName

    C: bool GetMIDIInputName(int dev, char* nameout, int nameout_sz)
    EEL2: bool GetMIDIInputName(int dev, #nameout)
    Lua: boolean retval, string nameout = reaper.GetMIDIInputName(integer dev, string nameout)
    Python: (Boolean retval, Int dev, String nameout, Int nameout_sz) = RPR_GetMIDIInputName(dev, nameout, nameout_sz)

    returns true if device present

    Returnvalues:
    boolean retval
    string nameout

    Parameters:
    integer dev
    string nameout


    ^ Reaper version 5.62GetMIDIOutputName

    C: bool GetMIDIOutputName(int dev, char* nameout, int nameout_sz)
    EEL2: bool GetMIDIOutputName(int dev, #nameout)
    Lua: boolean retval, string nameout = reaper.GetMIDIOutputName(integer dev, string nameout)
    Python: (Boolean retval, Int dev, String nameout, Int nameout_sz) = RPR_GetMIDIOutputName(dev, nameout, nameout_sz)

    returns true if device present

    Returnvalues:
    boolean retval
    string nameout

    Parameters:
    integer dev
    string nameout


    ^ Reaper version 5.62GetMaxMidiInputs

    C: int GetMaxMidiInputs()
    EEL2: int GetMaxMidiInputs()
    Lua: integer max_midi_inputs = reaper.GetMaxMidiInputs()
    Python: Int retval = RPR_GetMaxMidiInputs()

    returns max dev for midi inputs

    Returnvalues:
    integer max_midi_inputs
    the number of max midi inputs


    ^ Reaper version 5.62GetMaxMidiOutputs

    C: int GetMaxMidiOutputs()
    EEL2: int GetMaxMidiOutputs()
    Lua: integer max_midi_outputs = reaper.GetMaxMidiOutputs()
    Python: Int retval = RPR_GetMaxMidiOutputs()

    returns max dev for midi outputs

    Returnvalues:
    integer max_midi_outputs
    the number of max midi outputs


    ^ Reaper version 5.62GetNumMIDIInputs

    C: int GetNumMIDIInputs()
    EEL2: int GetNumMIDIInputs()
    Lua: integer numMidiIns = reaper.GetNumMIDIInputs()
    Python: Int retval = RPR_GetNumMIDIInputs()

    returns max number of real midi hardware inputs

    Returnvalues:
    integer numMidiIns


    ^ Reaper version 5.62GetNumMIDIOutputs

    C: int GetNumMIDIOutputs()
    EEL2: int GetNumMIDIOutputs()
    Lua: integer numMidiOuts = reaper.GetNumMIDIOutputs()
    Python: Int retval = RPR_GetNumMIDIOutputs()

    returns max number of real midi hardware outputs

    Returnvalues:
    integer numMidiOuts
    the number of real midi hardware outputs


    ^ Reaper version 6.41MIDI_GetRecentInputEvent

    C: int MIDI_GetRecentInputEvent(int idx, char* bufOut, int* bufOut_sz, int* tsOut, int* devIdxOut, double* projPosOut, int* projLoopCntOut)
    EEL2: int MIDI_GetRecentInputEvent(int idx, #buf, int &ts, int &devIdx, &projPos, int &projLoopCnt)
    Lua: integer retval, string buf, integer ts, integer devIdx, number projPos, integer projLoopCnt = reaper.MIDI_GetRecentInputEvent(integer idx)
    Python: (Int retval, Int idx, String bufOut, Int bufOut_sz, Int tsOut, Int devIdxOut, Float projPosOut, Int projLoopCntOut) = RPR_MIDI_GetRecentInputEvent(idx, bufOut, bufOut_sz, tsOut, devIdxOut, projPosOut, projLoopCntOut)

    Gets a recent MIDI input event from the global history.

    parameters:
    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.

    retvals:
    tsOut/ts will be set to the timestamp in samples relative to the current position (0 is current, -48000 is one second ago, etc).

    devIdxOut/devIdx 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/projPos 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.

    Returnvalues:
    integer retval
    string buf
    integer ts
    integer devIdx
    integer projPos
    number projLoopCnt

    Parameters:
    integer idx


    ^ Reaper version 6.47midi_init

    C: void midi_init(int force_reinit_input, int force_reinit_output)
    EEL2: midi_init(int force_reinit_input, int force_reinit_output)
    Lua: reaper.midi_init(integer force_reinit_input, integer force_reinit_output)
    Python: RPR_midi_init(Int force_reinit_input, Int force_reinit_output)

    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).

    Parameters:
    integer force_reinit_input
    integer force_reinit_output


    ^ Reaper version 5.62midi_reinit

    C: void midi_reinit()
    EEL2: midi_reinit()
    Lua: reaper.midi_reinit()
    Python: RPR_midi_reinit()

    Reset (close and re-open) all MIDI devices


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext

    C: void BR_GetMouseCursorContext(char* windowOut, int windowOut_sz, char* segmentOut, int segmentOut_sz, char* detailsOut, int detailsOut_sz)
    EEL2: extension_api("BR_GetMouseCursorContext", #window, #segment, #details)
    Lua: string window, string segment, string details = reaper.BR_GetMouseCursorContext()
    Python: (String windowOut, Int windowOut_sz, String segmentOut, Int segmentOut_sz, String detailsOut, Int detailsOut_sz) = BR_GetMouseCursorContext(windowOut, windowOut_sz, segmentOut, segmentOut_sz, detailsOut, detailsOut_sz)

    [BR] Get mouse cursor context. Each parameter returns information in a form of string as specified in the table below.

    To get more info on stuff that was found under mouse cursor see BR_GetMouseCursorContext_Envelope, BR_GetMouseCursorContext_Item, BR_GetMouseCursorContext_MIDI, BR_GetMouseCursorContext_Position, BR_GetMouseCursorContext_Take, BR_GetMouseCursorContext_Track
    WindowSegmentDetails
    unknown""""
    rulerregion_lane ""
    marker_lane ""
    tempo_lane ""
    timeline""
    transport""""
    tcp track""
    envelope""
    empty""
    mcp track""
    empty""
    arrangetrackempty,item, item_stretch_marker,env_point, env_segment
    envelopeempty, env_point, env_segment
    empty""
    midi_editor unknown""
    ruler""
    piano""
    notes""
    cc_lanecc_selector, cc_lane


    Returnvalues:
    string window
    the window, in which the mouse-cursor was, at time of calling BR_GetMouseCursorContext
    string segment
    the segment within the window
    string details
    details with the segment of the window


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext_Item

    C: MediaItem* BR_GetMouseCursorContext_Item()
    EEL2: MediaItem extension_api("BR_GetMouseCursorContext_Item")
    Lua: MediaItem item = reaper.BR_GetMouseCursorContext_Item()
    Python: MediaItem item = BR_GetMouseCursorContext_Item()

    [BR] Returns item under mouse cursor that was captured with the last call to BR_GetMouseCursorContext. Note that the function will return item even if mouse cursor is over some other track lane element like stretch marker or envelope. This enables for easier identification of items when you want to ignore elements within the item.


    Returnvalues:
    MediaItem item


    ^ Reaper version 6.37GetMouseModifier

    C: void GetMouseModifier(const char* context, int modifier_flag, char* actionOut, int actionOut_sz)
    EEL2: GetMouseModifier("context", int modifier_flag, #action)
    Lua: string action = reaper.GetMouseModifier(string context, integer modifier_flag)
    Python: (String context, Int modifier_flag, String actionOut, Int actionOut_sz) = RPR_GetMouseModifier(context, modifier_flag, actionOut, actionOut_sz)

    Get the current mouse modifier assignment for a specific modifier key assignment, in a specific context.
    action will be filled in with the command ID number for a built-in mouse modifier
    or built-in REAPER command ID, or the custom action ID string.

    Returnvalues:
    string action
    the associated action with the mouse-modifier within the specific context

    Parameters:
    string context
    the context of the mouse-modifier
    integer modifier_flag
    the modifier-flag, whose action you want to retrieve

    see also:
  • SetMouseModifier - sets a mouse-modifier


  • ^ Reaper version 5.62GetMousePosition

    C: void GetMousePosition(int* xOut, int* yOut)
    EEL2: GetMousePosition(int &x, int &y)
    Lua: integer x, integer y = reaper.GetMousePosition()
    Python: (Int xOut, Int yOut) = RPR_GetMousePosition(xOut, yOut)

    get mouse position in screen coordinates

    Returnvalues:
    integer x
    horizontal position of the mouse in pixels
    integer y
    vertical position of the mouse in pixels


    ^ Reaper version 5.974 JS version 0.988JS_Mouse_GetCursor

    C: void* JS_Mouse_GetCursor()
    EEL2: void* extension_api("JS_Mouse_GetCursor")
    Lua: identifier mouse_cursor = reaper.JS_Mouse_GetCursor()
    Python: identifier mouse_cursor = JS_Mouse_GetCursor()

    On Windows, retrieves a handle to the current mouse cursor.
    On Linux and macOS, retrieves a handle to the last cursor set by REAPER or its extensions via SWELL.

    Returnvalues:
    identifier mouse_cursor


    ^ Reaper version 5.974 JS version 0.951JS_Mouse_GetState

    C: int JS_Mouse_GetState(int flags)
    EEL2: int extension_api("JS_Mouse_GetState", int flags)
    Lua: integer mouse_states = reaper.JS_Mouse_GetState(integer flags)
    Python: Int retval = JS_Mouse_GetState(Int flags)

    Retrieves the states of mouse buttons and modifiers keys.

    Parameters:

    * flags, state: The parameter and the return value both use the same format as gfx.mouse_cap. I.e., to get the states of the left mouse button and the ctrl key, use flags = 0b00000101.
    use -1 as flags to retrieve the states of all mouse-buttons and modifier

    Returnvalues:
    integer mouse_states

    Parameters:
    integer flags


    ^ Reaper version 5.974 JS version 0.964JS_Mouse_LoadCursor

    C: void* JS_Mouse_LoadCursor(int cursorNumber)
    EEL2: void* extension_api("JS_Mouse_LoadCursor", int cursorNumber)
    Lua: identifier mouse_cursor = reaper.JS_Mouse_LoadCursor(integer cursorNumber)
    Python: identifier mouse_cursor = JS_Mouse_LoadCursor(Int cursorNumber)

    Loads a cursor by number.

    cursorNumber: Same as used for gfx.setcursor, and includes some of Windows' predefined cursors (with numbers > 32000; refer to documentation for the Win32 C++ function LoadCursor), and REAPER's own cursors (with numbers < 2000).

    If successful, returns a handle to the cursor, which can be used in JS_Mouse_SetCursor.


    Returnvalues:
    identifier mouse_cursor

    Parameters:
    integer cursorNumber


    ^ Reaper version 5.974 JS version 1.310JS_Mouse_LoadCursorFromFile

    C: void* JS_Mouse_LoadCursorFromFile(const char* pathAndFileName, bool* forceNewLoad)
    EEL2: void* extension_api("JS_Mouse_LoadCursorFromFile", "pathAndFileName", boolean forceNewLoad)
    Lua: identifier mouse_cursor = reaper.JS_Mouse_LoadCursorFromFile(string pathAndFileName, optional boolean forceNewLoad)
    Python: identifier mouse_cursor = JS_Mouse_LoadCursorFromFile(String pathAndFileName, Boolean forceNewLoadOptional)

    Loads a cursor from a .cur file.

    forceNewLoad is an optional boolean parameter:
    * If omitted or false, and if the cursor file has already been loaded previously during the REAPER session by any script, the file will not be re-loaded, and the existing handle will be returned.
    * If true, the file will be re-loaded and a new handle will be returned.
    * WARNING: Each time that a cursor file is re-loaded, the number of GDI objects increases for the entire duration of the REAPER session.

    If successful, returns a handle to the cursor, which can be used in JS_Mouse_SetCursor.

    Returnvalues:
    identifier mouse_cursor
    a handle for the mouse-cursor

    Parameters:
    string pathAndFileName
    the filename with path to the .cur-cursor-file
    optional boolean forceNewLoad
    true, force reloading the cursor; false or nil, don't reload the cursor

    see also:
  • JS_Mouse_SetCursor - show the mouse-cursor you've loaded with JS_Mouse_LoadCursorFromFile


  • ^ Reaper version 5.974 JS version 0.951JS_Mouse_SetCursor

    C: void JS_Mouse_SetCursor(void* cursorHandle)
    EEL2: extension_api("JS_Mouse_SetCursor", void* cursorHandle)
    Lua: reaper.JS_Mouse_SetCursor(identifier cursorHandle)
    Python: JS_Mouse_SetCursor(void cursorHandle)

    Sets the mouse cursor.  (Only lasts while script is running, and for a single "defer" cycle.)


    Parameters:
    identifier cursorHandle


    ^ Reaper version 5.974 JS version 0.951JS_Mouse_SetPosition

    C: bool JS_Mouse_SetPosition(int x, int y)
    EEL2: bool extension_api("JS_Mouse_SetPosition", int x, int y)
    Lua: boolean retval = reaper.JS_Mouse_SetPosition(integer x, integer y)
    Python: Boolean retval = JS_Mouse_SetPosition(Int x, Int y)

    Moves the mouse cursor to the specified coordinates.


    Returnvalues:
    boolean

    Parameters:
    integer x
    integer y


    ^ Reaper version 6.74SetMouseModifier

    C: void SetMouseModifier(const char* context, int modifier_flag, const char* action)
    EEL2: SetMouseModifier("context", int modifier_flag, "action")
    Lua: reaper.SetMouseModifier(string context, integer modifier_flag, string action)
    Python: RPR_SetMouseModifier(String context, Int modifier_flag, String action)

    Set the mouse modifier assignment for a specific modifier key assignment, in a specific context.

    Context is a string like "MM_CTX_ITEM". Find these strings by modifying an assignment in Preferences/Editing/Mouse Modifiers, then looking in reaper-mouse.ini.

    Modifier flag is a number from 0 to 15: add 1 for shift, 2 for control, 4 for alt, 8 for win. (macOS: add 1 for shift, 2 for command, 4 for opt, 8 for control.)

    For left-click and double-click contexts, the action can be any built-in command ID number or any custom action ID string. Find built-in command IDs in the REAPER actions window (enable "show action IDs" in the context menu), and find custom action ID strings in reaper-kb.ini.

    For built-in mouse modifier behaviors, find action IDs (which will be low numbers) by modifying an assignment in Preferences/Editing/Mouse Modifiers, then looking in reaper-mouse.ini. Assigning an action of -1 will reset that mouse modifier behavior to factory default. See GetMouseModifier.

    Note: the action string may have a space and 'c' or 'm' appended to it to specify command ID vs mouse modifier ID. Special case: SetMouseModifier(context, -1, -1) will reset the entire context to default. Special case: SetMouseModifier(-1, -1, -1) will reset all contexts to default.

    See Docs for reaper-mouse.ini for more details


    Parameters:
    string context
    the context of the mouse-modifier
    integer modifier_flag
    the flag for the mouse-modifiers + keyboard-modifiers(see description)
    string action
    the action to bind this modifier to


    ^ Reaper version 5.62CSurf_FlushUndo

    C: void CSurf_FlushUndo(bool force)
    EEL2: CSurf_FlushUndo(bool force)
    Lua: reaper.CSurf_FlushUndo(boolean force)
    Python: RPR_CSurf_FlushUndo(Boolean force)

    call this to force flushing of the undo states after using CSurf_On*Change()

    Parameters:
    boolean force


    ^ Reaper version 5.62TrackList_UpdateAllExternalSurfaces

    C: void TrackList_UpdateAllExternalSurfaces()
    EEL2: TrackList_UpdateAllExternalSurfaces()
    Lua: reaper.TrackList_UpdateAllExternalSurfaces()
    Python: RPR_TrackList_UpdateAllExternalSurfaces()




    ^ Reaper version 5.974 JS version 0.951JS_ReaScriptAPI_Version

    C: void JS_ReaScriptAPI_Version(double* versionOut)
    EEL2: extension_api("JS_ReaScriptAPI_Version", &version)
    Lua: number version = reaper.JS_ReaScriptAPI_Version()
    Python: (Float version) = JS_ReaScriptAPI_Version(versionOut)

    Returns the version of the js_ReaScriptAPI extension.


    Returnvalues:
    number version


    ^ Reaper version 5.974 JS version 1.220JS_Actions_CountShortcuts

    C: int JS_Actions_CountShortcuts(int section, int cmdID)
    EEL2: int extension_api("JS_Actions_CountShortcuts", int section, int cmdID)
    Lua: integer retval = reaper.JS_Actions_CountShortcuts(integer section, integer cmdID)
    Python: Int retval = JS_Actions_CountShortcuts(Int section, Int cmdID)

    Counts the shortcuts available for a specific action within a section.

    Returnvalues:
    integer retval
    the number of shortcuts available

    Parameters:
    integer section
    the section of the action:
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the command-id of the action, whose shortcuts you want to count


    ^ Reaper version 5.974 JS version 1.220JS_Actions_DeleteShortcut

    C: bool JS_Actions_DeleteShortcut(int section, int cmdID, int shortcutidx)
    EEL2: bool extension_api("JS_Actions_DeleteShortcut", int section, int cmdID, int shortcutidx)
    Lua: boolean retval = reaper.JS_Actions_DeleteShortcut(integer section, integer cmdID, integer shortcutidx)
    Python: Boolean retval = JS_Actions_DeleteShortcut(Int section, Int cmdID, Int shortcutidx)

    Deletes a shortcut of a specific action within a section.


    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful

    Parameters:
    integer section
    the section of the action:
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the command-id of the action, whose shortcut you want to delete
    integer shortcutidx
    the shortcut that you want to delete; 0-based


    ^ Reaper version 5.974 JS version 1.220JS_Actions_DoShortcutDialog

    C: bool JS_Actions_DoShortcutDialog(int section, int cmdID, int shortcutidx)
    EEL2: bool extension_api("JS_Actions_DoShortcutDialog", int section, int cmdID, int shortcutidx)
    Lua: boolean retval = reaper.JS_Actions_DoShortcutDialog(integer section, integer cmdID, integer shortcutidx)
    Python: Boolean retval = JS_Actions_DoShortcutDialog(Int section, Int cmdID, Int shortcutidx)

    Opens the do-shortcut-dialog, which allows you setting a shortcut for a specific action.

    If the shortcut index is higher than the current number of shortcuts, it will add a new shortcut.

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    integer section
    the section of the action:
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the command-id of the action, whose shortcut you want to set
    integer shortcutidx
    the shortcut that you want to set; 0-based


    ^ Reaper version 5.974 JS version 1.220JS_Actions_GetShortcutDesc

    C: bool JS_Actions_GetShortcutDesc(int section, int cmdID, int shortcutidx, char* descOut, int descOut_sz)
    EEL2: bool extension_api("JS_Actions_GetShortcutDesc", int section, int cmdID, int shortcutidx, #desc)
    Lua: boolean retval, string desc = reaper.JS_Actions_GetShortcutDesc(integer section, integer cmdID, integer shortcutidx)
    Python: (Boolean retval, Int section, Int cmdID, Int shortcutidx, String descOut, Int descOut_sz) = JS_Actions_GetShortcutDesc(section, cmdID, shortcutidx, descOut, descOut_sz)

    returns the description of a shortcut, as stored for a specific action within a section.

    This will be the shown representation of the shortcut as seen in the actionlist. That means, it is localized!

    Returnvalues:
    boolean retval
    true, getting was successful; false, getting was unsuccessful
    string desc
    the description of the shortcut; "", if shortcut is not available

    Parameters:
    integer section
    the section of the action:
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer cmdID
    the command-id of the action, whose shortcut-description you want to get
    integer shortcutidx
    the shortcut whose description you want to get; 0-based


    ^ Reaper version 5.62gfx.arc

    Lua: gfx.arc(integer x, integer y, integer r, number ang1, number ang2, optional number antialias)

    Draws an arc of the circle centered at x,y, with ang1/ang2 being specified in radians.

    Parameters:
    integer x
    x position of the center of the circle
    integer y
    y position of the center of the circle
    integer r
    the radius of the circle
    number ang1
    the beginning of the circle in radians; meant for partial circles; 0-6.28
    number ang2
    the end of the circle in radians; meant for partial circles; 0-6.28
    optional number antialias
    <=0.5, antialias off; >0.5, antialias on


    ^ Reaper version 6.46gfx.blit

    Lua: integer source = gfx.blit(integer source, number scale, number rotation, optional number srcx, optional number srcy, optional number srcw, optional number srch, optional integer destx, optional integer desty, optional integer destw, optional integer desth, optional integer rotxoffs, optional integer rotyoffs)

    Blits(draws) the content of source-image to another source-image or an opened window.

    Copies from source (-1 = main framebuffer, or an image from gfx.loadimg() etc), using current opacity and copy mode (set with gfx.a, gfx.mode).

    If destx/desty are not specified, gfx.x/gfx.y will be used as the destination position.

    scale (1.0 is unscaled) will be used only if destw/desth are not specified.

    rotation is an angle in radians

    srcx/srcy/srcw/srch specify the source rectangle (if omitted srcw/srch default to image size)

    destx/desty/destw/desth specify destination rectangle (if not specified destw/desth default to srcw/srch * scale).

    Parameters:
    integer source
    the source-image/framebuffer to blit; -1 to 1023; -1 for the currently displayed framebuffer.
    number scale
    the scale-factor; 1, for normal size; smaller or bigger than 1 make image smaller or bigger
    has no effect, when destx, desty, destw, desth are given
    number rotation
    the rotation-factor; 0 to 6.28; 3.14 for 180 degrees.
    optional number srcx
    the x-coordinate-offset in the source-image
    optional number srcy
    the y-coordinate-offset in the source-image
    optional number srcw
    the width-offset in the source-image
    optional number srch
    the height-offset in the source-image
    optional integer destx
    the x-coordinate of the blitting destination
    optional integer desty
    the y-coordinate of the blitting destination
    optional integer destw
    the width of the blitting destination; may lead to stretched images
    optional integer desth
    the height of the blitting destination; may lead to stretched images
    optional number rotxoffs
    influences rotation
    optional number rotyoffs
    influences rotation


    ^ Reaper version 5.62gfx.blitext

    Lua: number retval = gfx.blitext(source,coordinatelist,rotation)

    Deprecated, use gfx.blit instead.

    Note: the naming of the function might be misleading, as it has nothing to do with blitting of text, but rather is called Blit Ext.

    Returnvalues:
    number retval
    the index of the source that got blitted

    Parameters:
    integer source
    the source of the blitted image
    table coordinatelist
    number rotation


    ^ Reaper version 5.62gfx.blurto

    Lua: gfx.blurto(integer x, integer y)

    Blurs the region of the screen between gfx.x,gfx.y and x,y, and updates gfx.x,gfx.y to x,y.

    Parameters:
    integer x
    x position of the other edge of the blur-region
    integer y
    y position of the other edge of the blur-region


    ^ Reaper version 5.62gfx.circle

    Lua: gfx.circle(integer x, integer y, integer r, optional number fill, optional number antialias)

    Draws a circle, optionally filling/antialiasing.

    Parameters:
    integer x
    x position of center of the circle
    integer y
    y position of center of the circle
    integer r
    radius of the circle
    optional number fill
    <=0.5, circle is not filled; >0.5, circle is filled
    optional number antialias
    <=0.5, circle is not antialiased; >0.5, circle is antialiased


    ^ Reaper version 5.62gfx.clienttoscreen

    Lua: int convx, int convy = gfx.clienttoscreen(integer x, integer y)

    Converts the coordinates x,y to screen coordinates, returns those values.

    Returnvalues:
    integer convx
    the converted coordinate in relation of the screen-viewport
    integer convy
    the converted coordinate in relation of the screen-viewport

    Parameters:
    integer x
    the x coordinate within(!) the gfx.init()-window, that shall be converted to screen-coordinates
    integer y
    the y coordinate within(!) the gfx.init()-window, that shall be converted to screen-coordinates


    ^ Reaper version 5.95gfx.deltablit

    Lua: number retval = gfx.deltablit(integer srcimg, integer srcs, integer srct, integer srcw, integer srch, number destx, number desty, number destw, number desth, number dsdx, number dtdx, number dsdy, number dtdy, number dsdxdy, number dtdxdy,optional integer usecliprect)

    Blits from srcimg(srcs,srct,srcw,srch) to destination (destx,desty,destw,desth). Source texture coordinates are s/t, dsdx represents the change in s coordinate for each x pixel, dtdy represents the change in t coordinate for each y pixel, etc. dsdxdy represents the change in dsdx for each line. If usecliprect is specified and 0, then srcw/srch are ignored.

    This function allows you to manipulate the image, which you want to blit, by transforming, moving or cropping it.

    To do rotation, you can manipulate dtdx and dsdy together.

    Returnvalues:
    number retval
    unknown, usually 0

    Parameters:
    integer srcimg
    image - the image to blit
    integer srcs
    positiondeltaX - the delta of the x-position of the image within the blitted area in pixels(useful default: 0)
    integer srct
    positiondeltaY - the delta of the y-position of the image within the blitted area in pixels(useful default: 0)
    integer srcw
    unknown - (useful default: 0)
    integer srch
    unknown - (useful default: 0)
    number destx
    positiondeltaX - the delta of the x-position of the blitted area in pixels(useful default: 0)
    number desty
    positiondeltaY - the delta of the y-position of the blitted area in pixels(useful default: 0)
    number destw
    blitsizeX - the x-size of the blitted area in pixels; the deltaimage might be cropped, if it exceeds this size(useful default: width of the image)
    number desth
    blitsizeY - the y-size of the blitted area in pixels; the deltaimage might be cropped, if it exceeds this size(useful default: height of the image)
    number dsdx
    stretchfactorX, the lower, the more stretched is the image(minimum 0; 1 for full size); limited by blitsizeX(useful default: 1)
    number dtdx
    deltaY: the delta of the right side of the image, related to the left side of the image; positive, right is moved up; negative, right is moved down; this delta is linear(useful default: 0)
    number dsdy
    deltaX: the delta of the bottom side of the image, related to the top side of the image; positive, bottom is moved left; negative, bottom is moved right; this delta is linear(useful default: 0)
    number dtdy
    stretchfactorY, the lower, the more stretched is the image(minimum 0; 1 for full size); limited by blitsizeY(useful default: 1)
    number dsdxdy
    deltacurvedY: the delta of the right side of the image, related to the left side of the image; positive, right is moved up; negative, right is moved down; this delta "curves" the delta via a bezier(useful default: 0)
    number dtdxdy
    deltacurvedX: the delta of the bottom side of the image, related to the top side of the image; positive, bottom is moved left; negative, bottom is moved right; this delta "curves" the delta via a bezier(useful default: 0)
    optional integer usecliprect
    can be set to 0 or 1(useful default: 0)


    ^ Reaper version 5.62gfx.dock

    Lua: number querystate, optional integer window_x_position, optional integer window_y_position, optional integer window_width, optional integer window_height = gfx.dock(integer v, optional integer wx, optional integer wy, optional integer ww, optional integer wh)

    Queries or sets the docking-state of the gfx.init()-window.
    Call with v=-1 to query docked state, otherwise v>=0 to set docked state.
    State is &1 if docked, second byte is docker index (or last docker index if undocked).

    If you pass numbers to wx-wh, you can query window size and position additionally to the dock-state

    A specific docking index does not necessarily represent a specific docker, means, you can not query/set left docker top, but rather all dockers that exist in the current screenset.
    So the first queried/set docker can be top-left-docker or the top docker or even one of the bottom dockers.
    The order doesn't seem to make any sense. Especially with more than 16 windows docked in the current screenset.

    Returnvalues:
    integer querystate
    0 if not docked; &1 if docked;  the bits &256, &512, &1024, &2048 get the docker-index
    integer window_x_position
    the x position of the window in pixels; only if wx~=nil
    integer window_y_position
    the y position of the window in pixels; only if wy~=nil
    integer window_width
    the width of the window in pixels; only if ww~=nil
    integer window_height
    the height of the window in pixels ; only if wh~=nil

    Parameters:
    integer v
    -1, query docking-state; 0 and higher, set state of the window to docked; the bits &256, &512, &1024, &2048 set the docker-index
    optional integer wx
    set to a number to query current-windowx-position
    optional integer wy
    set to a number to query current-windowy-position
    optional integer ww
    set to a number to query current-window-width
    optional integer wh
    set to a number to query current-window-height


    ^ Reaper version 5.62gfx.drawchar

    Lua: integer char = gfx.drawchar(integer char)

    Draws the character (can be a numeric ASCII code as well), to gfx.x, gfx.y, and moves gfx.x over by the size of the character.

    Returnvalues:
    integer char
    the character drawn; 0, if invalid(like strings or characters passed as parameter)

    Parameters:
    integer char
    the numeric ASCII-representation of the character to be drawn


    ^ Reaper version 5.62gfx.drawnumber

    Lua: gfx.drawnumber(number n, integer ndigits)

    Draws the number n with ndigits of precision to gfx.x, gfx.y, and updates gfx.x to the right side of the drawing. The text height is gfx.texth.

    Parameters:
    number n
    the number to be drawn
    integer ndigits
    the number of digits for the precision


    ^ Reaper version 5.62gfx.drawstr

    Lua: gfx.drawstr(string str, optional integer flags, optional integer right, optional integer bottom)

    Draws a string at gfx.x, gfx.y, and updates gfx.x/gfx.y so that subsequent draws will occur in a similar place.

    You can optionally set a clipping area for the text, if you set parameter flags&256 and the parameters right and bottom.

    On Windows, fonts with a size > 255 may have trouble of being displayed correctly, due problems with the font-rendering and the alpha-channel. Justin's post about this.
    To overcome this, try this to disable the alpha-channel:
    By default, gfx.blit() blits with alpha channel. You can disable this behavior by setting "gfx.mode=2" before calling gfx.blit().

    Parameters:
    string str
    the string to be drawn into the gfx.init-window
    optional integer flags
    influence, how the text shall be drawn
    flags&1: center horizontally
    flags&2: right justify
    flags&4: center vertically
    flags&8: bottom justify
    flags&256: ignore right/bottom, otherwise text is clipped to (gfx.x, gfx.y, right, bottom)
    optional integer right
    if flags&256 is set, this parameter clips text on the right side in pixels
    optional integer bottom
    if flags&256 is set, this parameter clips text on the bottom side in pixels


    ^ Reaper version 6.74gfx.getchar

    Lua: integer charactercode = gfx.getchar(optional integer character, optional integer unicode_char)

    If char is 0 or omitted, returns a character from the keyboard queue, or 0 if no character is available, or -1 if the graphics window is not open.

    If char is specified and nonzero, that character's status will be checked, and the function will return greater than 0 if it is pressed.
    Common values are standard ASCII, such as 'a', 'A', '=' and '1', but for many keys multi-byte values are used,
    including 'home', 'up', 'down', 'left', 'right', 'f1'.. 'f12', 'pgup', 'pgdn', 'ins', and 'del'.

    Shortcuts with scope "Global + textfields" will still run the associated action, scope of "Normal" or "Global" will not.

    Modified and special keys can also be returned, including:  

    - Ctrl/Cmd+A..Ctrl+Z as 1..26  
    - Ctrl/Cmd+Alt+A..Z as 257..282  
    - Alt+A..Z as 'A'+256..'Z'+256  
    - 27 for ESC  
    - 13 for Enter  
    - ' ' for space  
    -
    - use 65536 as parameter charactercode to query special flags, returns: &1 (supported in this script), &2=window has focus, &4=window is visible  

    If the user typed in multiple characters, the character queue will hold them. So calling gfx.getchar multiple times, until it returns 0 or -1 will give you all typed keys.

    Typed characters between 256 and 1024(maybe higher?) seem to hint at multibyte-unicode characters.
    That means, you need to take the next character-value in the character-queue into consideration as well to get the current unicode-character!

    If unichar is specified, it will be set to the unicode value of the key if available (and the return value may be the unicode value or a raw key value as described above, depending). If unichar is not specified, unicode codepoints greater than 255 will be returned as 'u'<<24 + value

    Note that calling gfx.getchar() at least once causes gfx.mouse_cap to reflect keyboard modifiers even when the mouse is not captured.


    Returnvalues:
    integer charactercode
    either the charactercode or 0 if nothing is pressed
    -1, if the gfx.init-window is closed

    When the parameter character is given and not 0, charactercode is either
    0, nothing is pressed, or
    >0, the character you want to check for is pressed.
    integer unicode_charactercode
    the charactercode of the character encoded as utf8-unicode

    Parameters:
    optional integer character
    the character to check for; use 65536 to check window-state(visible, focus)
       &1 (supported in this script), &2=window has focus, &4=window is visible


    ^ Reaper version 5.62gfx.getfont

    Lua: integer fontindex, string fontface = gfx.getfont()

    Returns current font index, and the actual font face used by this font (if available).

    Use gfx.setfont to set a font for a specific index.

    Returnvalues:
    integer fontindex
    the index of the font used.
    string fontface
    the font-face(fontname) of the currently used font

    see also:
  • lua_gfx.setfont - sets a font, used by the gfx-functions


  • ^ Reaper version 5.62gfx.getimgdim

    Lua: integer w, integer h = gfx.getimgdim(integer handle)

    Retrieves the dimensions of an image specified by handle, returns w, h pair.
    Handle is basically a frame-buffer.

    Returnvalues:
    integer w
    the width of the image-handle in pixels
    integer h
    the height of the image-handle in pixels

    Parameters:
    integer handle
    the index of the image-handle/framebuffer to retrieve the dimensions from;-1 to 1023; -1 for the currently displayed framebuffer.


    ^ Reaper version 5.62gfx.getpixel

    Lua: integer r, integer g, integer b = gfx.getpixel()

    Returns r,g,b values [0..1] of the pixel at (gfx.x,gfx.y)

    Returnvalues:
    integer r
    the red-color-value, a value between 0 to 1
    integer g
    the green-color-value, a value between 0 to 1
    integer b
    the blue-color-value, a value between 0 to 1


    ^ Reaper version 5.62gfx.gradrect

    Lua: gfx.gradrect(number x, number y, number w, number h, number r, number g, number b, number a[, optional number drdx, optional number dgdx, optional number dbdx, optional number dadx, optional number drdy, optional number dgdy, optional number dbdy, optional number dady])

    Fills a gradient rectangle with the color and alpha specified. drdx-dadx reflect the adjustment (per-pixel) applied for each pixel moved to the right, drdy-dady are the adjustment applied for each pixel moved toward the bottom. Normally drdx=adjustamount/w, drdy=adjustamount/h, etc.

    Parameters:
    number x
    number y
    number w
    number h
    number r
    number g
    number b
    number a
    optional number drdx
    optional number dgdx
    optional number dbdx
    optional number dadx
    optional number drdy
    optional number dgdy
    optional number dbdy
    optional number dady


    ^ Reaper version 6.40gfx.init

    Lua: integer retval = gfx.init(string name, optional integer width, optional integer height, optional integer dockstate, optional integer xpos, optional integer ypos)

    Initializes the graphics window with title name. Suggested width and height can be specified.Once the graphics window is open, gfx.update() should be called periodically.

    Only one graphics-window can be opened per script! Calling gfx.ini after a window has been opened has no effect.

    To resize/reposition the window, call gfx.init again and pass an empty string as name-parameter.

    To retitle the window, run gfx.init again with the new title as parameter name.

    To get the current window-states, dimensions, etc, you can use gfx.dock).

    Returnvalues:
    number retval
    1.0, if window is opened

    Parameters:
    string name
    the name of the window, which will be shown in the title of the window
    optional integer width
    the width of the window; minmum is 50
    optional integer height
    the height of the window; minimum is 16
    optional integer dockstate
    &1=0, undocked; &1=1, docked
    optional integer xpos
    x-position of the window in pixels; minimum is -80
    optional integer ypos
    y-position of the window in pixels; minimum is -15

    see also:
  • lua_gfx.update - updates the gfx-window
  • lua_gfx.dock - docks the gfx-window


  • ^ Reaper version 5.62gfx.line

    Lua: gfx.line(integer x, integer y, integer x2, integer y2, optional number aa)

    Draws a line from x,y to x2,y2, and if aa is not specified or 0.5 or greater, it will be antialiased.

    Parameters:
    integer x
    x-position of start of the line in pixels
    integer y
    y-position of start of the line in pixels
    integer x2
    x-position of the end of the line in pixels
    integer y2
    y-position of the end of the line in pixels
    optional number aa
    <0.5, no antialias; >=0.5, antialias


    ^ Reaper version 5.62gfx.lineto

    Lua: gfx.lineto(integer x, integer y, number aa)

    Draws a line from gfx.x,gfx.y to x,y. If aa is 0.5 or greater, then antialiasing is used. Updates gfx.x and gfx.y to x,y.

    Parameters:
    integer x
    x-position of the end of the line in pixels
    integer y
    y-position of the end of the line in pixels
    optional number aa
    <0.5, no antialias; >=0.5, antialias


    ^ Reaper version 5.62gfx.loadimg

    Lua: integer retval = gfx.loadimg(integer image, string filename)

    Load image from filename into slot 0..1024-1 specified by image. Returns the image index if success, otherwise -1 if failure. The image will be resized to the dimensions of the image file.

    Returnvalues:
    integer retval
    the image-index in case of successful loading; -1 if loading failed

    Parameters:
    integer image
    the buffer-index(0 - 1023), in which to load the image
    string filename
    the path+filename of the image to be loaded


    ^ Reaper version 5.62gfx.measurechar

    Lua: integer width, integer height = gfx.measurechar(integer char)

    Measures the drawing dimensions of a character with the current font (as set by gfx.setfont).

    Returns width and height of character.

    Returnvalues:
    integer width
    the width of the character in pixels
    integer height
    the height of the character in pixels

    Parameters:
    integer char
    ASCII-Code of the character to measure

    see also:
  • lua_gfx.setfont - sets a font, used by the gfx-functions


  • ^ Reaper version 5.62gfx.measurestr

    Lua: integer width, integer height = gfx.measurestr(string str)

    Measures the drawing dimensions of a string with the current font (as set by gfx.setfont).

    Returns width and height of string.

    Returnvalues:
    integer width
    the width of the drawing dimensions of str in pixels
    integer height
    the height of the drawing dimensions of str in pixels

    Parameters:
    string str
    the string, whose drawing dimensions you want to know

    see also:
  • lua_gfx.setfont - sets a font, used by the gfx-functions


  • ^ Reaper version 5.62gfx.muladdrect

    Lua: integer retval = gfx.muladdrect(integer x, integer y, integer w, integer h, number mul_r, number mul_g, number mul_b, optional number mul_a, optional number add_r, optional number add_g, optional number add_b, optional number add_a)

    Multiplies each pixel within the given rectangle(x,y,w,h) by the mul_*-parameters and optionally adds add_*-parameters, and updates in-place. Useful for changing brightness/contrast, or other effects.

    The multiplied values usually affect only pixels, that are not black(0,0,0,0), while the added values affect all pixels.

    Returnvalues:
    integer retval
    unknown

    Parameters:
    integer x
    the x-position of the rectangle in pixels, in which you want to multiply/add colorvalues to
    integer y
    the y-position of the rectangle in pixels, in which you want to multiply/add colorvalues to
    integer w
    the width of the rectangle in pixels, in which you want to multiply/add colorvalues to
    integer h
    the height of the rectangle in pixels, in which you want to multiply/add colorvalues to
    number mul_r
    the red-value to multiply by within the rectangle; 0 to 1
    number mul_g
    the green-value to multiply by within the rectangle; 0 to 1
    number mul_b
    the blue-value to multiply by within the rectangle; 0 to 1
    optional number mul_a
    the alpha-value to multiply by within the rectangle; 0 to 1
    optional number add_r
    the red-value to add by within the rectangle; 0 to 1
    optional number add_g
    the green-value to add by within the rectangle; 0 to 1
    optional number add_b
    the blue-value to add by within the rectangle; 0 to 1
    optional number add_a
    the alpha-value to add by within the rectangle; 0 to 1


    ^ Reaper version 5.62gfx.printf

    Lua: number retval = gfx.printf(string format[, various ...])

    Formats and draws a string at gfx.x, gfx.y, and updates gfx.x/gfx.y accordingly (the latter only if the formatted string contains newline). For more information on format strings, see sprintf()

        * %% = %
        * %s = string from parameter
        * %d = parameter as integer
        * %i = parameter as integer
        * %u = parameter as unsigned integer
        * %x = parameter as hex (lowercase) integer
        * %X = parameter as hex (uppercase) integer
        * %c = parameter as character
        * %f = parameter as floating point
        * %e = parameter as floating point (scientific notation, lowercase)
        * %E = parameter as floating point (scientific notation, uppercase)
        * %g = parameter as floating point (shortest representation, lowercase)
        * %G = parameter as floating point (shortest representation, uppercase)

    Many standard C printf() modifiers can be used, including:

        * %.10s = string, but only print up to 10 characters
        * %-10s = string, left justified to 10 characters
        * %10s = string, right justified to 10 characters
        * %+f = floating point, always show sign
        * %.4f = floating point, minimum of 4 digits after decimal point
        * %10d = integer, minimum of 10 digits (space padded)
        * %010f = integer, minimum of 10 digits (zero padded)

    Values for format specifiers can be specified as additional parameters to gfx.printf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).

    Returnvalues:
    number retval
    always 0

    Parameters:
    string format
    the format, as which the string shall be printed(refer to the description)
    various ...
    the value to be shown, canbe of various datatypes


    ^ Reaper version 5.62gfx.quit

    Lua: integer retval = gfx.quit()

    Closes the graphics window.

    Returnvalues:
    integer retval
    unknown, usually 0


    ^ Reaper version 5.62gfx.rect

    Lua: integer retval = gfx.rect(integer x, integer y, integer w, integer h, optional integer filled)

    Fills a rectangle at x,y, w,h pixels in dimension, filled by default.

    Returnvalues:
    integer retval
    unknown; usually 0

    Parameters:
    integer x
    the x-position of the upper left corner
    integer y
    the y-position of the upper left corner
    integer w
    the width of the rectangle; must be positive
    integer h
    the height of the rectangle; must be positive
    optional integer filled
    0, unfilled; 1, filled; omitted/nil, filled


    ^ Reaper version 5.62gfx.rectto

    Lua: integer x_coordinate = gfx.rectto(integer x, integer y)

    Fills a rectangle from gfx.x,gfx.y to x,y. Updates gfx.x,gfx.y to x,y.

    Returnvalues:
    integer x_coordinate
    the x-coordinate given as x-parameter; the purpose is unknown

    Parameters:
    integer x
    the x-coordinate, to which the rectangle shall be drawn to
    integer y
    the y-coordinate, to which the rectangle shall be drawn to


    ^ Reaper version 5.62gfx.roundrect

    Lua: integer retval = gfx.roundrect(integer x, integer y, integer w, integer h, number radius, optional integer antialias)

    Draws a rectangle with rounded corners.

    Returnvalues:
    integer retval
    unknown

    Parameters:
    integer x
    the x-coordinate of the upper-left corner of the rectangle in pixels
    integer y
    the y-coordinate of the upper-left corner of the rectangle in pixels
    integer w
    the width of the rectangle in pixels
    integer h
    the height of the rectangle in pixels
    number radius
    the radius of the rounded corners of the rectangle; 0, for a normal rectangle;
    number antialias
    0, no antialias; 1 and higher, apply antialias to the rectangle


    ^ Reaper version 5.62gfx.screentoclient

    Lua: integer convx, integer convy = gfx.screentoclient(integer x, integer y)

    Converts the screen coordinates x,y to client coordinates, returns those values.

    Returnvalues:
    integer convx
    the x-client-coordinate, as converted from the x-screen-coordinate, in pixels
    integer convy
    the y-client-coordinate, as converted from the y-screen-coordinate, in pixels

    Parameters:
    integer x
    the x-screen-coordinate that shall be converted, in pixels
    integer y
    the y-screen-coordinate that shall be converted, in pixels


    ^ Reaper version 5.97gfx.set

    Lua: integer retval = gfx.set(number r, optional number g, optional number b, optional number a2, optional integer mode, optional integer dest)

    Sets color, drawing mode and optionally the drawing-image-source-destination.
    If sets the corresponding gfx-variables.
    Sets gfx.r/gfx.g/gfx.b/gfx.a2/gfx.mode sets gfx.dest if final parameter specified

    Returnvalues:
    integer retval
    unknown

    Parameters:
    number r
    the red-value; 0 to 1; if only parameter r is given, it's value will be used for g, b as well
    optional number g
    the green-value; 0 to 1
    optional number b
    the blue-value; 0 to 1
    optional number a2
    the alpha-value; 0 to 1
    optional integer mode
    the drawing-mode;
    Set to 0 for default options. Add 1.0 for additive blend mode (if you wish to do subtractive, set gfx.a to negative and use gfx.mode as additive).
    Add 2.0 to disable source alpha for gfx.blit().
    Add 4.0 to disable filtering for gfx.blit().
    optional integer dest
    the source-image/framebuffer to draw to; -1 to 1023; -1 for the currently displayed framebuffer.


    ^ Reaper version 5.62gfx.setcursor

    Lua: number retval = gfx.setcursor(optional integer resource_id, optional string custom_cursor_name)

    Sets the mouse cursor. resource_id is a value like 32512 (for an arrow cursor), custom_cursor_name is a string like "arrow" (for the REAPER custom arrow cursor). resource_id must be nonzero, but custom_cursor_name is optional.

    examples for resource_id:
        101, enter text
        102, hourglass
        103, cross
        104, arrow up
        105, arrows to left up AND right down
        106, arrows to left down AND right up
        107, arrows to left AND right
        108, arrows to up AND down
        109, arrows to up, down, left and right
        110, stop sign
        111, arrow with hourglass
        112, arrow with question mark
        113, a pen
        114, hand with index finger pointing
        115, a square
        116, arrow with cd
        
    works only with gfx-window opened.

    Returnvalues:
    number retval
    0.0, gfx-window not opened; 1.0, gfx-window opened

    Parameters:
    optional integer resource_id
    the index of the mousecursor to be used
    optional string custom_cursor_name
    a name of the mousecursor to be used


    ^ Reaper version 5.62gfx.setfont

    Lua: gfx.setfont(integer idx,optional string fontface, optional integer sz, optional integer flags)

    Can select a font and optionally configure it.

    After calling gfx_setfont(), gfx_texth may be updated to reflect the new average line height.

    Parameters:
    integer idx
    the font-id; idx=0 for default bitmapped font, no configuration is possible for this font.
    idx=1..16 for a configurable font
    optional string fontface
    the name of the font, like "arial"
    optional integer sz
    the size of the font (8-100)
    optional integer flags
    flags, how to render the text; up to 4 flags can be passed at the same time
    a multibyte character, which can include 'i' for italics, 'u' for underline, or 'b' for bold.
    These flags may or may not be supported depending on the font and OS.
      66 and 98, Bold (B), (b)
      73 and 105, italic (I), (i)
      79 and 111, white outline (O), (o)
      82 and 114, blurred (R), (r)
      83 and 115, sharpen (S), (s)
      85 and 117, underline (U), (u)
      86 and 118, inVerse (V), (v)

    To create such a multibyte-character, assume this flag-value as a 32-bit-value.
    The first 8 bits are the first flag, the next 8 bits are the second flag,
    the next 8 bits are the third flag and the last 8 bits are the second flag.
    The flagvalue(each dot is a bit): .... ....   .... ....   .... ....   .... ....
    If you want to set it to Bold(B) and Italic(I), you use the ASCII-Codes of both(66 and 73 respectively),
    take them apart into bits and set them in this 32-bitfield.
    The first 8 bits will be set by the bits of ASCII-value 66(B), the second 8 bits will be set by the bits of ASCII-Value 73(I).
    The resulting flagvalue is: 0100 0010   1001 0010   0000 0000   0000 0000
    which is a binary representation of the integer value 18754, which combines 66 and 73 in it.


    ^ Reaper version 6.14gfx.setimgdim

    Lua: integer retval = gfx.setimgdim(integer image, integer w, integer h)

    Resize image referenced by index 0..1024-1, width and height must be 0-8192. The contents of the image will be undefined after the resize.

    Returnvalues:
    integer retval
    0, if image couldn't be set(e.g. no such handle exists); 1, if setting new dimensions was successful

    Parameters:
    integer image
    the image-handle/framebuffer, whose dimensions you want to set
    integer w
    the new width of the image-handle
    integer h
    the new height of the image-handle


    ^ Reaper version 5.62gfx.setpixel

    Lua: integer retval = gfx.setpixel(number r, number g, number b)

    Writes a pixel of r,g,b to gfx.x,gfx.y.

    Returnvalues:
    integer retval
    1, if writing that pixel was successful; -1, is not

    Parameters:
    number r
    the red-color-value of the pixel; 0-1
    number g
    the green-color-value of the pixel; 0-1
    number b
    the blue-color-value of the pixel; 0-1


    ^ Reaper version 5.62gfx.showmenu

    Lua: integer selection = gfx.showmenu(string menu_string)

    Shows a popup menu at gfx_x,gfx_y.
    str is a list of fields separated by | characters. Each field represents a menu item.
    Fields can start with special characters:

    # : grayed out
    ! : checked
    > : this menu item shows a submenu
    < : last item in the current submenu
    & : before a character makes it underlined as the quick-access-character for this menu-item

    An empty field || will appear as a separator in the menu.

    Example: selection = gfx.showmenu("first item, followed by separator||!second item, checked|>third item which spawns a submenu|#first item in submenu, grayed out|>second and last item in submenu|fourth item in top menu")

    gfx.showmenu returns 0 if the user selected nothing from the menu, 1 if the first field is selected, etc.
    Note: It skips submenus and separators in the selection-number, so a if menu_string="Entry1||

    Returnvalues:
    integer selection
    the menu-entry the user selected, with 1 for the first, 2 for the second, etc; 0, nothing was selected

    Parameters:
    string menu_string
    a string with the menu-entries; separate the entrynames with a |
      Each menu-entry can start with special characters that influence the appearance of that entry:
      #, item is grayed out; !, item is checked; >, this menu item shows a submenu;<, last item in the current submenu.


    ^ Reaper version 5.62gfx.transformblit

    Lua: number retval = gfx.transformblit(integer srcimg, integer destx, integer desty, integer destw, integer desth, integer div_w, integer div_h, table table)

    Blits to destination at (destx,desty), size (destw,desth). div_w and div_h should be 2..64, and table should point to a table of 2*div_w*div_h values (table can be a regular table or (for less overhead) a reaper.array). Each pair in the table represents a S,T coordinate in the source image, and the table is treated as a left-right, top-bottom list of texture coordinates, which will then be rendered to the destination.


    Returnvalues:
    number retval

    Parameters:
    integer srcimg
    the image-index (1 to 1024) that you want to blit into the screenbuffer -1
    integer destx
    x position of the blit picture
    integer desty
    y position of the blit picture
    integer destw
    width of the blit picture
    integer desth
    height of the blit picture
    integer div_w
    unknown, 2 to 64; probably related to parameter table
    integer div_h
    unknown, 2 to 64; probably related to parameter table
    table table
    a table of the texture coordinates, with each entry being set to a pair of value, eg: 1, 0. Will be read from left to right and from top to bottom.
    table[1]=1,2
    table[2]=2,3
    table[3]=3,1
    How these values work needs more research...


    ^ Reaper version 5.62gfx.triangle

    Lua: gfx.triangle(integer x1, integer y1, integer x2, integer y2, integer x3, integer y3, [optional integer x4, optional integer y4, ...)

    Draws a filled triangle, or any convex polygon.

    Parameters:
    integer x1
    the x-position of the first point of the polygon
    integer y1
    the y-position of the first point of the polygon
    integer x2
    the x-position of the second point of the polygon
    integer y2
    the y-position of the second point of the polygon
    integer x3
    the x-position of the third point of the polygon
    integer y3
    the y-position of the third point of the polygon
    optional integer x4
    the x-position of the fourth point of the polygon
    optional integer y4
    the y-position of the fourth point of the polygon
    ...
    ...
    ...
    ...


    ^ Reaper version 5.62gfx.update

    Lua: gfx.update()

    Updates the graphics display, if opened


    ^ Reaper version 6.30gfx_variables

    Lua: gfx VARIABLES

    The following global variables are special and will be used by the graphics system:

      * gfx.r - current red component (0..1) used by drawing operations.
      * gfx.g - current green component (0..1) used by drawing operations.
      * gfx.b - current blue component (0..1) used by drawing operations.
      * gfx.a2 - current alpha component (0..1) used by drawing operations when writing solid colors (normally ignored but useful when creating transparent images).
      * gfx.a - alpha for drawing (1=normal).
      * gfx.mode - blend mode for drawing. Set mode to 0 for default options. Add 1.0 for additive blend mode (if you wish to do subtractive, set gfx.a to negative and use gfx.mode as additive). Add 2.0 to disable source alpha for gfx.blit(). Add 4.0 to disable filtering for gfx.blit().
      * gfx.w - width of the UI framebuffer.
      * gfx.h - height of the UI framebuffer.
      * gfx.x - current graphics position X. Some drawing functions use as start position and update.
      * gfx.y - current graphics position Y. Some drawing functions use as start position and update.
      * gfx.clear - if greater than -1.0, framebuffer will be cleared to that color. the color for this one is packed RGB (0..255), i.e. red+green*256+blue*65536. The default is 0 (black).
      * gfx.dest - destination for drawing operations, -1 is main framebuffer, set to 0..1024-1 to have drawing operations go to an offscreen buffer (or loaded image).
      * gfx.texth - the (READ-ONLY) height of a line of text in the current font. Do not modify this variable.
      * gfx.ext_retina - to support hidpi/retina, callers should set to 1.0 on initialization, this value will be updated to value greater than 1.0 (such as 2.0) if retina/hidpi. On macOS gfx.w/gfx.h/etc will be doubled, but on other systems gfx.w/gfx.h will remain the same and gfx.ext_retina is a scaling hint for drawing.
      * gfx.mouse_x - current X coordinate of the mouse relative to the graphics window.
      * gfx.mouse_y - current Y coordinate of the mouse relative to the graphics window.
      * gfx.mouse_wheel - wheel position, will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.
      * gfx.mouse_hwheel - horizontal wheel positions, will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.
      * gfx.mouse_cap - a bitfield of mouse and keyboard modifier state:
            1: left mouse button
            2: right mouse button
            4: Control key
            8: Shift key
            16: Alt key
            32: Windows key
            64: middle mouse button
            
    Note: Mousebuttons will be returned after gfx_init(), the other keyboard-modifier only when using gfx_getchar()!
            


    ^ Reaper version 6.20gmem_attach

    Lua: string former_attached_gmemname = reaper.gmem_attach(string sharedMemoryName)

    Causes gmem_read()/gmem_write() to read EEL2/JSFX/Video shared memory segment named by parameter. Set to empty string to detach. 6.20+: returns previous shared memory segment name.

    Must be called, before you can use a specific gmem-variable-index with gmem_write!

    Returnvalues:
    string former_attached_gmemname
    if you change the attached-gmem from one to a new one, this will hold the name of the previous attached shared memory(gmem)

    Parameters:
    string sharedMemoryName
    the name of the shared memory

    see also:
  • lua_gmem_read - reads values from a global shared memory(gmem)
  • lua_gmem_write - writes values from a global shared memory(gmem) that can be accessed


  • ^ Reaper version 5.97gmem_read

    Lua: number retval = reaper.gmem_read(integer index)

    Read (number) value from shared memory attached-to by gmem_attach(). index can be [0..1<<25).

    returns nil if not available

    Returnvalues:
    number retval
    the stored number-value stored in gmem-variable with index

    Parameters:
    integer index
    the index of the memory-variable to read from; index must be 0 and higher

    see also:
  • lua_gmem_attach - attaches a global shared memory(gmem) that can be accessed
  • lua_gmem_write - writes values from a global shared memory(gmem) that can be accessed


  • ^ Reaper version 5.97gmem_write

    Lua: reaper.gmem_write(integer index, number value)

    Write (number) value to shared memory attached-to by gmem_attach(). index can be [0..1<<25).

    Before you can write into a currently unused variable with index "index", you must call gmem_attach first!

    Parameters:
    integer index
    the index of the memory-variable to write to; index must be 0 and higher
    number value
    a number, either integer or float

    see also:
  • lua_gmem_attach - attaches a global shared memory(gmem) that can be accessed
  • lua_gmem_read - reads values from a global shared memory(gmem)


  • ^ Reaper version 5.62atexit

    Lua: reaper.atexit(function function)

    Adds code to be executed when the script finishes or is ended by the user. Typically used to clean up after the user terminates defer() or runloop() code.

    You can't defer this atexit-function, when it is run as exit-function, though, when it is run regularily before exiting the script.

    You can define more than one atexit-function. They will be run in the order they've been registered as atexit-functions.
    For example:

        reaper.atexit(exit1)
        reaper.atexit(exit2)
        reaper.atexit(exit3)

    will run exit1, exit2 and then exit3, when exiting the script.

    You can have up to 1024 atexit-functions set in one script, no matter if its different or the same function.

    Parameters:
    function function
    the function, with which the script shall finish


    ^ Reaper version 5.62defer

    Lua: boolean retval = reaper.defer(function function)

    Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to runloop().Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

    There can be 1024 defer-nodes running at the same time in one script, no matter if it's different functions or the same one.

    Returnvalues:
    boolean retval
    true, node could be created; false, you tried to add more than 1024 defer-nodes in the script

    Parameters:
    function function
    the function to be called, when the current defer/runloop-run has ended


    ^ Reaper version 6.71get_action_context

    Lua: boolean is_new_value, string filename_with_path, integer sectionID, integer cmdID, integer mode, integer resolution, integer val, string contextstr = reaper.get_action_context()

    Returns contextual information about the script, typically MIDI/OSC input values.val will be set to a relative or absolute value depending on mode (=0: absolute mode, >0: relative modes). resolution=127 for 7-bit resolution, =16383 for 14-bit resolution.Notes: sectionID, and cmdID will be set to -1 if the script is not part of the action list. mode, resolution and val will be set to -1 if the script was not triggered via MIDI/OSC.

    For relative mode bindings, calling get_action_context() will return the accumulated relative value in decoded form (not 65 or 63, but +1/-1 etc), and clear the internal state. So if you call it multiple times, the first one will return the accumulated value, and the second will always return 0.

    contextstr may be empty or one of:
      midi:XX[:YY] (one or two bytes hex)
      [wheel|hwheel|mtvert|mthorz|mtzoom|mtrot|mediakbd]:flags
      key:flags:keycode
      osc:/msg[:f=FloatValue|:s=StringValue]
      KBD_OnMainActionEx
      (flags may include V=virtkey, S=shift, A=alt/option, C=control/command, W=win/control)

    Returnvalues:
    boolean is_new_value
    unknown
    string filename_with_path
    the script's own filename with path
    integer sectionID
    the section, in which this script was called
    integer cmdID
    the command-id associated with this script
    integer mode
    -1, if script isn't run by shortcut; 55953, if script is run by shortcut
    integer resolution
    -1, if script isn't run by shortcut; resolution of OSC(14 bit)/MIDI(7 bit)-shortcut
    integer val
    -1, if script isn't run by shortcut; the value sent by OSC or MIDI
    string contextstr
    the shortcut, that ran this action, more info in the description


    ^ Reaper version 6.69gfx.getdropfile

    Lua: integer retval, string filename = gfx.getdropfile(integer idx)

    Returns filenames, drag'n'dropped into a window created by gfx.init().
    Use idx to get a specific filename, that has been dropped into the gfx.init()-window.

    When returned filename starts with @fx: it is an fx dropped.
          
    Does NOT support mediaitems/takes or other Reaper-objects!

    It MUST be called BEFORE calling gfx.update, as gfx.update flushes the filelist accessible with gfx.getdropfile.

    Returnvalues:
    integer retval
    0, if droppped-filename with indexnumber idx doesn't exist; 1, if it exists; hints, if you already reached the last filename dropped.
    string filename
    the filename of dropped-file with indexnumber idx; if filename starts with @fx: then the filename is a dropped fx

    Parameters:
    integer idx
    the indexnumber for a filename, that has been dropped into a gfx.init()-window.
    0, the first file; 1, the second file; 2, the third file, etc.
    -1, clears the filelist.


    ^ Reaper version 5.62runloop

    Lua: boolean retval = reaper.runloop(function function)

    Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to defer().Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

    Returnvalues:
    int retval
    true, if succeded

    Parameters:
    function function
    the function to be called


    ^ Reaper version 5.62new_array

    Lua: ReaperArray reaper.array = reaper.new_array([table|array values], [integer size])

    Creates a new reaper.array object of maximum and initial size size, if specified, or from the size/values of a table/array. Both size and table/array can be specified, the size parameter will override the table/array size.

    Returnvalues:
    ReaperArray reaper.array

    Parameters:
    table|array values
    integer size


    ^ Reaper version 5.62{reaper.array}.clear

    Lua: boolean retval = {reaper.array}.clear([number|string value, integer offset, integer size])

    Sets the value of zero or more items in the array. If value not specified, 0.0 is used. offset is 1-based, if size omitted then the maximum amount available will be set.

    Returnvalues:
    boolean retval

    Parameters:
    number|string value
    integer offset
    integer size


    ^ Reaper version 5.62{reaper.array}.convolve

    Lua: integer retval = {reaper.array}.convolve([reaper.array src, integer srcoffs, integer size, integer destoffs])

    Convolves complex value pairs from reaper.array, starting at 1-based srcoffs, reading/writing to 1-based destoffs. size is in normal items (so it must be even)

    Returnvalues:
    integer retval

    Parameters:
    reaper.array src
    integer scroffs
    integer size
    integer destoffs


    ^ Reaper version 5.62{reaper.array}.copy

    Lua: integer retval = {reaper.array}.copy([reaper.array src, integer srcoffs, integer size, integer destoffs])

    Copies values from reaper.array or table, starting at 1-based srcoffs, writing to 1-based destoffs.

    Returnvalues:
    integer retval

    Parameters:
    reaper.array src
    integer srcoffs
    integer size
    integer destoffs


    ^ Reaper version 5.62{reaper.array}.fft

    Lua: boolean retval = {reaper.array}.fft(integer size[, boolean permute, integer offset])

    Performs a forward FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled following the FFT to be in normal order.

    Returnvalues:
    boolean retval
    true, fft was successful; false, fft was unsuccessful

    Parameters:
    integer size
    boolean premute
    integer offset


    ^ Reaper version 5.62{reaper.array}.fft_real

    Lua: boolean retval = {reaper.array}.fft_real(integer size[, boolean permute, integer offset])

    Performs a forward real->complex FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled following the FFT to be in normal order.

    Returnvalues:
    boolean retval
    true, fft was successful; false, fft was unsuccessful

    Parameters:
    integer size
    boolean premute
    integer offset


    ^ Reaper version 5.62{reaper.array}.get_alloc

    Lua: integer size = {reaper.array}.get_alloc()

    Returns the maximum (allocated) size of the array.

    Returnvalues:
    integer size


    ^ Reaper version 5.62{reaper.array}.ifft

    Lua: boolean retval = {reaper.array}.ifft(integer size[, boolean permute, integer offset])

    Performs a backwards FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled before the IFFT to be in fft-order.

    Returnvalues:
    boolean retval
    true, fft was successful; false, fft was unsuccessful

    Parameters:
    integer size
    boolean permute
    integer offset


    ^ Reaper version 5.62{reaper.array}.ifft_real

    Lua: boolean retval = {reaper.array}.ifft_real(integer size[, boolean permute, integer offset])

    Performs a backwards complex->real FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled before the IFFT to be in fft-order.

    Returnvalues:
    boolean retval
    true, fft was successful; false, fft was unsuccessful

    Parameters:
    integer size
    boolean permute
    integer offset


    ^ Reaper version 5.62{reaper.array}.multiply

    Lua: integer retvals = {reaper.array}.multiply([{reaper.array} src, integer srcoffs, integer size, number destoffs])

    Multiplies values from reaper.array, starting at 1-based srcoffs, reading/writing to 1-based destoffs.

    Returnvalues:
    integer retvals

    Parameters:
    {reaper.array} src
    integer srcoffs
    integer size
    number destoff


    ^ Reaper version 5.62{reaper.array}.resize

    Lua: boolean retval = {reaper.array}.resize(size)

    Resizes an array object to size. size must be [0..max_size].

    Returnvalues:
    boolean retval
    true, changing size was successful; false, changing was unsuccessful

    Parameters:
    integer size
    the new size of the table


    ^ Reaper version 5.62{reaper.array}.table

    Lua: table new_table = {reaper.array}.table([integer offset, integer size])

    Returns a new table with values from items in the array. Offset is 1-based and if size is omitted all available values are used.

    Returnvalues:
    table new_table
    a table with the entries from the reaper.array

    Parameters:
    integer offset
    the first entry of the reaper.array to be included into the table
    integer size
    the number of entries to include into the table


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMidiSourceLenPPQ

    C: double BR_GetMidiSourceLenPPQ(MediaItem_Take* take)
    EEL2: double extension_api("BR_GetMidiSourceLenPPQ", MediaItem_Take take)
    Lua: number retval = reaper.BR_GetMidiSourceLenPPQ(MediaItem_Take take)
    Python: Float retval = BR_GetMidiSourceLenPPQ(MediaItem_Take take)

    [BR] Get MIDI take source length in PPQ. In case the take isn't MIDI, return value will be -1.

    Returnvalues:
    number retval

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMidiTakePoolGUID

    C: bool BR_GetMidiTakePoolGUID(MediaItem_Take* take, char* guidStringOut, int guidStringOut_sz)
    EEL2: bool extension_api("BR_GetMidiTakePoolGUID", MediaItem_Take take, #guidString)
    Lua: boolean retval, string guidString = reaper.BR_GetMidiTakePoolGUID(MediaItem_Take take)
    Python: (Boolean retval, MediaItem_Take take, String guidStringOut, Int guidStringOut_sz) = BR_GetMidiTakePoolGUID(take, guidStringOut, guidStringOut_sz)

    [BR] Get MIDI take pool GUID as a string (guidStringOut_sz should be at least 64). Returns true if take is pooled.

    Returnvalues:
    boolean retval
    string guidString

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMidiTakeTempoInfo

    C: bool BR_GetMidiTakeTempoInfo(MediaItem_Take* take, bool* ignoreProjTempoOut, double* bpmOut, int* numOut, int* denOut)
    EEL2: bool extension_api("BR_GetMidiTakeTempoInfo", MediaItem_Take take, bool &ignoreProjTempo, &bpm, int &num, int &den)
    Lua: boolean retval, boolean ignoreProjTempo, number bpm, integer num, integer den = reaper.BR_GetMidiTakeTempoInfo(MediaItem_Take take)
    Python: (Boolean retval, MediaItem_Take take, Boolean ignoreProjTempoOut, Float bpmOut, Int numOut, Int denOut) = BR_GetMidiTakeTempoInfo(take, ignoreProjTempoOut, bpmOut, numOut, denOut)

    [BR] Get "ignore project tempo" information for MIDI take. Returns true if take can ignore project tempo (no matter if it's actually ignored), otherwise false.

    Returnvalues:
    boolean retval
    boolean ignoreProjTempo
    number bpm
    integer num
    integer den

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7BR_IsMidiOpenInInlineEditor

    C: bool BR_IsMidiOpenInInlineEditor(MediaItem_Take* take)
    EEL2: bool extension_api("BR_IsMidiOpenInInlineEditor", MediaItem_Take take)
    Lua: boolean retval = reaper.BR_IsMidiOpenInInlineEditor(MediaItem_Take take)
    Python: Boolean retval = BR_IsMidiOpenInInlineEditor(MediaItem_Take take)

    [SWS] Check if take has MIDI inline editor open and returns true or false.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7BR_IsTakeMidi

    C: bool BR_IsTakeMidi(MediaItem_Take* take, bool* inProjectMidiOut)
    EEL2: bool extension_api("BR_IsTakeMidi", MediaItem_Take take, bool &inProjectMidi)
    Lua: boolean retval, boolean inProjectMidi = reaper.BR_IsTakeMidi(MediaItem_Take take)
    Python: (Boolean retval, MediaItem_Take take, Boolean inProjectMidiOut) = BR_IsTakeMidi(take, inProjectMidiOut)

    [BR] Check if take is MIDI take, in case MIDI take is in-project MIDI source data, inProjectMidiOut will be true, otherwise false.

    Returnvalues:
    boolean retval
    boolean inProjectMidi

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_MIDI_CCLaneRemove

    C: bool BR_MIDI_CCLaneRemove(vpid* midiEditor, int laneId)
    EEL2: bool extension_api("BR_MIDI_CCLaneRemove", void* midiEditor, int laneId)
    Lua: boolean retval = reaper.BR_MIDI_CCLaneRemove(identifier midiEditor, integer laneId)
    Python: Boolean retval = BR_MIDI_CCLaneRemove(void midiEditor, Int laneId)

    [BR] Remove CC lane in midi editor. Top visible CC lane is laneId 0. Returns true on success

    Returnvalues:
    boolean retval

    Parameters:
    identifier midiEditor
    integer laneId


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_MIDI_CCLaneReplace

    C: bool BR_MIDI_CCLaneReplace(void* midiEditor, int laneId, int newCC)
    EEL2: bool extension_api("BR_MIDI_CCLaneReplace", void* midiEditor, int laneId, int newCC)
    Lua: boolean retval = reaper.BR_MIDI_CCLaneReplace(identifier midiEditor, integer laneId, integer newCC)
    Python: Boolean retval = BR_MIDI_CCLaneReplace(void midiEditor, Int laneId, Int newCC)

    [BR] Replace CC lane in midi editor. Top visible CC lane is laneId 0. Returns true on success.
    Valid CC lanes: CC0-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

    Returnvalues:
    boolean retval

    Parameters:
    identifier midiEditor
    integer laneId
    integer newCC


    ^ Reaper version 5.62 SWS version 2.9.7BR_SetMidiTakeTempoInfo

    C: bool BR_SetMidiTakeTempoInfo(MediaItem_Take* take, bool ignoreProjTempo, double bpm, int num, int den)
    EEL2: bool extension_api("BR_SetMidiTakeTempoInfo", MediaItem_Take take, bool ignoreProjTempo, bpm, int num, int den)
    Lua: boolean retval = reaper.BR_SetMidiTakeTempoInfo(MediaItem_Take take, boolean ignoreProjTempo, number bpm, integer num, integer den)
    Python: Boolean retval = BR_SetMidiTakeTempoInfo(MediaItem_Take take, Boolean ignoreProjTempo, Float bpm, Int num, Int den)

    [BR] Set "ignore project tempo" information for MIDI take. Returns true in case the take was successfully updated.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    boolean ignoreProjTempo
    number bpm
    integer num
    integer den


    ^ Reaper version 5.62EnumTrackMIDIProgramNames

    C: bool EnumTrackMIDIProgramNames(int track, int programNumber, char* programName, int programName_sz)
    EEL2: bool EnumTrackMIDIProgramNames(int track, int programNumber, #programName)
    Lua: boolean retval, string programName = reaper.EnumTrackMIDIProgramNames(integer track, integer programNumber, string programName)
    Python: (Boolean retval, Int track, Int programNumber, String programName, Int programName_sz) = RPR_EnumTrackMIDIProgramNames(track, programNumber, programName, programName_sz)

    returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated

    Returnvalues:
    boolean retval
    string programName

    Parameters:
    integer track
    string programNumber
    string programName


    ^ Reaper version 5.62EnumTrackMIDIProgramNamesEx

    C: bool EnumTrackMIDIProgramNamesEx(ReaProject* proj, MediaTrack* track, int programNumber, char* programName, int programName_sz)
    EEL2: bool EnumTrackMIDIProgramNamesEx(ReaProject proj, MediaTrack track, int programNumber, #programName)
    Lua: boolean retval, string programName = reaper.EnumTrackMIDIProgramNamesEx(ReaProject proj, MediaTrack track, integer programNumber, string programName)
    Python: (Boolean retval, ReaProject proj, MediaTrack track, Int programNumber, String programName, Int programName_sz) = RPR_EnumTrackMIDIProgramNamesEx(proj, track, programNumber, programName, programName_sz)

    returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated

    Returnvalues:
    boolean retval
    string programName

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    MediaTrack track
    integer programNumber
    string programName


    ^ Reaper version 5.62 SWS version 2.9.7FNG_AddMidiNote

    C: RprMidiNote* FNG_AddMidiNote(RprMidiTake* midiTake)
    EEL2: RprMidiNote extension_api("FNG_AddMidiNote", RprMidiTake midiTake)
    Lua: RprMidiNote note = reaper.FNG_AddMidiNote(RprMidiTake midiTake)
    Python: RprMidiNote note = FNG_AddMidiNote(RprMidiTake midiTake)

    [FNG]Add MIDI note to MIDI take

    Returnvalues:
    RprMidiNote note

    Parameters:
    RprMidiTake midiTake


    ^ Reaper version 5.62 SWS version 2.9.7FNG_AllocMidiTake

    C: RprMidiTake* FNG_AllocMidiTake(MediaItem_Take* take)
    EEL2: RprMidiTake extension_api("FNG_AllocMidiTake", MediaItem_Take take)
    Lua: RprMidiTake rpr_take = reaper.FNG_AllocMidiTake(MediaItem_Take take)
    Python: RprMidiTake rpr_take = FNG_AllocMidiTake(MediaItem_Take take)

    [FNG]Allocate a RprMidiTake from a take pointer. Returns a NULL pointer if the take is not an in-project MIDI take

    Returnvalues:
    RprMidiTake rpr_take

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7FNG_CountMidiNotes

    C: int FNG_CountMidiNotes(RprMidiTake* midiTake)
    EEL2: int extension_api("FNG_CountMidiNotes", RprMidiTake midiTake)
    Lua: integer retval = reaper.FNG_CountMidiNotes(RprMidiTake midiTake)
    Python: Int retval = FNG_CountMidiNotes(RprMidiTake midiTake)

    [FNG]Count of how many MIDI notes are in the MIDI take

    Returnvalues:
    integer retval

    Parameters:
    RprMidiTake midiTake


    ^ Reaper version 5.62 SWS version 2.9.7FNG_FreeMidiTake

    C: void FNG_FreeMidiTake(RprMidiTake* midiTake)
    EEL2: extension_api("FNG_FreeMidiTake", RprMidiTake midiTake)
    Lua: reaper.FNG_FreeMidiTake(RprMidiTake midiTake)
    Python: FNG_FreeMidiTake(RprMidiTake midiTake)

    [FNG]Commit changes to MIDI take and free allocated memory

    Parameters:
    RprMidiTake midiTake


    ^ Reaper version 5.62 SWS version 2.9.7FNG_GetMidiNote

    C: RprMidiNote* FNG_GetMidiNote(RprMidiTake* midiTake, int index)
    EEL2: RprMidiNote extension_api("FNG_GetMidiNote", RprMidiTake midiTake, int index)
    Lua: RprMidiNote note = reaper.FNG_GetMidiNote(RprMidiTake midiTake, integer index)
    Python: RprMidiNote note = FNG_GetMidiNote(RprMidiTake midiTake, Int index)

    [FNG]Get a MIDI note from a MIDI take at specified index

    Returnvalues:
    RprMidiNote note

    Parameters:
    RprMidiTake midiTake
    integer index


    ^ Reaper version 5.62 SWS version 2.9.7FNG_GetMidiNoteIntProperty

    C: int FNG_GetMidiNoteIntProperty(RprMidiNote* midiNote, const char* property)
    EEL2: int extension_api("FNG_GetMidiNoteIntProperty", RprMidiNote midiNote, "property")
    Lua: integer retval = reaper.FNG_GetMidiNoteIntProperty(RprMidiNote midiNote, string property)
    Python: Int retval = FNG_GetMidiNoteIntProperty(RprMidiNote midiNote, String property)

    [FNG]Get MIDI note property

    Returnvalues:
    integer retval

    Parameters:
    RprMidiNote midiNote
    string property


    ^ Reaper version 5.62 SWS version 2.9.7FNG_SetMidiNoteIntProperty

    C: void FNG_SetMidiNoteIntProperty(RprMidiNote* midiNote, const char* property, int value)
    EEL2: extension_api("FNG_SetMidiNoteIntProperty", RprMidiNote midiNote, "property", int value)
    Lua: reaper.FNG_SetMidiNoteIntProperty(RprMidiNote midiNote, string property, integer value)
    Python: FNG_SetMidiNoteIntProperty(RprMidiNote midiNote, String property, Int value)

    [FNG]Set MIDI note property

    Parameters:
    RprMidiNote midiNote
    string property
    integer value


    ^ Reaper version 6.58GetTrackMIDILyrics

    C: bool GetTrackMIDILyrics(MediaTrack* track, int flag, char* bufOutWantNeedBig, int* bufOutWantNeedBig_sz)
    EEL2: bool GetTrackMIDILyrics(MediaTrack track, int flag, #buf)
    Lua: boolean retval, string buf = reaper.GetTrackMIDILyrics(MediaTrack track, integer flag)
    Python: (Boolean retval, MediaTrack track, Int flag, String bufOutWantNeedBig, Int bufOutWantNeedBig_sz) = RPR_GetTrackMIDILyrics(track, flag, bufOutWantNeedBig, bufOutWantNeedBig_sz)

    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

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaTrack track
    integer flag

    see also:
  • SetTrackMIDILyrics - sets MIDI-lyrics of a MediaTrack, pushed into all MediaItems on the track


  • ^ Reaper version 5.62GetTrackMIDINoteName

    C: const char* GetTrackMIDINoteName(int track, int pitch, int chan)
    EEL2: bool GetTrackMIDINoteName(#retval, int track, int pitch, int chan)
    Lua: string notename = reaper.GetTrackMIDINoteName(integer track, integer pitch, integer chan)
    Python: String retval = RPR_GetTrackMIDINoteName(Int track, Int pitch, Int chan)

    see GetTrackMIDINoteNameEx

    Returnvalues:
    string notename

    Parameters:
    integer track
    integer pitch
    integer chan

    see also:
  • GetTrackMIDINoteNameEx - gets the name of a midi-note from a track in a ReaProject


  • ^ Reaper version 5.92GetTrackMIDINoteNameEx

    C: const char* GetTrackMIDINoteNameEx(ReaProject* proj, MediaTrack* track, int pitch, int chan)
    EEL2: bool GetTrackMIDINoteNameEx(#retval, ReaProject proj, MediaTrack track, int pitch, int chan)
    Lua: string midi_notename = reaper.GetTrackMIDINoteNameEx(ReaProject proj, MediaTrack track, integer pitch, integer chan)
    Python: String retval = RPR_GetTrackMIDINoteNameEx(ReaProject proj, MediaTrack track, Int pitch, Int chan)

    Get note/CC name. pitch 128 for CC0 name, 129 for CC1 name, etc. See SetTrackMIDINoteNameEx

    Returnvalues:
    string midi_notename

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    MediaTrack track
    integer pitch
    integer chan

    see also:
  • SetTrackMIDINoteNameEx - sets track-midi-note attributes by project


  • ^ Reaper version 5.62GetTrackMIDINoteRange

    C: void GetTrackMIDINoteRange(ReaProject* proj, MediaTrack* track, int* note_loOut, int* note_hiOut)
    EEL2: GetTrackMIDINoteRange(ReaProject proj, MediaTrack track, int ¬e_lo, int ¬e_hi)
    Lua: integer note_lo_retval, integer note_hi = reaper.GetTrackMIDINoteRange(ReaProject proj, MediaTrack track)
    Python: (ReaProject proj, MediaTrack track, Int note_loOut, Int note_hiOut) = RPR_GetTrackMIDINoteRange(proj, track, note_loOut, note_hiOut)



    Returnvalues:
    integer note_lo_retval
    integer note_hi

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    MediaTrack track


    ^ Reaper version 5.62HasTrackMIDIPrograms

    C: const char* HasTrackMIDIPrograms(int track)
    EEL2: bool HasTrackMIDIPrograms(#retval, int track)
    Lua: string plugin_name = reaper.HasTrackMIDIPrograms(integer track)
    Python: String retval = RPR_HasTrackMIDIPrograms(Int track)

    returns name of track plugin that is supplying MIDI programs,or NULL if there is none

    Returnvalues:
    string plugin_name

    Parameters:
    integer track


    ^ Reaper version 5.62HasTrackMIDIProgramsEx

    C: const char* HasTrackMIDIProgramsEx(ReaProject* proj, MediaTrack* track)
    EEL2: bool HasTrackMIDIProgramsEx(#retval, ReaProject proj, MediaTrack track)
    Lua: string plugin_name = reaper.HasTrackMIDIProgramsEx(ReaProject proj, MediaTrack track)
    Python: String retval = RPR_HasTrackMIDIProgramsEx(ReaProject proj, MediaTrack track)

    returns name of track plugin that is supplying MIDI programs,or NULL if there is none

    Returnvalues:
    string plugin_name

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    MediaTrack track


    ^ Reaper version 6.37MIDIEditor_EnumTakes

    C: MediaItem_Take* MIDIEditor_EnumTakes(HWND midieditor, int takeindex, bool editable_only)
    EEL2: MediaItem_Take MIDIEditor_EnumTakes(HWND midieditor, int takeindex, bool editable_only)
    Lua: MediaItem_Take take = reaper.MIDIEditor_EnumTakes(HWND midieditor, integer takeindex, boolean editable_only)
    Python: MediaItem_Take take = RPR_MIDIEditor_EnumTakes(HWND midieditor, Int takeindex, Boolean editable_only)

    list the takes that are currently being edited in this MIDI editor, starting with the active take.

    See MIDIEditor_GetTake

    Returnvalues:
    MediaItem_Take take

    Parameters:
    HWND midieditor
    integer takeindex
    boolean editable_only

    see also:
  • MIDIEditor_GetTake - gets the take currently edited in the MIDI Editor


  • ^ Reaper version 5.62MIDIEditor_GetActive

    C: HWND MIDIEditor_GetActive()
    EEL2: HWND MIDIEditor_GetActive()
    Lua: HWND hwnd = reaper.MIDIEditor_GetActive()
    Python: HWND hwnd = RPR_MIDIEditor_GetActive()

    get a pointer to the focused MIDI editor window
    see MIDIEditor_GetMode, MIDIEditor_OnCommand

    Returnvalues:
    HWND hwnd

    see also:
  • MIDIEditor_GetMode - get the mode of an MIDI-Editor
  • MIDIEditor_OnCommand - runs an action from the MidiEditor-section inside a MidiEditor


  • ^ Reaper version 5.62MIDIEditor_GetMode

    C: int MIDIEditor_GetMode(HWND midieditor)
    EEL2: int MIDIEditor_GetMode(HWND midieditor)
    Lua: integer retval = reaper.MIDIEditor_GetMode(HWND midieditor)
    Python: Int retval = RPR_MIDIEditor_GetMode(HWND midieditor)

    get the mode of a MIDI editor (0=piano roll, 1=event list, -1=invalid editor)
    see MIDIEditor_GetActive, MIDIEditor_OnCommand

    Returnvalues:
    integer retval

    Parameters:
    HWND midieditor

    see also:
  • MIDIEditor_GetActive - get the hwnd of the active MIDI-Editor
  • MIDIEditor_OnCommand - runs an action from the MidiEditor-section inside a MidiEditor


  • ^ Reaper version 6.41MIDIEditor_GetSetting_int

    C: int MIDIEditor_GetSetting_int(HWND midieditor, const char* setting_desc)
    EEL2: int MIDIEditor_GetSetting_int(HWND midieditor, "setting_desc")
    Lua: integer retval = reaper.MIDIEditor_GetSetting_int(HWND midieditor, string setting_desc)
    Python: Int retval = RPR_MIDIEditor_GetSetting_int(HWND midieditor, String setting_desc)

    Get settings from a MIDI editor. setting_desc can be:
        snap_enabled: returns 0 or 1
        active_note_row: returns 0-127
        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
        default_note_vel: returns 0-127
        default_note_chan: returns 0-15
        default_note_len: returns default length in MIDI ticks
        scale_enabled: returns 0-1
        scale_root: returns 0-12 (0=C)
        list_cnt: if viewing list view, returns event count  
        if setting_desc is unsupported, the function returns -1.
        See MIDIEditor_SetSetting_int, MIDIEditor_GetActive, MIDIEditor_GetSetting_str

    Returnvalues:
    integer retval

    Parameters:
    HWND midieditor
    string setting_desc

    see also:
  • MIDIEditor_SetSetting_int - Set settings for a MIDI Editor
  • MIDIEditor_GetActive - get the hwnd of the active MIDI Editor
  • MIDIEditor_GetSetting_str - get string-settings of a MIDI Editor


  • ^ Reaper version 6.41MIDIEditor_GetSetting_str

    C: bool MIDIEditor_GetSetting_str(HWND midieditor, const char* setting_desc, char* bufOut, int bufOut_sz)
    EEL2: bool MIDIEditor_GetSetting_str(HWND midieditor, "setting_desc", #buf)
    Lua: boolean retval, string buf = reaper.MIDIEditor_GetSetting_str(HWND midieditor, string setting_desc)
    Python: (Boolean retval, HWND midieditor, String setting_desc, String bufOut, Int bufOut_sz) = RPR_MIDIEditor_GetSetting_str(midieditor, setting_desc, bufOut, bufOut_sz)

    Get settings from a MIDI editor. setting_desc can be:
    last_clicked_cc_lane: returns text description ("velocity", "pitch", etc)
    scale: returns the scale record, for example "102034050607" for a major scale
    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.

    if setting_desc is unsupported, the function returns false.

    See MIDIEditor_GetActive, MIDIEditor_GetSetting_int

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    HWND midieditor
    string setting_desc
    string buf

    see also:
  • MIDIEditor_GetActive - get the hwnd of the active MIDI Editor
  • MIDIEditor_GetSetting_int - get integer settings of a MIDI Editor


  • ^ Reaper version 6.37MIDIEditor_GetTake

    C: MediaItem_Take* MIDIEditor_GetTake(HWND midieditor)
    EEL2: MediaItem_Take MIDIEditor_GetTake(HWND midieditor)
    Lua: MediaItem_Take take = reaper.MIDIEditor_GetTake(HWND midieditor)
    Python: MediaItem_Take take = RPR_MIDIEditor_GetTake(HWND midieditor)

    get the take that is currently being edited in this MIDI editor

    see MIDIEditor_EnumTakes

    Returnvalues:
    MediaItem_Take take

    Parameters:
    HWND midieditor

    see also:
  • MIDIEditor_EnumTakes - get the takes currently edited in Midi-editors


  • ^ Reaper version 5.975MIDIEditor_SetSetting_int

    C: bool MIDIEditor_SetSetting_int(HWND midieditor, const char* setting_desc, int setting)
    EEL2: bool MIDIEditor_SetSetting_int(HWND midieditor, "setting_desc", int setting)
    Lua: boolean retval = reaper.MIDIEditor_SetSetting_int(HWND midieditor, string setting_desc, integer setting)
    Python: Boolean retval = RPR_MIDIEditor_SetSetting_int(HWND midieditor, String setting_desc, Int setting)

    Set settings for a MIDI editor. setting_desc can be:
    active_note_row: 0-127
    See MIDIEditor_GetSetting_int

    Returnvalues:
    boolean retval

    Parameters:
    HWND midieditor
    string setting_desc
    integer setting

    see also:
  • MIDIEditor_GetSetting_int - gets integer-settings from a MIDI editor


  • ^ Reaper version 5.62MIDI_CountEvts

    C: int MIDI_CountEvts(MediaItem_Take* take, int* notecntOut, int* ccevtcntOut, int* textsyxevtcntOut)
    EEL2: int MIDI_CountEvts(MediaItem_Take take, int ¬ecnt, int &ccevtcnt, int &textsyxevtcnt)
    Lua: integer retval, number notecnt, number ccevtcnt, number textsyxevtcnt = reaper.MIDI_CountEvts(MediaItem_Take take)
    Python: (Int retval, MediaItem_Take take, Int notecntOut, Int ccevtcntOut, Int textsyxevtcntOut) = RPR_MIDI_CountEvts(take, notecntOut, ccevtcntOut, textsyxevtcntOut)

    Count the number of notes, CC events, and text/sysex events in a given MIDI item.

    Returnvalues:
    integer retval
    integer notecnt
    integer ccevtcnt
    integer textsyxevtcnt

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62MIDI_DeleteCC

    C: bool MIDI_DeleteCC(MediaItem_Take* take, int ccidx)
    EEL2: bool MIDI_DeleteCC(MediaItem_Take take, int ccidx)
    Lua: boolean retval = reaper.MIDI_DeleteCC(MediaItem_Take take, integer ccidx)
    Python: Boolean retval = RPR_MIDI_DeleteCC(MediaItem_Take take, Int ccidx)

    Delete a MIDI CC event.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer ccidx


    ^ Reaper version 5.62MIDI_DeleteEvt

    C: bool MIDI_DeleteEvt(MediaItem_Take* take, int evtidx)
    EEL2: bool MIDI_DeleteEvt(MediaItem_Take take, int evtidx)
    Lua: boolean retval = reaper.MIDI_DeleteEvt(MediaItem_Take take, integer evtidx)
    Python: Boolean retval = RPR_MIDI_DeleteEvt(MediaItem_Take take, Int evtidx)

    Delete a MIDI event.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer evtidx


    ^ Reaper version 5.62MIDI_DeleteNote

    C: bool MIDI_DeleteNote(MediaItem_Take* take, int noteidx)
    EEL2: bool MIDI_DeleteNote(MediaItem_Take take, int noteidx)
    Lua: boolean retval = reaper.MIDI_DeleteNote(MediaItem_Take take, integer noteidx)
    Python: Boolean retval = RPR_MIDI_DeleteNote(MediaItem_Take take, Int noteidx)

    Delete a MIDI note.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer noteidx


    ^ Reaper version 5.62MIDI_DeleteTextSysexEvt

    C: bool MIDI_DeleteTextSysexEvt(MediaItem_Take* take, int textsyxevtidx)
    EEL2: bool MIDI_DeleteTextSysexEvt(MediaItem_Take take, int textsyxevtidx)
    Lua: boolean retval = reaper.MIDI_DeleteTextSysexEvt(MediaItem_Take take, integer textsyxevtidx)
    Python: Boolean retval = RPR_MIDI_DeleteTextSysexEvt(MediaItem_Take take, Int textsyxevtidx)

    Delete a MIDI text or sysex event.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer textsyxevtidx


    ^ Reaper version 5.974MIDI_DisableSort

    C: void MIDI_DisableSort(MediaItem_Take* take)
    EEL2: MIDI_DisableSort(MediaItem_Take take)
    Lua: reaper.MIDI_DisableSort(MediaItem_Take take)
    Python: RPR_MIDI_DisableSort(MediaItem_Take take)

    Disable sorting for all MIDI insert, delete, get and set functions, until MIDI_Sort is called.

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62MIDI_EnumSelCC

    C: int MIDI_EnumSelCC(MediaItem_Take* take, int ccidx)
    EEL2: int MIDI_EnumSelCC(MediaItem_Take take, int ccidx)
    Lua: integer sel_midicc_index = reaper.MIDI_EnumSelCC(MediaItem_Take take, integer ccidx)
    Python: Int retval = RPR_MIDI_EnumSelCC(MediaItem_Take take, Int ccidx)

    Returns the index of the next selected MIDI CC event after ccidx (-1 if there are no more selected events).

    Returnvalues:
    integer sel_midicc_index

    Parameters:
    MediaItem_Take take
    integer ccidx


    ^ Reaper version 5.62MIDI_EnumSelEvts

    C: int MIDI_EnumSelEvts(MediaItem_Take* take, int evtidx)
    EEL2: int MIDI_EnumSelEvts(MediaItem_Take take, int evtidx)
    Lua: integer sel_midi_evt_index = reaper.MIDI_EnumSelEvts(MediaItem_Take take, integer evtidx)
    Python: Int retval = RPR_MIDI_EnumSelEvts(MediaItem_Take take, Int evtidx)

    Returns the index of the next selected MIDI event after evtidx (-1 if there are no more selected events).

    Returnvalues:
    integer sel_midi_evt_index

    Parameters:
    MediaItem_Take take
    integer evtidx


    ^ Reaper version 5.62MIDI_EnumSelNotes

    C: int MIDI_EnumSelNotes(MediaItem_Take* take, int noteidx)
    EEL2: int MIDI_EnumSelNotes(MediaItem_Take take, int noteidx)
    Lua: integer sel_midi_note_index = reaper.MIDI_EnumSelNotes(MediaItem_Take take, integer noteidx)
    Python: Int retval = RPR_MIDI_EnumSelNotes(MediaItem_Take take, Int noteidx)

    Returns the index of the next selected MIDI note after noteidx (-1 if there are no more selected events).

    Returnvalues:
    integer sel_midi_note_index

    Parameters:
    MediaItek_Take take
    integer noteidx


    ^ Reaper version 5.62MIDI_EnumSelTextSysexEvts

    C: int MIDI_EnumSelTextSysexEvts(MediaItem_Take* take, int textsyxidx)
    EEL2: int MIDI_EnumSelTextSysexEvts(MediaItem_Take take, int textsyxidx)
    Lua: integer sel_midi_sysex_index = reaper.MIDI_EnumSelTextSysexEvts(MediaItem_Take take, integer textsyxidx)
    Python: Int retval = RPR_MIDI_EnumSelTextSysexEvts(MediaItem_Take take, Int textsyxidx)

    Returns the index of the next selected MIDI text/sysex event after textsyxidx (-1 if there are no more selected events).

    Returnvalues:
    integer sel_midi_sysex_index

    Parameters:
    MediaItem_Take take
    integer textsyxidx


    ^ Reaper version 6.37MIDI_GetAllEvts

    C: bool MIDI_GetAllEvts(MediaItem_Take* take, char* bufOutNeedBig, int* bufOutNeedBig_sz)
    EEL2: bool MIDI_GetAllEvts(MediaItem_Take take, #buf)
    Lua: boolean retval, string buf = reaper.MIDI_GetAllEvts(MediaItem_Take take)
    Python: (Boolean retval, MediaItem_Take take, String bufOutNeedBig, Int bufOutNeedBig_sz) = RPR_MIDI_GetAllEvts(take, bufOutNeedBig, bufOutNeedBig_sz)

    Get all MIDI data. MIDI buffer is returned as a list of { int offset, char flag, int msglen, unsigned char msg[] }.

       offset: MIDI ticks from previous event
       flag: &1=selected &2=muted
       flag high 4 bits for CC shape: &16=linear, &32=slow start/end, &16|32=fast start, &64=fast end, &64|16=bezier
       msg: the MIDI message.

    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.
    For tick intervals longer than a 32 bit word can represent, zero-length meta events may be placed between valid events.

    See MIDI_SetAllEvts.

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    MediaItem_Take take

    see also:
  • MIDI_SetAllEvts - sets all midi-events of a take


  • ^ Reaper version 5.62MIDI_GetCC

    C: bool MIDI_GetCC(MediaItem_Take* take, int ccidx, bool* selectedOut, bool* mutedOut, double* ppqposOut, int* chanmsgOut, int* chanOut, int* msg2Out, int* msg3Out)
    EEL2: bool MIDI_GetCC(MediaItem_Take take, int ccidx, bool &selected, bool &muted, &ppqpos, int &chanmsg, int &chan, int &msg2, int &msg3)
    Lua: boolean retval, boolean selected, boolean muted, number ppqpos, integer chanmsg, integer number chan, integer msg2, integer msg3 = reaper.MIDI_GetCC(MediaItem_Take take, integer ccidx)
    Python: (Boolean retval, MediaItem_Take take, Int ccidx, Boolean selectedOut, Boolean mutedOut, Float ppqposOut, Int chanmsgOut, Int chanOut, Int msg2Out, Int msg3Out) = RPR_MIDI_GetCC(take, ccidx, selectedOut, mutedOut, ppqposOut, chanmsgOut, chanOut, msg2Out, msg3Out)

    Get MIDI CC event properties.

    Returnvalues:
    boolean retval
    boolean selected
    boolean muted
    number ppqpos
    integer chanmsg
    integer chan
    integer msg2
    integer msg3

    Parameters:
    MediaItem_Take take
    integer ccidx


    ^ Reaper version 6.00MIDI_GetCCShape

    C: bool MIDI_GetCCShape(MediaItem_Take* take, int ccidx, int* shapeOut, double* beztensionOut)
    EEL2: bool MIDI_GetCCShape(MediaItem_Take take, int ccidx, int &shape, &beztension)
    Lua: boolean retval, integer shape, number beztension = reaper.MIDI_GetCCShape(MediaItem_Take take, integer ccidx)
    Python: (Boolean retval, MediaItem_Take take, Int ccidx, Int shapeOut, Float beztensionOut) = RPR_MIDI_GetCCShape(take, ccidx, shapeOut, beztensionOut)

    Get CC shape and bezier tension.

    See MIDI_GetCC, MIDI_SetCCShape

    Returnvalues:
    boolean retval
    integer shape
    number beztension

    Parameters:
    MediaItem_Take take
    integer ccidx

    see also:
  • MIDI_GetCC - gets midi-cc-events properties in a take
  • MIDI_SetCCShape - sets shape and bezier-tension of a midi-cc in a take


  • ^ Reaper version 6.37MIDI_GetEvt

    C: bool MIDI_GetEvt(MediaItem_Take* take, int evtidx, bool* selectedOut, bool* mutedOut, double* ppqposOut, char* msgOut, int* msgOut_sz)
    EEL2: bool MIDI_GetEvt(MediaItem_Take take, int evtidx, bool &selected, bool &muted, &ppqpos, #msg)
    Lua: boolean retval, boolean selected, boolean muted, number ppqpos, string msg = reaper.MIDI_GetEvt(MediaItem_Take take, integer evtidx)
    Python: (Boolean retval, MediaItem_Take take, Int evtidx, Boolean selectedOut, Boolean mutedOut, Float ppqposOut, String msgOut, Int msgOut_sz) = RPR_MIDI_GetEvt(take, evtidx, selectedOut, mutedOut, ppqposOut, msgOut, msgOut_sz)

    Get MIDI event properties of a take.

    Returnvalues:
    boolean retval
    boolean selected
    boolean muted
    number ppqpos
    string msg

    Parameters:
    MediaItem_Take take
    integer evtidx


    ^ Reaper version 5.62MIDI_GetGrid

    C: double MIDI_GetGrid(MediaItem_Take* take, double* swingOutOptional, double* noteLenOutOptional)
    EEL2: double MIDI_GetGrid(MediaItem_Take take, optional &swing, optional ¬eLen)
    Lua: number retval, optional number swing, optional number noteLen = reaper.MIDI_GetGrid(MediaItem_Take take)
    Python: (Float retval, MediaItem_Take take, Float swingOutOptional, Float noteLenOutOptional) = RPR_MIDI_GetGrid(take, swingOutOptional, noteLenOutOptional)

    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.

    Returnvalues:
    number retval
    optional number swing
    optional number noteLen

    Parameters:
    MediaItem_Take take


    ^ Reaper version 6.37MIDI_GetHash

    C: bool MIDI_GetHash(MediaItem_Take* take, bool notesonly, char* hashOut, int hashOut_sz)
    EEL2: bool MIDI_GetHash(MediaItem_Take take, bool notesonly, #hash)
    Lua: boolean retval, string hash = reaper.MIDI_GetHash(MediaItem_Take take, boolean notesonly)
    Python: (Boolean retval, MediaItem_Take take, Boolean notesonly, String hashOut, Int hashOut_sz) = RPR_MIDI_GetHash(take, notesonly, hashOut, hashOut_sz)

    Get a string that only changes when the MIDI data changes.

    If notesonly==true, then the string changes only when the MIDI notes change.

    Returnvalues:
    boolean retval
    string hash

    Parameters:
    MediaItem_Take take
    boolean notesonly

    see also:
  • MIDI_GetTrackHash - gets a hash-string that only changes, when the track's midi-data changes


  • ^ Reaper version 5.62MIDI_GetNote

    C: bool MIDI_GetNote(MediaItem_Take* take, int noteidx, bool* selectedOut, bool* mutedOut, double* startppqposOut, double* endppqposOut, int* chanOut, int* pitchOut, int* velOut)
    EEL2: bool MIDI_GetNote(MediaItem_Take take, int noteidx, bool &selected, bool &muted, &startppqpos, &endppqpos, int &chan, int &pitch, int &vel)
    Lua: boolean retval, boolean selected, boolean muted, number startppqpos, number endppqpos, integer chan, integer pitch, integer vel = reaper.MIDI_GetNote(MediaItem_Take take, integer noteidx)
    Python: (Boolean retval, MediaItem_Take take, Int noteidx, Boolean selectedOut, Boolean mutedOut, Float startppqposOut, Float endppqposOut, Int chanOut, Int pitchOut, Int velOut) = RPR_MIDI_GetNote(take, noteidx, selectedOut, mutedOut, startppqposOut, endppqposOut, chanOut, pitchOut, velOut)

    Get MIDI note properties.

    Returnvalues:
    boolean retval
    boolean selected
    boolean muted
    number startppqpos
    number endppqpos
    integer chan
    integer pitch
    integer vel

    Parameters:
    MediaItem_Take take
    integer noteidx


    ^ Reaper version 5.62MIDI_GetPPQPosFromProjQN

    C: double MIDI_GetPPQPosFromProjQN(MediaItem_Take* take, double projqn)
    EEL2: double MIDI_GetPPQPosFromProjQN(MediaItem_Take take, projqn)
    Lua: number ppq_position = reaper.MIDI_GetPPQPosFromProjQN(MediaItem_Take take, number projqn)
    Python: Float retval = RPR_MIDI_GetPPQPosFromProjQN(MediaItem_Take take, Float projqn)

    Returns the MIDI tick (ppq) position corresponding to a specific project time in quarter notes.

    Returnvalues:
    number ppq_position

    Parameters:
    MediaItem_Take take
    number projqn


    ^ Reaper version 5.62MIDI_GetPPQPosFromProjTime

    C: double MIDI_GetPPQPosFromProjTime(MediaItem_Take* take, double projtime)
    EEL2: double MIDI_GetPPQPosFromProjTime(MediaItem_Take take, projtime)
    Lua: number ppq_position = reaper.MIDI_GetPPQPosFromProjTime(MediaItem_Take take, number projtime)
    Python: Float retval = RPR_MIDI_GetPPQPosFromProjTime(MediaItem_Take take, Float projtime)

    Returns the MIDI tick (ppq) position corresponding to a specific project time in seconds.

    Returnvalues:
    number ppq_position

    Parameters:
    MediaItem_Take take
    number projtime


    ^ Reaper version 5.62MIDI_GetPPQPos_EndOfMeasure

    C: double MIDI_GetPPQPos_EndOfMeasure(MediaItem_Take* take, double ppqpos)
    EEL2: double MIDI_GetPPQPos_EndOfMeasure(MediaItem_Take take, ppqpos)
    Lua: number endposition = reaper.MIDI_GetPPQPos_EndOfMeasure(MediaItem_Take take, number ppqpos)
    Python: Float retval = RPR_MIDI_GetPPQPos_EndOfMeasure(MediaItem_Take take, Float ppqpos)

    Returns the MIDI tick (ppq) position corresponding to the end of the measure.

    Returnvalues:
    number endposition

    Parameters:
    MediaItem_Take take
    number ppqpos


    ^ Reaper version 5.62MIDI_GetPPQPos_StartOfMeasure

    C: double MIDI_GetPPQPos_StartOfMeasure(MediaItem_Take* take, double ppqpos)
    EEL2: double MIDI_GetPPQPos_StartOfMeasure(MediaItem_Take take, ppqpos)
    Lua: number startposition = reaper.MIDI_GetPPQPos_StartOfMeasure(MediaItem_Take take, number ppqpos)
    Python: Float retval = RPR_MIDI_GetPPQPos_StartOfMeasure(MediaItem_Take take, Float ppqpos)

    Returns the MIDI tick (ppq) position corresponding to the start of the measure.

    Returnvalues:
    number startposition

    Parameters:
    MediaItem_Take take
    number ppqpos


    ^ Reaper version 5.62MIDI_GetProjQNFromPPQPos

    C: double MIDI_GetProjQNFromPPQPos(MediaItem_Take* take, double ppqpos)
    EEL2: double MIDI_GetProjQNFromPPQPos(MediaItem_Take take, ppqpos)
    Lua: number qn_project_time = reaper.MIDI_GetProjQNFromPPQPos(MediaItem_Take take, number ppqpos)
    Python: Float retval = RPR_MIDI_GetProjQNFromPPQPos(MediaItem_Take take, Float ppqpos)

    Returns the project time in quarter notes corresponding to a specific MIDI tick (ppq) position.

    Returnvalues:
    number qn_project_time

    Parameters:
    MediaItem_Take take
    number ppqpos


    ^ Reaper version 5.62MIDI_GetProjTimeFromPPQPos

    C: double MIDI_GetProjTimeFromPPQPos(MediaItem_Take* take, double ppqpos)
    EEL2: double MIDI_GetProjTimeFromPPQPos(MediaItem_Take take, ppqpos)
    Lua: number seconds_project_time = reaper.MIDI_GetProjTimeFromPPQPos(MediaItem_Take take, number ppqpos)
    Python: Float retval = RPR_MIDI_GetProjTimeFromPPQPos(MediaItem_Take take, Float ppqpos)

    Returns the project time in seconds corresponding to a specific MIDI tick (ppq) position.

    Returnvalues:
    number seconds_project_time

    Parameters:
    MediaItem_Take take
    number ppqpos


    ^ Reaper version 6.37MIDI_GetScale

    C: bool MIDI_GetScale(MediaItem_Take* take, int* rootOut, int* scaleOut, char* nameOut, int nameOut_sz)
    EEL2: bool MIDI_GetScale(MediaItem_Take take, int &root, int &scale, #name)
    Lua: boolean retval, number root, number scale, string name = reaper.MIDI_GetScale(MediaItem_Take take)
    Python: (Boolean retval, MediaItem_Take take, Int rootOut, Int scaleOut, String nameOut, Int nameOut_sz) = RPR_MIDI_GetScale(take, rootOut, scaleOut, nameOut, nameOut_sz)

    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.

    Returnvalues:
    boolean retval
    integer root
    integer scale
    string name

    Parameters:
    MediaItem_Take take


    ^ Reaper version 6.00MIDI_GetTextSysexEvt

    C: bool MIDI_GetTextSysexEvt(MediaItem_Take* take, int textsyxevtidx, bool* selectedOutOptional, bool* mutedOutOptional, double* ppqposOutOptional, int* typeOutOptional, char* msgOptional, int* msgOptional_sz)
    EEL2: bool MIDI_GetTextSysexEvt(MediaItem_Take take, int textsyxevtidx, optional bool &selected, optional bool &muted, optional &ppqpos, optional int &type, optional #msg)
    Lua: boolean retval, optional boolean selected, optional boolean muted, optional number ppqpos, optional integer type, optional string msg = reaper.MIDI_GetTextSysexEvt(MediaItem_Take take, integer textsyxevtidx, optional boolean selected, optional boolean muted, optional number ppqpos, optional integer type, optional string msg)
    Python: (Boolean retval, MediaItem_Take take, Int textsyxevtidx, Boolean selectedOutOptional, Boolean mutedOutOptional, Float ppqposOutOptional, Int typeOutOptional, String msgOptional, Int msgOptional_sz) = RPR_MIDI_GetTextSysexEvt(take, textsyxevtidx, selectedOutOptional, mutedOutOptional, ppqposOutOptional, typeOutOptional, msgOptional, msgOptional_sz)

    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.

    Returnvalues:
    boolean retval
    optional boolean selected
    optional boolean muted
    optional number ppqpos
    optional integer type
    optional string msg

    Parameters:
    MediaItem_Take take
    integer textsyxevtidx
    optional boolean selected
    optional boolean muted
    optional number ppqpos
    optional integer type
    optional string msg

    see also:
  • MIDI_GetEvt - get midi-events of a take


  • ^ Reaper version 6.37MIDI_GetTrackHash

    C: bool MIDI_GetTrackHash(MediaTrack* track, bool notesonly, char* hashOut, int hashOut_sz)
    EEL2: bool MIDI_GetTrackHash(MediaTrack track, bool notesonly, #hash)
    Lua: boolean retval, string hash = reaper.MIDI_GetTrackHash(MediaTrack track, boolean notesonly)
    Python: (Boolean retval, MediaTrack track, Boolean notesonly, String hashOut, Int hashOut_sz) = RPR_MIDI_GetTrackHash(track, notesonly, hashOut, hashOut_sz)

    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

    Returnvalues:
    boolean retval
    string hash

    Parameters:
    MediaTrack track
    boolean notesonly

    see also:
  • MIDI_GetHash - gets a hash-string that only changes, when the take's midi-data changes


  • ^ Reaper version 5.62MIDI_InsertCC

    C: bool MIDI_InsertCC(MediaItem_Take* take, bool selected, bool muted, double ppqpos, int chanmsg, int chan, int msg2, int msg3)
    EEL2: bool MIDI_InsertCC(MediaItem_Take take, bool selected, bool muted, ppqpos, int chanmsg, int chan, int msg2, int msg3)
    Lua: boolean retval = reaper.MIDI_InsertCC(MediaItem_Take take, boolean selected, boolean muted, number ppqpos, integer chanmsg, integer chan, integer msg2, integer msg3)
    Python: Boolean retval = RPR_MIDI_InsertCC(MediaItem_Take take, Boolean selected, Boolean muted, Float ppqpos, Int chanmsg, Int chan, Int msg2, Int msg3)

    Insert a new MIDI CC event.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    boolean selected
    boolean muted
    number ppqpos
    integer chanmsg
    integer chan
    integer msg2
    integer msg3


    ^ Reaper version 5.62MIDI_InsertEvt

    C: bool MIDI_InsertEvt(MediaItem_Take* take, bool selected, bool muted, double ppqpos, const char* bytestr, int bytestr_sz)
    EEL2: bool MIDI_InsertEvt(MediaItem_Take take, bool selected, bool muted, ppqpos, "bytestr")
    Lua: boolean retval = reaper.MIDI_InsertEvt(MediaItem_Take take, boolean selected, boolean muted, number ppqpos, string bytestr)
    Python: Boolean retval = RPR_MIDI_InsertEvt(MediaItem_Take take, Boolean selected, Boolean muted, Float ppqpos, String bytestr, Int bytestr_sz)

    Insert a new MIDI event.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    boolean selected
    boolean muted
    number ppqpos
    string bytestr


    ^ Reaper version 5.62MIDI_InsertNote

    C: bool MIDI_InsertNote(MediaItem_Take* take, bool selected, bool muted, double startppqpos, double endppqpos, int chan, int pitch, int vel, const bool* noSortInOptional)
    EEL2: bool MIDI_InsertNote(MediaItem_Take take, bool selected, bool muted, startppqpos, endppqpos, int chan, int pitch, int vel, optional bool noSortIn)
    Lua: boolean retval = reaper.MIDI_InsertNote(MediaItem_Take take, boolean selected, boolean muted, number startppqpos, number endppqpos, integer chan, integer pitch, integer vel, optional boolean noSortIn)
    Python: Boolean retval = RPR_MIDI_InsertNote(MediaItem_Take take, Boolean selected, Boolean muted, Float startppqpos, Float endppqpos, Int chan, Int pitch, Int vel, const bool noSortInOptional)

    Insert a new MIDI note. Set noSort if inserting multiple events, then call MIDI_Sort when done.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    boolean selected
    boolean muted
    number startppqpos
    number endppqpos
    integer chan
    integer pitch
    integer vel
    optional boolean noSortIn


    ^ Reaper version 6.00MIDI_InsertTextSysexEvt

    C: bool MIDI_InsertTextSysexEvt(MediaItem_Take* take, bool selected, bool muted, double ppqpos, int type, const char* bytestr, int bytestr_sz)
    EEL2: bool MIDI_InsertTextSysexEvt(MediaItem_Take take, bool selected, bool muted, ppqpos, int type, "bytestr")
    Lua: boolean retval = reaper.MIDI_InsertTextSysexEvt(MediaItem_Take take, boolean selected, boolean muted, number ppqpos, integer type, string bytestr)
    Python: Boolean retval = RPR_MIDI_InsertTextSysexEvt(MediaItem_Take take, Boolean selected, Boolean muted, Float ppqpos, Int type, String bytestr, Int bytestr_sz)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    boolean selected
    boolean muted
    number ppqpos
    integer type
    string bytestr


    ^ Reaper version 5.62MIDI_SelectAll

    C: void MIDI_SelectAll(MediaItem_Take* take, bool select)
    EEL2: MIDI_SelectAll(MediaItem_Take take, bool select)
    Lua: reaper.MIDI_SelectAll(MediaItem_Take take, boolean select)
    Python: RPR_MIDI_SelectAll(MediaItem_Take take, Boolean select)

    Select or deselect all MIDI content.

    Parameters:
    MediaItem_Take take
    boolean select


    ^ Reaper version 6.00MIDI_SetAllEvts

    C: bool MIDI_SetAllEvts(MediaItem_Take* take, const char* buf, int buf_sz)
    EEL2: bool MIDI_SetAllEvts(MediaItem_Take take, "buf")
    Lua: boolean retval = reaper.MIDI_SetAllEvts(MediaItem_Take take, string buf)
    Python: Boolean retval = RPR_MIDI_SetAllEvts(MediaItem_Take take, String buf, Int buf_sz)

    Set all MIDI data. MIDI buffer is passed in as a list of { int offset, char flag, int msglen, unsigned char msg[] }.

       offset: MIDI ticks from previous event
       flag: &1=selected &2=muted
       flag high 4 bits for CC shape: &16=linear, &32=slow start/end, &16|32=fast start, &64=fast end, &64|16=bezier
       msg: the MIDI message.

    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.
    For tick intervals longer than a 32 bit word can represent, zero-length meta events may be placed between valid events.

    See MIDI_GetAllEvts.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    string buf

    see also:
  • MIDI_GetAllEvts - gets all midi-events of a take


  • ^ Reaper version 5.62MIDI_SetCC

    C: 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)
    EEL2: bool MIDI_SetCC(MediaItem_Take take, int ccidx, optional bool selectedIn, optional bool mutedIn, optional ppqposIn, optional int chanmsgIn, optional int chanIn, optional int msg2In, optional int msg3In, optional bool noSortIn)
    Lua: boolean retval = reaper.MIDI_SetCC(MediaItem_Take take, integer ccidx, optional boolean selectedIn, optional boolean mutedIn, optional number ppqposIn, optional integer chanmsgIn, optional integer chanIn, optional integer msg2In, optional integer msg3In, optional boolean noSortIn)
    Python: Boolean retval = RPR_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)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer ccidx
    optional boolean selectedIn
    optional boolean mutedIn
    optional number ppqposIn
    optional integer chanmsgIn
    optional integer chanIn
    optional integer msg2In
    optional integer msg3In
    optional boolean noSortIn


    ^ Reaper version 6.00MIDI_SetCCShape

    C: bool MIDI_SetCCShape(MediaItem_Take* take, int ccidx, int shape, double beztension, const bool* noSortInOptional)
    EEL2: bool MIDI_SetCCShape(MediaItem_Take take, int ccidx, int shape, beztension, optional bool noSortIn)
    Lua: boolean retval = reaper.MIDI_SetCCShape(MediaItem_Take take, integer ccidx, integer shape, number beztension, optional boolean noSortIn)
    Python: Boolean retval = RPR_MIDI_SetCCShape(MediaItem_Take take, Int ccidx, Int shape, Float beztension, const bool noSortInOptional)

    Set CC shape and bezier tension. set noSort if setting multiple events, then call MIDI_Sort when done.

    See MIDI_SetCC, MIDI_GetCCShape

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer ccidx
    integer shape
    number beztension
    optional boolean noSortIn

    see also:
  • MIDI_SetCC - sets the CC event properties
  • MIDI_GetCCShape - gets the CC-shape and bezier tension


  • ^ Reaper version 5.62MIDI_SetEvt

    C: 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)
    EEL2: bool MIDI_SetEvt(MediaItem_Take take, int evtidx, optional bool selectedIn, optional bool mutedIn, optional ppqposIn, optional "msg", optional bool noSortIn)
    Lua: boolean retval = reaper.MIDI_SetEvt(MediaItem_Take take, integer evtidx, optional boolean selectedIn, optional boolean mutedIn, optional number ppqposIn, optional string msg, optional boolean noSortIn)
    Python: Boolean retval = RPR_MIDI_SetEvt(MediaItem_Take take, Int evtidx, const bool selectedInOptional, const bool mutedInOptional, const double ppqposInOptional, String msgOptional, Int msgOptional_sz, const bool noSortInOptional)

    Set MIDI event properties. Properties passed as NULL will not be set. set noSort if setting multiple events, then call MIDI_Sort when done.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer evtidx
    optional boolean selectedIn
    optional boolean mutedIn
    optional number ppqposIn
    optional string msg
    optional boolean noSortIn


    ^ Reaper version 5.62MIDI_SetItemExtents

    C: bool MIDI_SetItemExtents(MediaItem* item, double startQN, double endQN)
    EEL2: bool MIDI_SetItemExtents(MediaItem item, startQN, endQN)
    Lua: boolean retval = reaper.MIDI_SetItemExtents(MediaItem item, number startQN, number endQN)
    Python: Boolean retval = RPR_MIDI_SetItemExtents(MediaItem item, Float startQN, Float endQN)

    Set the start/end positions of a media item that contains a MIDI take.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem item
    number startQN
    number endQN


    ^ Reaper version 5.62MIDI_SetNote

    C: 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)
    EEL2: bool MIDI_SetNote(MediaItem_Take take, int noteidx, optional bool selectedIn, optional bool mutedIn, optional startppqposIn, optional endppqposIn, optional int chanIn, optional int pitchIn, optional int velIn, optional bool noSortIn)
    Lua: boolean retval = reaper.MIDI_SetNote(MediaItem_Take take, integer noteidx, optional boolean selectedIn, optional boolean mutedIn, optional number startppqposIn, optional number endppqposIn, optional integer chanIn, optional integer pitchIn, optional integer velIn, optional boolean noSortIn)
    Python: Boolean retval = RPR_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)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer noteidx
    optional boolean selectedIn
    optional boolean mutedIn
    optional number startppqposIn
    optional number endppqposIn
    optional integer chanIn
    optional integer pitchIn
    optional integer velIn
    optional boolean noSortIn


    ^ Reaper version 6.00MIDI_SetTextSysexEvt

    C: 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)
    EEL2: bool MIDI_SetTextSysexEvt(MediaItem_Take take, int textsyxevtidx, optional bool selectedIn, optional bool mutedIn, optional ppqposIn, optional int typeIn, optional "msg", optional bool noSortIn)
    Lua: boolean retval = reaper.MIDI_SetTextSysexEvt(MediaItem_Take take, integer textsyxevtidx, optional boolean selectedIn, optional boolean mutedIn, optional number ppqposIn, optional integer typeIn, optional string msg, optional boolean noSortIn)
    Python: Boolean retval = RPR_MIDI_SetTextSysexEvt(MediaItem_Take take, Int textsyxevtidx, const bool selectedInOptional, const bool mutedInOptional, const double ppqposInOptional, const int typeInOptional, String msgOptional, Int msgOptional_sz, const bool noSortInOptional)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer textsyxevtidx
    optional boolean selectedIn
    optional boolean mutedIn
    optional number ppqposIn
    optional integer typeIn
    optional string msg
    optional boolean noSortIn


    ^ Reaper version 5.62MIDI_Sort

    C: void MIDI_Sort(MediaItem_Take* take)
    EEL2: MIDI_Sort(MediaItem_Take take)
    Lua: reaper.MIDI_Sort(MediaItem_Take take)
    Python: RPR_MIDI_Sort(MediaItem_Take take)

    Sort MIDI events after multiple calls to MIDI_SetNote, MIDI_SetCC, etc.

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62SetMIDIEditorGrid

    C: void SetMIDIEditorGrid(ReaProject* project, double division)
    EEL2: SetMIDIEditorGrid(ReaProject project, division)
    Lua: reaper.SetMIDIEditorGrid(ReaProject project, number division)
    Python: RPR_SetMIDIEditorGrid(ReaProject project, Float division)

    Set the MIDI editor grid division. 0.25=quarter note, 1.0/3.0=half note tripet, etc.

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    number division
    the division-factor for the MIDI-editor's grid


    ^ Reaper version 6.58SetTrackMIDILyrics

    C: bool SetTrackMIDILyrics(MediaTrack* track, int flag, const char* str)
    EEL2: bool SetTrackMIDILyrics(MediaTrack track, int flag, "str")
    Lua: boolean retval = reaper.SetTrackMIDILyrics(MediaTrack track, integer flag, string str)
    Python: Boolean retval = RPR_SetTrackMIDILyrics(MediaTrack track, Int flag, String str)

    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 "

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer flag
    string str

    see also:
  • GetTrackMIDILyrics - get the track-midi lyrics


  • ^ Reaper version 5.62SetTrackMIDINoteName

    C: bool SetTrackMIDINoteName(int track, int pitch, int chan, const char* name)
    EEL2: bool SetTrackMIDINoteName(int track, int pitch, int chan, "name")
    Lua: boolean retval = reaper.SetTrackMIDINoteName(integer track, integer pitch, integer chan, string name)
    Python: Boolean retval = RPR_SetTrackMIDINoteName(Int track, Int pitch, Int chan, String name)

    channel > 0 assigns these note names to all channels.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer pitch
    integer chan
    string name


    ^ Reaper version 5.62SetTrackMIDINoteNameEx

    C: bool SetTrackMIDINoteNameEx(ReaProject* proj, MediaTrack* track, int pitch, int chan, const char* name)
    EEL2: bool SetTrackMIDINoteNameEx(ReaProject proj, MediaTrack track, int pitch, int chan, "name")
    Lua: boolean retval = reaper.SetTrackMIDINoteNameEx(ReaProject proj, MediaTrack track, integer pitch, integer chan, string name)
    Python: Boolean retval = RPR_SetTrackMIDINoteNameEx(ReaProject proj, MediaTrack track, Int pitch, Int chan, String name)

    channel > 0 assigns note name to all channels. pitch 128 assigns name for CC0, pitch 129 for CC1, etc.

    Returnvalues:
    boolean retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    MediaTrack track
    integer pitch
    integer chan
    string name


    ^ Reaper version 5.62TakeIsMIDI

    C: bool TakeIsMIDI(MediaItem_Take* take)
    EEL2: bool TakeIsMIDI(MediaItem_Take take)
    Lua: boolean retval = reaper.TakeIsMIDI(MediaItem_Take take)
    Python: Boolean retval = RPR_TakeIsMIDI(MediaItem_Take take)

    Returns true if the active take contains MIDI.

    Returnvalues:
    boolean retval
    true, MediaItem_Take contains MIDI; false, MediaItem_Take doesn't contain MIDI

    Parameters:
    MediaItem_Take take
    the MediaItem_Take, that you want to check for MIDI-elements


    ^ Reaper version 5.62EnumRegionRenderMatrix

    C: MediaTrack* EnumRegionRenderMatrix(ReaProject* proj, int regionindex, int rendertrack)
    EEL2: MediaTrack EnumRegionRenderMatrix(ReaProject proj, int regionindex, int rendertrack)
    Lua: MediaTrack tr = reaper.EnumRegionRenderMatrix(ReaProject proj, integer regionindex, integer rendertrack)
    Python: MediaTrack tr = RPR_EnumRegionRenderMatrix(ReaProject proj, Int regionindex, Int rendertrack)

    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.

    Returnvalues:
    MediaTrack tr

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer regionindex
    integer rendertrack


    ^ Reaper version 6.68SetRegionRenderMatrix

    C: void SetRegionRenderMatrix(ReaProject* proj, int regionindex, MediaTrack* track, int addorremove)
    EEL2: SetRegionRenderMatrix(ReaProject proj, int regionindex, MediaTrack track, int addorremove)
    Lua: reaper.SetRegionRenderMatrix(ReaProject proj, integer regionindex, MediaTrack track, integer addorremove)
    Python: RPR_SetRegionRenderMatrix(ReaProject proj, Int regionindex, MediaTrack track, Int addorremove)

    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.

    see TrackList_AdjustWindows to refresh the region-render-matrix

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer regionindex
    the shown region-number
    MediaTrack track
    the MediaTrack to add to the render-matrix for this region
    integer addorremove
    greater than 0, add; lower than 0, remove from the render-matrix

    see also:
  • TrackList_AdjustWindows - refreshes ui of the region render matrix


  • ^ Reaper version 5.62AddProjectMarker

    C: int AddProjectMarker(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx)
    EEL2: int AddProjectMarker(ReaProject proj, bool isrgn, pos, rgnend, "name", int wantidx)
    Lua: integer index = reaper.AddProjectMarker(ReaProject proj, boolean isrgn, number pos, number rgnend, string name, integer wantidx)
    Python: Int retval = RPR_AddProjectMarker(ReaProject proj, Boolean isrgn, Float pos, Float rgnend, String name, Int wantidx)

    Creates a new Projectmarker/Region.
    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.

    It will not create a marker, when at the same position is a marker with the exact name(a bug maybe?)

    Returnvalues:
    integer index
    the shown-number of the newly created marker/region

    Parameters:
    ReaProject proj
    the project, in which to add the new marker; use 0 for the current project
    boolean isrgn
    true, if it shall be a region; false, if a normal marker
    number pos
    the position of the newly created marker/region in seconds
    number rgnend
    if the marker is a region, this is the end of the region in seconds
    string name
    the shown name of the marker
    integer wantidx
    the shown number of the marker/region. Markers can have the same shown marker multiple times. Regions will get another number, if wantidx is already given.


    ^ Reaper version 5.62AddProjectMarker2

    C: int AddProjectMarker2(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx, int color)
    EEL2: int AddProjectMarker2(ReaProject proj, bool isrgn, pos, rgnend, "name", int wantidx, int color)
    Lua: integer index = reaper.AddProjectMarker2(ReaProject proj, boolean isrgn, number pos, number rgnend, string name, integer wantidx, integer color)
    Python: Int retval = RPR_AddProjectMarker2(ReaProject proj, Boolean isrgn, Float pos, Float rgnend, String name, Int wantidx, Int color)

    Returns the shown-number 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

    It will not create a marker, when at the same position is a marker with the exact name(a bug maybe?)

    Returnvalues:
    integer index
    the shown-number of the newly created marker/region

    Parameters:
    ReaProject proj
    the project, in which to add the new marker; use 0 for the current project;
    boolean isrgn
    true, if it shall be a region; false, if a normal marker
    number pos
    the position of the newly created marker/region in seconds
    number rgnend
    if the marker is a region, this is the end of the region in seconds
    string name
    the shown name of the marker
    integer wantidx
    the shown number of the marker/region. Markers can have the same shown marker multiple times. Regions will get another number, if wantidx is already given.
    integer color
    the color of the marker

    see also:
  • ColorToNative - to convert color-value to a native(Mac, Win, Linux) colors


  • ^ Reaper version 5.62CountProjectMarkers

    C: int CountProjectMarkers(ReaProject* proj, int* num_markersOut, int* num_regionsOut)
    EEL2: int CountProjectMarkers(ReaProject proj, int &num_markers, int &num_regions)
    Lua: integer retval, integer num_markers, integer num_regions = reaper.CountProjectMarkers(ReaProject proj)
    Python: (Int retval, ReaProject proj, Int num_markersOut, Int num_regionsOut) = RPR_CountProjectMarkers(proj, num_markersOut, num_regionsOut)

    returns the number of all markers and regions, as well as all markers and all regions in a project.
    num_markersOut and num_regionsOut may be NULL.

    Returnvalues:
    integer retval
    all markers and regions in the project
    integer num_markers
    the number of markers in the project
    integer num_regions
    the number of regions in the project

    Parameters:
    ReaProject proj
    the project, in which to count the markers; 0 for current project.


    ^ Reaper version 5.62DeleteProjectMarker

    C: bool DeleteProjectMarker(ReaProject* proj, int markrgnindexnumber, bool isrgn)
    EEL2: bool DeleteProjectMarker(ReaProject proj, int markrgnindexnumber, bool isrgn)
    Lua: boolean retval = reaper.DeleteProjectMarker(ReaProject proj, integer markrgnindexnumber, boolean isrgn)
    Python: Boolean retval = RPR_DeleteProjectMarker(ReaProject proj, Int markrgnindexnumber, Boolean isrgn)

    Deletes a marker or a region. proj==NULL for the active project.

    Does not delete tempo/timesignature markers!

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer markrgnindexnumber
    the shown number of the marker to be deleted
    boolean isrgn
    true, marker is a region; false, marker is a normal marker


    ^ Reaper version 5.62DeleteProjectMarkerByIndex

    C: bool DeleteProjectMarkerByIndex(ReaProject* proj, int markrgnidx)
    EEL2: bool DeleteProjectMarkerByIndex(ReaProject proj, int markrgnidx)
    Lua: boolean retval = reaper.DeleteProjectMarkerByIndex(ReaProject proj, integer markrgnidx)
    Python: Boolean retval = RPR_DeleteProjectMarkerByIndex(ReaProject proj, Int markrgnidx)

    Differs from DeleteProjectMarker only in that markrgnidx is 0 for the first marker/region in the project, 1 for the next, etc, rather than representing the displayed marker/region ID number.

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer markrgnidx
    the id of the marker within the project, 0 for the first, 1 for the second, etc. Ignores the shown marker-index!

    see also:
  • EnumProjectMarkers3 - gets attributes of a marker/region
  • SetProjectMarker4 - sets attributes of a marker/region


  • ^ Reaper version 5.62EnumProjectMarkers

    C: int EnumProjectMarkers(int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut)
    EEL2: int EnumProjectMarkers(int idx, bool &isrgn, &pos, &rgnend, #name, int &markrgnindexnumber)
    Lua: integer retval, boolean isrgn, number pos, number rgnend, string name, integer markrgnindexnumber = reaper.EnumProjectMarkers(integer idx)
    Python: (Int retval, Int idx, Boolean isrgnOut, Float posOut, Float rgnendOut, String nameOut, Int markrgnindexnumberOut) = RPR_EnumProjectMarkers(idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut)

    Returns the values of a given marker or region idx.

    Returnvalues:
    integer retval
    number of marker beginning with 1 for the first marker
    ignore the order of first,second,etc creation of markers but counts from position 00:00:00 to end of project. So if you created a marker at position 00:00:00 and move the first created marker to the end of the timeline,
    it will be the last one, NOT the first one in the retval!
    boolean isgrn
    is the marker a region?
    number pos
    the time-position in seconds with 12 digits precision (1.123456789012)
    number rgnend
    if it's a region, the position of the end of the region in seconds with 12 digits precision(123.123456789012);
    if it's just a marker it's 0.0
    string name
    name of the marker
    integer markrgnindexnumber
    marker/region index number.
    Note: the numbering of markers and regions is independent. If you have one region and one marker,
    both share the number 1, even though you have 2 in your project(one marker and one region).

    Parameters:
    integer idx
    the number of the marker, beginning with 0 for the first marker


    ^ Reaper version 5.62EnumProjectMarkers2

    C: int EnumProjectMarkers2(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut)
    EEL2: int EnumProjectMarkers2(ReaProject proj, int idx, bool &isrgn, &pos, &rgnend, #name, int &markrgnindexnumber)
    Lua: integer retval, boolean isrgn, number pos, number rgnend, string name, integer markrgnindexnumber = reaper.EnumProjectMarkers2(ReaProject proj, integer idx)
    Python: (Int retval, ReaProject proj, Int idx, Boolean isrgnOut, Float posOut, Float rgnendOut, String nameOut, Int markrgnindexnumberOut) = RPR_EnumProjectMarkers2(proj, idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut)

    Returns the values of a given marker or region idx from a given project proj.

    Returnvalues:
    integer retval
    number of marker beginning with 1 for the first marker
    ignore the order of first,second,etc creation of markers but counts from position 00:00:00 to end of project.
    So if you created a marker at position 00:00:00 and move the first created marker to the end of the timeline, it will be the last one, NOT the first one in the retval!
    boolean isgrn
    is the marker a region?
    number pos
    the time-position in seconds with 12 digits precision (1.123456789012)
    number rgnend
    if it's a region, the end of the region in seconds with 12 digits precision(123.123456789012); if just marker it's 0.0
    string name
    name of the marker
    integer markrgnindexnumber
    marker/region index number.
    Note: the numbering of markers and regions is independent. If you have one region and one marker,
    both share the number 1, even though you have 2 in your project(one marker and one region).

    Parameters:
    ReaProject proj
    Projectnumber. 0, current project;
    1 to x the first(1) to the last project(x) (in tabs for example);
    integer idx
    the number of the marker, beginning with 0 for the first marker


    ^ Reaper version 5.62EnumProjectMarkers3

    C: int EnumProjectMarkers3(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut, int* colorOut)
    EEL2: int EnumProjectMarkers3(ReaProject proj, int idx, bool &isrgn, &pos, &rgnend, #name, int &markrgnindexnumber, int &color)
    Lua: integer retval, boolean isrgn, number pos, number rgnend, string name, integer markrgnindexnumber, integer color = reaper.EnumProjectMarkers3(ReaProject proj, integer idx)
    Python: (Int retval, ReaProject proj, Int idx, Boolean isrgnOut, Float posOut, Float rgnendOut, String nameOut, Int markrgnindexnumberOut, Int colorOut) = RPR_EnumProjectMarkers3(proj, idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut, colorOut)

    Returns the values of a given marker or region idx from a given project proj.

    Returnvalues:
    integer retval
    number of marker beginning with 1 for the first marker;
    ignore the order of first,second,etc creation of markers but counts from
    position 00:00:00 to end of project.
    So if you created a marker at position 00:00:00 and move the first created marker
    to the end of the timeline, it will be the last one, NOT the first one in the retval!
    boolean isgrn
    is the marker a region?
    number pos
    the time-position in seconds with 12 digits precision (1.123456789012)
    number rgnend
    if it's a region, the end of the region in seconds with 12 digits precision(123.123456789012); if just marker it's 0.0
    string name
    name of the marker
    integer markrgnindexnumber
    marker/region index number.
    Note: the numbering of markers and regions is independent. If you have one region and one marker,
    both share the number 1, even though you have 2 in your project(one marker and one region).
    integer color
    number of color of the marker/region

    Parameters:
    ReaProject proj
    Projectnumber. 0, current project; 1 to x the first(1) to the last project(x) (in tabs for example)
    integer idx
    the number of the marker, beginning with 0 for the first marker


    ^ Reaper version 5.62GetLastMarkerAndCurRegion

    C: void GetLastMarkerAndCurRegion(ReaProject* proj, double time, int* markeridxOut, int* regionidxOut)
    EEL2: GetLastMarkerAndCurRegion(ReaProject proj, time, int &markeridx, int ®ionidx)
    Lua: integer markeridx, integer regionidx = reaper.GetLastMarkerAndCurRegion(ReaProject proj, number time)
    Python: (ReaProject proj, Float time, Int markeridxOut, Int regionidxOut) = RPR_GetLastMarkerAndCurRegion(proj, time, markeridxOut, regionidxOut)

    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.

    Returnvalues:
    integer markeridx
    the last marker-number(not shown number!) before parameter time
    integer regionidx
    the region, in which parameter time lies

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number time
    the position to check in seconds

    see also:
  • EnumProjectMarkers - returns, the attributes of a project marker


  • ^ Reaper version 5.965 SWS version 2.10.0.1NF_GetSWSMarkerRegionSub

    C: const char* NF_GetSWSMarkerRegionSub(int markerRegionIdx)
    EEL2: bool extension_api("NF_GetSWSMarkerRegionSub", #retval, int markerRegionIdx)
    Lua: string subtitle = reaper.NF_GetSWSMarkerRegionSub(integer markerRegionIdx)
    Python: String retval = NF_GetSWSMarkerRegionSub(Int markerRegionIdx)

    Returns SWS/S&M marker/region subtitle. markerRegionIdx: Refers to index that can be passed to EnumProjectMarkers (not displayed marker/region index).
    Returns empty string if marker/region with specified index not found or marker/region subtitle not set.

    Lua code example can be found here


    Returnvalues:
    string subtitle

    Parameters:
    integer markerRegionIdx


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_SetSWSMarkerRegionSub

    C: bool NF_SetSWSMarkerRegionSub(const char* markerRegionSub, int markerRegionIdx)
    EEL2: bool extension_api("NF_SetSWSMarkerRegionSub", "markerRegionSub", int markerRegionIdx)
    Lua: boolean retval = reaper.NF_SetSWSMarkerRegionSub(string markerRegionSub, integer markerRegionIdx)
    Python: Boolean retval = NF_SetSWSMarkerRegionSub(String markerRegionSub, Int markerRegionIdx)

    Set SWS/S&M marker/region subtitle. markerRegionIdx: Refers to index that can be passed to EnumProjectMarkers(not displayed marker/region index).
    Returns true if subtitle is set successfully (i.e. marker/region with specified index is present in project).

    Lua code example can be found here


    Returnvalues:
    boolean retval

    Parameters:
    string markerRegionSub
    integer markerRegionIdx


    ^ Reaper version 5.62 SWS version 2.9.7SNM_GetProjectMarkerName

    C: bool SNM_GetProjectMarkerName(ReaProject* proj, int num, bool isrgn, WDL_FastString* name)
    EEL2: bool extension_api("SNM_GetProjectMarkerName", ReaProject proj, int num, bool isrgn, WDL_FastString name)
    Lua: boolean retval = reaper.SNM_GetProjectMarkerName(ReaProject proj, integer num, boolean isrgn, WDL_FastString name)
    Python: Boolean retval = SNM_GetProjectMarkerName(ReaProject proj, Int num, Boolean isrgn, WDL_FastString name)

    [S&M] Gets a marker/region name. Returns true if marker/region found.

    Returnvalues:
    boolean retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer num
    boolean isrgn
    WDL_FastString name


    ^ Reaper version 5.62 SWS version 2.9.7SNM_SetProjectMarker

    C: bool SNM_SetProjectMarker(ReaProject* proj, int num, bool isrgn, double pos, double rgnend, const char* name, int color)
    EEL2: bool extension_api("SNM_SetProjectMarker", ReaProject proj, int num, bool isrgn, pos, rgnend, "name", int color)
    Lua: boolean retval = reaper.SNM_SetProjectMarker(ReaProject proj, integer num, boolean isrgn, number pos, number rgnend, string name, integer color)
    Python: Boolean retval = SNM_SetProjectMarker(ReaProject proj, Int num, Boolean isrgn, Float pos, Float rgnend, String name, Int color)

    [S&M] Deprecated, see SetProjectMarker4 -- Same function as SetProjectMarker3() except it can set empty names "".


    Returnvalues:
    boolean retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer num
    boolean isrgn
    number pos
    number rgnend
    string name
    integer color


    ^ Reaper version 5.62SetProjectMarker

    C: bool SetProjectMarker(int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name)
    EEL2: bool SetProjectMarker(int markrgnindexnumber, bool isrgn, pos, rgnend, "name")
    Lua: boolean retval = reaper.SetProjectMarker(integer markrgnindexnumber, boolean isrgn, number pos, number rgnend, string name)
    Python: Boolean retval = RPR_SetProjectMarker(Int markrgnindexnumber, Boolean isrgn, Float pos, Float rgnend, String name)

    Sets/alters an existing project-marker

    Note: this function can't clear a marker's name (an empty string will leave the name unchanged), see SetProjectMarker4.

    Returnvalues:
    boolean retval
    true, setting the marker worked; false, setting the marker didn't work

    Parameters:
    integer markrgnindexnumber
    the shown number of the marker to be altered
    boolean isrgn
    true, marker is a region; false, marker is a normal marker
    number pos
    the position of the new marker in seconds
    number rgnend
    the end of a region, if isrgn is true
    string name
    shown name of the marker


    ^ Reaper version 5.62SetProjectMarker2

    C: bool SetProjectMarker2(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name)
    EEL2: bool SetProjectMarker2(ReaProject proj, int markrgnindexnumber, bool isrgn, pos, rgnend, "name")
    Lua: boolean retval = reaper.SetProjectMarker2(ReaProject proj, integer markrgnindexnumber, boolean isrgn, number pos, number rgnend, string name)
    Python: Boolean retval = RPR_SetProjectMarker2(ReaProject proj, Int markrgnindexnumber, Boolean isrgn, Float pos, Float rgnend, String name)

    Sets/alters an existing project-marker in a given project.

    Note: this function can't clear a marker's name (an empty string will leave the name unchanged), see SetProjectMarker4.

    Returnvalues:
    boolean retval
    true, setting the marker worked; false, setting the marker didn't work

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer markrgnindexnumber
    the shown number of the marker to be altered
    boolean isrgn
    true, marker is a region; false, marker is a normal marker
    number pos
    the position of the new marker in seconds
    number rgnend
    the end of a region, if isrgn is true
    string name
    shown name of the marker


    ^ Reaper version 5.62SetProjectMarker3

    C: bool SetProjectMarker3(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name, int color)
    EEL2: bool SetProjectMarker3(ReaProject proj, int markrgnindexnumber, bool isrgn, pos, rgnend, "name", int color)
    Lua: boolean retval = reaper.SetProjectMarker3(ReaProject proj, integer markrgnindexnumber, boolean isrgn, number pos, number rgnend, string name, integer color)
    Python: Boolean retval = RPR_SetProjectMarker3(ReaProject proj, Int markrgnindexnumber, Boolean isrgn, Float pos, Float rgnend, String name, Int color)

    Sets/alters an existing project-marker in a given project. Differs from SetProjectMarker2 and SetProjectMarker, that you can set color as well.
    Color should be 0 to not change, or ColorToNative(r,g,b)|0x1000000

    set color=1&~0x10000000 to reset to default color for markers/regions

    Note: this function can't clear a marker's name (an empty string will leave the name unchanged), see SetProjectMarker4.

    Returnvalues:
    boolean retval
    true, setting the marker worked; false, setting the marker didn't work

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer markrgnindexnumber
    the shown number of the marker to be altered
    boolean isrgn
    true, marker is a region; false, marker is a normal marker
    number pos
    the position of the new marker in seconds
    number rgnend
    the end of a region, if isrgn is true
    string name
    shown name of the marker
    integer color
    the new color-value as native color-value


    ^ Reaper version 5.62SetProjectMarker4

    C: bool SetProjectMarker4(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name, int color, int flags)
    EEL2: bool SetProjectMarker4(ReaProject proj, int markrgnindexnumber, bool isrgn, pos, rgnend, "name", int color, int flags)
    Lua: boolean retval = reaper.SetProjectMarker4(ReaProject proj, integer markrgnindexnumber, boolean isrgn, number pos, number rgnend, string name, integer color, integer flags)
    Python: Boolean retval = RPR_SetProjectMarker4(ReaProject proj, Int markrgnindexnumber, Boolean isrgn, Float pos, Float rgnend, String name, Int color, Int flags)

    Sets/alters an existing project-marker in a given project.
    color should be 0 to not change, or ColorToNative(r,g,b)|0x1000000, flags&1 to clear name

    set color=1&~0x10000000 to reset to default color for markers/regions

    Returnvalues:
    boolean retval
    true, setting the marker worked; false, setting the marker didn't work

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer markrgnindexnumber
    the shown number of the marker to be altered
    boolean isrgn
    true, marker is a region; false, marker is a normal marker
    number pos
    the position of the new marker in seconds
    number rgnend
    the end of a region, if isrgn is true
    string name
    shown name of the marker
    integer color
    the new color-value as native color-value
    integer flags
    &1 to clear name


    ^ Reaper version 5.62SetProjectMarkerByIndex

    C: bool SetProjectMarkerByIndex(ReaProject* proj, int markrgnidx, bool isrgn, double pos, double rgnend, int IDnumber, const char* name, int color)
    EEL2: bool SetProjectMarkerByIndex(ReaProject proj, int markrgnidx, bool isrgn, pos, rgnend, int IDnumber, "name", int color)
    Lua: boolean retval = reaper.SetProjectMarkerByIndex(ReaProject proj, integer markrgnidx, boolean isrgn, number pos, number rgnend, integer IDnumber, string name, integer color)
    Python: Boolean retval = RPR_SetProjectMarkerByIndex(ReaProject proj, Int markrgnidx, Boolean isrgn, Float pos, Float rgnend, Int IDnumber, String name, Int color)

    set color=1&~0x10000000 to reset to default color for markers/regions

    Returnvalues:
    boolean retval
    true, setting marker/region was successful; false, setting marker/region was unsuccessful

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer markrgnidx
    the index within all markers(NOT the shown number!)
    boolean isrgn
    true, set it as a region; false, set it as a regular marker
    number pos
    the position of the marker
    number rgnend
    the posiiton of the end of the region(if isrgn=false, simply set this to 0)
    integer IDnumber
    the shown marker/region-number
    string name
    the name of the marker
    integer color
    the color of the marker

    see also:
  • SetProjectMarkerByIndex2 - an enhanced version of SetProjectMarkerByIndex


  • ^ Reaper version 6.71SetProjectMarkerByIndex2

    C: bool SetProjectMarkerByIndex2(ReaProject* proj, int markrgnidx, bool isrgn, double pos, double rgnend, int IDnumber, const char* name, int color, int flags)
    EEL2: bool SetProjectMarkerByIndex2(ReaProject proj, int markrgnidx, bool isrgn, pos, rgnend, int IDnumber, "name", int color, int flags)
    Lua: boolean retval = reaper.SetProjectMarkerByIndex2(ReaProject proj, integer markrgnidx, boolean isrgn, number pos, number rgnend, integer IDnumber, string name, integer color, integer flags)
    Python: Boolean retval = RPR_SetProjectMarkerByIndex2(ReaProject proj, Int markrgnidx, Boolean isrgn, Float pos, Float rgnend, Int IDnumber, String name, Int color, Int flags)

    Differs from SetProjectMarker4 in that markrgnidx is 0 for the first marker/region, 1 for the next, etc, rather than representing the displayed marker/region ID number (see [SetProjectMarker3](#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
    flags&2, markers will not be re-sorted, and after making updates, you MUST call SetProjectMarkerByIndex2 with markrgnidx=-1 and flags&2 to force re-sort/UI updates.

    set color=1&~0x10000000 to reset to default color for markers/regions

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer markrgnidx
    the index within all markers(NOT the shown number!)
    boolean isrgn
    true, set it as a region; false, set it as a regular marker
    number pos
    the position of the marker
    number rgnend
    the posiiton of the end of the region(if isrgn=false, simply set this to 0)
    integer IDnumber
    the shown marker/region-number
    string name
    the name of the marker
    integer color
    the color of the marker
    integer flags
    &1 to clear name


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext_StretchMarker

    C: int BR_GetMouseCursorContext_StretchMarker()
    EEL2: int extension_api("BR_GetMouseCursorContext_StretchMarker")
    Lua: integer retval = reaper.BR_GetMouseCursorContext_StretchMarker()
    Python: Int retval = BR_GetMouseCursorContext_StretchMarker()

    [BR] Returns id of a stretch marker under mouse cursor that was captured with the last call to BR_GetMouseCursorContext.


    Returnvalues:
    integer retval


    ^ Reaper version 5.62DeleteTakeStretchMarkers

    C: int DeleteTakeStretchMarkers(MediaItem_Take* take, int idx, const int* countInOptional)
    EEL2: int DeleteTakeStretchMarkers(MediaItem_Take take, int idx, optional int countIn)
    Lua: integer count_del_stretchmarkers = reaper.DeleteTakeStretchMarkers(MediaItem_Take take, integer idx, optional integer countIn)
    Python: Int retval = RPR_DeleteTakeStretchMarkers(MediaItem_Take take, Int idx, const int countInOptional)

    Deletes one or more stretch markers. Returns number of stretch markers deleted.

    Returnvalues:
    integer count_del_stretchmarkers

    Parameters:
    MediaItem_Take take
    integer idx
    optional integer countIn


    ^ Reaper version 5.62GetTakeNumStretchMarkers

    C: int GetTakeNumStretchMarkers(MediaItem_Take* take)
    EEL2: int GetTakeNumStretchMarkers(MediaItem_Take take)
    Lua: integer count_stretch_marker = reaper.GetTakeNumStretchMarkers(MediaItem_Take take)
    Python: Int retval = RPR_GetTakeNumStretchMarkers(MediaItem_Take take)

    Returns number of stretch markers in take

    Returnvalues:
    integer count_stretch_marker

    Parameters:
    MediaItem_Take take


    ^ Reaper version 6.39GetTakeStretchMarker

    C: int GetTakeStretchMarker(MediaItem_Take* take, int idx, double* posOut, double* srcposOutOptional)
    EEL2: int GetTakeStretchMarker(MediaItem_Take take, int idx, &pos, optional &srcpos)
    Lua: integer retval, number pos, optional number srcpos = reaper.GetTakeStretchMarker(MediaItem_Take take, integer idx)
    Python: (Int retval, MediaItem_Take take, Int idx, Float posOut, Float srcposOutOptional) = RPR_GetTakeStretchMarker(take, idx, posOut, srcposOutOptional)

    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.

    Returnvalues:
    integer retval
    number pos
    optional number srcpos

    Parameters:
    MediaItem_Take take
    integer idx


    ^ Reaper version 5.62GetTakeStretchMarkerSlope

    C: double GetTakeStretchMarkerSlope(MediaItem_Take* take, int idx)
    EEL2: double GetTakeStretchMarkerSlope(MediaItem_Take take, int idx)
    Lua: number take_marker_slope = reaper.GetTakeStretchMarkerSlope(MediaItem_Take take, integer idx)
    Python: Float retval = RPR_GetTakeStretchMarkerSlope(MediaItem_Take take, Int idx)

    See SetTakeStretchMarkerSlope

    Returnvalues:
    number take_marker_slope

    Parameters:
    MediaItem_Take take
    integer idx

    see also:
  • SetTakeStretchMarkerSlope - sets a take/stretch-marker slope


  • ^ Reaper version 5.62SetTakeStretchMarker

    C: int SetTakeStretchMarker(MediaItem_Take* take, int idx, double pos, const double* srcposInOptional)
    EEL2: int SetTakeStretchMarker(MediaItem_Take take, int idx, pos, optional srcposIn)
    Lua: integer retval = reaper.SetTakeStretchMarker(MediaItem_Take take, integer idx, number pos, optional number srcposIn)
    Python: Int retval = RPR_SetTakeStretchMarker(MediaItem_Take take, Int idx, Float pos, const double srcposInOptional)

    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).

    Returnvalues:
    integer retval

    Parameters:
    MediaItem_Take take
    integer idx
    number pos
    optional number srcposIn


    ^ Reaper version 5.62SetTakeStretchMarkerSlope

    C: bool SetTakeStretchMarkerSlope(MediaItem_Take* take, int idx, double slope)
    EEL2: bool SetTakeStretchMarkerSlope(MediaItem_Take take, int idx, slope)
    Lua: boolean retval = reaper.SetTakeStretchMarkerSlope(MediaItem_Take take, integer idx, number slope)
    Python: Boolean retval = RPR_SetTakeStretchMarkerSlope(MediaItem_Take take, Int idx, Float slope)

    Set take stretch marker slope

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    integer idx
    number slope

    see also:
  • GetTakeStretchMarkerSlope - gets the take stretch marker slope


  • ^ Reaper version 6.09DeleteTakeMarker

    C: bool retval = DeleteTakeMarker(MediaItem_Take* take, int idx)
    EEL2: bool retval = DeleteTakeMarker(MediaItem_Take take, int idx)
    Lua: boolean retval = reaper.DeleteTakeMarker(MediaItem_Take take, integer idx)
    Python: Boolean retval = RPR_DeleteTakeMarker(MediaItem_Take take, Int idx)

    Delete a take marker. Note that idx will change for all following take markers.

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful.

    Parameters:
    MediaItem_Take take
    the take, whose take-marker you want to delete
    integer idx
    the id of the marker within the take, 0 for the first, 1 for the second, etc.

    see also:
  • GetNumTakeMarkers - gets the number of take-markers of a take
  • GetTakeMarker - gets attributes of a take-marker of a take
  • SetTakeMarker - sets attributes of a takemarker of a take


  • ^ Reaper version 6.09GetNumTakeMarkers

    C: int GetNumTakeMarkers(MediaItem_Take* take)
    EEL2: int GetNumTakeMarkers(MediaItem_Take take)
    Lua: integer retval = reaper.GetNumTakeMarkers(MediaItem_Take take)
    Python: Int retval = RPR_GetNumTakeMarkers(MediaItem_Take take)

    Returns number of take markers.

    Returnvalues:
    integer retval
    the number of found take-markers

    Parameters:
    MediaItem_Take take
    the take, whose take-markers you want to count

    see also:
  • GetTakeMarker - gets attributes of a take-marker of a take
  • SetTakeMarker - sets attributes of a takemarker of a take
  • DeleteTakeMarker - deletes a take marker


  • ^ Reaper version 6.09GetTakeMarker

    C: double position = GetTakeMarker(MediaItem_Take* take, int idx, char* nameOut, int nameOut_sz, int* colorOutOptional)
    EEL2: double position = GetTakeMarker(MediaItem_Take take, int idx, #name, optional int &color)
    Lua: number position, string name, optional integer color = reaper.GetTakeMarker(MediaItem_Take take, integer idx)
    Python: (Float position, MediaItem_Take take, Int idx, String nameOut, Int nameOut_sz, Int colorOutOptional) = RPR_GetTakeMarker(take, idx, nameOut, nameOut_sz, colorOutOptional))

    Get information about a take marker. Returns the position in media item source time, or -1 if the take marker does not exist.

    Returnvalues:
    number position
    the position of the takemarker within the take in seconds
    string name
    the name of the takemarker
    optional integer color
    the color of the takemarker

    Parameters:
    MediaItem_Take take
    the take, whose take-marker you want to get
    integer idx
    the id of the marker within the take, 0 for the first, 1 for the second, etc.

    see also:
  • GetNumTakeMarkers - gets the number of take-markers of a take
  • SetTakeMarker - sets attributes of a takemarker of a take
  • DeleteTakeMarker - deletes a take marker


  • ^ Reaper version 6.09SetTakeMarker

    C: int index = SetTakeMarker(MediaItem_Take* take, int idx, const char* nameIn, double* srcposInOptional, int* colorInOptional)
    EEL2: int index = SetTakeMarker(MediaItem_Take take, int idx, "nameIn", optional srcposIn, optional int colorIn)
    Lua: integer index = reaper.SetTakeMarker(MediaItem_Take take, integer idx, string nameIn, optional number srcposIn, optional integer colorIn)
    Python: (Int index, MediaItem_Take take, Int idx, String nameIn, Float srcposInOptional, Int colorInOptional) = RPR_SetTakeMarker(take, idx, nameIn, srcposInOptional, colorInOptional)

    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).

    When inserting a new takemarker, parameter srcposIn must be given!

    Returnvalues:
    integer index
    index of the new or update take-marker

    Parameters:
    MediaItem_Take take
    the take, whose take-marker you want to delete
    integer idx
    the id of the marker within the take, 0 for the first, 1 for the second, etc.
    string nameIn
    the name of the takemarker
    optional number srcposIn
    the position of the takemarker; omit if you want to keep the old position; must be given, when inserting a new takemarker
    optional integer colorIn
    the color of the takemarker

    see also:
  • GetNumTakeMarkers - gets the number of take-markers of a take
  • GetTakeMarker - gets attributes of a take-marker of a take
  • DeleteTakeMarker - deletes a take marker


  • ^ Reaper version 5.62DeleteTempoTimeSigMarker

    C: bool DeleteTempoTimeSigMarker(ReaProject* project, int markerindex)
    EEL2: bool DeleteTempoTimeSigMarker(ReaProject project, int markerindex)
    Lua: boolean retval = reaper.DeleteTempoTimeSigMarker(ReaProject project, integer markerindex)
    Python: Boolean retval = RPR_DeleteTempoTimeSigMarker(ReaProject project, Int markerindex)

    Delete a tempo/time signature marker.

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting wasn't successful

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    integer markerindex
    the index of the marker, that you want to delete

    see also:
  • CountTempoTimeSigMarkers - counte the number of tempo/time signature markers
  • GetTempoTimeSigMarker - gets attributes of a tempo/time-signature-marker
  • SetTempoTimeSigMarker - adds/sets a tempo/time signature marker


  • ^ Reaper version 5.62EditTempoTimeSigMarker

    C: bool EditTempoTimeSigMarker(ReaProject* project, int markerindex)
    EEL2: bool EditTempoTimeSigMarker(ReaProject project, int markerindex)
    Lua: boolean retval = reaper.EditTempoTimeSigMarker(ReaProject project, integer markerindex)
    Python: Boolean retval = RPR_EditTempoTimeSigMarker(ReaProject project, Int markerindex)

    Open the tempo/time signature marker editor dialog.

    Returnvalues:
    boolean retval
    true, if user clicked OK button; false if user clicked cancel

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    integer markerindex


    ^ Reaper version 5.62FindTempoTimeSigMarker

    C: int FindTempoTimeSigMarker(ReaProject* project, double time)
    EEL2: int FindTempoTimeSigMarker(ReaProject project, time)
    Lua: integer time_sig_marker_index = reaper.FindTempoTimeSigMarker(ReaProject project, number time)
    Python: Int retval = RPR_FindTempoTimeSigMarker(ReaProject project, Float time)

    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).

    Returnvalues:
    integer time_sig_marker_index

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    number time


    ^ Reaper version 5.62AddTempoTimeSigMarker

    C: bool AddTempoTimeSigMarker(ReaProject* proj, double timepos, double bpm, int timesig_num, int timesig_denom, bool lineartempochange)
    EEL2: bool AddTempoTimeSigMarker(ReaProject proj, timepos, bpm, int timesig_num, int timesig_denom, bool lineartempochange)
    Lua: boolean retval = reaper.AddTempoTimeSigMarker(ReaProject proj, number timepos, number bpm, integer timesig_num, integer timesig_denom, boolean lineartempochange)
    Python: Boolean retval = RPR_AddTempoTimeSigMarker(ReaProject proj, Float timepos, Float bpm, Int timesig_num, Int timesig_denom, Boolean lineartempochange)

    Deprecated. Use SetTempoTimeSigMarker with ptidx=-1.

    Returnvalues:
    boolean retval
    true, if adding was successful; false, if not

    Parameters:
    ReaProject proj
    the project in which to add the TempoTimesigMarker, 0 for the current project;
    number timepos
    the position in seconds
    number bpm
    the speed in bpm
    integer timesig_num
    timesignature number : timesig_num/timesig_denom, e.g. 3/4
    integer timesig_denom
    timesignature denominator : timesig_num/timesig_denom, e.g. 3/4
    boolean lineartempochange
    true, linear tempo change, false not

    see also:
  • CountTempoTimeSigMarkers - counts the number of tempo/time signature markers
  • DeleteTempoTimeSigMarker - removes a tempo/time signature-marker
  • GetTempoTimeSigMarker - gets the attributes of a tempo/time signature-marker
  • SetTempoTimeSigMarker - adds/sets a tempo/time signature marker


  • ^ Reaper version 5.62CountTempoTimeSigMarkers

    C: int CountTempoTimeSigMarkers(ReaProject* proj)
    EEL2: int CountTempoTimeSigMarkers(ReaProject proj)
    Lua: integer count_tempo_markers = reaper.CountTempoTimeSigMarkers(ReaProject proj)
    Python: Int retval = RPR_CountTempoTimeSigMarkers(ReaProject proj)

    Count the number of tempo/time signature markers in the project.

    Returnvalues:
    integer count_tempo_markers
    the number of tempo/time-signature markers in the project.

    Parameters:
    ReaProject proj
    project number; 0 for the current project.

    see also:
  • GetTempoTimeSigMarker - to get a tempo/time-signature marker
  • SetTempoTimeSigMarker - sets a tempo/time-signature-marker
  • DeleteTempoTimeSigMarker - deletes a tempo/time-signature-marker


  • ^ Reaper version 5.62GetProjectTimeSignature

    C: void GetProjectTimeSignature(double* bpmOut, double* bpiOut)
    EEL2: GetProjectTimeSignature(&bpm, &bpi)
    Lua: number bpm, number bpi = reaper.GetProjectTimeSignature()
    Python: (Float bpmOut, Float bpiOut) = RPR_GetProjectTimeSignature(bpmOut, bpiOut)

    deprecated

    Returnvalues:
    number bpm
    the bpm of the project's time-signature
    number bpi
    the bpi of the project's time-signature


    ^ Reaper version 5.62GetProjectTimeSignature2

    C: void GetProjectTimeSignature2(ReaProject* proj, double* bpmOut, double* bpiOut)
    EEL2: GetProjectTimeSignature2(ReaProject proj, &bpm, &bpi)
    Lua: number bpm, number bpi = reaper.GetProjectTimeSignature2(ReaProject proj)
    Python: (ReaProject proj, Float bpmOut, Float bpiOut) = RPR_GetProjectTimeSignature2(proj, bpmOut, bpiOut)

    Gets basic time signature (beats per minute, numerator of time signature in bpi)
    this does not reflect tempo envelopes but is purely what is set in the project settings.

    Returnvalues:
    number bpm
    beats per minute
    number bpi
    numerator of time signature in bpi

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetTempoTimeSigMarker

    C: bool GetTempoTimeSigMarker(ReaProject* proj, int ptidx, double* timeposOut, int* measureposOut, double* beatposOut, double* bpmOut, int* timesig_numOut, int* timesig_denomOut, bool* lineartempoOut)
    EEL2: bool GetTempoTimeSigMarker(ReaProject proj, int ptidx, &timepos, int &measurepos, &beatpos, &bpm, int ×ig_num, int ×ig_denom, bool &lineartempo)
    Lua: boolean retval, number timepos, integer measurepos, number beatpos, number bpm, integer timesig_num, integer timesig_denom, boolean lineartempo = reaper.GetTempoTimeSigMarker(ReaProject proj, integer ptidx)
    Python: (Boolean retval, ReaProject proj, Int ptidx, Float timeposOut, Int measureposOut, Float beatposOut, Float bpmOut, Int timesig_numOut, Int timesig_denomOut, Boolean lineartempoOut) = RPR_GetTempoTimeSigMarker(proj, ptidx, timeposOut, measureposOut, beatposOut, bpmOut, timesig_numOut, timesig_denomOut, lineartempoOut)

    Get information about a tempo/time signature marker.

    Returnvalues:
    boolean retval
    number timepos
    integer measurepos
    number beatpos
    number bpm
    integer timesig_num
    integer timesig_denom
    boolean lineartempo

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer ptidx

    see also:
  • CountTempoTimeSigMarkers - counts the number of tempo/time signature markers
  • DeleteTempoTimeSigMarker - removes a tempo/time signature-marker
  • SetTempoTimeSigMarker - adds/sets a tempo/time signature marker


  • ^ Reaper version 5.62SetTempoTimeSigMarker

    C: bool SetTempoTimeSigMarker(ReaProject* proj, int ptidx, double timepos, int measurepos, double beatpos, double bpm, int timesig_num, int timesig_denom, bool lineartempo)
    EEL2: bool SetTempoTimeSigMarker(ReaProject proj, int ptidx, timepos, int measurepos, beatpos, bpm, int timesig_num, int timesig_denom, bool lineartempo)
    Lua: boolean retval = reaper.SetTempoTimeSigMarker(ReaProject proj, integer ptidx, number timepos, integer measurepos, number beatpos, number bpm, integer timesig_num, integer timesig_denom, boolean lineartempo)
    Python: Boolean retval = RPR_SetTempoTimeSigMarker(ReaProject proj, Int ptidx, Float timepos, Int measurepos, Float beatpos, Float bpm, Int timesig_num, Int timesig_denom, Boolean lineartempo)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer ptidx
    number timepos
    integer measurepos
    number beatpos
    number bpm
    integer timesig_num
    integer timesig_denom
    boolean lineartempo

    see also:
  • CountTempoTimeSigMarkers - counts the number of tempo/time signature markers
  • DeleteTempoTimeSigMarker - removes a tempo/time signature-marker
  • GetTempoTimeSigMarker - gets the attributes of a tempo/time signature-marker


  • ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaItemByGUID

    C: MediaItem* BR_GetMediaItemByGUID(ReaProject* proj, const char* guidStringIn)
    EEL2: MediaItem extension_api("BR_GetMediaItemByGUID", ReaProject proj, "guidStringIn")
    Lua: MediaItem item = reaper.BR_GetMediaItemByGUID(ReaProject proj, string guidStringIn)
    Python: MediaItem item = BR_GetMediaItemByGUID(ReaProject proj, String guidStringIn)

    [BR] Get media item from GUID string. Note that the GUID must be enclosed in braces {}.

    To get item's GUID as a string, see BR_GetMediaItemGUID.

    Returnvalues:
    MediaItem item
    the requested MediaItem as a MediaItem-object

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string guidStringIn
    the guid of the MediaItem you want to request.

    see also:
  • BR_GetMediaItemGUID - gets the guid of a MediaItem


  • ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaItemGUID

    C: void BR_GetMediaItemGUID(MediaItem* item, char* guidStringOut, int guidStringOut_sz)
    EEL2: extension_api("BR_GetMediaItemGUID", MediaItem item, #guidString)
    Lua: string guidString = reaper.BR_GetMediaItemGUID(MediaItem item)
    Python: (MediaItem item, String guidStringOut, Int guidStringOut_sz) = BR_GetMediaItemGUID(item, guidStringOut, guidStringOut_sz)

    [BR] Get media item GUID as a string (guidStringOut_sz should be at least 64). To get media item back from GUID string, see BR_GetMediaItemByGUID.


    Returnvalues:
    string guidString
    the requested guid of the MediaItem

    Parameters:
    MediaItem item
    the MediaItem, whose guid you want to request


    ^ Reaper version 5.62 SWS version 2.11.0BR_GetMediaItemImageResource

    C: bool BR_GetMediaItemImageResource(MediaItem* item, char* imageOut, int imageOut_sz, int* imageFlagsOut)
    EEL2: bool extension_api("BR_GetMediaItemImageResource", MediaItem item, #image, int &imageFlags)
    Lua: boolean retval, string image, integer imageFlags = reaper.BR_GetMediaItemImageResource(MediaItem item)
    Python: (Boolean retval, MediaItem item, String imageOut, Int imageOut_sz, Int imageFlagsOut) = BR_GetMediaItemImageResource(item, imageOut, imageOut_sz, imageFlagsOut)

    [BR] Get currently loaded image resource and its flags for a given item. Returns false if there is no image resource set. To set image resource, see BR_SetMediaItemImageResource.


    Returnvalues:
    boolean retval
    string image
    integer imageFlags

    Parameters:
    MediaItem item


    ^ Reaper version 5.62 SWS version 2.9.7BR_SetItemEdges

    C: bool BR_SetItemEdges(MediaItem* item, double startTime, double endTime)
    EEL2: bool extension_api("BR_SetItemEdges", MediaItem item, startTime, endTime)
    Lua: boolean retval = reaper.BR_SetItemEdges(MediaItem item, number startTime, number endTime)
    Python: Boolean retval = BR_SetItemEdges(MediaItem item, Float startTime, Float endTime)

    [BR] Set item start and end edges' position - returns true in case of any changes

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem item
    number startTime
    number endTime


    ^ Reaper version 5.974 SWS version 2.13.1.0BR_SetMediaItemImageResource

    C: void BR_SetMediaItemImageResource(MediaItem* item, const char* imageIn, int imageFlags)
    EEL2: extension_api("BR_SetMediaItemImageResource", MediaItem item, "imageIn", int imageFlags)
    Lua: reaper.BR_SetMediaItemImageResource(MediaItem item, string imageIn, integer imageFlags)
    Python: BR_SetMediaItemImageResource(MediaItem item, String imageIn, Int imageFlags)

    [BR] Set image resource and its flags for a given item.

    To clear current image resource, pass imageIn as "".

    imageFlags:
    &1=0: don't display image,
    &1: center / tile,
    &3: stretch,
    &5: full height (REAPER 5.974+).

    Can also be used to display existing text in empty items unstretched (pass imageIn = "", imageFlags = 0) or stretched (pass imageIn = "". imageFlags = 3).

    To get image resource, see BR_GetMediaItemImageResource

    Parameters:
    MediaItem item
    string imageIn
    integer imageFlags

    see also:
  • BR_GetMediaItemImageResource - get the image resource of a MediaItem


  • ^ Reaper version 5.62GetDisplayedMediaItemColor

    C: int GetDisplayedMediaItemColor(MediaItem* item)
    EEL2: int GetDisplayedMediaItemColor(MediaItem item)
    Lua: integer color = reaper.GetDisplayedMediaItemColor(MediaItem item)
    Python: Int retval = RPR_GetDisplayedMediaItemColor(MediaItem item)

    gets the color of a MediaItem

    Returnvalues:
    integer color
    the native color-value of the MediaItem

    Parameters:
    MediaItem item
    the MediaItem, whose color you want to get

    see also:
  • GetDisplayedMediaItemColor2 - to get the color of a MediaTrack, MediaItem and/or Take


  • ^ Reaper version 5.62GetDisplayedMediaItemColor2

    C: int GetDisplayedMediaItemColor2(MediaItem* item, MediaItem_Take* take)
    EEL2: int GetDisplayedMediaItemColor2(MediaItem item, MediaItem_Take take)
    Lua: integer color = reaper.GetDisplayedMediaItemColor2(MediaItem item, MediaItem_Take take)
    Python: Int retval = RPR_GetDisplayedMediaItemColor2(MediaItem item, MediaItem_Take take)

    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.

    Returnvalues:
    integer color

    Parameters:
    MediaItem item
    MediaItem_Take take

    see also:
  • GetDisplayedMediaItemColor - to get the color of a MediaItem
  • ColorToNative - for converting r-g-b-values to a native-color value
  • ColorFromNative - for converting a native color-calue into its r-g-b-representation


  • ^ Reaper version 5.62GetItemProjectContext

    C: ReaProject* GetItemProjectContext(MediaItem* item)
    EEL2: ReaProject GetItemProjectContext(MediaItem item)
    Lua: ReaProject proj = reaper.GetItemProjectContext(MediaItem item)
    Python: ReaProject proj = RPR_GetItemProjectContext(MediaItem item)

    Returns the project, in which a MediaItem is located.

    Returnvalues:
    ReaProject proj
    the project, in which the MediaItem is located; returned as a reaper-object

    Parameters:
    MediaItem item
    the MediaItem, whose project-location you want to know


    ^ Reaper version 5.982GetItemStateChunk

    C: bool GetItemStateChunk(MediaItem* item, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)
    EEL2: bool GetItemStateChunk(MediaItem item, #str, bool isundo)
    Lua: boolean retval, string str = reaper.GetItemStateChunk(MediaItem item, string str, boolean isundo)
    Python: (Boolean retval, MediaItem item, String strNeedBig, Int strNeedBig_sz, Boolean isundoOptional) = RPR_GetItemStateChunk(item, strNeedBig, strNeedBig_sz, isundoOptional)

    Gets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint.

    Returnvalues:
    boolean retval
    true, getting statechunk was successful
    string str
    the statechunk of the MediaItem

    Parameters:
    MediaItem item
    the MediaItem, whose statechunk you want
    string str
    just pass "" to it
    boolean isundo
    Undo flag is a performance/caching hint.


    ^ Reaper version 6.34GetMediaItemInfo_Value

    C: double GetMediaItemInfo_Value(MediaItem* item, const char* parmname)
    EEL2: double GetMediaItemInfo_Value(MediaItem item, "parmname")
    Lua: number retval = reaper.GetMediaItemInfo_Value(MediaItem item, string parmname)
    Python: Float retval = RPR_GetMediaItemInfo_Value(MediaItem item, String parmname)

    Get media item numerical-value attributes.
        B_MUTE : bool * : muted (item solo overrides). setting this value will clear C_MUTE_SOLO.
        B_MUTE_ACTUAL : bool * : muted (ignores solo). setting this value will not affect C_MUTE_SOLO.
        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.
        B_LOOPSRC : bool * : loop source
        B_ALLTAKESPLAY : bool * : all takes play
        B_UISEL : bool * : selected in arrange view
        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
        C_AUTOSTRETCH: : char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1
        C_LOCK : char * : locked, &1=locked, &2=lock to active take
        D_VOL : double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
        D_POSITION : double * : item position in seconds
        D_LENGTH : double * : item length in seconds
        D_SNAPOFFSET : double * : item snap offset in seconds
        D_FADEINLEN : double * : item manual fadein length in seconds
        D_FADEOUTLEN : double * : item manual fadeout length in seconds
        D_FADEINDIR : double * : item fadein curvature, -1..1
        D_FADEOUTDIR : double * : item fadeout curvature, -1..1
        D_FADEINLEN_AUTO : double * : item auto-fadein length in seconds, -1=no auto-fadein
        D_FADEOUTLEN_AUTO : double * : item auto-fadeout length in seconds, -1=no auto-fadeout
        C_FADEINSHAPE : int * : fadein shape, 0..6, 0=linear
        C_FADEOUTSHAPE : int * : fadeout shape, 0..6, 0=linear
        I_GROUPID : int * : group ID, 0=no group
        I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
        I_LASTH : int * : height in pixels (read-only)
        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
        I_CURTAKE : int * : active take number
        IP_ITEMNUMBER : int : item number on this track (read-only, returns the item number directly)
        F_FREEMODE_Y : float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1)
        F_FREEMODE_H : float * : free item positioning height, 0=no height, 1=full height of track (will never be 0)
        P_TRACK : MediaTrack * : (read-only)

    Returnvalues:
    number retval
    the value you requested

    Parameters:
    MediaItem item
    the MediaItem, whose value you want to have
    string parmname
    the parametername, whose value you want to have; refer description for more details


    ^ Reaper version 5.62GetSetItemState

    C: bool GetSetItemState(MediaItem* item, char* str, int str_sz)
    EEL2: bool GetSetItemState(MediaItem item, #str)
    Lua: boolean retval, string str = reaper.GetSetItemState(MediaItem item, string str)
    Python: (Boolean retval, MediaItem item, String str, Int str_sz) = RPR_GetSetItemState(item, str, str_sz)

    deprecated -- see SetItemStateChunk, GetItemStateChunk

    Returnvalues:
    boolean retval
    true, getting/setting was successful; false, getting/setting was unsuccessful
    string str
    the value currently set

    Parameters:
    MediaItem item
    string str

    see also:
  • GetItemStateChunk - returns, an ItemStateChunk, which holds all attributes-information of a MediaItem
  • SetItemStateChunk - sets an ItemStateChunk, to replace all attributes-information of a MediaItem


  • ^ Reaper version 5.62GetSetItemState2

    C: bool GetSetItemState2(MediaItem* item, char* str, int str_sz, bool isundo)
    EEL2: bool GetSetItemState2(MediaItem item, #str, bool isundo)
    Lua: boolean retval, string str = reaper.GetSetItemState2(MediaItem item, string str, boolean isundo)
    Python: (Boolean retval, MediaItem item, String str, Int str_sz, Boolean isundo) = RPR_GetSetItemState2(item, str, str_sz, isundo)

    deprecated -- see SetItemStateChunk, GetItemStateChunk

    Returnvalues:
    boolean retval
    true, getting/setting was successful; false, getting/setting was unsuccessful
    string str
    the value currently set

    Parameters:
    MediaItem item
    the new item to set
    string str
    the new value to set
    boolean isundo
    true, undo; false, don't undo

    see also:
  • GetItemStateChunk - returns, an ItemStateChunk, which holds all attributes-information of a MediaItem
  • SetItemStateChunk - sets an ItemStateChunk, to replace all attributes-information of a MediaItem


  • ^ Reaper version 5.975GetSetMediaItemInfo_String

    C: bool GetSetMediaItemInfo_String(MediaItem* item, const char* parmname, char* stringNeedBig, bool setNewValue)
    EEL2: bool GetSetMediaItemInfo_String(MediaItem item, "parmname", #stringNeedBig, bool setNewValue)
    Lua: boolean retval, string stringNeedBig = reaper.GetSetMediaItemInfo_String(MediaItem item, string parmname, string stringNeedBig, boolean setNewValue)
    Python: (Boolean retval, MediaItem item, String parmname, String stringNeedBig, Boolean setNewValue) = RPR_GetSetMediaItemInfo_String(item, parmname, stringNeedBig, setNewValue)

    Gets/sets an item attribute string:
        P_NOTES : char * : item note text (do not write to returned pointer, use setNewValue to update)
        P_EXT:xyz : char * : extension-specific persistent data
        GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.

    Returnvalues:
    boolean retval
    string stringNeedBig

    Parameters:
    MediaItem item
    string parmname
    string stringNeedBig
    boolean setNewValue


    ^ Reaper version 5.62IsMediaItemSelected

    C: bool IsMediaItemSelected(MediaItem* item)
    EEL2: bool IsMediaItemSelected(MediaItem item)
    Lua: boolean item_selected = reaper.IsMediaItemSelected(MediaItem item)
    Python: Boolean retval = RPR_IsMediaItemSelected(MediaItem item)

    Get, if a MediaItem is selected or not.

    Returnvalues:
    boolean item_selected
    true, MediaItem is selected; false, MediaItem is not selected

    Parameters:
    MediaItem item
    the MediaItem, whose selected-state you want to know


    ^ Reaper version 5.62 SWS version 2.9.7SNM_GetSetSourceState

    C: bool SNM_GetSetSourceState(MediaItem* item, int takeidx, WDL_FastString* state, bool setnewvalue)
    EEL2: bool extension_api("SNM_GetSetSourceState", MediaItem item, int takeidx, WDL_FastString state, bool setnewvalue)
    Lua: boolean retval = reaper.SNM_GetSetSourceState(MediaItem item, integer takeidx, WDL_FastString state, boolean setnewvalue)
    Python: Boolean retval = SNM_GetSetSourceState(MediaItem item, Int takeidx, WDL_FastString state, Boolean setnewvalue)

    [S&M] Gets or sets a take source state. Returns false if failed. Use takeidx=-1 to get/alter the active take. Note: this function does not use a MediaItem_Take* param in order to manage empty takes (i.e. takes with MediaItem_Take*==NULL), see SNM_GetSetSourceState2.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem item
    integer takeidx
    WDL_FastString state
    boolean setnewvalue


    ^ Reaper version 5.62SetItemStateChunk

    C: bool SetItemStateChunk(MediaItem* item, const char* str, bool isundoOptional)
    EEL2: bool SetItemStateChunk(MediaItem item, "str", bool isundo)
    Lua: boolean retval = reaper.SetItemStateChunk(MediaItem item, string str, boolean isundo)
    Python: Boolean retval = RPR_SetItemStateChunk(MediaItem item, String str, Boolean isundoOptional)

    Sets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint.

    Returnvalues:
    boolean retval

    Parameters:
    MediaItem item
    string str
    boolean isundo


    ^ Reaper version 6.34SetMediaItemInfo_Value

    C: bool SetMediaItemInfo_Value(MediaItem* item, const char* parmname, double newvalue)
    EEL2: bool SetMediaItemInfo_Value(MediaItem item, "parmname", newvalue)
    Lua: boolean retval = reaper.SetMediaItemInfo_Value(MediaItem item, string parmname, number newvalue)
    Python: Boolean retval = RPR_SetMediaItemInfo_Value(MediaItem item, String parmname, Float newvalue)

    Set media item numerical-value attributes.
    B_MUTE : bool * : muted
    B_MUTE_ACTUAL : bool * : muted (ignores solo). setting this value will not affect C_MUTE_SOLO.
    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.
    B_LOOPSRC : bool * : loop source
    B_ALLTAKESPLAY : bool * : all takes play
    B_UISEL : bool * : selected in arrange view
    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
    C_AUTOSTRETCH: : char * : auto-stretch at project tempo changes, 1=enabled, requires C_BEATATTACHMODE=1
    C_LOCK : char * : locked, &1=locked, &2=lock to active take
    D_VOL : double * : item volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
    D_POSITION : double * : item position in seconds
    D_LENGTH : double * : item length in seconds
    D_SNAPOFFSET : double * : item snap offset in seconds
    D_FADEINLEN : double * : item manual fadein length in seconds
    D_FADEOUTLEN : double * : item manual fadeout length in seconds
    D_FADEINDIR : double * : item fadein curvature, -1..1
    D_FADEOUTDIR : double * : item fadeout curvature, -1..1
    D_FADEINLEN_AUTO : double * : item auto-fadein length in seconds, -1=no auto-fadein
    D_FADEOUTLEN_AUTO : double * : item auto-fadeout length in seconds, -1=no auto-fadeout
    C_FADEINSHAPE : int * : fadein shape, 0..6, 0=linear
    C_FADEOUTSHAPE : int * : fadeout shape, 0..6, 0=linear
    I_GROUPID : int * : group ID, 0=no group
    I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
    I_LASTH : int * : height in pixels (read-only)
    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.
    I_CURTAKE : int * : active take number
    IP_ITEMNUMBER : int : item number on this track (read-only, returns the item number directly)
    F_FREEMODE_Y : float * : free item positioning Y-position, 0=top of track, 1=bottom of track (will never be 1)
    F_FREEMODE_H : float * : free item positioning height, 0=no height, 1=full height of track (will never be 0)

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    MediaItem item
    the MediaItem, whose attribute you want to set
    string parmname
    the attribute, that you want to set
    number newvalue
    the new value for the attribute


    ^ Reaper version 5.62SetMediaItemLength

    C: bool SetMediaItemLength(MediaItem* item, double length, bool refreshUI)
    EEL2: bool SetMediaItemLength(MediaItem item, length, bool refreshUI)
    Lua: boolean retval = reaper.SetMediaItemLength(MediaItem item, number length, boolean refreshUI)
    Python: Boolean retval = RPR_SetMediaItemLength(MediaItem item, Float length, Boolean refreshUI)

    Redraws the screen only if refreshUI == true, otherwise see UpdateArrange().


    Returnvalues:
    boolean retval
    true, setting was successful, false, setting was unsuccessful(e.g. length=negative)

    Parameters:
    MediaItem item
    the MediaItem, whose length you want to change
    number length
    the new length of MediaItem
    boolean refreshUI
    true, refresh UI; false, don't refresh UI


    ^ Reaper version 5.62SetMediaItemPosition

    C: bool SetMediaItemPosition(MediaItem* item, double position, bool refreshUI)
    EEL2: bool SetMediaItemPosition(MediaItem item, position, bool refreshUI)
    Lua: boolean retval = reaper.SetMediaItemPosition(MediaItem item, number position, boolean refreshUI)
    Python: Boolean retval = RPR_SetMediaItemPosition(MediaItem item, Float position, Boolean refreshUI)

    Redraws the screen only if refreshUI == true. See UpdateArrange().


    Returnvalues:
    boolean retval
    true, setting was successful, false, setting was unsuccessful(e.g. position=negative)

    Parameters:
    MediaItem item
    the MediaItem, whose position you want to change
    number position
    the new position of MediaItem
    boolean refreshUI
    true, refresh UI; false, don't refresh UI


    ^ Reaper version 5.62SetMediaItemSelected

    C: void SetMediaItemSelected(MediaItem* item, bool selected)
    EEL2: SetMediaItemSelected(MediaItem item, bool selected)
    Lua: reaper.SetMediaItemSelected(MediaItem item, boolean selected)
    Python: RPR_SetMediaItemSelected(MediaItem item, Boolean selected)

    Sets a mediaitem selected or unselected.

    Use UpdateArrange() to make changes visible.


    Parameters:
    MediaItem item
    the MediaItem, that you want to set (un-)selected
    boolean selected
    true, set the item selected; false, set it unselected


    ^ Reaper version 5.62 SWS version 2.12.1.1ULT_GetMediaItemNote

    C: const char* ULT_GetMediaItemNote(MediaItem* item)
    EEL2: bool extension_api("ULT_GetMediaItemNote", #retval, MediaItem item)
    Lua: string str = reaper.ULT_GetMediaItemNote(MediaItem item)
    Python: String retval = ULT_GetMediaItemNote(MediaItem item)

    Deprecated

    [ULT] Deprecated, see GetSetMediaItemInfo_String (v5.95+). Get item notes.


    Returnvalues:
    string str
    the notes, as stored in the MediaItem. If no notes exist, it will return ""

    Parameters:
    MediaItem item
    the MediaItem from which to get the notes from


    ^ Reaper version 5.62 SWS version 2.9.7ULT_SetMediaItemNote

    C: void ULT_SetMediaItemNote(MediaItem* item, const char* note)
    EEL2: extension_api("ULT_SetMediaItemNote", MediaItem item, "note")
    Lua: reaper.ULT_SetMediaItemNote(MediaItem item, string note)
    Python: ULT_SetMediaItemNote(MediaItem item, String note)

    [ULT] Deprecated, see GetSetMediaItemInfo_String (v5.95+). Set item notes.


    Parameters:
    MediaItem item
    the MediaItem in which to add the Notes
    string note
    the notes to be added. Newlines are allowed. Long strings may slow down Reaper!


    ^ Reaper version 5.62AddMediaItemToTrack

    C: MediaItem* item AddMediaItemToTrack(MediaTrack* tr)
    EEL2: MediaItem item AddMediaItemToTrack(MediaTrack tr)
    Lua: MediaItem item = reaper.AddMediaItemToTrack(MediaTrack tr)
    Python: MediaItem item = RPR_AddMediaItemToTrack(MediaTrack tr)

    Creates a new media item. It will be empty and therefore not be shown in the arrange-view, until you associate a mediafile(audio, picture, video, etc) or a length and position to it using SetMediaItemInfo_Value

    Returnvalues:
    MediaItem item
    the newly created MediaItem-object

    Parameters:
    MediaTrack tr
    tracknumber(zero based), with 0 for track 1, 1 for track 2, etc.

    see also:
  • SetMediaItemInfo_Value - for setting attributes of new item, like length, position


  • ^ Reaper version 5.62ApplyNudge

    C: bool ApplyNudge(ReaProject* project, int nudgeflag, int nudgewhat, int nudgeunits, double value, bool reverse, int copies)
    EEL2: bool ApplyNudge(ReaProject project, int nudgeflag, int nudgewhat, int nudgeunits, value, bool reverse, int copies)
    Lua: boolean retval = reaper.ApplyNudge(ReaProject project, integer nudgeflag, integer nudgewhat, integer nudgeunits, number value, boolean reverse, integer copies)
    Python: Boolean retval = RPR_ApplyNudge(ReaProject project, Int nudgeflag, Int nudgewhat, Int nudgeunits, Float value, Boolean reverse, Int copies)

    Nudges elements like items, cursor, contents, etc to or by a value you want. Nudges only selected mediaitems.

    Returnvalues:
    boolean retval
    true, if it worked; false, if it didn't

    Parameters:
    ReaProject project
    the project, in which to nudge; 0 for the current project
    integer nudgeflag
    the way to nudge
    &1, set to value(otherwise nudge by values)
    &2, snap
    integer nudgewhat
    what to nudge
    0, position
    1, left trim
    2, left edge
    3, right edge
    4, contents
    5, duplicate
    6, editcursor
    integer nudgeunits
    the unit, in which to nudge
    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
    number value
    amount to nudge by, or value to set to(depending on the settings in nudgeflag and the unit in nudgeunits)
    boolean reverse
    in nudge mode: true nudges left; right doesn't nudge to left
    integer copies
    in nudge duplicate mode, number of copies (otherwise ignored)


    ^ Reaper version 5.62 SWS version 2.9.7BR_ItemAtMouseCursor

    C: MediaItem* BR_ItemAtMouseCursor(double* positionOut)
    EEL2: MediaItem extension_api("BR_ItemAtMouseCursor", &position)
    Lua: MediaItem item, number position = reaper.BR_ItemAtMouseCursor()
    Python: (MediaItem retval, Float positionOut) = BR_ItemAtMouseCursor(positionOut)

    [BR] Get media item under mouse cursor. Position is mouse cursor position in arrange.

    Returnvalues:
    MediaItem item
    the item at mouse-cursor
    number position
    position at mouse-cursor


    ^ Reaper version 5.62CountMediaItems

    C: int CountMediaItems(ReaProject* proj)
    EEL2: int CountMediaItems(ReaProject proj)
    Lua: integer count_items = reaper.CountMediaItems(ReaProject proj)
    Python: Int retval = RPR_CountMediaItems(ReaProject proj)

    count the number of items in the project (proj=0 for active project)

    Returnvalues:
    integer count_items
    the number of MediaItems in a project

    Parameters:
    ReaProject proj
    the project, in which to count for the number of items; 0 for the current project.


    ^ Reaper version 5.62CountSelectedMediaItems

    C: int CountSelectedMediaItems(ReaProject* proj)
    EEL2: int CountSelectedMediaItems(ReaProject proj)
    Lua: integer count_sel_items = reaper.CountSelectedMediaItems(ReaProject proj)
    Python: Int retval = RPR_CountSelectedMediaItems(ReaProject proj)

    count the number of selected items in the project (proj=0 for active project)

    Returnvalues:
    integer count_sel_items
    the number of selected items in the project

    Parameters:
    ReaProject proj
    the project, in which to count for the selected mediaitems; 0 for the current project.


    ^ Reaper version 5.62CountTrackMediaItems

    C: int CountTrackMediaItems(MediaTrack* track)
    EEL2: int CountTrackMediaItems(MediaTrack track)
    Lua: integer count_trackitems = reaper.CountTrackMediaItems(MediaTrack track)
    Python: Int retval = RPR_CountTrackMediaItems(MediaTrack track)

    count the number of items in the track

    Returnvalues:
    integer count_trackitems
    the number of mediaitems in the track

    Parameters:
    MediaTrack track
    the MediaTrack to count the items of


    ^ Reaper version 5.62CreateNewMIDIItemInProj

    C: MediaItem* CreateNewMIDIItemInProj(MediaTrack* track, double starttime, double endtime, const bool* qnInOptional)
    EEL2: MediaItem CreateNewMIDIItemInProj(MediaTrack track, starttime, endtime, optional bool qnIn)
    Lua: MediaItem item = reaper.CreateNewMIDIItemInProj(MediaTrack track, number starttime, number endtime, optional boolean qnIn)
    Python: MediaItem item = RPR_CreateNewMIDIItemInProj(MediaTrack track, Float starttime, Float endtime, const bool qnInOptional)

    Create a new MIDI media item, containing no MIDI events. Time is in seconds unless qn is set.

    Returnvalues:
    MediaItem item
    the newly created MIDI-mediaitem.

    Parameters:
    MediaTrack track
    the object of the track, in which to create this mediaitem
    number starttime
    starttime of the item in seconds, unless qnIn is set to true
    number endtime
    endtime of the item in seconds, unless qnIn is set to true
    boolean qnIn
    unknown; can be set to true, or false or be omitted


    ^ Reaper version 5.62DeleteTrackMediaItem

    C: bool DeleteTrackMediaItem(MediaTrack* tr, MediaItem* it)
    EEL2: bool DeleteTrackMediaItem(MediaTrack tr, MediaItem it)
    Lua: boolean retval = reaper.DeleteTrackMediaItem(MediaTrack tr, MediaItem it)
    Python: Boolean retval = RPR_DeleteTrackMediaItem(MediaTrack tr, MediaItem it)

    Deletes a MediaItem.

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful

    Parameters:
    MediaTrack tr
    the MediaTrack, in which the MediaItem lies, that you want to delete
    MediaItem it
    the MediaItem-object you want to delete


    ^ Reaper version 5.975GetItemFromPoint

    C: MediaItem* GetItemFromPoint(int screen_x, int screen_y, bool allow_locked, MediaItem_Take** takeOutOptional)
    EEL2: MediaItem GetItemFromPoint(int screen_x, int screen_y, bool allow_locked, MediaItem_Take &take)
    Lua: MediaItem item, MediaItem_Take take = reaper.GetItemFromPoint(integer screen_x, integer screen_y, boolean allow_locked)
    Python: MediaItem item = RPR_GetItemFromPoint(Int screen_x, Int screen_y, Boolean allow_locked, MediaItem_Take* takeOutOptional)

    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(in Lua, this function simply returns the take as additional return-value).

    Note: You can not get the item at screen-coordinates, where it is hidden by other windows.

    Returnvalues:
    MediaItem item
    the MediaItem at the position
    MediaItem_Take take
    the MediaItem_Take at the position

    Parameters:
    integer screen_x
    the x-position in pixels
    integer screen_y
    the y-position in pixels
    boolean allow_locked
    true, allow getting locked items as well; false, don't get locked items

    see also:
  • GetThingFromPoint - returns, various elements at specific coordinates(arrange, mcp, fxchain, etc)


  • ^ Reaper version 5.62GetMediaItem

    C: MediaItem* GetMediaItem(ReaProject* proj, int itemidx)
    EEL2: MediaItem GetMediaItem(ReaProject proj, int itemidx)
    Lua: MediaItem item = reaper.GetMediaItem(ReaProject proj, integer itemidx)
    Python: MediaItem item = RPR_GetMediaItem(ReaProject proj, Int itemidx)

    get an item from a project by item count (zero-based)

    Returnvalues:
    MediaItem item
    the requested MediaItem as a MediaItem-object

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer itemidx
    the number of the item within the whole project; 0 for the first, 1 for the second, etc; numberingorder depending on, when was a MediaItem added to the project(recording, import, etc)


    ^ Reaper version 5.62GetMediaItemTrack

    C: MediaTrack* GetMediaItemTrack(MediaItem* item)
    EEL2: MediaTrack GetMediaItemTrack(MediaItem item)
    Lua: MediaTrack tr = reaper.GetMediaItemTrack(MediaItem item)
    Python: MediaTrack tr = RPR_GetMediaItemTrack(MediaItem item)

    Get the associated MediaTrack of a MediaItem.

    Returnvalues:
    MediaTrack tr
    the MediaTrack, where the MediaItem is located in

    Parameters:
    MediaItem item
    the MediaItem, whose associated MediaTrack you want to have


    ^ Reaper version 5.62GetMediaItem_Track

    C: MediaTrack* GetMediaItem_Track(MediaItem* item)
    EEL2: MediaTrack GetMediaItem_Track(MediaItem item)
    Lua: MediaTrack track = reaper.GetMediaItem_Track(MediaItem item)
    Python: MediaTrack track = RPR_GetMediaItem_Track(MediaItem item)

    Get parent track of media item

    Returnvalues:
    MediaTrack track
    the returned MediaTrack, in which the MediaItem lies

    Parameters:
    MediaItem item
    the MediaItem, whose track you want to know


    ^ Reaper version 5.62GetSelectedMediaItem

    C: MediaItem* GetSelectedMediaItem(ReaProject* proj, int selitem)
    EEL2: MediaItem GetSelectedMediaItem(ReaProject proj, int selitem)
    Lua: MediaItem sel_item = reaper.GetSelectedMediaItem(ReaProject proj, integer selitem)
    Python: MediaItem sel_item = RPR_GetSelectedMediaItem(ReaProject proj, Int selitem)

    get a selected item by selected item count (zero-based)

    Returnvalues:
    MediaItem sel_item
    the requested MediaItem as a MediaItem-object

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer selitem
    the id of the selected MediaItem, as multiple items can be selected.

    see also:
  • CountSelectedMediaItems - returns the count of selected media items in a project


  • ^ Reaper version 5.62GetTrackMediaItem

    C: MediaItem* GetTrackMediaItem(MediaTrack* tr, int itemidx)
    EEL2: MediaItem GetTrackMediaItem(MediaTrack tr, int itemidx)
    Lua: MediaItem item = reaper.GetTrackMediaItem(MediaTrack tr, integer itemidx)
    Python: MediaItem item = RPR_GetTrackMediaItem(MediaTrack tr, Int itemidx)



    Returnvalues:
    MediaItem item

    Parameters:
    MediaTrack tr
    integer itemidx


    ^ Reaper version 6.23InsertMedia

    C: int InsertMedia(const char* file, int mode)
    EEL2: int InsertMedia("file", int mode)
    Lua: integer retval = reaper.InsertMedia(string file, integer mode)
    Python: Int retval = RPR_InsertMedia(String file, Int mode)

    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 or mode&2048,
    &1024=insert into reasamplomatic on a new track (add 1 to insert on last selected track),
    &2048=insert into open reasamplomatic instance (add 512 to use high word as absolute track index),
    &4096=move to source preferred position (BWF start offset),
    &8192=reverse

    Example:
    To insert an item at a specific trackindex, use:
    
        TrackIndex=3              -- set this to the track you want
        TrackIndex=TrackIndex<<16 -- move the index to high-word-destination for further use
        reaper.InsertMedia("C:\\test3.mp3", 0+512+TrackIndex) -- insert at track; it is important to add 512 in this to mode!
    


    Returnvalues:
    integer retval
    0, inserting was unsuccessful; 1, inserting was successful
    Note: will always return 1, when mode=0 or mode=1, even if the file does not exist!

    Parameters:
    string file
    the file to insert
    integer mode
    the mode, with which to insert the file(see description for more details)


    ^ Reaper version 5.62InsertMediaSection

    C: int InsertMediaSection(const char* file, int mode, double startpct, double endpct, double pitchshift)
    EEL2: int InsertMediaSection("file", int mode, startpct, endpct, pitchshift)
    Lua: integer retval = reaper.InsertMediaSection(string file, integer mode, number startpct, number endpct, number pitchshift)
    Python: Int retval = RPR_InsertMediaSection(String file, Int mode, Float startpct, Float endpct, Float pitchshift)

    see InsertMedia for more details

    Returnvalues:
    integer retval

    Parameters:
    string file
    integer mode
    number startpct
    number endpct
    number pitchshift

    see also:
  • InsertMedia - inserts mediafiles into a project


  • ^ Reaper version 5.62MarkTrackItemsDirty

    C: void MarkTrackItemsDirty(MediaTrack* track, MediaItem* item)
    EEL2: MarkTrackItemsDirty(MediaTrack track, MediaItem item)
    Lua: reaper.MarkTrackItemsDirty(MediaTrack track, MediaItem item)
    Python: RPR_MarkTrackItemsDirty(MediaTrack track, MediaItem item)

    If track is supplied, item is ignored

    Parameters:
    MediaTrack track
    the MediaTrack that you want to mark as dirty
    MediaItem item
    if no MediaTrack is given, use this MediaItem to mark as dirty


    ^ Reaper version 5.62MediaItemDescendsFromTrack

    C: int MediaItemDescendsFromTrack(MediaItem* item, MediaTrack* track)
    EEL2: int MediaItemDescendsFromTrack(MediaItem item, MediaTrack track)
    Lua: integer retval = reaper.MediaItemDescendsFromTrack(MediaItem item, MediaTrack track)
    Python: Int retval = RPR_MediaItemDescendsFromTrack(MediaItem item, MediaTrack track)

    Returns 1 if the track holds the item, 2 if the track is a folder containing the track that holds the item, etc.

    Returnvalues:
    integer retval

    Parameters:
    MediaItem item
    MediaTrack track


    ^ Reaper version 5.62MoveMediaItemToTrack

    C: bool MoveMediaItemToTrack(MediaItem* item, MediaTrack* desttr)
    EEL2: bool MoveMediaItemToTrack(MediaItem item, MediaTrack desttr)
    Lua: boolean retval = reaper.MoveMediaItemToTrack(MediaItem item, MediaTrack desttr)
    Python: Boolean retval = RPR_MoveMediaItemToTrack(MediaItem item, MediaTrack desttr)

    Moves a MediaItem-object to a specific MediaTrack.

    Call UpdateArrange to update the arrangeview after that.


    Returnvalues:
    boolean retval
    true, if move succeeded; false, if not

    Parameters:
    MediaItem item
    the MediaItem, that shall be moved
    MediaTrack desttr
    the MediaTrack, to which the MediaItem shall be moved to


    ^ Reaper version 5.62SelectAllMediaItems

    C: void SelectAllMediaItems(ReaProject* proj, bool selected)
    EEL2: SelectAllMediaItems(ReaProject proj, bool selected)
    Lua: reaper.SelectAllMediaItems(ReaProject proj, boolean selected)
    Python: RPR_SelectAllMediaItems(ReaProject proj, Boolean selected)

    Selects or deselects all MediaItems in a project.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    boolean selected
    true, select; false, deselect


    ^ Reaper version 5.62SplitMediaItem

    C: MediaItem* SplitMediaItem(MediaItem* item, double position)
    EEL2: MediaItem SplitMediaItem(MediaItem item, position)
    Lua: MediaItem item = reaper.SplitMediaItem(MediaItem item, number position)
    Python: MediaItem item = RPR_SplitMediaItem(MediaItem item, Float position)

    The original item becomes the left-hand split, the function returns the right-hand split (or NULL if the split failed)

    Returnvalues:
    MediaItem item
    the new MediaItem on the right side of the split

    Parameters:
    MediaItem item
    the MediaItem so be split
    number position
    the split-position in seconds


    ^ Reaper version 5.62UpdateItemInProject

    C: void UpdateItemInProject(MediaItem* item)
    EEL2: UpdateItemInProject(MediaItem item)
    Lua: reaper.UpdateItemInProject(MediaItem item)
    Python: RPR_UpdateItemInProject(MediaItem item)



    Parameters:
    MediaItem item


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_AnalyzeMediaItemPeakAndRMS

    C: bool NF_AnalyzeMediaItemPeakAndRMS(MediaItem* item, double windowSize, void* reaper.array_peaks, void* reaper.array_peakpositions, void* reaper.array_RMSs, void* reaper.array_RMSpositions)
    EEL2: bool extension_api("NF_AnalyzeMediaItemPeakAndRMS", MediaItem item, windowSize, void* reaper.array_peaks, void* reaper.array_peakpositions, void* reaper.array_RMSs, void* reaper.array_RMSpositions)
    Lua: boolean retval = reaper.NF_AnalyzeMediaItemPeakAndRMS(MediaItem item, number windowSize, identifier reaper.array_peaks, identifier reaper.array_peakpositions, identifier reaper.array_RMSs, identifier reaper.array_RMSpositions)
    Python: Boolean retval = NF_AnalyzeMediaItemPeakAndRMS(MediaItem item, Float windowSize, void reaper.array_peaks, void reaper.array_peakpositions, void reaper.array_RMSs, void reaper.array_RMSpositions)

    This function combines all other NF_Peak/RMS functions in a single one and additionally returns peak RMS positions.

    Lua example code here.

    Note: It's recommended to use this function with ReaScript/Lua as it provides reaper.array objects. If using this function with other scripting languages, you must provide arrays in the reaper.array format.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem item
    number windowSize
    identifier reaper.array_peaks
    identifier reaper.array_peakpositions
    identifier reaper.array_RMSs
    identifier reaper.array_RMSpositions


    ^ Reaper version 5.62 SWS version 2.9.7NF_GetMediaItemMaxPeak

    C: double NF_GetMediaItemMaxPeak(MediaItem* item)
    EEL2: double extension_api("NF_GetMediaItemMaxPeak", MediaItem item)
    Lua: number retval = reaper.NF_GetMediaItemMaxPeak(MediaItem item)
    Python: Float retval = NF_GetMediaItemMaxPeak(MediaItem item)

    Returns the greatest max. peak value in dBFS of all active channels of an audio item active take, post item gain, post take volume envelope, post-fade, pre fader, pre item FX.
    Returns -150.0 if MIDI take or empty item.

    Returnvalues:
    number retval

    Parameters:
    MediaItem item


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_GetMediaItemMaxPeakAndMaxPeakPos

    C: double NF_GetMediaItemMaxPeakAndMaxPeakPos(MediaItem* item, double* maxPeakPosOut)
    EEL2: double extension_api("NF_GetMediaItemMaxPeakAndMaxPeakPos", MediaItem item, &maxPeakPos)
    Lua: number retval, number maxPeakPos = reaper.NF_GetMediaItemMaxPeakAndMaxPeakPos(MediaItem item)
    Python: (Float retval, MediaItem item, Float maxPeakPosOut) = NF_GetMediaItemMaxPeakAndMaxPeakPos(item, maxPeakPosOut)

    See NF_GetMediaItemMaxPeak, additionally returns maxPeakPos (relative to item position).


    Returnvalues:
    number retval
    number maxPeakPos

    Parameters:
    MediaItem item


    ^ Reaper version 5.62 SWS version 2.9.7NF_GetMediaItemPeakRMS_NonWindowed

    C: double NF_GetMediaItemPeakRMS_NonWindowed(MediaItem* item)
    EEL2: double extension_api("NF_GetMediaItemPeakRMS_NonWindowed", MediaItem item)
    Lua: number retval = reaper.NF_GetMediaItemPeakRMS_NonWindowed(MediaItem item)
    Python: Float retval = NF_GetMediaItemPeakRMS_NonWindowed(MediaItem item)

    Returns the greatest overall (non-windowed) dB RMS peak level of all active channels of an audio item active take, post item gain, post take volume envelope, post-fade, pre fader, pre item FX.
    Returns -150.0 if MIDI take or empty item.

    Returnvalues:
    number retval

    Parameters:
    MediaItem item


    ^ Reaper version 5.62 SWS version 2.9.7NF_GetMediaItemPeakRMS_Windowed

    C: double NF_GetMediaItemPeakRMS_Windowed(MediaItem* item)
    EEL2: double extension_api("NF_GetMediaItemPeakRMS_Windowed", MediaItem item)
    Lua: number retval = reaper.NF_GetMediaItemPeakRMS_Windowed(MediaItem item)
    Python: Float retval = NF_GetMediaItemPeakRMS_Windowed(MediaItem item)

    Returns the average dB RMS peak level of all active channels of an audio item active take, post item gain, post take volume envelope, post-fade, pre fader, pre item FX.
    Obeys 'Window size for peak RMS' setting in 'SWS: Set RMS analysis/normalize options' for calculation. Returns -150.0 if MIDI take or empty item.

    Returnvalues:
    number retval

    Parameters:
    MediaItem item


    ^ Reaper version 5.62AddTakeToMediaItem

    C: MediaItem_Take* AddTakeToMediaItem(MediaItem* item)
    EEL2: MediaItem_Take AddTakeToMediaItem(MediaItem item)
    Lua: MediaItem_Take take = reaper.AddTakeToMediaItem(MediaItem item)
    Python: MediaItem_Take take = RPR_AddTakeToMediaItem(MediaItem item)

    creates a new take in an item

    Returnvalues:
    MediaItem_Take take
    the newly created MediaItem_Take-object

    Parameters:
    MediaItem item
    a MediaItem-object, in which you want to add the new take


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext_Take

    C: MediaItem_Take* BR_GetMouseCursorContext_Take()
    EEL2: MediaItem_Take extension_api("BR_GetMouseCursorContext_Take")
    Lua: MediaItem_Take take = reaper.BR_GetMouseCursorContext_Take()
    Python: MediaItem_Take take = BR_GetMouseCursorContext_Take()

    [BR] Returns take under mouse cursor that was captured with the last call to BR_GetMouseCursorContext.


    Returnvalues:
    MediaItem_Take take
    the found take under the mouse-cursor


    ^ Reaper version 5.62 SWS version 2.9.7BR_TakeAtMouseCursor

    C: MediaItem_Take* BR_TakeAtMouseCursor(double* positionOut)
    EEL2: MediaItem_Take extension_api("BR_TakeAtMouseCursor", &position)
    Lua: MediaItem_Take take, number position = reaper.BR_TakeAtMouseCursor()
    Python: (MediaItem_Take retval, Float positionOut) = BR_TakeAtMouseCursor(positionOut)

    [BR] Get take under mouse cursor. Position is mouse cursor position in arrange.

    Returnvalues:
    MediaItem_Take take
    the take under mouse-cursor
    number position
    the position under mouse-cursor


    ^ Reaper version 5.62CountTakeEnvelopes

    C: int CountTakeEnvelopes(MediaItem_Take* take)
    EEL2: int CountTakeEnvelopes(MediaItem_Take take)
    Lua: integer count_take_env = reaper.CountTakeEnvelopes(MediaItem_Take take)
    Python: Int retval = RPR_CountTakeEnvelopes(MediaItem_Take take)

    Counts take-envelopes.

    Returnvalues:
    integer count_take_env
    number of envelopes of this take of a mediaitem

    Parameters:
    MediaItem_Take take
    the mediaitem-object for a certain take

    see also:
  • GetTakeEnvelope - to get take-envelopes


  • ^ Reaper version 5.62CountTakes

    C: int CountTakes(MediaItem* item)
    EEL2: int CountTakes(MediaItem item)
    Lua: integer count_takes = reaper.CountTakes(MediaItem item)
    Python: Int retval = RPR_CountTakes(MediaItem item)

    count the number of takes in the item

    Returnvalues:
    integer count_takes
    the number of takes in a mediaitem

    Parameters:
    MediaItem item
    the mediaitem to count the takes of


    ^ Reaper version 5.62GetActiveTake

    C: MediaItem_Take* GetActiveTake(MediaItem* item)
    EEL2: MediaItem_Take GetActiveTake(MediaItem item)
    Lua: MediaItem_Take take = reaper.GetActiveTake(MediaItem item)
    Python: MediaItem_Take take = RPR_GetActiveTake(MediaItem item)

    get the active take in this item

    Returnvalues:
    MediaItem_Take take
    the active take of the MediaItem

    Parameters:
    MediaItem item
    the MediaItem, whose active take you want to have returned


    ^ Reaper version 5.62GetMediaItemNumTakes

    C: int GetMediaItemNumTakes(MediaItem* item)
    EEL2: int GetMediaItemNumTakes(MediaItem item)
    Lua: integer itemnumtakes = reaper.GetMediaItemNumTakes(MediaItem item)
    Python: Int retval = RPR_GetMediaItemNumTakes(MediaItem item)

    Get the number of takes in a MediaItem-object.

    Returnvalues:
    integer itemnumtakes
    the number of takes within the MediaItem-object

    Parameters:
    MediaItem item
    the MediaItem-object, whose number of takes you want to know.


    ^ Reaper version 5.62GetMediaItemTake

    C: MediaItem_Take* GetMediaItemTake(MediaItem* item, int tk)
    EEL2: MediaItem_Take GetMediaItemTake(MediaItem item, int tk)
    Lua: MediaItem_Take take = reaper.GetMediaItemTake(MediaItem item, integer tk)
    Python: MediaItem_Take take = RPR_GetMediaItemTake(MediaItem item, Int tk)

    Get a take from a MediaItem as a MediaItem_Take-object.

    Returnvalues:
    MediaItem_Take take
    the returned take as a MediaItem_Take-object

    Parameters:
    MediaItem item
    the MediaItem, whose take you want to request
    integer tk
    the id of the take, that you want to request


    ^ Reaper version 5.62GetMediaItemTake_Item

    C: MediaItem* GetMediaItemTake_Item(MediaItem_Take* take)
    EEL2: MediaItem GetMediaItemTake_Item(MediaItem_Take take)
    Lua: MediaItem item = reaper.GetMediaItemTake_Item(MediaItem_Take take)
    Python: MediaItem item = RPR_GetMediaItemTake_Item(MediaItem_Take take)

    Get parent item of media item take.

    Returnvalues:
    MediaItem item
    the MediaItem, in which the MediaItem_Take takes place.

    Parameters:
    MediaItem_Take take
    the MediaItem_Take-object, whose accompanying MediaItem you want to request.


    ^ Reaper version 5.62GetMediaItemTake_Peaks

    C: int GetMediaItemTake_Peaks(MediaItem_Take* take, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf)
    EEL2: int GetMediaItemTake_Peaks(MediaItem_Take take, peakrate, starttime, int numchannels, int numsamplesperchannel, int want_extra_type, buffer_ptr buf)
    Lua: integer peaks = reaper.GetMediaItemTake_Peaks(MediaItem_Take take, number peakrate, number starttime, integer numchannels, integer numsamplesperchannel, integer want_extra_type, reaper.array buf)
    Python: (Int retval, MediaItem_Take take, Float peakrate, Float starttime, Int numchannels, Int numsamplesperchannel, Int want_extra_type, Float buf) = RPR_GetMediaItemTake_Peaks(take, peakrate, starttime, numchannels, numsamplesperchannel, want_extra_type, buf)

    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.
    peakrate is number of pixels in seconds.

    Returnvalues:
    integer peaks

    Parameters:
    MediaItem_Take take
    number peakrate
    number starttime
    integer numchannels
    integer numsamplesperchannel
    integer want_extra_type
    reaper.array buf


    ^ Reaper version 5.62GetMediaItemTake_Track

    C: MediaTrack* GetMediaItemTake_Track(MediaItem_Take* take)
    EEL2: MediaTrack GetMediaItemTake_Track(MediaItem_Take take)
    Lua: MediaTrack track = reaper.GetMediaItemTake_Track(MediaItem_Take take)
    Python: MediaTrack track = RPR_GetMediaItemTake_Track(MediaItem_Take take)

    Get parent track of media item take

    Returnvalues:
    MediaTrack track

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62GetTake

    C: MediaItem_Take* GetTake(MediaItem* item, int takeidx)
    EEL2: MediaItem_Take GetTake(MediaItem item, int takeidx)
    Lua: MediaItem_Take take = reaper.GetTake(MediaItem item, integer takeidx)
    Python: MediaItem_Take take = RPR_GetTake(MediaItem item, Int takeidx)

    get a take from an item by take count (zero-based)

    Returnvalues:
    MediaItem_Take take
    the requested MediaItem_Take

    Parameters:
    MediaItem item
    the MediaItem, whose take you want to request
    integer takeidx
    the index of the takes in a MediaItem


    ^ Reaper version 6.20 SWS version 2.13.1.0NF_DeleteTakeFromItem

    C: bool retval = NF_DeleteTakeFromItem(MediaItem* item, int takeIdx)
    EEL2: bool retval = NF_DeleteTakeFromItem(MediaItem item, int takeIdx)
    Lua: boolean retval = reaper.NF_DeleteTakeFromItem(MediaItem item, integer takeIdx)
    Python: Boolean retval = NF_DeleteTakeFromItem(MediaItem item, Int takeIdx)

    Deletes a take from an item. takeIdx is zero-based. Returns true on success.

    Returnvalues:
    boolean retval
    true, deleting was successful; false, deleting was unsuccessful

    Parameters:
    MediaItem item
    the item, whose take you want to remove
    integer takeIdx
    the take of the item, that you want to remove


    ^ Reaper version 5.62 SWS version 2.13.1.0NF_AnalyzeTakeLoudness

    C: bool NF_AnalyzeTakeLoudness(MediaItem_Take* take, bool analyzeTruePeak, double* lufsIntegratedOut, double* rangeOut, double* truePeakOut, double* truePeakPosOut, double* shortTermMaxOut, double* momentaryMaxOut)
    EEL2: bool extension_api("NF_AnalyzeTakeLoudness", MediaItem_Take take, bool analyzeTruePeak, &lufsIntegrated, &range, & truePeak, &truePeakPos, &shortTermMax, &momentaryMax)
    Lua: boolean retval, number lufsIntegrated, number range, number truePeak, number truePeakPos, number shortTermMax, number momentaryMax = reaper.NF_AnalyzeTakeLoudness(MediaItem_Take take, boolean analyzeTruePeak)
    Python: (Boolean retval, MediaItem_Take take, Boolean analyzeTruePeak, Float lufsIntegratedOut, Float rangeOut, Float truePeakOut, Float truePeakPosOut, Float shortTermMaxOut, Float momentaryMaxOut) = NF_AnalyzeTakeLoudness(take, analyzeTruePeak, lufsIntegratedOut, rangeOut, truePeakOut, truePeakPosOut, shortTermMaxOut, momentaryMaxOut)

    Full loudness analysis. retval: returns true on successful analysis, false on MIDI take or when analysis failed for some reason. analyzeTruePeak=true: Also do true peak analysis. Returns true peak value in dBTP and true peak position (relative to item position). Considerably slower than without true peak analysis (since it uses oversampling). Note: Short term uses a time window of 3 sec. for calculation. So for items shorter than this shortTermMaxOut can't be calculated correctly. Momentary uses a time window of 0.4 sec.

    Returnvalues:
    boolean retval
    number lufsIntegrated
    number range
    number truePeak
    number truePeakPos
    number shortTermMax
    number momentaryMax

    Parameters:
    MediaItem_Take take
    boolean analyzeTruePeak


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_AnalyzeTakeLoudness2

    C: bool NF_AnalyzeTakeLoudness2(MediaItem_Take* take, bool analyzeTruePeak, double* lufsIntegratedOut, double* rangeOut, double* truePeakOut, double* truePeakPosOut, double* shortTermMaxOut, double* momentaryMaxOut, double* shortTermMaxPosOut, double* momentaryMaxPosOut)
    EEL2: bool extension_api("NF_AnalyzeTakeLoudness2", MediaItem_Take take, bool analyzeTruePeak, &lufsIntegrated, &range, & truePeak, &truePeakPos, &shortTermMax, &momentaryMax, &shortTermMaxPos, &momentaryMaxPos)
    Lua: boolean retval, number lufsIntegrated, number range, number truePeak, number truePeakPos, number shortTermMax, number momentaryMax, number shortTermMaxPos, number momentaryMaxPos = reaper.NF_AnalyzeTakeLoudness2(MediaItem_Take take, boolean analyzeTruePeak)
    Python: (Boolean retval, MediaItem_Take take, Boolean analyzeTruePeak, Float lufsIntegratedOut, Float rangeOut, Float truePeakOut, Float truePeakPosOut, Float shortTermMaxOut, Float momentaryMaxOut, Float shortTermMaxPosOut, Float momentaryMaxPosOut) = NF_AnalyzeTakeLoudness2(take, analyzeTruePeak, lufsIntegratedOut, rangeOut, truePeakOut, truePeakPosOut, shortTermMaxOut, momentaryMaxOut, shortTermMaxPosOut, momentaryMaxPosOut)

    Same as NF_AnalyzeTakeLoudness but additionally returns shortTermMaxPos and momentaryMaxPos (in absolute project time). Note: shortTermMaxPos and momentaryMaxPos actually indicate the beginning of time intervalls, (3 sec. and 0.4 sec. resp.).


    Returnvalues:
    boolean retval
    number lufsIntegrated
    number range
    number truePeak
    number truePeakPos
    number shortTermMax
    number momentaryMax
    number shortTermMaxPos
    number momentaryMaxPos

    Parameters:
    MediaItem_Take take
    boolean analyzeTruePeak


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_AnalyzeTakeLoudness_IntegratedOnly

    C: bool NF_AnalyzeTakeLoudness_IntegratedOnly(MediaItem_Take* take, double* lufsIntegratedOut)
    EEL2: bool extension_api("NF_AnalyzeTakeLoudness_IntegratedOnly", MediaItem_Take take, &lufsIntegrated)
    Lua: boolean retval, number lufsIntegrated = reaper.NF_AnalyzeTakeLoudness_IntegratedOnly(MediaItem_Take take)
    Python: (Boolean retval, MediaItem_Take take, Float lufsIntegratedOut) = NF_AnalyzeTakeLoudness_IntegratedOnly(take, lufsIntegratedOut)

    Does LUFS integrated analysis only. Faster than full loudness analysis (NF_AnalyzeTakeLoudness) . Use this if only LUFS integrated is required. Take vol. env. is taken into account.

    See: Signal flow.


    Returnvalues:
    boolean retval
    number lufsIntegrated

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7NF_GetMediaItemAverageRMS

    C: double NF_GetMediaItemAverageRMS(MediaItem* item)
    EEL2: double extension_api("NF_GetMediaItemAverageRMS", MediaItem item)
    Lua: number retval = reaper.NF_GetMediaItemAverageRMS(MediaItem item)
    Python: Float retval = NF_GetMediaItemAverageRMS(MediaItem item)

    Returns the average overall (non-windowed) dB RMS level of active channels of an audio item active take, post item gain, post take volume envelope, post-fade, pre fader, pre item FX.
    Returns -150.0 if MIDI take or empty item.

    Returnvalues:
    number retval

    Parameters:
    MediaItem item


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaItemTakeGUID

    C: void BR_GetMediaItemTakeGUID(MediaItem_Take* take, char* guidStringOut, int guidStringOut_sz)
    EEL2: extension_api("BR_GetMediaItemTakeGUID", MediaItem_Take take, #guidString)
    Lua: string guidString = reaper.BR_GetMediaItemTakeGUID(MediaItem_Take take)
    Python: (MediaItem_Take take, String guidStringOut, Int guidStringOut_sz) = BR_GetMediaItemTakeGUID(take, guidStringOut, guidStringOut_sz)

    [BR] Get media item take GUID as a string (guidStringOut_sz should be at least 64). To get take from GUID string, see SNM_GetMediaItemTakeByGUID.


    Returnvalues:
    string guidString

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaSourceProperties

    C: bool BR_GetMediaSourceProperties(MediaItem_Take* take, bool* sectionOut, double* startOut, double* lengthOut, double* fadeOut, bool* reverseOut)
    EEL2: bool extension_api("BR_GetMediaSourceProperties", MediaItem_Take take, bool §ion, &start, &length, &fade, bool &reverse)
    Lua: boolean retval, boolean section, number start, number length, number fade, boolean reverse = reaper.BR_GetMediaSourceProperties(MediaItem_Take take)
    Python: (Boolean retval, MediaItem_Take take, Boolean sectionOut, Float startOut, Float lengthOut, Float fadeOut, Boolean reverseOut) = BR_GetMediaSourceProperties(take, sectionOut, startOut, lengthOut, fadeOut, reverseOut)

    [BR] Get take media source properties as they appear in Item properties. Returns false if take can't have them (MIDI items etc.). To set source properties, see BR_SetMediaSourceProperties.


    Returnvalues:
    boolean retval
    boolean section
    number start
    number length
    number fade
    boolean reverse

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.62 SWS version 2.9.7BR_SetMediaSourceProperties

    C: bool BR_SetMediaSourceProperties(MediaItem_Take* take, bool section, double start, double length, double fade, bool reverse)
    EEL2: bool extension_api("BR_SetMediaSourceProperties", MediaItem_Take take, bool section, start, length, fade, bool reverse)
    Lua: boolean retval = reaper.BR_SetMediaSourceProperties(MediaItem_Take take, boolean section, number start, number length, number fade, boolean reverse)
    Python: Boolean retval = BR_SetMediaSourceProperties(MediaItem_Take take, Boolean section, Float start, Float length, Float fade, Boolean reverse)

    [BR] Set take media source properties. Returns false if take can't have them (MIDI items etc.). Section parameters have to be valid only when passing section=true. To get source properties, see BR_GetMediaSourceProperties.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    boolean section
    number start
    number length
    number fade
    boolean reverse


    ^ Reaper version 5.62 SWS version 2.9.7BR_SetTakeSourceFromFile

    C: bool BR_SetTakeSourceFromFile(MediaItem_Take* take, const char* filenameIn, bool inProjectData)
    EEL2: bool extension_api("BR_SetTakeSourceFromFile", MediaItem_Take take, "filenameIn", bool inProjectData)
    Lua: boolean retval = reaper.BR_SetTakeSourceFromFile(MediaItem_Take take, string filenameIn, boolean inProjectData)
    Python: Boolean retval = BR_SetTakeSourceFromFile(MediaItem_Take take, String filenameIn, Boolean inProjectData)

    [BR] Set new take source from file. To import MIDI file as in-project source data pass inProjectData=true. Returns false if failed. Any take source properties from the previous source will be lost - to preserve them, see BR_SetTakeSourceFromFile2. Note: To set source from existing take, see SNM_GetSetSourceState2.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    string filenameIn
    boolean inProjectData


    ^ Reaper version 5.62 SWS version 2.9.7BR_SetTakeSourceFromFile2

    C: bool BR_SetTakeSourceFromFile2(MediaItem_Take* take, const char* filenameIn, bool inProjectData, bool keepSourceProperties)
    EEL2: bool extension_api("BR_SetTakeSourceFromFile2", MediaItem_Take take, "filenameIn", bool inProjectData, bool keepSourceProperties)
    Lua: boolean retval = reaper.BR_SetTakeSourceFromFile2(MediaItem_Take take, string filenameIn, boolean inProjectData, boolean keepSourceProperties)
    Python: Boolean retval = BR_SetTakeSourceFromFile2(MediaItem_Take take, String filenameIn, Boolean inProjectData, Boolean keepSourceProperties)

    [BR] Differs from BR_SetTakeSourceFromFile only that it can also preserve existing take media source properties.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    string filenameIn
    boolean inProjectData
    boolean keepSourceProperties


    ^ Reaper version 5.62GetMediaItemTakeByGUID

    C: MediaItem_Take* GetMediaItemTakeByGUID(ReaProject* project, const GUID* guid)
    EEL2: MediaItem_Take GetMediaItemTakeByGUID(ReaProject project, "guidGUID")
    Lua: MediaItem_Take take = reaper.GetMediaItemTakeByGUID(ReaProject project, string guidGUID)
    Python: MediaItem_Take take = RPR_GetMediaItemTakeByGUID(ReaProject project, const GUID guid)



    Returnvalues:
    MediaItem_Take take

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    string guidGUID


    ^ Reaper version 6.34GetMediaItemTakeInfo_Value

    C: double GetMediaItemTakeInfo_Value(MediaItem_Take* take, const char* parmname)
    EEL2: double GetMediaItemTakeInfo_Value(MediaItem_Take take, "parmname")
    Lua: number retval = reaper.GetMediaItemTakeInfo_Value(MediaItem_Take take, string parmname)
    Python: Float retval = RPR_GetMediaItemTakeInfo_Value(MediaItem_Take take, String parmname)

    Get media item take numerical-value attributes.
    D_STARTOFFS : double * : start offset in source media, in seconds
    D_VOL : double * : take volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc, negative if take polarity is flipped
    D_PAN : double * : take pan, -1..1
    D_PANLAW : double * : take pan law, -1=default, 0.5=-6dB, 1.0=+0dB, etc
    D_PLAYRATE : double * : take playback rate, 0.5=half speed, 1=normal, 2=double speed, etc
    D_PITCH : double * : take pitch adjustment in semitones, -12=one octave down, 0=normal, +12=one octave up, etc
    B_PPITCH : bool * : preserve pitch when changing playback rate
    I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
    I_LASTH : int * : height in pixels (read-only)
    I_CHANMODE : int * : channel mode, 0=normal, 1=reverse stereo, 2=downmix, 3=left, 4=right
    I_PITCHMODE : int * : pitch shifter mode, -1=projext default, otherwise high 2 bytes=shifter, low 2 bytes=parameter
    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.
    IP_TAKENUMBER : int : take number (read-only, returns the take number directly)
    P_TRACK : pointer to MediaTrack (read-only)
    P_ITEM : pointer to MediaItem (read-only)
    P_SOURCE : PCM_source *. Note that if setting this, you should first retrieve the old source, set the new, THEN delete the old.

    Returnvalues:
    number retval

    Parameters:
    MediaItem_Take take
    string parmname


    ^ Reaper version 5.62GetMediaItemTake_Source

    C: PCM_source* GetMediaItemTake_Source(MediaItem_Take* take)
    EEL2: PCM_source GetMediaItemTake_Source(MediaItem_Take take)
    Lua: PCM_source source = reaper.GetMediaItemTake_Source(MediaItem_Take take)
    Python: PCM_source source = RPR_GetMediaItemTake_Source(MediaItem_Take take)

    Get media source of media item take

    Returnvalues:
    PCM_source source

    Parameters:
    MediaItem_Take take


    ^ Reaper version 5.975GetSetMediaItemTakeInfo_String

    C: bool GetSetMediaItemTakeInfo_String(MediaItem_Take* tk, const char* parmname, char* stringNeedBig, bool setnewvalue)
    EEL2: bool GetSetMediaItemTakeInfo_String(MediaItem_Take tk, "parmname", #stringNeedBig, bool setnewvalue)
    Lua: boolean retval, string stringNeedBig = reaper.GetSetMediaItemTakeInfo_String(MediaItem_Take tk, string parmname, string stringNeedBig, boolean setnewvalue)
    Python: (Boolean retval, MediaItem_Take tk, String parmname, String stringNeedBig, Boolean setnewvalue) = RPR_GetSetMediaItemTakeInfo_String(tk, parmname, stringNeedBig, setnewvalue)

    Gets/sets a take attribute string:
        P_NAME : char * : take name
        P_EXT:xyz : char * : extension-specific persistent data
        GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.

    Returnvalues:
    boolean retval
    string stringNeedBig

    Parameters:
    MediaItem_Take tk
    string parmname
    string stringNeedBig
    boolean setnewvalue


    ^ Reaper version 5.62GetTakeName

    C: const char* GetTakeName(MediaItem_Take* take)
    EEL2: bool GetTakeName(#retval, MediaItem_Take take)
    Lua: string takename = reaper.GetTakeName(MediaItem_Take take)
    Python: String retval = RPR_GetTakeName(MediaItem_Take take)

    Retruns the filename of the mediafile in a take. returns NULL if the take is not valid

    Returnvalues:
    string takename
    the filename of the mediafile in the take

    Parameters:
    MediaItem_Take take
    the MediaItem_Take, whose mediafilename you want to have


    ^ Reaper version 5.62 SWS version 2.9.7SNM_GetMediaItemTakeByGUID

    C: MediaItem_Take* SNM_GetMediaItemTakeByGUID(ReaProject* project, const char* guid)
    EEL2: MediaItem_Take extension_api("SNM_GetMediaItemTakeByGUID", ReaProject project, "guid")
    Lua: MediaItem_Take take = reaper.SNM_GetMediaItemTakeByGUID(ReaProject project, string guid)
    Python: MediaItem_Take take = SNM_GetMediaItemTakeByGUID(ReaProject project, String guid)

    [S&M] Gets a take by GUID as string. The GUID must be enclosed in braces {}. To get take GUID as string, see BR_GetMediaItemTakeGUID


    Returnvalues:
    MediaItem_Take take

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    string guid


    ^ Reaper version 5.62 SWS version 2.9.7SNM_GetSetSourceState2

    C: bool SNM_GetSetSourceState2(MediaItem_Take* take, WDL_FastString* state, bool setnewvalue)
    EEL2: bool extension_api("SNM_GetSetSourceState2", MediaItem_Take take, WDL_FastString state, bool setnewvalue)
    Lua: boolean retval = reaper.SNM_GetSetSourceState2(MediaItem_Take take, WDL_FastString state, boolean setnewvalue)
    Python: Boolean retval = SNM_GetSetSourceState2(MediaItem_Take take, WDL_FastString state, Boolean setnewvalue)

    [S&M] Gets or sets a take source state. Returns false if failed. Note: this function cannot deal with empty takes, see SNM_GetSetSourceState.


    Returnvalues:
    boolean retval

    Parameters:
    MediaItem_Take take
    WDL_FastString state
    boolean setnewvalue


    ^ Reaper version 5.62 SWS version 2.12.1SNM_GetSourceType

    C: bool SNM_GetSourceType(MediaItem_Take* take, WDL_FastString* type)
    EEL2: bool extension_api("SNM_GetSourceType", MediaItem_Take take, WDL_FastString type)
    Lua: boolean retval = reaper.SNM_GetSourceType(MediaItem_Take takeWDL_FastString type)
    Python: Boolean retval = SNM_GetSourceType(MediaItem_Take take, WDL_FastString type)

    [S&M] Deprecated, see GetMediaSourceType. Gets the source type of a take. Returns false if failed (e.g. take with empty source, etc..)


    Returnvalues:
    boolean retval

    Parameters:
    takeWDL_FastString type


    ^ Reaper version 5.62SetActiveTake

    C: void SetActiveTake(MediaItem_Take* take)
    EEL2: SetActiveTake(MediaItem_Take take)
    Lua: reaper.SetActiveTake(MediaItem_Take take)
    Python: RPR_SetActiveTake(MediaItem_Take take)

    set this take active in this media item

    Parameters:
    MediaItem_Take take
    the MediaItem_Take, you want to set as active-take in the MediaItem it is associated with


    ^ Reaper version 6.34SetMediaItemTakeInfo_Value

    C: bool SetMediaItemTakeInfo_Value(MediaItem_Take* take, const char* parmname, double newvalue)
    EEL2: bool SetMediaItemTakeInfo_Value(MediaItem_Take take, "parmname", newvalue)
    Lua: boolean retval = reaper.SetMediaItemTakeInfo_Value(MediaItem_Take take, string parmname, number newvalue)
    Python: Boolean retval = RPR_SetMediaItemTakeInfo_Value(MediaItem_Take take, String parmname, Float newvalue)

    Set media item take numerical-value attributes.
    D_STARTOFFS : double * : start offset in source media, in seconds
    D_VOL : double * : take volume, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc, negative if take polarity is flipped
    D_PAN : double * : take pan, -1..1
    D_PANLAW : double * : take pan law, -1=default, 0.5=-6dB, 1.0=+0dB, etc
    D_PLAYRATE : double * : take playback rate, 0.5=half speed, 1=normal, 2=double speed, etc
    D_PITCH : double * : take pitch adjustment in semitones, -12=one octave down, 0=normal, +12=one octave up, etc
    B_PPITCH : bool * : preserve pitch when changing playback rate
    I_LASTY : int * : Y-position (relative to top of track) in pixels (read-only)
    I_LASTH : int * : height in pixels (read-only)
    I_CHANMODE : int * : channel mode, 0=normal, 1=reverse stereo, 2=downmix, 3=left, 4=right
    I_PITCHMODE : int * : pitch shifter mode, -1=projext default, otherwise high 2 bytes=shifter, low 2 bytes=parameter
    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.
    IP_TAKENUMBER : int : take number (read-only, returns the take number directly)

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    MediaItem_Take take
    the take, whose attribute you want to set
    string parmname
    the attribute, whose value you want to set
    number newvalue
    the new value of the attribute


    ^ Reaper version 5.961SetMediaItemTake_Source

    C: bool SetMediaItemTake_Source(MediaItem_Take* take, PCM_source* source)
    EEL2: bool SetMediaItemTake_Source(MediaItem_Take take, PCM_source source)
    Lua: boolean retval = reaper.SetMediaItemTake_Source(MediaItem_Take take, PCM_source source)
    Python: Boolean retval = RPR_SetMediaItemTake_Source(MediaItem_Take take, PCM_source source)

    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.

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    MediaItem_Take take
    the take, whose source you want to set to a new one
    PCM_source source
    the new source to be set to take


    ^ Reaper version 5.979 Osara version 2021osara_outputMessage

    C: void osara_outputMessage(const char* message)
    EEL2: extension_api("osara_outputMessage", "message")
    Lua: reaper.osara_outputMessage(string message)
    Python: osara_outputMessage(String message)

    Output a message to screen readers.
    This should only be used in consultation with screen reader users. Note that this may not work on Windows when certain GUI controls have focus such as list boxes and trees.

    Keep it short and to the point.

    Parameters:
    string message
    the message, that shall be output to the screen-reader.


    ^ Reaper version 5.70RDNA_GetMediaSourceMetadata

    C: bool RDNA_GetMediaSourceMetadata(PCM_source* src, const char* metaType, const char* key, char* bufOut, int bufSize)/functioncall> bool RDNA_GetMediaSourceMetadata(PCM_source src, "metaType", "key", #buf, int bufSize)
    Lua: boolean retval, string buf = reaper.RDNA_GetMediaSourceMetadata(PCM_source src, string metaType, string key, string buf, integer bufSize)
    Python: (Boolean retval, PCM_source src, String metaType, String key, String bufOut, Int bufSize) = RDNA_GetMediaSourceMetadata(src, metaType, key, bufOut, bufSize)

    Get the value of metadata from media source(.wav only). metaType=BWF,IXML,INFO,CART, key=MetadataID(eg.INAM,IART,... of INFO)

    Returnvalues:
    boolean retval
    string buf

    Parameters:
    PCM_Source src
    string metaType
    string buf
    integer bufSize


    ^ Reaper version 5.62EnumPitchShiftModes

    C: bool EnumPitchShiftModes(int mode, const char** strOut)
    EEL2: bool EnumPitchShiftModes(int mode, #str)
    Lua: boolean retval, string str = reaper.EnumPitchShiftModes(integer mode)
    Python: Boolean retval = RPR_EnumPitchShiftModes(Int mode, String strOut)

    Start querying modes at 0, returns FALSE when no more modes possible, sets strOut to NULL if a mode is currently unsupported

    Returnvalues:
    boolean retval
    string str

    Parameters:
    integer mode


    ^ Reaper version 5.62EnumPitchShiftSubModes

    C: const char* EnumPitchShiftSubModes(int mode, int submode)
    EEL2: bool EnumPitchShiftSubModes(#retval, int mode, int submode)
    Lua: string pitch_shift_submode = reaper.EnumPitchShiftSubModes(integer mode, integer submode)
    Python: String retval = RPR_EnumPitchShiftSubModes(Int mode, Int submode)

    Returns submode name, or NULL

    Returnvalues:
    string pitch_shift_submode

    Parameters:
    integer mode
    integer submode


    ^ Reaper version 5.982EnumProjects

    C: ReaProject* EnumProjects(int idx, char* projfnOutOptional, int projfnOutOptional_sz)
    EEL2: ReaProject EnumProjects(int idx, optional #projfn)
    Lua: ReaProject retval, optional string projfn = reaper.EnumProjects(integer idx)
    Python: (ReaProject retval, Int idx, String projfnOutOptional, Int projfnOutOptional_sz) = RPR_EnumProjects(idx, projfnOutOptional, projfnOutOptional_sz)

    Get ReaProject-object and filename of a project.
    idx=-1 for current project,projfn can be NULL if not interested in filename. use idx 0x40000000 for currently rendering project, if any.

    Returnvalues:
    ReaProject retval
    a ReaProject-object of the project you requested
    optional string projfn
    the path+filename.rpp of the project. returns nil if no filename exists

    Parameters:
    integer idx
    -1 for current project; 0 and higher for the projects; 0x40000000 for currently rendering project, if any.

    see also:
  • GetProjectPath - get recording path of a current project


  • ^ Reaper version 5.62GetCurrentProjectInLoadSave

    C: ReaProject* GetCurrentProjectInLoadSave()
    EEL2: ReaProject GetCurrentProjectInLoadSave()
    Lua: ReaProject proj = reaper.GetCurrentProjectInLoadSave()
    Python: ReaProject proj = RPR_GetCurrentProjectInLoadSave()

    returns current project if in load/save (usually only used from project_config_extension_t)

    Returnvalues:
    ReaProject proj


    ^ Reaper version 5.62GetFreeDiskSpaceForRecordPath

    C: int GetFreeDiskSpaceForRecordPath(ReaProject* proj, int pathidx)
    EEL2: int GetFreeDiskSpaceForRecordPath(ReaProject proj, int pathidx)
    Lua: integer diskspace_in_mb = reaper.GetFreeDiskSpaceForRecordPath(ReaProject proj, integer pathidx)
    Python: Int retval = RPR_GetFreeDiskSpaceForRecordPath(ReaProject proj, Int pathidx)

    returns free disk space in megabytes, pathIdx 0 for normal, 1 for alternate.

    Returnvalues:
    integer diskspace_in_mb
    the freedisk-size in megabytes

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer pathidx
    recording path; 0, primary recording path; 1, secondary recording path


    ^ Reaper version 5.62Main_SaveProject

    C: void Main_SaveProject(ReaProject* proj, bool forceSaveAsInOptional)
    EEL2: Main_SaveProject(ReaProject proj, bool forceSaveAsIn)
    Lua: reaper.Main_SaveProject(ReaProject proj, boolean forceSaveAsIn)
    Python: RPR_Main_SaveProject(ReaProject proj, Boolean forceSaveAsInOptional)

    Save the project.
    Optional with a save-dialog.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    boolean forceSaveAsIn
    false, save the project; true, open save-file-dialog first


    ^ Reaper version 6.53Main_SaveProjectEx

    C: void Main_SaveProjectEx(ReaProject* proj, const char* filename, int options)
    EEL2: Main_SaveProjectEx(ReaProject proj, "filename", int options)
    Lua: reaper.Main_SaveProjectEx(ReaProject proj, string filename, integer options)
    Python: RPR_Main_SaveProjectEx(ReaProject proj, String filename, Int options)

    Save the project and allows passing a filename.

    If project can not be saved, it will show an errordialog to the user.

    If the projectfilename already exists, it might create an alternative project-file with the extension rpp-TEMP.

    Will obey backup-file-settings, so a file using the extension rpp-bak might be created.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string filename
    the filename of the project
    integer options
    options to save with:
    &1, save selected tracks as track template
    &2, include media with track templates
    &4, include envelopes with track template

    see also:
  • Main_openProject - for opening a project
  • Main_SaveProject - for saving a project already saved


  • ^ Reaper version 5.983Main_openProject

    C: void Main_openProject(const char* name)
    EEL2: Main_openProject("name")
    Lua: reaper.Main_openProject(string name)
    Python: RPR_Main_openProject(String name)

    opens a project.

    will prompt the user to save unless name is prefixed with 'noprompt:'.
        example: "noprompt:projectfile.rpp"

    If name is prefixed with 'template:', project file will be loaded as a template.
        example: "template:projectfile.rpp"

    You can combine both: "template:noprompt:projectfile.rpp"

    If passed a .RTrackTemplate file, adds the template to the existing project.

    Parameters:
    string name
    the path and filename of the project/template you want to open


    ^ Reaper version 5.62SelectProjectInstance

    C: void SelectProjectInstance(ReaProject* proj)
    EEL2: SelectProjectInstance(ReaProject proj)
    Lua: reaper.SelectProjectInstance(ReaProject proj)
    Python: RPR_SelectProjectInstance(ReaProject proj)

    Switch to another opened project/projecttab.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62SnapToGrid

    C: double SnapToGrid(ReaProject* project, double time_pos)
    EEL2: double SnapToGrid(ReaProject project, time_pos)
    Lua: number retval = reaper.SnapToGrid(ReaProject project, number time_pos)
    Python: Float retval = RPR_SnapToGrid(ReaProject project, Float time_pos)



    Returnvalues:
    number retval

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    number time_pos


    ^ Reaper version 5.62EnumProjExtState

    C: bool EnumProjExtState(ReaProject* proj, const char* extname, int idx, char* keyOutOptional, int keyOutOptional_sz, char* valOutOptional, int valOutOptional_sz)
    EEL2: bool EnumProjExtState(ReaProject proj, "extname", int idx, optional #key, optional #val)
    Lua: boolean retval, optional string key, optional string val = reaper.EnumProjExtState(ReaProject proj, string extname, integer idx)
    Python: (Boolean retval, ReaProject proj, String extname, Int idx, String keyOutOptional, Int keyOutOptional_sz, String valOutOptional, Int valOutOptional_sz) = RPR_EnumProjExtState(proj, extname, idx, keyOutOptional, keyOutOptional_sz, valOutOptional, valOutOptional_sz)

    Enumerate the data stored with the project for a specific extname. Returns false when there is no more data.

    Returnvalues:
    boolean retval
    true, key and value to this section exist; false, no such key and value exists
    string key
    the idx'th key in the section
    string val
    the accompanying value to key

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string extname
    the section of the extended-states
    integer idx
    the id of the entry within "extname"-section to be returned; 0 for the first, 1 for the second, etc.

    see also:
  • GetProjExtState - gets an ext-state that stored data for your project
  • SetProjExtState - sets an ext-state to store data for your project


  • ^ Reaper version 5.62GetProjExtState

    C: int GetProjExtState(ReaProject* proj, const char* extname, const char* key, char* valOutNeedBig, int valOutNeedBig_sz)
    EEL2: int GetProjExtState(ReaProject proj, "extname", "key", #val)
    Lua: integer retval, string val = reaper.GetProjExtState(ReaProject proj, string extname, string key)
    Python: (Int retval, ReaProject proj, String extname, String key, String valOutNeedBig, Int valOutNeedBig_sz) = RPR_GetProjExtState(proj, extname, key, valOutNeedBig, valOutNeedBig_sz)

    Get the value previously associated with this extname and key, the last time the project was saved or the value was changed.

    Returnvalues:
    integer retval
    0, no such extstate; 1, extstate exists and is returned
    string val
    the value, as stored in extname->key

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string extname
    the section, in which the key requested is stored
    string key
    the key, in which the requested value is stored

    see also:
  • SetProjExtState - sets an ext-state to store data for your project
  • EnumProjExtState - enumerates an ext-state that stores data for your project


  • ^ Reaper version 5.62SetProjExtState

    C: int SetProjExtState(ReaProject* proj, const char* extname, const char* key, const char* value)
    EEL2: int SetProjExtState(ReaProject proj, "extname", "key", "value")
    Lua: integer retval = reaper.SetProjExtState(ReaProject proj, string extname, string key, string value)
    Python: Int retval = RPR_SetProjExtState(ReaProject proj, String extname, String key, String value)

    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.

    Important: if you want to store binary data, \0-bytes (Null-bytes) cause trouble. Everything after the first \0-byte will be cut off when reading the extstate via GetProjExtState.
    If you want to store data including \0-bytes, convert them first into a Hex-string or Base64 and decode them after reading it back.
    That way, you can be sure, the data stays intact.

    Also Important: always use a section-name, that is unique to you. For instance, add your name into the section-name,
    so it's less likely, that somebody else uses the same section and accidentally overwrites your keys.
    Something like: "mespotine_MyCoolScript.lua"

    Here are some of the sections used by ReaTeam-scripts and extensions. Don't use to avoid possible name-conflicts.
    If your section is missing, contact me and I'll add it too:
        "ABLM2 Toggle"
        "AB_LM Toggle"
        "ak5k"
        "ak5k_Drums to MIDI"
        "com.pandabot.ChordGun"
        "com.pandabot.CopyAndPasteRhythm""
        "com.pandabot.selectEveryNItemsWithinSelection"
        "com.pandabot.selectEveryNNotesWithinSelection"
        "com.pandabot.selectEveryNTracksWithinSelection"
        "com.timtam.AccessiChord"
        "Edit Groups"
        "FindReplaceStorage"
        "js_Thumbnails"
        "LFO Generator"
        "Live_Inst_"
        "practice_coach"
        "RODILAB_Hide_tracks_with_no_items_in_time_selection"
        "RODILAB_Track_name_groups"
        "ReaL_Comps"
        "RegionRenderMatrixState"
        "Smart Zoom"
        "spk77 Track Tags"
        "TrackBasedItems"
        "time"

    Returnvalues:
    integer retval
    the number of key/value-pairs in the extname

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string extname
    the section, in which the key/value is stored
    string key
    the key, that stores the value
    string value
    the value, that's stored in the key

    see also:
  • GetProjExtState - gets an ext-state that stored data for your project
  • EnumProjExtState - enumerates an ext-state that stores data for your project


  • ^ Reaper version 5.62CSurf_OnTempoChange

    C: void CSurf_OnTempoChange(double bpm)
    EEL2: CSurf_OnTempoChange(bpm)
    Lua: reaper.CSurf_OnTempoChange(number bpm)
    Python: RPR_CSurf_OnTempoChange(Float bpm)

    Sets the tempo of the project in beats per minute.

    Parameters:
    number bpm
    the beats per minute value; 1 to 1000


    ^ Reaper version 5.62GetProjectLength

    C: double GetProjectLength(ReaProject* proj)
    EEL2: double GetProjectLength(ReaProject proj)
    Lua: number length = reaper.GetProjectLength(ReaProject proj)
    Python: Float retval = RPR_GetProjectLength(ReaProject proj)

    returns length of project (maximum of end of media item, markers, end of regions, tempo map)

    Returnvalues:
    number length
    the length of the project in seconds

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 6.37GetProjectName

    C: void GetProjectName(ReaProject* proj, char* bufOut, int bufOut_sz)
    EEL2: GetProjectName(ReaProject proj, #buf)
    Lua: string projectname = reaper.GetProjectName(ReaProject proj)
    Python: (ReaProject proj, String bufOut, Int bufOut_sz) = RPR_GetProjectName(proj, bufOut, bufOut_sz)

    Get the name of the projectfile.

    Returnvalues:
    string projectname
    the name of the project

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 6.37GetProjectPath

    C: void GetProjectPath(char* bufOut, int bufOut_sz)
    EEL2: GetProjectPath(#buf)
    Lua: string project_path = reaper.GetProjectPath()
    Python: (String bufOut, Int bufOut_sz) = RPR_GetProjectPath(bufOut, bufOut_sz)

    Get the path of the project. Will return the defaults project-path's recording-folder, when the project hasn't been saved yet; when the project has been saved, it will return the path to the recording-folder.

    If you need the filename of the path+projectfile itself, use EnumProjects instead.

    Returnvalues:
    string project_path
    the returned path

    see also:
  • EnumProjects - enumerates the project(tabs) and their projectfiles with path; returns currently rendering project


  • ^ Reaper version 6.37GetProjectPathEx

    C: void GetProjectPathEx(ReaProject* proj, char* bufOut, int bufOut_sz)
    EEL2: GetProjectPathEx(ReaProject proj, #buf)
    Lua: string project_path = reaper.GetProjectPathEx(ReaProject proj)
    Python: (ReaProject proj, String bufOut, Int bufOut_sz) = RPR_GetProjectPathEx(proj, bufOut, bufOut_sz)

    Get the path of a specific project, usually the recordings-folder.

    Returnvalues:
    string project_path
    the path to the project

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetProjectStateChangeCount

    C: int GetProjectStateChangeCount(ReaProject* proj)
    EEL2: int GetProjectStateChangeCount(ReaProject proj)
    Lua: integer count_statechange = reaper.GetProjectStateChangeCount(ReaProject proj)
    Python: Int retval = RPR_GetProjectStateChangeCount(ReaProject proj)

    returns an integer that changes when the project state changes, e.g. undoable-actions have been made.

    Returnvalues:
    integer count_statechange
    the number of changes, since (re-)opening of the project.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetProjectTimeOffset

    C: double GetProjectTimeOffset(ReaProject* proj, bool rndframe)
    EEL2: double GetProjectTimeOffset(ReaProject proj, bool rndframe)
    Lua: number time_offset = reaper.GetProjectTimeOffset(ReaProject proj, boolean rndframe)
    Python: Float retval = RPR_GetProjectTimeOffset(ReaProject proj, Boolean rndframe)

    Gets project time offset in seconds (project settings -> project start time).

    Returnvalues:
    number time_offset
    the project-time-offset

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    boolean rndframe
    true, the offset is rounded to a multiple of the project frame size; false, no rounding happening


    ^ Reaper version 6.38GetSetProjectAuthor

    C: void GetSetProjectAuthor(ReaProject* proj, bool set, char* author, int author_sz)
    EEL2: GetSetProjectAuthor(ReaProject proj, bool set, #author)
    Lua: string author = reaper.GetSetProjectAuthor(ReaProject proj, boolean set, string author)
    Python: (ReaProject proj, Boolean set, String author, Int author_sz) = RPR_GetSetProjectAuthor(proj, set, author, author_sz)

    deprecated, see GetSetProjectInfo_String with desc="PROJECT_AUTHOR"

    Returnvalues:
    string author
    the (new) project's author

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    boolean set
    true, set new author; false, get current project's author
    string author
    the new project author, when set is true. When set is false, author will be ignored.


    ^ Reaper version 5.965GetSetProjectGrid

    C: int GetSetProjectGrid(ReaProject* project, bool set, double* divisionInOutOptional, int* swingmodeInOutOptional, double* swingamtInOutOptional)
    EEL2: int GetSetProjectGrid(ReaProject project, bool set, optional &division, optional int &swingmode, optional &swingamt)
    Lua: integer retval, optional number division, optional integer swingmode, optional number swingamt = reaper.GetSetProjectGrid(ReaProject project, boolean set, optional number division, optional integer swingmode, optional number swingamt)
    Python: (Int retval, ReaProject project, Boolean set, Float divisionInOutOptional, Int swingmodeInOutOptional, Float swingamtInOutOptional) = RPR_GetSetProjectGrid(project, set, divisionInOutOptional, swingmodeInOutOptional, swingamtInOutOptional)

    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

    Returnvalues:
    integer retval
    optional number division
    optional integer swingmode
    optional number swingamt

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    boolean set
    optional number division
    optional integer swingmode
    optional number swingamt


    ^ Reaper version 6.64GetSetProjectInfo

    C: double GetSetProjectInfo(ReaProject* project, const char* desc, double value, bool is_set)
    EEL2: double GetSetProjectInfo(ReaProject project, "desc", value, bool is_set)
    Lua: number value = reaper.GetSetProjectInfo(ReaProject project, string desc, number value, boolean is_set)
    Python: Float retval = RPR_GetSetProjectInfo(ReaProject project, String desc, Float value, Boolean is_set)

    Get or set project information.

    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=Stretch markers/transient guide-checkbox(Only with WAV/AIFF and Source=Selected media items/Selected media items via master),
        &512=Embed Metadata, if format supports is,
        &1024=Take markers-checkbox(Only with WAV and Source=Selected media items/Selected media items via master);
        &2048=2nd pass render  
    OGG, OPUS and FLAC support embedding of tempoinformation via metadata, settable using GetSetProjectInfo_String.  
    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
    RENDER_CHANNELS : number of channels in rendered file  
    RENDER_SRATE : sample rate of rendered file (or 0 for project sample rate)  
    RENDER_STARTPOS : render start time when RENDER_BOUNDSFLAG=0  
    RENDER_ENDPOS : render end time when RENDER_BOUNDSFLAG=0  
    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
    RENDER_TAILMS : tail length in ms to render (only used if RENDER_BOUNDSFLAG and RENDER_TAILFLAG are set)  
    RENDER_ADDTOPROJ :
      &1=add rendered files to project,
      &2=Do not render files that are likely silent  
    RENDER_DITHER :
      &1=dither,
      &2=noise shaping,
      &4=dither stems,
      &8=noise shaping on stems  
    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
    RENDER_NORMALIZE_TARGET: render normalization target as amplitude, so 0.5 means -6.02dB, 0.25 means -12.04dB, etc  
    RENDER_BRICKWALL: render brickwall limit as amplitude, so 0.5 means -6.02dB, 0.25 means -12.04dB, etc
    RENDER_FADEIN: render fade-in (0.001 means 1 ms, requires RENDER_NORMALIZE&512)
    RENDER_FADEOUT: render fade-out (0.001 means 1 ms, requires RENDER_NORMALIZE&1024)
    RENDER_FADEINSHAPE: render fade-in shape
    RENDER_FADEOUTSHAPE: render fade-out shape
    PROJECT_SRATE : samplerate (ignored unless PROJECT_SRATE_USE set)  
    PROJECT_SRATE_USE : set to 1 if project samplerate is used  

    Returnvalues:
    number value
    the new/current value set with this attribute

    Parameters:
    ReaProject project
    the project, whos project settings you want to get/set; 0, for the current project
    string desc
    the attribute you want to get/set, like RENDER_CHANNELS, PROJECT_SRATE, RENDER_SETTINGS, etc
    number value
    if is_set==true, this is the new value to set; if is_set==false, set this to 0
    boolean is_set
    true, set a new value; false, get the current value

    see also:
  • GetSetProjectInfo_String - sets additional attributes for the project as string instead of numbers


  • ^ Reaper version 6.76GetSetProjectInfo_String

    C: bool GetSetProjectInfo_String(ReaProject* project, const char* desc, char* valuestrNeedBig, bool is_set)
    EEL2: bool GetSetProjectInfo_String(ReaProject project, "desc", #valuestrNeedBig, bool is_set)
    Lua: boolean retval, string valuestrNeedBig = reaper.GetSetProjectInfo_String(ReaProject project, string desc, string valuestrNeedBig, boolean is_set)
    Python: (Boolean retval, ReaProject project, String desc, String valuestrNeedBig, Boolean is_set) = RPR_GetSetProjectInfo_String(project, desc, valuestrNeedBig, is_set)

    Get or set project information.  

    PROJECT_NAME: project file name (read-only, is_set will be ignored)  
    PROJECT_TITLE: title field from Project Settings/Notes dialog  
    PROJECT_AUTHOR: author field from Project Settings/Notes dialog  
    TRACK_GROUP_NAME:X: track group name, X should be 1..64  
    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 (read-only)
    MARKER_INDEX_FROM_GUID:{GUID} : get the GUID index of the marker or region with GUID {GUID} (read-only)
    OPENCOPY_CFGIDX : integer for the configuration of format to use when creating copies/applying FX. 0=wave (auto-depth), 1=APPLYFX_FORMAT, 2=RECORD_FORMAT
    RECORD_PATH: recording directory -- may be blank or a relative path, to get the effective path see [GetProjectPathEx](#GetProjectPathEx)  
    RECORD_PATH_SECONDARY: secondary recording directory  
    RECORD_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.
    APPLYFX_FORMAT : base64-encoded sink configuration (see project files, etc). Used only if RECFMT_OPENCOPY is set to 1. 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.
    RENDER_FILE: render directory  
    RENDER_PATTERN: render file name (may contain wildcards)  
    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.  
    RENDER_TARGETS: semicolon separated list of filenames that would be written if the project is rendered using the most recent render settings  
    RENDER_TARGETS_EX: double-NULL (\0\0) separated list of filenames that would be written if the project is rendered using the most recent render settings  
    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.  
                  returns nothing, when user aborted rendering.
    RENDER_FORMAT: base64-encoded sink configuration (see project files, etc). Callers can also pass a simple 4-byte string (non-base64-encoded), to use default settings for that sink type.  
    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.  
    see RENDER_How_RenderCFG-Base64-strings_are_encoded.txt for how the unencoded RENDER_FORMAT-string is structured.  

    To just use the 4-byte-string, you can use:
    "wave" for wave, "aiff" for aiff, "caff" for caf, "iso " for audio-cd, "ddp " for ddp, "flac" for flac, "mp3l" for mp3, "oggv" for ogg, "OggS" for Opus, "FFMP" for FFMpeg-video, "FVAX" for MP4Video/Audio on Mac, "GIF " for Gif, "LCF " for LCF, "WMF" for Windows Media Foundation(mp4, m4a), "wvpk" for wavepack

    RENDER_METADATA: get or set the metadata saved with the project (not metadata embedded in project media). Example, ID3 album name metadata: Uses common ID3-tagcodes like TALB(album), TPE1(Artist), etc.
    To get album tag, use "ID3:TALB", to set album tag, use "ID3:TALB|my album name".  

    Examples in Lua:  
    getting the album name from the metadata of the current project:  

            retval, albumname    = reaper.GetSetProjectInfo_String(0, "RENDER_METADATA", "ID3:TALB", false)

    setting the album name in the metadata of the current project:

            retval, albumame_new = reaper.GetSetProjectInfo_String(0, "RENDER_METADATA", "ID3:TALB|New album name", true)

    Supported tags-codes are: TIT2(Title), TPE1(Artist), TPE2(Albumartist), TALB(Album), TRCK(Track), TCON(Genre), TYER(Year), TDRC(Recording time: YYYY-MM-DD), TKEY(Key), TBPM(Tempo), TSRC(International Standard Recording Code), COMM(Comment), COMM_LANG(Comment language), APIC_TYPE(Image type), APIC_DESC(Image description), APIC_FILE(Image file)  

    APIC_TYPE can have be of the following:  

    0: Other  
    1: 32x32 pixel file icon (PNG only)  
    2: Other file icon  
    3: Cover (front)  
    4: Cover (back)  
    5: Leaflet page  
    6: Media  
    7: Lead artist/Lead Performer/Solo  
    8: Artist/Performer  
    9: Conductor  
    10: Band/Orchestra  
    11: Composer  
    12: Lyricist/Text writer  
    13: Recording location  
    14: During recording  
    15: During performance  
    16: Movie/video screen capture  
    17: A bright colored fish  
    18: Illustration  
    19: Band/Artist logotype  
    20: Publisher/Studiotype  

    Returnvalues:
    boolean retval
    true, value can be set/get; false, value can't be set/get
    string valuestrNeedBig
    the current value for this project-setting

    Parameters:
    ReaProject project
    the project, whose setting you want to get or set
    string desc
    the setting, that you want to get/set; refer description for available ones
    string valuestrNeedBig
    if is_set==true, this is the new value to set
    boolean is_set
    true, set a new value; false, just get the current one

    see also:
  • GetSetProjectInfo - sets additional attributes for the project as number instead of string


  • ^ Reaper version 5.62GetSetProjectNotes

    C: void GetSetProjectNotes(ReaProject* proj, bool set, char* notesNeedBig, int notesNeedBig_sz)
    EEL2: GetSetProjectNotes(ReaProject proj, bool set, #notes)
    Lua: string notes = reaper.GetSetProjectNotes(ReaProject proj, boolean set, string notes)
    Python: (ReaProject proj, Boolean set, String notesNeedBig, Int notesNeedBig_sz) = RPR_GetSetProjectNotes(proj, set, notesNeedBig, notesNeedBig_sz)

    gets or sets project notes, notesNeedBig_sz is ignored when setting

    Returnvalues:
    string notes
    the notes stored in the project's notes.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    boolean set
    true, set the project's notes; false, get the project's notes
    string notes
    the new project's notes, when set is set to true


    ^ Reaper version 5.62IsProjectDirty

    C: int IsProjectDirty(ReaProject* proj)
    EEL2: int IsProjectDirty(ReaProject proj)
    Lua: integer project_dirty = reaper.IsProjectDirty(ReaProject proj)
    Python: Int retval = RPR_IsProjectDirty(ReaProject proj)

    Is the project dirty (needing save)? Always returns 0 if 'undo/prompt to save' is disabled in preferences.

    A project becomes dirty, as soon as it was changed since creation/last saving.

    Returnvalues:
    integer project_dirty
    the state, if a project needs saving or not; 0, needs no saving; 1, needs saving

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62MarkProjectDirty

    C: void MarkProjectDirty(ReaProject* proj)
    EEL2: MarkProjectDirty(ReaProject proj)
    Lua: reaper.MarkProjectDirty(ReaProject proj)
    Python: RPR_MarkProjectDirty(ReaProject proj)

    Marks project as dirty (needing save) if 'undo/prompt to save' is enabled in preferences.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62SetCurrentBPM

    C: void SetCurrentBPM(ReaProject* __proj, double bpm, bool wantUndo)
    EEL2: SetCurrentBPM(ReaProject __proj, bpm, bool wantUndo)
    Lua: reaper.SetCurrentBPM(ReaProject proj, number bpm, boolean wantUndo)
    Python: RPR_SetCurrentBPM(ReaProject __proj, Float bpm, Boolean wantUndo)

    set current BPM in project, set wantUndo=true to add undo point

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number bpm
    the new beats per minute-value
    boolean wantUndo
    true, add undo point; false, no undo point added


    ^ Reaper version 5.62SetProjectGrid

    C: void SetProjectGrid(ReaProject* project, double division)
    EEL2: SetProjectGrid(ReaProject project, division)
    Lua: reaper.SetProjectGrid(ReaProject project, number division)
    Python: RPR_SetProjectGrid(ReaProject project, Float division)

    Set the arrange view grid division. 0.25=quarter note, 1.0/3.0=half note triplet, etc.

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.
    number division
    the division-factor for the arange-view's grid


    ^ Reaper version 5.62Undo_BeginBlock

    C: void Undo_BeginBlock()
    EEL2: Undo_BeginBlock()
    Lua: reaper.Undo_BeginBlock()
    Python: RPR_Undo_BeginBlock()

    call to start a new block


    ^ Reaper version 5.62Undo_BeginBlock2

    C: void Undo_BeginBlock2(ReaProject* proj)
    EEL2: Undo_BeginBlock2(ReaProject proj)
    Lua: reaper.Undo_BeginBlock2(ReaProject proj)
    Python: RPR_Undo_BeginBlock2(ReaProject proj)

    call to start a new undo block. Code after that and before Undo_EndBlock can be undone.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.

    see also:
  • Undo_EndBlock2 - ends an undo-block


  • ^ Reaper version 5.62Undo_CanRedo2

    C: const char* Undo_CanRedo2(ReaProject* proj)
    EEL2: bool Undo_CanRedo2(#retval, ReaProject proj)
    Lua: string undo_string = reaper.Undo_CanRedo2(ReaProject proj)
    Python: String retval = RPR_Undo_CanRedo2(ReaProject proj)

    returns string of next action,if able,NULL if not

    basically, if you undid an action, this will return the description of the action you undid.

    Returnvalues:
    string undo_string
    next redo-able action

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62Undo_CanUndo2

    C: const char* Undo_CanUndo2(ReaProject* proj)
    EEL2: bool Undo_CanUndo2(#retval, ReaProject proj)
    Lua: string undo_text = reaper.Undo_CanUndo2(ReaProject proj)
    Python: String retval = RPR_Undo_CanUndo2(ReaProject proj)

    returns string of last action,if able,NULL if not

    basically returns the description of the next undoable action

    Returnvalues:
    string undo_text
    the next undoable action

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62Undo_DoRedo2

    C: int Undo_DoRedo2(ReaProject* proj)
    EEL2: int Undo_DoRedo2(ReaProject proj)
    Lua: integer retval = reaper.Undo_DoRedo2(ReaProject proj)
    Python: Int retval = RPR_Undo_DoRedo2(ReaProject proj)

    redo an undone action

    nonzero if success

    Returnvalues:
    integer retval
    0, not successful; everything else, successful

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62Undo_DoUndo2

    C: int Undo_DoUndo2(ReaProject* proj)
    EEL2: int Undo_DoUndo2(ReaProject proj)
    Lua: integer retval = reaper.Undo_DoUndo2(ReaProject proj)
    Python: Int retval = RPR_Undo_DoUndo2(ReaProject proj)

    undo an undoable action

    nonzero if success

    Returnvalues:
    integer retval
    0, not successful; everything else, successful

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.979Undo_EndBlock

    C: void Undo_EndBlock(const char* descchange, int extraflags)
    EEL2: Undo_EndBlock("descchange", int extraflags)
    Lua: reaper.Undo_EndBlock(string descchange, integer extraflags)
    Python: RPR_Undo_EndBlock(String descchange, Int extraflags)

    call to end the block,with extra flags if any,and a description

    Parameters:
    string descchange
    a string that describes the changes of the undo-block
    integer extraflags
    set to -1, include all undo states
    1, track/master vol/pan/routing, routing/hwout envelopes too
    2, track/master fx
    4, track items
    8, loop selection, markers, regions, extensions
    16, freeze state
    32, non-FX envelopes only
    64, FX envelopes, implied by UNDO_STATE_FX too
    128, contents of automation items -- not position, length, rate etc of automation items, which is part of envelope state
    256, ARA state


    ^ Reaper version 5.979Undo_EndBlock2

    C: void Undo_EndBlock2(ReaProject* proj, const char* descchange, int extraflags)
    EEL2: Undo_EndBlock2(ReaProject proj, "descchange", int extraflags)
    Lua: reaper.Undo_EndBlock2(ReaProject proj, string descchange, integer extraflags)
    Python: RPR_Undo_EndBlock2(ReaProject proj, String descchange, Int extraflags)

    call to end the block,with extra flags if any,and a description

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string descchange
    a string that describes the changes of the undo-block
    integer extraflags
    set to -1, include all undo states
    1, track/master vol/pan/routing, routing/hwout envelopes too
    2, track/master fx
    4, track items
    8, loop selection, markers, regions, extensions
    16, freeze state
    32, non-FX envelopes only
    64, FX envelopes, implied by UNDO_STATE_FX too
    128, contents of automation items -- not position, length, rate etc of automation items, which is part of envelope state
    256, ARA state


    ^ Reaper version 5.62Undo_OnStateChange

    C: void Undo_OnStateChange(const char* descchange)
    EEL2: Undo_OnStateChange("descchange")
    Lua: reaper.Undo_OnStateChange(string descchange)
    Python: RPR_Undo_OnStateChange(String descchange)

    limited state change to items

    Parameters:
    string descchange


    ^ Reaper version 5.62Undo_OnStateChange2

    C: void Undo_OnStateChange2(ReaProject* proj, const char* descchange)
    EEL2: Undo_OnStateChange2(ReaProject proj, "descchange")
    Lua: reaper.Undo_OnStateChange2(ReaProject proj, string descchange)
    Python: RPR_Undo_OnStateChange2(ReaProject proj, String descchange)

    limited state change to items

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string descchange


    ^ Reaper version 5.62Undo_OnStateChangeEx

    C: void Undo_OnStateChangeEx(const char* descchange, int whichStates, int trackparm)
    EEL2: Undo_OnStateChangeEx("descchange", int whichStates, int trackparm)
    Lua: reaper.Undo_OnStateChangeEx(string descchange, integer whichStates, integer trackparm)
    Python: RPR_Undo_OnStateChangeEx(String descchange, Int whichStates, Int trackparm)

    trackparm=-1 by default,or if updating one fx chain,you can specify track index

    Parameters:
    string descchange
    integer whichStates
    integer trackparm


    ^ Reaper version 5.62Undo_OnStateChangeEx2

    C: void Undo_OnStateChangeEx2(ReaProject* proj, const char* descchange, int whichStates, int trackparm)
    EEL2: Undo_OnStateChangeEx2(ReaProject proj, "descchange", int whichStates, int trackparm)
    Lua: reaper.Undo_OnStateChangeEx2(ReaProject proj, string descchange, integer whichStates, integer trackparm)
    Python: RPR_Undo_OnStateChangeEx2(ReaProject proj, String descchange, Int whichStates, Int trackparm)

    trackparm=-1 by default,or if updating one fx chain,you can specify track index

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string descchange
    integer whichStates
    integer trackparm


    ^ Reaper version 5.62Undo_OnStateChange_Item

    C: void Undo_OnStateChange_Item(ReaProject* proj, const char* name, MediaItem* item)
    EEL2: Undo_OnStateChange_Item(ReaProject proj, "name", MediaItem item)
    Lua: reaper.Undo_OnStateChange_Item(ReaProject proj, string name, MediaItem item)
    Python: RPR_Undo_OnStateChange_Item(ReaProject proj, String name, MediaItem item)



    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string name
    MediaItem item


    ^ Reaper version 5.62CSurf_GoEnd

    C: void CSurf_GoEnd()
    EEL2: CSurf_GoEnd()
    Lua: reaper.CSurf_GoEnd()
    Python: RPR_CSurf_GoEnd()

    Moves the cursor to the end of the last item in the project.


    ^ Reaper version 5.62CSurf_GoStart

    C: void CSurf_GoStart()
    EEL2: CSurf_GoStart()
    Lua: reaper.CSurf_GoStart()
    Python: RPR_CSurf_GoStart()

    Moves the cursor to the start of the project.


    ^ Reaper version 5.62CSurf_OnFwd

    C: void CSurf_OnFwd(int seekplay)
    EEL2: CSurf_OnFwd(int seekplay)
    Lua: reaper.CSurf_OnFwd(integer seekplay)
    Python: RPR_CSurf_OnFwd(Int seekplay)

    Moves editcursor forward, and optionally with seekplay.

    Parameters:
    integer seekplay
    how to move the editcursor forward
      0, move cursor forward in small steps. Stepsize depends on horizontal zoomfactor.
      1, move cursor forward, in half-second steps when stopped; when playing it jumps ahead with playing restarting at editcursor


    ^ Reaper version 5.62CSurf_OnPause

    C: void CSurf_OnPause()
    EEL2: CSurf_OnPause()
    Lua: reaper.CSurf_OnPause()
    Python: RPR_CSurf_OnPause()

    Toggles between pause and play or when recording has started between pause and rec. Unlike CSurf_OnPlay it toggles pause first, then plays.


    ^ Reaper version 5.62CSurf_OnPlay

    C: void CSurf_OnPlay()
    EEL2: CSurf_OnPlay()
    Lua: reaper.CSurf_OnPlay()
    Python: RPR_CSurf_OnPlay()

    Toggles between play and pause or, when recording, rec and pause. Unlike CSurf_OnPause it toggles play first, then pauses.


    ^ Reaper version 5.62CSurf_OnPlayRateChange

    C: void CSurf_OnPlayRateChange(double playrate)
    EEL2: CSurf_OnPlayRateChange(playrate)
    Lua: reaper.CSurf_OnPlayRateChange(number playrate)
    Python: RPR_CSurf_OnPlayRateChange(Float playrate)

    Sets the playbackrate of the current project. Can be between 0.25x to 4x.

    Parameters:
    number playrate
    the playbackrate of the current project. 0.25 to 4.00


    ^ Reaper version 5.62CSurf_OnRecord

    C: void CSurf_OnRecord()
    EEL2: CSurf_OnRecord()
    Lua: reaper.CSurf_OnRecord()
    Python: RPR_CSurf_OnRecord()

    Toggles recording on and off. Starts recording from edit-cursor-position.


    ^ Reaper version 5.62CSurf_OnRew

    C: void CSurf_OnRew(int seekplay)
    EEL2: CSurf_OnRew(int seekplay)
    Lua: reaper.CSurf_OnRew(integer seekplay)
    Python: RPR_CSurf_OnRew(Int seekplay)

    Moves editcursor backward, and optionally with seekplay.

    Parameters:
    integer seekplay
    how to move the editcursor backward
      0, move cursor backward in small steps. Stepsize depends on horizontal zoomfactor.
      1, move cursor backward, in half-second steps when stopped; when playing, playing will restart at playcursor


    ^ Reaper version 5.62CSurf_OnRewFwd

    C: void CSurf_OnRewFwd(int seekplay, int dir)
    EEL2: CSurf_OnRewFwd(int seekplay, int dir)
    Lua: reaper.CSurf_OnRewFwd(integer seekplay, integer dir)
    Python: RPR_CSurf_OnRewFwd(Int seekplay, Int dir)

    Will move editcursor for or backward, depending on parameter dir.
    During play and whith seekplay set, the movement of the editcursor depends on the playcursor-position at the time of calling CSurf_OnRewFwd.

    Parameters:
    integer seekplay
    turns seekplay on or off; has no effect during recording
      0, when stopped, jump for/backwards in small steps(stepsize depending on zoom-factor)
      1, when stopped, jump for/backwards in 0.5 seconds steps. When play/rec
    integer dir
    the direction; -1, move backwards; 0, keep the position; 1, move forwards


    ^ Reaper version 5.62CSurf_ScrubAmt

    C: void CSurf_ScrubAmt(double amt)
    EEL2: CSurf_ScrubAmt(amt)
    Lua: reaper.CSurf_ScrubAmt(number amt)
    Python: RPR_CSurf_ScrubAmt(Float amt)

    Changes position of the editcursor by amt-value in seconds. When playing, the playposition changes to the editcursor-position.
    During recording, it changes only the position of the editcursor.

    Parameters:
    number amt
    how far to change position of the editcursor in seconds. Positive values toward the end, negative toward the beginning of the project.


    ^ Reaper version 5.62CSurf_SetPlayState

    C: void CSurf_SetPlayState(bool play, bool pause, bool rec, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetPlayState(bool play, bool pause, bool rec, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetPlayState(boolean play, boolean pause, boolean rec, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetPlayState(Boolean play, Boolean pause, Boolean rec, IReaperControlSurface ignoresurf)



    Parameters:
    boolean play
    boolean pause
    boolean rec
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62CSurf_SetRepeatState

    C: void CSurf_SetRepeatState(bool rep, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetRepeatState(bool rep, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetRepeatState(boolean rep, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetRepeatState(Boolean rep, IReaperControlSurface ignoresurf)



    Parameters:
    boolean rep
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62GetAllProjectPlayStates

    C: int GetAllProjectPlayStates(ReaProject* ignoreProject)
    EEL2: int GetAllProjectPlayStates(ReaProject ignoreProject)
    Lua: integer proj_playstates = reaper.GetAllProjectPlayStates(ReaProject ignoreProject)
    Python: Int retval = RPR_GetAllProjectPlayStates(ReaProject ignoreProject)

    returns the bitwise OR of all project play states, eg. and project is playing/pausing/recording (1=playing, 2=pause, 4=recording)

    Returnvalues:
    integer proj_playstates
    the bitwise play-state of alle projects
    &1, at least one project is playing
    &2, at least one project is paused
    &4, at least one project is recording

    Parameters:
    ReaProject ignoreProject
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetCursorPosition

    C: double GetCursorPosition()
    EEL2: double GetCursorPosition()
    Lua: number position = reaper.GetCursorPosition()
    Python: Float retval = RPR_GetCursorPosition()

    edit cursor position

    Returnvalues:
    number position
    the editcursor-position in seconds


    ^ Reaper version 5.62GetCursorPositionEx

    C: double GetCursorPositionEx(ReaProject* proj)
    EEL2: double GetCursorPositionEx(ReaProject proj)
    Lua: number position = reaper.GetCursorPositionEx(ReaProject proj)
    Python: Float retval = RPR_GetCursorPositionEx(ReaProject proj)

    Get the edit cursor position in a given project

    Returnvalues:
    number position
    the position in seconds

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetPlayPosition

    C: double GetPlayPosition()
    EEL2: double GetPlayPosition()
    Lua: number playposition = reaper.GetPlayPosition()
    Python: Float retval = RPR_GetPlayPosition()

    returns latency-compensated actual-what-you-hear position

    Returnvalues:
    number playposition
    the playposition in seconds


    ^ Reaper version 5.62GetPlayPosition2

    C: double GetPlayPosition2()
    EEL2: double GetPlayPosition2()
    Lua: number playposition = reaper.GetPlayPosition2()
    Python: Float retval = RPR_GetPlayPosition2()

    returns position of next audio block being processed

    Returnvalues:
    number playposition
    the playposition in seconds


    ^ Reaper version 5.62GetPlayPosition2Ex

    C: double GetPlayPosition2Ex(ReaProject* proj)
    EEL2: double GetPlayPosition2Ex(ReaProject proj)
    Lua: number playposition = reaper.GetPlayPosition2Ex(ReaProject proj)
    Python: Float retval = RPR_GetPlayPosition2Ex(ReaProject proj)

    returns position of next audio block being processed from a specific project

    Returnvalues:
    number playposition
    the playposition in seconds

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetPlayPositionEx

    C: double GetPlayPositionEx(ReaProject* proj)
    EEL2: double GetPlayPositionEx(ReaProject proj)
    Lua: number playposition = reaper.GetPlayPositionEx(ReaProject proj)
    Python: Float retval = RPR_GetPlayPositionEx(ReaProject proj)

    returns latency-compensated actual-what-you-hear position from a specific project

    Returnvalues:
    number playposition
    the playposition in seconds

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetPlayState

    C: int GetPlayState()
    EEL2: int GetPlayState()
    Lua: integer playstate = reaper.GetPlayState()
    Python: Int retval = RPR_GetPlayState()

    returns, in which play-state the current project is

    Returnvalues:
    integer playstate
    Either bitwise: &1=playing,&2=pause,&4=is recording, or
    0, stop
    1, play
    2, paused play
    5, recording
    6, paused recording


    ^ Reaper version 5.62GetPlayStateEx

    C: int GetPlayStateEx(ReaProject* proj)
    EEL2: int GetPlayStateEx(ReaProject proj)
    Lua: integer playstate = reaper.GetPlayStateEx(ReaProject proj)
    Python: Int retval = RPR_GetPlayStateEx(ReaProject proj)

    returns, in which play-state a certain project is

    Returnvalues:
    integer playstate
    Either bitwise: &1=playing,&2=pause,&4=is recording, or
    0, stop
    1, play
    2, paused play
    5, recording
    6, paused recording

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetSetRepeat

    C: int GetSetRepeat(int val)
    EEL2: int GetSetRepeat(int val)
    Lua: integer repeat_state = reaper.GetSetRepeat(integer val)
    Python: Int retval = RPR_GetSetRepeat(Int val)

    Sets or gets repeat-state of the current project.

    Returnvalues:
    integer repeat_state
    new/current repeat state; 0, repeat is off; 1, repeat is on

    Parameters:
    integer val
    -1, query repeat-state
    0, clear repeat state
    1, set repeat to repeat
    2 and higher, toggle repeat state


    ^ Reaper version 5.62GetSetRepeatEx

    C: int GetSetRepeatEx(ReaProject* proj, int val)
    EEL2: int GetSetRepeatEx(ReaProject proj, int val)
    Lua: integer repeat_state = reaper.GetSetRepeatEx(ReaProject proj, integer val)
    Python: Int retval = RPR_GetSetRepeatEx(ReaProject proj, Int val)

    Sets or gets repeat-state in a specific project.

    Returnvalues:
    integer repeat_state
    new/current repeat state; 0, repeat is off; 1, repeat is on

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer val
    -1, query repeat-state
    0, clear repeat state
    1, set repeat to repeat
    2 and higher, toggle repeat state


    ^ Reaper version 5.62GetSet_LoopTimeRange

    C: void GetSet_LoopTimeRange(bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek)
    EEL2: GetSet_LoopTimeRange(bool isSet, bool isLoop, &start, &end, bool allowautoseek)
    Lua: number start_sel, number end_sel = reaper.GetSet_LoopTimeRange(boolean isSet, boolean isLoop, number start_sel, number end_sel, boolean allowautoseek)
    Python: (Boolean isSet, Boolean isLoop, Float startOut, Float endOut, Boolean allowautoseek) = RPR_GetSet_LoopTimeRange(isSet, isLoop, startOut, endOut, allowautoseek)

    Gets/sets a time-selection/loop.

    Loops and time-selections can be unlinked in preferences -> Editing Behavior -> Link loops to time selection.
    So you can control them individually, when you've unlinked them with this function.


    Returnvalues:
    number start_sel
    the starting position of the time-selection/loop in seconds
    number end_sel
    the end position of the time-selection/loop in seconds

    Parameters:
    boolean isSet
    false, get the current time-selection/loop-range; true, set a new time-selection/loop-range
    boolean isLoop
    true, selection is a loop; false, selection is a regular time-selection
    number start_sel
    the new startposition of the time-selection/loop-range
    number end_sel
    the new endposition of the time-selection/loop-range
    boolean allowautoseek
    true, when setting a new loop while playback, the playcursor jumps to the loop; false, playcursor stays unaffecte by the change


    ^ Reaper version 5.62GetSet_LoopTimeRange2

    C: void GetSet_LoopTimeRange2(ReaProject* proj, bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek)
    EEL2: GetSet_LoopTimeRange2(ReaProject proj, bool isSet, bool isLoop, &start, &end, bool allowautoseek)
    Lua: number start_sel, number end_sel = reaper.GetSet_LoopTimeRange2(ReaProject proj, boolean isSet, boolean isLoop, number start_sel, number end_sel, boolean allowautoseek)
    Python: (ReaProject proj, Boolean isSet, Boolean isLoop, Float startOut, Float endOut, Boolean allowautoseek) = RPR_GetSet_LoopTimeRange2(proj, isSet, isLoop, startOut, endOut, allowautoseek)

    Gets/sets a time-selection/loop.

    Loops and time-selections can be unlinked in preferences -> Editing Behavior -> Link loops to time selection.
    So you can control them individually, when you've unlinked them with this function.


    Returnvalues:
    number start_sel
    the starting position of the time-selection/loop in seconds
    number end_sel
    the end position of the time-selection/loop in seconds

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    boolean isSet
    false, get the current time-selection/loop-range; true, set a new time-selection/loop-range
    boolean isLoop
    true, selection is a loop; false, selection is a regular time-selection
    number start_sel
    the new startposition of the time-selection/loop-range
    number end_sel
    the new endposition of the time-selection/loop-range
    boolean allowautoseek
    true, when setting a new loop while playback, the playcursor jumps to the loop; false, playcursor stays unaffecte by the change


    ^ Reaper version 5.62GoToMarker

    C: void GoToMarker(ReaProject* proj, int marker_index, bool use_timeline_order)
    EEL2: GoToMarker(ReaProject proj, int marker_index, bool use_timeline_order)
    Lua: reaper.GoToMarker(ReaProject proj, integer marker_index, boolean use_timeline_order)
    Python: RPR_GoToMarker(ReaProject proj, Int marker_index, Boolean use_timeline_order)

    Go to marker.
    Move Editcursor to a given marker. When playing, the playcursor moves to the marker as well.

    For Regions, use GoToRegion.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer marker_index
    the markerindex, where you want to go to.
    boolean use_timeline_order
    false, use the shown-markernumber as marker_index; true, use markers in timelineorder, ignoring the shown-markernumber

    see also:
  • GoToRegion - goes to a region, instead of a marker


  • ^ Reaper version 5.62GoToRegion

    C: void GoToRegion(ReaProject* proj, int region_index, bool use_timeline_order)
    EEL2: GoToRegion(ReaProject proj, int region_index, bool use_timeline_order)
    Lua: reaper.GoToRegion(ReaProject proj, integer region_index, boolean use_timeline_order)
    Python: RPR_GoToRegion(ReaProject proj, Int region_index, Boolean use_timeline_order)

    Go to beginning of a region.
    Seek to region after current region finishes playing (smooth seek).

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer region_index
    the regionindex, where you want to got to.
    boolean use_timeline_order
    false, use the shown-regionnumber as region_index; true, use regions in timelineorder, ignoring the shown-regionnumber


    ^ Reaper version 5.62Loop_OnArrow

    C: bool Loop_OnArrow(ReaProject* project, int direction)
    EEL2: bool Loop_OnArrow(ReaProject project, int direction)
    Lua: boolean snap_state = reaper.Loop_OnArrow(ReaProject project, integer direction)
    Python: Boolean retval = RPR_Loop_OnArrow(ReaProject project, Int direction)

    Move the loop selection left or right in steps according to snap-settings(when snap is enabled).

    Returnvalues:
    boolean snap_state
    true, snap is enabled; false, snap is disabled

    Parameters:
    ReaProject project
    the project to be checked for. 0 for current project.
    integer direction
    the direction to move; negative values, move towards start of project; positive values, move towards end of project; 0, keep position


    ^ Reaper version 5.62Master_GetPlayRate

    C: double Master_GetPlayRate(ReaProject* project)
    EEL2: double Master_GetPlayRate(ReaProject project)
    Lua: number mas_playrate = reaper.Master_GetPlayRate(ReaProject project)
    Python: Float retval = RPR_Master_GetPlayRate(ReaProject project)

    Get the playrate of the project.

    Returnvalues:
    number mas_playrate
    the playrate of the project, between 0.25 and 10.0

    Parameters:
    ReaProject project
    the project-number. 0 for the current project.


    ^ Reaper version 5.62Master_GetPlayRateAtTime

    C: double Master_GetPlayRateAtTime(double time_s, ReaProject* proj)
    EEL2: double Master_GetPlayRateAtTime(time_s, ReaProject proj)
    Lua: number mas_playrate_time = reaper.Master_GetPlayRateAtTime(number time_s, ReaProject proj)
    Python: Float retval = RPR_Master_GetPlayRateAtTime(Float time_s, ReaProject proj)



    Returnvalues:
    number mas_playrate_time

    Parameters:
    number time_s
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62Master_GetTempo

    C: double Master_GetTempo()
    EEL2: double Master_GetTempo()
    Lua: number mas_tempo = reaper.Master_GetTempo()
    Python: Float retval = RPR_Master_GetTempo()



    Returnvalues:
    number mas_tempo


    ^ Reaper version 5.62Master_NormalizePlayRate

    C: double Master_NormalizePlayRate(double playrate, bool isnormalized)
    EEL2: double Master_NormalizePlayRate(playrate, bool isnormalized)
    Lua: number mas_norm_playrate = reaper.Master_NormalizePlayRate(number playrate, boolean isnormalized)
    Python: Float retval = RPR_Master_NormalizePlayRate(Float playrate, Boolean isnormalized)

    Convert play rate to/from a value between 0 and 1, representing the position on the project playrate slider.

    Returnvalues:
    number mas_norm_playrate

    Parameters:
    number playrate
    boolean isnormalized


    ^ Reaper version 5.62Master_NormalizeTempo

    C: double Master_NormalizeTempo(double bpm, bool isnormalized)
    EEL2: double Master_NormalizeTempo(bpm, bool isnormalized)
    Lua: number mas_norm_tempo = reaper.Master_NormalizeTempo(number bpm, boolean isnormalized)
    Python: Float retval = RPR_Master_NormalizeTempo(Float bpm, Boolean isnormalized)

    Convert the tempo to/from a value between 0 and 1, representing bpm in the range of 40-296 bpm.

    Returnvalues:
    number mas_norm_tempo

    Parameters:
    number bpm
    boolean isnormalized


    ^ Reaper version 5.62MoveEditCursor

    C: void MoveEditCursor(double adjamt, bool dosel)
    EEL2: MoveEditCursor(adjamt, bool dosel)
    Lua: reaper.MoveEditCursor(number adjamt, boolean dosel)
    Python: RPR_MoveEditCursor(Float adjamt, Boolean dosel)

    Moves the Edit Cursor.

    Parameters:
    number adjamt
    move of edit cursor by seconds, relative from the current position. positive-values=forward, negative values=backwards
    boolean dosel
    true, create selection from old edit-cursor-position to the new position; false, just move the edit cursor


    ^ Reaper version 5.62OnPauseButton

    C: void OnPauseButton()
    EEL2: OnPauseButton()
    Lua: reaper.OnPauseButton()
    Python: RPR_OnPauseButton()

    Toggles pause/play during play or pause/rec during recording in the current project.
    When stopped, it will start paused play.


    ^ Reaper version 5.62OnPauseButtonEx

    C: void OnPauseButtonEx(ReaProject* proj)
    EEL2: OnPauseButtonEx(ReaProject proj)
    Lua: reaper.OnPauseButtonEx(ReaProject proj)
    Python: RPR_OnPauseButtonEx(ReaProject proj)

    Toggles pause/play during play or pause/rec during recording in a specific project.
    When stopped, it will start paused play.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62OnPlayButton

    C: void OnPlayButton()
    EEL2: OnPlayButton()
    Lua: reaper.OnPlayButton()
    Python: RPR_OnPlayButton()

    Starts playing at edit-cursor. Will stop recording, when executed during recording.


    ^ Reaper version 5.62OnPlayButtonEx

    C: void OnPlayButtonEx(ReaProject* proj)
    EEL2: OnPlayButtonEx(ReaProject proj)
    Lua: reaper.OnPlayButtonEx(ReaProject proj)
    Python: RPR_OnPlayButtonEx(ReaProject proj)

    Starts playing at edit-cursor. Will stop recording, when executed during recording.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62OnStopButton

    C: void OnStopButton()
    EEL2: OnStopButton()
    Lua: reaper.OnStopButton()
    Python: RPR_OnStopButton()

    Stops playing/recording.


    ^ Reaper version 5.62OnStopButtonEx

    C: void OnStopButtonEx(ReaProject* proj)
    EEL2: OnStopButtonEx(ReaProject proj)
    Lua: reaper.OnStopButtonEx(ReaProject proj)
    Python: RPR_OnStopButtonEx(ReaProject proj)

    Stops playing/recording.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62SetEditCurPos

    C: void SetEditCurPos(double time, bool moveview, bool seekplay)
    EEL2: SetEditCurPos(time, bool moveview, bool seekplay)
    Lua: reaper.SetEditCurPos(number time, boolean moveview, boolean seekplay)
    Python: RPR_SetEditCurPos(Float time, Boolean moveview, Boolean seekplay)

    Change the position of the edit-cursor in the current project.

    Parameters:
    number time
    the new editcursor-position in seconds
    boolean moveview
    true, change the arrange-view so editcursor is visible; false, just set the edit-cursor without moving the view(editcursor might be out of sight)
    boolean seekplay
    true, when playing, restart playing at the new edit-cursor position; false, keep playing at "old" playposition


    ^ Reaper version 5.62SetEditCurPos2

    C: void SetEditCurPos2(ReaProject* proj, double time, bool moveview, bool seekplay)
    EEL2: SetEditCurPos2(ReaProject proj, time, bool moveview, bool seekplay)
    Lua: reaper.SetEditCurPos2(ReaProject proj, number time, boolean moveview, boolean seekplay)
    Python: RPR_SetEditCurPos2(ReaProject proj, Float time, Boolean moveview, Boolean seekplay)

    Change the position of the edit-cursor in a specific project.

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number time
    the new editcursor-position in seconds
    boolean moveview
    true, change the arrange-view so editcursor is visible; false, just set the edit-cursor without moving the view(editcursor might be out of sight)
    boolean seekplay
    true, when playing, restart playing at the new edit-cursor position; false, keep playing at "old" playposition


    ^ Reaper version 5.62atexit

    Python: RPR_atexit(String code)

    Adds code to be executed when the script finishes or is ended by the user. Typically used to clean up after the user terminates defer() or runloop() code.

    Parameters:
    String code


    ^ Reaper version 5.62defer

    Python: RPR_defer(String code)

    Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to runloop().
    Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

    Parameters:
    String code


    ^ Reaper version 5.62runloop

    Python: RPR_runloop(String code)

    Adds code to be called back by REAPER. Used to create persistent ReaScripts that continue to run and respond to input, while the user does other tasks. Identical to defer().
    Note that no undo point will be automatically created when the script finishes, unless you create it explicitly.

    Parameters:
    String code


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetBeatAtTime(Blink)

    C: double Blink_GetBeatAtTime(double time, double quantum)
    EEL2: double extension_api("Blink_GetBeatAtTime", time, quantum)
    Lua: number retval = reaper.Blink_GetBeatAtTime(number time, number quantum)
    Python: Double retval = Blink_GetBeatAtTime(double time, double quantum)

    Get session beat value corresponding to given time for given quantum.

    Returnvalues:
    number retval

    Parameters:
    number time
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetClockNow(Blink)

    C: double Blink_GetClockNow()
    EEL2: double extension_api("Blink_GetClockNow")
    Lua: number retval = reaper.Blink_GetClockNow()
    Python: Double retval = Blink_GetClockNow()

    Clock used by Blink.

    Returnvalues:
    number retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetEnabled(Blink)

    C: bool Blink_GetEnabled()
    EEL2: bool extension_api("Blink_GetEnabled")
    Lua: boolean retval = reaper.Blink_GetEnabled()
    Python: Boolean retval = Blink_GetEnabled()

    Is Blink currently enabled?

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetMaster(Blink)

    C: bool Blink_GetMaster()
    EEL2: bool extension_api("Blink_GetMaster")
    Lua: boolean retval = reaper.Blink_GetMaster()
    Python: Boolean retval = Blink_GetMaster()

    Is Blink Master?

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetNumPeers(Blink)

    C: int Blink_GetNumPeers()
    EEL2: int extension_api("Blink_GetNumPeers")
    Lua: integer retval = reaper.Blink_GetNumPeers()
    Python: Int retval = Blink_GetNumPeers()

    How many peers are currently connected in Link session?

    Returnvalues:
    integer retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetPhaseAtTime(Blink)

    C: double Blink_GetPhaseAtTime(double time, double quantum)
    EEL2: double extension_api("Blink_GetPhaseAtTime", time, quantum)
    Lua: number retval = reaper.Blink_GetPhaseAtTime(number time, number quantum)
    Python: Double retval = Blink_GetPhaseAtTime(double time, double quantum)

    Get session phase at given time for given quantum.

    Returnvalues:
    number retval

    Parameters:
    number time
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetPlaying(Blink)

    C: bool Blink_GetPlaying()
    EEL2: bool extension_api("Blink_GetPlaying")
    Lua: boolean retval = reaper.Blink_GetPlaying()
    Python: Boolean retval = Blink_GetPlaying()

    Is transport playing?

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetPuppet(Blink)

    C: bool Blink_GetPuppet()
    EEL2: bool extension_api("Blink_GetPuppet")
    Lua: boolean retval = reaper.Blink_GetPuppet()
    Python: Boolean retval = Blink_GetPuppet()

    Is Blink Puppet?

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetQuantum(Blink)

    C: double Blink_GetQuantum()
    EEL2: double extension_api("Blink_GetQuantum")
    Lua: number retval = reaper.Blink_GetQuantum()
    Python: Double retval = Blink_GetQuantum()

    Get quantum.

    Returnvalues:
    number retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetStartStopSyncEnabled(Blink)

    C: bool Blink_GetStartStopSyncEnabled()
    EEL2: bool extension_api("Blink_GetStartStopSyncEnabled")
    Lua: boolean retval = reaper.Blink_GetStartStopSyncEnabled()
    Python: Boolean retval = Blink_GetStartStopSyncEnabled()

    Is start/stop synchronization enabled?

    Returnvalues:
    boolean retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetTempo(Blink)

    C: double Blink_GetTempo()
    EEL2: double extension_api("Blink_GetTempo")
    Lua: number retval = reaper.Blink_GetTempo()
    Python: Double retval = Blink_GetTempo()

    Tempo of timeline, in quarter note Beats Per Minute.

    Returnvalues:
    number retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetTimeAtBeat(Blink)

    C: double Blink_GetTimeAtBeat(double beat, double quantum)
    EEL2: double extension_api("Blink_GetTimeAtBeat", beat, quantum)
    Lua: number retval = reaper.Blink_GetTimeAtBeat(number beat, number quantum)
    Python: Double retval = Blink_GetTimeAtBeat(double beat, double quantum)

    Get time at which given beat occurs for given quantum.

    Returnvalues:
    number retval

    Parameters:
    number beat
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetTimeForPlaying(Blink)

    C: double Blink_GetTimeForPlaying()
    EEL2: double extension_api("Blink_GetTimeForPlaying")
    Lua: number retval = reaper.Blink_GetTimeForPlaying()
    Python: Double retval = Blink_GetTimeForPlaying()

    Get time at which transport start/stop occurs.

    Returnvalues:
    number retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_GetVersion(Blink)

    C: double Blink_GetVersion()
    EEL2: double extension_api("Blink_GetVersion")
    Lua: number retval = reaper.Blink_GetVersion()
    Python: Double retval = Blink_GetVersion()

    Get Blink version.

    Returnvalues:
    number retval


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetBeatAtStartPlayingTimeRequest(Blink)

    C: void Blink_SetBeatAtStartPlayingTimeRequest(double beat, double quantum)
    EEL2: extension_api("Blink_SetBeatAtStartPlayingTimeRequest", beat, quantum)
    Lua: reaper.Blink_SetBeatAtStartPlayingTimeRequest(number beat, number quantum)
    Python: Blink_SetBeatAtStartPlayingTimeRequest(double beat, double quantum)

    Convenience function to attempt to map given beat to time when transport is starting to play in context of given quantum. This function evaluates to a no-op if GetPlaying() equals false.

    Parameters:
    number beat
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetBeatAtTimeForce(Blink)

    C: void Blink_SetBeatAtTimeForce(double bpm, double time, double quantum)
    EEL2: extension_api("Blink_SetBeatAtTimeForce", bpm, time, quantum)
    Lua: reaper.Blink_SetBeatAtTimeForce(number bpm, number time, number quantum)
    Python: Blink_SetBeatAtTimeForce(double bpm, double time, double quantum)

    Rudely re-map beat/time relationship for all peers in Link session.

    Parameters:
    number bpm
    number time
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetBeatAtTimeRequest(Blink)

    C: void Blink_SetBeatAtTimeRequest(double bpm, double time, double quantum)
    EEL2: extension_api("Blink_SetBeatAtTimeRequest", bpm, time, quantum)
    Lua: reaper.Blink_SetBeatAtTimeRequest(number bpm, number time, number quantum)
    Python: Blink_SetBeatAtTimeRequest(double bpm, double time, double quantum)

    Attempt to map given beat to given time in context of given quantum.

    Parameters:
    number bpm
    number time
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.4Blink_SetCaptureTransportCommands(Blink)

    C: void Blink_SetCaptureTransportCommands(bool enable)
    EEL2: extension_api("Blink_SetCaptureTransportCommands", bool enable)
    Lua: reaper.Blink_SetCaptureTransportCommands(boolean enable)
    Python: Blink_SetCaptureTransportCommands(bool enable)

    Captures REAPER Transport commands and 'Tempo: Increase/Decrease current project tempo by 01 BPM' commands and broadcasts them into Link session. When used with Master or Puppet mode enabled, provides better integration between REAPER and Link session transport and tempos.

    Parameters:
    boolean enable


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetEnabled(Blink)

    C: void Blink_SetEnabled(bool enable)
    EEL2: extension_api("Blink_SetEnabled", bool enable)
    Lua: reaper.Blink_SetEnabled(boolean enable)
    Python: Blink_SetEnabled(bool enable)

    Enable/disable Blink. In Blink methods transport, tempo and timeline refer to Link session, not local REAPER instance.

    Parameters:
    boolean enable


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetMaster(Blink)

    C: void Blink_SetMaster(bool enable)
    EEL2: extension_api("Blink_SetMaster", bool enable)
    Lua: reaper.Blink_SetMaster(boolean enable)
    Python: Blink_SetMaster(bool enable)

    Set Blink as Master. Puppet needs to be enabled first. Same as Puppet, but possible beat offset is broadcast to Link session, effectively forcing local REAPER timeline on peers. Only one, if any, Blink should be Master in Link session.

    Parameters:
    boolean enable


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetPlaying(Blink)

    C: void Blink_SetPlaying(bool playing, double time)
    EEL2: extension_api("Blink_SetPlaying", bool playing, time)
    Lua: reaper.Blink_SetPlaying(boolean playing, number time)
    Python: Blink_SetPlaying(bool playing, double time)

    Set if transport should be playing or stopped, taking effect at given time.

    Parameters:
    boolean playing
    number time


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetPlayingAndBeatAtTimeRequest(Blink)

    C: void Blink_SetPlayingAndBeatAtTimeRequest(bool playing, double time, double beat, double quantum)
    EEL2: extension_api("Blink_SetPlayingAndBeatAtTimeRequest", bool playing, time, beat, quantum)
    Lua: reaper.Blink_SetPlayingAndBeatAtTimeRequest(boolean playing, number time, number beat, number quantum)
    Python: Blink_SetPlayingAndBeatAtTimeRequest(bool playing, double time, double beat, double quantum)

    Convenience function to start or stop transport at given time and attempt to map given beat to this time in context of given quantum.

    Parameters:
    boolean playing
    number time
    number beat
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetPuppet(Blink)

    C: void Blink_SetPuppet(bool enable)
    EEL2: extension_api("Blink_SetPuppet", bool enable)
    Lua: reaper.Blink_SetPuppet(boolean enable)
    Python: Blink_SetPuppet(bool enable)

    Set Blink as Puppet. When enabled, Blink attempts to synchronize local REAPER tempo to Link session tempo by adjusting current active tempo/time signature marker, or broadcasts local REAPER tempo changes into Link session, and attempts to correct possible offset by adjusting REAPER playrate. Based on cumulative single beat phase since Link session transport start, regardless of quantum.

    Parameters:
    boolean enable


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetQuantum(Blink)

    C: void Blink_SetQuantum(double quantum)
    EEL2: extension_api("Blink_SetQuantum", quantum)
    Lua: reaper.Blink_SetQuantum(number quantum)
    Python: Blink_SetQuantum(double quantum)

    Set quantum. Usually this is set to length of one measure/bar in quarter notes.

    Parameters:
    number quantum


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetStartStopSyncEnabled(Blink)

    C: void Blink_SetStartStopSyncEnabled(bool enable)
    EEL2: extension_api("Blink_SetStartStopSyncEnabled", bool enable)
    Lua: reaper.Blink_SetStartStopSyncEnabled(boolean enable)
    Python: Blink_SetStartStopSyncEnabled(bool enable)

    Enable start/stop synchronization.

    Parameters:
    boolean enable


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetTempo(Blink)

    C: void Blink_SetTempo(double bpm)
    EEL2: extension_api("Blink_SetTempo", bpm)
    Lua: reaper.Blink_SetTempo(number bpm)
    Python: Blink_SetTempo(double bpm)

    Set timeline tempo to given bpm value.

    Parameters:
    number bpm


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_SetTempoAtTime(Blink)

    C: void Blink_SetTempoAtTime(double bpm, double time)
    EEL2: extension_api("Blink_SetTempoAtTime", bpm, time)
    Lua: reaper.Blink_SetTempoAtTime(number bpm, number time)
    Python: Blink_SetTempoAtTime(double bpm, double time)

    Set tempo to given bpm value, taking effect at given time.

    Parameters:
    number bpm
    number time


    ^ Reaper version 6.23 ReaBlink version 0.4.0Blink_StartStop(Blink)

    C: void Blink_StartStop()
    EEL2: extension_api("Blink_StartStop")
    Lua: reaper.Blink_StartStop()
    Python: Blink_StartStop()

    Transport start/stop.


    ^ Reaper version 6.23Fab_Clear

    C: bool Fab_Clear(const char* idStringInOptional)
    EEL2: bool extension_api("Fab_Clear", optional "idStringIn")
    Lua: boolean retval = reaper.Fab_Clear(optional string idStringIn)
    Python: BoolFab_Clear(const char* idStringInOptional)

    Clears ReaFab control map, optionally based on matching idString. Returns true on success.

    Returnvalues:
    boolean retval

    Parameters:
    optional string idStringIn


    ^ Reaper version 6.23Fab_Do

    C: bool Fab_Do(int command, int val)
    EEL2: bool extension_api("Fab_Do", int command, int val)
    Lua: boolean retval = reaper.Fab_Do(integer command, integer val)
    Python: BoolFab_Do(int command, int val)

    Runs ReaFab actions/commands. First parameter (command) is ReaFab command number, e.g. 3 for 3rd encoder rotation. Second parameter (val) is MIDI CC Relative value. Value 1 is increment of 1, 127 is decrement of 1. 2 is inc 2, 126 is dec 2 and so on. For button press (commands 9-32) a value of 127 is recommended.

    Returnvalues:
    boolean retval

    Parameters:
    integer command
    integer val


    ^ Reaper version 6.23Fab_Dump

    C: void Fab_Dump()
    EEL2: extension_api("Fab_Dump")
    Lua: reaper.Fab_Dump()
    Python: Fab_Dump()

    Dumps current control mapping into .lua file under ResourcePath/Scripts/reafab_dump-timestamp.lua


    ^ Reaper version 6.23Fab_Get

    C: bool Fab_Get(int command, int* fxOut, int* paramOut)
    EEL2: bool extension_api("Fab_Get", int command, int &fx, int &param)
    Lua: boolean retval, integer fx, integer param = reaper.Fab_Get(integer command)
    Python: BoolFab_Get(int command, int* fxOut, int* paramOut)

    Returns target FX and parameter index for given ReaFab command in context of selected track and ReaFab FX index. Valid command range 1 ... 24. Returns false if no such command mapping is found. Returns param index -1 for ReaFab internal band change command.

    Returnvalues:
    boolean retval
    integer fx
    integer param

    Parameters:
    integer command


    ^ Reaper version 6.23Fab_Map

    C: bool Fab_Map(const char* fxId, int command, const char* paramId, int control, int* bandsInOptional, double* stepInOptional, double* accelInOptional, double* minvalInOptional, double* maxvalInOptional)
    EEL2: bool extension_api("Fab_Map", "fxId", int command, "paramId", int control, optional int bandsIn, optional stepIn, optional accelIn, optional minvalIn, optional maxvalIn)
    Lua: boolean retval = reaper.Fab_Map(string fxId, integer command, string paramId, integer control, optional integer bandsIn, optional number stepIn, optional number accelIn, optional number minvalIn, optional number maxvalIn)
    Python: BoolFab_Map(const char* fxId, int command, const char* paramId, int control, int* bandsInOptional, double* stepInOptional, double* accelInOptional, double* minvalInOptional, double* maxvalInOptional)

    Creates control mapping for ReaFab command.
    fxId e.g. "ReaComp".
    command 1-8 for encoders, 9-24 for buttons.
    paramId e.g. "Ratio".
    control 1 = direct, 2 = band selector, 3 = cycle, 4 = invert, 5 = force toggle, 6 = force range, 7 = 5 and 6, 8 = force continuous.
    bands define, if target fx has multiple identical target bands. In this case, paramId must include 00 placeholder, e.g. "Band 00 Gain".
    step overrides built-in default step of ~0.001 for continuous parameters.
    accel overrides built-in default control acceleration step of 1.0.
    minval & maxval override default detected target param value range.
    Prefixing paramId with "-" reverses direction; useful for creating separate next/previous mappings for bands or list type value navigation.

    Returnvalues:
    boolean retval

    Parameters:
    string fxId
    integer command
    string paramId
    integer control
    optional integer bandsIn
    optional number stepIn
    optional number accelIn
    optional number minvalIn
    optional number maxvalIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_AcceptDragDropPayload

    C: bool ImGui_AcceptDragDropPayload(ImGui_Context* ctx, const char* type, char* payloadOutNeedBig, int payloadOutNeedBig_sz, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_AcceptDragDropPayload", ImGui_Context ctx, "type", #payload, optional int flagsIn)
    Lua: boolean retval, string payload = reaper.ImGui_AcceptDragDropPayload(ImGui_Context ctx, string type, string payload, optional integer flagsIn)
    Python: bool ImGui_AcceptDragDropPayload(ImGui_Context* ctx, const char* type, char* payloadOutNeedBig, int payloadOutNeedBig_sz, int* flagsInOptional)

    Accept contents of a given type. If DragDropFlags_AcceptBeforeDelivery is set
    you can peek into the payload before the mouse button is released.

    Returnvalues:
    boolean retval
    string payload

    Parameters:
    ImGui_Context ctx
    string type
    string payload
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_AcceptDragDropPayloadFiles

    C: bool ImGui_AcceptDragDropPayloadFiles(ImGui_Context* ctx, int* countOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_AcceptDragDropPayloadFiles", ImGui_Context ctx, int &count, optional int flagsIn)
    Lua: boolean retval, integer count = reaper.ImGui_AcceptDragDropPayloadFiles(ImGui_Context ctx, integer count, optional integer flagsIn)
    Python: bool ImGui_AcceptDragDropPayloadFiles(ImGui_Context* ctx, int* countOut, int* flagsInOptional)

    Accept a list of dropped files. See AcceptDragDropPayload and GetDragDropPayloadFile.

    Returnvalues:
    boolean retval
    integer count

    Parameters:
    ImGui_Context ctx
    integer count
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_AcceptDragDropPayloadRGB

    C: bool ImGui_AcceptDragDropPayloadRGB(ImGui_Context* ctx, int* rgbOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_AcceptDragDropPayloadRGB", ImGui_Context ctx, int &rgb, optional int flagsIn)
    Lua: boolean retval, integer rgb = reaper.ImGui_AcceptDragDropPayloadRGB(ImGui_Context ctx, integer rgb, optional integer flagsIn)
    Python: bool ImGui_AcceptDragDropPayloadRGB(ImGui_Context* ctx, int* rgbOut, int* flagsInOptional)

    Accept a RGB color. See AcceptDragDropPayload.

    Returnvalues:
    boolean retval
    integer rgb

    Parameters:
    ImGui_Context ctx
    integer rgb
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_AcceptDragDropPayloadRGBA

    C: bool ImGui_AcceptDragDropPayloadRGBA(ImGui_Context* ctx, int* rgbaOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_AcceptDragDropPayloadRGBA", ImGui_Context ctx, int &rgba, optional int flagsIn)
    Lua: boolean retval, integer rgba = reaper.ImGui_AcceptDragDropPayloadRGBA(ImGui_Context ctx, integer rgba, optional integer flagsIn)
    Python: bool ImGui_AcceptDragDropPayloadRGBA(ImGui_Context* ctx, int* rgbaOut, int* flagsInOptional)

    Accept a RGBA color. See AcceptDragDropPayload.

    Returnvalues:
    boolean retval
    integer rgba

    Parameters:
    ImGui_Context ctx
    integer rgba
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_AlignTextToFramePadding

    C: void ImGui_AlignTextToFramePadding(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_AlignTextToFramePadding", ImGui_Context ctx)
    Lua: reaper.ImGui_AlignTextToFramePadding(ImGui_Context ctx)
    Python: void ImGui_AlignTextToFramePadding(ImGui_Context* ctx)

    Vertically align upcoming text baseline to StyleVar_FramePadding.y so that it
    will align properly to regularly framed items (call if you have text on a line
    before a framed item).

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ArrowButton

    C: bool ImGui_ArrowButton(ImGui_Context* ctx, const char* str_id, int dir)
    EEL2: bool extension_api("ImGui_ArrowButton", ImGui_Context ctx, "str_id", int dir)
    Lua: boolean reaper.ImGui_ArrowButton(ImGui_Context ctx, string str_id, integer dir)
    Python: bool ImGui_ArrowButton(ImGui_Context* ctx, const char* str_id, int dir)

    Square button with an arrow shape. 'dir' is one of the Dir_* values

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    integer dir


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Attach

    C: void ImGui_Attach(ImGui_Context* ctx, ImGui_Resource* obj)
    EEL2: extension_api("ImGui_Attach", ImGui_Context ctx, ImGui_Resource obj)
    Lua: reaper.ImGui_Attach(ImGui_Context ctx, ImGui_Resource obj)
    Python: void ImGui_Attach(ImGui_Context* ctx, ImGui_Resource* obj)

    Link the object's lifetime to the given context.
    Objects can be draw list splitters, fonts, images, list clippers, etc.
    Call Detach to let the object be garbage-collected after unuse again.

    List clipper objects may only be attached to the context they were created for.

    Fonts are (currently) a special case: they must be attached to the context
    before usage. Furthermore, fonts may only be attached or detached immediately
    after the context is created or before any other function calls modifying the
    context per defer cycle. See "limitations" in the font API documentation.

    Parameters:
    ImGui_Context ctx
    ImGui_Resource obj


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Begin

    C: bool ImGui_Begin(ImGui_Context* ctx, const char* name, bool* p_openInOutOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_Begin", ImGui_Context ctx, "name", optional bool &p_open, optional int flagsIn)
    Lua: boolean retval, optional boolean p_open = reaper.ImGui_Begin(ImGui_Context ctx, string name, optional boolean p_open, optional integer flagsIn)
    Python: bool ImGui_Begin(ImGui_Context* ctx, const char* name, bool* p_openInOutOptional, int* flagsInOptional)

    Push window to the stack and start appending to it.

    - Passing true to 'p_open' shows a window-closing widget in the upper-right
      corner of the window, which clicking will set the boolean to false when returned.
    - You may append multiple times to the same window during the same frame by
      calling Begin()/End() pairs multiple times. Some information such as 'flags'
      or 'p_open' will only be considered by the first call to Begin().
    - Begin() return false to indicate the window is collapsed or fully clipped,
      so you may early out and omit submitting anything to the window.

    Returnvalues:
    boolean retval
    optional boolean p_open

    Parameters:
    ImGui_Context ctx
    string name
    optional boolean p_open
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginChild

    C: bool ImGui_BeginChild(ImGui_Context* ctx, const char* str_id, double* size_wInOptional, double* size_hInOptional, bool* borderInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginChild", ImGui_Context ctx, "str_id", optional size_wIn, optional size_hIn, optional bool borderIn, optional int flagsIn)
    Lua: boolean reaper.ImGui_BeginChild(ImGui_Context ctx, string str_id, optional number size_wIn, optional number size_hIn, optional boolean borderIn, optional integer flagsIn)
    Python: bool ImGui_BeginChild(ImGui_Context* ctx, const char* str_id, double* size_wInOptional, double* size_hInOptional, bool* borderInOptional, int* flagsInOptional)

    For each independent axis of 'size':
    - \> 0.0: fixed size
    - = 0.0: use remaining host window size
    - < 0.0: use remaining window size minus abs(size)
    (Each axis can use a different mode, e.g. size = 0x400.)

    Returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    optional number size_wIn
    optional number size_hIn
    optional boolean borderIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginChildFrame

    C: bool ImGui_BeginChildFrame(ImGui_Context* ctx, const char* str_id, double size_w, double size_h, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginChildFrame", ImGui_Context ctx, "str_id", size_w, size_h, optional int flagsIn)
    Lua: boolean reaper.ImGui_BeginChildFrame(ImGui_Context ctx, string str_id, number size_w, number size_h, optional integer flagsIn)
    Python: bool ImGui_BeginChildFrame(ImGui_Context* ctx, const char* str_id, double size_w, double size_h, int* flagsInOptional)

    Helper to create a child window / scrolling region that looks like a normal
    widget frame. See BeginChild.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    number size_w
    number size_h
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginCombo

    C: bool ImGui_BeginCombo(ImGui_Context* ctx, const char* label, const char* preview_value, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginCombo", ImGui_Context ctx, "label", "preview_value", optional int flagsIn)
    Lua: boolean reaper.ImGui_BeginCombo(ImGui_Context ctx, string label, string preview_value, optional integer flagsIn)
    Python: bool ImGui_BeginCombo(ImGui_Context* ctx, const char* label, const char* preview_value, int* flagsInOptional)

    The BeginCombo/EndCombo API allows you to manage your contents and selection
    state however you want it, by creating e.g. Selectable items.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label
    string preview_value
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginDisabled

    C: void ImGui_BeginDisabled(ImGui_Context* ctx, bool* disabledInOptional)
    EEL2: extension_api("ImGui_BeginDisabled", ImGui_Context ctx, optional bool disabledIn)
    Lua: reaper.ImGui_BeginDisabled(ImGui_Context ctx, optional boolean disabledIn)
    Python: void ImGui_BeginDisabled(ImGui_Context* ctx, bool* disabledInOptional)

    Disable all user interactions and dim items visuals
    (applying StyleVar_DisabledAlpha over current colors).

    BeginDisabled(false) essentially does nothing useful but is provided to
    facilitate use of boolean expressions.
    If you can avoid calling BeginDisabled(false)/EndDisabled() best to avoid it.

    Parameters:
    ImGui_Context ctx
    optional boolean disabledIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginDragDropSource

    C: bool ImGui_BeginDragDropSource(ImGui_Context* ctx, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginDragDropSource", ImGui_Context ctx, optional int flagsIn)
    Lua: boolean reaper.ImGui_BeginDragDropSource(ImGui_Context ctx, optional integer flagsIn)
    Python: bool ImGui_BeginDragDropSource(ImGui_Context* ctx, int* flagsInOptional)

    Call after submitting an item which may be dragged. when this return true,
    you can call SetDragDropPayload() + EndDragDropSource()

    If you stop calling BeginDragDropSource() the payload is preserved however
    it won't have a preview tooltip (we currently display a fallback "..." tooltip
    as replacement).

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginDragDropTarget

    C: bool ImGui_BeginDragDropTarget(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_BeginDragDropTarget", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_BeginDragDropTarget(ImGui_Context ctx)
    Python: bool ImGui_BeginDragDropTarget(ImGui_Context* ctx)

    Call after submitting an item that may receive a payload.
    If this returns true, you can call AcceptDragDropPayload + EndDragDropTarget.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginGroup

    C: void ImGui_BeginGroup(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_BeginGroup", ImGui_Context ctx)
    Lua: reaper.ImGui_BeginGroup(ImGui_Context ctx)
    Python: void ImGui_BeginGroup(ImGui_Context* ctx)

    Lock horizontal starting position. See EndGroup.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginListBox

    C: bool ImGui_BeginListBox(ImGui_Context* ctx, const char* label, double* size_wInOptional, double* size_hInOptional)
    EEL2: bool extension_api("ImGui_BeginListBox", ImGui_Context ctx, "label", optional size_wIn, optional size_hIn)
    Lua: boolean reaper.ImGui_BeginListBox(ImGui_Context ctx, string label, optional number size_wIn, optional number size_hIn)
    Python: bool ImGui_BeginListBox(ImGui_Context* ctx, const char* label, double* size_wInOptional, double* size_hInOptional)

    Open a framed scrolling region. This is essentially a thin wrapper to using
    BeginChild/EndChild with some stylistic changes.

    The BeginListBox/EndListBox API allows you to manage your contents and selection
    state however you want it, by creating e.g. Selectable or any items.

    - Choose frame width:
      - width  > 0.0: custom
      - width  < 0.0 or -FLT_MIN: right-align
      - width  = 0.0 (default): use current ItemWidth
    - Choose frame height:
      - height > 0.0: custom
      - height < 0.0 or -FLT_MIN: bottom-align
      - height = 0.0 (default): arbitrary default height which can fit ~7 items

    See EndListBox.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label
    optional number size_wIn
    optional number size_hIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginMenu

    C: bool ImGui_BeginMenu(ImGui_Context* ctx, const char* label, bool* enabledInOptional)
    EEL2: bool extension_api("ImGui_BeginMenu", ImGui_Context ctx, "label", optional bool enabledIn)
    Lua: boolean reaper.ImGui_BeginMenu(ImGui_Context ctx, string label, optional boolean enabledIn)
    Python: bool ImGui_BeginMenu(ImGui_Context* ctx, const char* label, bool* enabledInOptional)

    Create a sub-menu entry. only call EndMenu if this returns true!

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label
    optional boolean enabledIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginMenuBar

    C: bool ImGui_BeginMenuBar(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_BeginMenuBar", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_BeginMenuBar(ImGui_Context ctx)
    Python: bool ImGui_BeginMenuBar(ImGui_Context* ctx)

    Append to menu-bar of current window (requires WindowFlags_MenuBar flag set
    on parent window). See EndMenuBar.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginPopup

    C: bool ImGui_BeginPopup(ImGui_Context* ctx, const char* str_id, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginPopup", ImGui_Context ctx, "str_id", optional int flagsIn)
    Lua: boolean reaper.ImGui_BeginPopup(ImGui_Context ctx, string str_id, optional integer flagsIn)
    Python: bool ImGui_BeginPopup(ImGui_Context* ctx, const char* str_id, int* flagsInOptional)

    Query popup state, if open start appending into the window. Call EndPopup
    afterwards. WindowFlags* are forwarded to the window.

    Return true if the popup is open, and you can start outputting to it.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginPopupContextItem

    C: bool ImGui_BeginPopupContextItem(ImGui_Context* ctx, const char* str_idInOptional, int* popup_flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginPopupContextItem", ImGui_Context ctx, optional "str_idIn", optional int popup_flagsIn)
    Lua: boolean reaper.ImGui_BeginPopupContextItem(ImGui_Context ctx, optional string str_idIn, optional integer popup_flagsIn)
    Python: bool ImGui_BeginPopupContextItem(ImGui_Context* ctx, const char* str_idInOptional, int* popup_flagsInOptional)

    This is a helper to handle the simplest case of associating one named popup
    to one given widget. You can pass a nil str_id to use the identifier of the last
    item. This is essentially the same as calling OpenPopupOnItemClick + BeginPopup
    but written to avoid computing the ID twice because BeginPopupContext*
    functions may be called very frequently.

    If you want to use that on a non-interactive item such as Text you need to pass
    in an explicit ID here.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional string str_idIn
    optional integer popup_flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginPopupContextWindow

    C: bool ImGui_BeginPopupContextWindow(ImGui_Context* ctx, const char* str_idInOptional, int* popup_flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginPopupContextWindow", ImGui_Context ctx, optional "str_idIn", optional int popup_flagsIn)
    Lua: boolean reaper.ImGui_BeginPopupContextWindow(ImGui_Context ctx, optional string str_idIn, optional integer popup_flagsIn)
    Python: bool ImGui_BeginPopupContextWindow(ImGui_Context* ctx, const char* str_idInOptional, int* popup_flagsInOptional)

    Open+begin popup when clicked on current window.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional string str_idIn
    optional integer popup_flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginPopupModal

    C: bool ImGui_BeginPopupModal(ImGui_Context* ctx, const char* name, bool* p_openInOutOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginPopupModal", ImGui_Context ctx, "name", optional bool &p_open, optional int flagsIn)
    Lua: boolean retval, optional boolean p_open = reaper.ImGui_BeginPopupModal(ImGui_Context ctx, string name, optional boolean p_open, optional integer flagsIn)
    Python: bool ImGui_BeginPopupModal(ImGui_Context* ctx, const char* name, bool* p_openInOutOptional, int* flagsInOptional)

    Block every interaction behind the window, cannot be closed by user, add a
    dimming background, has a title bar. Return true if the modal is open, and you
    can start outputting to it. See BeginPopup.

    Returnvalues:
    boolean retval
    optional boolean p_open

    Parameters:
    ImGui_Context ctx
    string name
    optional boolean p_open
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginTabBar

    C: bool ImGui_BeginTabBar(ImGui_Context* ctx, const char* str_id, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginTabBar", ImGui_Context ctx, "str_id", optional int flagsIn)
    Lua: boolean reaper.ImGui_BeginTabBar(ImGui_Context ctx, string str_id, optional integer flagsIn)
    Python: bool ImGui_BeginTabBar(ImGui_Context* ctx, const char* str_id, int* flagsInOptional)

    Create and append into a TabBar.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginTabItem

    C: bool ImGui_BeginTabItem(ImGui_Context* ctx, const char* label, bool* p_openInOutOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_BeginTabItem", ImGui_Context ctx, "label", optional bool &p_open, optional int flagsIn)
    Lua: boolean retval, optional boolean p_open = reaper.ImGui_BeginTabItem(ImGui_Context ctx, string label, optional boolean p_open, optional integer flagsIn)
    Python: bool ImGui_BeginTabItem(ImGui_Context* ctx, const char* label, bool* p_openInOutOptional, int* flagsInOptional)

    Create a Tab. Returns true if the Tab is selected.
    Set 'p_open' to true to enable the close button.

    Returnvalues:
    boolean retval
    optional boolean p_open

    Parameters:
    ImGui_Context ctx
    string label
    optional boolean p_open
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginTable

    C: bool ImGui_BeginTable(ImGui_Context* ctx, const char* str_id, int column, int* flagsInOptional, double* outer_size_wInOptional, double* outer_size_hInOptional, double* inner_widthInOptional)
    EEL2: bool extension_api("ImGui_BeginTable", ImGui_Context ctx, "str_id", int column, optional int flagsIn, optional outer_size_wIn, optional outer_size_hIn, optional inner_widthIn)
    Lua: boolean reaper.ImGui_BeginTable(ImGui_Context ctx, string str_id, integer column, optional integer flagsIn, optional number outer_size_wIn, optional number outer_size_hIn, optional number inner_widthIn)
    Python: bool ImGui_BeginTable(ImGui_Context* ctx, const char* str_id, int column, int* flagsInOptional, double* outer_size_wInOptional, double* outer_size_hInOptional, double* inner_widthInOptional)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    integer column
    optional integer flagsIn
    optional number outer_size_wIn
    optional number outer_size_hIn
    optional number inner_widthIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BeginTooltip

    C: bool ImGui_BeginTooltip(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_BeginTooltip", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_BeginTooltip(ImGui_Context ctx)
    Python: bool ImGui_BeginTooltip(ImGui_Context* ctx)

    Begin/append a tooltip window.
    To create full-featured tooltip (with any kind of items).

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Bullet

    C: void ImGui_Bullet(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_Bullet", ImGui_Context ctx)
    Lua: reaper.ImGui_Bullet(ImGui_Context ctx)
    Python: void ImGui_Bullet(ImGui_Context* ctx)

    Draw a small circle + keep the cursor on the same line.
    Advance cursor x position by GetTreeNodeToLabelSpacing,
    same distance that TreeNode uses.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_BulletText

    C: void ImGui_BulletText(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_BulletText", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_BulletText(ImGui_Context ctx, string text)
    Python: void ImGui_BulletText(ImGui_Context* ctx, const char* text)

    Shortcut for Bullet + Text.

    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Button

    C: bool ImGui_Button(ImGui_Context* ctx, const char* label, double* size_wInOptional, double* size_hInOptional)
    EEL2: bool extension_api("ImGui_Button", ImGui_Context ctx, "label", optional size_wIn, optional size_hIn)
    Lua: boolean reaper.ImGui_Button(ImGui_Context ctx, string label, optional number size_wIn, optional number size_hIn)
    Python: bool ImGui_Button(ImGui_Context* ctx, const char* label, double* size_wInOptional, double* size_hInOptional)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label
    optional number size_wIn
    optional number size_hIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ButtonFlags_MouseButtonLeft

    C: int ImGui_ButtonFlags_MouseButtonLeft()
    EEL2: int extension_api("ImGui_ButtonFlags_MouseButtonLeft")
    Lua: integer retval = reaper.ImGui_ButtonFlags_MouseButtonLeft()
    Python: int ImGui_ButtonFlags_MouseButtonLeft()

    React on left mouse button (default).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ButtonFlags_MouseButtonMiddle

    C: int ImGui_ButtonFlags_MouseButtonMiddle()
    EEL2: int extension_api("ImGui_ButtonFlags_MouseButtonMiddle")
    Lua: integer retval = reaper.ImGui_ButtonFlags_MouseButtonMiddle()
    Python: int ImGui_ButtonFlags_MouseButtonMiddle()

    React on center mouse button.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ButtonFlags_MouseButtonRight

    C: int ImGui_ButtonFlags_MouseButtonRight()
    EEL2: int extension_api("ImGui_ButtonFlags_MouseButtonRight")
    Lua: integer retval = reaper.ImGui_ButtonFlags_MouseButtonRight()
    Python: int ImGui_ButtonFlags_MouseButtonRight()

    React on right mouse button.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ButtonFlags_None

    C: int ImGui_ButtonFlags_None()
    EEL2: int extension_api("ImGui_ButtonFlags_None")
    Lua: integer retval = reaper.ImGui_ButtonFlags_None()
    Python: int ImGui_ButtonFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CalcItemWidth

    C: double ImGui_CalcItemWidth(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_CalcItemWidth", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_CalcItemWidth(ImGui_Context ctx)
    Python: double ImGui_CalcItemWidth(ImGui_Context* ctx)

    Width of item given pushed settings and current cursor position.
    NOT necessarily the width of last item unlike most 'Item' functions.

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CalcTextSize

    C: void ImGui_CalcTextSize(ImGui_Context* ctx, const char* text, double* wOut, double* hOut, bool* hide_text_after_double_hashInOptional, double* wrap_widthInOptional)
    EEL2: extension_api("ImGui_CalcTextSize", ImGui_Context ctx, "text", &w, &h, optional bool hide_text_after_double_hashIn, optional wrap_widthIn)
    Lua: number w, number h = reaper.ImGui_CalcTextSize(ImGui_Context ctx, string text, number w, number h, optional boolean hide_text_after_double_hashIn, optional number wrap_widthIn)
    Python: void ImGui_CalcTextSize(ImGui_Context* ctx, const char* text, double* wOut, double* hOut, bool* hide_text_after_double_hashInOptional, double* wrap_widthInOptional)



    Returnvalues:
    number w
    number h

    Parameters:
    ImGui_Context ctx
    string text
    number w
    number h
    optional boolean hide_text_after_double_hashIn
    optional number wrap_widthIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Checkbox

    C: bool ImGui_Checkbox(ImGui_Context* ctx, const char* label, bool* vInOut)
    EEL2: bool extension_api("ImGui_Checkbox", ImGui_Context ctx, "label", bool &v)
    Lua: boolean retval, boolean v = reaper.ImGui_Checkbox(ImGui_Context ctx, string label, boolean v)
    Python: bool ImGui_Checkbox(ImGui_Context* ctx, const char* label, bool* vInOut)



    Returnvalues:
    boolean retval
    boolean v

    Parameters:
    ImGui_Context ctx
    string label
    boolean v


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CheckboxFlags

    C: bool ImGui_CheckboxFlags(ImGui_Context* ctx, const char* label, int* flagsInOut, int flags_value)
    EEL2: bool extension_api("ImGui_CheckboxFlags", ImGui_Context ctx, "label", int &flags, int flags_value)
    Lua: boolean retval, integer flags = reaper.ImGui_CheckboxFlags(ImGui_Context ctx, string label, integer flags, integer flags_value)
    Python: bool ImGui_CheckboxFlags(ImGui_Context* ctx, const char* label, int* flagsInOut, int flags_value)



    Returnvalues:
    boolean retval
    integer flags

    Parameters:
    ImGui_Context ctx
    string label
    integer flags
    integer flags_value


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CloseCurrentPopup

    C: void ImGui_CloseCurrentPopup(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_CloseCurrentPopup", ImGui_Context ctx)
    Lua: reaper.ImGui_CloseCurrentPopup(ImGui_Context ctx)
    Python: void ImGui_CloseCurrentPopup(ImGui_Context* ctx)

    Manually close the popup we have begin-ed into.
    Use inside the BeginPopup/EndPopup scope to close manually.

    CloseCurrentPopup() is called by default by Selectable/MenuItem when activated.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_Border

    C: int ImGui_Col_Border()
    EEL2: int extension_api("ImGui_Col_Border")
    Lua: integer retval = reaper.ImGui_Col_Border()
    Python: int ImGui_Col_Border()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_BorderShadow

    C: int ImGui_Col_BorderShadow()
    EEL2: int extension_api("ImGui_Col_BorderShadow")
    Lua: integer retval = reaper.ImGui_Col_BorderShadow()
    Python: int ImGui_Col_BorderShadow()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_Button

    C: int ImGui_Col_Button()
    EEL2: int extension_api("ImGui_Col_Button")
    Lua: integer retval = reaper.ImGui_Col_Button()
    Python: int ImGui_Col_Button()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ButtonActive

    C: int ImGui_Col_ButtonActive()
    EEL2: int extension_api("ImGui_Col_ButtonActive")
    Lua: integer retval = reaper.ImGui_Col_ButtonActive()
    Python: int ImGui_Col_ButtonActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ButtonHovered

    C: int ImGui_Col_ButtonHovered()
    EEL2: int extension_api("ImGui_Col_ButtonHovered")
    Lua: integer retval = reaper.ImGui_Col_ButtonHovered()
    Python: int ImGui_Col_ButtonHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_CheckMark

    C: int ImGui_Col_CheckMark()
    EEL2: int extension_api("ImGui_Col_CheckMark")
    Lua: integer retval = reaper.ImGui_Col_CheckMark()
    Python: int ImGui_Col_CheckMark()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ChildBg

    C: int ImGui_Col_ChildBg()
    EEL2: int extension_api("ImGui_Col_ChildBg")
    Lua: integer retval = reaper.ImGui_Col_ChildBg()
    Python: int ImGui_Col_ChildBg()

    Background of child windows.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_DockingEmptyBg

    C: int ImGui_Col_DockingEmptyBg()
    EEL2: int extension_api("ImGui_Col_DockingEmptyBg")
    Lua: integer retval = reaper.ImGui_Col_DockingEmptyBg()
    Python: int ImGui_Col_DockingEmptyBg()

    Background color for empty node (e.g. CentralNode with no window docked into it).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_DockingPreview

    C: int ImGui_Col_DockingPreview()
    EEL2: int extension_api("ImGui_Col_DockingPreview")
    Lua: integer retval = reaper.ImGui_Col_DockingPreview()
    Python: int ImGui_Col_DockingPreview()

    Preview overlay color when about to docking something.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_DragDropTarget

    C: int ImGui_Col_DragDropTarget()
    EEL2: int extension_api("ImGui_Col_DragDropTarget")
    Lua: integer retval = reaper.ImGui_Col_DragDropTarget()
    Python: int ImGui_Col_DragDropTarget()

    Rectangle highlighting a drop target

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_FrameBg

    C: int ImGui_Col_FrameBg()
    EEL2: int extension_api("ImGui_Col_FrameBg")
    Lua: integer retval = reaper.ImGui_Col_FrameBg()
    Python: int ImGui_Col_FrameBg()

    Background of checkbox, radio button, plot, slider, text input.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_FrameBgActive

    C: int ImGui_Col_FrameBgActive()
    EEL2: int extension_api("ImGui_Col_FrameBgActive")
    Lua: integer retval = reaper.ImGui_Col_FrameBgActive()
    Python: int ImGui_Col_FrameBgActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_FrameBgHovered

    C: int ImGui_Col_FrameBgHovered()
    EEL2: int extension_api("ImGui_Col_FrameBgHovered")
    Lua: integer retval = reaper.ImGui_Col_FrameBgHovered()
    Python: int ImGui_Col_FrameBgHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_Header

    C: int ImGui_Col_Header()
    EEL2: int extension_api("ImGui_Col_Header")
    Lua: integer retval = reaper.ImGui_Col_Header()
    Python: int ImGui_Col_Header()

    Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_HeaderActive

    C: int ImGui_Col_HeaderActive()
    EEL2: int extension_api("ImGui_Col_HeaderActive")
    Lua: integer retval = reaper.ImGui_Col_HeaderActive()
    Python: int ImGui_Col_HeaderActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_HeaderHovered

    C: int ImGui_Col_HeaderHovered()
    EEL2: int extension_api("ImGui_Col_HeaderHovered")
    Lua: integer retval = reaper.ImGui_Col_HeaderHovered()
    Python: int ImGui_Col_HeaderHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_MenuBarBg

    C: int ImGui_Col_MenuBarBg()
    EEL2: int extension_api("ImGui_Col_MenuBarBg")
    Lua: integer retval = reaper.ImGui_Col_MenuBarBg()
    Python: int ImGui_Col_MenuBarBg()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ModalWindowDimBg

    C: int ImGui_Col_ModalWindowDimBg()
    EEL2: int extension_api("ImGui_Col_ModalWindowDimBg")
    Lua: integer retval = reaper.ImGui_Col_ModalWindowDimBg()
    Python: int ImGui_Col_ModalWindowDimBg()

    Darken/colorize entire screen behind a modal window, when one is active.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_NavHighlight

    C: int ImGui_Col_NavHighlight()
    EEL2: int extension_api("ImGui_Col_NavHighlight")
    Lua: integer retval = reaper.ImGui_Col_NavHighlight()
    Python: int ImGui_Col_NavHighlight()

    Gamepad/keyboard: current highlighted item.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_NavWindowingDimBg

    C: int ImGui_Col_NavWindowingDimBg()
    EEL2: int extension_api("ImGui_Col_NavWindowingDimBg")
    Lua: integer retval = reaper.ImGui_Col_NavWindowingDimBg()
    Python: int ImGui_Col_NavWindowingDimBg()

    Darken/colorize entire screen behind the CTRL+TAB window list, when active.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_NavWindowingHighlight

    C: int ImGui_Col_NavWindowingHighlight()
    EEL2: int extension_api("ImGui_Col_NavWindowingHighlight")
    Lua: integer retval = reaper.ImGui_Col_NavWindowingHighlight()
    Python: int ImGui_Col_NavWindowingHighlight()

    Highlight window when using CTRL+TAB.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_PlotHistogram

    C: int ImGui_Col_PlotHistogram()
    EEL2: int extension_api("ImGui_Col_PlotHistogram")
    Lua: integer retval = reaper.ImGui_Col_PlotHistogram()
    Python: int ImGui_Col_PlotHistogram()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_PlotHistogramHovered

    C: int ImGui_Col_PlotHistogramHovered()
    EEL2: int extension_api("ImGui_Col_PlotHistogramHovered")
    Lua: integer retval = reaper.ImGui_Col_PlotHistogramHovered()
    Python: int ImGui_Col_PlotHistogramHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_PlotLines

    C: int ImGui_Col_PlotLines()
    EEL2: int extension_api("ImGui_Col_PlotLines")
    Lua: integer retval = reaper.ImGui_Col_PlotLines()
    Python: int ImGui_Col_PlotLines()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_PlotLinesHovered

    C: int ImGui_Col_PlotLinesHovered()
    EEL2: int extension_api("ImGui_Col_PlotLinesHovered")
    Lua: integer retval = reaper.ImGui_Col_PlotLinesHovered()
    Python: int ImGui_Col_PlotLinesHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_PopupBg

    C: int ImGui_Col_PopupBg()
    EEL2: int extension_api("ImGui_Col_PopupBg")
    Lua: integer retval = reaper.ImGui_Col_PopupBg()
    Python: int ImGui_Col_PopupBg()

    Background of popups, menus, tooltips windows.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ResizeGrip

    C: int ImGui_Col_ResizeGrip()
    EEL2: int extension_api("ImGui_Col_ResizeGrip")
    Lua: integer retval = reaper.ImGui_Col_ResizeGrip()
    Python: int ImGui_Col_ResizeGrip()

    Resize grip in lower-right and lower-left corners of windows.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ResizeGripActive

    C: int ImGui_Col_ResizeGripActive()
    EEL2: int extension_api("ImGui_Col_ResizeGripActive")
    Lua: integer retval = reaper.ImGui_Col_ResizeGripActive()
    Python: int ImGui_Col_ResizeGripActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ResizeGripHovered

    C: int ImGui_Col_ResizeGripHovered()
    EEL2: int extension_api("ImGui_Col_ResizeGripHovered")
    Lua: integer retval = reaper.ImGui_Col_ResizeGripHovered()
    Python: int ImGui_Col_ResizeGripHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ScrollbarBg

    C: int ImGui_Col_ScrollbarBg()
    EEL2: int extension_api("ImGui_Col_ScrollbarBg")
    Lua: integer retval = reaper.ImGui_Col_ScrollbarBg()
    Python: int ImGui_Col_ScrollbarBg()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ScrollbarGrab

    C: int ImGui_Col_ScrollbarGrab()
    EEL2: int extension_api("ImGui_Col_ScrollbarGrab")
    Lua: integer retval = reaper.ImGui_Col_ScrollbarGrab()
    Python: int ImGui_Col_ScrollbarGrab()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ScrollbarGrabActive

    C: int ImGui_Col_ScrollbarGrabActive()
    EEL2: int extension_api("ImGui_Col_ScrollbarGrabActive")
    Lua: integer retval = reaper.ImGui_Col_ScrollbarGrabActive()
    Python: int ImGui_Col_ScrollbarGrabActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_ScrollbarGrabHovered

    C: int ImGui_Col_ScrollbarGrabHovered()
    EEL2: int extension_api("ImGui_Col_ScrollbarGrabHovered")
    Lua: integer retval = reaper.ImGui_Col_ScrollbarGrabHovered()
    Python: int ImGui_Col_ScrollbarGrabHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_Separator

    C: int ImGui_Col_Separator()
    EEL2: int extension_api("ImGui_Col_Separator")
    Lua: integer retval = reaper.ImGui_Col_Separator()
    Python: int ImGui_Col_Separator()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_SeparatorActive

    C: int ImGui_Col_SeparatorActive()
    EEL2: int extension_api("ImGui_Col_SeparatorActive")
    Lua: integer retval = reaper.ImGui_Col_SeparatorActive()
    Python: int ImGui_Col_SeparatorActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_SeparatorHovered

    C: int ImGui_Col_SeparatorHovered()
    EEL2: int extension_api("ImGui_Col_SeparatorHovered")
    Lua: integer retval = reaper.ImGui_Col_SeparatorHovered()
    Python: int ImGui_Col_SeparatorHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_SliderGrab

    C: int ImGui_Col_SliderGrab()
    EEL2: int extension_api("ImGui_Col_SliderGrab")
    Lua: integer retval = reaper.ImGui_Col_SliderGrab()
    Python: int ImGui_Col_SliderGrab()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_SliderGrabActive

    C: int ImGui_Col_SliderGrabActive()
    EEL2: int extension_api("ImGui_Col_SliderGrabActive")
    Lua: integer retval = reaper.ImGui_Col_SliderGrabActive()
    Python: int ImGui_Col_SliderGrabActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_Tab

    C: int ImGui_Col_Tab()
    EEL2: int extension_api("ImGui_Col_Tab")
    Lua: integer retval = reaper.ImGui_Col_Tab()
    Python: int ImGui_Col_Tab()

    TabItem in a TabBar

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TabActive

    C: int ImGui_Col_TabActive()
    EEL2: int extension_api("ImGui_Col_TabActive")
    Lua: integer retval = reaper.ImGui_Col_TabActive()
    Python: int ImGui_Col_TabActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TabHovered

    C: int ImGui_Col_TabHovered()
    EEL2: int extension_api("ImGui_Col_TabHovered")
    Lua: integer retval = reaper.ImGui_Col_TabHovered()
    Python: int ImGui_Col_TabHovered()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TabUnfocused

    C: int ImGui_Col_TabUnfocused()
    EEL2: int extension_api("ImGui_Col_TabUnfocused")
    Lua: integer retval = reaper.ImGui_Col_TabUnfocused()
    Python: int ImGui_Col_TabUnfocused()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TabUnfocusedActive

    C: int ImGui_Col_TabUnfocusedActive()
    EEL2: int extension_api("ImGui_Col_TabUnfocusedActive")
    Lua: integer retval = reaper.ImGui_Col_TabUnfocusedActive()
    Python: int ImGui_Col_TabUnfocusedActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TableBorderLight

    C: int ImGui_Col_TableBorderLight()
    EEL2: int extension_api("ImGui_Col_TableBorderLight")
    Lua: integer retval = reaper.ImGui_Col_TableBorderLight()
    Python: int ImGui_Col_TableBorderLight()

    Table inner borders (prefer using Alpha=1.0 here).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TableBorderStrong

    C: int ImGui_Col_TableBorderStrong()
    EEL2: int extension_api("ImGui_Col_TableBorderStrong")
    Lua: integer retval = reaper.ImGui_Col_TableBorderStrong()
    Python: int ImGui_Col_TableBorderStrong()

    Table outer and header borders (prefer using Alpha=1.0 here).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TableHeaderBg

    C: int ImGui_Col_TableHeaderBg()
    EEL2: int extension_api("ImGui_Col_TableHeaderBg")
    Lua: integer retval = reaper.ImGui_Col_TableHeaderBg()
    Python: int ImGui_Col_TableHeaderBg()

    Table header background.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TableRowBg

    C: int ImGui_Col_TableRowBg()
    EEL2: int extension_api("ImGui_Col_TableRowBg")
    Lua: integer retval = reaper.ImGui_Col_TableRowBg()
    Python: int ImGui_Col_TableRowBg()

    Table row background (even rows).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TableRowBgAlt

    C: int ImGui_Col_TableRowBgAlt()
    EEL2: int extension_api("ImGui_Col_TableRowBgAlt")
    Lua: integer retval = reaper.ImGui_Col_TableRowBgAlt()
    Python: int ImGui_Col_TableRowBgAlt()

    Table row background (odd rows).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_Text

    C: int ImGui_Col_Text()
    EEL2: int extension_api("ImGui_Col_Text")
    Lua: integer retval = reaper.ImGui_Col_Text()
    Python: int ImGui_Col_Text()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TextDisabled

    C: int ImGui_Col_TextDisabled()
    EEL2: int extension_api("ImGui_Col_TextDisabled")
    Lua: integer retval = reaper.ImGui_Col_TextDisabled()
    Python: int ImGui_Col_TextDisabled()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TextSelectedBg

    C: int ImGui_Col_TextSelectedBg()
    EEL2: int extension_api("ImGui_Col_TextSelectedBg")
    Lua: integer retval = reaper.ImGui_Col_TextSelectedBg()
    Python: int ImGui_Col_TextSelectedBg()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TitleBg

    C: int ImGui_Col_TitleBg()
    EEL2: int extension_api("ImGui_Col_TitleBg")
    Lua: integer retval = reaper.ImGui_Col_TitleBg()
    Python: int ImGui_Col_TitleBg()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TitleBgActive

    C: int ImGui_Col_TitleBgActive()
    EEL2: int extension_api("ImGui_Col_TitleBgActive")
    Lua: integer retval = reaper.ImGui_Col_TitleBgActive()
    Python: int ImGui_Col_TitleBgActive()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_TitleBgCollapsed

    C: int ImGui_Col_TitleBgCollapsed()
    EEL2: int extension_api("ImGui_Col_TitleBgCollapsed")
    Lua: integer retval = reaper.ImGui_Col_TitleBgCollapsed()
    Python: int ImGui_Col_TitleBgCollapsed()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Col_WindowBg

    C: int ImGui_Col_WindowBg()
    EEL2: int extension_api("ImGui_Col_WindowBg")
    Lua: integer retval = reaper.ImGui_Col_WindowBg()
    Python: int ImGui_Col_WindowBg()

    Background of normal windows. See also WindowFlags_NoBackground.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CollapsingHeader

    C: bool ImGui_CollapsingHeader(ImGui_Context* ctx, const char* label, bool* p_visibleInOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_CollapsingHeader", ImGui_Context ctx, "label", bool &p_visible, optional int flagsIn)
    Lua: boolean retval, boolean p_visible = reaper.ImGui_CollapsingHeader(ImGui_Context ctx, string label, boolean p_visible, optional integer flagsIn)
    Python: bool ImGui_CollapsingHeader(ImGui_Context* ctx, const char* label, bool* p_visibleInOut, int* flagsInOptional)

    Returns true when opened but do not indent nor push into the ID stack
    (because of the TreeNodeFlags_NoTreePushOnOpen flag).

    This is basically the same as calling TreeNode(label, TreeNodeFlags_CollapsingHeader).
    You can remove the _NoTreePushOnOpen flag if you want behavior closer to normal
    TreeNode.

    When 'visible' is provided: if 'true' display an additional small close button
    on upper right of the header which will set the bool to false when clicked,
    if 'false' don't display the header.

    Returnvalues:
    boolean retval
    boolean p_visible

    Parameters:
    ImGui_Context ctx
    string label
    boolean p_visible
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorButton

    C: bool ImGui_ColorButton(ImGui_Context* ctx, const char* desc_id, int col_rgba, int* flagsInOptional, double* size_wInOptional, double* size_hInOptional)
    EEL2: bool extension_api("ImGui_ColorButton", ImGui_Context ctx, "desc_id", int col_rgba, optional int flagsIn, optional size_wIn, optional size_hIn)
    Lua: boolean reaper.ImGui_ColorButton(ImGui_Context ctx, string desc_id, integer col_rgba, optional integer flagsIn, optional number size_wIn, optional number size_hIn)
    Python: bool ImGui_ColorButton(ImGui_Context* ctx, const char* desc_id, int col_rgba, int* flagsInOptional, double* size_wInOptional, double* size_hInOptional)

    Display a color square/button, hover for details, return true when pressed.
    Color is in 0xRRGGBBAA or, if ColorEditFlags_NoAlpha is set, 0xRRGGBB.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string desc_id
    integer col_rgba
    optional integer flagsIn
    optional number size_wIn
    optional number size_hIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorConvertDouble4ToU32

    C: int ImGui_ColorConvertDouble4ToU32(double r, double g, double b, double a)
    EEL2: int extension_api("ImGui_ColorConvertDouble4ToU32", r, g, b, a)
    Lua: integer retval = reaper.ImGui_ColorConvertDouble4ToU32(number r, number g, number b, number a)
    Python: int ImGui_ColorConvertDouble4ToU32(double r, double g, double b, double a)

    Pack 0..1 RGBA values into a 32-bit integer (0xRRGGBBAA).

    Returnvalues:
    integer retval

    Parameters:
    number r
    number g
    number b
    number a


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorConvertHSVtoRGB

    C: void ImGui_ColorConvertHSVtoRGB(double h, double s, double v, double* rOut, double* gOut, double* bOut)
    EEL2: extension_api("ImGui_ColorConvertHSVtoRGB", h, s, v, &r, &g, &b)
    Lua: number r, number g, number b = reaper.ImGui_ColorConvertHSVtoRGB(number h, number s, number v)
    Python: void ImGui_ColorConvertHSVtoRGB(double h, double s, double v, double* rOut, double* gOut, double* bOut)

    Convert HSV values (0..1) into RGB (0..1).

    Returnvalues:
    number r
    number g
    number b

    Parameters:
    number h
    number s
    number v


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorConvertNative

    C: int ImGui_ColorConvertNative(int rgb)
    EEL2: int extension_api("ImGui_ColorConvertNative", int rgb)
    Lua: integer retval = reaper.ImGui_ColorConvertNative(integer rgb)
    Python: int ImGui_ColorConvertNative(int rgb)

    Convert a native color coming from REAPER or 0xRRGGBB to native.
    This swaps the red and blue channels on Windows.

    Returnvalues:
    integer retval

    Parameters:
    integer rgb


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorConvertRGBtoHSV

    C: void ImGui_ColorConvertRGBtoHSV(double r, double g, double b, double* hOut, double* sOut, double* vOut)
    EEL2: extension_api("ImGui_ColorConvertRGBtoHSV", r, g, b, &h, &s, &v)
    Lua: number h, number s, number v = reaper.ImGui_ColorConvertRGBtoHSV(number r, number g, number b)
    Python: void ImGui_ColorConvertRGBtoHSV(double r, double g, double b, double* hOut, double* sOut, double* vOut)

    Convert RGB values (0..1) into HSV (0..1).

    Returnvalues:
    number h
    number s
    number v

    Parameters:
    number r
    number g
    number b


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorConvertU32ToDouble4

    C: void ImGui_ColorConvertU32ToDouble4(int rgba, double* rOut, double* gOut, double* bOut, double* aOut)
    EEL2: extension_api("ImGui_ColorConvertU32ToDouble4", int rgba, &r, &g, &b, &a)
    Lua: number r, number g, number b, number a = reaper.ImGui_ColorConvertU32ToDouble4(integer rgba)
    Python: void ImGui_ColorConvertU32ToDouble4(int rgba, double* rOut, double* gOut, double* bOut, double* aOut)

    Unpack a 32-bit integer (0xRRGGBBAA) into separate RGBA values (0..1).

    Returnvalues:
    number r
    number g
    number b
    number a

    Parameters:
    integer rgba


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEdit3

    C: bool ImGui_ColorEdit3(ImGui_Context* ctx, const char* label, int* col_rgbInOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_ColorEdit3", ImGui_Context ctx, "label", int &col_rgb, optional int flagsIn)
    Lua: boolean retval, integer col_rgb = reaper.ImGui_ColorEdit3(ImGui_Context ctx, string label, integer col_rgb, optional integer flagsIn)
    Python: bool ImGui_ColorEdit3(ImGui_Context* ctx, const char* label, int* col_rgbInOut, int* flagsInOptional)

    Color is in 0xXXRRGGBB. XX is ignored and will not be modified.

    Returnvalues:
    boolean retval
    integer col_rgb

    Parameters:
    ImGui_Context ctx
    string label
    integer col_rgb
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEdit4

    C: bool ImGui_ColorEdit4(ImGui_Context* ctx, const char* label, int* col_rgbaInOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_ColorEdit4", ImGui_Context ctx, "label", int &col_rgba, optional int flagsIn)
    Lua: boolean retval, integer col_rgba = reaper.ImGui_ColorEdit4(ImGui_Context ctx, string label, integer col_rgba, optional integer flagsIn)
    Python: bool ImGui_ColorEdit4(ImGui_Context* ctx, const char* label, int* col_rgbaInOut, int* flagsInOptional)

    Color is in 0xRRGGBBAA or, if ColorEditFlags_NoAlpha is set, 0xXXRRGGBB
    (XX is ignored and will not be modified).

    Returnvalues:
    boolean retval
    integer col_rgba

    Parameters:
    ImGui_Context ctx
    string label
    integer col_rgba
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_AlphaBar

    C: int ImGui_ColorEditFlags_AlphaBar()
    EEL2: int extension_api("ImGui_ColorEditFlags_AlphaBar")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_AlphaBar()
    Python: int ImGui_ColorEditFlags_AlphaBar()

    ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_AlphaPreview

    C: int ImGui_ColorEditFlags_AlphaPreview()
    EEL2: int extension_api("ImGui_ColorEditFlags_AlphaPreview")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_AlphaPreview()
    Python: int ImGui_ColorEditFlags_AlphaPreview()

    ColorEdit, ColorPicker, ColorButton: display preview as a transparent color
       over a checkerboard, instead of opaque.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_AlphaPreviewHalf

    C: int ImGui_ColorEditFlags_AlphaPreviewHalf()
    EEL2: int extension_api("ImGui_ColorEditFlags_AlphaPreviewHalf")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_AlphaPreviewHalf()
    Python: int ImGui_ColorEditFlags_AlphaPreviewHalf()

    ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard,
       instead of opaque.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_DisplayHSV

    C: int ImGui_ColorEditFlags_DisplayHSV()
    EEL2: int extension_api("ImGui_ColorEditFlags_DisplayHSV")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_DisplayHSV()
    Python: int ImGui_ColorEditFlags_DisplayHSV()

    ColorEdit: override _display_ type to HSV. ColorPicker:
       select any combination using one or more of RGB/HSV/Hex.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_DisplayHex

    C: int ImGui_ColorEditFlags_DisplayHex()
    EEL2: int extension_api("ImGui_ColorEditFlags_DisplayHex")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_DisplayHex()
    Python: int ImGui_ColorEditFlags_DisplayHex()

    ColorEdit: override _display_ type to Hex. ColorPicker:
       select any combination using one or more of RGB/HSV/Hex.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_DisplayRGB

    C: int ImGui_ColorEditFlags_DisplayRGB()
    EEL2: int extension_api("ImGui_ColorEditFlags_DisplayRGB")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_DisplayRGB()
    Python: int ImGui_ColorEditFlags_DisplayRGB()

    ColorEdit: override _display_ type to RGB. ColorPicker:
       select any combination using one or more of RGB/HSV/Hex.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_Float

    C: int ImGui_ColorEditFlags_Float()
    EEL2: int extension_api("ImGui_ColorEditFlags_Float")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_Float()
    Python: int ImGui_ColorEditFlags_Float()

    ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0..1.0
       floats instead of 0..255 integers. No round-trip of value via integers.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_InputHSV

    C: int ImGui_ColorEditFlags_InputHSV()
    EEL2: int extension_api("ImGui_ColorEditFlags_InputHSV")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_InputHSV()
    Python: int ImGui_ColorEditFlags_InputHSV()

    ColorEdit, ColorPicker: input and output data in HSV format.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_InputRGB

    C: int ImGui_ColorEditFlags_InputRGB()
    EEL2: int extension_api("ImGui_ColorEditFlags_InputRGB")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_InputRGB()
    Python: int ImGui_ColorEditFlags_InputRGB()

    ColorEdit, ColorPicker: input and output data in RGB format.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoAlpha

    C: int ImGui_ColorEditFlags_NoAlpha()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoAlpha")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoAlpha()
    Python: int ImGui_ColorEditFlags_NoAlpha()

    ColorEdit, ColorPicker, ColorButton: ignore Alpha component
      (will only read 3 components from the input pointer).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoBorder

    C: int ImGui_ColorEditFlags_NoBorder()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoBorder")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoBorder()
    Python: int ImGui_ColorEditFlags_NoBorder()

    ColorButton: disable border (which is enforced by default).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoDragDrop

    C: int ImGui_ColorEditFlags_NoDragDrop()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoDragDrop")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoDragDrop()
    Python: int ImGui_ColorEditFlags_NoDragDrop()

    ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoInputs

    C: int ImGui_ColorEditFlags_NoInputs()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoInputs")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoInputs()
    Python: int ImGui_ColorEditFlags_NoInputs()

    ColorEdit, ColorPicker: disable inputs sliders/text widgets
       (e.g. to show only the small preview color square).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoLabel

    C: int ImGui_ColorEditFlags_NoLabel()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoLabel")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoLabel()
    Python: int ImGui_ColorEditFlags_NoLabel()

    ColorEdit, ColorPicker: disable display of inline text label
       (the label is still forwarded to the tooltip and picker).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoOptions

    C: int ImGui_ColorEditFlags_NoOptions()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoOptions")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoOptions()
    Python: int ImGui_ColorEditFlags_NoOptions()

    ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoPicker

    C: int ImGui_ColorEditFlags_NoPicker()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoPicker")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoPicker()
    Python: int ImGui_ColorEditFlags_NoPicker()

    ColorEdit: disable picker when clicking on color square.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoSidePreview

    C: int ImGui_ColorEditFlags_NoSidePreview()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoSidePreview")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoSidePreview()
    Python: int ImGui_ColorEditFlags_NoSidePreview()

    ColorPicker: disable bigger color preview on right side of the picker,
       use small color square preview instead.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoSmallPreview

    C: int ImGui_ColorEditFlags_NoSmallPreview()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoSmallPreview")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoSmallPreview()
    Python: int ImGui_ColorEditFlags_NoSmallPreview()

    ColorEdit, ColorPicker: disable color square preview next to the inputs.
       (e.g. to show only the inputs).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_NoTooltip

    C: int ImGui_ColorEditFlags_NoTooltip()
    EEL2: int extension_api("ImGui_ColorEditFlags_NoTooltip")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_NoTooltip()
    Python: int ImGui_ColorEditFlags_NoTooltip()

    ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_None

    C: int ImGui_ColorEditFlags_None()
    EEL2: int extension_api("ImGui_ColorEditFlags_None")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_None()
    Python: int ImGui_ColorEditFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_PickerHueBar

    C: int ImGui_ColorEditFlags_PickerHueBar()
    EEL2: int extension_api("ImGui_ColorEditFlags_PickerHueBar")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_PickerHueBar()
    Python: int ImGui_ColorEditFlags_PickerHueBar()

    ColorPicker: bar for Hue, rectangle for Sat/Value.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_PickerHueWheel

    C: int ImGui_ColorEditFlags_PickerHueWheel()
    EEL2: int extension_api("ImGui_ColorEditFlags_PickerHueWheel")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_PickerHueWheel()
    Python: int ImGui_ColorEditFlags_PickerHueWheel()

    ColorPicker: wheel for Hue, triangle for Sat/Value.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorEditFlags_Uint8

    C: int ImGui_ColorEditFlags_Uint8()
    EEL2: int extension_api("ImGui_ColorEditFlags_Uint8")
    Lua: integer retval = reaper.ImGui_ColorEditFlags_Uint8()
    Python: int ImGui_ColorEditFlags_Uint8()

    ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorPicker3

    C: bool ImGui_ColorPicker3(ImGui_Context* ctx, const char* label, int* col_rgbInOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_ColorPicker3", ImGui_Context ctx, "label", int &col_rgb, optional int flagsIn)
    Lua: boolean retval, integer col_rgb = reaper.ImGui_ColorPicker3(ImGui_Context ctx, string label, integer col_rgb, optional integer flagsIn)
    Python: bool ImGui_ColorPicker3(ImGui_Context* ctx, const char* label, int* col_rgbInOut, int* flagsInOptional)

    Color is in 0xXXRRGGBB. XX is ignored and will not be modified.

    Returnvalues:
    boolean retval
    integer col_rgb

    Parameters:
    ImGui_Context ctx
    string label
    integer col_rgb
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ColorPicker4

    C: bool ImGui_ColorPicker4(ImGui_Context* ctx, const char* label, int* col_rgbaInOut, int* flagsInOptional, int* ref_colInOptional)
    EEL2: bool extension_api("ImGui_ColorPicker4", ImGui_Context ctx, "label", int &col_rgba, optional int flagsIn, optional int ref_colIn)
    Lua: boolean retval, integer col_rgba = reaper.ImGui_ColorPicker4(ImGui_Context ctx, string label, integer col_rgba, optional integer flagsIn, optional integer ref_colIn)
    Python: bool ImGui_ColorPicker4(ImGui_Context* ctx, const char* label, int* col_rgbaInOut, int* flagsInOptional, int* ref_colInOptional)



    Returnvalues:
    boolean retval
    integer col_rgba

    Parameters:
    ImGui_Context ctx
    string label
    integer col_rgba
    optional integer flagsIn
    optional integer ref_colIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Combo

    C: bool ImGui_Combo(ImGui_Context* ctx, const char* label, int* current_itemInOut, const char* items, int items_sz, int* popup_max_height_in_itemsInOptional)
    EEL2: bool extension_api("ImGui_Combo", ImGui_Context ctx, "label", int &current_item, "items", optional int popup_max_height_in_itemsIn)
    Lua: boolean retval, integer current_item = reaper.ImGui_Combo(ImGui_Context ctx, string label, integer current_item, string items, optional integer popup_max_height_in_itemsIn)
    Python: bool ImGui_Combo(ImGui_Context* ctx, const char* label, int* current_itemInOut, const char* items, int items_sz, int* popup_max_height_in_itemsInOptional)

    Helper over BeginCombo/EndCombo for convenience purpose. Each item must be
    null-terminated (requires REAPER v6.44 or newer for EEL and Lua).

    Returnvalues:
    boolean retval
    integer current_item

    Parameters:
    ImGui_Context ctx
    string label
    integer current_item
    string items
    optional integer popup_max_height_in_itemsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_HeightLarge

    C: int ImGui_ComboFlags_HeightLarge()
    EEL2: int extension_api("ImGui_ComboFlags_HeightLarge")
    Lua: integer retval = reaper.ImGui_ComboFlags_HeightLarge()
    Python: int ImGui_ComboFlags_HeightLarge()

    Max ~20 items visible.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_HeightLargest

    C: int ImGui_ComboFlags_HeightLargest()
    EEL2: int extension_api("ImGui_ComboFlags_HeightLargest")
    Lua: integer retval = reaper.ImGui_ComboFlags_HeightLargest()
    Python: int ImGui_ComboFlags_HeightLargest()

    As many fitting items as possible.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_HeightRegular

    C: int ImGui_ComboFlags_HeightRegular()
    EEL2: int extension_api("ImGui_ComboFlags_HeightRegular")
    Lua: integer retval = reaper.ImGui_ComboFlags_HeightRegular()
    Python: int ImGui_ComboFlags_HeightRegular()

    Max ~8 items visible (default).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_HeightSmall

    C: int ImGui_ComboFlags_HeightSmall()
    EEL2: int extension_api("ImGui_ComboFlags_HeightSmall")
    Lua: integer retval = reaper.ImGui_ComboFlags_HeightSmall()
    Python: int ImGui_ComboFlags_HeightSmall()

    Max ~4 items visible. Tip: If you want your combo popup to be a specific size
    you can use SetNextWindowSizeConstraints prior to calling BeginCombo.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_NoArrowButton

    C: int ImGui_ComboFlags_NoArrowButton()
    EEL2: int extension_api("ImGui_ComboFlags_NoArrowButton")
    Lua: integer retval = reaper.ImGui_ComboFlags_NoArrowButton()
    Python: int ImGui_ComboFlags_NoArrowButton()

    Display on the preview box without the square arrow button.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_NoPreview

    C: int ImGui_ComboFlags_NoPreview()
    EEL2: int extension_api("ImGui_ComboFlags_NoPreview")
    Lua: integer retval = reaper.ImGui_ComboFlags_NoPreview()
    Python: int ImGui_ComboFlags_NoPreview()

    Display only a square arrow button.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_None

    C: int ImGui_ComboFlags_None()
    EEL2: int extension_api("ImGui_ComboFlags_None")
    Lua: integer retval = reaper.ImGui_ComboFlags_None()
    Python: int ImGui_ComboFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ComboFlags_PopupAlignLeft

    C: int ImGui_ComboFlags_PopupAlignLeft()
    EEL2: int extension_api("ImGui_ComboFlags_PopupAlignLeft")
    Lua: integer retval = reaper.ImGui_ComboFlags_PopupAlignLeft()
    Python: int ImGui_ComboFlags_PopupAlignLeft()

    Align the popup toward the left by default.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Cond_Always

    C: int ImGui_Cond_Always()
    EEL2: int extension_api("ImGui_Cond_Always")
    Lua: integer retval = reaper.ImGui_Cond_Always()
    Python: int ImGui_Cond_Always()

    No condition (always set the variable).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Cond_Appearing

    C: int ImGui_Cond_Appearing()
    EEL2: int extension_api("ImGui_Cond_Appearing")
    Lua: integer retval = reaper.ImGui_Cond_Appearing()
    Python: int ImGui_Cond_Appearing()

    Set the variable if the object/window is appearing after being
       hidden/inactive (or the first time).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Cond_FirstUseEver

    C: int ImGui_Cond_FirstUseEver()
    EEL2: int extension_api("ImGui_Cond_FirstUseEver")
    Lua: integer retval = reaper.ImGui_Cond_FirstUseEver()
    Python: int ImGui_Cond_FirstUseEver()

    Set the variable if the object/window has no persistently saved data
       (no entry in .ini file).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Cond_Once

    C: int ImGui_Cond_Once()
    EEL2: int extension_api("ImGui_Cond_Once")
    Lua: integer retval = reaper.ImGui_Cond_Once()
    Python: int ImGui_Cond_Once()

    Set the variable once per runtime session (only the first call will succeed).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_DockingEnable

    C: int ImGui_ConfigFlags_DockingEnable()
    EEL2: int extension_api("ImGui_ConfigFlags_DockingEnable")
    Lua: integer retval = reaper.ImGui_ConfigFlags_DockingEnable()
    Python: int ImGui_ConfigFlags_DockingEnable()

    [BETA] Enable docking functionality.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_NavEnableKeyboard

    C: int ImGui_ConfigFlags_NavEnableKeyboard()
    EEL2: int extension_api("ImGui_ConfigFlags_NavEnableKeyboard")
    Lua: integer retval = reaper.ImGui_ConfigFlags_NavEnableKeyboard()
    Python: int ImGui_ConfigFlags_NavEnableKeyboard()

    Master keyboard navigation enable flag.
    Enable full Tabbing + directional arrows + space/enter to activate.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_NavEnableSetMousePos

    C: int ImGui_ConfigFlags_NavEnableSetMousePos()
    EEL2: int extension_api("ImGui_ConfigFlags_NavEnableSetMousePos")
    Lua: integer retval = reaper.ImGui_ConfigFlags_NavEnableSetMousePos()
    Python: int ImGui_ConfigFlags_NavEnableSetMousePos()

    Instruct navigation to move the mouse cursor.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_NavNoCaptureKeyboard

    C: int ImGui_ConfigFlags_NavNoCaptureKeyboard()
    EEL2: int extension_api("ImGui_ConfigFlags_NavNoCaptureKeyboard")
    Lua: integer retval = reaper.ImGui_ConfigFlags_NavNoCaptureKeyboard()
    Python: int ImGui_ConfigFlags_NavNoCaptureKeyboard()

    Instruct navigation to not capture global keyboard input when
       ConfigFlags_NavEnableKeyboard is set (see SetNextFrameWantCaptureKeyboard).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_NoMouse

    C: int ImGui_ConfigFlags_NoMouse()
    EEL2: int extension_api("ImGui_ConfigFlags_NoMouse")
    Lua: integer retval = reaper.ImGui_ConfigFlags_NoMouse()
    Python: int ImGui_ConfigFlags_NoMouse()

    Instruct imgui to ignore mouse position/buttons.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_NoMouseCursorChange

    C: int ImGui_ConfigFlags_NoMouseCursorChange()
    EEL2: int extension_api("ImGui_ConfigFlags_NoMouseCursorChange")
    Lua: integer retval = reaper.ImGui_ConfigFlags_NoMouseCursorChange()
    Python: int ImGui_ConfigFlags_NoMouseCursorChange()

    Instruct backend to not alter mouse cursor shape and visibility.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_NoSavedSettings

    C: int ImGui_ConfigFlags_NoSavedSettings()
    EEL2: int extension_api("ImGui_ConfigFlags_NoSavedSettings")
    Lua: integer retval = reaper.ImGui_ConfigFlags_NoSavedSettings()
    Python: int ImGui_ConfigFlags_NoSavedSettings()

    Disable state restoration and persistence for the whole context.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigFlags_None

    C: int ImGui_ConfigFlags_None()
    EEL2: int extension_api("ImGui_ConfigFlags_None")
    Lua: integer retval = reaper.ImGui_ConfigFlags_None()
    Python: int ImGui_ConfigFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_DebugBeginReturnValueLoop

    C: int ImGui_ConfigVar_DebugBeginReturnValueLoop()
    EEL2: int extension_api("ImGui_ConfigVar_DebugBeginReturnValueLoop")
    Lua: integer retval = reaper.ImGui_ConfigVar_DebugBeginReturnValueLoop()
    Python: int ImGui_ConfigVar_DebugBeginReturnValueLoop()

    Some calls to Begin()/BeginChild() will return false.
    Will cycle through window depths then repeat. Suggested use: add
    "SetConfigVar(ConfigVar_DebugBeginReturnValueLoop(), GetKeyMods() == Mod_Shift"
    in your main loop then occasionally press SHIFT.
    Windows should be flickering while running.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_DebugBeginReturnValueOnce

    C: int ImGui_ConfigVar_DebugBeginReturnValueOnce()
    EEL2: int extension_api("ImGui_ConfigVar_DebugBeginReturnValueOnce")
    Lua: integer retval = reaper.ImGui_ConfigVar_DebugBeginReturnValueOnce()
    Python: int ImGui_ConfigVar_DebugBeginReturnValueOnce()

    First-time calls to Begin()/BeginChild() will return false.
    **Needs to be set at context startup time** if you don't want to miss windows.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_DockingNoSplit

    C: int ImGui_ConfigVar_DockingNoSplit()
    EEL2: int extension_api("ImGui_ConfigVar_DockingNoSplit")
    Lua: integer retval = reaper.ImGui_ConfigVar_DockingNoSplit()
    Python: int ImGui_ConfigVar_DockingNoSplit()

    Simplified docking mode: disable window splitting, so docking is limited to
       merging multiple windows together into tab-bars.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_DockingTransparentPayload

    C: int ImGui_ConfigVar_DockingTransparentPayload()
    EEL2: int extension_api("ImGui_ConfigVar_DockingTransparentPayload")
    Lua: integer retval = reaper.ImGui_ConfigVar_DockingTransparentPayload()
    Python: int ImGui_ConfigVar_DockingTransparentPayload()

    Make window or viewport transparent when docking and only display docking
       boxes on the target viewport.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_DockingWithShift

    C: int ImGui_ConfigVar_DockingWithShift()
    EEL2: int extension_api("ImGui_ConfigVar_DockingWithShift")
    Lua: integer retval = reaper.ImGui_ConfigVar_DockingWithShift()
    Python: int ImGui_ConfigVar_DockingWithShift()

    Enable docking with holding Shift key
       (reduce visual noise, allows dropping in wider space

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_DragClickToInputText

    C: int ImGui_ConfigVar_DragClickToInputText()
    EEL2: int extension_api("ImGui_ConfigVar_DragClickToInputText")
    Lua: integer retval = reaper.ImGui_ConfigVar_DragClickToInputText()
    Python: int ImGui_ConfigVar_DragClickToInputText()

    Enable turning Drag* widgets into text input with a simple mouse
       click-release (without moving). Not desirable on devices without a keyboard.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_Flags

    C: int ImGui_ConfigVar_Flags()
    EEL2: int extension_api("ImGui_ConfigVar_Flags")
    Lua: integer retval = reaper.ImGui_ConfigVar_Flags()
    Python: int ImGui_ConfigVar_Flags()

    ConfigFlags_*

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_HoverDelayNormal

    C: int ImGui_ConfigVar_HoverDelayNormal()
    EEL2: int extension_api("ImGui_ConfigVar_HoverDelayNormal")
    Lua: integer retval = reaper.ImGui_ConfigVar_HoverDelayNormal()
    Python: int ImGui_ConfigVar_HoverDelayNormal()

    Delay on hovering before IsItemHovered(HoveredFlags_DelayNormal) returns true.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_HoverDelayShort

    C: int ImGui_ConfigVar_HoverDelayShort()
    EEL2: int extension_api("ImGui_ConfigVar_HoverDelayShort")
    Lua: integer retval = reaper.ImGui_ConfigVar_HoverDelayShort()
    Python: int ImGui_ConfigVar_HoverDelayShort()

    Delay on hovering before IsItemHovered(HoveredFlags_DelayShort) returns true.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_InputTextCursorBlink

    C: int ImGui_ConfigVar_InputTextCursorBlink()
    EEL2: int extension_api("ImGui_ConfigVar_InputTextCursorBlink")
    Lua: integer retval = reaper.ImGui_ConfigVar_InputTextCursorBlink()
    Python: int ImGui_ConfigVar_InputTextCursorBlink()

    Enable blinking cursor (optional as some users consider it to be distracting).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_InputTextEnterKeepActive

    C: int ImGui_ConfigVar_InputTextEnterKeepActive()
    EEL2: int extension_api("ImGui_ConfigVar_InputTextEnterKeepActive")
    Lua: integer retval = reaper.ImGui_ConfigVar_InputTextEnterKeepActive()
    Python: int ImGui_ConfigVar_InputTextEnterKeepActive()

    Pressing Enter will keep item active and select contents (single-line only).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_InputTrickleEventQueue

    C: int ImGui_ConfigVar_InputTrickleEventQueue()
    EEL2: int extension_api("ImGui_ConfigVar_InputTrickleEventQueue")
    Lua: integer retval = reaper.ImGui_ConfigVar_InputTrickleEventQueue()
    Python: int ImGui_ConfigVar_InputTrickleEventQueue()

    Enable input queue trickling: some types of events submitted during the same
       frame (e.g. button down + up) will be spread over multiple frames, improving
       interactions with low framerates.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_KeyRepeatDelay

    C: int ImGui_ConfigVar_KeyRepeatDelay()
    EEL2: int extension_api("ImGui_ConfigVar_KeyRepeatDelay")
    Lua: integer retval = reaper.ImGui_ConfigVar_KeyRepeatDelay()
    Python: int ImGui_ConfigVar_KeyRepeatDelay()

    When holding a key/button, time before it starts repeating, in seconds
       (for buttons in Repeat mode, etc.).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_KeyRepeatRate

    C: int ImGui_ConfigVar_KeyRepeatRate()
    EEL2: int extension_api("ImGui_ConfigVar_KeyRepeatRate")
    Lua: integer retval = reaper.ImGui_ConfigVar_KeyRepeatRate()
    Python: int ImGui_ConfigVar_KeyRepeatRate()

    When holding a key/button, rate at which it repeats, in seconds.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_MacOSXBehaviors

    C: int ImGui_ConfigVar_MacOSXBehaviors()
    EEL2: int extension_api("ImGui_ConfigVar_MacOSXBehaviors")
    Lua: integer retval = reaper.ImGui_ConfigVar_MacOSXBehaviors()
    Python: int ImGui_ConfigVar_MacOSXBehaviors()

    OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts
       using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows
       instead of Home/End, Double click selects by word instead of selecting whole
       text, Multi-selection in lists uses Cmd/Super instead of Ctrl.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_MouseDoubleClickMaxDist

    C: int ImGui_ConfigVar_MouseDoubleClickMaxDist()
    EEL2: int extension_api("ImGui_ConfigVar_MouseDoubleClickMaxDist")
    Lua: integer retval = reaper.ImGui_ConfigVar_MouseDoubleClickMaxDist()
    Python: int ImGui_ConfigVar_MouseDoubleClickMaxDist()

    Distance threshold to stay in to validate a double-click, in pixels.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_MouseDoubleClickTime

    C: int ImGui_ConfigVar_MouseDoubleClickTime()
    EEL2: int extension_api("ImGui_ConfigVar_MouseDoubleClickTime")
    Lua: integer retval = reaper.ImGui_ConfigVar_MouseDoubleClickTime()
    Python: int ImGui_ConfigVar_MouseDoubleClickTime()

    Time for a double-click, in seconds.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_MouseDragThreshold

    C: int ImGui_ConfigVar_MouseDragThreshold()
    EEL2: int extension_api("ImGui_ConfigVar_MouseDragThreshold")
    Lua: integer retval = reaper.ImGui_ConfigVar_MouseDragThreshold()
    Python: int ImGui_ConfigVar_MouseDragThreshold()

    Distance threshold before considering we are dragging.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_ViewportsNoDecoration

    C: int ImGui_ConfigVar_ViewportsNoDecoration()
    EEL2: int extension_api("ImGui_ConfigVar_ViewportsNoDecoration")
    Lua: integer retval = reaper.ImGui_ConfigVar_ViewportsNoDecoration()
    Python: int ImGui_ConfigVar_ViewportsNoDecoration()

    Disable default OS window decoration. Enabling decoration can create
       subsequent issues at OS levels (e.g. minimum window size).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_WindowsMoveFromTitleBarOnly

    C: int ImGui_ConfigVar_WindowsMoveFromTitleBarOnly()
    EEL2: int extension_api("ImGui_ConfigVar_WindowsMoveFromTitleBarOnly")
    Lua: integer retval = reaper.ImGui_ConfigVar_WindowsMoveFromTitleBarOnly()
    Python: int ImGui_ConfigVar_WindowsMoveFromTitleBarOnly()

    Enable allowing to move windows only when clicking on their title bar.
       Does not apply to windows without a title bar.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ConfigVar_WindowsResizeFromEdges

    C: int ImGui_ConfigVar_WindowsResizeFromEdges()
    EEL2: int extension_api("ImGui_ConfigVar_WindowsResizeFromEdges")
    Lua: integer retval = reaper.ImGui_ConfigVar_WindowsResizeFromEdges()
    Python: int ImGui_ConfigVar_WindowsResizeFromEdges()

    Enable resizing of windows from their edges and from the lower-left corner.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateContext

    C: ImGui_Context* ImGui_CreateContext(const char* label, int* config_flagsInOptional)
    EEL2: ImGui_Context extension_api("ImGui_CreateContext", "label", optional int config_flagsIn)
    Lua: ImGui_Context reaper.ImGui_CreateContext(string label, optional integer config_flagsIn)
    Python: ImGui_Context* ImGui_CreateContext(const char* label, int* config_flagsInOptional)

    Create a new ReaImGui context.
    The context will remain valid as long as it is used in each defer cycle.

    The label is used for the tab text when windows are docked in REAPER
    and also as a unique identifier for storing settings.

    Returnvalues:
    ImGui_Context

    Parameters:
    string label
    optional integer config_flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateDrawListSplitter

    C: ImGui_DrawListSplitter* ImGui_CreateDrawListSplitter(ImGui_DrawList* draw_list)
    EEL2: ImGui_DrawListSplitter extension_api("ImGui_CreateDrawListSplitter", ImGui_DrawList draw_list)
    Lua: ImGui_DrawListSplitter reaper.ImGui_CreateDrawListSplitter(ImGui_DrawList draw_list)
    Python: ImGui_DrawListSplitter* ImGui_CreateDrawListSplitter(ImGui_DrawList* draw_list)



    Returnvalues:
    ImGui_DrawListSplitter

    Parameters:
    ImGui_DrawList draw_list


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateFont

    C: ImGui_Font* ImGui_CreateFont(const char* family_or_file, int size, int* flagsInOptional)
    EEL2: ImGui_Font extension_api("ImGui_CreateFont", "family_or_file", int size, optional int flagsIn)
    Lua: ImGui_Font reaper.ImGui_CreateFont(string family_or_file, integer size, optional integer flagsIn)
    Python: ImGui_Font* ImGui_CreateFont(const char* family_or_file, int size, int* flagsInOptional)

    Load a font matching a font family name or from a font file.
    The font will remain valid while it's attached to a context. See Attach.

    The family name can be an installed font or one of the generic fonts:
    sans-serif, serif, monospace, cursive, fantasy.

    If 'family_or_file' specifies a path to a font file (contains a / or \):
    - The first byte of 'flags' is used as the font index within the file
    - The font styles in 'flags' are simulated by the font renderer

    Returnvalues:
    ImGui_Font

    Parameters:
    string family_or_file
    integer size
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateFunctionFromEEL

    C: ImGui_Function* ImGui_CreateFunctionFromEEL(const char* code)
    EEL2: ImGui_Function extension_api("ImGui_CreateFunctionFromEEL", "code")
    Lua: ImGui_Function reaper.ImGui_CreateFunctionFromEEL(string code)
    Python: ImGui_Function* ImGui_CreateFunctionFromEEL(const char* code)

    Compile an EEL program.

    Standard EEL [math](https://www.reaper.fm/sdk/js/basiccode.php#js_basicfunc)
    and [string](https://www.reaper.fm/sdk/js/strings.php#js_string_funcs)
    functions are available in addition to callback-specific functions
    (see InputTextCallback_*).

    Returnvalues:
    ImGui_Function

    Parameters:
    string code


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateImage

    C: ImGui_Image* ImGui_CreateImage(const char* file, int* flagsInOptional)
    EEL2: ImGui_Image extension_api("ImGui_CreateImage", "file", optional int flagsIn)
    Lua: ImGui_Image reaper.ImGui_CreateImage(string file, optional integer flagsIn)
    Python: ImGui_Image* ImGui_CreateImage(const char* file, int* flagsInOptional)

    The returned object is valid as long as it is used in each defer cycle
    unless attached to a context (see Attach).

    ('flags' currently unused and reserved for future expansion)

    Returnvalues:
    ImGui_Image

    Parameters:
    string file
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateImageFromMem

    C: ImGui_Image* ImGui_CreateImageFromMem(const char* data, int data_sz)
    EEL2: ImGui_Image extension_api("ImGui_CreateImageFromMem", "data")
    Lua: ImGui_Image reaper.ImGui_CreateImageFromMem(string data)
    Python: ImGui_Image* ImGui_CreateImageFromMem(const char* data, int data_sz)

    Requires REAPER v6.44 or newer for EEL and Lua. Load from a file using
    CreateImage or explicitely specify data_sz if supporting older versions.

    Returnvalues:
    ImGui_Image

    Parameters:
    string data


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateImageSet

    C: ImGui_ImageSet* ImGui_CreateImageSet()
    EEL2: ImGui_ImageSet extension_api("ImGui_CreateImageSet")
    Lua: ImGui_ImageSet = reaper.ImGui_CreateImageSet()
    Python: ImGui_ImageSet* ImGui_CreateImageSet()



    Returnvalues:
    ImGui_ImageSet


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateListClipper

    C: ImGui_ListClipper* ImGui_CreateListClipper(ImGui_Context* ctx)
    EEL2: ImGui_ListClipper extension_api("ImGui_CreateListClipper", ImGui_Context ctx)
    Lua: ImGui_ListClipper reaper.ImGui_CreateListClipper(ImGui_Context ctx)
    Python: ImGui_ListClipper* ImGui_CreateListClipper(ImGui_Context* ctx)

    The returned clipper object is only valid for the given context and is valid
    as long as it is used in each defer cycle unless attached (see Attach).

    Returnvalues:
    ImGui_ListClipper

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_CreateTextFilter

    C: ImGui_TextFilter* ImGui_CreateTextFilter(const char* default_filterInOptional)
    EEL2: ImGui_TextFilter extension_api("ImGui_CreateTextFilter", optional "default_filterIn")
    Lua: ImGui_TextFilter reaper.ImGui_CreateTextFilter(optional string default_filterIn)
    Python: ImGui_TextFilter* ImGui_CreateTextFilter(const char* default_filterInOptional)

    Valid while used every frame unless attached to a context (see Attach).

    Returnvalues:
    ImGui_TextFilter

    Parameters:
    optional string default_filterIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DebugTextEncoding

    C: void ImGui_DebugTextEncoding(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_DebugTextEncoding", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_DebugTextEncoding(ImGui_Context ctx, string text)
    Python: void ImGui_DebugTextEncoding(ImGui_Context* ctx, const char* text)

    Helper tool to diagnose between text encoding issues and font loading issues.
    Pass your UTF-8 string and verify that there are correct.

    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DestroyContext

    C: void ImGui_DestroyContext(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_DestroyContext", ImGui_Context ctx)
    Lua: reaper.ImGui_DestroyContext(ImGui_Context ctx)
    Python: void ImGui_DestroyContext(ImGui_Context* ctx)

    Free the resources used by a context.

    Calling this function is usually not required as all ReaImGui objects are
    automatically garbage-collected when unused.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Detach

    C: void ImGui_Detach(ImGui_Context* ctx, ImGui_Resource* obj)
    EEL2: extension_api("ImGui_Detach", ImGui_Context ctx, ImGui_Resource obj)
    Lua: reaper.ImGui_Detach(ImGui_Context ctx, ImGui_Resource obj)
    Python: void ImGui_Detach(ImGui_Context* ctx, ImGui_Resource* obj)

    Unlink the object's lifetime. Unattached objects are automatically destroyed
    when left unused. You may check whether an object has been destroyed using
    ValidatePtr.

    Parameters:
    ImGui_Context ctxImGui_Resource obj


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Dir_Down

    C: int ImGui_Dir_Down()
    EEL2: int extension_api("ImGui_Dir_Down")
    Lua: integer retval = reaper.ImGui_Dir_Down()
    Python: int ImGui_Dir_Down()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Dir_Left

    C: int ImGui_Dir_Left()
    EEL2: int extension_api("ImGui_Dir_Left")
    Lua: integer retval = reaper.ImGui_Dir_Left()
    Python: int ImGui_Dir_Left()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Dir_None

    C: int ImGui_Dir_None()
    EEL2: int extension_api("ImGui_Dir_None")
    Lua: integer retval = reaper.ImGui_Dir_None()
    Python: int ImGui_Dir_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Dir_Right

    C: int ImGui_Dir_Right()
    EEL2: int extension_api("ImGui_Dir_Right")
    Lua: integer retval = reaper.ImGui_Dir_Right()
    Python: int ImGui_Dir_Right()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Dir_Up

    C: int ImGui_Dir_Up()
    EEL2: int extension_api("ImGui_Dir_Up")
    Lua: integer retval = reaper.ImGui_Dir_Up()
    Python: int ImGui_Dir_Up()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDouble

    C: bool ImGui_DragDouble(ImGui_Context* ctx, const char* label, double* vInOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragDouble", ImGui_Context ctx, "label", &v, optional v_speedIn, optional v_minIn, optional v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v = reaper.ImGui_DragDouble(ImGui_Context ctx, string label, number v, optional number v_speedIn, optional number v_minIn, optional number v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragDouble(ImGui_Context* ctx, const char* label, double* vInOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v

    Parameters:
    ImGui_Context ctx
    string label
    number v
    optional number v_speedIn
    optional number v_minIn
    optional number v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDouble2

    C: bool ImGui_DragDouble2(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragDouble2", ImGui_Context ctx, "label", &v1, &v2, optional v_speedIn, optional v_minIn, optional v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2 = reaper.ImGui_DragDouble2(ImGui_Context ctx, string label, number v1, number v2, optional number v_speedIn, optional number v_minIn, optional number v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragDouble2(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    optional number v_speedIn
    optional number v_minIn
    optional number v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDouble3

    C: bool ImGui_DragDouble3(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragDouble3", ImGui_Context ctx, "label", &v1, &v2, &v3, optional v_speedIn, optional v_minIn, optional v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2, number v3 = reaper.ImGui_DragDouble3(ImGui_Context ctx, string label, number v1, number v2, number v3, optional number v_speedIn, optional number v_minIn, optional number v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragDouble3(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2
    number v3

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    number v3
    optional number v_speedIn
    optional number v_minIn
    optional number v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDouble4

    C: bool ImGui_DragDouble4(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v4InOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragDouble4", ImGui_Context ctx, "label", &v1, &v2, &v3, &v4, optional v_speedIn, optional v_minIn, optional v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2, number v3, number v4 = reaper.ImGui_DragDouble4(ImGui_Context ctx, string label, number v1, number v2, number v3, number v4, optional number v_speedIn, optional number v_minIn, optional number v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragDouble4(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v4InOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2
    number v3
    number v4

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    number v3
    number v4
    optional number v_speedIn
    optional number v_minIn
    optional number v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDoubleN

    C: bool ImGui_DragDoubleN(ImGui_Context* ctx, const char* label, reaper_array* values, double* speedInOptional, double* minInOptional, double* maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragDoubleN", ImGui_Context ctx, "label", reaper.array values, optional speedIn, optional minIn, optional maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean reaper.ImGui_DragDoubleN(ImGui_Context ctx, string labelreaper_array values, optional number speedIn, optional number minIn, optional number maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragDoubleN(ImGui_Context* ctx, const char* label, reaper_array* values, double* speedInOptional, double* minInOptional, double* maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string labelreaper_array values
    optional number speedIn
    optional number minIn
    optional number maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_AcceptBeforeDelivery

    C: int ImGui_DragDropFlags_AcceptBeforeDelivery()
    EEL2: int extension_api("ImGui_DragDropFlags_AcceptBeforeDelivery")
    Lua: integer retval = reaper.ImGui_DragDropFlags_AcceptBeforeDelivery()
    Python: int ImGui_DragDropFlags_AcceptBeforeDelivery()

    AcceptDragDropPayload will returns true even before the mouse button is
       released. You can then check GetDragDropPayload/is_delivery to test if the
       payload needs to be delivered.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_AcceptNoDrawDefaultRect

    C: int ImGui_DragDropFlags_AcceptNoDrawDefaultRect()
    EEL2: int extension_api("ImGui_DragDropFlags_AcceptNoDrawDefaultRect")
    Lua: integer retval = reaper.ImGui_DragDropFlags_AcceptNoDrawDefaultRect()
    Python: int ImGui_DragDropFlags_AcceptNoDrawDefaultRect()

    Do not draw the default highlight rectangle when hovering over target.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_AcceptNoPreviewTooltip

    C: int ImGui_DragDropFlags_AcceptNoPreviewTooltip()
    EEL2: int extension_api("ImGui_DragDropFlags_AcceptNoPreviewTooltip")
    Lua: integer retval = reaper.ImGui_DragDropFlags_AcceptNoPreviewTooltip()
    Python: int ImGui_DragDropFlags_AcceptNoPreviewTooltip()

    Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_AcceptPeekOnly

    C: int ImGui_DragDropFlags_AcceptPeekOnly()
    EEL2: int extension_api("ImGui_DragDropFlags_AcceptPeekOnly")
    Lua: integer retval = reaper.ImGui_DragDropFlags_AcceptPeekOnly()
    Python: int ImGui_DragDropFlags_AcceptPeekOnly()

    For peeking ahead and inspecting the payload before delivery.
       Equivalent to DragDropFlags_AcceptBeforeDelivery |
       DragDropFlags_AcceptNoDrawDefaultRect.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_None

    C: int ImGui_DragDropFlags_None()
    EEL2: int extension_api("ImGui_DragDropFlags_None")
    Lua: integer retval = reaper.ImGui_DragDropFlags_None()
    Python: int ImGui_DragDropFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_SourceAllowNullID

    C: int ImGui_DragDropFlags_SourceAllowNullID()
    EEL2: int extension_api("ImGui_DragDropFlags_SourceAllowNullID")
    Lua: integer retval = reaper.ImGui_DragDropFlags_SourceAllowNullID()
    Python: int ImGui_DragDropFlags_SourceAllowNullID()

    Allow items such as Text, Image that have no unique identifier to be used as
       drag source, by manufacturing a temporary identifier based on their
       window-relative position. This is extremely unusual within the dear imgui
       ecosystem and so we made it explicit.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_SourceAutoExpirePayload

    C: int ImGui_DragDropFlags_SourceAutoExpirePayload()
    EEL2: int extension_api("ImGui_DragDropFlags_SourceAutoExpirePayload")
    Lua: integer retval = reaper.ImGui_DragDropFlags_SourceAutoExpirePayload()
    Python: int ImGui_DragDropFlags_SourceAutoExpirePayload()

    Automatically expire the payload if the source cease to be submitted
       (otherwise payloads are persisting while being dragged).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_SourceExtern

    C: int ImGui_DragDropFlags_SourceExtern()
    EEL2: int extension_api("ImGui_DragDropFlags_SourceExtern")
    Lua: integer retval = reaper.ImGui_DragDropFlags_SourceExtern()
    Python: int ImGui_DragDropFlags_SourceExtern()

    External source (from outside of dear imgui), won't attempt to read current
       item/window info. Will always return true.
       Only one Extern source can be active simultaneously.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_SourceNoDisableHover

    C: int ImGui_DragDropFlags_SourceNoDisableHover()
    EEL2: int extension_api("ImGui_DragDropFlags_SourceNoDisableHover")
    Lua: integer retval = reaper.ImGui_DragDropFlags_SourceNoDisableHover()
    Python: int ImGui_DragDropFlags_SourceNoDisableHover()

    By default, when dragging we clear data so that IsItemHovered will return
       false, to avoid subsequent user code submitting tooltips. This flag disables
       this behavior so you can still call IsItemHovered on the source item.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_SourceNoHoldToOpenOthers

    C: int ImGui_DragDropFlags_SourceNoHoldToOpenOthers()
    EEL2: int extension_api("ImGui_DragDropFlags_SourceNoHoldToOpenOthers")
    Lua: integer retval = reaper.ImGui_DragDropFlags_SourceNoHoldToOpenOthers()
    Python: int ImGui_DragDropFlags_SourceNoHoldToOpenOthers()

    Disable the behavior that allows to open tree nodes and collapsing header by
       holding over them while dragging a source item.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragDropFlags_SourceNoPreviewTooltip

    C: int ImGui_DragDropFlags_SourceNoPreviewTooltip()
    EEL2: int extension_api("ImGui_DragDropFlags_SourceNoPreviewTooltip")
    Lua: integer retval = reaper.ImGui_DragDropFlags_SourceNoPreviewTooltip()
    Python: int ImGui_DragDropFlags_SourceNoPreviewTooltip()

    By default, a successful call to BeginDragDropSource opens a tooltip so you
       can display a preview or description of the source contents.
       This flag disables this behavior.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragFloatRange2

    C: bool ImGui_DragFloatRange2(ImGui_Context* ctx, const char* label, double* v_current_minInOut, double* v_current_maxInOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, const char* format_maxInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragFloatRange2", ImGui_Context ctx, "label", &v_current_min, &v_current_max, optional v_speedIn, optional v_minIn, optional v_maxIn, optional "formatIn", optional "format_maxIn", optional int flagsIn)
    Lua: boolean retval, number v_current_min, number v_current_max = reaper.ImGui_DragFloatRange2(ImGui_Context ctx, string label, number v_current_min, number v_current_max, optional number v_speedIn, optional number v_minIn, optional number v_maxIn, optional string formatIn, optional string format_maxIn, optional integer flagsIn)
    Python: bool ImGui_DragFloatRange2(ImGui_Context* ctx, const char* label, double* v_current_minInOut, double* v_current_maxInOut, double* v_speedInOptional, double* v_minInOptional, double* v_maxInOptional, const char* formatInOptional, const char* format_maxInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v_current_min
    number v_current_max

    Parameters:
    ImGui_Context ctx
    string label
    number v_current_min
    number v_current_max
    optional number v_speedIn
    optional number v_minIn
    optional number v_maxIn
    optional string formatIn
    optional string format_maxIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragInt

    C: bool ImGui_DragInt(ImGui_Context* ctx, const char* label, int* vInOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragInt", ImGui_Context ctx, "label", int &v, optional v_speedIn, optional int v_minIn, optional int v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v = reaper.ImGui_DragInt(ImGui_Context ctx, string label, integer v, optional number v_speedIn, optional integer v_minIn, optional integer v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragInt(ImGui_Context* ctx, const char* label, int* vInOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v

    Parameters:
    ImGui_Context ctx
    string label
    integer v
    optional number v_speedIn
    optional integer v_minIn
    optional integer v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragInt2

    C: bool ImGui_DragInt2(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragInt2", ImGui_Context ctx, "label", int &v1, int &v2, optional v_speedIn, optional int v_minIn, optional int v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2 = reaper.ImGui_DragInt2(ImGui_Context ctx, string label, integer v1, integer v2, optional number v_speedIn, optional integer v_minIn, optional integer v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragInt2(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    optional number v_speedIn
    optional integer v_minIn
    optional integer v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragInt3

    C: bool ImGui_DragInt3(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragInt3", ImGui_Context ctx, "label", int &v1, int &v2, int &v3, optional v_speedIn, optional int v_minIn, optional int v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2, integer v3 = reaper.ImGui_DragInt3(ImGui_Context ctx, string label, integer v1, integer v2, integer v3, optional number v_speedIn, optional integer v_minIn, optional integer v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragInt3(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2
    integer v3

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    integer v3
    optional number v_speedIn
    optional integer v_minIn
    optional integer v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragInt4

    C: bool ImGui_DragInt4(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* v4InOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragInt4", ImGui_Context ctx, "label", int &v1, int &v2, int &v3, int &v4, optional v_speedIn, optional int v_minIn, optional int v_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2, integer v3, integer v4 = reaper.ImGui_DragInt4(ImGui_Context ctx, string label, integer v1, integer v2, integer v3, integer v4, optional number v_speedIn, optional integer v_minIn, optional integer v_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_DragInt4(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* v4InOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2
    integer v3
    integer v4

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    integer v3
    integer v4
    optional number v_speedIn
    optional integer v_minIn
    optional integer v_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DragIntRange2

    C: bool ImGui_DragIntRange2(ImGui_Context* ctx, const char* label, int* v_current_minInOut, int* v_current_maxInOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, const char* format_maxInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_DragIntRange2", ImGui_Context ctx, "label", int &v_current_min, int &v_current_max, optional v_speedIn, optional int v_minIn, optional int v_maxIn, optional "formatIn", optional "format_maxIn", optional int flagsIn)
    Lua: boolean retval, integer v_current_min, integer v_current_max = reaper.ImGui_DragIntRange2(ImGui_Context ctx, string label, integer v_current_min, integer v_current_max, optional number v_speedIn, optional integer v_minIn, optional integer v_maxIn, optional string formatIn, optional string format_maxIn, optional integer flagsIn)
    Python: bool ImGui_DragIntRange2(ImGui_Context* ctx, const char* label, int* v_current_minInOut, int* v_current_maxInOut, double* v_speedInOptional, int* v_minInOptional, int* v_maxInOptional, const char* formatInOptional, const char* format_maxInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v_current_min
    integer v_current_max

    Parameters:
    ImGui_Context ctx
    string label
    integer v_current_min
    integer v_current_max
    optional number v_speedIn
    optional integer v_minIn
    optional integer v_maxIn
    optional string formatIn
    optional string format_maxIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_Closed

    C: int ImGui_DrawFlags_Closed()
    EEL2: int extension_api("ImGui_DrawFlags_Closed")
    Lua: integer retval = reaper.ImGui_DrawFlags_Closed()
    Python: int ImGui_DrawFlags_Closed()

    DrawList_PathStroke, DrawList_AddPolyline: specify that shape should be
       closed (Important: this is always == 1 for legacy reason).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_None

    C: int ImGui_DrawFlags_None()
    EEL2: int extension_api("ImGui_DrawFlags_None")
    Lua: integer retval = reaper.ImGui_DrawFlags_None()
    Python: int ImGui_DrawFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersAll

    C: int ImGui_DrawFlags_RoundCornersAll()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersAll")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersAll()
    Python: int ImGui_DrawFlags_RoundCornersAll()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersBottom

    C: int ImGui_DrawFlags_RoundCornersBottom()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersBottom")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersBottom()
    Python: int ImGui_DrawFlags_RoundCornersBottom()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersBottomLeft

    C: int ImGui_DrawFlags_RoundCornersBottomLeft()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersBottomLeft")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersBottomLeft()
    Python: int ImGui_DrawFlags_RoundCornersBottomLeft()

    DrawList_AddRect, DrawList_AddRectFilled, DrawList_PathRect: enable rounding
       bottom-left corner only (when rounding > 0.0, we default to all corners).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersBottomRight

    C: int ImGui_DrawFlags_RoundCornersBottomRight()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersBottomRight")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersBottomRight()
    Python: int ImGui_DrawFlags_RoundCornersBottomRight()

    DrawList_AddRect, DrawList_AddRectFilled, DrawList_PathRect: enable rounding
       bottom-right corner only (when rounding > 0.0, we default to all corners).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersLeft

    C: int ImGui_DrawFlags_RoundCornersLeft()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersLeft")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersLeft()
    Python: int ImGui_DrawFlags_RoundCornersLeft()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersNone

    C: int ImGui_DrawFlags_RoundCornersNone()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersNone")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersNone()
    Python: int ImGui_DrawFlags_RoundCornersNone()

    DrawList_AddRect, DrawList_AddRectFilled, DrawList_PathRect: disable rounding
       on all corners (when rounding > 0.0). This is NOT zero, NOT an implicit flag!.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersRight

    C: int ImGui_DrawFlags_RoundCornersRight()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersRight")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersRight()
    Python: int ImGui_DrawFlags_RoundCornersRight()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersTop

    C: int ImGui_DrawFlags_RoundCornersTop()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersTop")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersTop()
    Python: int ImGui_DrawFlags_RoundCornersTop()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersTopLeft

    C: int ImGui_DrawFlags_RoundCornersTopLeft()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersTopLeft")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersTopLeft()
    Python: int ImGui_DrawFlags_RoundCornersTopLeft()

    DrawList_AddRect, DrawList_AddRectFilled, DrawList_PathRect: enable rounding
       top-left corner only (when rounding > 0.0, we default to all corners).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawFlags_RoundCornersTopRight

    C: int ImGui_DrawFlags_RoundCornersTopRight()
    EEL2: int extension_api("ImGui_DrawFlags_RoundCornersTopRight")
    Lua: integer retval = reaper.ImGui_DrawFlags_RoundCornersTopRight()
    Python: int ImGui_DrawFlags_RoundCornersTopRight()

    DrawList_AddRect, DrawList_AddRectFilled, DrawList_PathRect: enable rounding
       top-right corner only (when rounding > 0.0, we default to all corners).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawListSplitter_Clear

    C: void ImGui_DrawListSplitter_Clear(ImGui_DrawListSplitter* splitter)
    EEL2: extension_api("ImGui_DrawListSplitter_Clear", ImGui_DrawListSplitter splitter)
    Lua: reaper.ImGui_DrawListSplitter_Clear(ImGui_DrawListSplitter splitter)
    Python: void ImGui_DrawListSplitter_Clear(ImGui_DrawListSplitter* splitter)



    Parameters:
    ImGui_DrawListSplitter splitter


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawListSplitter_Merge

    C: void ImGui_DrawListSplitter_Merge(ImGui_DrawListSplitter* splitter)
    EEL2: extension_api("ImGui_DrawListSplitter_Merge", ImGui_DrawListSplitter splitter)
    Lua: reaper.ImGui_DrawListSplitter_Merge(ImGui_DrawListSplitter splitter)
    Python: void ImGui_DrawListSplitter_Merge(ImGui_DrawListSplitter* splitter)



    Parameters:
    ImGui_DrawListSplitter splitter


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawListSplitter_SetCurrentChannel

    C: void ImGui_DrawListSplitter_SetCurrentChannel(ImGui_DrawListSplitter* splitter, int channel_idx)
    EEL2: extension_api("ImGui_DrawListSplitter_SetCurrentChannel", ImGui_DrawListSplitter splitter, int channel_idx)
    Lua: reaper.ImGui_DrawListSplitter_SetCurrentChannel(ImGui_DrawListSplitter splitter, integer channel_idx)
    Python: void ImGui_DrawListSplitter_SetCurrentChannel(ImGui_DrawListSplitter* splitter, int channel_idx)



    Parameters:
    ImGui_DrawListSplitter splitter
    integer channel_idx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawListSplitter_Split

    C: void ImGui_DrawListSplitter_Split(ImGui_DrawListSplitter* splitter, int count)
    EEL2: extension_api("ImGui_DrawListSplitter_Split", ImGui_DrawListSplitter splitter, int count)
    Lua: reaper.ImGui_DrawListSplitter_Split(ImGui_DrawListSplitter splitter, integer count)
    Python: void ImGui_DrawListSplitter_Split(ImGui_DrawListSplitter* splitter, int count)



    Parameters:
    ImGui_DrawListSplitter splitter
    integer count


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddBezierCubic

    C: void ImGui_DrawList_AddBezierCubic(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int col_rgba, double thickness, int* num_segmentsInOptional)
    EEL2: extension_api("ImGui_DrawList_AddBezierCubic", ImGui_DrawList draw_list, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, p4_x, p4_y, int col_rgba, thickness, optional int num_segmentsIn)
    Lua: reaper.ImGui_DrawList_AddBezierCubic(ImGui_DrawList draw_list, number p1_x, number p1_y, number p2_x, number p2_y, number p3_x, number p3_y, number p4_x, number p4_y, integer col_rgba, number thickness, optional integer num_segmentsIn)
    Python: void ImGui_DrawList_AddBezierCubic(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int col_rgba, double thickness, int* num_segmentsInOptional)

    Cubic Bezier (4 control points)

    Parameters:
    ImGui_DrawList draw_list
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    number p4_x
    number p4_y
    integer col_rgba
    number thickness
    optional integer num_segmentsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddBezierQuadratic

    C: void ImGui_DrawList_AddBezierQuadratic(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, int col_rgba, double thickness, int* num_segmentsInOptional)
    EEL2: extension_api("ImGui_DrawList_AddBezierQuadratic", ImGui_DrawList draw_list, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, int col_rgba, thickness, optional int num_segmentsIn)
    Lua: reaper.ImGui_DrawList_AddBezierQuadratic(ImGui_DrawList draw_list, number p1_x, number p1_y, number p2_x, number p2_y, number p3_x, number p3_y, integer col_rgba, number thickness, optional integer num_segmentsIn)
    Python: void ImGui_DrawList_AddBezierQuadratic(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, int col_rgba, double thickness, int* num_segmentsInOptional)

    Quadratic Bezier (3 control points)

    Parameters:
    ImGui_DrawList draw_list
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    integer col_rgba
    number thickness
    optional integer num_segmentsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddCircle

    C: void ImGui_DrawList_AddCircle(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int* num_segmentsInOptional, double* thicknessInOptional)
    EEL2: extension_api("ImGui_DrawList_AddCircle", ImGui_DrawList draw_list, center_x, center_y, radius, int col_rgba, optional int num_segmentsIn, optional thicknessIn)
    Lua: reaper.ImGui_DrawList_AddCircle(ImGui_DrawList draw_list, number center_x, number center_y, number radius, integer col_rgba, optional integer num_segmentsIn, optional number thicknessIn)
    Python: void ImGui_DrawList_AddCircle(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int* num_segmentsInOptional, double* thicknessInOptional)

    Use "num_segments == 0" to automatically calculate tessellation (preferred).

    Parameters:
    ImGui_DrawList draw_list
    number center_x
    number center_y
    number radius
    integer col_rgba
    optional integer num_segmentsIn
    optional number thicknessIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddCircleFilled

    C: void ImGui_DrawList_AddCircleFilled(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int* num_segmentsInOptional)
    EEL2: extension_api("ImGui_DrawList_AddCircleFilled", ImGui_DrawList draw_list, center_x, center_y, radius, int col_rgba, optional int num_segmentsIn)
    Lua: reaper.ImGui_DrawList_AddCircleFilled(ImGui_DrawList draw_list, number center_x, number center_y, number radius, integer col_rgba, optional integer num_segmentsIn)
    Python: void ImGui_DrawList_AddCircleFilled(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int* num_segmentsInOptional)

    Use "num_segments == 0" to automatically calculate tessellation (preferred).

    Parameters:
    ImGui_DrawList draw_list
    number center_x
    number center_y
    number radius
    integer col_rgba
    optional integer num_segmentsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddConvexPolyFilled

    C: void ImGui_DrawList_AddConvexPolyFilled(ImGui_DrawList* draw_list, reaper_array* points, int col_rgba)
    EEL2: extension_api("ImGui_DrawList_AddConvexPolyFilled", ImGui_DrawList draw_list, reaper.array points, int col_rgba)
    Lua: reaper.ImGui_DrawList_AddConvexPolyFilled(ImGui_DrawList draw_listreaper_array points, integer col_rgba)
    Python: void ImGui_DrawList_AddConvexPolyFilled(ImGui_DrawList* draw_list, reaper_array* points, int col_rgba)

    Note: Anti-aliased filling requires points to be in clockwise order.

    Parameters:
    ImGui_DrawList draw_listreaper_array points
    integer col_rgba


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddImage

    C: void ImGui_DrawList_AddImage(ImGui_DrawList* draw_list, ImGui_Image* img, double p_min_x, double p_min_y, double p_max_x, double p_max_y, double* uv_min_xInOptional, double* uv_min_yInOptional, double* uv_max_xInOptional, double* uv_max_yInOptional, int* col_rgbaInOptional)
    EEL2: extension_api("ImGui_DrawList_AddImage", ImGui_DrawList draw_list, ImGui_Image img, p_min_x, p_min_y, p_max_x, p_max_y, optional uv_min_xIn, optional uv_min_yIn, optional uv_max_xIn, optional uv_max_yIn, optional int col_rgbaIn)
    Lua: reaper.ImGui_DrawList_AddImage(ImGui_DrawList draw_listImGui_Image img, number p_min_x, number p_min_y, number p_max_x, number p_max_y, optional number uv_min_xIn, optional number uv_min_yIn, optional number uv_max_xIn, optional number uv_max_yIn, optional integer col_rgbaIn)
    Python: void ImGui_DrawList_AddImage(ImGui_DrawList* draw_list, ImGui_Image* img, double p_min_x, double p_min_y, double p_max_x, double p_max_y, double* uv_min_xInOptional, double* uv_min_yInOptional, double* uv_max_xInOptional, double* uv_max_yInOptional, int* col_rgbaInOptional)



    Parameters:
    ImGui_DrawList draw_listImGui_Image img
    number p_min_x
    number p_min_y
    number p_max_x
    number p_max_y
    optional number uv_min_xIn
    optional number uv_min_yIn
    optional number uv_max_xIn
    optional number uv_max_yIn
    optional integer col_rgbaIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddImageQuad

    C: void ImGui_DrawList_AddImageQuad(ImGui_DrawList* draw_list, ImGui_Image* img, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, double* uv1_xInOptional, double* uv1_yInOptional, double* uv2_xInOptional, double* uv2_yInOptional, double* uv3_xInOptional, double* uv3_yInOptional, double* uv4_xInOptional, double* uv4_yInOptional, int* col_rgbaInOptional)
    EEL2: extension_api("ImGui_DrawList_AddImageQuad", ImGui_DrawList draw_list, ImGui_Image img, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, p4_x, p4_y, optional uv1_xIn, optional uv1_yIn, optional uv2_xIn, optional uv2_yIn, optional uv3_xIn, optional uv3_yIn, optional uv4_xIn, optional uv4_yIn, optional int col_rgbaIn)
    Lua: reaper.ImGui_DrawList_AddImageQuad(ImGui_DrawList draw_listImGui_Image img, number p1_x, number p1_y, number p2_x, number p2_y, number p3_x, number p3_y, number p4_x, number p4_y, optional number uv1_xIn, optional number uv1_yIn, optional number uv2_xIn, optional number uv2_yIn, optional number uv3_xIn, optional number uv3_yIn, optional number uv4_xIn, optional number uv4_yIn, optional integer col_rgbaIn)
    Python: void ImGui_DrawList_AddImageQuad(ImGui_DrawList* draw_list, ImGui_Image* img, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, double* uv1_xInOptional, double* uv1_yInOptional, double* uv2_xInOptional, double* uv2_yInOptional, double* uv3_xInOptional, double* uv3_yInOptional, double* uv4_xInOptional, double* uv4_yInOptional, int* col_rgbaInOptional)



    Parameters:
    ImGui_DrawList draw_listImGui_Image img
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    number p4_x
    number p4_y
    optional number uv1_xIn
    optional number uv1_yIn
    optional number uv2_xIn
    optional number uv2_yIn
    optional number uv3_xIn
    optional number uv3_yIn
    optional number uv4_xIn
    optional number uv4_yIn
    optional integer col_rgbaIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddImageRounded

    C: void ImGui_DrawList_AddImageRounded(ImGui_DrawList* draw_list, ImGui_Image* img, double p_min_x, double p_min_y, double p_max_x, double p_max_y, double uv_min_x, double uv_min_y, double uv_max_x, double uv_max_y, int col_rgba, double rounding, int* flagsInOptional)
    EEL2: extension_api("ImGui_DrawList_AddImageRounded", ImGui_DrawList draw_list, ImGui_Image img, p_min_x, p_min_y, p_max_x, p_max_y, uv_min_x, uv_min_y, uv_max_x, uv_max_y, int col_rgba, rounding, optional int flagsIn)
    Lua: reaper.ImGui_DrawList_AddImageRounded(ImGui_DrawList draw_listImGui_Image img, number p_min_x, number p_min_y, number p_max_x, number p_max_y, number uv_min_x, number uv_min_y, number uv_max_x, number uv_max_y, integer col_rgba, number rounding, optional integer flagsIn)
    Python: void ImGui_DrawList_AddImageRounded(ImGui_DrawList* draw_list, ImGui_Image* img, double p_min_x, double p_min_y, double p_max_x, double p_max_y, double uv_min_x, double uv_min_y, double uv_max_x, double uv_max_y, int col_rgba, double rounding, int* flagsInOptional)



    Parameters:
    ImGui_DrawList draw_listImGui_Image img
    number p_min_x
    number p_min_y
    number p_max_x
    number p_max_y
    number uv_min_x
    number uv_min_y
    number uv_max_x
    number uv_max_y
    integer col_rgba
    number rounding
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddLine

    C: void ImGui_DrawList_AddLine(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, int col_rgba, double* thicknessInOptional)
    EEL2: extension_api("ImGui_DrawList_AddLine", ImGui_DrawList draw_list, p1_x, p1_y, p2_x, p2_y, int col_rgba, optional thicknessIn)
    Lua: reaper.ImGui_DrawList_AddLine(ImGui_DrawList draw_list, number p1_x, number p1_y, number p2_x, number p2_y, integer col_rgba, optional number thicknessIn)
    Python: void ImGui_DrawList_AddLine(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, int col_rgba, double* thicknessInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    integer col_rgba
    optional number thicknessIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddNgon

    C: void ImGui_DrawList_AddNgon(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int num_segments, double* thicknessInOptional)
    EEL2: extension_api("ImGui_DrawList_AddNgon", ImGui_DrawList draw_list, center_x, center_y, radius, int col_rgba, int num_segments, optional thicknessIn)
    Lua: reaper.ImGui_DrawList_AddNgon(ImGui_DrawList draw_list, number center_x, number center_y, number radius, integer col_rgba, integer num_segments, optional number thicknessIn)
    Python: void ImGui_DrawList_AddNgon(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int num_segments, double* thicknessInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number center_x
    number center_y
    number radius
    integer col_rgba
    integer num_segments
    optional number thicknessIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddNgonFilled

    C: void ImGui_DrawList_AddNgonFilled(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int num_segments)
    EEL2: extension_api("ImGui_DrawList_AddNgonFilled", ImGui_DrawList draw_list, center_x, center_y, radius, int col_rgba, int num_segments)
    Lua: reaper.ImGui_DrawList_AddNgonFilled(ImGui_DrawList draw_list, number center_x, number center_y, number radius, integer col_rgba, integer num_segments)
    Python: void ImGui_DrawList_AddNgonFilled(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int col_rgba, int num_segments)



    Parameters:
    ImGui_DrawList draw_list
    number center_x
    number center_y
    number radius
    integer col_rgba
    integer num_segments


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddPolyline

    C: void ImGui_DrawList_AddPolyline(ImGui_DrawList* draw_list, reaper_array* points, int col_rgba, int flags, double thickness)
    EEL2: extension_api("ImGui_DrawList_AddPolyline", ImGui_DrawList draw_list, reaper.array points, int col_rgba, int flags, thickness)
    Lua: reaper.ImGui_DrawList_AddPolyline(ImGui_DrawList draw_listreaper_array points, integer col_rgba, integer flags, number thickness)
    Python: void ImGui_DrawList_AddPolyline(ImGui_DrawList* draw_list, reaper_array* points, int col_rgba, int flags, double thickness)

    Points is a list of x,y coordinates.

    Parameters:
    ImGui_DrawList draw_listreaper_array points
    integer col_rgba
    integer flags
    number thickness


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddQuad

    C: void ImGui_DrawList_AddQuad(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int col_rgba, double* thicknessInOptional)
    EEL2: extension_api("ImGui_DrawList_AddQuad", ImGui_DrawList draw_list, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, p4_x, p4_y, int col_rgba, optional thicknessIn)
    Lua: reaper.ImGui_DrawList_AddQuad(ImGui_DrawList draw_list, number p1_x, number p1_y, number p2_x, number p2_y, number p3_x, number p3_y, number p4_x, number p4_y, integer col_rgba, optional number thicknessIn)
    Python: void ImGui_DrawList_AddQuad(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int col_rgba, double* thicknessInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    number p4_x
    number p4_y
    integer col_rgba
    optional number thicknessIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddQuadFilled

    C: void ImGui_DrawList_AddQuadFilled(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int col_rgba)
    EEL2: extension_api("ImGui_DrawList_AddQuadFilled", ImGui_DrawList draw_list, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, p4_x, p4_y, int col_rgba)
    Lua: reaper.ImGui_DrawList_AddQuadFilled(ImGui_DrawList draw_list, number p1_x, number p1_y, number p2_x, number p2_y, number p3_x, number p3_y, number p4_x, number p4_y, integer col_rgba)
    Python: void ImGui_DrawList_AddQuadFilled(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int col_rgba)



    Parameters:
    ImGui_DrawList draw_list
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    number p4_x
    number p4_y
    integer col_rgba


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddRect

    C: void ImGui_DrawList_AddRect(ImGui_DrawList* draw_list, double p_min_x, double p_min_y, double p_max_x, double p_max_y, int col_rgba, double* roundingInOptional, int* flagsInOptional, double* thicknessInOptional)
    EEL2: extension_api("ImGui_DrawList_AddRect", ImGui_DrawList draw_list, p_min_x, p_min_y, p_max_x, p_max_y, int col_rgba, optional roundingIn, optional int flagsIn, optional thicknessIn)
    Lua: reaper.ImGui_DrawList_AddRect(ImGui_DrawList draw_list, number p_min_x, number p_min_y, number p_max_x, number p_max_y, integer col_rgba, optional number roundingIn, optional integer flagsIn, optional number thicknessIn)
    Python: void ImGui_DrawList_AddRect(ImGui_DrawList* draw_list, double p_min_x, double p_min_y, double p_max_x, double p_max_y, int col_rgba, double* roundingInOptional, int* flagsInOptional, double* thicknessInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number p_min_x
    number p_min_y
    number p_max_x
    number p_max_y
    integer col_rgba
    optional number roundingIn
    optional integer flagsIn
    optional number thicknessIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddRectFilled

    C: void ImGui_DrawList_AddRectFilled(ImGui_DrawList* draw_list, double p_min_x, double p_min_y, double p_max_x, double p_max_y, int col_rgba, double* roundingInOptional, int* flagsInOptional)
    EEL2: extension_api("ImGui_DrawList_AddRectFilled", ImGui_DrawList draw_list, p_min_x, p_min_y, p_max_x, p_max_y, int col_rgba, optional roundingIn, optional int flagsIn)
    Lua: reaper.ImGui_DrawList_AddRectFilled(ImGui_DrawList draw_list, number p_min_x, number p_min_y, number p_max_x, number p_max_y, integer col_rgba, optional number roundingIn, optional integer flagsIn)
    Python: void ImGui_DrawList_AddRectFilled(ImGui_DrawList* draw_list, double p_min_x, double p_min_y, double p_max_x, double p_max_y, int col_rgba, double* roundingInOptional, int* flagsInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number p_min_x
    number p_min_y
    number p_max_x
    number p_max_y
    integer col_rgba
    optional number roundingIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddRectFilledMultiColor

    C: void ImGui_DrawList_AddRectFilledMultiColor(ImGui_DrawList* draw_list, double p_min_x, double p_min_y, double p_max_x, double p_max_y, int col_upr_left, int col_upr_right, int col_bot_right, int col_bot_left)
    EEL2: extension_api("ImGui_DrawList_AddRectFilledMultiColor", ImGui_DrawList draw_list, p_min_x, p_min_y, p_max_x, p_max_y, int col_upr_left, int col_upr_right, int col_bot_right, int col_bot_left)
    Lua: reaper.ImGui_DrawList_AddRectFilledMultiColor(ImGui_DrawList draw_list, number p_min_x, number p_min_y, number p_max_x, number p_max_y, integer col_upr_left, integer col_upr_right, integer col_bot_right, integer col_bot_left)
    Python: void ImGui_DrawList_AddRectFilledMultiColor(ImGui_DrawList* draw_list, double p_min_x, double p_min_y, double p_max_x, double p_max_y, int col_upr_left, int col_upr_right, int col_bot_right, int col_bot_left)



    Parameters:
    ImGui_DrawList draw_list
    number p_min_x
    number p_min_y
    number p_max_x
    number p_max_y
    integer col_upr_left
    integer col_upr_right
    integer col_bot_right
    integer col_bot_left


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddText

    C: void ImGui_DrawList_AddText(ImGui_DrawList* draw_list, double x, double y, int col_rgba, const char* text)
    EEL2: extension_api("ImGui_DrawList_AddText", ImGui_DrawList draw_list, x, y, int col_rgba, "text")
    Lua: reaper.ImGui_DrawList_AddText(ImGui_DrawList draw_list, number x, number y, integer col_rgba, string text)
    Python: void ImGui_DrawList_AddText(ImGui_DrawList* draw_list, double x, double y, int col_rgba, const char* text)



    Parameters:
    ImGui_DrawList draw_list
    number x
    number y
    integer col_rgba
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddTextEx

    C: void ImGui_DrawList_AddTextEx(ImGui_DrawList* draw_list, ImGui_Font* font, double font_size, double pos_x, double pos_y, int col_rgba, const char* text, double* wrap_widthInOptional, double* cpu_fine_clip_rect_xInOptional, double* cpu_fine_clip_rect_yInOptional, double* cpu_fine_clip_rect_wInOptional, double* cpu_fine_clip_rect_hInOptional)
    EEL2: extension_api("ImGui_DrawList_AddTextEx", ImGui_DrawList draw_list, ImGui_Font font, font_size, pos_x, pos_y, int col_rgba, "text", optional wrap_widthIn, optional cpu_fine_clip_rect_xIn, optional cpu_fine_clip_rect_yIn, optional cpu_fine_clip_rect_wIn, optional cpu_fine_clip_rect_hIn)
    Lua: reaper.ImGui_DrawList_AddTextEx(ImGui_DrawList draw_listImGui_Font font, number font_size, number pos_x, number pos_y, integer col_rgba, string text, optional number wrap_widthIn, optional number cpu_fine_clip_rect_xIn, optional number cpu_fine_clip_rect_yIn, optional number cpu_fine_clip_rect_wIn, optional number cpu_fine_clip_rect_hIn)
    Python: void ImGui_DrawList_AddTextEx(ImGui_DrawList* draw_list, ImGui_Font* font, double font_size, double pos_x, double pos_y, int col_rgba, const char* text, double* wrap_widthInOptional, double* cpu_fine_clip_rect_xInOptional, double* cpu_fine_clip_rect_yInOptional, double* cpu_fine_clip_rect_wInOptional, double* cpu_fine_clip_rect_hInOptional)

    The last pushed font is used if font is nil.
    The size of the last pushed font is used if font_size is 0.
    cpu_fine_clip_rect_* only takes effect if all four are non-nil.

    Parameters:
    ImGui_DrawList draw_listImGui_Font font
    number font_size
    number pos_x
    number pos_y
    integer col_rgba
    string text
    optional number wrap_widthIn
    optional number cpu_fine_clip_rect_xIn
    optional number cpu_fine_clip_rect_yIn
    optional number cpu_fine_clip_rect_wIn
    optional number cpu_fine_clip_rect_hIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddTriangle

    C: void ImGui_DrawList_AddTriangle(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, int col_rgba, double* thicknessInOptional)
    EEL2: extension_api("ImGui_DrawList_AddTriangle", ImGui_DrawList draw_list, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, int col_rgba, optional thicknessIn)
    Lua: reaper.ImGui_DrawList_AddTriangle(ImGui_DrawList draw_list, number p1_x, number p1_y, number p2_x, number p2_y, number p3_x, number p3_y, integer col_rgba, optional number thicknessIn)
    Python: void ImGui_DrawList_AddTriangle(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, int col_rgba, double* thicknessInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    integer col_rgba
    optional number thicknessIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_AddTriangleFilled

    C: void ImGui_DrawList_AddTriangleFilled(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, int col_rgba)
    EEL2: extension_api("ImGui_DrawList_AddTriangleFilled", ImGui_DrawList draw_list, p1_x, p1_y, p2_x, p2_y, p3_x, p3_y, int col_rgba)
    Lua: reaper.ImGui_DrawList_AddTriangleFilled(ImGui_DrawList draw_list, number p1_x, number p1_y, number p2_x, number p2_y, number p3_x, number p3_y, integer col_rgba)
    Python: void ImGui_DrawList_AddTriangleFilled(ImGui_DrawList* draw_list, double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, int col_rgba)



    Parameters:
    ImGui_DrawList draw_list
    number p1_x
    number p1_y
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    integer col_rgba


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathArcTo

    C: void ImGui_DrawList_PathArcTo(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, double a_min, double a_max, int* num_segmentsInOptional)
    EEL2: extension_api("ImGui_DrawList_PathArcTo", ImGui_DrawList draw_list, center_x, center_y, radius, a_min, a_max, optional int num_segmentsIn)
    Lua: reaper.ImGui_DrawList_PathArcTo(ImGui_DrawList draw_list, number center_x, number center_y, number radius, number a_min, number a_max, optional integer num_segmentsIn)
    Python: void ImGui_DrawList_PathArcTo(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, double a_min, double a_max, int* num_segmentsInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number center_x
    number center_y
    number radius
    number a_min
    number a_max
    optional integer num_segmentsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathArcToFast

    C: void ImGui_DrawList_PathArcToFast(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int a_min_of_12, int a_max_of_12)
    EEL2: extension_api("ImGui_DrawList_PathArcToFast", ImGui_DrawList draw_list, center_x, center_y, radius, int a_min_of_12, int a_max_of_12)
    Lua: reaper.ImGui_DrawList_PathArcToFast(ImGui_DrawList draw_list, number center_x, number center_y, number radius, integer a_min_of_12, integer a_max_of_12)
    Python: void ImGui_DrawList_PathArcToFast(ImGui_DrawList* draw_list, double center_x, double center_y, double radius, int a_min_of_12, int a_max_of_12)

    Use precomputed angles for a 12 steps circle.

    Parameters:
    ImGui_DrawList draw_list
    number center_x
    number center_y
    number radius
    integer a_min_of_12
    integer a_max_of_12


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathBezierCubicCurveTo

    C: void ImGui_DrawList_PathBezierCubicCurveTo(ImGui_DrawList* draw_list, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int* num_segmentsInOptional)
    EEL2: extension_api("ImGui_DrawList_PathBezierCubicCurveTo", ImGui_DrawList draw_list, p2_x, p2_y, p3_x, p3_y, p4_x, p4_y, optional int num_segmentsIn)
    Lua: reaper.ImGui_DrawList_PathBezierCubicCurveTo(ImGui_DrawList draw_list, number p2_x, number p2_y, number p3_x, number p3_y, number p4_x, number p4_y, optional integer num_segmentsIn)
    Python: void ImGui_DrawList_PathBezierCubicCurveTo(ImGui_DrawList* draw_list, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y, int* num_segmentsInOptional)

    Cubic Bezier (4 control points)

    Parameters:
    ImGui_DrawList draw_list
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    number p4_x
    number p4_y
    optional integer num_segmentsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathBezierQuadraticCurveTo

    C: void ImGui_DrawList_PathBezierQuadraticCurveTo(ImGui_DrawList* draw_list, double p2_x, double p2_y, double p3_x, double p3_y, int* num_segmentsInOptional)
    EEL2: extension_api("ImGui_DrawList_PathBezierQuadraticCurveTo", ImGui_DrawList draw_list, p2_x, p2_y, p3_x, p3_y, optional int num_segmentsIn)
    Lua: reaper.ImGui_DrawList_PathBezierQuadraticCurveTo(ImGui_DrawList draw_list, number p2_x, number p2_y, number p3_x, number p3_y, optional integer num_segmentsIn)
    Python: void ImGui_DrawList_PathBezierQuadraticCurveTo(ImGui_DrawList* draw_list, double p2_x, double p2_y, double p3_x, double p3_y, int* num_segmentsInOptional)

    Quadratic Bezier (3 control points)

    Parameters:
    ImGui_DrawList draw_list
    number p2_x
    number p2_y
    number p3_x
    number p3_y
    optional integer num_segmentsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathClear

    C: void ImGui_DrawList_PathClear(ImGui_DrawList* draw_list)
    EEL2: extension_api("ImGui_DrawList_PathClear", ImGui_DrawList draw_list)
    Lua: reaper.ImGui_DrawList_PathClear(ImGui_DrawList draw_list)
    Python: void ImGui_DrawList_PathClear(ImGui_DrawList* draw_list)



    Parameters:
    ImGui_DrawList draw_list


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathFillConvex

    C: void ImGui_DrawList_PathFillConvex(ImGui_DrawList* draw_list, int col_rgba)
    EEL2: extension_api("ImGui_DrawList_PathFillConvex", ImGui_DrawList draw_list, int col_rgba)
    Lua: reaper.ImGui_DrawList_PathFillConvex(ImGui_DrawList draw_list, integer col_rgba)
    Python: void ImGui_DrawList_PathFillConvex(ImGui_DrawList* draw_list, int col_rgba)

    Note: Anti-aliased filling requires points to be in clockwise order.

    Parameters:
    ImGui_DrawList draw_list
    integer col_rgba


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathLineTo

    C: void ImGui_DrawList_PathLineTo(ImGui_DrawList* draw_list, double pos_x, double pos_y)
    EEL2: extension_api("ImGui_DrawList_PathLineTo", ImGui_DrawList draw_list, pos_x, pos_y)
    Lua: reaper.ImGui_DrawList_PathLineTo(ImGui_DrawList draw_list, number pos_x, number pos_y)
    Python: void ImGui_DrawList_PathLineTo(ImGui_DrawList* draw_list, double pos_x, double pos_y)



    Parameters:
    ImGui_DrawList draw_list
    number pos_x
    number pos_y


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathRect

    C: void ImGui_DrawList_PathRect(ImGui_DrawList* draw_list, double rect_min_x, double rect_min_y, double rect_max_x, double rect_max_y, double* roundingInOptional, int* flagsInOptional)
    EEL2: extension_api("ImGui_DrawList_PathRect", ImGui_DrawList draw_list, rect_min_x, rect_min_y, rect_max_x, rect_max_y, optional roundingIn, optional int flagsIn)
    Lua: reaper.ImGui_DrawList_PathRect(ImGui_DrawList draw_list, number rect_min_x, number rect_min_y, number rect_max_x, number rect_max_y, optional number roundingIn, optional integer flagsIn)
    Python: void ImGui_DrawList_PathRect(ImGui_DrawList* draw_list, double rect_min_x, double rect_min_y, double rect_max_x, double rect_max_y, double* roundingInOptional, int* flagsInOptional)



    Parameters:
    ImGui_DrawList draw_list
    number rect_min_x
    number rect_min_y
    number rect_max_x
    number rect_max_y
    optional number roundingIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PathStroke

    C: void ImGui_DrawList_PathStroke(ImGui_DrawList* draw_list, int col_rgba, int* flagsInOptional, double* thicknessInOptional)
    EEL2: extension_api("ImGui_DrawList_PathStroke", ImGui_DrawList draw_list, int col_rgba, optional int flagsIn, optional thicknessIn)
    Lua: reaper.ImGui_DrawList_PathStroke(ImGui_DrawList draw_list, integer col_rgba, optional integer flagsIn, optional number thicknessIn)
    Python: void ImGui_DrawList_PathStroke(ImGui_DrawList* draw_list, int col_rgba, int* flagsInOptional, double* thicknessInOptional)



    Parameters:
    ImGui_DrawList draw_list
    integer col_rgba
    optional integer flagsIn
    optional number thicknessIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PopClipRect

    C: void ImGui_DrawList_PopClipRect(ImGui_DrawList* draw_list)
    EEL2: extension_api("ImGui_DrawList_PopClipRect", ImGui_DrawList draw_list)
    Lua: reaper.ImGui_DrawList_PopClipRect(ImGui_DrawList draw_list)
    Python: void ImGui_DrawList_PopClipRect(ImGui_DrawList* draw_list)

    See DrawList_PushClipRect

    Parameters:
    ImGui_DrawList draw_list


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PushClipRect

    C: void ImGui_DrawList_PushClipRect(ImGui_DrawList* draw_list, double clip_rect_min_x, double clip_rect_min_y, double clip_rect_max_x, double clip_rect_max_y, bool* intersect_with_current_clip_rectInOptional)
    EEL2: extension_api("ImGui_DrawList_PushClipRect", ImGui_DrawList draw_list, clip_rect_min_x, clip_rect_min_y, clip_rect_max_x, clip_rect_max_y, optional bool intersect_with_current_clip_rectIn)
    Lua: reaper.ImGui_DrawList_PushClipRect(ImGui_DrawList draw_list, number clip_rect_min_x, number clip_rect_min_y, number clip_rect_max_x, number clip_rect_max_y, optional boolean intersect_with_current_clip_rectIn)
    Python: void ImGui_DrawList_PushClipRect(ImGui_DrawList* draw_list, double clip_rect_min_x, double clip_rect_min_y, double clip_rect_max_x, double clip_rect_max_y, bool* intersect_with_current_clip_rectInOptional)

    Render-level scissoring. Prefer using higher-level PushClipRect to affect
    logic (hit-testing and widget culling).

    Parameters:
    ImGui_DrawList draw_list
    number clip_rect_min_x
    number clip_rect_min_y
    number clip_rect_max_x
    number clip_rect_max_y
    optional boolean intersect_with_current_clip_rectIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_DrawList_PushClipRectFullScreen

    C: void ImGui_DrawList_PushClipRectFullScreen(ImGui_DrawList* draw_list)
    EEL2: extension_api("ImGui_DrawList_PushClipRectFullScreen", ImGui_DrawList draw_list)
    Lua: reaper.ImGui_DrawList_PushClipRectFullScreen(ImGui_DrawList draw_list)
    Python: void ImGui_DrawList_PushClipRectFullScreen(ImGui_DrawList* draw_list)



    Parameters:
    ImGui_DrawList draw_list


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Dummy

    C: void ImGui_Dummy(ImGui_Context* ctx, double size_w, double size_h)
    EEL2: extension_api("ImGui_Dummy", ImGui_Context ctx, size_w, size_h)
    Lua: reaper.ImGui_Dummy(ImGui_Context ctx, number size_w, number size_h)
    Python: void ImGui_Dummy(ImGui_Context* ctx, double size_w, double size_h)

    Add a dummy item of given size. unlike InvisibleButton, Dummy() won't take the
    mouse click or be navigable into.

    Parameters:
    ImGui_Context ctx
    number size_w
    number size_h


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_End

    C: void ImGui_End(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_End", ImGui_Context ctx)
    Lua: reaper.ImGui_End(ImGui_Context ctx)
    Python: void ImGui_End(ImGui_Context* ctx)

    Pop window from the stack. See Begin.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndChild

    C: void ImGui_EndChild(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndChild", ImGui_Context ctx)
    Lua: reaper.ImGui_EndChild(ImGui_Context ctx)
    Python: void ImGui_EndChild(ImGui_Context* ctx)

    See BeginChild.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndChildFrame

    C: void ImGui_EndChildFrame(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndChildFrame", ImGui_Context ctx)
    Lua: reaper.ImGui_EndChildFrame(ImGui_Context ctx)
    Python: void ImGui_EndChildFrame(ImGui_Context* ctx)

    See BeginChildFrame.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndCombo

    C: void ImGui_EndCombo(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndCombo", ImGui_Context ctx)
    Lua: reaper.ImGui_EndCombo(ImGui_Context ctx)
    Python: void ImGui_EndCombo(ImGui_Context* ctx)

    Only call EndCombo() if BeginCombo returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndDisabled

    C: void ImGui_EndDisabled(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndDisabled", ImGui_Context ctx)
    Lua: reaper.ImGui_EndDisabled(ImGui_Context ctx)
    Python: void ImGui_EndDisabled(ImGui_Context* ctx)

    See BeginDisabled.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndDragDropSource

    C: void ImGui_EndDragDropSource(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndDragDropSource", ImGui_Context ctx)
    Lua: reaper.ImGui_EndDragDropSource(ImGui_Context ctx)
    Python: void ImGui_EndDragDropSource(ImGui_Context* ctx)

    Only call EndDragDropSource() if BeginDragDropSource returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndDragDropTarget

    C: void ImGui_EndDragDropTarget(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndDragDropTarget", ImGui_Context ctx)
    Lua: reaper.ImGui_EndDragDropTarget(ImGui_Context ctx)
    Python: void ImGui_EndDragDropTarget(ImGui_Context* ctx)

    Only call EndDragDropTarget() if BeginDragDropTarget returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndGroup

    C: void ImGui_EndGroup(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndGroup", ImGui_Context ctx)
    Lua: reaper.ImGui_EndGroup(ImGui_Context ctx)
    Python: void ImGui_EndGroup(ImGui_Context* ctx)

    Unlock horizontal starting position + capture the whole group bounding box
    into one "item" (so you can use IsItemHovered or layout primitives such as
    SameLine on whole group, etc.).

    See BeginGroup.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndListBox

    C: void ImGui_EndListBox(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndListBox", ImGui_Context ctx)
    Lua: reaper.ImGui_EndListBox(ImGui_Context ctx)
    Python: void ImGui_EndListBox(ImGui_Context* ctx)

    Only call EndListBox() if BeginListBox returned true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndMenu

    C: void ImGui_EndMenu(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndMenu", ImGui_Context ctx)
    Lua: reaper.ImGui_EndMenu(ImGui_Context ctx)
    Python: void ImGui_EndMenu(ImGui_Context* ctx)

    Only call EndMenu() if BeginMenu returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndMenuBar

    C: void ImGui_EndMenuBar(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndMenuBar", ImGui_Context ctx)
    Lua: reaper.ImGui_EndMenuBar(ImGui_Context ctx)
    Python: void ImGui_EndMenuBar(ImGui_Context* ctx)

    Only call EndMenuBar if BeginMenuBar returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndPopup

    C: void ImGui_EndPopup(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndPopup", ImGui_Context ctx)
    Lua: reaper.ImGui_EndPopup(ImGui_Context ctx)
    Python: void ImGui_EndPopup(ImGui_Context* ctx)

    Only call EndPopup() if BeginPopup*() returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndTabBar

    C: void ImGui_EndTabBar(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndTabBar", ImGui_Context ctx)
    Lua: reaper.ImGui_EndTabBar(ImGui_Context ctx)
    Python: void ImGui_EndTabBar(ImGui_Context* ctx)

    Only call EndTabBar() if BeginTabBar() returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndTabItem

    C: void ImGui_EndTabItem(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndTabItem", ImGui_Context ctx)
    Lua: reaper.ImGui_EndTabItem(ImGui_Context ctx)
    Python: void ImGui_EndTabItem(ImGui_Context* ctx)

    Only call EndTabItem() if BeginTabItem() returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndTable

    C: void ImGui_EndTable(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndTable", ImGui_Context ctx)
    Lua: reaper.ImGui_EndTable(ImGui_Context ctx)
    Python: void ImGui_EndTable(ImGui_Context* ctx)

    Only call EndTable() if BeginTable() returns true!

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_EndTooltip

    C: void ImGui_EndTooltip(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_EndTooltip", ImGui_Context ctx)
    Lua: reaper.ImGui_EndTooltip(ImGui_Context ctx)
    Python: void ImGui_EndTooltip(ImGui_Context* ctx)

    Only call EndTooltip() if BeginTooltip() returns true.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FocusedFlags_AnyWindow

    C: int ImGui_FocusedFlags_AnyWindow()
    EEL2: int extension_api("ImGui_FocusedFlags_AnyWindow")
    Lua: integer retval = reaper.ImGui_FocusedFlags_AnyWindow()
    Python: int ImGui_FocusedFlags_AnyWindow()

    Return true if any window is focused.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FocusedFlags_ChildWindows

    C: int ImGui_FocusedFlags_ChildWindows()
    EEL2: int extension_api("ImGui_FocusedFlags_ChildWindows")
    Lua: integer retval = reaper.ImGui_FocusedFlags_ChildWindows()
    Python: int ImGui_FocusedFlags_ChildWindows()

    Return true if any children of the window is focused.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FocusedFlags_DockHierarchy

    C: int ImGui_FocusedFlags_DockHierarchy()
    EEL2: int extension_api("ImGui_FocusedFlags_DockHierarchy")
    Lua: integer retval = reaper.ImGui_FocusedFlags_DockHierarchy()
    Python: int ImGui_FocusedFlags_DockHierarchy()

    Consider docking hierarchy (treat dockspace host as parent of docked window)
       (when used with _ChildWindows or _RootWindow).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FocusedFlags_NoPopupHierarchy

    C: int ImGui_FocusedFlags_NoPopupHierarchy()
    EEL2: int extension_api("ImGui_FocusedFlags_NoPopupHierarchy")
    Lua: integer retval = reaper.ImGui_FocusedFlags_NoPopupHierarchy()
    Python: int ImGui_FocusedFlags_NoPopupHierarchy()

    Do not consider popup hierarchy (do not treat popup emitter as parent of
       popup) (when used with _ChildWindows or _RootWindow).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FocusedFlags_None

    C: int ImGui_FocusedFlags_None()
    EEL2: int extension_api("ImGui_FocusedFlags_None")
    Lua: integer retval = reaper.ImGui_FocusedFlags_None()
    Python: int ImGui_FocusedFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FocusedFlags_RootAndChildWindows

    C: int ImGui_FocusedFlags_RootAndChildWindows()
    EEL2: int extension_api("ImGui_FocusedFlags_RootAndChildWindows")
    Lua: integer retval = reaper.ImGui_FocusedFlags_RootAndChildWindows()
    Python: int ImGui_FocusedFlags_RootAndChildWindows()

    FocusedFlags_RootWindow | FocusedFlags_ChildWindows

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FocusedFlags_RootWindow

    C: int ImGui_FocusedFlags_RootWindow()
    EEL2: int extension_api("ImGui_FocusedFlags_RootWindow")
    Lua: integer retval = reaper.ImGui_FocusedFlags_RootWindow()
    Python: int ImGui_FocusedFlags_RootWindow()

    Test from root window (top most parent of the current hierarchy).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FontFlags_Bold

    C: int ImGui_FontFlags_Bold()
    EEL2: int extension_api("ImGui_FontFlags_Bold")
    Lua: integer retval = reaper.ImGui_FontFlags_Bold()
    Python: int ImGui_FontFlags_Bold()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FontFlags_Italic

    C: int ImGui_FontFlags_Italic()
    EEL2: int extension_api("ImGui_FontFlags_Italic")
    Lua: integer retval = reaper.ImGui_FontFlags_Italic()
    Python: int ImGui_FontFlags_Italic()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_FontFlags_None

    C: int ImGui_FontFlags_None()
    EEL2: int extension_api("ImGui_FontFlags_None")
    Lua: integer retval = reaper.ImGui_FontFlags_None()
    Python: int ImGui_FontFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Function_Execute

    C: void ImGui_Function_Execute(ImGui_Function* func)
    EEL2: extension_api("ImGui_Function_Execute", ImGui_Function func)
    Lua: reaper.ImGui_Function_Execute(ImGui_Function func)
    Python: void ImGui_Function_Execute(ImGui_Function* func)



    Parameters:
    ImGui_Function func


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Function_GetValue

    C: double ImGui_Function_GetValue(ImGui_Function* func, const char* name)
    EEL2: double extension_api("ImGui_Function_GetValue", ImGui_Function func, "name")
    Lua: number retval = reaper.ImGui_Function_GetValue(ImGui_Function func, string name)
    Python: double ImGui_Function_GetValue(ImGui_Function* func, const char* name)



    Returnvalues:
    number retval

    Parameters:
    ImGui_Function func
    string name


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Function_GetValue_Array

    C: void ImGui_Function_GetValue_Array(ImGui_Function* func, const char* name, reaper_array* values)
    EEL2: extension_api("ImGui_Function_GetValue_Array", ImGui_Function func, "name", reaper.array values)
    Lua: reaper.ImGui_Function_GetValue_Array(ImGui_Function func, string namereaper_array values)
    Python: void ImGui_Function_GetValue_Array(ImGui_Function* func, const char* name, reaper_array* values)

    Copy the values in the function's memory starting at the address stored
    in the given variable into the array.

    Parameters:
    ImGui_Function func
    string namereaper_array values


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Function_GetValue_String

    C: void ImGui_Function_GetValue_String(ImGui_Function* func, const char* name, char* valueOutNeedBig, int valueOutNeedBig_sz)
    EEL2: extension_api("ImGui_Function_GetValue_String", ImGui_Function func, "name", #value)
    Lua: string value = reaper.ImGui_Function_GetValue_String(ImGui_Function func, string name)
    Python: void ImGui_Function_GetValue_String(ImGui_Function* func, const char* name, char* valueOutNeedBig, int valueOutNeedBig_sz)

    Read from a string slot or a named string (when name starts with a `#`).

    Returnvalues:
    string value

    Parameters:
    ImGui_Function func
    string name


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Function_SetValue

    C: void ImGui_Function_SetValue(ImGui_Function* func, const char* name, double value)
    EEL2: extension_api("ImGui_Function_SetValue", ImGui_Function func, "name", value)
    Lua: reaper.ImGui_Function_SetValue(ImGui_Function func, string name, number value)
    Python: void ImGui_Function_SetValue(ImGui_Function* func, const char* name, double value)



    Parameters:
    ImGui_Function func
    string name
    number value


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Function_SetValue_Array

    C: void ImGui_Function_SetValue_Array(ImGui_Function* func, const char* name, reaper_array* values)
    EEL2: extension_api("ImGui_Function_SetValue_Array", ImGui_Function func, "name", reaper.array values)
    Lua: reaper.ImGui_Function_SetValue_Array(ImGui_Function func, string namereaper_array values)
    Python: void ImGui_Function_SetValue_Array(ImGui_Function* func, const char* name, reaper_array* values)

    Copy the values in the array to the function's memory at the address stored
    in the given variable.

    Parameters:
    ImGui_Function func
    string namereaper_array values


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Function_SetValue_String

    C: void ImGui_Function_SetValue_String(ImGui_Function* func, const char* name, const char* value, int value_sz)
    EEL2: extension_api("ImGui_Function_SetValue_String", ImGui_Function func, "name", "value")
    Lua: reaper.ImGui_Function_SetValue_String(ImGui_Function func, string name, string value)
    Python: void ImGui_Function_SetValue_String(ImGui_Function* func, const char* name, const char* value, int value_sz)

    Write to a string slot or a named string (when name starts with a `#`).

    Parameters:
    ImGui_Function func
    string name
    string value


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetBackgroundDrawList

    C: ImGui_DrawList* ImGui_GetBackgroundDrawList(ImGui_Context* ctx)
    EEL2: ImGui_DrawList extension_api("ImGui_GetBackgroundDrawList", ImGui_Context ctx)
    Lua: ImGui_DrawList reaper.ImGui_GetBackgroundDrawList(ImGui_Context ctx)
    Python: ImGui_DrawList* ImGui_GetBackgroundDrawList(ImGui_Context* ctx)

    This draw list will be the first rendering one. Useful to quickly draw
    shapes/text behind dear imgui contents.

    Returnvalues:
    ImGui_DrawList

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetClipboardText

    C: const char* ImGui_GetClipboardText(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_GetClipboardText", #retval, ImGui_Context ctx)
    Lua: string retval = reaper.ImGui_GetClipboardText(ImGui_Context ctx)
    Python: const char* ImGui_GetClipboardText(ImGui_Context* ctx)



    Returnvalues:
    string retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetColor

    C: int ImGui_GetColor(ImGui_Context* ctx, int idx, double* alpha_mulInOptional)
    EEL2: int extension_api("ImGui_GetColor", ImGui_Context ctx, int idx, optional alpha_mulIn)
    Lua: integer retval = reaper.ImGui_GetColor(ImGui_Context ctx, integer idx, optional number alpha_mulIn)
    Python: int ImGui_GetColor(ImGui_Context* ctx, int idx, double* alpha_mulInOptional)

    Retrieve given style color with style alpha applied and optional extra alpha
    multiplier, packed as a 32-bit value (RGBA). See Col_* for available style colors.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx
    integer idx
    optional number alpha_mulIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetColorEx

    C: int ImGui_GetColorEx(ImGui_Context* ctx, int col_rgba)
    EEL2: int extension_api("ImGui_GetColorEx", ImGui_Context ctx, int col_rgba)
    Lua: integer retval = reaper.ImGui_GetColorEx(ImGui_Context ctx, integer col_rgba)
    Python: int ImGui_GetColorEx(ImGui_Context* ctx, int col_rgba)

    Retrieve given color with style alpha applied, packed as a 32-bit value (RGBA).

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx
    integer col_rgba


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetConfigVar

    C: double ImGui_GetConfigVar(ImGui_Context* ctx, int var_idx)
    EEL2: double extension_api("ImGui_GetConfigVar", ImGui_Context ctx, int var_idx)
    Lua: number retval = reaper.ImGui_GetConfigVar(ImGui_Context ctx, integer var_idx)
    Python: double ImGui_GetConfigVar(ImGui_Context* ctx, int var_idx)



    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx
    integer var_idx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetContentRegionAvail

    C: void ImGui_GetContentRegionAvail(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetContentRegionAvail", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetContentRegionAvail(ImGui_Context ctx)
    Python: void ImGui_GetContentRegionAvail(ImGui_Context* ctx, double* xOut, double* yOut)

    == GetContentRegionMax() - GetCursorPos()

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetContentRegionMax

    C: void ImGui_GetContentRegionMax(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetContentRegionMax", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetContentRegionMax(ImGui_Context ctx)
    Python: void ImGui_GetContentRegionMax(ImGui_Context* ctx, double* xOut, double* yOut)

    Current content boundaries (typically window boundaries including scrolling,
    or current column boundaries), in windows coordinates.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetCursorPos

    C: void ImGui_GetCursorPos(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetCursorPos", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetCursorPos(ImGui_Context ctx)
    Python: void ImGui_GetCursorPos(ImGui_Context* ctx, double* xOut, double* yOut)

    Cursor position in window

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetCursorPosX

    C: double ImGui_GetCursorPosX(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetCursorPosX", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetCursorPosX(ImGui_Context ctx)
    Python: double ImGui_GetCursorPosX(ImGui_Context* ctx)

    Cursor X position in window

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetCursorPosY

    C: double ImGui_GetCursorPosY(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetCursorPosY", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetCursorPosY(ImGui_Context ctx)
    Python: double ImGui_GetCursorPosY(ImGui_Context* ctx)

    Cursor Y position in window

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetCursorScreenPos

    C: void ImGui_GetCursorScreenPos(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetCursorScreenPos", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetCursorScreenPos(ImGui_Context ctx)
    Python: void ImGui_GetCursorScreenPos(ImGui_Context* ctx, double* xOut, double* yOut)

    Cursor position in absolute screen coordinates (useful to work with the DrawList API).

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetCursorStartPos

    C: void ImGui_GetCursorStartPos(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetCursorStartPos", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetCursorStartPos(ImGui_Context ctx)
    Python: void ImGui_GetCursorStartPos(ImGui_Context* ctx, double* xOut, double* yOut)

    Initial cursor position in window coordinates.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetDeltaTime

    C: double ImGui_GetDeltaTime(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetDeltaTime", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetDeltaTime(ImGui_Context ctx)
    Python: double ImGui_GetDeltaTime(ImGui_Context* ctx)

    Time elapsed since last frame, in seconds.

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetDragDropPayload

    C: bool ImGui_GetDragDropPayload(ImGui_Context* ctx, char* typeOut, int typeOut_sz, char* payloadOutNeedBig, int payloadOutNeedBig_sz, bool* is_previewOut, bool* is_deliveryOut)
    EEL2: bool extension_api("ImGui_GetDragDropPayload", ImGui_Context ctx, #type, #payload, bool &is_preview, bool &is_delivery)
    Lua: boolean retval, string type, string payload, boolean is_preview, boolean is_delivery = reaper.ImGui_GetDragDropPayload(ImGui_Context ctx)
    Python: bool ImGui_GetDragDropPayload(ImGui_Context* ctx, char* typeOut, int typeOut_sz, char* payloadOutNeedBig, int payloadOutNeedBig_sz, bool* is_previewOut, bool* is_deliveryOut)

    Peek directly into the current payload from anywhere.

    Returnvalues:
    boolean retval
    string type
    string payload
    boolean is_preview
    boolean is_delivery

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetDragDropPayloadFile

    C: bool ImGui_GetDragDropPayloadFile(ImGui_Context* ctx, int index, char* filenameOut, int filenameOut_sz)
    EEL2: bool extension_api("ImGui_GetDragDropPayloadFile", ImGui_Context ctx, int index, #filename)
    Lua: boolean retval, string filename = reaper.ImGui_GetDragDropPayloadFile(ImGui_Context ctx, integer index)
    Python: bool ImGui_GetDragDropPayloadFile(ImGui_Context* ctx, int index, char* filenameOut, int filenameOut_sz)

    Get a filename from the list of dropped files.
    Returns false if index is out of bounds.

    Returnvalues:
    boolean retval
    string filename

    Parameters:
    ImGui_Context ctx
    integer index


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetFont

    C: ImGui_Font* ImGui_GetFont(ImGui_Context* ctx)
    EEL2: ImGui_Font extension_api("ImGui_GetFont", ImGui_Context ctx)
    Lua: ImGui_Font reaper.ImGui_GetFont(ImGui_Context ctx)
    Python: ImGui_Font* ImGui_GetFont(ImGui_Context* ctx)

    Get the current font

    Returnvalues:
    ImGui_Font

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetFontSize

    C: double ImGui_GetFontSize(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetFontSize", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetFontSize(ImGui_Context ctx)
    Python: double ImGui_GetFontSize(ImGui_Context* ctx)

    Get current font size (= height in pixels) of current font with current scale
    applied.

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetForegroundDrawList

    C: ImGui_DrawList* ImGui_GetForegroundDrawList(ImGui_Context* ctx)
    EEL2: ImGui_DrawList extension_api("ImGui_GetForegroundDrawList", ImGui_Context ctx)
    Lua: ImGui_DrawList reaper.ImGui_GetForegroundDrawList(ImGui_Context ctx)
    Python: ImGui_DrawList* ImGui_GetForegroundDrawList(ImGui_Context* ctx)

    This draw list will be the last rendered one. Useful to quickly draw
    shapes/text over dear imgui contents.

    Returnvalues:
    ImGui_DrawList

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetFrameCount

    C: int ImGui_GetFrameCount(ImGui_Context* ctx)
    EEL2: int extension_api("ImGui_GetFrameCount", ImGui_Context ctx)
    Lua: integer retval = reaper.ImGui_GetFrameCount(ImGui_Context ctx)
    Python: int ImGui_GetFrameCount(ImGui_Context* ctx)

    Get global imgui frame count. incremented by 1 every frame.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetFrameHeight

    C: double ImGui_GetFrameHeight(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetFrameHeight", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetFrameHeight(ImGui_Context ctx)
    Python: double ImGui_GetFrameHeight(ImGui_Context* ctx)

    GetFontSize + StyleVar_FramePadding.y * 2

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetFrameHeightWithSpacing

    C: double ImGui_GetFrameHeightWithSpacing(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetFrameHeightWithSpacing", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetFrameHeightWithSpacing(ImGui_Context ctx)
    Python: double ImGui_GetFrameHeightWithSpacing(ImGui_Context* ctx)

    GetFontSize + StyleVar_FramePadding.y * 2 + StyleVar_ItemSpacing.y
    (distance in pixels between 2 consecutive lines of framed widgets).

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetFramerate

    C: double ImGui_GetFramerate(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetFramerate", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetFramerate(ImGui_Context ctx)
    Python: double ImGui_GetFramerate(ImGui_Context* ctx)

    Estimate of application framerate (rolling average over 60 frames, based on
    GetDeltaTime), in frame per second. Solely for convenience.

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetInputQueueCharacter

    C: bool ImGui_GetInputQueueCharacter(ImGui_Context* ctx, int idx, int* unicode_charOut)
    EEL2: bool extension_api("ImGui_GetInputQueueCharacter", ImGui_Context ctx, int idx, int &unicode_char)
    Lua: boolean retval, integer unicode_char = reaper.ImGui_GetInputQueueCharacter(ImGui_Context ctx, integer idx)
    Python: bool ImGui_GetInputQueueCharacter(ImGui_Context* ctx, int idx, int* unicode_charOut)

    Read from ImGui's character input queue.
    Call with increasing idx until false is returned.

    Returnvalues:
    boolean retval
    integer unicode_char

    Parameters:
    ImGui_Context ctx
    integer idx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetItemRectMax

    C: void ImGui_GetItemRectMax(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetItemRectMax", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetItemRectMax(ImGui_Context ctx)
    Python: void ImGui_GetItemRectMax(ImGui_Context* ctx, double* xOut, double* yOut)

    Get lower-right bounding rectangle of the last item (screen space)

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetItemRectMin

    C: void ImGui_GetItemRectMin(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetItemRectMin", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetItemRectMin(ImGui_Context ctx)
    Python: void ImGui_GetItemRectMin(ImGui_Context* ctx, double* xOut, double* yOut)

    Get upper-left bounding rectangle of the last item (screen space)

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetItemRectSize

    C: void ImGui_GetItemRectSize(ImGui_Context* ctx, double* wOut, double* hOut)
    EEL2: extension_api("ImGui_GetItemRectSize", ImGui_Context ctx, &w, &h)
    Lua: number w, number h = reaper.ImGui_GetItemRectSize(ImGui_Context ctx)
    Python: void ImGui_GetItemRectSize(ImGui_Context* ctx, double* wOut, double* hOut)

    Get size of last item

    Returnvalues:
    number w
    number h

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetKeyDownDuration

    C: double ImGui_GetKeyDownDuration(ImGui_Context* ctx, int key)
    EEL2: double extension_api("ImGui_GetKeyDownDuration", ImGui_Context ctx, int key)
    Lua: number retval = reaper.ImGui_GetKeyDownDuration(ImGui_Context ctx, integer key)
    Python: double ImGui_GetKeyDownDuration(ImGui_Context* ctx, int key)

    Duration the keyboard key has been down (0.0 == just pressed)

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx
    integer key


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetKeyMods

    C: int ImGui_GetKeyMods(ImGui_Context* ctx)
    EEL2: int extension_api("ImGui_GetKeyMods", ImGui_Context ctx)
    Lua: integer retval = reaper.ImGui_GetKeyMods(ImGui_Context ctx)
    Python: int ImGui_GetKeyMods(ImGui_Context* ctx)

    Flags for the Ctrl/Shift/Alt/Super keys. Uses Mod_* values.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetKeyPressedAmount

    C: int ImGui_GetKeyPressedAmount(ImGui_Context* ctx, int key, double repeat_delay, double rate)
    EEL2: int extension_api("ImGui_GetKeyPressedAmount", ImGui_Context ctx, int key, repeat_delay, rate)
    Lua: integer retval = reaper.ImGui_GetKeyPressedAmount(ImGui_Context ctx, integer key, number repeat_delay, number rate)
    Python: int ImGui_GetKeyPressedAmount(ImGui_Context* ctx, int key, double repeat_delay, double rate)

    Uses provided repeat rate/delay. Return a count, most often 0 or 1 but might
    be >1 if ConfigVar_RepeatRate is small enough that GetDeltaTime > RepeatRate.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx
    integer key
    number repeat_delay
    number rate


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMainViewport

    C: ImGui_Viewport* ImGui_GetMainViewport(ImGui_Context* ctx)
    EEL2: ImGui_Viewport extension_api("ImGui_GetMainViewport", ImGui_Context ctx)
    Lua: ImGui_Viewport reaper.ImGui_GetMainViewport(ImGui_Context ctx)
    Python: ImGui_Viewport* ImGui_GetMainViewport(ImGui_Context* ctx)

    Currently represents REAPER's main window (arrange view).
    WARNING: This may change or be removed in the future.

    Returnvalues:
    ImGui_Viewport

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMouseClickedCount

    C: int ImGui_GetMouseClickedCount(ImGui_Context* ctx, int button)
    EEL2: int extension_api("ImGui_GetMouseClickedCount", ImGui_Context ctx, int button)
    Lua: integer retval = reaper.ImGui_GetMouseClickedCount(ImGui_Context ctx, integer button)
    Python: int ImGui_GetMouseClickedCount(ImGui_Context* ctx, int button)

    Return the number of successive mouse-clicks at the time where a click happen (otherwise 0).

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx
    integer button


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMouseClickedPos

    C: void ImGui_GetMouseClickedPos(ImGui_Context* ctx, int button, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetMouseClickedPos", ImGui_Context ctx, int button, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetMouseClickedPos(ImGui_Context ctx, integer button)
    Python: void ImGui_GetMouseClickedPos(ImGui_Context* ctx, int button, double* xOut, double* yOut)



    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx
    integer button


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMouseCursor

    C: int ImGui_GetMouseCursor(ImGui_Context* ctx)
    EEL2: int extension_api("ImGui_GetMouseCursor", ImGui_Context ctx)
    Lua: integer retval = reaper.ImGui_GetMouseCursor(ImGui_Context ctx)
    Python: int ImGui_GetMouseCursor(ImGui_Context* ctx)

    Get desired mouse cursor shape, reset every frame. This is updated during the frame.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMouseDelta

    C: void ImGui_GetMouseDelta(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetMouseDelta", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetMouseDelta(ImGui_Context ctx)
    Python: void ImGui_GetMouseDelta(ImGui_Context* ctx, double* xOut, double* yOut)

    Mouse delta. Note that this is zero if either current or previous position
    are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have
    a huge delta.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMouseDownDuration

    C: double ImGui_GetMouseDownDuration(ImGui_Context* ctx, int button)
    EEL2: double extension_api("ImGui_GetMouseDownDuration", ImGui_Context ctx, int button)
    Lua: number retval = reaper.ImGui_GetMouseDownDuration(ImGui_Context ctx, integer button)
    Python: double ImGui_GetMouseDownDuration(ImGui_Context* ctx, int button)

    Duration the mouse button has been down (0.0 == just clicked)

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx
    integer button


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMouseDragDelta

    C: void ImGui_GetMouseDragDelta(ImGui_Context* ctx, double* xOut, double* yOut, int* buttonInOptional, double* lock_thresholdInOptional)
    EEL2: extension_api("ImGui_GetMouseDragDelta", ImGui_Context ctx, &x, &y, optional int buttonIn, optional lock_thresholdIn)
    Lua: number x, number y = reaper.ImGui_GetMouseDragDelta(ImGui_Context ctx, number x, number y, optional integer buttonIn, optional number lock_thresholdIn)
    Python: void ImGui_GetMouseDragDelta(ImGui_Context* ctx, double* xOut, double* yOut, int* buttonInOptional, double* lock_thresholdInOptional)

    Return the delta from the initial clicking position while the mouse button is
    pressed or was just released. This is locked and return 0.0 until the mouse
    moves past a distance threshold at least once (if lock_threshold < -1.0, uses
    ConfigVar_MouseDragThreshold).

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx
    number x
    number y
    optional integer buttonIn
    optional number lock_thresholdIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMousePos

    C: void ImGui_GetMousePos(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetMousePos", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetMousePos(ImGui_Context ctx)
    Python: void ImGui_GetMousePos(ImGui_Context* ctx, double* xOut, double* yOut)



    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMousePosOnOpeningCurrentPopup

    C: void ImGui_GetMousePosOnOpeningCurrentPopup(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetMousePosOnOpeningCurrentPopup", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetMousePosOnOpeningCurrentPopup(ImGui_Context ctx)
    Python: void ImGui_GetMousePosOnOpeningCurrentPopup(ImGui_Context* ctx, double* xOut, double* yOut)

    Retrieve mouse position at the time of opening popup we have BeginPopup()
    into (helper to avoid user backing that value themselves).

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetMouseWheel

    C: void ImGui_GetMouseWheel(ImGui_Context* ctx, double* verticalOut, double* horizontalOut)
    EEL2: extension_api("ImGui_GetMouseWheel", ImGui_Context ctx, &vertical, &horizontal)
    Lua: number vertical, number horizontal = reaper.ImGui_GetMouseWheel(ImGui_Context ctx)
    Python: void ImGui_GetMouseWheel(ImGui_Context* ctx, double* verticalOut, double* horizontalOut)

    Vertical: 1 unit scrolls about 5 lines text. >0 scrolls Up, <0 scrolls Down.
    Hold SHIFT to turn vertical scroll into horizontal scroll

    Horizontal: >0 scrolls Left, <0 scrolls Right.
    Most users don't have a mouse with a horizontal wheel.

    Returnvalues:
    number vertical
    number horizontal

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetScrollMaxX

    C: double ImGui_GetScrollMaxX(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetScrollMaxX", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetScrollMaxX(ImGui_Context ctx)
    Python: double ImGui_GetScrollMaxX(ImGui_Context* ctx)

    Get maximum scrolling amount ~~ ContentSize.x - WindowSize.x - DecorationsSize.x

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetScrollMaxY

    C: double ImGui_GetScrollMaxY(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetScrollMaxY", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetScrollMaxY(ImGui_Context ctx)
    Python: double ImGui_GetScrollMaxY(ImGui_Context* ctx)

    Get maximum scrolling amount ~~ ContentSize.y - WindowSize.y - DecorationsSize.y

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetScrollX

    C: double ImGui_GetScrollX(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetScrollX", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetScrollX(ImGui_Context ctx)
    Python: double ImGui_GetScrollX(ImGui_Context* ctx)

    Get scrolling amount [0 .. GetScrollMaxX()]

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetScrollY

    C: double ImGui_GetScrollY(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetScrollY", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetScrollY(ImGui_Context ctx)
    Python: double ImGui_GetScrollY(ImGui_Context* ctx)

    Get scrolling amount [0 .. GetScrollMaxY()]

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetStyleColor

    C: int ImGui_GetStyleColor(ImGui_Context* ctx, int idx)
    EEL2: int extension_api("ImGui_GetStyleColor", ImGui_Context ctx, int idx)
    Lua: integer retval = reaper.ImGui_GetStyleColor(ImGui_Context ctx, integer idx)
    Python: int ImGui_GetStyleColor(ImGui_Context* ctx, int idx)

    Retrieve style color as stored in ImGuiStyle structure.
    Use to feed back into PushStyleColor, Otherwise use GetColor to get style color
    with style alpha baked in. See Col_* for available style colors.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx
    integer idx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetStyleVar

    C: void ImGui_GetStyleVar(ImGui_Context* ctx, int var_idx, double* val1Out, double* val2Out)
    EEL2: extension_api("ImGui_GetStyleVar", ImGui_Context ctx, int var_idx, &val1, &val2)
    Lua: number val1, number val2 = reaper.ImGui_GetStyleVar(ImGui_Context ctx, integer var_idx)
    Python: void ImGui_GetStyleVar(ImGui_Context* ctx, int var_idx, double* val1Out, double* val2Out)



    Returnvalues:
    number val1
    number val2

    Parameters:
    ImGui_Context ctx
    integer var_idx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetTextLineHeight

    C: double ImGui_GetTextLineHeight(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetTextLineHeight", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetTextLineHeight(ImGui_Context ctx)
    Python: double ImGui_GetTextLineHeight(ImGui_Context* ctx)

    Same as GetFontSize

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetTextLineHeightWithSpacing

    C: double ImGui_GetTextLineHeightWithSpacing(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetTextLineHeightWithSpacing", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetTextLineHeightWithSpacing(ImGui_Context ctx)
    Python: double ImGui_GetTextLineHeightWithSpacing(ImGui_Context* ctx)

    GetFontSize + StyleVar_ItemSpacing.y
    (distance in pixels between 2 consecutive lines of text).

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetTime

    C: double ImGui_GetTime(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetTime", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetTime(ImGui_Context ctx)
    Python: double ImGui_GetTime(ImGui_Context* ctx)

    Get global imgui time. Incremented every frame.

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetTreeNodeToLabelSpacing

    C: double ImGui_GetTreeNodeToLabelSpacing(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetTreeNodeToLabelSpacing", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetTreeNodeToLabelSpacing(ImGui_Context ctx)
    Python: double ImGui_GetTreeNodeToLabelSpacing(ImGui_Context* ctx)

    Horizontal distance preceding label when using TreeNode*() or Bullet()
    == (GetFontSize + StyleVar_FramePadding.x*2) for a regular unframed TreeNode.

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetVersion

    C: void ImGui_GetVersion(char* imgui_versionOut, int imgui_versionOut_sz, int* imgui_version_numOut, char* reaimgui_versionOut, int reaimgui_versionOut_sz)
    EEL2: extension_api("ImGui_GetVersion", #imgui_version, int &imgui_version_num, #reaimgui_version)
    Lua: string imgui_version, integer imgui_version_num, string reaimgui_version = reaper.ImGui_GetVersion()
    Python: void ImGui_GetVersion(char* imgui_versionOut, int imgui_versionOut_sz, int* imgui_version_numOut, char* reaimgui_versionOut, int reaimgui_versionOut_sz)



    Returnvalues:
    string imgui_version
    integer imgui_version_num
    string reaimgui_version


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowContentRegionMax

    C: void ImGui_GetWindowContentRegionMax(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetWindowContentRegionMax", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetWindowContentRegionMax(ImGui_Context ctx)
    Python: void ImGui_GetWindowContentRegionMax(ImGui_Context* ctx, double* xOut, double* yOut)

    Content boundaries max (roughly (0,0)+Size-Scroll) where Size can be
    overridden with SetNextWindowContentSize, in window coordinates.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowContentRegionMin

    C: void ImGui_GetWindowContentRegionMin(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetWindowContentRegionMin", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetWindowContentRegionMin(ImGui_Context ctx)
    Python: void ImGui_GetWindowContentRegionMin(ImGui_Context* ctx, double* xOut, double* yOut)

    Content boundaries min (roughly (0,0)-Scroll), in window coordinates.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowDockID

    C: int ImGui_GetWindowDockID(ImGui_Context* ctx)
    EEL2: int extension_api("ImGui_GetWindowDockID", ImGui_Context ctx)
    Lua: integer retval = reaper.ImGui_GetWindowDockID(ImGui_Context ctx)
    Python: int ImGui_GetWindowDockID(ImGui_Context* ctx)



    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowDpiScale

    C: double ImGui_GetWindowDpiScale(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetWindowDpiScale", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetWindowDpiScale(ImGui_Context ctx)
    Python: double ImGui_GetWindowDpiScale(ImGui_Context* ctx)

    Get DPI scale currently associated to the current window's viewport
    (1.0 = 96 DPI).

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowDrawList

    C: ImGui_DrawList* ImGui_GetWindowDrawList(ImGui_Context* ctx)
    EEL2: ImGui_DrawList extension_api("ImGui_GetWindowDrawList", ImGui_Context ctx)
    Lua: ImGui_DrawList reaper.ImGui_GetWindowDrawList(ImGui_Context ctx)
    Python: ImGui_DrawList* ImGui_GetWindowDrawList(ImGui_Context* ctx)

    The draw list associated to the current window, to append your own drawing primitives

    Returnvalues:
    ImGui_DrawList

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowHeight

    C: double ImGui_GetWindowHeight(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetWindowHeight", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetWindowHeight(ImGui_Context ctx)
    Python: double ImGui_GetWindowHeight(ImGui_Context* ctx)

    Get current window height (shortcut for (select(2, GetWindowSize())).

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowPos

    C: void ImGui_GetWindowPos(ImGui_Context* ctx, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_GetWindowPos", ImGui_Context ctx, &x, &y)
    Lua: number x, number y = reaper.ImGui_GetWindowPos(ImGui_Context ctx)
    Python: void ImGui_GetWindowPos(ImGui_Context* ctx, double* xOut, double* yOut)

    Get current window position in screen space (useful if you want to do your own
    drawing via the DrawList API).

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowSize

    C: void ImGui_GetWindowSize(ImGui_Context* ctx, double* wOut, double* hOut)
    EEL2: extension_api("ImGui_GetWindowSize", ImGui_Context ctx, &w, &h)
    Lua: number w, number h = reaper.ImGui_GetWindowSize(ImGui_Context ctx)
    Python: void ImGui_GetWindowSize(ImGui_Context* ctx, double* wOut, double* hOut)

    Get current window size

    Returnvalues:
    number w
    number h

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowViewport

    C: ImGui_Viewport* ImGui_GetWindowViewport(ImGui_Context* ctx)
    EEL2: ImGui_Viewport extension_api("ImGui_GetWindowViewport", ImGui_Context ctx)
    Lua: ImGui_Viewport reaper.ImGui_GetWindowViewport(ImGui_Context ctx)
    Python: ImGui_Viewport* ImGui_GetWindowViewport(ImGui_Context* ctx)

    Get viewport currently associated to the current window.

    Returnvalues:
    ImGui_Viewport

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_GetWindowWidth

    C: double ImGui_GetWindowWidth(ImGui_Context* ctx)
    EEL2: double extension_api("ImGui_GetWindowWidth", ImGui_Context ctx)
    Lua: number retval = reaper.ImGui_GetWindowWidth(ImGui_Context ctx)
    Python: double ImGui_GetWindowWidth(ImGui_Context* ctx)

    Get current window width (shortcut for (select(1, GetWindowSize())).

    Returnvalues:
    number retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_AllowWhenBlockedByActiveItem

    C: int ImGui_HoveredFlags_AllowWhenBlockedByActiveItem()
    EEL2: int extension_api("ImGui_HoveredFlags_AllowWhenBlockedByActiveItem")
    Lua: integer retval = reaper.ImGui_HoveredFlags_AllowWhenBlockedByActiveItem()
    Python: int ImGui_HoveredFlags_AllowWhenBlockedByActiveItem()

    Return true even if an active item is blocking access to this item/window.
      Useful for Drag and Drop patterns.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_AllowWhenBlockedByPopup

    C: int ImGui_HoveredFlags_AllowWhenBlockedByPopup()
    EEL2: int extension_api("ImGui_HoveredFlags_AllowWhenBlockedByPopup")
    Lua: integer retval = reaper.ImGui_HoveredFlags_AllowWhenBlockedByPopup()
    Python: int ImGui_HoveredFlags_AllowWhenBlockedByPopup()

    Return true even if a popup window is normally blocking access to this item/window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_AllowWhenDisabled

    C: int ImGui_HoveredFlags_AllowWhenDisabled()
    EEL2: int extension_api("ImGui_HoveredFlags_AllowWhenDisabled")
    Lua: integer retval = reaper.ImGui_HoveredFlags_AllowWhenDisabled()
    Python: int ImGui_HoveredFlags_AllowWhenDisabled()

    IsItemHovered only: Return true even if the item is disabled.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_AllowWhenOverlapped

    C: int ImGui_HoveredFlags_AllowWhenOverlapped()
    EEL2: int extension_api("ImGui_HoveredFlags_AllowWhenOverlapped")
    Lua: integer retval = reaper.ImGui_HoveredFlags_AllowWhenOverlapped()
    Python: int ImGui_HoveredFlags_AllowWhenOverlapped()

    IsItemHovered only: Return true even if the position is obstructed or
      overlapped by another window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_AnyWindow

    C: int ImGui_HoveredFlags_AnyWindow()
    EEL2: int extension_api("ImGui_HoveredFlags_AnyWindow")
    Lua: integer retval = reaper.ImGui_HoveredFlags_AnyWindow()
    Python: int ImGui_HoveredFlags_AnyWindow()

    IsWindowHovered only: Return true if any window is hovered.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_ChildWindows

    C: int ImGui_HoveredFlags_ChildWindows()
    EEL2: int extension_api("ImGui_HoveredFlags_ChildWindows")
    Lua: integer retval = reaper.ImGui_HoveredFlags_ChildWindows()
    Python: int ImGui_HoveredFlags_ChildWindows()

    IsWindowHovered only: Return true if any children of the window is hovered.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_DelayNormal

    C: int ImGui_HoveredFlags_DelayNormal()
    EEL2: int extension_api("ImGui_HoveredFlags_DelayNormal")
    Lua: integer retval = reaper.ImGui_HoveredFlags_DelayNormal()
    Python: int ImGui_HoveredFlags_DelayNormal()

    Return true after ConfigVar_HoverDelayNormal elapsed (~0.30 sec)

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_DelayShort

    C: int ImGui_HoveredFlags_DelayShort()
    EEL2: int extension_api("ImGui_HoveredFlags_DelayShort")
    Lua: integer retval = reaper.ImGui_HoveredFlags_DelayShort()
    Python: int ImGui_HoveredFlags_DelayShort()

    Return true after ConfigVar_HoverDelayShort elapsed (~0.10 sec)

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_DockHierarchy

    C: int ImGui_HoveredFlags_DockHierarchy()
    EEL2: int extension_api("ImGui_HoveredFlags_DockHierarchy")
    Lua: integer retval = reaper.ImGui_HoveredFlags_DockHierarchy()
    Python: int ImGui_HoveredFlags_DockHierarchy()

    IsWindowHovered only: Consider docking hierarchy (treat dockspace host as
      parent of docked window) (when used with _ChildWindows or _RootWindow).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_NoNavOverride

    C: int ImGui_HoveredFlags_NoNavOverride()
    EEL2: int extension_api("ImGui_HoveredFlags_NoNavOverride")
    Lua: integer retval = reaper.ImGui_HoveredFlags_NoNavOverride()
    Python: int ImGui_HoveredFlags_NoNavOverride()

    Disable using gamepad/keyboard navigation state when active, always query mouse.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_NoPopupHierarchy

    C: int ImGui_HoveredFlags_NoPopupHierarchy()
    EEL2: int extension_api("ImGui_HoveredFlags_NoPopupHierarchy")
    Lua: integer retval = reaper.ImGui_HoveredFlags_NoPopupHierarchy()
    Python: int ImGui_HoveredFlags_NoPopupHierarchy()

    IsWindowHovered only: Do not consider popup hierarchy (do not treat popup
      emitter as parent of popup) (when used with _ChildWindows or _RootWindow).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_NoSharedDelay

    C: int ImGui_HoveredFlags_NoSharedDelay()
    EEL2: int extension_api("ImGui_HoveredFlags_NoSharedDelay")
    Lua: integer retval = reaper.ImGui_HoveredFlags_NoSharedDelay()
    Python: int ImGui_HoveredFlags_NoSharedDelay()

    Disable shared delay system where moving from one item to the next keeps
      the previous timer for a short time (standard for tooltips with long delays

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_None

    C: int ImGui_HoveredFlags_None()
    EEL2: int extension_api("ImGui_HoveredFlags_None")
    Lua: integer retval = reaper.ImGui_HoveredFlags_None()
    Python: int ImGui_HoveredFlags_None()

    Return true if directly over the item/window, not obstructed by another
      window, not obstructed by an active popup or modal blocking inputs under them.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_RectOnly

    C: int ImGui_HoveredFlags_RectOnly()
    EEL2: int extension_api("ImGui_HoveredFlags_RectOnly")
    Lua: integer retval = reaper.ImGui_HoveredFlags_RectOnly()
    Python: int ImGui_HoveredFlags_RectOnly()

    HoveredFlags_AllowWhenBlockedByPopup |
      HoveredFlags_AllowWhenBlockedByActiveItem | HoveredFlags_AllowWhenOverlapped

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_RootAndChildWindows

    C: int ImGui_HoveredFlags_RootAndChildWindows()
    EEL2: int extension_api("ImGui_HoveredFlags_RootAndChildWindows")
    Lua: integer retval = reaper.ImGui_HoveredFlags_RootAndChildWindows()
    Python: int ImGui_HoveredFlags_RootAndChildWindows()

    HoveredFlags_RootWindow | HoveredFlags_ChildWindows

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_HoveredFlags_RootWindow

    C: int ImGui_HoveredFlags_RootWindow()
    EEL2: int extension_api("ImGui_HoveredFlags_RootWindow")
    Lua: integer retval = reaper.ImGui_HoveredFlags_RootWindow()
    Python: int ImGui_HoveredFlags_RootWindow()

    IsWindowHovered only: Test from root window (top most parent of the current hierarchy).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Image

    C: void ImGui_Image(ImGui_Context* ctx, ImGui_Image* img, double size_w, double size_h, double* uv0_xInOptional, double* uv0_yInOptional, double* uv1_xInOptional, double* uv1_yInOptional, int* tint_col_rgbaInOptional, int* border_col_rgbaInOptional)
    EEL2: extension_api("ImGui_Image", ImGui_Context ctx, ImGui_Image img, size_w, size_h, optional uv0_xIn, optional uv0_yIn, optional uv1_xIn, optional uv1_yIn, optional int tint_col_rgbaIn, optional int border_col_rgbaIn)
    Lua: reaper.ImGui_Image(ImGui_Context ctxImGui_Image img, number size_w, number size_h, optional number uv0_xIn, optional number uv0_yIn, optional number uv1_xIn, optional number uv1_yIn, optional integer tint_col_rgbaIn, optional integer border_col_rgbaIn)
    Python: void ImGui_Image(ImGui_Context* ctx, ImGui_Image* img, double size_w, double size_h, double* uv0_xInOptional, double* uv0_yInOptional, double* uv1_xInOptional, double* uv1_yInOptional, int* tint_col_rgbaInOptional, int* border_col_rgbaInOptional)



    Parameters:
    ImGui_Context ctxImGui_Image img
    number size_w
    number size_h
    optional number uv0_xIn
    optional number uv0_yIn
    optional number uv1_xIn
    optional number uv1_yIn
    optional integer tint_col_rgbaIn
    optional integer border_col_rgbaIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ImageButton

    C: bool ImGui_ImageButton(ImGui_Context* ctx, const char* str_id, ImGui_Image* img, double size_w, double size_h, double* uv0_xInOptional, double* uv0_yInOptional, double* uv1_xInOptional, double* uv1_yInOptional, int* bg_col_rgbaInOptional, int* tint_col_rgbaInOptional)
    EEL2: bool extension_api("ImGui_ImageButton", ImGui_Context ctx, "str_id", ImGui_Image img, size_w, size_h, optional uv0_xIn, optional uv0_yIn, optional uv1_xIn, optional uv1_yIn, optional int bg_col_rgbaIn, optional int tint_col_rgbaIn)
    Lua: boolean reaper.ImGui_ImageButton(ImGui_Context ctx, string str_idImGui_Image img, number size_w, number size_h, optional number uv0_xIn, optional number uv0_yIn, optional number uv1_xIn, optional number uv1_yIn, optional integer bg_col_rgbaIn, optional integer tint_col_rgbaIn)
    Python: bool ImGui_ImageButton(ImGui_Context* ctx, const char* str_id, ImGui_Image* img, double size_w, double size_h, double* uv0_xInOptional, double* uv0_yInOptional, double* uv1_xInOptional, double* uv1_yInOptional, int* bg_col_rgbaInOptional, int* tint_col_rgbaInOptional)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_idImGui_Image img
    number size_w
    number size_h
    optional number uv0_xIn
    optional number uv0_yIn
    optional number uv1_xIn
    optional number uv1_yIn
    optional integer bg_col_rgbaIn
    optional integer tint_col_rgbaIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ImageSet_Add

    C: void ImGui_ImageSet_Add(ImGui_ImageSet* set, double scale, ImGui_Image* img)
    EEL2: extension_api("ImGui_ImageSet_Add", ImGui_ImageSet set, scale, ImGui_Image img)
    Lua: reaper.ImGui_ImageSet_Add(ImGui_ImageSet set, number scaleImGui_Image img)
    Python: void ImGui_ImageSet_Add(ImGui_ImageSet* set, double scale, ImGui_Image* img)

    'img' cannot be another ImageSet.

    Parameters:
    ImGui_ImageSet set
    number scaleImGui_Image img


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Image_GetSize

    C: void ImGui_Image_GetSize(ImGui_Image* img, double* wOut, double* hOut)
    EEL2: extension_api("ImGui_Image_GetSize", ImGui_Image img, &w, &h)
    Lua: number w, number h = reaper.ImGui_Image_GetSize(ImGui_Image img)
    Python: void ImGui_Image_GetSize(ImGui_Image* img, double* wOut, double* hOut)



    Returnvalues:
    number w
    number h

    Parameters:
    ImGui_Image img


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Indent

    C: void ImGui_Indent(ImGui_Context* ctx, double* indent_wInOptional)
    EEL2: extension_api("ImGui_Indent", ImGui_Context ctx, optional indent_wIn)
    Lua: reaper.ImGui_Indent(ImGui_Context ctx, optional number indent_wIn)
    Python: void ImGui_Indent(ImGui_Context* ctx, double* indent_wInOptional)

    Move content position toward the right, by 'indent_w', or
    StyleVar_IndentSpacing if 'indent_w' <= 0. See Unindent.

    Parameters:
    ImGui_Context ctx
    optional number indent_wIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputDouble

    C: bool ImGui_InputDouble(ImGui_Context* ctx, const char* label, double* vInOut, double* stepInOptional, double* step_fastInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputDouble", ImGui_Context ctx, "label", &v, optional stepIn, optional step_fastIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v = reaper.ImGui_InputDouble(ImGui_Context ctx, string label, number v, optional number stepIn, optional number step_fastIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_InputDouble(ImGui_Context* ctx, const char* label, double* vInOut, double* stepInOptional, double* step_fastInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v

    Parameters:
    ImGui_Context ctx
    string label
    number v
    optional number stepIn
    optional number step_fastIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputDouble2

    C: bool ImGui_InputDouble2(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputDouble2", ImGui_Context ctx, "label", &v1, &v2, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2 = reaper.ImGui_InputDouble2(ImGui_Context ctx, string label, number v1, number v2, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_InputDouble2(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputDouble3

    C: bool ImGui_InputDouble3(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputDouble3", ImGui_Context ctx, "label", &v1, &v2, &v3, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2, number v3 = reaper.ImGui_InputDouble3(ImGui_Context ctx, string label, number v1, number v2, number v3, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_InputDouble3(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2
    number v3

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    number v3
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputDouble4

    C: bool ImGui_InputDouble4(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v4InOut, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputDouble4", ImGui_Context ctx, "label", &v1, &v2, &v3, &v4, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2, number v3, number v4 = reaper.ImGui_InputDouble4(ImGui_Context ctx, string label, number v1, number v2, number v3, number v4, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_InputDouble4(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v4InOut, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2
    number v3
    number v4

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    number v3
    number v4
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputDoubleN

    C: bool ImGui_InputDoubleN(ImGui_Context* ctx, const char* label, reaper_array* values, double* stepInOptional, double* step_fastInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputDoubleN", ImGui_Context ctx, "label", reaper.array values, optional stepIn, optional step_fastIn, optional "formatIn", optional int flagsIn)
    Lua: boolean reaper.ImGui_InputDoubleN(ImGui_Context ctx, string labelreaper_array values, optional number stepIn, optional number step_fastIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_InputDoubleN(ImGui_Context* ctx, const char* label, reaper_array* values, double* stepInOptional, double* step_fastInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string labelreaper_array values
    optional number stepIn
    optional number step_fastIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputInt

    C: bool ImGui_InputInt(ImGui_Context* ctx, const char* label, int* vInOut, int* stepInOptional, int* step_fastInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputInt", ImGui_Context ctx, "label", int &v, optional int stepIn, optional int step_fastIn, optional int flagsIn)
    Lua: boolean retval, integer v = reaper.ImGui_InputInt(ImGui_Context ctx, string label, integer v, optional integer stepIn, optional integer step_fastIn, optional integer flagsIn)
    Python: bool ImGui_InputInt(ImGui_Context* ctx, const char* label, int* vInOut, int* stepInOptional, int* step_fastInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v

    Parameters:
    ImGui_Context ctx
    string label
    integer v
    optional integer stepIn
    optional integer step_fastIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputInt2

    C: bool ImGui_InputInt2(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputInt2", ImGui_Context ctx, "label", int &v1, int &v2, optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2 = reaper.ImGui_InputInt2(ImGui_Context ctx, string label, integer v1, integer v2, optional integer flagsIn)
    Python: bool ImGui_InputInt2(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputInt3

    C: bool ImGui_InputInt3(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputInt3", ImGui_Context ctx, "label", int &v1, int &v2, int &v3, optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2, integer v3 = reaper.ImGui_InputInt3(ImGui_Context ctx, string label, integer v1, integer v2, integer v3, optional integer flagsIn)
    Python: bool ImGui_InputInt3(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2
    integer v3

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    integer v3
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputInt4

    C: bool ImGui_InputInt4(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* v4InOut, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InputInt4", ImGui_Context ctx, "label", int &v1, int &v2, int &v3, int &v4, optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2, integer v3, integer v4 = reaper.ImGui_InputInt4(ImGui_Context ctx, string label, integer v1, integer v2, integer v3, integer v4, optional integer flagsIn)
    Python: bool ImGui_InputInt4(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* v4InOut, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2
    integer v3
    integer v4

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    integer v3
    integer v4
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputText

    C: bool ImGui_InputText(ImGui_Context* ctx, const char* label, char* bufInOutNeedBig, int bufInOutNeedBig_sz, int* flagsInOptional, ImGui_Function* callbackInOptional)
    EEL2: bool extension_api("ImGui_InputText", ImGui_Context ctx, "label", #buf, optional int flagsIn, ImGui_Function callbackIn)
    Lua: boolean retval, string buf = reaper.ImGui_InputText(ImGui_Context ctx, string label, string buf, optional integer flagsIn, ImGui_Function callbackIn)
    Python: bool ImGui_InputText(ImGui_Context* ctx, const char* label, char* bufInOutNeedBig, int bufInOutNeedBig_sz, int* flagsInOptional, ImGui_Function* callbackInOptional)



    Returnvalues:
    boolean retval
    string buf

    Parameters:
    ImGui_Context ctx
    string label
    string buf
    optional integer flagsIn
    ImGui_Function callbackIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_AllowTabInput

    C: int ImGui_InputTextFlags_AllowTabInput()
    EEL2: int extension_api("ImGui_InputTextFlags_AllowTabInput")
    Lua: integer retval = reaper.ImGui_InputTextFlags_AllowTabInput()
    Python: int ImGui_InputTextFlags_AllowTabInput()

    Pressing TAB input a '\t' character into the text field.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_AlwaysOverwrite

    C: int ImGui_InputTextFlags_AlwaysOverwrite()
    EEL2: int extension_api("ImGui_InputTextFlags_AlwaysOverwrite")
    Lua: integer retval = reaper.ImGui_InputTextFlags_AlwaysOverwrite()
    Python: int ImGui_InputTextFlags_AlwaysOverwrite()

    Overwrite mode.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_AutoSelectAll

    C: int ImGui_InputTextFlags_AutoSelectAll()
    EEL2: int extension_api("ImGui_InputTextFlags_AutoSelectAll")
    Lua: integer retval = reaper.ImGui_InputTextFlags_AutoSelectAll()
    Python: int ImGui_InputTextFlags_AutoSelectAll()

    Select entire text when first taking mouse focus.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CallbackAlways

    C: int ImGui_InputTextFlags_CallbackAlways()
    EEL2: int extension_api("ImGui_InputTextFlags_CallbackAlways")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CallbackAlways()
    Python: int ImGui_InputTextFlags_CallbackAlways()

    Callback on each iteration. User code may query cursor position, modify text buffer.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CallbackCharFilter

    C: int ImGui_InputTextFlags_CallbackCharFilter()
    EEL2: int extension_api("ImGui_InputTextFlags_CallbackCharFilter")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CallbackCharFilter()
    Python: int ImGui_InputTextFlags_CallbackCharFilter()

    Callback on character inputs to replace or discard them.
       Modify 'EventChar' to replace or 'EventChar = 0' to discard.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CallbackCompletion

    C: int ImGui_InputTextFlags_CallbackCompletion()
    EEL2: int extension_api("ImGui_InputTextFlags_CallbackCompletion")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CallbackCompletion()
    Python: int ImGui_InputTextFlags_CallbackCompletion()

    Callback on pressing TAB (for completion handling).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CallbackEdit

    C: int ImGui_InputTextFlags_CallbackEdit()
    EEL2: int extension_api("ImGui_InputTextFlags_CallbackEdit")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CallbackEdit()
    Python: int ImGui_InputTextFlags_CallbackEdit()

    Callback on any edit (note that InputText() already returns true on edit,
       the callback is useful mainly to manipulate the underlying buffer while
       focus is active).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CallbackHistory

    C: int ImGui_InputTextFlags_CallbackHistory()
    EEL2: int extension_api("ImGui_InputTextFlags_CallbackHistory")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CallbackHistory()
    Python: int ImGui_InputTextFlags_CallbackHistory()

    Callback on pressing Up/Down arrows (for history handling).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CharsDecimal

    C: int ImGui_InputTextFlags_CharsDecimal()
    EEL2: int extension_api("ImGui_InputTextFlags_CharsDecimal")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CharsDecimal()
    Python: int ImGui_InputTextFlags_CharsDecimal()

    Allow 0123456789.+-*/.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CharsHexadecimal

    C: int ImGui_InputTextFlags_CharsHexadecimal()
    EEL2: int extension_api("ImGui_InputTextFlags_CharsHexadecimal")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CharsHexadecimal()
    Python: int ImGui_InputTextFlags_CharsHexadecimal()

    Allow 0123456789ABCDEFabcdef.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CharsNoBlank

    C: int ImGui_InputTextFlags_CharsNoBlank()
    EEL2: int extension_api("ImGui_InputTextFlags_CharsNoBlank")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CharsNoBlank()
    Python: int ImGui_InputTextFlags_CharsNoBlank()

    Filter out spaces, tabs.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CharsScientific

    C: int ImGui_InputTextFlags_CharsScientific()
    EEL2: int extension_api("ImGui_InputTextFlags_CharsScientific")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CharsScientific()
    Python: int ImGui_InputTextFlags_CharsScientific()

    Allow 0123456789.+-*/eE (Scientific notation input).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CharsUppercase

    C: int ImGui_InputTextFlags_CharsUppercase()
    EEL2: int extension_api("ImGui_InputTextFlags_CharsUppercase")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CharsUppercase()
    Python: int ImGui_InputTextFlags_CharsUppercase()

    Turn a..z into A..Z.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_CtrlEnterForNewLine

    C: int ImGui_InputTextFlags_CtrlEnterForNewLine()
    EEL2: int extension_api("ImGui_InputTextFlags_CtrlEnterForNewLine")
    Lua: integer retval = reaper.ImGui_InputTextFlags_CtrlEnterForNewLine()
    Python: int ImGui_InputTextFlags_CtrlEnterForNewLine()

    In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter
       (default is opposite: unfocus with Ctrl+Enter, add line with Enter).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_EnterReturnsTrue

    C: int ImGui_InputTextFlags_EnterReturnsTrue()
    EEL2: int extension_api("ImGui_InputTextFlags_EnterReturnsTrue")
    Lua: integer retval = reaper.ImGui_InputTextFlags_EnterReturnsTrue()
    Python: int ImGui_InputTextFlags_EnterReturnsTrue()

    Return 'true' when Enter is pressed (as opposed to every time the value was
       modified). Consider looking at the IsItemDeactivatedAfterEdit function.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_EscapeClearsAll

    C: int ImGui_InputTextFlags_EscapeClearsAll()
    EEL2: int extension_api("ImGui_InputTextFlags_EscapeClearsAll")
    Lua: integer retval = reaper.ImGui_InputTextFlags_EscapeClearsAll()
    Python: int ImGui_InputTextFlags_EscapeClearsAll()

    Escape key clears content if not empty, and deactivate otherwise
       (constrast to default behavior of Escape to revert).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_NoHorizontalScroll

    C: int ImGui_InputTextFlags_NoHorizontalScroll()
    EEL2: int extension_api("ImGui_InputTextFlags_NoHorizontalScroll")
    Lua: integer retval = reaper.ImGui_InputTextFlags_NoHorizontalScroll()
    Python: int ImGui_InputTextFlags_NoHorizontalScroll()

    Disable following the cursor horizontally.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_NoUndoRedo

    C: int ImGui_InputTextFlags_NoUndoRedo()
    EEL2: int extension_api("ImGui_InputTextFlags_NoUndoRedo")
    Lua: integer retval = reaper.ImGui_InputTextFlags_NoUndoRedo()
    Python: int ImGui_InputTextFlags_NoUndoRedo()

    Disable undo/redo. Note that input text owns the text data while active.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_None

    C: int ImGui_InputTextFlags_None()
    EEL2: int extension_api("ImGui_InputTextFlags_None")
    Lua: integer retval = reaper.ImGui_InputTextFlags_None()
    Python: int ImGui_InputTextFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_Password

    C: int ImGui_InputTextFlags_Password()
    EEL2: int extension_api("ImGui_InputTextFlags_Password")
    Lua: integer retval = reaper.ImGui_InputTextFlags_Password()
    Python: int ImGui_InputTextFlags_Password()

    Password mode, display all characters as '*'.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextFlags_ReadOnly

    C: int ImGui_InputTextFlags_ReadOnly()
    EEL2: int extension_api("ImGui_InputTextFlags_ReadOnly")
    Lua: integer retval = reaper.ImGui_InputTextFlags_ReadOnly()
    Python: int ImGui_InputTextFlags_ReadOnly()

    Read-only mode.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextMultiline

    C: bool ImGui_InputTextMultiline(ImGui_Context* ctx, const char* label, char* bufInOutNeedBig, int bufInOutNeedBig_sz, double* size_wInOptional, double* size_hInOptional, int* flagsInOptional, ImGui_Function* callbackInOptional)
    EEL2: bool extension_api("ImGui_InputTextMultiline", ImGui_Context ctx, "label", #buf, optional size_wIn, optional size_hIn, optional int flagsIn, ImGui_Function callbackIn)
    Lua: boolean retval, string buf = reaper.ImGui_InputTextMultiline(ImGui_Context ctx, string label, string buf, optional number size_wIn, optional number size_hIn, optional integer flagsIn, ImGui_Function callbackIn)
    Python: bool ImGui_InputTextMultiline(ImGui_Context* ctx, const char* label, char* bufInOutNeedBig, int bufInOutNeedBig_sz, double* size_wInOptional, double* size_hInOptional, int* flagsInOptional, ImGui_Function* callbackInOptional)



    Returnvalues:
    boolean retval
    string buf

    Parameters:
    ImGui_Context ctx
    string label
    string buf
    optional number size_wIn
    optional number size_hIn
    optional integer flagsIn
    ImGui_Function callbackIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InputTextWithHint

    C: bool ImGui_InputTextWithHint(ImGui_Context* ctx, const char* label, const char* hint, char* bufInOutNeedBig, int bufInOutNeedBig_sz, int* flagsInOptional, ImGui_Function* callbackInOptional)
    EEL2: bool extension_api("ImGui_InputTextWithHint", ImGui_Context ctx, "label", "hint", #buf, optional int flagsIn, ImGui_Function callbackIn)
    Lua: boolean retval, string buf = reaper.ImGui_InputTextWithHint(ImGui_Context ctx, string label, string hint, string buf, optional integer flagsIn, ImGui_Function callbackIn)
    Python: bool ImGui_InputTextWithHint(ImGui_Context* ctx, const char* label, const char* hint, char* bufInOutNeedBig, int bufInOutNeedBig_sz, int* flagsInOptional, ImGui_Function* callbackInOptional)



    Returnvalues:
    boolean retval
    string buf

    Parameters:
    ImGui_Context ctx
    string label
    string hint
    string buf
    optional integer flagsIn
    ImGui_Function callbackIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_InvisibleButton

    C: bool ImGui_InvisibleButton(ImGui_Context* ctx, const char* str_id, double size_w, double size_h, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_InvisibleButton", ImGui_Context ctx, "str_id", size_w, size_h, optional int flagsIn)
    Lua: boolean reaper.ImGui_InvisibleButton(ImGui_Context ctx, string str_id, number size_w, number size_h, optional integer flagsIn)
    Python: bool ImGui_InvisibleButton(ImGui_Context* ctx, const char* str_id, double size_w, double size_h, int* flagsInOptional)

    Flexible button behavior without the visuals, frequently useful to build
    custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.).

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    number size_w
    number size_h
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsAnyItemActive

    C: bool ImGui_IsAnyItemActive(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsAnyItemActive", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsAnyItemActive(ImGui_Context ctx)
    Python: bool ImGui_IsAnyItemActive(ImGui_Context* ctx)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsAnyItemFocused

    C: bool ImGui_IsAnyItemFocused(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsAnyItemFocused", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsAnyItemFocused(ImGui_Context ctx)
    Python: bool ImGui_IsAnyItemFocused(ImGui_Context* ctx)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsAnyItemHovered

    C: bool ImGui_IsAnyItemHovered(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsAnyItemHovered", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsAnyItemHovered(ImGui_Context ctx)
    Python: bool ImGui_IsAnyItemHovered(ImGui_Context* ctx)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsAnyMouseDown

    C: bool ImGui_IsAnyMouseDown(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsAnyMouseDown", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsAnyMouseDown(ImGui_Context ctx)
    Python: bool ImGui_IsAnyMouseDown(ImGui_Context* ctx)

    Is any mouse button held?

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemActivated

    C: bool ImGui_IsItemActivated(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemActivated", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemActivated(ImGui_Context ctx)
    Python: bool ImGui_IsItemActivated(ImGui_Context* ctx)

    Was the last item just made active (item was previously inactive).

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemActive

    C: bool ImGui_IsItemActive(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemActive", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemActive(ImGui_Context ctx)
    Python: bool ImGui_IsItemActive(ImGui_Context* ctx)

    Is the last item active? (e.g. button being held, text field being edited.
    This will continuously return true while holding mouse button on an item.
    Items that don't interact will always return false.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemClicked

    C: bool ImGui_IsItemClicked(ImGui_Context* ctx, int* mouse_buttonInOptional)
    EEL2: bool extension_api("ImGui_IsItemClicked", ImGui_Context ctx, optional int mouse_buttonIn)
    Lua: boolean reaper.ImGui_IsItemClicked(ImGui_Context ctx, optional integer mouse_buttonIn)
    Python: bool ImGui_IsItemClicked(ImGui_Context* ctx, int* mouse_buttonInOptional)

    Is the last item clicked? (e.g. button/node just clicked on)
    == IsMouseClicked(mouse_button) && IsItemHovered().

    This is NOT equivalent to the behavior of e.g. Button.
    Most widgets have specific reactions based on mouse-up/down state, mouse position etc.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional integer mouse_buttonIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemDeactivated

    C: bool ImGui_IsItemDeactivated(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemDeactivated", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemDeactivated(ImGui_Context ctx)
    Python: bool ImGui_IsItemDeactivated(ImGui_Context* ctx)

    Was the last item just made inactive (item was previously active).
    Useful for Undo/Redo patterns with widgets that require continuous editing.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemDeactivatedAfterEdit

    C: bool ImGui_IsItemDeactivatedAfterEdit(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemDeactivatedAfterEdit", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemDeactivatedAfterEdit(ImGui_Context ctx)
    Python: bool ImGui_IsItemDeactivatedAfterEdit(ImGui_Context* ctx)

    Was the last item just made inactive and made a value change when it was
    active? (e.g. Slider/Drag moved).

    Useful for Undo/Redo patterns with widgets that require continuous editing. Note
    that you may get false positives (some widgets such as Combo/ListBox/Selectable
    will return true even when clicking an already selected item).

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemEdited

    C: bool ImGui_IsItemEdited(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemEdited", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemEdited(ImGui_Context ctx)
    Python: bool ImGui_IsItemEdited(ImGui_Context* ctx)

    Did the last item modify its underlying value this frame? or was pressed?
    This is generally the same as the "bool" return value of many widgets.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemFocused

    C: bool ImGui_IsItemFocused(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemFocused", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemFocused(ImGui_Context ctx)
    Python: bool ImGui_IsItemFocused(ImGui_Context* ctx)

    Is the last item focused for keyboard/gamepad navigation?

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemHovered

    C: bool ImGui_IsItemHovered(ImGui_Context* ctx, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_IsItemHovered", ImGui_Context ctx, optional int flagsIn)
    Lua: boolean reaper.ImGui_IsItemHovered(ImGui_Context ctx, optional integer flagsIn)
    Python: bool ImGui_IsItemHovered(ImGui_Context* ctx, int* flagsInOptional)

    Is the last item hovered? (and usable, aka not blocked by a popup, etc.).
    See HoveredFlags_* for more options.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemToggledOpen

    C: bool ImGui_IsItemToggledOpen(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemToggledOpen", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemToggledOpen(ImGui_Context ctx)
    Python: bool ImGui_IsItemToggledOpen(ImGui_Context* ctx)

    Was the last item open state toggled? Set by TreeNode.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsItemVisible

    C: bool ImGui_IsItemVisible(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsItemVisible", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsItemVisible(ImGui_Context ctx)
    Python: bool ImGui_IsItemVisible(ImGui_Context* ctx)

    Is the last item visible? (items may be out of sight because of clipping/scrolling)

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsKeyDown

    C: bool ImGui_IsKeyDown(ImGui_Context* ctx, int key)
    EEL2: bool extension_api("ImGui_IsKeyDown", ImGui_Context ctx, int key)
    Lua: boolean reaper.ImGui_IsKeyDown(ImGui_Context ctx, integer key)
    Python: bool ImGui_IsKeyDown(ImGui_Context* ctx, int key)

    Is key being held.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer key


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsKeyPressed

    C: bool ImGui_IsKeyPressed(ImGui_Context* ctx, int key, bool* repeatInOptional)
    EEL2: bool extension_api("ImGui_IsKeyPressed", ImGui_Context ctx, int key, optional bool repeatIn)
    Lua: boolean reaper.ImGui_IsKeyPressed(ImGui_Context ctx, integer key, optional boolean repeatIn)
    Python: bool ImGui_IsKeyPressed(ImGui_Context* ctx, int key, bool* repeatInOptional)

    Was key pressed (went from !Down to Down)?
    If repeat=true, uses ConfigVar_KeyRepeatDelay / ConfigVar_KeyRepeatRate.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer key
    optional boolean repeatIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsKeyReleased

    C: bool ImGui_IsKeyReleased(ImGui_Context* ctx, int key)
    EEL2: bool extension_api("ImGui_IsKeyReleased", ImGui_Context ctx, int key)
    Lua: boolean reaper.ImGui_IsKeyReleased(ImGui_Context ctx, integer key)
    Python: bool ImGui_IsKeyReleased(ImGui_Context* ctx, int key)

    Was key released (went from Down to !Down)?

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer key


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsMouseClicked

    C: bool ImGui_IsMouseClicked(ImGui_Context* ctx, int button, bool* repeatInOptional)
    EEL2: bool extension_api("ImGui_IsMouseClicked", ImGui_Context ctx, int button, optional bool repeatIn)
    Lua: boolean reaper.ImGui_IsMouseClicked(ImGui_Context ctx, integer button, optional boolean repeatIn)
    Python: bool ImGui_IsMouseClicked(ImGui_Context* ctx, int button, bool* repeatInOptional)

    Did mouse button clicked? (went from !Down to Down).
    Same as GetMouseClickedCount() == 1.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer button
    optional boolean repeatIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsMouseDoubleClicked

    C: bool ImGui_IsMouseDoubleClicked(ImGui_Context* ctx, int button)
    EEL2: bool extension_api("ImGui_IsMouseDoubleClicked", ImGui_Context ctx, int button)
    Lua: boolean reaper.ImGui_IsMouseDoubleClicked(ImGui_Context ctx, integer button)
    Python: bool ImGui_IsMouseDoubleClicked(ImGui_Context* ctx, int button)

    Did mouse button double-clicked? Same as GetMouseClickedCount() == 2.
    (Note that a double-click will also report IsMouseClicked() == true)

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer button


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsMouseDown

    C: bool ImGui_IsMouseDown(ImGui_Context* ctx, int button)
    EEL2: bool extension_api("ImGui_IsMouseDown", ImGui_Context ctx, int button)
    Lua: boolean reaper.ImGui_IsMouseDown(ImGui_Context ctx, integer button)
    Python: bool ImGui_IsMouseDown(ImGui_Context* ctx, int button)

    Is mouse button held?

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer button


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsMouseDragging

    C: bool ImGui_IsMouseDragging(ImGui_Context* ctx, int button, double* lock_thresholdInOptional)
    EEL2: bool extension_api("ImGui_IsMouseDragging", ImGui_Context ctx, int button, optional lock_thresholdIn)
    Lua: boolean reaper.ImGui_IsMouseDragging(ImGui_Context ctx, integer button, optional number lock_thresholdIn)
    Python: bool ImGui_IsMouseDragging(ImGui_Context* ctx, int button, double* lock_thresholdInOptional)

    Is mouse dragging? (if lock_threshold < -1.0, uses ConfigVar_MouseDragThreshold)

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer button
    optional number lock_thresholdIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsMouseHoveringRect

    C: bool ImGui_IsMouseHoveringRect(ImGui_Context* ctx, double r_min_x, double r_min_y, double r_max_x, double r_max_y, bool* clipInOptional)
    EEL2: bool extension_api("ImGui_IsMouseHoveringRect", ImGui_Context ctx, r_min_x, r_min_y, r_max_x, r_max_y, optional bool clipIn)
    Lua: boolean reaper.ImGui_IsMouseHoveringRect(ImGui_Context ctx, number r_min_x, number r_min_y, number r_max_x, number r_max_y, optional boolean clipIn)
    Python: bool ImGui_IsMouseHoveringRect(ImGui_Context* ctx, double r_min_x, double r_min_y, double r_max_x, double r_max_y, bool* clipInOptional)

    Is mouse hovering given bounding rect (in screen space).
    Clipped by current clipping settings, but disregarding of other consideration
    of focus/window ordering/popup-block.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    number r_min_x
    number r_min_y
    number r_max_x
    number r_max_y
    optional boolean clipIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsMousePosValid

    C: bool ImGui_IsMousePosValid(ImGui_Context* ctx, double* mouse_pos_xInOptional, double* mouse_pos_yInOptional)
    EEL2: bool extension_api("ImGui_IsMousePosValid", ImGui_Context ctx, optional mouse_pos_xIn, optional mouse_pos_yIn)
    Lua: boolean reaper.ImGui_IsMousePosValid(ImGui_Context ctx, optional number mouse_pos_xIn, optional number mouse_pos_yIn)
    Python: bool ImGui_IsMousePosValid(ImGui_Context* ctx, double* mouse_pos_xInOptional, double* mouse_pos_yInOptional)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional number mouse_pos_xIn
    optional number mouse_pos_yIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsMouseReleased

    C: bool ImGui_IsMouseReleased(ImGui_Context* ctx, int button)
    EEL2: bool extension_api("ImGui_IsMouseReleased", ImGui_Context ctx, int button)
    Lua: boolean reaper.ImGui_IsMouseReleased(ImGui_Context ctx, integer button)
    Python: bool ImGui_IsMouseReleased(ImGui_Context* ctx, int button)

    Did mouse button released? (went from Down to !Down)

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer button


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsPopupOpen

    C: bool ImGui_IsPopupOpen(ImGui_Context* ctx, const char* str_id, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_IsPopupOpen", ImGui_Context ctx, "str_id", optional int flagsIn)
    Lua: boolean reaper.ImGui_IsPopupOpen(ImGui_Context ctx, string str_id, optional integer flagsIn)
    Python: bool ImGui_IsPopupOpen(ImGui_Context* ctx, const char* str_id, int* flagsInOptional)

    Return true if the popup is open at the current BeginPopup level of the
    popup stack.

    - With PopupFlags_AnyPopupId: return true if any popup is open at the current
      BeginPopup() level of the popup stack.
    - With PopupFlags_AnyPopupId + PopupFlags_AnyPopupLevel: return true if any
      popup is open.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsRectVisible

    C: bool ImGui_IsRectVisible(ImGui_Context* ctx, double size_w, double size_h)
    EEL2: bool extension_api("ImGui_IsRectVisible", ImGui_Context ctx, size_w, size_h)
    Lua: boolean reaper.ImGui_IsRectVisible(ImGui_Context ctx, number size_w, number size_h)
    Python: bool ImGui_IsRectVisible(ImGui_Context* ctx, double size_w, double size_h)

    Test if rectangle (of given size, starting from cursor position) is
    visible / not clipped.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    number size_w
    number size_h


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsRectVisibleEx

    C: bool ImGui_IsRectVisibleEx(ImGui_Context* ctx, double rect_min_x, double rect_min_y, double rect_max_x, double rect_max_y)
    EEL2: bool extension_api("ImGui_IsRectVisibleEx", ImGui_Context ctx, rect_min_x, rect_min_y, rect_max_x, rect_max_y)
    Lua: boolean reaper.ImGui_IsRectVisibleEx(ImGui_Context ctx, number rect_min_x, number rect_min_y, number rect_max_x, number rect_max_y)
    Python: bool ImGui_IsRectVisibleEx(ImGui_Context* ctx, double rect_min_x, double rect_min_y, double rect_max_x, double rect_max_y)

    Test if rectangle (in screen space) is visible / not clipped. to perform
    coarse clipping on user's side.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    number rect_min_x
    number rect_min_y
    number rect_max_x
    number rect_max_y


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsWindowAppearing

    C: bool ImGui_IsWindowAppearing(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsWindowAppearing", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsWindowAppearing(ImGui_Context ctx)
    Python: bool ImGui_IsWindowAppearing(ImGui_Context* ctx)

    Use after Begin/BeginPopup/BeginPopupModal to tell if a window just opened.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsWindowDocked

    C: bool ImGui_IsWindowDocked(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_IsWindowDocked", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_IsWindowDocked(ImGui_Context ctx)
    Python: bool ImGui_IsWindowDocked(ImGui_Context* ctx)

    Is current window docked into another window or a REAPER docker?

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsWindowFocused

    C: bool ImGui_IsWindowFocused(ImGui_Context* ctx, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_IsWindowFocused", ImGui_Context ctx, optional int flagsIn)
    Lua: boolean reaper.ImGui_IsWindowFocused(ImGui_Context ctx, optional integer flagsIn)
    Python: bool ImGui_IsWindowFocused(ImGui_Context* ctx, int* flagsInOptional)

    Is current window focused? or its root/child, depending on flags.
    See flags for options.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_IsWindowHovered

    C: bool ImGui_IsWindowHovered(ImGui_Context* ctx, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_IsWindowHovered", ImGui_Context ctx, optional int flagsIn)
    Lua: boolean reaper.ImGui_IsWindowHovered(ImGui_Context ctx, optional integer flagsIn)
    Python: bool ImGui_IsWindowHovered(ImGui_Context* ctx, int* flagsInOptional)

    Is current window hovered (and typically: not blocked by a popup/modal)?
    See flags for options.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_0

    C: int ImGui_Key_0()
    EEL2: int extension_api("ImGui_Key_0")
    Lua: integer retval = reaper.ImGui_Key_0()
    Python: int ImGui_Key_0()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_1

    C: int ImGui_Key_1()
    EEL2: int extension_api("ImGui_Key_1")
    Lua: integer retval = reaper.ImGui_Key_1()
    Python: int ImGui_Key_1()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_2

    C: int ImGui_Key_2()
    EEL2: int extension_api("ImGui_Key_2")
    Lua: integer retval = reaper.ImGui_Key_2()
    Python: int ImGui_Key_2()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_3

    C: int ImGui_Key_3()
    EEL2: int extension_api("ImGui_Key_3")
    Lua: integer retval = reaper.ImGui_Key_3()
    Python: int ImGui_Key_3()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_4

    C: int ImGui_Key_4()
    EEL2: int extension_api("ImGui_Key_4")
    Lua: integer retval = reaper.ImGui_Key_4()
    Python: int ImGui_Key_4()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_5

    C: int ImGui_Key_5()
    EEL2: int extension_api("ImGui_Key_5")
    Lua: integer retval = reaper.ImGui_Key_5()
    Python: int ImGui_Key_5()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_6

    C: int ImGui_Key_6()
    EEL2: int extension_api("ImGui_Key_6")
    Lua: integer retval = reaper.ImGui_Key_6()
    Python: int ImGui_Key_6()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_7

    C: int ImGui_Key_7()
    EEL2: int extension_api("ImGui_Key_7")
    Lua: integer retval = reaper.ImGui_Key_7()
    Python: int ImGui_Key_7()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_8

    C: int ImGui_Key_8()
    EEL2: int extension_api("ImGui_Key_8")
    Lua: integer retval = reaper.ImGui_Key_8()
    Python: int ImGui_Key_8()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_9

    C: int ImGui_Key_9()
    EEL2: int extension_api("ImGui_Key_9")
    Lua: integer retval = reaper.ImGui_Key_9()
    Python: int ImGui_Key_9()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_A

    C: int ImGui_Key_A()
    EEL2: int extension_api("ImGui_Key_A")
    Lua: integer retval = reaper.ImGui_Key_A()
    Python: int ImGui_Key_A()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Apostrophe

    C: int ImGui_Key_Apostrophe()
    EEL2: int extension_api("ImGui_Key_Apostrophe")
    Lua: integer retval = reaper.ImGui_Key_Apostrophe()
    Python: int ImGui_Key_Apostrophe()

    '

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_B

    C: int ImGui_Key_B()
    EEL2: int extension_api("ImGui_Key_B")
    Lua: integer retval = reaper.ImGui_Key_B()
    Python: int ImGui_Key_B()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Backslash

    C: int ImGui_Key_Backslash()
    EEL2: int extension_api("ImGui_Key_Backslash")
    Lua: integer retval = reaper.ImGui_Key_Backslash()
    Python: int ImGui_Key_Backslash()

    \

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Backspace

    C: int ImGui_Key_Backspace()
    EEL2: int extension_api("ImGui_Key_Backspace")
    Lua: integer retval = reaper.ImGui_Key_Backspace()
    Python: int ImGui_Key_Backspace()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_C

    C: int ImGui_Key_C()
    EEL2: int extension_api("ImGui_Key_C")
    Lua: integer retval = reaper.ImGui_Key_C()
    Python: int ImGui_Key_C()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_CapsLock

    C: int ImGui_Key_CapsLock()
    EEL2: int extension_api("ImGui_Key_CapsLock")
    Lua: integer retval = reaper.ImGui_Key_CapsLock()
    Python: int ImGui_Key_CapsLock()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Comma

    C: int ImGui_Key_Comma()
    EEL2: int extension_api("ImGui_Key_Comma")
    Lua: integer retval = reaper.ImGui_Key_Comma()
    Python: int ImGui_Key_Comma()

    ,

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_D

    C: int ImGui_Key_D()
    EEL2: int extension_api("ImGui_Key_D")
    Lua: integer retval = reaper.ImGui_Key_D()
    Python: int ImGui_Key_D()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Delete

    C: int ImGui_Key_Delete()
    EEL2: int extension_api("ImGui_Key_Delete")
    Lua: integer retval = reaper.ImGui_Key_Delete()
    Python: int ImGui_Key_Delete()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_DownArrow

    C: int ImGui_Key_DownArrow()
    EEL2: int extension_api("ImGui_Key_DownArrow")
    Lua: integer retval = reaper.ImGui_Key_DownArrow()
    Python: int ImGui_Key_DownArrow()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_E

    C: int ImGui_Key_E()
    EEL2: int extension_api("ImGui_Key_E")
    Lua: integer retval = reaper.ImGui_Key_E()
    Python: int ImGui_Key_E()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_End

    C: int ImGui_Key_End()
    EEL2: int extension_api("ImGui_Key_End")
    Lua: integer retval = reaper.ImGui_Key_End()
    Python: int ImGui_Key_End()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Enter

    C: int ImGui_Key_Enter()
    EEL2: int extension_api("ImGui_Key_Enter")
    Lua: integer retval = reaper.ImGui_Key_Enter()
    Python: int ImGui_Key_Enter()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Equal

    C: int ImGui_Key_Equal()
    EEL2: int extension_api("ImGui_Key_Equal")
    Lua: integer retval = reaper.ImGui_Key_Equal()
    Python: int ImGui_Key_Equal()

    =

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Escape

    C: int ImGui_Key_Escape()
    EEL2: int extension_api("ImGui_Key_Escape")
    Lua: integer retval = reaper.ImGui_Key_Escape()
    Python: int ImGui_Key_Escape()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F

    C: int ImGui_Key_F()
    EEL2: int extension_api("ImGui_Key_F")
    Lua: integer retval = reaper.ImGui_Key_F()
    Python: int ImGui_Key_F()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F1

    C: int ImGui_Key_F1()
    EEL2: int extension_api("ImGui_Key_F1")
    Lua: integer retval = reaper.ImGui_Key_F1()
    Python: int ImGui_Key_F1()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F10

    C: int ImGui_Key_F10()
    EEL2: int extension_api("ImGui_Key_F10")
    Lua: integer retval = reaper.ImGui_Key_F10()
    Python: int ImGui_Key_F10()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F11

    C: int ImGui_Key_F11()
    EEL2: int extension_api("ImGui_Key_F11")
    Lua: integer retval = reaper.ImGui_Key_F11()
    Python: int ImGui_Key_F11()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F12

    C: int ImGui_Key_F12()
    EEL2: int extension_api("ImGui_Key_F12")
    Lua: integer retval = reaper.ImGui_Key_F12()
    Python: int ImGui_Key_F12()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F2

    C: int ImGui_Key_F2()
    EEL2: int extension_api("ImGui_Key_F2")
    Lua: integer retval = reaper.ImGui_Key_F2()
    Python: int ImGui_Key_F2()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F3

    C: int ImGui_Key_F3()
    EEL2: int extension_api("ImGui_Key_F3")
    Lua: integer retval = reaper.ImGui_Key_F3()
    Python: int ImGui_Key_F3()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F4

    C: int ImGui_Key_F4()
    EEL2: int extension_api("ImGui_Key_F4")
    Lua: integer retval = reaper.ImGui_Key_F4()
    Python: int ImGui_Key_F4()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F5

    C: int ImGui_Key_F5()
    EEL2: int extension_api("ImGui_Key_F5")
    Lua: integer retval = reaper.ImGui_Key_F5()
    Python: int ImGui_Key_F5()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F6

    C: int ImGui_Key_F6()
    EEL2: int extension_api("ImGui_Key_F6")
    Lua: integer retval = reaper.ImGui_Key_F6()
    Python: int ImGui_Key_F6()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F7

    C: int ImGui_Key_F7()
    EEL2: int extension_api("ImGui_Key_F7")
    Lua: integer retval = reaper.ImGui_Key_F7()
    Python: int ImGui_Key_F7()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F8

    C: int ImGui_Key_F8()
    EEL2: int extension_api("ImGui_Key_F8")
    Lua: integer retval = reaper.ImGui_Key_F8()
    Python: int ImGui_Key_F8()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_F9

    C: int ImGui_Key_F9()
    EEL2: int extension_api("ImGui_Key_F9")
    Lua: integer retval = reaper.ImGui_Key_F9()
    Python: int ImGui_Key_F9()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_G

    C: int ImGui_Key_G()
    EEL2: int extension_api("ImGui_Key_G")
    Lua: integer retval = reaper.ImGui_Key_G()
    Python: int ImGui_Key_G()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_GraveAccent

    C: int ImGui_Key_GraveAccent()
    EEL2: int extension_api("ImGui_Key_GraveAccent")
    Lua: integer retval = reaper.ImGui_Key_GraveAccent()
    Python: int ImGui_Key_GraveAccent()

    `

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_H

    C: int ImGui_Key_H()
    EEL2: int extension_api("ImGui_Key_H")
    Lua: integer retval = reaper.ImGui_Key_H()
    Python: int ImGui_Key_H()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Home

    C: int ImGui_Key_Home()
    EEL2: int extension_api("ImGui_Key_Home")
    Lua: integer retval = reaper.ImGui_Key_Home()
    Python: int ImGui_Key_Home()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_I

    C: int ImGui_Key_I()
    EEL2: int extension_api("ImGui_Key_I")
    Lua: integer retval = reaper.ImGui_Key_I()
    Python: int ImGui_Key_I()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Insert

    C: int ImGui_Key_Insert()
    EEL2: int extension_api("ImGui_Key_Insert")
    Lua: integer retval = reaper.ImGui_Key_Insert()
    Python: int ImGui_Key_Insert()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_J

    C: int ImGui_Key_J()
    EEL2: int extension_api("ImGui_Key_J")
    Lua: integer retval = reaper.ImGui_Key_J()
    Python: int ImGui_Key_J()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_K

    C: int ImGui_Key_K()
    EEL2: int extension_api("ImGui_Key_K")
    Lua: integer retval = reaper.ImGui_Key_K()
    Python: int ImGui_Key_K()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad0

    C: int ImGui_Key_Keypad0()
    EEL2: int extension_api("ImGui_Key_Keypad0")
    Lua: integer retval = reaper.ImGui_Key_Keypad0()
    Python: int ImGui_Key_Keypad0()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad1

    C: int ImGui_Key_Keypad1()
    EEL2: int extension_api("ImGui_Key_Keypad1")
    Lua: integer retval = reaper.ImGui_Key_Keypad1()
    Python: int ImGui_Key_Keypad1()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad2

    C: int ImGui_Key_Keypad2()
    EEL2: int extension_api("ImGui_Key_Keypad2")
    Lua: integer retval = reaper.ImGui_Key_Keypad2()
    Python: int ImGui_Key_Keypad2()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad3

    C: int ImGui_Key_Keypad3()
    EEL2: int extension_api("ImGui_Key_Keypad3")
    Lua: integer retval = reaper.ImGui_Key_Keypad3()
    Python: int ImGui_Key_Keypad3()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad4

    C: int ImGui_Key_Keypad4()
    EEL2: int extension_api("ImGui_Key_Keypad4")
    Lua: integer retval = reaper.ImGui_Key_Keypad4()
    Python: int ImGui_Key_Keypad4()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad5

    C: int ImGui_Key_Keypad5()
    EEL2: int extension_api("ImGui_Key_Keypad5")
    Lua: integer retval = reaper.ImGui_Key_Keypad5()
    Python: int ImGui_Key_Keypad5()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad6

    C: int ImGui_Key_Keypad6()
    EEL2: int extension_api("ImGui_Key_Keypad6")
    Lua: integer retval = reaper.ImGui_Key_Keypad6()
    Python: int ImGui_Key_Keypad6()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad7

    C: int ImGui_Key_Keypad7()
    EEL2: int extension_api("ImGui_Key_Keypad7")
    Lua: integer retval = reaper.ImGui_Key_Keypad7()
    Python: int ImGui_Key_Keypad7()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad8

    C: int ImGui_Key_Keypad8()
    EEL2: int extension_api("ImGui_Key_Keypad8")
    Lua: integer retval = reaper.ImGui_Key_Keypad8()
    Python: int ImGui_Key_Keypad8()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Keypad9

    C: int ImGui_Key_Keypad9()
    EEL2: int extension_api("ImGui_Key_Keypad9")
    Lua: integer retval = reaper.ImGui_Key_Keypad9()
    Python: int ImGui_Key_Keypad9()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_KeypadAdd

    C: int ImGui_Key_KeypadAdd()
    EEL2: int extension_api("ImGui_Key_KeypadAdd")
    Lua: integer retval = reaper.ImGui_Key_KeypadAdd()
    Python: int ImGui_Key_KeypadAdd()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_KeypadDecimal

    C: int ImGui_Key_KeypadDecimal()
    EEL2: int extension_api("ImGui_Key_KeypadDecimal")
    Lua: integer retval = reaper.ImGui_Key_KeypadDecimal()
    Python: int ImGui_Key_KeypadDecimal()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_KeypadDivide

    C: int ImGui_Key_KeypadDivide()
    EEL2: int extension_api("ImGui_Key_KeypadDivide")
    Lua: integer retval = reaper.ImGui_Key_KeypadDivide()
    Python: int ImGui_Key_KeypadDivide()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_KeypadEnter

    C: int ImGui_Key_KeypadEnter()
    EEL2: int extension_api("ImGui_Key_KeypadEnter")
    Lua: integer retval = reaper.ImGui_Key_KeypadEnter()
    Python: int ImGui_Key_KeypadEnter()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_KeypadEqual

    C: int ImGui_Key_KeypadEqual()
    EEL2: int extension_api("ImGui_Key_KeypadEqual")
    Lua: integer retval = reaper.ImGui_Key_KeypadEqual()
    Python: int ImGui_Key_KeypadEqual()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_KeypadMultiply

    C: int ImGui_Key_KeypadMultiply()
    EEL2: int extension_api("ImGui_Key_KeypadMultiply")
    Lua: integer retval = reaper.ImGui_Key_KeypadMultiply()
    Python: int ImGui_Key_KeypadMultiply()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_KeypadSubtract

    C: int ImGui_Key_KeypadSubtract()
    EEL2: int extension_api("ImGui_Key_KeypadSubtract")
    Lua: integer retval = reaper.ImGui_Key_KeypadSubtract()
    Python: int ImGui_Key_KeypadSubtract()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_L

    C: int ImGui_Key_L()
    EEL2: int extension_api("ImGui_Key_L")
    Lua: integer retval = reaper.ImGui_Key_L()
    Python: int ImGui_Key_L()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_LeftAlt

    C: int ImGui_Key_LeftAlt()
    EEL2: int extension_api("ImGui_Key_LeftAlt")
    Lua: integer retval = reaper.ImGui_Key_LeftAlt()
    Python: int ImGui_Key_LeftAlt()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_LeftArrow

    C: int ImGui_Key_LeftArrow()
    EEL2: int extension_api("ImGui_Key_LeftArrow")
    Lua: integer retval = reaper.ImGui_Key_LeftArrow()
    Python: int ImGui_Key_LeftArrow()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_LeftBracket

    C: int ImGui_Key_LeftBracket()
    EEL2: int extension_api("ImGui_Key_LeftBracket")
    Lua: integer retval = reaper.ImGui_Key_LeftBracket()
    Python: int ImGui_Key_LeftBracket()

    [

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_LeftCtrl

    C: int ImGui_Key_LeftCtrl()
    EEL2: int extension_api("ImGui_Key_LeftCtrl")
    Lua: integer retval = reaper.ImGui_Key_LeftCtrl()
    Python: int ImGui_Key_LeftCtrl()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_LeftShift

    C: int ImGui_Key_LeftShift()
    EEL2: int extension_api("ImGui_Key_LeftShift")
    Lua: integer retval = reaper.ImGui_Key_LeftShift()
    Python: int ImGui_Key_LeftShift()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_LeftSuper

    C: int ImGui_Key_LeftSuper()
    EEL2: int extension_api("ImGui_Key_LeftSuper")
    Lua: integer retval = reaper.ImGui_Key_LeftSuper()
    Python: int ImGui_Key_LeftSuper()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_M

    C: int ImGui_Key_M()
    EEL2: int extension_api("ImGui_Key_M")
    Lua: integer retval = reaper.ImGui_Key_M()
    Python: int ImGui_Key_M()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Menu

    C: int ImGui_Key_Menu()
    EEL2: int extension_api("ImGui_Key_Menu")
    Lua: integer retval = reaper.ImGui_Key_Menu()
    Python: int ImGui_Key_Menu()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Minus

    C: int ImGui_Key_Minus()
    EEL2: int extension_api("ImGui_Key_Minus")
    Lua: integer retval = reaper.ImGui_Key_Minus()
    Python: int ImGui_Key_Minus()

    -

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_MouseLeft

    C: int ImGui_Key_MouseLeft()
    EEL2: int extension_api("ImGui_Key_MouseLeft")
    Lua: integer retval = reaper.ImGui_Key_MouseLeft()
    Python: int ImGui_Key_MouseLeft()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_MouseMiddle

    C: int ImGui_Key_MouseMiddle()
    EEL2: int extension_api("ImGui_Key_MouseMiddle")
    Lua: integer retval = reaper.ImGui_Key_MouseMiddle()
    Python: int ImGui_Key_MouseMiddle()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_MouseRight

    C: int ImGui_Key_MouseRight()
    EEL2: int extension_api("ImGui_Key_MouseRight")
    Lua: integer retval = reaper.ImGui_Key_MouseRight()
    Python: int ImGui_Key_MouseRight()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_MouseWheelX

    C: int ImGui_Key_MouseWheelX()
    EEL2: int extension_api("ImGui_Key_MouseWheelX")
    Lua: integer retval = reaper.ImGui_Key_MouseWheelX()
    Python: int ImGui_Key_MouseWheelX()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_MouseWheelY

    C: int ImGui_Key_MouseWheelY()
    EEL2: int extension_api("ImGui_Key_MouseWheelY")
    Lua: integer retval = reaper.ImGui_Key_MouseWheelY()
    Python: int ImGui_Key_MouseWheelY()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_MouseX1

    C: int ImGui_Key_MouseX1()
    EEL2: int extension_api("ImGui_Key_MouseX1")
    Lua: integer retval = reaper.ImGui_Key_MouseX1()
    Python: int ImGui_Key_MouseX1()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_MouseX2

    C: int ImGui_Key_MouseX2()
    EEL2: int extension_api("ImGui_Key_MouseX2")
    Lua: integer retval = reaper.ImGui_Key_MouseX2()
    Python: int ImGui_Key_MouseX2()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_N

    C: int ImGui_Key_N()
    EEL2: int extension_api("ImGui_Key_N")
    Lua: integer retval = reaper.ImGui_Key_N()
    Python: int ImGui_Key_N()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_NumLock

    C: int ImGui_Key_NumLock()
    EEL2: int extension_api("ImGui_Key_NumLock")
    Lua: integer retval = reaper.ImGui_Key_NumLock()
    Python: int ImGui_Key_NumLock()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_O

    C: int ImGui_Key_O()
    EEL2: int extension_api("ImGui_Key_O")
    Lua: integer retval = reaper.ImGui_Key_O()
    Python: int ImGui_Key_O()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_P

    C: int ImGui_Key_P()
    EEL2: int extension_api("ImGui_Key_P")
    Lua: integer retval = reaper.ImGui_Key_P()
    Python: int ImGui_Key_P()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_PageDown

    C: int ImGui_Key_PageDown()
    EEL2: int extension_api("ImGui_Key_PageDown")
    Lua: integer retval = reaper.ImGui_Key_PageDown()
    Python: int ImGui_Key_PageDown()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_PageUp

    C: int ImGui_Key_PageUp()
    EEL2: int extension_api("ImGui_Key_PageUp")
    Lua: integer retval = reaper.ImGui_Key_PageUp()
    Python: int ImGui_Key_PageUp()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Pause

    C: int ImGui_Key_Pause()
    EEL2: int extension_api("ImGui_Key_Pause")
    Lua: integer retval = reaper.ImGui_Key_Pause()
    Python: int ImGui_Key_Pause()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Period

    C: int ImGui_Key_Period()
    EEL2: int extension_api("ImGui_Key_Period")
    Lua: integer retval = reaper.ImGui_Key_Period()
    Python: int ImGui_Key_Period()

    .

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_PrintScreen

    C: int ImGui_Key_PrintScreen()
    EEL2: int extension_api("ImGui_Key_PrintScreen")
    Lua: integer retval = reaper.ImGui_Key_PrintScreen()
    Python: int ImGui_Key_PrintScreen()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Q

    C: int ImGui_Key_Q()
    EEL2: int extension_api("ImGui_Key_Q")
    Lua: integer retval = reaper.ImGui_Key_Q()
    Python: int ImGui_Key_Q()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_R

    C: int ImGui_Key_R()
    EEL2: int extension_api("ImGui_Key_R")
    Lua: integer retval = reaper.ImGui_Key_R()
    Python: int ImGui_Key_R()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_RightAlt

    C: int ImGui_Key_RightAlt()
    EEL2: int extension_api("ImGui_Key_RightAlt")
    Lua: integer retval = reaper.ImGui_Key_RightAlt()
    Python: int ImGui_Key_RightAlt()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_RightArrow

    C: int ImGui_Key_RightArrow()
    EEL2: int extension_api("ImGui_Key_RightArrow")
    Lua: integer retval = reaper.ImGui_Key_RightArrow()
    Python: int ImGui_Key_RightArrow()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_RightBracket

    C: int ImGui_Key_RightBracket()
    EEL2: int extension_api("ImGui_Key_RightBracket")
    Lua: integer retval = reaper.ImGui_Key_RightBracket()
    Python: int ImGui_Key_RightBracket()

    ]

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_RightCtrl

    C: int ImGui_Key_RightCtrl()
    EEL2: int extension_api("ImGui_Key_RightCtrl")
    Lua: integer retval = reaper.ImGui_Key_RightCtrl()
    Python: int ImGui_Key_RightCtrl()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_RightShift

    C: int ImGui_Key_RightShift()
    EEL2: int extension_api("ImGui_Key_RightShift")
    Lua: integer retval = reaper.ImGui_Key_RightShift()
    Python: int ImGui_Key_RightShift()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_RightSuper

    C: int ImGui_Key_RightSuper()
    EEL2: int extension_api("ImGui_Key_RightSuper")
    Lua: integer retval = reaper.ImGui_Key_RightSuper()
    Python: int ImGui_Key_RightSuper()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_S

    C: int ImGui_Key_S()
    EEL2: int extension_api("ImGui_Key_S")
    Lua: integer retval = reaper.ImGui_Key_S()
    Python: int ImGui_Key_S()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_ScrollLock

    C: int ImGui_Key_ScrollLock()
    EEL2: int extension_api("ImGui_Key_ScrollLock")
    Lua: integer retval = reaper.ImGui_Key_ScrollLock()
    Python: int ImGui_Key_ScrollLock()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Semicolon

    C: int ImGui_Key_Semicolon()
    EEL2: int extension_api("ImGui_Key_Semicolon")
    Lua: integer retval = reaper.ImGui_Key_Semicolon()
    Python: int ImGui_Key_Semicolon()

    ;

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Slash

    C: int ImGui_Key_Slash()
    EEL2: int extension_api("ImGui_Key_Slash")
    Lua: integer retval = reaper.ImGui_Key_Slash()
    Python: int ImGui_Key_Slash()

    /

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Space

    C: int ImGui_Key_Space()
    EEL2: int extension_api("ImGui_Key_Space")
    Lua: integer retval = reaper.ImGui_Key_Space()
    Python: int ImGui_Key_Space()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_T

    C: int ImGui_Key_T()
    EEL2: int extension_api("ImGui_Key_T")
    Lua: integer retval = reaper.ImGui_Key_T()
    Python: int ImGui_Key_T()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Tab

    C: int ImGui_Key_Tab()
    EEL2: int extension_api("ImGui_Key_Tab")
    Lua: integer retval = reaper.ImGui_Key_Tab()
    Python: int ImGui_Key_Tab()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_U

    C: int ImGui_Key_U()
    EEL2: int extension_api("ImGui_Key_U")
    Lua: integer retval = reaper.ImGui_Key_U()
    Python: int ImGui_Key_U()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_UpArrow

    C: int ImGui_Key_UpArrow()
    EEL2: int extension_api("ImGui_Key_UpArrow")
    Lua: integer retval = reaper.ImGui_Key_UpArrow()
    Python: int ImGui_Key_UpArrow()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_V

    C: int ImGui_Key_V()
    EEL2: int extension_api("ImGui_Key_V")
    Lua: integer retval = reaper.ImGui_Key_V()
    Python: int ImGui_Key_V()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_W

    C: int ImGui_Key_W()
    EEL2: int extension_api("ImGui_Key_W")
    Lua: integer retval = reaper.ImGui_Key_W()
    Python: int ImGui_Key_W()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_X

    C: int ImGui_Key_X()
    EEL2: int extension_api("ImGui_Key_X")
    Lua: integer retval = reaper.ImGui_Key_X()
    Python: int ImGui_Key_X()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Y

    C: int ImGui_Key_Y()
    EEL2: int extension_api("ImGui_Key_Y")
    Lua: integer retval = reaper.ImGui_Key_Y()
    Python: int ImGui_Key_Y()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Key_Z

    C: int ImGui_Key_Z()
    EEL2: int extension_api("ImGui_Key_Z")
    Lua: integer retval = reaper.ImGui_Key_Z()
    Python: int ImGui_Key_Z()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_LabelText

    C: void ImGui_LabelText(ImGui_Context* ctx, const char* label, const char* text)
    EEL2: extension_api("ImGui_LabelText", ImGui_Context ctx, "label", "text")
    Lua: reaper.ImGui_LabelText(ImGui_Context ctx, string label, string text)
    Python: void ImGui_LabelText(ImGui_Context* ctx, const char* label, const char* text)

    Display text+label aligned the same way as value+label widgets

    Parameters:
    ImGui_Context ctx
    string label
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ListBox

    C: bool ImGui_ListBox(ImGui_Context* ctx, const char* label, int* current_itemInOut, const char* items, int items_sz, int* height_in_itemsInOptional)
    EEL2: bool extension_api("ImGui_ListBox", ImGui_Context ctx, "label", int &current_item, "items", optional int height_in_itemsIn)
    Lua: boolean retval, integer current_item = reaper.ImGui_ListBox(ImGui_Context ctx, string label, integer current_item, string items, optional integer height_in_itemsIn)
    Python: bool ImGui_ListBox(ImGui_Context* ctx, const char* label, int* current_itemInOut, const char* items, int items_sz, int* height_in_itemsInOptional)

    This is an helper over BeginListBox/EndListBox for convenience purpose.

    Each item must be null-terminated (requires REAPER v6.44 or newer for EEL and Lua).

    Returnvalues:
    boolean retval
    integer current_item

    Parameters:
    ImGui_Context ctx
    string label
    integer current_item
    string items
    optional integer height_in_itemsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ListClipper_Begin

    C: void ImGui_ListClipper_Begin(ImGui_ListClipper* clipper, int items_count, double* items_heightInOptional)
    EEL2: extension_api("ImGui_ListClipper_Begin", ImGui_ListClipper clipper, int items_count, optional items_heightIn)
    Lua: reaper.ImGui_ListClipper_Begin(ImGui_ListClipper clipper, integer items_count, optional number items_heightIn)
    Python: void ImGui_ListClipper_Begin(ImGui_ListClipper* clipper, int items_count, double* items_heightInOptional)

    - items_count: Use INT_MAX if you don't know how many items you have
    (in which case the cursor won't be advanced in the final step)
    - items_height: Use -1.0 to be calculated automatically on first step.
      Otherwise pass in the distance between your items, typically
      GetTextLineHeightWithSpacing or GetFrameHeightWithSpacing.

    Parameters:
    ImGui_ListClipper clipper
    integer items_count
    optional number items_heightIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ListClipper_End

    C: void ImGui_ListClipper_End(ImGui_ListClipper* clipper)
    EEL2: extension_api("ImGui_ListClipper_End", ImGui_ListClipper clipper)
    Lua: reaper.ImGui_ListClipper_End(ImGui_ListClipper clipper)
    Python: void ImGui_ListClipper_End(ImGui_ListClipper* clipper)

    Automatically called on the last call of ListClipper_Step that returns false.

    Parameters:
    ImGui_ListClipper clipper


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ListClipper_ForceDisplayRangeByIndices

    C: void ImGui_ListClipper_ForceDisplayRangeByIndices(ImGui_ListClipper* clipper, int item_min, int item_max)
    EEL2: extension_api("ImGui_ListClipper_ForceDisplayRangeByIndices", ImGui_ListClipper clipper, int item_min, int item_max)
    Lua: reaper.ImGui_ListClipper_ForceDisplayRangeByIndices(ImGui_ListClipper clipper, integer item_min, integer item_max)
    Python: void ImGui_ListClipper_ForceDisplayRangeByIndices(ImGui_ListClipper* clipper, int item_min, int item_max)

    Call ListClipper_ForceDisplayRangeByIndices before first call to
    ListClipper_Step if you need a range of items to be displayed regardless of
    visibility.

    item_max is exclusive e.g. use (42, 42+1) to make item 42 always visible BUT due
    to alignment/padding of certain items it is likely that an extra item may be
    included on either end of the display range.

    Parameters:
    ImGui_ListClipper clipper
    integer item_min
    integer item_max


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ListClipper_GetDisplayRange

    C: void ImGui_ListClipper_GetDisplayRange(ImGui_ListClipper* clipper, int* display_startOut, int* display_endOut)
    EEL2: extension_api("ImGui_ListClipper_GetDisplayRange", ImGui_ListClipper clipper, int &display_start, int &display_end)
    Lua: integer display_start, integer display_end = reaper.ImGui_ListClipper_GetDisplayRange(ImGui_ListClipper clipper)
    Python: void ImGui_ListClipper_GetDisplayRange(ImGui_ListClipper* clipper, int* display_startOut, int* display_endOut)



    Returnvalues:
    integer display_start
    integer display_end

    Parameters:
    ImGui_ListClipper clipper


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ListClipper_Step

    C: bool ImGui_ListClipper_Step(ImGui_ListClipper* clipper)
    EEL2: bool extension_api("ImGui_ListClipper_Step", ImGui_ListClipper clipper)
    Lua: boolean reaper.ImGui_ListClipper_Step(ImGui_ListClipper clipper)
    Python: bool ImGui_ListClipper_Step(ImGui_ListClipper* clipper)

    Call until it returns false. The display_start/display_end fields from
    ListClipper_GetDisplayRange will be set and you can process/draw those items.

    Returnvalues:
    boolean

    Parameters:
    ImGui_ListClipper clipper


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_LogFinish

    C: void ImGui_LogFinish(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_LogFinish", ImGui_Context ctx)
    Lua: reaper.ImGui_LogFinish(ImGui_Context ctx)
    Python: void ImGui_LogFinish(ImGui_Context* ctx)

    Stop logging (close file, etc.)

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_LogText

    C: void ImGui_LogText(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_LogText", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_LogText(ImGui_Context ctx, string text)
    Python: void ImGui_LogText(ImGui_Context* ctx, const char* text)

    Pass text data straight to log (without being displayed)

    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_LogToClipboard

    C: void ImGui_LogToClipboard(ImGui_Context* ctx, int* auto_open_depthInOptional)
    EEL2: extension_api("ImGui_LogToClipboard", ImGui_Context ctx, optional int auto_open_depthIn)
    Lua: reaper.ImGui_LogToClipboard(ImGui_Context ctx, optional integer auto_open_depthIn)
    Python: void ImGui_LogToClipboard(ImGui_Context* ctx, int* auto_open_depthInOptional)

    Start logging all text output from the interface to the OS clipboard.
    See also SetClipboardText.

    Parameters:
    ImGui_Context ctx
    optional integer auto_open_depthIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_LogToFile

    C: void ImGui_LogToFile(ImGui_Context* ctx, int* auto_open_depthInOptional, const char* filenameInOptional)
    EEL2: extension_api("ImGui_LogToFile", ImGui_Context ctx, optional int auto_open_depthIn, optional "filenameIn")
    Lua: reaper.ImGui_LogToFile(ImGui_Context ctx, optional integer auto_open_depthIn, optional string filenameIn)
    Python: void ImGui_LogToFile(ImGui_Context* ctx, int* auto_open_depthInOptional, const char* filenameInOptional)

    Start logging all text output from the interface to a file.
    The data is saved to $resource_path/imgui_log.txt if filename is nil.

    Parameters:
    ImGui_Context ctx
    optional integer auto_open_depthIn
    optional string filenameIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_LogToTTY

    C: void ImGui_LogToTTY(ImGui_Context* ctx, int* auto_open_depthInOptional)
    EEL2: extension_api("ImGui_LogToTTY", ImGui_Context ctx, optional int auto_open_depthIn)
    Lua: reaper.ImGui_LogToTTY(ImGui_Context ctx, optional integer auto_open_depthIn)
    Python: void ImGui_LogToTTY(ImGui_Context* ctx, int* auto_open_depthInOptional)

    Start logging all text output from the interface to the TTY (stdout).

    Parameters:
    ImGui_Context ctx
    optional integer auto_open_depthIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MenuItem

    C: bool ImGui_MenuItem(ImGui_Context* ctx, const char* label, const char* shortcutInOptional, bool* p_selectedInOutOptional, bool* enabledInOptional)
    EEL2: bool extension_api("ImGui_MenuItem", ImGui_Context ctx, "label", optional "shortcutIn", optional bool &p_selected, optional bool enabledIn)
    Lua: boolean retval, optional boolean p_selected = reaper.ImGui_MenuItem(ImGui_Context ctx, string label, optional string shortcutIn, optional boolean p_selected, optional boolean enabledIn)
    Python: bool ImGui_MenuItem(ImGui_Context* ctx, const char* label, const char* shortcutInOptional, bool* p_selectedInOutOptional, bool* enabledInOptional)

    Return true when activated. Shortcuts are displayed for convenience but not
    processed by ImGui at the moment. Toggle state is written to 'selected' when
    provided.

    Returnvalues:
    boolean retval
    optional boolean p_selected

    Parameters:
    ImGui_Context ctx
    string label
    optional string shortcutIn
    optional boolean p_selected
    optional boolean enabledIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Mod_Alt

    C: int ImGui_Mod_Alt()
    EEL2: int extension_api("ImGui_Mod_Alt")
    Lua: integer retval = reaper.ImGui_Mod_Alt()
    Python: int ImGui_Mod_Alt()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Mod_Ctrl

    C: int ImGui_Mod_Ctrl()
    EEL2: int extension_api("ImGui_Mod_Ctrl")
    Lua: integer retval = reaper.ImGui_Mod_Ctrl()
    Python: int ImGui_Mod_Ctrl()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Mod_None

    C: int ImGui_Mod_None()
    EEL2: int extension_api("ImGui_Mod_None")
    Lua: integer retval = reaper.ImGui_Mod_None()
    Python: int ImGui_Mod_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Mod_Shift

    C: int ImGui_Mod_Shift()
    EEL2: int extension_api("ImGui_Mod_Shift")
    Lua: integer retval = reaper.ImGui_Mod_Shift()
    Python: int ImGui_Mod_Shift()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Mod_Shortcut

    C: int ImGui_Mod_Shortcut()
    EEL2: int extension_api("ImGui_Mod_Shortcut")
    Lua: integer retval = reaper.ImGui_Mod_Shortcut()
    Python: int ImGui_Mod_Shortcut()

    Alias for Mod_Ctrl on Linux and Windows and Mod_Super on macOS (Cmd key).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Mod_Super

    C: int ImGui_Mod_Super()
    EEL2: int extension_api("ImGui_Mod_Super")
    Lua: integer retval = reaper.ImGui_Mod_Super()
    Python: int ImGui_Mod_Super()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseButton_Left

    C: int ImGui_MouseButton_Left()
    EEL2: int extension_api("ImGui_MouseButton_Left")
    Lua: integer retval = reaper.ImGui_MouseButton_Left()
    Python: int ImGui_MouseButton_Left()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseButton_Middle

    C: int ImGui_MouseButton_Middle()
    EEL2: int extension_api("ImGui_MouseButton_Middle")
    Lua: integer retval = reaper.ImGui_MouseButton_Middle()
    Python: int ImGui_MouseButton_Middle()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseButton_Right

    C: int ImGui_MouseButton_Right()
    EEL2: int extension_api("ImGui_MouseButton_Right")
    Lua: integer retval = reaper.ImGui_MouseButton_Right()
    Python: int ImGui_MouseButton_Right()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_Arrow

    C: int ImGui_MouseCursor_Arrow()
    EEL2: int extension_api("ImGui_MouseCursor_Arrow")
    Lua: integer retval = reaper.ImGui_MouseCursor_Arrow()
    Python: int ImGui_MouseCursor_Arrow()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_Hand

    C: int ImGui_MouseCursor_Hand()
    EEL2: int extension_api("ImGui_MouseCursor_Hand")
    Lua: integer retval = reaper.ImGui_MouseCursor_Hand()
    Python: int ImGui_MouseCursor_Hand()

    (Unused by Dear ImGui functions. Use for e.g. hyperlinks)

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_None

    C: int ImGui_MouseCursor_None()
    EEL2: int extension_api("ImGui_MouseCursor_None")
    Lua: integer retval = reaper.ImGui_MouseCursor_None()
    Python: int ImGui_MouseCursor_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_NotAllowed

    C: int ImGui_MouseCursor_NotAllowed()
    EEL2: int extension_api("ImGui_MouseCursor_NotAllowed")
    Lua: integer retval = reaper.ImGui_MouseCursor_NotAllowed()
    Python: int ImGui_MouseCursor_NotAllowed()

    When hovering something with disallowed interaction. Usually a crossed circle.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_ResizeAll

    C: int ImGui_MouseCursor_ResizeAll()
    EEL2: int extension_api("ImGui_MouseCursor_ResizeAll")
    Lua: integer retval = reaper.ImGui_MouseCursor_ResizeAll()
    Python: int ImGui_MouseCursor_ResizeAll()

    (Unused by Dear ImGui functions)

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_ResizeEW

    C: int ImGui_MouseCursor_ResizeEW()
    EEL2: int extension_api("ImGui_MouseCursor_ResizeEW")
    Lua: integer retval = reaper.ImGui_MouseCursor_ResizeEW()
    Python: int ImGui_MouseCursor_ResizeEW()

    When hovering over a vertical border or a column.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_ResizeNESW

    C: int ImGui_MouseCursor_ResizeNESW()
    EEL2: int extension_api("ImGui_MouseCursor_ResizeNESW")
    Lua: integer retval = reaper.ImGui_MouseCursor_ResizeNESW()
    Python: int ImGui_MouseCursor_ResizeNESW()

    When hovering over the bottom-left corner of a window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_ResizeNS

    C: int ImGui_MouseCursor_ResizeNS()
    EEL2: int extension_api("ImGui_MouseCursor_ResizeNS")
    Lua: integer retval = reaper.ImGui_MouseCursor_ResizeNS()
    Python: int ImGui_MouseCursor_ResizeNS()

    When hovering over a horizontal border.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_ResizeNWSE

    C: int ImGui_MouseCursor_ResizeNWSE()
    EEL2: int extension_api("ImGui_MouseCursor_ResizeNWSE")
    Lua: integer retval = reaper.ImGui_MouseCursor_ResizeNWSE()
    Python: int ImGui_MouseCursor_ResizeNWSE()

    When hovering over the bottom-right corner of a window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_MouseCursor_TextInput

    C: int ImGui_MouseCursor_TextInput()
    EEL2: int extension_api("ImGui_MouseCursor_TextInput")
    Lua: integer retval = reaper.ImGui_MouseCursor_TextInput()
    Python: int ImGui_MouseCursor_TextInput()

    When hovering over InputText, etc.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_NewLine

    C: void ImGui_NewLine(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_NewLine", ImGui_Context ctx)
    Lua: reaper.ImGui_NewLine(ImGui_Context ctx)
    Python: void ImGui_NewLine(ImGui_Context* ctx)

    Undo a SameLine() or force a new line when in a horizontal-layout context.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_NumericLimits_Double

    C: void ImGui_NumericLimits_Double(double* minOut, double* maxOut)
    EEL2: extension_api("ImGui_NumericLimits_Double", &min, &max)
    Lua: number min, number max = reaper.ImGui_NumericLimits_Double()
    Python: void ImGui_NumericLimits_Double(double* minOut, double* maxOut)

    Returns DBL_MIN and DBL_MAX for this system.

    Returnvalues:
    number min
    number max


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_NumericLimits_Float

    C: void ImGui_NumericLimits_Float(double* minOut, double* maxOut)
    EEL2: extension_api("ImGui_NumericLimits_Float", &min, &max)
    Lua: number min, number max = reaper.ImGui_NumericLimits_Float()
    Python: void ImGui_NumericLimits_Float(double* minOut, double* maxOut)

    Returns FLT_MIN and FLT_MAX for this system.

    Returnvalues:
    number min
    number max


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_NumericLimits_Int

    C: void ImGui_NumericLimits_Int(int* minOut, int* maxOut)
    EEL2: extension_api("ImGui_NumericLimits_Int", int &min, int &max)
    Lua: integer min, integer max = reaper.ImGui_NumericLimits_Int()
    Python: void ImGui_NumericLimits_Int(int* minOut, int* maxOut)

    Returns INT_MIN and INT_MAX for this system.

    Returnvalues:
    integer min
    integer max


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_OpenPopup

    C: void ImGui_OpenPopup(ImGui_Context* ctx, const char* str_id, int* popup_flagsInOptional)
    EEL2: extension_api("ImGui_OpenPopup", ImGui_Context ctx, "str_id", optional int popup_flagsIn)
    Lua: reaper.ImGui_OpenPopup(ImGui_Context ctx, string str_id, optional integer popup_flagsIn)
    Python: void ImGui_OpenPopup(ImGui_Context* ctx, const char* str_id, int* popup_flagsInOptional)

    Set popup state to open (don't call every frame!).
    ImGuiPopupFlags are available for opening options.

    If not modal: they can be closed by clicking anywhere outside them, or by
    pressing ESCAPE.

    Use PopupFlags_NoOpenOverExistingPopup to avoid opening a popup if there's
    already one at the same level.

    Parameters:
    ImGui_Context ctx
    string str_id
    optional integer popup_flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_OpenPopupOnItemClick

    C: void ImGui_OpenPopupOnItemClick(ImGui_Context* ctx, const char* str_idInOptional, int* popup_flagsInOptional)
    EEL2: extension_api("ImGui_OpenPopupOnItemClick", ImGui_Context ctx, optional "str_idIn", optional int popup_flagsIn)
    Lua: reaper.ImGui_OpenPopupOnItemClick(ImGui_Context ctx, optional string str_idIn, optional integer popup_flagsIn)
    Python: void ImGui_OpenPopupOnItemClick(ImGui_Context* ctx, const char* str_idInOptional, int* popup_flagsInOptional)

    Helper to open popup when clicked on last item. return true when just opened.
    (Note: actually triggers on the mouse _released_ event to be consistent with
    popup behaviors.)

    Parameters:
    ImGui_Context ctx
    optional string str_idIn
    optional integer popup_flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PlotHistogram

    C: void ImGui_PlotHistogram(ImGui_Context* ctx, const char* label, reaper_array* values, int* values_offsetInOptional, const char* overlay_textInOptional, double* scale_minInOptional, double* scale_maxInOptional, double* graph_size_wInOptional, double* graph_size_hInOptional)
    EEL2: extension_api("ImGui_PlotHistogram", ImGui_Context ctx, "label", reaper.array values, optional int values_offsetIn, optional "overlay_textIn", optional scale_minIn, optional scale_maxIn, optional graph_size_wIn, optional graph_size_hIn)
    Lua: reaper.ImGui_PlotHistogram(ImGui_Context ctx, string labelreaper_array values, optional integer values_offsetIn, optional string overlay_textIn, optional number scale_minIn, optional number scale_maxIn, optional number graph_size_wIn, optional number graph_size_hIn)
    Python: void ImGui_PlotHistogram(ImGui_Context* ctx, const char* label, reaper_array* values, int* values_offsetInOptional, const char* overlay_textInOptional, double* scale_minInOptional, double* scale_maxInOptional, double* graph_size_wInOptional, double* graph_size_hInOptional)



    Parameters:
    ImGui_Context ctx
    string labelreaper_array values
    optional integer values_offsetIn
    optional string overlay_textIn
    optional number scale_minIn
    optional number scale_maxIn
    optional number graph_size_wIn
    optional number graph_size_hIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PlotLines

    C: void ImGui_PlotLines(ImGui_Context* ctx, const char* label, reaper_array* values, int* values_offsetInOptional, const char* overlay_textInOptional, double* scale_minInOptional, double* scale_maxInOptional, double* graph_size_wInOptional, double* graph_size_hInOptional)
    EEL2: extension_api("ImGui_PlotLines", ImGui_Context ctx, "label", reaper.array values, optional int values_offsetIn, optional "overlay_textIn", optional scale_minIn, optional scale_maxIn, optional graph_size_wIn, optional graph_size_hIn)
    Lua: reaper.ImGui_PlotLines(ImGui_Context ctx, string labelreaper_array values, optional integer values_offsetIn, optional string overlay_textIn, optional number scale_minIn, optional number scale_maxIn, optional number graph_size_wIn, optional number graph_size_hIn)
    Python: void ImGui_PlotLines(ImGui_Context* ctx, const char* label, reaper_array* values, int* values_offsetInOptional, const char* overlay_textInOptional, double* scale_minInOptional, double* scale_maxInOptional, double* graph_size_wInOptional, double* graph_size_hInOptional)



    Parameters:
    ImGui_Context ctx
    string labelreaper_array values
    optional integer values_offsetIn
    optional string overlay_textIn
    optional number scale_minIn
    optional number scale_maxIn
    optional number graph_size_wIn
    optional number graph_size_hIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PointConvertNative

    C: void ImGui_PointConvertNative(ImGui_Context* ctx, double* xInOut, double* yInOut, bool* to_nativeInOptional)
    EEL2: extension_api("ImGui_PointConvertNative", ImGui_Context ctx, &x, &y, optional bool to_nativeIn)
    Lua: number x, number y = reaper.ImGui_PointConvertNative(ImGui_Context ctx, number x, number y, optional boolean to_nativeIn)
    Python: void ImGui_PointConvertNative(ImGui_Context* ctx, double* xInOut, double* yInOut, bool* to_nativeInOptional)

    Convert a position from the current platform's native coordinate position
    system to ReaImGui global coordinates (or vice versa).

    This effectively flips the Y coordinate on macOS and applies HiDPI scaling on
    Windows and Linux.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Context ctx
    number x
    number y
    optional boolean to_nativeIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopButtonRepeat

    C: void ImGui_PopButtonRepeat(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_PopButtonRepeat", ImGui_Context ctx)
    Lua: reaper.ImGui_PopButtonRepeat(ImGui_Context ctx)
    Python: void ImGui_PopButtonRepeat(ImGui_Context* ctx)

    See PushButtonRepeat

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopClipRect

    C: void ImGui_PopClipRect(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_PopClipRect", ImGui_Context ctx)
    Lua: reaper.ImGui_PopClipRect(ImGui_Context ctx)
    Python: void ImGui_PopClipRect(ImGui_Context* ctx)

    See PushClipRect

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopFont

    C: void ImGui_PopFont(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_PopFont", ImGui_Context ctx)
    Lua: reaper.ImGui_PopFont(ImGui_Context ctx)
    Python: void ImGui_PopFont(ImGui_Context* ctx)

    See PushFont.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopID

    C: void ImGui_PopID(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_PopID", ImGui_Context ctx)
    Lua: reaper.ImGui_PopID(ImGui_Context ctx)
    Python: void ImGui_PopID(ImGui_Context* ctx)

    Pop from the ID stack.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopItemWidth

    C: void ImGui_PopItemWidth(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_PopItemWidth", ImGui_Context ctx)
    Lua: reaper.ImGui_PopItemWidth(ImGui_Context ctx)
    Python: void ImGui_PopItemWidth(ImGui_Context* ctx)

    See PushItemWidth

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopStyleColor

    C: void ImGui_PopStyleColor(ImGui_Context* ctx, int* countInOptional)
    EEL2: extension_api("ImGui_PopStyleColor", ImGui_Context ctx, optional int countIn)
    Lua: reaper.ImGui_PopStyleColor(ImGui_Context ctx, optional integer countIn)
    Python: void ImGui_PopStyleColor(ImGui_Context* ctx, int* countInOptional)



    Parameters:
    ImGui_Context ctx
    optional integer countIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopStyleVar

    C: void ImGui_PopStyleVar(ImGui_Context* ctx, int* countInOptional)
    EEL2: extension_api("ImGui_PopStyleVar", ImGui_Context ctx, optional int countIn)
    Lua: reaper.ImGui_PopStyleVar(ImGui_Context ctx, optional integer countIn)
    Python: void ImGui_PopStyleVar(ImGui_Context* ctx, int* countInOptional)

    Reset a style variable.

    Parameters:
    ImGui_Context ctx
    optional integer countIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopTabStop

    C: void ImGui_PopTabStop(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_PopTabStop", ImGui_Context ctx)
    Lua: reaper.ImGui_PopTabStop(ImGui_Context ctx)
    Python: void ImGui_PopTabStop(ImGui_Context* ctx)

    See PushTabStop

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopTextWrapPos

    C: void ImGui_PopTextWrapPos(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_PopTextWrapPos", ImGui_Context ctx)
    Lua: reaper.ImGui_PopTextWrapPos(ImGui_Context ctx)
    Python: void ImGui_PopTextWrapPos(ImGui_Context* ctx)



    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_AnyPopup

    C: int ImGui_PopupFlags_AnyPopup()
    EEL2: int extension_api("ImGui_PopupFlags_AnyPopup")
    Lua: integer retval = reaper.ImGui_PopupFlags_AnyPopup()
    Python: int ImGui_PopupFlags_AnyPopup()

    PopupFlags_AnyPopupId | PopupFlags_AnyPopupLevel

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_AnyPopupId

    C: int ImGui_PopupFlags_AnyPopupId()
    EEL2: int extension_api("ImGui_PopupFlags_AnyPopupId")
    Lua: integer retval = reaper.ImGui_PopupFlags_AnyPopupId()
    Python: int ImGui_PopupFlags_AnyPopupId()

    For IsPopupOpen: ignore the str_id parameter and test for any popup.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_AnyPopupLevel

    C: int ImGui_PopupFlags_AnyPopupLevel()
    EEL2: int extension_api("ImGui_PopupFlags_AnyPopupLevel")
    Lua: integer retval = reaper.ImGui_PopupFlags_AnyPopupLevel()
    Python: int ImGui_PopupFlags_AnyPopupLevel()

    For IsPopupOpen: search/test at any level of the popup stack
      (default test in the current level).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_MouseButtonLeft

    C: int ImGui_PopupFlags_MouseButtonLeft()
    EEL2: int extension_api("ImGui_PopupFlags_MouseButtonLeft")
    Lua: integer retval = reaper.ImGui_PopupFlags_MouseButtonLeft()
    Python: int ImGui_PopupFlags_MouseButtonLeft()

    For BeginPopupContext*(): open on Left Mouse release.
       Guaranteed to always be == 0 (same as MouseButton_Left).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_MouseButtonMiddle

    C: int ImGui_PopupFlags_MouseButtonMiddle()
    EEL2: int extension_api("ImGui_PopupFlags_MouseButtonMiddle")
    Lua: integer retval = reaper.ImGui_PopupFlags_MouseButtonMiddle()
    Python: int ImGui_PopupFlags_MouseButtonMiddle()

    For BeginPopupContext*(): open on Middle Mouse release.
       Guaranteed to always be == 2 (same as MouseButton_Middle).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_MouseButtonRight

    C: int ImGui_PopupFlags_MouseButtonRight()
    EEL2: int extension_api("ImGui_PopupFlags_MouseButtonRight")
    Lua: integer retval = reaper.ImGui_PopupFlags_MouseButtonRight()
    Python: int ImGui_PopupFlags_MouseButtonRight()

    For BeginPopupContext*(): open on Right Mouse release.
       Guaranteed to always be == 1 (same as MouseButton_Right).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_NoOpenOverExistingPopup

    C: int ImGui_PopupFlags_NoOpenOverExistingPopup()
    EEL2: int extension_api("ImGui_PopupFlags_NoOpenOverExistingPopup")
    Lua: integer retval = reaper.ImGui_PopupFlags_NoOpenOverExistingPopup()
    Python: int ImGui_PopupFlags_NoOpenOverExistingPopup()

    For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup
       at the same level of the popup stack.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_NoOpenOverItems

    C: int ImGui_PopupFlags_NoOpenOverItems()
    EEL2: int extension_api("ImGui_PopupFlags_NoOpenOverItems")
    Lua: integer retval = reaper.ImGui_PopupFlags_NoOpenOverItems()
    Python: int ImGui_PopupFlags_NoOpenOverItems()

    For BeginPopupContextWindow: don't return true when hovering items,
       only when hovering empty space.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PopupFlags_None

    C: int ImGui_PopupFlags_None()
    EEL2: int extension_api("ImGui_PopupFlags_None")
    Lua: integer retval = reaper.ImGui_PopupFlags_None()
    Python: int ImGui_PopupFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ProgressBar

    C: void ImGui_ProgressBar(ImGui_Context* ctx, double fraction, double* size_arg_wInOptional, double* size_arg_hInOptional, const char* overlayInOptional)
    EEL2: extension_api("ImGui_ProgressBar", ImGui_Context ctx, fraction, optional size_arg_wIn, optional size_arg_hIn, optional "overlayIn")
    Lua: reaper.ImGui_ProgressBar(ImGui_Context ctx, number fraction, optional number size_arg_wIn, optional number size_arg_hIn, optional string overlayIn)
    Python: void ImGui_ProgressBar(ImGui_Context* ctx, double fraction, double* size_arg_wInOptional, double* size_arg_hInOptional, const char* overlayInOptional)



    Parameters:
    ImGui_Context ctx
    number fraction
    optional number size_arg_wIn
    optional number size_arg_hIn
    optional string overlayIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushButtonRepeat

    C: void ImGui_PushButtonRepeat(ImGui_Context* ctx, bool repeat)
    EEL2: extension_api("ImGui_PushButtonRepeat", ImGui_Context ctx, bool repeat)
    Lua: reaper.ImGui_PushButtonRepeat(ImGui_Context ctx, boolean repeat)
    Python: void ImGui_PushButtonRepeat(ImGui_Context* ctx, bool repeat)

    In 'repeat' mode, Button*() functions return repeated true in a typematic
    manner (using ConfigVar_KeyRepeatDelay/ConfigVar_KeyRepeatRate settings).

    Note that you can call IsItemActive after any Button to tell if the button is
    held in the current frame.

    Parameters:
    ImGui_Context ctx
    boolean repeat


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushClipRect

    C: void ImGui_PushClipRect(ImGui_Context* ctx, double clip_rect_min_x, double clip_rect_min_y, double clip_rect_max_x, double clip_rect_max_y, bool intersect_with_current_clip_rect)
    EEL2: extension_api("ImGui_PushClipRect", ImGui_Context ctx, clip_rect_min_x, clip_rect_min_y, clip_rect_max_x, clip_rect_max_y, bool intersect_with_current_clip_rect)
    Lua: reaper.ImGui_PushClipRect(ImGui_Context ctx, number clip_rect_min_x, number clip_rect_min_y, number clip_rect_max_x, number clip_rect_max_y, boolean intersect_with_current_clip_rect)
    Python: void ImGui_PushClipRect(ImGui_Context* ctx, double clip_rect_min_x, double clip_rect_min_y, double clip_rect_max_x, double clip_rect_max_y, bool intersect_with_current_clip_rect)



    Parameters:
    ImGui_Context ctx
    number clip_rect_min_x
    number clip_rect_min_y
    number clip_rect_max_x
    number clip_rect_max_y
    boolean intersect_with_current_clip_rect


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushFont

    C: void ImGui_PushFont(ImGui_Context* ctx, ImGui_Font* font)
    EEL2: extension_api("ImGui_PushFont", ImGui_Context ctx, ImGui_Font font)
    Lua: reaper.ImGui_PushFont(ImGui_Context ctxImGui_Font font)
    Python: void ImGui_PushFont(ImGui_Context* ctx, ImGui_Font* font)

    Change the current font. Use nil to push the default font.
    The font object must have been registered using Attach. See PopFont.

    Parameters:
    ImGui_Context ctxImGui_Font font


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushID

    C: void ImGui_PushID(ImGui_Context* ctx, const char* str_id)
    EEL2: extension_api("ImGui_PushID", ImGui_Context ctx, "str_id")
    Lua: reaper.ImGui_PushID(ImGui_Context ctx, string str_id)
    Python: void ImGui_PushID(ImGui_Context* ctx, const char* str_id)

    Push string into the ID stack.

    Parameters:
    ImGui_Context ctx
    string str_id


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushItemWidth

    C: void ImGui_PushItemWidth(ImGui_Context* ctx, double item_width)
    EEL2: extension_api("ImGui_PushItemWidth", ImGui_Context ctx, item_width)
    Lua: reaper.ImGui_PushItemWidth(ImGui_Context ctx, number item_width)
    Python: void ImGui_PushItemWidth(ImGui_Context* ctx, double item_width)

    Push width of items for common large "item+label" widgets.

    - \>0.0: width in pixels
    - <0.0 align xx pixels to the right of window
      (so -FLT_MIN always align width to the right side)
    - 0.0 = default to ~2/3 of windows width.

    Parameters:
    ImGui_Context ctx
    number item_width


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushStyleColor

    C: void ImGui_PushStyleColor(ImGui_Context* ctx, int idx, int col_rgba)
    EEL2: extension_api("ImGui_PushStyleColor", ImGui_Context ctx, int idx, int col_rgba)
    Lua: reaper.ImGui_PushStyleColor(ImGui_Context ctx, integer idx, integer col_rgba)
    Python: void ImGui_PushStyleColor(ImGui_Context* ctx, int idx, int col_rgba)

    Temporarily modify a style color.
    Call PopStyleColor to undo after use (before the end of the frame).
    See Col_* for available style colors.

    Parameters:
    ImGui_Context ctx
    integer idx
    integer col_rgba


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushStyleVar

    C: void ImGui_PushStyleVar(ImGui_Context* ctx, int var_idx, double val1, double* val2InOptional)
    EEL2: extension_api("ImGui_PushStyleVar", ImGui_Context ctx, int var_idx, val1, optional val2In)
    Lua: reaper.ImGui_PushStyleVar(ImGui_Context ctx, integer var_idx, number val1, optional number val2In)
    Python: void ImGui_PushStyleVar(ImGui_Context* ctx, int var_idx, double val1, double* val2InOptional)

    Temporarily modify a style variable.
    Call PopStyleVar to undo after use (before the end of the frame).
    See StyleVar_* for possible values of 'var_idx'.

    Parameters:
    ImGui_Context ctx
    integer var_idx
    number val1
    optional number val2In


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushTabStop

    C: void ImGui_PushTabStop(ImGui_Context* ctx, bool tab_stop)
    EEL2: extension_api("ImGui_PushTabStop", ImGui_Context ctx, bool tab_stop)
    Lua: reaper.ImGui_PushTabStop(ImGui_Context ctx, boolean tab_stop)
    Python: void ImGui_PushTabStop(ImGui_Context* ctx, bool tab_stop)

    Allow focusing using TAB/Shift-TAB, enabled by default but you can disable it
    for certain widgets

    Parameters:
    ImGui_Context ctx
    boolean tab_stop


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_PushTextWrapPos

    C: void ImGui_PushTextWrapPos(ImGui_Context* ctx, double* wrap_local_pos_xInOptional)
    EEL2: extension_api("ImGui_PushTextWrapPos", ImGui_Context ctx, optional wrap_local_pos_xIn)
    Lua: reaper.ImGui_PushTextWrapPos(ImGui_Context ctx, optional number wrap_local_pos_xIn)
    Python: void ImGui_PushTextWrapPos(ImGui_Context* ctx, double* wrap_local_pos_xInOptional)

    Push word-wrapping position for Text*() commands.

    -  < 0.0: no wrapping
    -  = 0.0: wrap to end of window (or column)
    - \> 0.0: wrap at 'wrap_pos_x' position in window local space.

    Parameters:
    ImGui_Context ctx
    optional number wrap_local_pos_xIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_RadioButton

    C: bool ImGui_RadioButton(ImGui_Context* ctx, const char* label, bool active)
    EEL2: bool extension_api("ImGui_RadioButton", ImGui_Context ctx, "label", bool active)
    Lua: boolean reaper.ImGui_RadioButton(ImGui_Context ctx, string label, boolean active)
    Python: bool ImGui_RadioButton(ImGui_Context* ctx, const char* label, bool active)

    Use with e.g. if (RadioButton("one", my_value==1)) { my_value = 1; }

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label
    boolean active


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_RadioButtonEx

    C: bool ImGui_RadioButtonEx(ImGui_Context* ctx, const char* label, int* vInOut, int v_button)
    EEL2: bool extension_api("ImGui_RadioButtonEx", ImGui_Context ctx, "label", int &v, int v_button)
    Lua: boolean retval, integer v = reaper.ImGui_RadioButtonEx(ImGui_Context ctx, string label, integer v, integer v_button)
    Python: bool ImGui_RadioButtonEx(ImGui_Context* ctx, const char* label, int* vInOut, int v_button)

    Shortcut to handle RadioButton's example pattern when value is an integer

    Returnvalues:
    boolean retval
    integer v

    Parameters:
    ImGui_Context ctx
    string label
    integer v
    integer v_button


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ResetMouseDragDelta

    C: void ImGui_ResetMouseDragDelta(ImGui_Context* ctx, int* buttonInOptional)
    EEL2: extension_api("ImGui_ResetMouseDragDelta", ImGui_Context ctx, optional int buttonIn)
    Lua: reaper.ImGui_ResetMouseDragDelta(ImGui_Context ctx, optional integer buttonIn)
    Python: void ImGui_ResetMouseDragDelta(ImGui_Context* ctx, int* buttonInOptional)



    Parameters:
    ImGui_Context ctx
    optional integer buttonIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SameLine

    C: void ImGui_SameLine(ImGui_Context* ctx, double* offset_from_start_xInOptional, double* spacingInOptional)
    EEL2: extension_api("ImGui_SameLine", ImGui_Context ctx, optional offset_from_start_xIn, optional spacingIn)
    Lua: reaper.ImGui_SameLine(ImGui_Context ctx, optional number offset_from_start_xIn, optional number spacingIn)
    Python: void ImGui_SameLine(ImGui_Context* ctx, double* offset_from_start_xInOptional, double* spacingInOptional)

    Call between widgets or groups to layout them horizontally.
    X position given in window coordinates.

    Parameters:
    ImGui_Context ctx
    optional number offset_from_start_xIn
    optional number spacingIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Selectable

    C: bool ImGui_Selectable(ImGui_Context* ctx, const char* label, bool* p_selectedInOut, int* flagsInOptional, double* size_wInOptional, double* size_hInOptional)
    EEL2: bool extension_api("ImGui_Selectable", ImGui_Context ctx, "label", bool &p_selected, optional int flagsIn, optional size_wIn, optional size_hIn)
    Lua: boolean retval, boolean p_selected = reaper.ImGui_Selectable(ImGui_Context ctx, string label, boolean p_selected, optional integer flagsIn, optional number size_wIn, optional number size_hIn)
    Python: bool ImGui_Selectable(ImGui_Context* ctx, const char* label, bool* p_selectedInOut, int* flagsInOptional, double* size_wInOptional, double* size_hInOptional)



    Returnvalues:
    boolean retval
    boolean p_selected

    Parameters:
    ImGui_Context ctx
    string label
    boolean p_selected
    optional integer flagsIn
    optional number size_wIn
    optional number size_hIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SelectableFlags_AllowDoubleClick

    C: int ImGui_SelectableFlags_AllowDoubleClick()
    EEL2: int extension_api("ImGui_SelectableFlags_AllowDoubleClick")
    Lua: integer retval = reaper.ImGui_SelectableFlags_AllowDoubleClick()
    Python: int ImGui_SelectableFlags_AllowDoubleClick()

    Generate press events on double clicks too.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SelectableFlags_AllowItemOverlap

    C: int ImGui_SelectableFlags_AllowItemOverlap()
    EEL2: int extension_api("ImGui_SelectableFlags_AllowItemOverlap")
    Lua: integer retval = reaper.ImGui_SelectableFlags_AllowItemOverlap()
    Python: int ImGui_SelectableFlags_AllowItemOverlap()

    Hit testing to allow subsequent widgets to overlap this one.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SelectableFlags_Disabled

    C: int ImGui_SelectableFlags_Disabled()
    EEL2: int extension_api("ImGui_SelectableFlags_Disabled")
    Lua: integer retval = reaper.ImGui_SelectableFlags_Disabled()
    Python: int ImGui_SelectableFlags_Disabled()

    Cannot be selected, display grayed out text.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SelectableFlags_DontClosePopups

    C: int ImGui_SelectableFlags_DontClosePopups()
    EEL2: int extension_api("ImGui_SelectableFlags_DontClosePopups")
    Lua: integer retval = reaper.ImGui_SelectableFlags_DontClosePopups()
    Python: int ImGui_SelectableFlags_DontClosePopups()

    Clicking this doesn't close parent popup window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SelectableFlags_None

    C: int ImGui_SelectableFlags_None()
    EEL2: int extension_api("ImGui_SelectableFlags_None")
    Lua: integer retval = reaper.ImGui_SelectableFlags_None()
    Python: int ImGui_SelectableFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SelectableFlags_SpanAllColumns

    C: int ImGui_SelectableFlags_SpanAllColumns()
    EEL2: int extension_api("ImGui_SelectableFlags_SpanAllColumns")
    Lua: integer retval = reaper.ImGui_SelectableFlags_SpanAllColumns()
    Python: int ImGui_SelectableFlags_SpanAllColumns()

    Selectable frame can span all columns (text will still fit in current column).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Separator

    C: void ImGui_Separator(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_Separator", ImGui_Context ctx)
    Lua: reaper.ImGui_Separator(ImGui_Context ctx)
    Python: void ImGui_Separator(ImGui_Context* ctx)

    Separator, generally horizontal. inside a menu bar or in horizontal layout
    mode, this becomes a vertical separator.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SeparatorText

    C: void ImGui_SeparatorText(ImGui_Context* ctx, const char* label)
    EEL2: extension_api("ImGui_SeparatorText", ImGui_Context ctx, "label")
    Lua: reaper.ImGui_SeparatorText(ImGui_Context ctx, string label)
    Python: void ImGui_SeparatorText(ImGui_Context* ctx, const char* label)

    Text formatted with an horizontal line

    Parameters:
    ImGui_Context ctx
    string label


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetClipboardText

    C: void ImGui_SetClipboardText(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_SetClipboardText", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_SetClipboardText(ImGui_Context ctx, string text)
    Python: void ImGui_SetClipboardText(ImGui_Context* ctx, const char* text)

    See also the LogToClipboard function to capture GUI into clipboard,
    or easily output text data to the clipboard.

    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetColorEditOptions

    C: void ImGui_SetColorEditOptions(ImGui_Context* ctx, int flags)
    EEL2: extension_api("ImGui_SetColorEditOptions", ImGui_Context ctx, int flags)
    Lua: reaper.ImGui_SetColorEditOptions(ImGui_Context ctx, integer flags)
    Python: void ImGui_SetColorEditOptions(ImGui_Context* ctx, int flags)

    Picker type, etc. User will be able to change many settings, unless you pass
    the _NoOptions flag to your calls.

    Parameters:
    ImGui_Context ctx
    integer flags


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetConfigVar

    C: void ImGui_SetConfigVar(ImGui_Context* ctx, int var_idx, double value)
    EEL2: extension_api("ImGui_SetConfigVar", ImGui_Context ctx, int var_idx, value)
    Lua: reaper.ImGui_SetConfigVar(ImGui_Context ctx, integer var_idx, number value)
    Python: void ImGui_SetConfigVar(ImGui_Context* ctx, int var_idx, double value)



    Parameters:
    ImGui_Context ctx
    integer var_idx
    number value


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetCursorPos

    C: void ImGui_SetCursorPos(ImGui_Context* ctx, double local_pos_x, double local_pos_y)
    EEL2: extension_api("ImGui_SetCursorPos", ImGui_Context ctx, local_pos_x, local_pos_y)
    Lua: reaper.ImGui_SetCursorPos(ImGui_Context ctx, number local_pos_x, number local_pos_y)
    Python: void ImGui_SetCursorPos(ImGui_Context* ctx, double local_pos_x, double local_pos_y)

    Cursor position in window

    Parameters:
    ImGui_Context ctx
    number local_pos_x
    number local_pos_y


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetCursorPosX

    C: void ImGui_SetCursorPosX(ImGui_Context* ctx, double local_x)
    EEL2: extension_api("ImGui_SetCursorPosX", ImGui_Context ctx, local_x)
    Lua: reaper.ImGui_SetCursorPosX(ImGui_Context ctx, number local_x)
    Python: void ImGui_SetCursorPosX(ImGui_Context* ctx, double local_x)

    Cursor X position in window

    Parameters:
    ImGui_Context ctx
    number local_x


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetCursorPosY

    C: void ImGui_SetCursorPosY(ImGui_Context* ctx, double local_y)
    EEL2: extension_api("ImGui_SetCursorPosY", ImGui_Context ctx, local_y)
    Lua: reaper.ImGui_SetCursorPosY(ImGui_Context ctx, number local_y)
    Python: void ImGui_SetCursorPosY(ImGui_Context* ctx, double local_y)

    Cursor Y position in window

    Parameters:
    ImGui_Context ctx
    number local_y


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetCursorScreenPos

    C: void ImGui_SetCursorScreenPos(ImGui_Context* ctx, double pos_x, double pos_y)
    EEL2: extension_api("ImGui_SetCursorScreenPos", ImGui_Context ctx, pos_x, pos_y)
    Lua: reaper.ImGui_SetCursorScreenPos(ImGui_Context ctx, number pos_x, number pos_y)
    Python: void ImGui_SetCursorScreenPos(ImGui_Context* ctx, double pos_x, double pos_y)

    Cursor position in absolute screen coordinates.

    Parameters:
    ImGui_Context ctx
    number pos_x
    number pos_y


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetDragDropPayload

    C: bool ImGui_SetDragDropPayload(ImGui_Context* ctx, const char* type, const char* data, int* condInOptional)
    EEL2: bool extension_api("ImGui_SetDragDropPayload", ImGui_Context ctx, "type", "data", optional int condIn)
    Lua: boolean reaper.ImGui_SetDragDropPayload(ImGui_Context ctx, string type, string data, optional integer condIn)
    Python: bool ImGui_SetDragDropPayload(ImGui_Context* ctx, const char* type, const char* data, int* condInOptional)

    The type is a user defined string of maximum 32 characters.
    Strings starting with '_' are reserved for dear imgui internal types.
    Data is copied and held by imgui.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string type
    string data
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetItemAllowOverlap

    C: void ImGui_SetItemAllowOverlap(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_SetItemAllowOverlap", ImGui_Context ctx)
    Lua: reaper.ImGui_SetItemAllowOverlap(ImGui_Context ctx)
    Python: void ImGui_SetItemAllowOverlap(ImGui_Context* ctx)

    Allow last item to be overlapped by a subsequent item. sometimes useful with
    invisible buttons, selectables, etc. to catch unused area.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetItemDefaultFocus

    C: void ImGui_SetItemDefaultFocus(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_SetItemDefaultFocus", ImGui_Context ctx)
    Lua: reaper.ImGui_SetItemDefaultFocus(ImGui_Context ctx)
    Python: void ImGui_SetItemDefaultFocus(ImGui_Context* ctx)

    Make last item the default focused item of a window.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetKeyboardFocusHere

    C: void ImGui_SetKeyboardFocusHere(ImGui_Context* ctx, int* offsetInOptional)
    EEL2: extension_api("ImGui_SetKeyboardFocusHere", ImGui_Context ctx, optional int offsetIn)
    Lua: reaper.ImGui_SetKeyboardFocusHere(ImGui_Context ctx, optional integer offsetIn)
    Python: void ImGui_SetKeyboardFocusHere(ImGui_Context* ctx, int* offsetInOptional)

    Focus keyboard on the next widget. Use positive 'offset' to access sub
    components of a multiple component widget. Use -1 to access previous widget.

    Parameters:
    ImGui_Context ctx
    optional integer offsetIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetMouseCursor

    C: void ImGui_SetMouseCursor(ImGui_Context* ctx, int cursor_type)
    EEL2: extension_api("ImGui_SetMouseCursor", ImGui_Context ctx, int cursor_type)
    Lua: reaper.ImGui_SetMouseCursor(ImGui_Context ctx, integer cursor_type)
    Python: void ImGui_SetMouseCursor(ImGui_Context* ctx, int cursor_type)

    Set desired mouse cursor shape. See MouseCursor_* for possible values.

    Parameters:
    ImGui_Context ctx
    integer cursor_type


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextFrameWantCaptureKeyboard

    C: void ImGui_SetNextFrameWantCaptureKeyboard(ImGui_Context* ctx, bool want_capture_keyboard)
    EEL2: extension_api("ImGui_SetNextFrameWantCaptureKeyboard", ImGui_Context ctx, bool want_capture_keyboard)
    Lua: reaper.ImGui_SetNextFrameWantCaptureKeyboard(ImGui_Context ctx, boolean want_capture_keyboard)
    Python: void ImGui_SetNextFrameWantCaptureKeyboard(ImGui_Context* ctx, bool want_capture_keyboard)

    Request capture of keyboard shortcuts in REAPER's global scope for the next frame.

    Parameters:
    ImGui_Context ctx
    boolean want_capture_keyboard


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextItemOpen

    C: void ImGui_SetNextItemOpen(ImGui_Context* ctx, bool is_open, int* condInOptional)
    EEL2: extension_api("ImGui_SetNextItemOpen", ImGui_Context ctx, bool is_open, optional int condIn)
    Lua: reaper.ImGui_SetNextItemOpen(ImGui_Context ctx, boolean is_open, optional integer condIn)
    Python: void ImGui_SetNextItemOpen(ImGui_Context* ctx, bool is_open, int* condInOptional)

    Set next TreeNode/CollapsingHeader open state.
    Can also be done with the TreeNodeFlags_DefaultOpen flag.

    Parameters:
    ImGui_Context ctx
    boolean is_open
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextItemWidth

    C: void ImGui_SetNextItemWidth(ImGui_Context* ctx, double item_width)
    EEL2: extension_api("ImGui_SetNextItemWidth", ImGui_Context ctx, item_width)
    Lua: reaper.ImGui_SetNextItemWidth(ImGui_Context ctx, number item_width)
    Python: void ImGui_SetNextItemWidth(ImGui_Context* ctx, double item_width)

    Set width of the _next_ common large "item+label" widget.

    - \>0.0: width in pixels
    - <0.0 align xx pixels to the right of window
      (so -FLT_MIN always align width to the right side)

    Parameters:
    ImGui_Context ctx
    number item_width


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowBgAlpha

    C: void ImGui_SetNextWindowBgAlpha(ImGui_Context* ctx, double alpha)
    EEL2: extension_api("ImGui_SetNextWindowBgAlpha", ImGui_Context ctx, alpha)
    Lua: reaper.ImGui_SetNextWindowBgAlpha(ImGui_Context ctx, number alpha)
    Python: void ImGui_SetNextWindowBgAlpha(ImGui_Context* ctx, double alpha)

    Set next window background color alpha. Helper to easily override the Alpha
    component of Col_WindowBg/Col_ChildBg/Col_PopupBg.
    You may also use WindowFlags_NoBackground for a fully transparent window.

    Parameters:
    ImGui_Context ctx
    number alpha


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowCollapsed

    C: void ImGui_SetNextWindowCollapsed(ImGui_Context* ctx, bool collapsed, int* condInOptional)
    EEL2: extension_api("ImGui_SetNextWindowCollapsed", ImGui_Context ctx, bool collapsed, optional int condIn)
    Lua: reaper.ImGui_SetNextWindowCollapsed(ImGui_Context ctx, boolean collapsed, optional integer condIn)
    Python: void ImGui_SetNextWindowCollapsed(ImGui_Context* ctx, bool collapsed, int* condInOptional)

    Set next window collapsed state.

    Parameters:
    ImGui_Context ctx
    boolean collapsed
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowContentSize

    C: void ImGui_SetNextWindowContentSize(ImGui_Context* ctx, double size_w, double size_h)
    EEL2: extension_api("ImGui_SetNextWindowContentSize", ImGui_Context ctx, size_w, size_h)
    Lua: reaper.ImGui_SetNextWindowContentSize(ImGui_Context ctx, number size_w, number size_h)
    Python: void ImGui_SetNextWindowContentSize(ImGui_Context* ctx, double size_w, double size_h)

    Set next window content size (~ scrollable client area, which enforce the
    range of scrollbars). Not including window decorations (title bar, menu bar,
    etc.) nor StyleVar_WindowPadding. set an axis to 0.0 to leave it automatic.

    Parameters:
    ImGui_Context ctx
    number size_w
    number size_h


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowDockID

    C: void ImGui_SetNextWindowDockID(ImGui_Context* ctx, int dock_id, int* condInOptional)
    EEL2: extension_api("ImGui_SetNextWindowDockID", ImGui_Context ctx, int dock_id, optional int condIn)
    Lua: reaper.ImGui_SetNextWindowDockID(ImGui_Context ctx, integer dock_id, optional integer condIn)
    Python: void ImGui_SetNextWindowDockID(ImGui_Context* ctx, int dock_id, int* condInOptional)



    Parameters:
    ImGui_Context ctx
    integer dock_id
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowFocus

    C: void ImGui_SetNextWindowFocus(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_SetNextWindowFocus", ImGui_Context ctx)
    Lua: reaper.ImGui_SetNextWindowFocus(ImGui_Context ctx)
    Python: void ImGui_SetNextWindowFocus(ImGui_Context* ctx)

    Set next window to be focused / top-most.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowPos

    C: void ImGui_SetNextWindowPos(ImGui_Context* ctx, double pos_x, double pos_y, int* condInOptional, double* pivot_xInOptional, double* pivot_yInOptional)
    EEL2: extension_api("ImGui_SetNextWindowPos", ImGui_Context ctx, pos_x, pos_y, optional int condIn, optional pivot_xIn, optional pivot_yIn)
    Lua: reaper.ImGui_SetNextWindowPos(ImGui_Context ctx, number pos_x, number pos_y, optional integer condIn, optional number pivot_xIn, optional number pivot_yIn)
    Python: void ImGui_SetNextWindowPos(ImGui_Context* ctx, double pos_x, double pos_y, int* condInOptional, double* pivot_xInOptional, double* pivot_yInOptional)

    Set next window position. Use pivot=(0.5,0.5) to center on given point, etc.

    Parameters:
    ImGui_Context ctx
    number pos_x
    number pos_y
    optional integer condIn
    optional number pivot_xIn
    optional number pivot_yIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowScroll

    C: void ImGui_SetNextWindowScroll(ImGui_Context* ctx, double scroll_x, double scroll_y)
    EEL2: extension_api("ImGui_SetNextWindowScroll", ImGui_Context ctx, scroll_x, scroll_y)
    Lua: reaper.ImGui_SetNextWindowScroll(ImGui_Context ctx, number scroll_x, number scroll_y)
    Python: void ImGui_SetNextWindowScroll(ImGui_Context* ctx, double scroll_x, double scroll_y)

    Set next window scrolling value (use < 0.0 to not affect a given axis).

    Parameters:
    ImGui_Context ctx
    number scroll_x
    number scroll_y


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowSize

    C: void ImGui_SetNextWindowSize(ImGui_Context* ctx, double size_w, double size_h, int* condInOptional)
    EEL2: extension_api("ImGui_SetNextWindowSize", ImGui_Context ctx, size_w, size_h, optional int condIn)
    Lua: reaper.ImGui_SetNextWindowSize(ImGui_Context ctx, number size_w, number size_h, optional integer condIn)
    Python: void ImGui_SetNextWindowSize(ImGui_Context* ctx, double size_w, double size_h, int* condInOptional)

    Set next window size. set axis to 0.0 to force an auto-fit on this axis.

    Parameters:
    ImGui_Context ctx
    number size_w
    number size_h
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetNextWindowSizeConstraints

    C: void ImGui_SetNextWindowSizeConstraints(ImGui_Context* ctx, double size_min_w, double size_min_h, double size_max_w, double size_max_h, ImGui_Function* callbackInOptional)
    EEL2: extension_api("ImGui_SetNextWindowSizeConstraints", ImGui_Context ctx, size_min_w, size_min_h, size_max_w, size_max_h, ImGui_Function callbackIn)
    Lua: reaper.ImGui_SetNextWindowSizeConstraints(ImGui_Context ctx, number size_min_w, number size_min_h, number size_max_w, number size_max_hImGui_Function callbackIn)
    Python: void ImGui_SetNextWindowSizeConstraints(ImGui_Context* ctx, double size_min_w, double size_min_h, double size_max_w, double size_max_h, ImGui_Function* callbackInOptional)

    Set next window size limits. Use -1,-1 on either X/Y axis to preserve the
    current size. Use FLT_MAX (second return value of NumericLimits_Float) for no
    maximum size. Sizes will be rounded down.

    Parameters:
    ImGui_Context ctx
    number size_min_w
    number size_min_h
    number size_max_w
    number size_max_hImGui_Function callbackIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetScrollFromPosX

    C: void ImGui_SetScrollFromPosX(ImGui_Context* ctx, double local_x, double* center_x_ratioInOptional)
    EEL2: extension_api("ImGui_SetScrollFromPosX", ImGui_Context ctx, local_x, optional center_x_ratioIn)
    Lua: reaper.ImGui_SetScrollFromPosX(ImGui_Context ctx, number local_x, optional number center_x_ratioIn)
    Python: void ImGui_SetScrollFromPosX(ImGui_Context* ctx, double local_x, double* center_x_ratioInOptional)

    Adjust scrolling amount to make given position visible.
    Generally GetCursorStartPos() + offset to compute a valid position.

    Parameters:
    ImGui_Context ctx
    number local_x
    optional number center_x_ratioIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetScrollFromPosY

    C: void ImGui_SetScrollFromPosY(ImGui_Context* ctx, double local_y, double* center_y_ratioInOptional)
    EEL2: extension_api("ImGui_SetScrollFromPosY", ImGui_Context ctx, local_y, optional center_y_ratioIn)
    Lua: reaper.ImGui_SetScrollFromPosY(ImGui_Context ctx, number local_y, optional number center_y_ratioIn)
    Python: void ImGui_SetScrollFromPosY(ImGui_Context* ctx, double local_y, double* center_y_ratioInOptional)

    Adjust scrolling amount to make given position visible.
    Generally GetCursorStartPos() + offset to compute a valid position.

    Parameters:
    ImGui_Context ctx
    number local_y
    optional number center_y_ratioIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetScrollHereX

    C: void ImGui_SetScrollHereX(ImGui_Context* ctx, double* center_x_ratioInOptional)
    EEL2: extension_api("ImGui_SetScrollHereX", ImGui_Context ctx, optional center_x_ratioIn)
    Lua: reaper.ImGui_SetScrollHereX(ImGui_Context ctx, optional number center_x_ratioIn)
    Python: void ImGui_SetScrollHereX(ImGui_Context* ctx, double* center_x_ratioInOptional)

    Adjust scrolling amount to make current cursor position visible.
    center_x_ratio=0.0: left, 0.5: center, 1.0: right.
    When using to make a "default/current item" visible,
    consider using SetItemDefaultFocus instead.

    Parameters:
    ImGui_Context ctx
    optional number center_x_ratioIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetScrollHereY

    C: void ImGui_SetScrollHereY(ImGui_Context* ctx, double* center_y_ratioInOptional)
    EEL2: extension_api("ImGui_SetScrollHereY", ImGui_Context ctx, optional center_y_ratioIn)
    Lua: reaper.ImGui_SetScrollHereY(ImGui_Context ctx, optional number center_y_ratioIn)
    Python: void ImGui_SetScrollHereY(ImGui_Context* ctx, double* center_y_ratioInOptional)

    Adjust scrolling amount to make current cursor position visible.
    center_y_ratio=0.0: top, 0.5: center, 1.0: bottom.
    When using to make a "default/current item" visible,
    consider using SetItemDefaultFocus instead.

    Parameters:
    ImGui_Context ctx
    optional number center_y_ratioIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetScrollX

    C: void ImGui_SetScrollX(ImGui_Context* ctx, double scroll_x)
    EEL2: extension_api("ImGui_SetScrollX", ImGui_Context ctx, scroll_x)
    Lua: reaper.ImGui_SetScrollX(ImGui_Context ctx, number scroll_x)
    Python: void ImGui_SetScrollX(ImGui_Context* ctx, double scroll_x)

    Set scrolling amount [0 .. GetScrollMaxX()]

    Parameters:
    ImGui_Context ctx
    number scroll_x


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetScrollY

    C: void ImGui_SetScrollY(ImGui_Context* ctx, double scroll_y)
    EEL2: extension_api("ImGui_SetScrollY", ImGui_Context ctx, scroll_y)
    Lua: reaper.ImGui_SetScrollY(ImGui_Context ctx, number scroll_y)
    Python: void ImGui_SetScrollY(ImGui_Context* ctx, double scroll_y)

    Set scrolling amount [0 .. GetScrollMaxY()]

    Parameters:
    ImGui_Context ctx
    number scroll_y


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetTabItemClosed

    C: void ImGui_SetTabItemClosed(ImGui_Context* ctx, const char* tab_or_docked_window_label)
    EEL2: extension_api("ImGui_SetTabItemClosed", ImGui_Context ctx, "tab_or_docked_window_label")
    Lua: reaper.ImGui_SetTabItemClosed(ImGui_Context ctx, string tab_or_docked_window_label)
    Python: void ImGui_SetTabItemClosed(ImGui_Context* ctx, const char* tab_or_docked_window_label)

    Notify TabBar or Docking system of a closed tab/window ahead
    (useful to reduce visual flicker on reorderable tab bars).
    For tab-bar: call after BeginTabBar and before Tab submissions.
    Otherwise call with a window name.

    Parameters:
    ImGui_Context ctx
    string tab_or_docked_window_label


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetTooltip

    C: void ImGui_SetTooltip(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_SetTooltip", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_SetTooltip(ImGui_Context ctx, string text)
    Python: void ImGui_SetTooltip(ImGui_Context* ctx, const char* text)

    Set a text-only tooltip, typically use with IsItemHovered. override any
    previous call to SetTooltip.

    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowCollapsed

    C: void ImGui_SetWindowCollapsed(ImGui_Context* ctx, bool collapsed, int* condInOptional)
    EEL2: extension_api("ImGui_SetWindowCollapsed", ImGui_Context ctx, bool collapsed, optional int condIn)
    Lua: reaper.ImGui_SetWindowCollapsed(ImGui_Context ctx, boolean collapsed, optional integer condIn)
    Python: void ImGui_SetWindowCollapsed(ImGui_Context* ctx, bool collapsed, int* condInOptional)

    (Not recommended) Set current window collapsed state.
    Prefer using SetNextWindowCollapsed.

    Parameters:
    ImGui_Context ctx
    boolean collapsed
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowCollapsedEx

    C: void ImGui_SetWindowCollapsedEx(ImGui_Context* ctx, const char* name, bool collapsed, int* condInOptional)
    EEL2: extension_api("ImGui_SetWindowCollapsedEx", ImGui_Context ctx, "name", bool collapsed, optional int condIn)
    Lua: reaper.ImGui_SetWindowCollapsedEx(ImGui_Context ctx, string name, boolean collapsed, optional integer condIn)
    Python: void ImGui_SetWindowCollapsedEx(ImGui_Context* ctx, const char* name, bool collapsed, int* condInOptional)

    Set named window collapsed state.

    Parameters:
    ImGui_Context ctx
    string name
    boolean collapsed
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowFocus

    C: void ImGui_SetWindowFocus(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_SetWindowFocus", ImGui_Context ctx)
    Lua: reaper.ImGui_SetWindowFocus(ImGui_Context ctx)
    Python: void ImGui_SetWindowFocus(ImGui_Context* ctx)

    (Not recommended) Set current window to be focused / top-most.
    Prefer using SetNextWindowFocus.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowFocusEx

    C: void ImGui_SetWindowFocusEx(ImGui_Context* ctx, const char* name)
    EEL2: extension_api("ImGui_SetWindowFocusEx", ImGui_Context ctx, "name")
    Lua: reaper.ImGui_SetWindowFocusEx(ImGui_Context ctx, string name)
    Python: void ImGui_SetWindowFocusEx(ImGui_Context* ctx, const char* name)

    Set named window to be focused / top-most. Use an empty name to remove focus.

    Parameters:
    ImGui_Context ctx
    string name


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowPos

    C: void ImGui_SetWindowPos(ImGui_Context* ctx, double pos_x, double pos_y, int* condInOptional)
    EEL2: extension_api("ImGui_SetWindowPos", ImGui_Context ctx, pos_x, pos_y, optional int condIn)
    Lua: reaper.ImGui_SetWindowPos(ImGui_Context ctx, number pos_x, number pos_y, optional integer condIn)
    Python: void ImGui_SetWindowPos(ImGui_Context* ctx, double pos_x, double pos_y, int* condInOptional)

    (Not recommended) Set current window position - call within Begin/End.
    Prefer using SetNextWindowPos, as this may incur tearing and minor side-effects.

    Parameters:
    ImGui_Context ctx
    number pos_x
    number pos_y
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowPosEx

    C: void ImGui_SetWindowPosEx(ImGui_Context* ctx, const char* name, double pos_x, double pos_y, int* condInOptional)
    EEL2: extension_api("ImGui_SetWindowPosEx", ImGui_Context ctx, "name", pos_x, pos_y, optional int condIn)
    Lua: reaper.ImGui_SetWindowPosEx(ImGui_Context ctx, string name, number pos_x, number pos_y, optional integer condIn)
    Python: void ImGui_SetWindowPosEx(ImGui_Context* ctx, const char* name, double pos_x, double pos_y, int* condInOptional)

    Set named window position.

    Parameters:
    ImGui_Context ctx
    string name
    number pos_x
    number pos_y
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowSize

    C: void ImGui_SetWindowSize(ImGui_Context* ctx, double size_w, double size_h, int* condInOptional)
    EEL2: extension_api("ImGui_SetWindowSize", ImGui_Context ctx, size_w, size_h, optional int condIn)
    Lua: reaper.ImGui_SetWindowSize(ImGui_Context ctx, number size_w, number size_h, optional integer condIn)
    Python: void ImGui_SetWindowSize(ImGui_Context* ctx, double size_w, double size_h, int* condInOptional)

    (Not recommended) Set current window size - call within Begin/End.
    Set size_w and size_h to 0 to force an auto-fit.
    Prefer using SetNextWindowSize, as this may incur tearing and minor side-effects.

    Parameters:
    ImGui_Context ctx
    number size_w
    number size_h
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SetWindowSizeEx

    C: void ImGui_SetWindowSizeEx(ImGui_Context* ctx, const char* name, double size_w, double size_h, int* condInOptional)
    EEL2: extension_api("ImGui_SetWindowSizeEx", ImGui_Context ctx, "name", size_w, size_h, optional int condIn)
    Lua: reaper.ImGui_SetWindowSizeEx(ImGui_Context ctx, string name, number size_w, number size_h, optional integer condIn)
    Python: void ImGui_SetWindowSizeEx(ImGui_Context* ctx, const char* name, double size_w, double size_h, int* condInOptional)

    Set named window size. Set axis to 0.0 to force an auto-fit on this axis.

    Parameters:
    ImGui_Context ctx
    string name
    number size_w
    number size_h
    optional integer condIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ShowAboutWindow

    C: void ImGui_ShowAboutWindow(ImGui_Context* ctx, bool* p_openInOutOptional)
    EEL2: extension_api("ImGui_ShowAboutWindow", ImGui_Context ctx, optional bool &p_open)
    Lua: optional boolean p_open = reaper.ImGui_ShowAboutWindow(ImGui_Context ctx, optional boolean p_open)
    Python: void ImGui_ShowAboutWindow(ImGui_Context* ctx, bool* p_openInOutOptional)

    Create About window.
    Display ReaImGui version, Dear ImGui version, credits and build/system information.

    Returnvalues:
    optional boolean p_open

    Parameters:
    ImGui_Context ctx
    optional boolean p_open


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ShowDebugLogWindow

    C: void ImGui_ShowDebugLogWindow(ImGui_Context* ctx, bool* p_openInOutOptional)
    EEL2: extension_api("ImGui_ShowDebugLogWindow", ImGui_Context ctx, optional bool &p_open)
    Lua: optional boolean p_open = reaper.ImGui_ShowDebugLogWindow(ImGui_Context ctx, optional boolean p_open)
    Python: void ImGui_ShowDebugLogWindow(ImGui_Context* ctx, bool* p_openInOutOptional)

    Create Debug Log window. display a simplified log of important dear imgui events.

    Returnvalues:
    optional boolean p_open

    Parameters:
    ImGui_Context ctx
    optional boolean p_open


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ShowMetricsWindow

    C: void ImGui_ShowMetricsWindow(ImGui_Context* ctx, bool* p_openInOutOptional)
    EEL2: extension_api("ImGui_ShowMetricsWindow", ImGui_Context ctx, optional bool &p_open)
    Lua: optional boolean p_open = reaper.ImGui_ShowMetricsWindow(ImGui_Context ctx, optional boolean p_open)
    Python: void ImGui_ShowMetricsWindow(ImGui_Context* ctx, bool* p_openInOutOptional)

    Create Metrics/Debugger window.
    Display Dear ImGui internals: windows, draw commands, various internal state, etc.

    Returnvalues:
    optional boolean p_open

    Parameters:
    ImGui_Context ctx
    optional boolean p_open


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ShowStackToolWindow

    C: void ImGui_ShowStackToolWindow(ImGui_Context* ctx, bool* p_openInOutOptional)
    EEL2: extension_api("ImGui_ShowStackToolWindow", ImGui_Context ctx, optional bool &p_open)
    Lua: optional boolean p_open = reaper.ImGui_ShowStackToolWindow(ImGui_Context ctx, optional boolean p_open)
    Python: void ImGui_ShowStackToolWindow(ImGui_Context* ctx, bool* p_openInOutOptional)

    Create Stack Tool window. Hover items with mouse to query information about
    the source of their unique ID.

    Returnvalues:
    optional boolean p_open

    Parameters:
    ImGui_Context ctx
    optional boolean p_open


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderAngle

    C: bool ImGui_SliderAngle(ImGui_Context* ctx, const char* label, double* v_radInOut, double* v_degrees_minInOptional, double* v_degrees_maxInOptional, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderAngle", ImGui_Context ctx, "label", &v_rad, optional v_degrees_minIn, optional v_degrees_maxIn, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v_rad = reaper.ImGui_SliderAngle(ImGui_Context ctx, string label, number v_rad, optional number v_degrees_minIn, optional number v_degrees_maxIn, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderAngle(ImGui_Context* ctx, const char* label, double* v_radInOut, double* v_degrees_minInOptional, double* v_degrees_maxInOptional, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v_rad

    Parameters:
    ImGui_Context ctx
    string label
    number v_rad
    optional number v_degrees_minIn
    optional number v_degrees_maxIn
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderDouble

    C: bool ImGui_SliderDouble(ImGui_Context* ctx, const char* label, double* vInOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderDouble", ImGui_Context ctx, "label", &v, v_min, v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v = reaper.ImGui_SliderDouble(ImGui_Context ctx, string label, number v, number v_min, number v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderDouble(ImGui_Context* ctx, const char* label, double* vInOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v

    Parameters:
    ImGui_Context ctx
    string label
    number v
    number v_min
    number v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderDouble2

    C: bool ImGui_SliderDouble2(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderDouble2", ImGui_Context ctx, "label", &v1, &v2, v_min, v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2 = reaper.ImGui_SliderDouble2(ImGui_Context ctx, string label, number v1, number v2, number v_min, number v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderDouble2(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    number v_min
    number v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderDouble3

    C: bool ImGui_SliderDouble3(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderDouble3", ImGui_Context ctx, "label", &v1, &v2, &v3, v_min, v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2, number v3 = reaper.ImGui_SliderDouble3(ImGui_Context ctx, string label, number v1, number v2, number v3, number v_min, number v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderDouble3(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2
    number v3

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    number v3
    number v_min
    number v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderDouble4

    C: bool ImGui_SliderDouble4(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v4InOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderDouble4", ImGui_Context ctx, "label", &v1, &v2, &v3, &v4, v_min, v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v1, number v2, number v3, number v4 = reaper.ImGui_SliderDouble4(ImGui_Context ctx, string label, number v1, number v2, number v3, number v4, number v_min, number v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderDouble4(ImGui_Context* ctx, const char* label, double* v1InOut, double* v2InOut, double* v3InOut, double* v4InOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v1
    number v2
    number v3
    number v4

    Parameters:
    ImGui_Context ctx
    string label
    number v1
    number v2
    number v3
    number v4
    number v_min
    number v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderDoubleN

    C: bool ImGui_SliderDoubleN(ImGui_Context* ctx, const char* label, reaper_array* values, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderDoubleN", ImGui_Context ctx, "label", reaper.array values, v_min, v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean reaper.ImGui_SliderDoubleN(ImGui_Context ctx, string labelreaper_array values, number v_min, number v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderDoubleN(ImGui_Context* ctx, const char* label, reaper_array* values, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string labelreaper_array values
    number v_min
    number v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderFlags_AlwaysClamp

    C: int ImGui_SliderFlags_AlwaysClamp()
    EEL2: int extension_api("ImGui_SliderFlags_AlwaysClamp")
    Lua: integer retval = reaper.ImGui_SliderFlags_AlwaysClamp()
    Python: int ImGui_SliderFlags_AlwaysClamp()

    Clamp value to min/max bounds when input manually with CTRL+Click.
       By default CTRL+Click allows going out of bounds.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderFlags_Logarithmic

    C: int ImGui_SliderFlags_Logarithmic()
    EEL2: int extension_api("ImGui_SliderFlags_Logarithmic")
    Lua: integer retval = reaper.ImGui_SliderFlags_Logarithmic()
    Python: int ImGui_SliderFlags_Logarithmic()

    Make the widget logarithmic (linear otherwise).
       Consider using SliderFlags_NoRoundToFormat with this if using a format-string
       with small amount of digits.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderFlags_NoInput

    C: int ImGui_SliderFlags_NoInput()
    EEL2: int extension_api("ImGui_SliderFlags_NoInput")
    Lua: integer retval = reaper.ImGui_SliderFlags_NoInput()
    Python: int ImGui_SliderFlags_NoInput()

    Disable CTRL+Click or Enter key allowing to input text directly into the widget.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderFlags_NoRoundToFormat

    C: int ImGui_SliderFlags_NoRoundToFormat()
    EEL2: int extension_api("ImGui_SliderFlags_NoRoundToFormat")
    Lua: integer retval = reaper.ImGui_SliderFlags_NoRoundToFormat()
    Python: int ImGui_SliderFlags_NoRoundToFormat()

    Disable rounding underlying value to match precision of the display format
       string (e.g. %.3f values are rounded to those 3 digits).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderFlags_None

    C: int ImGui_SliderFlags_None()
    EEL2: int extension_api("ImGui_SliderFlags_None")
    Lua: integer retval = reaper.ImGui_SliderFlags_None()
    Python: int ImGui_SliderFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderInt

    C: bool ImGui_SliderInt(ImGui_Context* ctx, const char* label, int* vInOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderInt", ImGui_Context ctx, "label", int &v, int v_min, int v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v = reaper.ImGui_SliderInt(ImGui_Context ctx, string label, integer v, integer v_min, integer v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderInt(ImGui_Context* ctx, const char* label, int* vInOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v

    Parameters:
    ImGui_Context ctx
    string label
    integer v
    integer v_min
    integer v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderInt2

    C: bool ImGui_SliderInt2(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderInt2", ImGui_Context ctx, "label", int &v1, int &v2, int v_min, int v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2 = reaper.ImGui_SliderInt2(ImGui_Context ctx, string label, integer v1, integer v2, integer v_min, integer v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderInt2(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    integer v_min
    integer v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderInt3

    C: bool ImGui_SliderInt3(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderInt3", ImGui_Context ctx, "label", int &v1, int &v2, int &v3, int v_min, int v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2, integer v3 = reaper.ImGui_SliderInt3(ImGui_Context ctx, string label, integer v1, integer v2, integer v3, integer v_min, integer v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderInt3(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2
    integer v3

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    integer v3
    integer v_min
    integer v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SliderInt4

    C: bool ImGui_SliderInt4(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* v4InOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_SliderInt4", ImGui_Context ctx, "label", int &v1, int &v2, int &v3, int &v4, int v_min, int v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v1, integer v2, integer v3, integer v4 = reaper.ImGui_SliderInt4(ImGui_Context ctx, string label, integer v1, integer v2, integer v3, integer v4, integer v_min, integer v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_SliderInt4(ImGui_Context* ctx, const char* label, int* v1InOut, int* v2InOut, int* v3InOut, int* v4InOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v1
    integer v2
    integer v3
    integer v4

    Parameters:
    ImGui_Context ctx
    string label
    integer v1
    integer v2
    integer v3
    integer v4
    integer v_min
    integer v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SmallButton

    C: bool ImGui_SmallButton(ImGui_Context* ctx, const char* label)
    EEL2: bool extension_api("ImGui_SmallButton", ImGui_Context ctx, "label")
    Lua: boolean reaper.ImGui_SmallButton(ImGui_Context ctx, string label)
    Python: bool ImGui_SmallButton(ImGui_Context* ctx, const char* label)

    Button with StyleVar_FramePadding=(0,0) to easily embed within text.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SortDirection_Ascending

    C: int ImGui_SortDirection_Ascending()
    EEL2: int extension_api("ImGui_SortDirection_Ascending")
    Lua: integer retval = reaper.ImGui_SortDirection_Ascending()
    Python: int ImGui_SortDirection_Ascending()

    Ascending = 0->9, A->Z etc.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SortDirection_Descending

    C: int ImGui_SortDirection_Descending()
    EEL2: int extension_api("ImGui_SortDirection_Descending")
    Lua: integer retval = reaper.ImGui_SortDirection_Descending()
    Python: int ImGui_SortDirection_Descending()

    Descending = 9->0, Z->A etc.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_SortDirection_None

    C: int ImGui_SortDirection_None()
    EEL2: int extension_api("ImGui_SortDirection_None")
    Lua: integer retval = reaper.ImGui_SortDirection_None()
    Python: int ImGui_SortDirection_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Spacing

    C: void ImGui_Spacing(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_Spacing", ImGui_Context ctx)
    Lua: reaper.ImGui_Spacing(ImGui_Context ctx)
    Python: void ImGui_Spacing(ImGui_Context* ctx)

    Add vertical spacing.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_Alpha

    C: int ImGui_StyleVar_Alpha()
    EEL2: int extension_api("ImGui_StyleVar_Alpha")
    Lua: integer retval = reaper.ImGui_StyleVar_Alpha()
    Python: int ImGui_StyleVar_Alpha()

    Global alpha applies to everything in Dear ImGui.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_ButtonTextAlign

    C: int ImGui_StyleVar_ButtonTextAlign()
    EEL2: int extension_api("ImGui_StyleVar_ButtonTextAlign")
    Lua: integer retval = reaper.ImGui_StyleVar_ButtonTextAlign()
    Python: int ImGui_StyleVar_ButtonTextAlign()

    Alignment of button text when button is larger than text.
       Defaults to (0.5, 0.5) (centered).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_CellPadding

    C: int ImGui_StyleVar_CellPadding()
    EEL2: int extension_api("ImGui_StyleVar_CellPadding")
    Lua: integer retval = reaper.ImGui_StyleVar_CellPadding()
    Python: int ImGui_StyleVar_CellPadding()

    Padding within a table cell.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_ChildBorderSize

    C: int ImGui_StyleVar_ChildBorderSize()
    EEL2: int extension_api("ImGui_StyleVar_ChildBorderSize")
    Lua: integer retval = reaper.ImGui_StyleVar_ChildBorderSize()
    Python: int ImGui_StyleVar_ChildBorderSize()

    Thickness of border around child windows. Generally set to 0.0 or 1.0.
       (Other values are not well tested and more CPU/GPU costly).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_ChildRounding

    C: int ImGui_StyleVar_ChildRounding()
    EEL2: int extension_api("ImGui_StyleVar_ChildRounding")
    Lua: integer retval = reaper.ImGui_StyleVar_ChildRounding()
    Python: int ImGui_StyleVar_ChildRounding()

    Radius of child window corners rounding. Set to 0.0 to have rectangular windows.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_DisabledAlpha

    C: int ImGui_StyleVar_DisabledAlpha()
    EEL2: int extension_api("ImGui_StyleVar_DisabledAlpha")
    Lua: integer retval = reaper.ImGui_StyleVar_DisabledAlpha()
    Python: int ImGui_StyleVar_DisabledAlpha()

    Additional alpha multiplier applied by BeginDisabled.
      Multiply over current value of Alpha.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_FrameBorderSize

    C: int ImGui_StyleVar_FrameBorderSize()
    EEL2: int extension_api("ImGui_StyleVar_FrameBorderSize")
    Lua: integer retval = reaper.ImGui_StyleVar_FrameBorderSize()
    Python: int ImGui_StyleVar_FrameBorderSize()

    Thickness of border around frames. Generally set to 0.0 or 1.0.
       (Other values are not well tested and more CPU/GPU costly).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_FramePadding

    C: int ImGui_StyleVar_FramePadding()
    EEL2: int extension_api("ImGui_StyleVar_FramePadding")
    Lua: integer retval = reaper.ImGui_StyleVar_FramePadding()
    Python: int ImGui_StyleVar_FramePadding()

    Padding within a framed rectangle (used by most widgets).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_FrameRounding

    C: int ImGui_StyleVar_FrameRounding()
    EEL2: int extension_api("ImGui_StyleVar_FrameRounding")
    Lua: integer retval = reaper.ImGui_StyleVar_FrameRounding()
    Python: int ImGui_StyleVar_FrameRounding()

    Radius of frame corners rounding.
       Set to 0.0 to have rectangular frame (used by most widgets).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_GrabMinSize

    C: int ImGui_StyleVar_GrabMinSize()
    EEL2: int extension_api("ImGui_StyleVar_GrabMinSize")
    Lua: integer retval = reaper.ImGui_StyleVar_GrabMinSize()
    Python: int ImGui_StyleVar_GrabMinSize()

    Minimum width/height of a grab box for slider/scrollbar.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_GrabRounding

    C: int ImGui_StyleVar_GrabRounding()
    EEL2: int extension_api("ImGui_StyleVar_GrabRounding")
    Lua: integer retval = reaper.ImGui_StyleVar_GrabRounding()
    Python: int ImGui_StyleVar_GrabRounding()

    Radius of grabs corners rounding. Set to 0.0 to have rectangular slider grabs.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_IndentSpacing

    C: int ImGui_StyleVar_IndentSpacing()
    EEL2: int extension_api("ImGui_StyleVar_IndentSpacing")
    Lua: integer retval = reaper.ImGui_StyleVar_IndentSpacing()
    Python: int ImGui_StyleVar_IndentSpacing()

    Horizontal indentation when e.g. entering a tree node.
       Generally == (GetFontSize + StyleVar_FramePadding.x*2).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_ItemInnerSpacing

    C: int ImGui_StyleVar_ItemInnerSpacing()
    EEL2: int extension_api("ImGui_StyleVar_ItemInnerSpacing")
    Lua: integer retval = reaper.ImGui_StyleVar_ItemInnerSpacing()
    Python: int ImGui_StyleVar_ItemInnerSpacing()

    Horizontal and vertical spacing between within elements of a composed widget
       (e.g. a slider and its label).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_ItemSpacing

    C: int ImGui_StyleVar_ItemSpacing()
    EEL2: int extension_api("ImGui_StyleVar_ItemSpacing")
    Lua: integer retval = reaper.ImGui_StyleVar_ItemSpacing()
    Python: int ImGui_StyleVar_ItemSpacing()

    Horizontal and vertical spacing between widgets/lines.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_PopupBorderSize

    C: int ImGui_StyleVar_PopupBorderSize()
    EEL2: int extension_api("ImGui_StyleVar_PopupBorderSize")
    Lua: integer retval = reaper.ImGui_StyleVar_PopupBorderSize()
    Python: int ImGui_StyleVar_PopupBorderSize()

    Thickness of border around popup/tooltip windows. Generally set to 0.0 or 1.0.
       (Other values are not well tested and more CPU/GPU costly).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_PopupRounding

    C: int ImGui_StyleVar_PopupRounding()
    EEL2: int extension_api("ImGui_StyleVar_PopupRounding")
    Lua: integer retval = reaper.ImGui_StyleVar_PopupRounding()
    Python: int ImGui_StyleVar_PopupRounding()

    Radius of popup window corners rounding.
       (Note that tooltip windows use StyleVar_WindowRounding.)

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_ScrollbarRounding

    C: int ImGui_StyleVar_ScrollbarRounding()
    EEL2: int extension_api("ImGui_StyleVar_ScrollbarRounding")
    Lua: integer retval = reaper.ImGui_StyleVar_ScrollbarRounding()
    Python: int ImGui_StyleVar_ScrollbarRounding()

    Radius of grab corners for scrollbar.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_ScrollbarSize

    C: int ImGui_StyleVar_ScrollbarSize()
    EEL2: int extension_api("ImGui_StyleVar_ScrollbarSize")
    Lua: integer retval = reaper.ImGui_StyleVar_ScrollbarSize()
    Python: int ImGui_StyleVar_ScrollbarSize()

    Width of the vertical scrollbar, Height of the horizontal scrollbar.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_SelectableTextAlign

    C: int ImGui_StyleVar_SelectableTextAlign()
    EEL2: int extension_api("ImGui_StyleVar_SelectableTextAlign")
    Lua: integer retval = reaper.ImGui_StyleVar_SelectableTextAlign()
    Python: int ImGui_StyleVar_SelectableTextAlign()

    Alignment of selectable text. Defaults to (0.0, 0.0) (top-left aligned).
       It's generally important to keep this left-aligned if you want to lay
       multiple items on a same line.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_SeparatorTextAlign

    C: int ImGui_StyleVar_SeparatorTextAlign()
    EEL2: int extension_api("ImGui_StyleVar_SeparatorTextAlign")
    Lua: integer retval = reaper.ImGui_StyleVar_SeparatorTextAlign()
    Python: int ImGui_StyleVar_SeparatorTextAlign()

    Alignment of text within the separator.
    Defaults to (0.0, 0.5) (left aligned, center).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_SeparatorTextBorderSize

    C: int ImGui_StyleVar_SeparatorTextBorderSize()
    EEL2: int extension_api("ImGui_StyleVar_SeparatorTextBorderSize")
    Lua: integer retval = reaper.ImGui_StyleVar_SeparatorTextBorderSize()
    Python: int ImGui_StyleVar_SeparatorTextBorderSize()

    Thickness of border in SeparatorText()

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_SeparatorTextPadding

    C: int ImGui_StyleVar_SeparatorTextPadding()
    EEL2: int extension_api("ImGui_StyleVar_SeparatorTextPadding")
    Lua: integer retval = reaper.ImGui_StyleVar_SeparatorTextPadding()
    Python: int ImGui_StyleVar_SeparatorTextPadding()

    Horizontal offset of text from each edge of the separator + spacing on other
    axis. Generally small values. .y is recommended to be == StyleVar_FramePadding.y.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_TabRounding

    C: int ImGui_StyleVar_TabRounding()
    EEL2: int extension_api("ImGui_StyleVar_TabRounding")
    Lua: integer retval = reaper.ImGui_StyleVar_TabRounding()
    Python: int ImGui_StyleVar_TabRounding()

    Radius of upper corners of a tab. Set to 0.0 to have rectangular tabs.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_WindowBorderSize

    C: int ImGui_StyleVar_WindowBorderSize()
    EEL2: int extension_api("ImGui_StyleVar_WindowBorderSize")
    Lua: integer retval = reaper.ImGui_StyleVar_WindowBorderSize()
    Python: int ImGui_StyleVar_WindowBorderSize()

    Thickness of border around windows. Generally set to 0.0 or 1.0.
      (Other values are not well tested and more CPU/GPU costly).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_WindowMinSize

    C: int ImGui_StyleVar_WindowMinSize()
    EEL2: int extension_api("ImGui_StyleVar_WindowMinSize")
    Lua: integer retval = reaper.ImGui_StyleVar_WindowMinSize()
    Python: int ImGui_StyleVar_WindowMinSize()

    Minimum window size. This is a global setting.
      If you want to constrain individual windows, use SetNextWindowSizeConstraints.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_WindowPadding

    C: int ImGui_StyleVar_WindowPadding()
    EEL2: int extension_api("ImGui_StyleVar_WindowPadding")
    Lua: integer retval = reaper.ImGui_StyleVar_WindowPadding()
    Python: int ImGui_StyleVar_WindowPadding()

    Padding within a window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_WindowRounding

    C: int ImGui_StyleVar_WindowRounding()
    EEL2: int extension_api("ImGui_StyleVar_WindowRounding")
    Lua: integer retval = reaper.ImGui_StyleVar_WindowRounding()
    Python: int ImGui_StyleVar_WindowRounding()

    Radius of window corners rounding. Set to 0.0 to have rectangular windows.
      Large values tend to lead to variety of artifacts and are not recommended.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_StyleVar_WindowTitleAlign

    C: int ImGui_StyleVar_WindowTitleAlign()
    EEL2: int extension_api("ImGui_StyleVar_WindowTitleAlign")
    Lua: integer retval = reaper.ImGui_StyleVar_WindowTitleAlign()
    Python: int ImGui_StyleVar_WindowTitleAlign()

    Alignment for title bar text.
       Defaults to (0.0,0.5) for left-aligned,vertically centered.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_AutoSelectNewTabs

    C: int ImGui_TabBarFlags_AutoSelectNewTabs()
    EEL2: int extension_api("ImGui_TabBarFlags_AutoSelectNewTabs")
    Lua: integer retval = reaper.ImGui_TabBarFlags_AutoSelectNewTabs()
    Python: int ImGui_TabBarFlags_AutoSelectNewTabs()

    Automatically select new tabs when they appear.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_FittingPolicyResizeDown

    C: int ImGui_TabBarFlags_FittingPolicyResizeDown()
    EEL2: int extension_api("ImGui_TabBarFlags_FittingPolicyResizeDown")
    Lua: integer retval = reaper.ImGui_TabBarFlags_FittingPolicyResizeDown()
    Python: int ImGui_TabBarFlags_FittingPolicyResizeDown()

    Resize tabs when they don't fit.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_FittingPolicyScroll

    C: int ImGui_TabBarFlags_FittingPolicyScroll()
    EEL2: int extension_api("ImGui_TabBarFlags_FittingPolicyScroll")
    Lua: integer retval = reaper.ImGui_TabBarFlags_FittingPolicyScroll()
    Python: int ImGui_TabBarFlags_FittingPolicyScroll()

    Add scroll buttons when tabs don't fit.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_NoCloseWithMiddleMouseButton

    C: int ImGui_TabBarFlags_NoCloseWithMiddleMouseButton()
    EEL2: int extension_api("ImGui_TabBarFlags_NoCloseWithMiddleMouseButton")
    Lua: integer retval = reaper.ImGui_TabBarFlags_NoCloseWithMiddleMouseButton()
    Python: int ImGui_TabBarFlags_NoCloseWithMiddleMouseButton()

    Disable behavior of closing tabs (that are submitted with p_open != nil)
       with middle mouse button. You can still repro this behavior on user's side
       with if(IsItemHovered() && IsMouseClicked(2)) p_open = false.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_NoTabListScrollingButtons

    C: int ImGui_TabBarFlags_NoTabListScrollingButtons()
    EEL2: int extension_api("ImGui_TabBarFlags_NoTabListScrollingButtons")
    Lua: integer retval = reaper.ImGui_TabBarFlags_NoTabListScrollingButtons()
    Python: int ImGui_TabBarFlags_NoTabListScrollingButtons()

    Disable scrolling buttons (apply when fitting policy is
       TabBarFlags_FittingPolicyScroll).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_NoTooltip

    C: int ImGui_TabBarFlags_NoTooltip()
    EEL2: int extension_api("ImGui_TabBarFlags_NoTooltip")
    Lua: integer retval = reaper.ImGui_TabBarFlags_NoTooltip()
    Python: int ImGui_TabBarFlags_NoTooltip()

    Disable tooltips when hovering a tab.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_None

    C: int ImGui_TabBarFlags_None()
    EEL2: int extension_api("ImGui_TabBarFlags_None")
    Lua: integer retval = reaper.ImGui_TabBarFlags_None()
    Python: int ImGui_TabBarFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_Reorderable

    C: int ImGui_TabBarFlags_Reorderable()
    EEL2: int extension_api("ImGui_TabBarFlags_Reorderable")
    Lua: integer retval = reaper.ImGui_TabBarFlags_Reorderable()
    Python: int ImGui_TabBarFlags_Reorderable()

    Allow manually dragging tabs to re-order them + New tabs are appended at
       the end of list.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabBarFlags_TabListPopupButton

    C: int ImGui_TabBarFlags_TabListPopupButton()
    EEL2: int extension_api("ImGui_TabBarFlags_TabListPopupButton")
    Lua: integer retval = reaper.ImGui_TabBarFlags_TabListPopupButton()
    Python: int ImGui_TabBarFlags_TabListPopupButton()

    Disable buttons to open the tab list popup.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemButton

    C: bool ImGui_TabItemButton(ImGui_Context* ctx, const char* label, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_TabItemButton", ImGui_Context ctx, "label", optional int flagsIn)
    Lua: boolean reaper.ImGui_TabItemButton(ImGui_Context ctx, string label, optional integer flagsIn)
    Python: bool ImGui_TabItemButton(ImGui_Context* ctx, const char* label, int* flagsInOptional)

    Create a Tab behaving like a button. Return true when clicked.
    Cannot be selected in the tab bar.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_Leading

    C: int ImGui_TabItemFlags_Leading()
    EEL2: int extension_api("ImGui_TabItemFlags_Leading")
    Lua: integer retval = reaper.ImGui_TabItemFlags_Leading()
    Python: int ImGui_TabItemFlags_Leading()

    Enforce the tab position to the left of the tab bar (after the tab list popup button).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_NoCloseWithMiddleMouseButton

    C: int ImGui_TabItemFlags_NoCloseWithMiddleMouseButton()
    EEL2: int extension_api("ImGui_TabItemFlags_NoCloseWithMiddleMouseButton")
    Lua: integer retval = reaper.ImGui_TabItemFlags_NoCloseWithMiddleMouseButton()
    Python: int ImGui_TabItemFlags_NoCloseWithMiddleMouseButton()

    Disable behavior of closing tabs (that are submitted with p_open != nil) with
       middle mouse button. You can still repro this behavior on user's side with
       if(IsItemHovered() && IsMouseClicked(2)) p_open = false.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_NoPushId

    C: int ImGui_TabItemFlags_NoPushId()
    EEL2: int extension_api("ImGui_TabItemFlags_NoPushId")
    Lua: integer retval = reaper.ImGui_TabItemFlags_NoPushId()
    Python: int ImGui_TabItemFlags_NoPushId()

    Don't call PushID(tab->ID)/PopID() on BeginTabItem/EndTabItem.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_NoReorder

    C: int ImGui_TabItemFlags_NoReorder()
    EEL2: int extension_api("ImGui_TabItemFlags_NoReorder")
    Lua: integer retval = reaper.ImGui_TabItemFlags_NoReorder()
    Python: int ImGui_TabItemFlags_NoReorder()

    Disable reordering this tab or having another tab cross over this tab.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_NoTooltip

    C: int ImGui_TabItemFlags_NoTooltip()
    EEL2: int extension_api("ImGui_TabItemFlags_NoTooltip")
    Lua: integer retval = reaper.ImGui_TabItemFlags_NoTooltip()
    Python: int ImGui_TabItemFlags_NoTooltip()

    Disable tooltip for the given tab.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_None

    C: int ImGui_TabItemFlags_None()
    EEL2: int extension_api("ImGui_TabItemFlags_None")
    Lua: integer retval = reaper.ImGui_TabItemFlags_None()
    Python: int ImGui_TabItemFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_SetSelected

    C: int ImGui_TabItemFlags_SetSelected()
    EEL2: int extension_api("ImGui_TabItemFlags_SetSelected")
    Lua: integer retval = reaper.ImGui_TabItemFlags_SetSelected()
    Python: int ImGui_TabItemFlags_SetSelected()

    Trigger flag to programmatically make the tab selected when calling BeginTabItem.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_Trailing

    C: int ImGui_TabItemFlags_Trailing()
    EEL2: int extension_api("ImGui_TabItemFlags_Trailing")
    Lua: integer retval = reaper.ImGui_TabItemFlags_Trailing()
    Python: int ImGui_TabItemFlags_Trailing()

    Enforce the tab position to the right of the tab bar (before the scrolling buttons).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TabItemFlags_UnsavedDocument

    C: int ImGui_TabItemFlags_UnsavedDocument()
    EEL2: int extension_api("ImGui_TabItemFlags_UnsavedDocument")
    Lua: integer retval = reaper.ImGui_TabItemFlags_UnsavedDocument()
    Python: int ImGui_TabItemFlags_UnsavedDocument()

    Append '*' to title without affecting the ID, as a convenience to avoid using
       the ### operator. Also: tab is selected on closure and closure is deferred by
       one frame to allow code to undo it without flicker.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableBgTarget_CellBg

    C: int ImGui_TableBgTarget_CellBg()
    EEL2: int extension_api("ImGui_TableBgTarget_CellBg")
    Lua: integer retval = reaper.ImGui_TableBgTarget_CellBg()
    Python: int ImGui_TableBgTarget_CellBg()

    Set cell background color (top-most color).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableBgTarget_None

    C: int ImGui_TableBgTarget_None()
    EEL2: int extension_api("ImGui_TableBgTarget_None")
    Lua: integer retval = reaper.ImGui_TableBgTarget_None()
    Python: int ImGui_TableBgTarget_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableBgTarget_RowBg0

    C: int ImGui_TableBgTarget_RowBg0()
    EEL2: int extension_api("ImGui_TableBgTarget_RowBg0")
    Lua: integer retval = reaper.ImGui_TableBgTarget_RowBg0()
    Python: int ImGui_TableBgTarget_RowBg0()

    Set row background color 0 (generally used for background,
       automatically set when TableFlags_RowBg is used).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableBgTarget_RowBg1

    C: int ImGui_TableBgTarget_RowBg1()
    EEL2: int extension_api("ImGui_TableBgTarget_RowBg1")
    Lua: integer retval = reaper.ImGui_TableBgTarget_RowBg1()
    Python: int ImGui_TableBgTarget_RowBg1()

    Set row background color 1 (generally used for selection marking).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_DefaultHide

    C: int ImGui_TableColumnFlags_DefaultHide()
    EEL2: int extension_api("ImGui_TableColumnFlags_DefaultHide")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_DefaultHide()
    Python: int ImGui_TableColumnFlags_DefaultHide()

    Default as a hidden/disabled column.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_DefaultSort

    C: int ImGui_TableColumnFlags_DefaultSort()
    EEL2: int extension_api("ImGui_TableColumnFlags_DefaultSort")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_DefaultSort()
    Python: int ImGui_TableColumnFlags_DefaultSort()

    Default as a sorting column.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_Disabled

    C: int ImGui_TableColumnFlags_Disabled()
    EEL2: int extension_api("ImGui_TableColumnFlags_Disabled")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_Disabled()
    Python: int ImGui_TableColumnFlags_Disabled()

    Overriding/master disable flag: hide column, won't show in context menu
       (unlike calling TableSetColumnEnabled which manipulates the user accessible state).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_IndentDisable

    C: int ImGui_TableColumnFlags_IndentDisable()
    EEL2: int extension_api("ImGui_TableColumnFlags_IndentDisable")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_IndentDisable()
    Python: int ImGui_TableColumnFlags_IndentDisable()

    Ignore current Indent value when entering cell (default for columns > 0).
       Indentation changes _within_ the cell will still be honored.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_IndentEnable

    C: int ImGui_TableColumnFlags_IndentEnable()
    EEL2: int extension_api("ImGui_TableColumnFlags_IndentEnable")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_IndentEnable()
    Python: int ImGui_TableColumnFlags_IndentEnable()

    Use current Indent value when entering cell (default for column 0).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_IsEnabled

    C: int ImGui_TableColumnFlags_IsEnabled()
    EEL2: int extension_api("ImGui_TableColumnFlags_IsEnabled")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_IsEnabled()
    Python: int ImGui_TableColumnFlags_IsEnabled()

    Status: is enabled == not hidden by user/api (referred to as "Hide" in
       _DefaultHide and _NoHide) flags.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_IsHovered

    C: int ImGui_TableColumnFlags_IsHovered()
    EEL2: int extension_api("ImGui_TableColumnFlags_IsHovered")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_IsHovered()
    Python: int ImGui_TableColumnFlags_IsHovered()

    Status: is hovered by mouse.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_IsSorted

    C: int ImGui_TableColumnFlags_IsSorted()
    EEL2: int extension_api("ImGui_TableColumnFlags_IsSorted")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_IsSorted()
    Python: int ImGui_TableColumnFlags_IsSorted()

    Status: is currently part of the sort specs.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_IsVisible

    C: int ImGui_TableColumnFlags_IsVisible()
    EEL2: int extension_api("ImGui_TableColumnFlags_IsVisible")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_IsVisible()
    Python: int ImGui_TableColumnFlags_IsVisible()

    Status: is visible == is enabled AND not clipped by scrolling.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoClip

    C: int ImGui_TableColumnFlags_NoClip()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoClip")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoClip()
    Python: int ImGui_TableColumnFlags_NoClip()

    Disable clipping for this column
       (all NoClip columns will render in a same draw command).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoHeaderLabel

    C: int ImGui_TableColumnFlags_NoHeaderLabel()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoHeaderLabel")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoHeaderLabel()
    Python: int ImGui_TableColumnFlags_NoHeaderLabel()

    TableHeadersRow will not submit label for this column.
       Convenient for some small columns. Name will still appear in context menu.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoHeaderWidth

    C: int ImGui_TableColumnFlags_NoHeaderWidth()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoHeaderWidth")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoHeaderWidth()
    Python: int ImGui_TableColumnFlags_NoHeaderWidth()

    Disable header text width contribution to automatic column width.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoHide

    C: int ImGui_TableColumnFlags_NoHide()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoHide")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoHide()
    Python: int ImGui_TableColumnFlags_NoHide()

    Disable ability to hide/disable this column.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoReorder

    C: int ImGui_TableColumnFlags_NoReorder()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoReorder")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoReorder()
    Python: int ImGui_TableColumnFlags_NoReorder()

    Disable manual reordering this column, this will also prevent other columns
       from crossing over this column.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoResize

    C: int ImGui_TableColumnFlags_NoResize()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoResize")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoResize()
    Python: int ImGui_TableColumnFlags_NoResize()

    Disable manual resizing.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoSort

    C: int ImGui_TableColumnFlags_NoSort()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoSort")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoSort()
    Python: int ImGui_TableColumnFlags_NoSort()

    Disable ability to sort on this field
       (even if TableFlags_Sortable is set on the table).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoSortAscending

    C: int ImGui_TableColumnFlags_NoSortAscending()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoSortAscending")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoSortAscending()
    Python: int ImGui_TableColumnFlags_NoSortAscending()

    Disable ability to sort in the ascending direction.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_NoSortDescending

    C: int ImGui_TableColumnFlags_NoSortDescending()
    EEL2: int extension_api("ImGui_TableColumnFlags_NoSortDescending")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_NoSortDescending()
    Python: int ImGui_TableColumnFlags_NoSortDescending()

    Disable ability to sort in the descending direction.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_None

    C: int ImGui_TableColumnFlags_None()
    EEL2: int extension_api("ImGui_TableColumnFlags_None")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_None()
    Python: int ImGui_TableColumnFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_PreferSortAscending

    C: int ImGui_TableColumnFlags_PreferSortAscending()
    EEL2: int extension_api("ImGui_TableColumnFlags_PreferSortAscending")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_PreferSortAscending()
    Python: int ImGui_TableColumnFlags_PreferSortAscending()

    Make the initial sort direction Ascending when first sorting on this column (default).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_PreferSortDescending

    C: int ImGui_TableColumnFlags_PreferSortDescending()
    EEL2: int extension_api("ImGui_TableColumnFlags_PreferSortDescending")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_PreferSortDescending()
    Python: int ImGui_TableColumnFlags_PreferSortDescending()

    Make the initial sort direction Descending when first sorting on this column.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_WidthFixed

    C: int ImGui_TableColumnFlags_WidthFixed()
    EEL2: int extension_api("ImGui_TableColumnFlags_WidthFixed")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_WidthFixed()
    Python: int ImGui_TableColumnFlags_WidthFixed()

    Column will not stretch. Preferable with horizontal scrolling enabled
       (default if table sizing policy is _SizingFixedFit and table is resizable).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableColumnFlags_WidthStretch

    C: int ImGui_TableColumnFlags_WidthStretch()
    EEL2: int extension_api("ImGui_TableColumnFlags_WidthStretch")
    Lua: integer retval = reaper.ImGui_TableColumnFlags_WidthStretch()
    Python: int ImGui_TableColumnFlags_WidthStretch()

    Column will stretch. Preferable with horizontal scrolling disabled
       (default if table sizing policy is _SizingStretchSame or _SizingStretchProp).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_Borders

    C: int ImGui_TableFlags_Borders()
    EEL2: int extension_api("ImGui_TableFlags_Borders")
    Lua: integer retval = reaper.ImGui_TableFlags_Borders()
    Python: int ImGui_TableFlags_Borders()

    Draw all borders.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersH

    C: int ImGui_TableFlags_BordersH()
    EEL2: int extension_api("ImGui_TableFlags_BordersH")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersH()
    Python: int ImGui_TableFlags_BordersH()

    Draw horizontal borders.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersInner

    C: int ImGui_TableFlags_BordersInner()
    EEL2: int extension_api("ImGui_TableFlags_BordersInner")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersInner()
    Python: int ImGui_TableFlags_BordersInner()

    Draw inner borders.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersInnerH

    C: int ImGui_TableFlags_BordersInnerH()
    EEL2: int extension_api("ImGui_TableFlags_BordersInnerH")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersInnerH()
    Python: int ImGui_TableFlags_BordersInnerH()

    Draw horizontal borders between rows.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersInnerV

    C: int ImGui_TableFlags_BordersInnerV()
    EEL2: int extension_api("ImGui_TableFlags_BordersInnerV")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersInnerV()
    Python: int ImGui_TableFlags_BordersInnerV()

    Draw vertical borders between columns.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersOuter

    C: int ImGui_TableFlags_BordersOuter()
    EEL2: int extension_api("ImGui_TableFlags_BordersOuter")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersOuter()
    Python: int ImGui_TableFlags_BordersOuter()

    Draw outer borders.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersOuterH

    C: int ImGui_TableFlags_BordersOuterH()
    EEL2: int extension_api("ImGui_TableFlags_BordersOuterH")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersOuterH()
    Python: int ImGui_TableFlags_BordersOuterH()

    Draw horizontal borders at the top and bottom.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersOuterV

    C: int ImGui_TableFlags_BordersOuterV()
    EEL2: int extension_api("ImGui_TableFlags_BordersOuterV")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersOuterV()
    Python: int ImGui_TableFlags_BordersOuterV()

    Draw vertical borders on the left and right sides.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_BordersV

    C: int ImGui_TableFlags_BordersV()
    EEL2: int extension_api("ImGui_TableFlags_BordersV")
    Lua: integer retval = reaper.ImGui_TableFlags_BordersV()
    Python: int ImGui_TableFlags_BordersV()

    Draw vertical borders.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_ContextMenuInBody

    C: int ImGui_TableFlags_ContextMenuInBody()
    EEL2: int extension_api("ImGui_TableFlags_ContextMenuInBody")
    Lua: integer retval = reaper.ImGui_TableFlags_ContextMenuInBody()
    Python: int ImGui_TableFlags_ContextMenuInBody()

    Right-click on columns body/contents will display table context menu.
       By default it is available in TableHeadersRow.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_Hideable

    C: int ImGui_TableFlags_Hideable()
    EEL2: int extension_api("ImGui_TableFlags_Hideable")
    Lua: integer retval = reaper.ImGui_TableFlags_Hideable()
    Python: int ImGui_TableFlags_Hideable()

    Enable hiding/disabling columns in context menu.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_NoClip

    C: int ImGui_TableFlags_NoClip()
    EEL2: int extension_api("ImGui_TableFlags_NoClip")
    Lua: integer retval = reaper.ImGui_TableFlags_NoClip()
    Python: int ImGui_TableFlags_NoClip()

    Disable clipping rectangle for every individual columns
       (reduce draw command count, items will be able to overflow into other columns).
       Generally incompatible with TableSetupScrollFreeze.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_NoHostExtendX

    C: int ImGui_TableFlags_NoHostExtendX()
    EEL2: int extension_api("ImGui_TableFlags_NoHostExtendX")
    Lua: integer retval = reaper.ImGui_TableFlags_NoHostExtendX()
    Python: int ImGui_TableFlags_NoHostExtendX()

    Make outer width auto-fit to columns, overriding outer_size.x value. Only
       available when ScrollX/ScrollY are disabled and Stretch columns are not used.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_NoHostExtendY

    C: int ImGui_TableFlags_NoHostExtendY()
    EEL2: int extension_api("ImGui_TableFlags_NoHostExtendY")
    Lua: integer retval = reaper.ImGui_TableFlags_NoHostExtendY()
    Python: int ImGui_TableFlags_NoHostExtendY()

    Make outer height stop exactly at outer_size.y (prevent auto-extending table
       past the limit). Only available when ScrollX/ScrollY are disabled.
       Data below the limit will be clipped and not visible.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_NoKeepColumnsVisible

    C: int ImGui_TableFlags_NoKeepColumnsVisible()
    EEL2: int extension_api("ImGui_TableFlags_NoKeepColumnsVisible")
    Lua: integer retval = reaper.ImGui_TableFlags_NoKeepColumnsVisible()
    Python: int ImGui_TableFlags_NoKeepColumnsVisible()

    Disable keeping column always minimally visible when ScrollX is off and table
       gets too small. Not recommended if columns are resizable.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_NoPadInnerX

    C: int ImGui_TableFlags_NoPadInnerX()
    EEL2: int extension_api("ImGui_TableFlags_NoPadInnerX")
    Lua: integer retval = reaper.ImGui_TableFlags_NoPadInnerX()
    Python: int ImGui_TableFlags_NoPadInnerX()

    Disable inner padding between columns (double inner padding if
       TableFlags_BordersOuterV is on, single inner padding if BordersOuterV is off).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_NoPadOuterX

    C: int ImGui_TableFlags_NoPadOuterX()
    EEL2: int extension_api("ImGui_TableFlags_NoPadOuterX")
    Lua: integer retval = reaper.ImGui_TableFlags_NoPadOuterX()
    Python: int ImGui_TableFlags_NoPadOuterX()

    Default if TableFlags_BordersOuterV is off. Disable outermost padding.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_NoSavedSettings

    C: int ImGui_TableFlags_NoSavedSettings()
    EEL2: int extension_api("ImGui_TableFlags_NoSavedSettings")
    Lua: integer retval = reaper.ImGui_TableFlags_NoSavedSettings()
    Python: int ImGui_TableFlags_NoSavedSettings()

    Disable persisting columns order, width and sort settings in the .ini file.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_None

    C: int ImGui_TableFlags_None()
    EEL2: int extension_api("ImGui_TableFlags_None")
    Lua: integer retval = reaper.ImGui_TableFlags_None()
    Python: int ImGui_TableFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_PadOuterX

    C: int ImGui_TableFlags_PadOuterX()
    EEL2: int extension_api("ImGui_TableFlags_PadOuterX")
    Lua: integer retval = reaper.ImGui_TableFlags_PadOuterX()
    Python: int ImGui_TableFlags_PadOuterX()

    Default if TableFlags_BordersOuterV is on. Enable outermost padding.
       Generally desirable if you have headers.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_PreciseWidths

    C: int ImGui_TableFlags_PreciseWidths()
    EEL2: int extension_api("ImGui_TableFlags_PreciseWidths")
    Lua: integer retval = reaper.ImGui_TableFlags_PreciseWidths()
    Python: int ImGui_TableFlags_PreciseWidths()

    Disable distributing remainder width to stretched columns (width allocation
       on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this
       flag: 33,33,33).
       With larger number of columns, resizing will appear to be less smooth.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_Reorderable

    C: int ImGui_TableFlags_Reorderable()
    EEL2: int extension_api("ImGui_TableFlags_Reorderable")
    Lua: integer retval = reaper.ImGui_TableFlags_Reorderable()
    Python: int ImGui_TableFlags_Reorderable()

    Enable reordering columns in header row
       (need calling TableSetupColumn + TableHeadersRow to display headers).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_Resizable

    C: int ImGui_TableFlags_Resizable()
    EEL2: int extension_api("ImGui_TableFlags_Resizable")
    Lua: integer retval = reaper.ImGui_TableFlags_Resizable()
    Python: int ImGui_TableFlags_Resizable()

    Enable resizing columns.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_RowBg

    C: int ImGui_TableFlags_RowBg()
    EEL2: int extension_api("ImGui_TableFlags_RowBg")
    Lua: integer retval = reaper.ImGui_TableFlags_RowBg()
    Python: int ImGui_TableFlags_RowBg()

    Set each RowBg color with Col_TableRowBg or Col_TableRowBgAlt (equivalent of
       calling TableSetBgColor with TableBgTarget_RowBg0 on each row manually).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_ScrollX

    C: int ImGui_TableFlags_ScrollX()
    EEL2: int extension_api("ImGui_TableFlags_ScrollX")
    Lua: integer retval = reaper.ImGui_TableFlags_ScrollX()
    Python: int ImGui_TableFlags_ScrollX()

    Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable to
       specify the container size. Changes default sizing policy.
       Because this creates a child window, ScrollY is currently generally
       recommended when using ScrollX.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_ScrollY

    C: int ImGui_TableFlags_ScrollY()
    EEL2: int extension_api("ImGui_TableFlags_ScrollY")
    Lua: integer retval = reaper.ImGui_TableFlags_ScrollY()
    Python: int ImGui_TableFlags_ScrollY()

    Enable vertical scrolling.
       Require 'outer_size' parameter of BeginTable to specify the container size.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_SizingFixedFit

    C: int ImGui_TableFlags_SizingFixedFit()
    EEL2: int extension_api("ImGui_TableFlags_SizingFixedFit")
    Lua: integer retval = reaper.ImGui_TableFlags_SizingFixedFit()
    Python: int ImGui_TableFlags_SizingFixedFit()

    Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable),
       matching contents width.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_SizingFixedSame

    C: int ImGui_TableFlags_SizingFixedSame()
    EEL2: int extension_api("ImGui_TableFlags_SizingFixedSame")
    Lua: integer retval = reaper.ImGui_TableFlags_SizingFixedSame()
    Python: int ImGui_TableFlags_SizingFixedSame()

    Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable),
       matching the maximum contents width of all columns.
       Implicitly enable TableFlags_NoKeepColumnsVisible.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_SizingStretchProp

    C: int ImGui_TableFlags_SizingStretchProp()
    EEL2: int extension_api("ImGui_TableFlags_SizingStretchProp")
    Lua: integer retval = reaper.ImGui_TableFlags_SizingStretchProp()
    Python: int ImGui_TableFlags_SizingStretchProp()

    Columns default to _WidthStretch with default weights proportional to each
       columns contents widths.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_SizingStretchSame

    C: int ImGui_TableFlags_SizingStretchSame()
    EEL2: int extension_api("ImGui_TableFlags_SizingStretchSame")
    Lua: integer retval = reaper.ImGui_TableFlags_SizingStretchSame()
    Python: int ImGui_TableFlags_SizingStretchSame()

    Columns default to _WidthStretch with default weights all equal,
       unless overriden by TableSetupColumn.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_SortMulti

    C: int ImGui_TableFlags_SortMulti()
    EEL2: int extension_api("ImGui_TableFlags_SortMulti")
    Lua: integer retval = reaper.ImGui_TableFlags_SortMulti()
    Python: int ImGui_TableFlags_SortMulti()

    Hold shift when clicking headers to sort on multiple column.
       TableGetGetSortSpecs may return specs where (SpecsCount > 1).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_SortTristate

    C: int ImGui_TableFlags_SortTristate()
    EEL2: int extension_api("ImGui_TableFlags_SortTristate")
    Lua: integer retval = reaper.ImGui_TableFlags_SortTristate()
    Python: int ImGui_TableFlags_SortTristate()

    Allow no sorting, disable default sorting.
       TableGetColumnSortSpecs may return specs where (SpecsCount == 0).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableFlags_Sortable

    C: int ImGui_TableFlags_Sortable()
    EEL2: int extension_api("ImGui_TableFlags_Sortable")
    Lua: integer retval = reaper.ImGui_TableFlags_Sortable()
    Python: int ImGui_TableFlags_Sortable()

    Enable sorting. Call TableNeedSort/TableGetColumnSortSpecs to obtain sort specs.
       Also see TableFlags_SortMulti and TableFlags_SortTristate.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableGetColumnCount

    C: int ImGui_TableGetColumnCount(ImGui_Context* ctx)
    EEL2: int extension_api("ImGui_TableGetColumnCount", ImGui_Context ctx)
    Lua: integer retval = reaper.ImGui_TableGetColumnCount(ImGui_Context ctx)
    Python: int ImGui_TableGetColumnCount(ImGui_Context* ctx)

    Return number of columns (value passed to BeginTable).

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableGetColumnFlags

    C: int ImGui_TableGetColumnFlags(ImGui_Context* ctx, int* column_nInOptional)
    EEL2: int extension_api("ImGui_TableGetColumnFlags", ImGui_Context ctx, optional int column_nIn)
    Lua: integer retval = reaper.ImGui_TableGetColumnFlags(ImGui_Context ctx, optional integer column_nIn)
    Python: int ImGui_TableGetColumnFlags(ImGui_Context* ctx, int* column_nInOptional)

    Return column flags so you can query their Enabled/Visible/Sorted/Hovered
    status flags. Pass -1 to use current column.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx
    optional integer column_nIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableGetColumnIndex

    C: int ImGui_TableGetColumnIndex(ImGui_Context* ctx)
    EEL2: int extension_api("ImGui_TableGetColumnIndex", ImGui_Context ctx)
    Lua: integer retval = reaper.ImGui_TableGetColumnIndex(ImGui_Context ctx)
    Python: int ImGui_TableGetColumnIndex(ImGui_Context* ctx)

    Return current column index.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableGetColumnName

    C: const char* ImGui_TableGetColumnName(ImGui_Context* ctx, int* column_nInOptional)
    EEL2: bool extension_api("ImGui_TableGetColumnName", #retval, ImGui_Context ctx, optional int column_nIn)
    Lua: string retval = reaper.ImGui_TableGetColumnName(ImGui_Context ctx, optional integer column_nIn)
    Python: const char* ImGui_TableGetColumnName(ImGui_Context* ctx, int* column_nInOptional)

    Return "" if column didn't have a name declared by TableSetupColumn.
    Pass -1 to use current column.

    Returnvalues:
    string retval

    Parameters:
    ImGui_Context ctx
    optional integer column_nIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableGetColumnSortSpecs

    C: bool ImGui_TableGetColumnSortSpecs(ImGui_Context* ctx, int id, int* column_user_idOut, int* column_indexOut, int* sort_orderOut, int* sort_directionOut)
    EEL2: bool extension_api("ImGui_TableGetColumnSortSpecs", ImGui_Context ctx, int id, int &column_user_id, int &column_index, int &sort_order, int &sort_direction)
    Lua: boolean retval, integer column_user_id, integer column_index, integer sort_order, integer sort_direction = reaper.ImGui_TableGetColumnSortSpecs(ImGui_Context ctx, integer id)
    Python: bool ImGui_TableGetColumnSortSpecs(ImGui_Context* ctx, int id, int* column_user_idOut, int* column_indexOut, int* sort_orderOut, int* sort_directionOut)

    Sorting specification for one column of a table.
    Call while incrementing 'id' from 0 until false is returned.

    - ColumnUserID:  User id of the column (if specified by a TableSetupColumn call)
    - ColumnIndex:   Index of the column
    - SortOrder:     Index within parent SortSpecs (always stored in order starting
      from 0, tables sorted on a single criteria will always have a 0 here)
    - SortDirection: SortDirection_Ascending or SortDirection_Descending
      (you can use this or SortSign, whichever is more convenient for your sort
      function)

    See TableNeedSort.

    Returnvalues:
    boolean retval
    integer column_user_id
    integer column_index
    integer sort_order
    integer sort_direction

    Parameters:
    ImGui_Context ctx
    integer id


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableGetRowIndex

    C: int ImGui_TableGetRowIndex(ImGui_Context* ctx)
    EEL2: int extension_api("ImGui_TableGetRowIndex", ImGui_Context ctx)
    Lua: integer retval = reaper.ImGui_TableGetRowIndex(ImGui_Context ctx)
    Python: int ImGui_TableGetRowIndex(ImGui_Context* ctx)

    Return current row index.

    Returnvalues:
    integer retval

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableHeader

    C: void ImGui_TableHeader(ImGui_Context* ctx, const char* label)
    EEL2: extension_api("ImGui_TableHeader", ImGui_Context ctx, "label")
    Lua: reaper.ImGui_TableHeader(ImGui_Context ctx, string label)
    Python: void ImGui_TableHeader(ImGui_Context* ctx, const char* label)

    Submit one header cell manually (rarely used). See TableSetupColumn.

    Parameters:
    ImGui_Context ctx
    string label


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableHeadersRow

    C: void ImGui_TableHeadersRow(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_TableHeadersRow", ImGui_Context ctx)
    Lua: reaper.ImGui_TableHeadersRow(ImGui_Context ctx)
    Python: void ImGui_TableHeadersRow(ImGui_Context* ctx)

    Submit all headers cells based on data provided to TableSetupColumn +
    submit context menu.

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableNeedSort

    C: bool ImGui_TableNeedSort(ImGui_Context* ctx, bool* has_specsOut)
    EEL2: bool extension_api("ImGui_TableNeedSort", ImGui_Context ctx, bool &has_specs)
    Lua: boolean retval, boolean has_specs = reaper.ImGui_TableNeedSort(ImGui_Context ctx)
    Python: bool ImGui_TableNeedSort(ImGui_Context* ctx, bool* has_specsOut)

    Return true once when sorting specs have changed since last call,
    or the first time. 'has_specs' is false when not sorting.

    See TableGetColumnSortSpecs.

    Returnvalues:
    boolean retval
    boolean has_specs

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableNextColumn

    C: bool ImGui_TableNextColumn(ImGui_Context* ctx)
    EEL2: bool extension_api("ImGui_TableNextColumn", ImGui_Context ctx)
    Lua: boolean reaper.ImGui_TableNextColumn(ImGui_Context ctx)
    Python: bool ImGui_TableNextColumn(ImGui_Context* ctx)

    Append into the next column (or first column of next row if currently in
    last column). Return true when column is visible.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableNextRow

    C: void ImGui_TableNextRow(ImGui_Context* ctx, int* row_flagsInOptional, double* min_row_heightInOptional)
    EEL2: extension_api("ImGui_TableNextRow", ImGui_Context ctx, optional int row_flagsIn, optional min_row_heightIn)
    Lua: reaper.ImGui_TableNextRow(ImGui_Context ctx, optional integer row_flagsIn, optional number min_row_heightIn)
    Python: void ImGui_TableNextRow(ImGui_Context* ctx, int* row_flagsInOptional, double* min_row_heightInOptional)

    Append into the first cell of a new row.

    Parameters:
    ImGui_Context ctx
    optional integer row_flagsIn
    optional number min_row_heightIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableRowFlags_Headers

    C: int ImGui_TableRowFlags_Headers()
    EEL2: int extension_api("ImGui_TableRowFlags_Headers")
    Lua: integer retval = reaper.ImGui_TableRowFlags_Headers()
    Python: int ImGui_TableRowFlags_Headers()

    Identify header row (set default background color + width of its contents
       accounted different for auto column width).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableRowFlags_None

    C: int ImGui_TableRowFlags_None()
    EEL2: int extension_api("ImGui_TableRowFlags_None")
    Lua: integer retval = reaper.ImGui_TableRowFlags_None()
    Python: int ImGui_TableRowFlags_None()

    For TableNextRow.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableSetBgColor

    C: void ImGui_TableSetBgColor(ImGui_Context* ctx, int target, int color_rgba, int* column_nInOptional)
    EEL2: extension_api("ImGui_TableSetBgColor", ImGui_Context ctx, int target, int color_rgba, optional int column_nIn)
    Lua: reaper.ImGui_TableSetBgColor(ImGui_Context ctx, integer target, integer color_rgba, optional integer column_nIn)
    Python: void ImGui_TableSetBgColor(ImGui_Context* ctx, int target, int color_rgba, int* column_nInOptional)

    Change the color of a cell, row, or column.
    See TableBgTarget_* flags for details.

    Parameters:
    ImGui_Context ctx
    integer target
    integer color_rgba
    optional integer column_nIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableSetColumnEnabled

    C: void ImGui_TableSetColumnEnabled(ImGui_Context* ctx, int column_n, bool v)
    EEL2: extension_api("ImGui_TableSetColumnEnabled", ImGui_Context ctx, int column_n, bool v)
    Lua: reaper.ImGui_TableSetColumnEnabled(ImGui_Context ctx, integer column_n, boolean v)
    Python: void ImGui_TableSetColumnEnabled(ImGui_Context* ctx, int column_n, bool v)

    Change user-accessible enabled/disabled state of a column, set to false to
    hide the column. Note that end-user can use the context menu to change this
    themselves (right-click in headers, or right-click in columns body with
    TableFlags_ContextMenuInBody).

    - Require table to have the TableFlags_Hideable flag because we are manipulating
      user accessible state.
    - Request will be applied during next layout, which happens on the first call to
      TableNextRow after Begin_Table.
    - For the getter you can test
      (TableGetColumnFlags() & TableColumnFlags_IsEnabled) != 0.

    Parameters:
    ImGui_Context ctx
    integer column_n
    boolean v


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableSetColumnIndex

    C: bool ImGui_TableSetColumnIndex(ImGui_Context* ctx, int column_n)
    EEL2: bool extension_api("ImGui_TableSetColumnIndex", ImGui_Context ctx, int column_n)
    Lua: boolean reaper.ImGui_TableSetColumnIndex(ImGui_Context ctx, integer column_n)
    Python: bool ImGui_TableSetColumnIndex(ImGui_Context* ctx, int column_n)

    Append into the specified column. Return true when column is visible.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    integer column_n


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableSetupColumn

    C: void ImGui_TableSetupColumn(ImGui_Context* ctx, const char* label, int* flagsInOptional, double* init_width_or_weightInOptional, int* user_idInOptional)
    EEL2: extension_api("ImGui_TableSetupColumn", ImGui_Context ctx, "label", optional int flagsIn, optional init_width_or_weightIn, optional int user_idIn)
    Lua: reaper.ImGui_TableSetupColumn(ImGui_Context ctx, string label, optional integer flagsIn, optional number init_width_or_weightIn, optional integer user_idIn)
    Python: void ImGui_TableSetupColumn(ImGui_Context* ctx, const char* label, int* flagsInOptional, double* init_width_or_weightInOptional, int* user_idInOptional)

    Use to specify label, resizing policy, default width/weight, id,
    various other flags etc.

    Parameters:
    ImGui_Context ctx
    string label
    optional integer flagsIn
    optional number init_width_or_weightIn
    optional integer user_idIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TableSetupScrollFreeze

    C: void ImGui_TableSetupScrollFreeze(ImGui_Context* ctx, int cols, int rows)
    EEL2: extension_api("ImGui_TableSetupScrollFreeze", ImGui_Context ctx, int cols, int rows)
    Lua: reaper.ImGui_TableSetupScrollFreeze(ImGui_Context ctx, integer cols, integer rows)
    Python: void ImGui_TableSetupScrollFreeze(ImGui_Context* ctx, int cols, int rows)

    Lock columns/rows so they stay visible when scrolled.

    Parameters:
    ImGui_Context ctx
    integer cols
    integer rows


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Text

    C: void ImGui_Text(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_Text", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_Text(ImGui_Context ctx, string text)
    Python: void ImGui_Text(ImGui_Context* ctx, const char* text)



    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextColored

    C: void ImGui_TextColored(ImGui_Context* ctx, int col_rgba, const char* text)
    EEL2: extension_api("ImGui_TextColored", ImGui_Context ctx, int col_rgba, "text")
    Lua: reaper.ImGui_TextColored(ImGui_Context ctx, integer col_rgba, string text)
    Python: void ImGui_TextColored(ImGui_Context* ctx, int col_rgba, const char* text)

    Shortcut for PushStyleColor(Col_Text, color); Text(text); PopStyleColor();

    Parameters:
    ImGui_Context ctx
    integer col_rgba
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextDisabled

    C: void ImGui_TextDisabled(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_TextDisabled", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_TextDisabled(ImGui_Context ctx, string text)
    Python: void ImGui_TextDisabled(ImGui_Context* ctx, const char* text)



    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextFilter_Clear

    C: void ImGui_TextFilter_Clear(ImGui_TextFilter* filter)
    EEL2: extension_api("ImGui_TextFilter_Clear", ImGui_TextFilter filter)
    Lua: reaper.ImGui_TextFilter_Clear(ImGui_TextFilter filter)
    Python: void ImGui_TextFilter_Clear(ImGui_TextFilter* filter)



    Parameters:
    ImGui_TextFilter filter


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextFilter_Draw

    C: bool ImGui_TextFilter_Draw(ImGui_TextFilter* filter, ImGui_Context* ctx, const char* labelInOptional, double* widthInOptional)
    EEL2: bool extension_api("ImGui_TextFilter_Draw", ImGui_TextFilter filter, ImGui_Context ctx, optional "labelIn", optional widthIn)
    Lua: boolean reaper.ImGui_TextFilter_Draw(ImGui_TextFilter filterImGui_Context ctx, optional string labelIn, optional number widthIn)
    Python: bool ImGui_TextFilter_Draw(ImGui_TextFilter* filter, ImGui_Context* ctx, const char* labelInOptional, double* widthInOptional)

    Helper calling InputText+TextFilter_Set

    Returnvalues:
    boolean

    Parameters:
    ImGui_TextFilter filterImGui_Context ctx
    optional string labelIn
    optional number widthIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextFilter_Get

    C: const char* ImGui_TextFilter_Get(ImGui_TextFilter* filter)
    EEL2: bool extension_api("ImGui_TextFilter_Get", #retval, ImGui_TextFilter filter)
    Lua: string retval = reaper.ImGui_TextFilter_Get(ImGui_TextFilter filter)
    Python: const char* ImGui_TextFilter_Get(ImGui_TextFilter* filter)



    Returnvalues:
    string retval

    Parameters:
    ImGui_TextFilter filter


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextFilter_IsActive

    C: bool ImGui_TextFilter_IsActive(ImGui_TextFilter* filter)
    EEL2: bool extension_api("ImGui_TextFilter_IsActive", ImGui_TextFilter filter)
    Lua: boolean reaper.ImGui_TextFilter_IsActive(ImGui_TextFilter filter)
    Python: bool ImGui_TextFilter_IsActive(ImGui_TextFilter* filter)



    Returnvalues:
    boolean

    Parameters:
    ImGui_TextFilter filter


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextFilter_PassFilter

    C: bool ImGui_TextFilter_PassFilter(ImGui_TextFilter* filter, const char* text)
    EEL2: bool extension_api("ImGui_TextFilter_PassFilter", ImGui_TextFilter filter, "text")
    Lua: boolean reaper.ImGui_TextFilter_PassFilter(ImGui_TextFilter filter, string text)
    Python: bool ImGui_TextFilter_PassFilter(ImGui_TextFilter* filter, const char* text)



    Returnvalues:
    boolean

    Parameters:
    ImGui_TextFilter filter
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextFilter_Set

    C: void ImGui_TextFilter_Set(ImGui_TextFilter* filter, const char* filter_text)
    EEL2: extension_api("ImGui_TextFilter_Set", ImGui_TextFilter filter, "filter_text")
    Lua: reaper.ImGui_TextFilter_Set(ImGui_TextFilter filter, string filter_text)
    Python: void ImGui_TextFilter_Set(ImGui_TextFilter* filter, const char* filter_text)



    Parameters:
    ImGui_TextFilter filter
    string filter_text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TextWrapped

    C: void ImGui_TextWrapped(ImGui_Context* ctx, const char* text)
    EEL2: extension_api("ImGui_TextWrapped", ImGui_Context ctx, "text")
    Lua: reaper.ImGui_TextWrapped(ImGui_Context ctx, string text)
    Python: void ImGui_TextWrapped(ImGui_Context* ctx, const char* text)

    Shortcut for PushTextWrapPos(0.0); Text(text); PopTextWrapPos();.
    Note that this won't work on an auto-resizing window if there's no other
    widgets to extend the window width, yoy may need to set a size using
    SetNextWindowSize.

    Parameters:
    ImGui_Context ctx
    string text


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNode

    C: bool ImGui_TreeNode(ImGui_Context* ctx, const char* label, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_TreeNode", ImGui_Context ctx, "label", optional int flagsIn)
    Lua: boolean reaper.ImGui_TreeNode(ImGui_Context ctx, string label, optional integer flagsIn)
    Python: bool ImGui_TreeNode(ImGui_Context* ctx, const char* label, int* flagsInOptional)

    TreeNode functions return true when the node is open, in which case you need
    to also call TreePop when you are finished displaying the tree node contents.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string label
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeEx

    C: bool ImGui_TreeNodeEx(ImGui_Context* ctx, const char* str_id, const char* label, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_TreeNodeEx", ImGui_Context ctx, "str_id", "label", optional int flagsIn)
    Lua: boolean reaper.ImGui_TreeNodeEx(ImGui_Context ctx, string str_id, string label, optional integer flagsIn)
    Python: bool ImGui_TreeNodeEx(ImGui_Context* ctx, const char* str_id, const char* label, int* flagsInOptional)

    Helper variation to easily decorelate the id from the displayed string.
    Read the [FAQ](https://dearimgui.org/faq) about why and how to use ID.
    To align arbitrary text at the same level as a TreeNode you can use Bullet.

    Returnvalues:
    boolean

    Parameters:
    ImGui_Context ctx
    string str_id
    string label
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_AllowItemOverlap

    C: int ImGui_TreeNodeFlags_AllowItemOverlap()
    EEL2: int extension_api("ImGui_TreeNodeFlags_AllowItemOverlap")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_AllowItemOverlap()
    Python: int ImGui_TreeNodeFlags_AllowItemOverlap()

    Hit testing to allow subsequent widgets to overlap this one.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_Bullet

    C: int ImGui_TreeNodeFlags_Bullet()
    EEL2: int extension_api("ImGui_TreeNodeFlags_Bullet")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_Bullet()
    Python: int ImGui_TreeNodeFlags_Bullet()

    Display a bullet instead of arrow.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_CollapsingHeader

    C: int ImGui_TreeNodeFlags_CollapsingHeader()
    EEL2: int extension_api("ImGui_TreeNodeFlags_CollapsingHeader")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_CollapsingHeader()
    Python: int ImGui_TreeNodeFlags_CollapsingHeader()

    TreeNodeFlags_Framed | TreeNodeFlags_NoTreePushOnOpen | TreeNodeFlags_NoAutoOpenOnLog

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_DefaultOpen

    C: int ImGui_TreeNodeFlags_DefaultOpen()
    EEL2: int extension_api("ImGui_TreeNodeFlags_DefaultOpen")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_DefaultOpen()
    Python: int ImGui_TreeNodeFlags_DefaultOpen()

    Default node to be open.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_FramePadding

    C: int ImGui_TreeNodeFlags_FramePadding()
    EEL2: int extension_api("ImGui_TreeNodeFlags_FramePadding")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_FramePadding()
    Python: int ImGui_TreeNodeFlags_FramePadding()

    Use FramePadding (even for an unframed text node) to vertically align text
       baseline to regular widget height.
       Equivalent to calling AlignTextToFramePadding.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_Framed

    C: int ImGui_TreeNodeFlags_Framed()
    EEL2: int extension_api("ImGui_TreeNodeFlags_Framed")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_Framed()
    Python: int ImGui_TreeNodeFlags_Framed()

    Draw frame with background (e.g. for CollapsingHeader).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_Leaf

    C: int ImGui_TreeNodeFlags_Leaf()
    EEL2: int extension_api("ImGui_TreeNodeFlags_Leaf")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_Leaf()
    Python: int ImGui_TreeNodeFlags_Leaf()

    No collapsing, no arrow (use as a convenience for leaf nodes).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_NoAutoOpenOnLog

    C: int ImGui_TreeNodeFlags_NoAutoOpenOnLog()
    EEL2: int extension_api("ImGui_TreeNodeFlags_NoAutoOpenOnLog")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_NoAutoOpenOnLog()
    Python: int ImGui_TreeNodeFlags_NoAutoOpenOnLog()

    Don't automatically and temporarily open node when Logging is active
       (by default logging will automatically open tree nodes).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_NoTreePushOnOpen

    C: int ImGui_TreeNodeFlags_NoTreePushOnOpen()
    EEL2: int extension_api("ImGui_TreeNodeFlags_NoTreePushOnOpen")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_NoTreePushOnOpen()
    Python: int ImGui_TreeNodeFlags_NoTreePushOnOpen()

    Don't do a TreePush when open (e.g. for CollapsingHeader)
       = no extra indent nor pushing on ID stack.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_None

    C: int ImGui_TreeNodeFlags_None()
    EEL2: int extension_api("ImGui_TreeNodeFlags_None")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_None()
    Python: int ImGui_TreeNodeFlags_None()



    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_OpenOnArrow

    C: int ImGui_TreeNodeFlags_OpenOnArrow()
    EEL2: int extension_api("ImGui_TreeNodeFlags_OpenOnArrow")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_OpenOnArrow()
    Python: int ImGui_TreeNodeFlags_OpenOnArrow()

    Only open when clicking on the arrow part.
       If TreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or
       double-click all box to open.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_OpenOnDoubleClick

    C: int ImGui_TreeNodeFlags_OpenOnDoubleClick()
    EEL2: int extension_api("ImGui_TreeNodeFlags_OpenOnDoubleClick")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_OpenOnDoubleClick()
    Python: int ImGui_TreeNodeFlags_OpenOnDoubleClick()

    Need double-click to open node.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_Selected

    C: int ImGui_TreeNodeFlags_Selected()
    EEL2: int extension_api("ImGui_TreeNodeFlags_Selected")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_Selected()
    Python: int ImGui_TreeNodeFlags_Selected()

    Draw as selected.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_SpanAvailWidth

    C: int ImGui_TreeNodeFlags_SpanAvailWidth()
    EEL2: int extension_api("ImGui_TreeNodeFlags_SpanAvailWidth")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_SpanAvailWidth()
    Python: int ImGui_TreeNodeFlags_SpanAvailWidth()

    Extend hit box to the right-most edge, even if not framed.
       This is not the default in order to allow adding other items on the same line.
       In the future we may refactor the hit system to be front-to-back,
       allowing natural overlaps and then this can become the default.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreeNodeFlags_SpanFullWidth

    C: int ImGui_TreeNodeFlags_SpanFullWidth()
    EEL2: int extension_api("ImGui_TreeNodeFlags_SpanFullWidth")
    Lua: integer retval = reaper.ImGui_TreeNodeFlags_SpanFullWidth()
    Python: int ImGui_TreeNodeFlags_SpanFullWidth()

    Extend hit box to the left-most and right-most edges (bypass the indented area).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreePop

    C: void ImGui_TreePop(ImGui_Context* ctx)
    EEL2: extension_api("ImGui_TreePop", ImGui_Context ctx)
    Lua: reaper.ImGui_TreePop(ImGui_Context ctx)
    Python: void ImGui_TreePop(ImGui_Context* ctx)

    Unindent()+PopID()

    Parameters:
    ImGui_Context ctx


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_TreePush

    C: void ImGui_TreePush(ImGui_Context* ctx, const char* str_id)
    EEL2: extension_api("ImGui_TreePush", ImGui_Context ctx, "str_id")
    Lua: reaper.ImGui_TreePush(ImGui_Context ctx, string str_id)
    Python: void ImGui_TreePush(ImGui_Context* ctx, const char* str_id)

    Indent()+PushID(). Already called by TreeNode when returning true,
    but you can call TreePush/TreePop yourself if desired.

    Parameters:
    ImGui_Context ctx
    string str_id


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Unindent

    C: void ImGui_Unindent(ImGui_Context* ctx, double* indent_wInOptional)
    EEL2: extension_api("ImGui_Unindent", ImGui_Context ctx, optional indent_wIn)
    Lua: reaper.ImGui_Unindent(ImGui_Context ctx, optional number indent_wIn)
    Python: void ImGui_Unindent(ImGui_Context* ctx, double* indent_wInOptional)

    Move content position back to the left, by 'indent_w', or
    StyleVar_IndentSpacing if 'indent_w' <= 0

    Parameters:
    ImGui_Context ctx
    optional number indent_wIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_VSliderDouble

    C: bool ImGui_VSliderDouble(ImGui_Context* ctx, const char* label, double size_w, double size_h, double* vInOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_VSliderDouble", ImGui_Context ctx, "label", size_w, size_h, &v, v_min, v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, number v = reaper.ImGui_VSliderDouble(ImGui_Context ctx, string label, number size_w, number size_h, number v, number v_min, number v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_VSliderDouble(ImGui_Context* ctx, const char* label, double size_w, double size_h, double* vInOut, double v_min, double v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    number v

    Parameters:
    ImGui_Context ctx
    string label
    number size_w
    number size_h
    number v
    number v_min
    number v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_VSliderInt

    C: bool ImGui_VSliderInt(ImGui_Context* ctx, const char* label, double size_w, double size_h, int* vInOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)
    EEL2: bool extension_api("ImGui_VSliderInt", ImGui_Context ctx, "label", size_w, size_h, int &v, int v_min, int v_max, optional "formatIn", optional int flagsIn)
    Lua: boolean retval, integer v = reaper.ImGui_VSliderInt(ImGui_Context ctx, string label, number size_w, number size_h, integer v, integer v_min, integer v_max, optional string formatIn, optional integer flagsIn)
    Python: bool ImGui_VSliderInt(ImGui_Context* ctx, const char* label, double size_w, double size_h, int* vInOut, int v_min, int v_max, const char* formatInOptional, int* flagsInOptional)



    Returnvalues:
    boolean retval
    integer v

    Parameters:
    ImGui_Context ctx
    string label
    number size_w
    number size_h
    integer v
    integer v_min
    integer v_max
    optional string formatIn
    optional integer flagsIn


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_ValidatePtr

    C: bool ImGui_ValidatePtr(void* pointer, const char* type)
    EEL2: bool extension_api("ImGui_ValidatePtr", void* pointer, "type")
    Lua: boolean reaper.ImGui_ValidatePtr(identifier pointer, string type)
    Python: bool ImGui_ValidatePtr(void* pointer, const char* type)

    Return whether the pointer of the specified type is valid.

    Supported types are:

    - ImGui_Context*
    - ImGui_DrawList*
    - ImGui_DrawListSplitter*
    - ImGui_Font*
    - ImGui_Function*
    - ImGui_Image*
    - ImGui_ImageSet*
    - ImGui_ListClipper*
    - ImGui_TextFilter*
    - ImGui_Viewport*

    Returnvalues:
    boolean

    Parameters:
    identifier pointer
    string type


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Viewport_GetCenter

    C: void ImGui_Viewport_GetCenter(ImGui_Viewport* viewport, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_Viewport_GetCenter", ImGui_Viewport viewport, &x, &y)
    Lua: number x, number y = reaper.ImGui_Viewport_GetCenter(ImGui_Viewport viewport)
    Python: void ImGui_Viewport_GetCenter(ImGui_Viewport* viewport, double* xOut, double* yOut)

    Center of the viewport.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Viewport viewport


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Viewport_GetPos

    C: void ImGui_Viewport_GetPos(ImGui_Viewport* viewport, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_Viewport_GetPos", ImGui_Viewport viewport, &x, &y)
    Lua: number x, number y = reaper.ImGui_Viewport_GetPos(ImGui_Viewport viewport)
    Python: void ImGui_Viewport_GetPos(ImGui_Viewport* viewport, double* xOut, double* yOut)

    Main Area: Position of the viewport

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Viewport viewport


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Viewport_GetSize

    C: void ImGui_Viewport_GetSize(ImGui_Viewport* viewport, double* wOut, double* hOut)
    EEL2: extension_api("ImGui_Viewport_GetSize", ImGui_Viewport viewport, &w, &h)
    Lua: number w, number h = reaper.ImGui_Viewport_GetSize(ImGui_Viewport viewport)
    Python: void ImGui_Viewport_GetSize(ImGui_Viewport* viewport, double* wOut, double* hOut)

    Main Area: Size of the viewport.

    Returnvalues:
    number w
    number h

    Parameters:
    ImGui_Viewport viewport


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Viewport_GetWorkCenter

    C: void ImGui_Viewport_GetWorkCenter(ImGui_Viewport* viewport, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_Viewport_GetWorkCenter", ImGui_Viewport viewport, &x, &y)
    Lua: number x, number y = reaper.ImGui_Viewport_GetWorkCenter(ImGui_Viewport viewport)
    Python: void ImGui_Viewport_GetWorkCenter(ImGui_Viewport* viewport, double* xOut, double* yOut)

    Center of the viewport's work area.

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Viewport viewport


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Viewport_GetWorkPos

    C: void ImGui_Viewport_GetWorkPos(ImGui_Viewport* viewport, double* xOut, double* yOut)
    EEL2: extension_api("ImGui_Viewport_GetWorkPos", ImGui_Viewport viewport, &x, &y)
    Lua: number x, number y = reaper.ImGui_Viewport_GetWorkPos(ImGui_Viewport viewport)
    Python: void ImGui_Viewport_GetWorkPos(ImGui_Viewport* viewport, double* xOut, double* yOut)

    >= Viewport_GetPos

    Returnvalues:
    number x
    number y

    Parameters:
    ImGui_Viewport viewport


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_Viewport_GetWorkSize

    C: void ImGui_Viewport_GetWorkSize(ImGui_Viewport* viewport, double* wOut, double* hOut)
    EEL2: extension_api("ImGui_Viewport_GetWorkSize", ImGui_Viewport viewport, &w, &h)
    Lua: number w, number h = reaper.ImGui_Viewport_GetWorkSize(ImGui_Viewport viewport)
    Python: void ImGui_Viewport_GetWorkSize(ImGui_Viewport* viewport, double* wOut, double* hOut)

    <= Viewport_GetSize

    Returnvalues:
    number w
    number h

    Parameters:
    ImGui_Viewport viewport


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_AlwaysAutoResize

    C: int ImGui_WindowFlags_AlwaysAutoResize()
    EEL2: int extension_api("ImGui_WindowFlags_AlwaysAutoResize")
    Lua: integer retval = reaper.ImGui_WindowFlags_AlwaysAutoResize()
    Python: int ImGui_WindowFlags_AlwaysAutoResize()

    Resize every window to its content every frame.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_AlwaysHorizontalScrollbar

    C: int ImGui_WindowFlags_AlwaysHorizontalScrollbar()
    EEL2: int extension_api("ImGui_WindowFlags_AlwaysHorizontalScrollbar")
    Lua: integer retval = reaper.ImGui_WindowFlags_AlwaysHorizontalScrollbar()
    Python: int ImGui_WindowFlags_AlwaysHorizontalScrollbar()

    Always show horizontal scrollbar (even if ContentSize.x < Size.x).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_AlwaysUseWindowPadding

    C: int ImGui_WindowFlags_AlwaysUseWindowPadding()
    EEL2: int extension_api("ImGui_WindowFlags_AlwaysUseWindowPadding")
    Lua: integer retval = reaper.ImGui_WindowFlags_AlwaysUseWindowPadding()
    Python: int ImGui_WindowFlags_AlwaysUseWindowPadding()

    Ensure child windows without border uses StyleVar_WindowPadding
       (ignored by default for non-bordered child windows, because more convenient).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_AlwaysVerticalScrollbar

    C: int ImGui_WindowFlags_AlwaysVerticalScrollbar()
    EEL2: int extension_api("ImGui_WindowFlags_AlwaysVerticalScrollbar")
    Lua: integer retval = reaper.ImGui_WindowFlags_AlwaysVerticalScrollbar()
    Python: int ImGui_WindowFlags_AlwaysVerticalScrollbar()

    Always show vertical scrollbar (even if ContentSize.y < Size.y).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_HorizontalScrollbar

    C: int ImGui_WindowFlags_HorizontalScrollbar()
    EEL2: int extension_api("ImGui_WindowFlags_HorizontalScrollbar")
    Lua: integer retval = reaper.ImGui_WindowFlags_HorizontalScrollbar()
    Python: int ImGui_WindowFlags_HorizontalScrollbar()

    Allow horizontal scrollbar to appear (off by default).
       You may use SetNextWindowContentSize(width, 0.0) prior to calling Begin() to
       specify width. Read code in the demo's "Horizontal Scrolling" section.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_MenuBar

    C: int ImGui_WindowFlags_MenuBar()
    EEL2: int extension_api("ImGui_WindowFlags_MenuBar")
    Lua: integer retval = reaper.ImGui_WindowFlags_MenuBar()
    Python: int ImGui_WindowFlags_MenuBar()

    Has a menu-bar.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoBackground

    C: int ImGui_WindowFlags_NoBackground()
    EEL2: int extension_api("ImGui_WindowFlags_NoBackground")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoBackground()
    Python: int ImGui_WindowFlags_NoBackground()

    Disable drawing background color (WindowBg, etc.) and outside border.
       Similar as using SetNextWindowBgAlpha(0.0).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoCollapse

    C: int ImGui_WindowFlags_NoCollapse()
    EEL2: int extension_api("ImGui_WindowFlags_NoCollapse")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoCollapse()
    Python: int ImGui_WindowFlags_NoCollapse()

    Disable user collapsing window by double-clicking on it.
       Also referred to as Window Menu Button (e.g. within a docking node).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoDecoration

    C: int ImGui_WindowFlags_NoDecoration()
    EEL2: int extension_api("ImGui_WindowFlags_NoDecoration")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoDecoration()
    Python: int ImGui_WindowFlags_NoDecoration()

    WindowFlags_NoTitleBar | WindowFlags_NoResize | WindowFlags_NoScrollbar |
       WindowFlags_NoCollapse

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoDocking

    C: int ImGui_WindowFlags_NoDocking()
    EEL2: int extension_api("ImGui_WindowFlags_NoDocking")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoDocking()
    Python: int ImGui_WindowFlags_NoDocking()

    Disable docking of this window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoFocusOnAppearing

    C: int ImGui_WindowFlags_NoFocusOnAppearing()
    EEL2: int extension_api("ImGui_WindowFlags_NoFocusOnAppearing")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoFocusOnAppearing()
    Python: int ImGui_WindowFlags_NoFocusOnAppearing()

    Disable taking focus when transitioning from hidden to visible state.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoInputs

    C: int ImGui_WindowFlags_NoInputs()
    EEL2: int extension_api("ImGui_WindowFlags_NoInputs")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoInputs()
    Python: int ImGui_WindowFlags_NoInputs()

    WindowFlags_NoMouseInputs | WindowFlags_NoNavInputs | WindowFlags_NoNavFocus

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoMouseInputs

    C: int ImGui_WindowFlags_NoMouseInputs()
    EEL2: int extension_api("ImGui_WindowFlags_NoMouseInputs")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoMouseInputs()
    Python: int ImGui_WindowFlags_NoMouseInputs()

    Disable catching mouse, hovering test with pass through.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoMove

    C: int ImGui_WindowFlags_NoMove()
    EEL2: int extension_api("ImGui_WindowFlags_NoMove")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoMove()
    Python: int ImGui_WindowFlags_NoMove()

    Disable user moving the window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoNav

    C: int ImGui_WindowFlags_NoNav()
    EEL2: int extension_api("ImGui_WindowFlags_NoNav")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoNav()
    Python: int ImGui_WindowFlags_NoNav()

    WindowFlags_NoNavInputs | WindowFlags_NoNavFocus

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoNavFocus

    C: int ImGui_WindowFlags_NoNavFocus()
    EEL2: int extension_api("ImGui_WindowFlags_NoNavFocus")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoNavFocus()
    Python: int ImGui_WindowFlags_NoNavFocus()

    No focusing toward this window with gamepad/keyboard navigation
       (e.g. skipped by CTRL+TAB).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoNavInputs

    C: int ImGui_WindowFlags_NoNavInputs()
    EEL2: int extension_api("ImGui_WindowFlags_NoNavInputs")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoNavInputs()
    Python: int ImGui_WindowFlags_NoNavInputs()

    No gamepad/keyboard navigation within the window.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoResize

    C: int ImGui_WindowFlags_NoResize()
    EEL2: int extension_api("ImGui_WindowFlags_NoResize")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoResize()
    Python: int ImGui_WindowFlags_NoResize()

    Disable user resizing with the lower-right grip.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoSavedSettings

    C: int ImGui_WindowFlags_NoSavedSettings()
    EEL2: int extension_api("ImGui_WindowFlags_NoSavedSettings")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoSavedSettings()
    Python: int ImGui_WindowFlags_NoSavedSettings()

    Never load/save settings in .ini file.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoScrollWithMouse

    C: int ImGui_WindowFlags_NoScrollWithMouse()
    EEL2: int extension_api("ImGui_WindowFlags_NoScrollWithMouse")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoScrollWithMouse()
    Python: int ImGui_WindowFlags_NoScrollWithMouse()

    Disable user vertically scrolling with mouse wheel.
       On child window, mouse wheel will be forwarded to the parent unless
       NoScrollbar is also set.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoScrollbar

    C: int ImGui_WindowFlags_NoScrollbar()
    EEL2: int extension_api("ImGui_WindowFlags_NoScrollbar")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoScrollbar()
    Python: int ImGui_WindowFlags_NoScrollbar()

    Disable scrollbars (window can still scroll with mouse or programmatically).

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_NoTitleBar

    C: int ImGui_WindowFlags_NoTitleBar()
    EEL2: int extension_api("ImGui_WindowFlags_NoTitleBar")
    Lua: integer retval = reaper.ImGui_WindowFlags_NoTitleBar()
    Python: int ImGui_WindowFlags_NoTitleBar()

    Disable title-bar.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_None

    C: int ImGui_WindowFlags_None()
    EEL2: int extension_api("ImGui_WindowFlags_None")
    Lua: integer retval = reaper.ImGui_WindowFlags_None()
    Python: int ImGui_WindowFlags_None()

    Default flag.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_TopMost

    C: int ImGui_WindowFlags_TopMost()
    EEL2: int extension_api("ImGui_WindowFlags_TopMost")
    Lua: integer retval = reaper.ImGui_WindowFlags_TopMost()
    Python: int ImGui_WindowFlags_TopMost()

    Show the window above all non-topmost windows.

    Returnvalues:
    integer retval


    ^ Reaper version 6.44 ReaImGui version 0.8.5ImGui_WindowFlags_UnsavedDocument

    C: int ImGui_WindowFlags_UnsavedDocument()
    EEL2: int extension_api("ImGui_WindowFlags_UnsavedDocument")
    Lua: integer retval = reaper.ImGui_WindowFlags_UnsavedDocument()
    Python: int ImGui_WindowFlags_UnsavedDocument()

    Display a dot next to the title. When used in a tab/docking context,
       tab is selected when clicking the X + closure is not assumed
       (will wait for user to stop submitting the tab).
       Otherwise closure is assumed when pressing the X,
       so if you keep submitting the tab may reappear at end of tab bar.

    Returnvalues:
    integer retval


    ^ Reaper version 6.23 ReaLlm version 0.4.1Llm_Do

    C: void Llm_Do(int* paramInOptional)
    EEL2: extension_api("Llm_Do", optional int paramIn)
    Lua: reaper.Llm_Do(optional integer paramIn)
    Python: Llm_Do(int* paramInOptional)

    Called with parameter value 1 executes one ReaLlm cycle. E.g. for running ReaLlm on custom timer, or deferred. 0 or nothing performs shutdown. Disarming/disabling all monitored inputs and calling with parameter value 1 equals to shutdown.

    Parameters:
    optional integer paramIn


    ^ Reaper version 6.23 ReaLlm version 0.4.1Llm_Get

    C: void Llm_Get(const char* parmname, char* bufOutNeedBig, int bufOutNeedBig_sz, MediaTrack* trInOptional)
    EEL2: extension_api("Llm_Get", "parmname", #buf, MediaTrack trIn)
    Lua: string buf = reaper.Llm_Get(string parmname, string buf, MediaTrack trIn)
    Python: void void = Llm_Get(const char* parmname, char* bufOutNeedBig, int bufOutNeedBig_sz, MediaTrack* trInOptional)

    Get ReaLlm information string. Zero-based indices. Master track index -1. Optional MediaTrack* tr gets results relative to tr. Each line (newline '\n' separated) represents entry. Tracks are separated with ';'. FX are listed after ':' separated with ','.
    GRAPH : Mixer routings as network graph in format "node;neighborhood\n" where node is track, and neighborhood is group of tracks in format "track;tr#1;tr#2...\n". Or as "parent;children\n" where first field is parent and rest are children. Or as multiply linked list where first field is node and rest are links. E.g. "7;1;-1;\n" would mean "8th track is connected to 2nd track and Master track."
    PDCLATENCY : Latency in samples.
    PDCLIMIT : Limit in samples.
    REALLM or STATE : Current state of ReaLlm as approach vektors with disabled FX in format: "begin:disabled fx,...;next:fx,...;end:fx,...;\n." E.g. "3:1,2;0;-1:0\n" would be: 4th track, fx#2 and #3 disabled => 1st track, nofx disabled => Master track, fx#1 disabled.
    SAFE : 'Safed' plugins as "track#:fx#\n" pairs.
    VECTOR : Same as REALLM without FX information. Faster.

    Returnvalues:
    string buf

    Parameters:
    string parmname
    string buf
    MediaTrack trIn


    ^ Reaper version 6.23 ReaLlm version 0.4.1Llm_Set

    C: void Llm_Set(const char* parmname, const char* bufIn)
    EEL2: extension_api("Llm_Set", "parmname", "bufIn")
    Lua: reaper.Llm_Set(string parmname, string bufIn)
    Python: Llm_Set(const char* parmname, const char* bufIn)

    Set ReaLlm parameters.
    PDCLIMIT : PDC latency limit in audio blocks/buffers, e.g. "1.5".
    MONITORINGFX : Use any non-empty string to include Monitoring FX. E.g. "true".
    PARAMCHANGE : Instead of bypassing, changes FX parameter between val1 (low latency) and val2 (original). Use bufIn string format 'fx_name,param_index,val1,val2'.

    Parameters:
    string parmname
    string bufIn


    ^ Reaper version 6.44MCULive_GetButtonValue

    C: int MCULive_GetButtonValue(int device, int button)
    EEL2: int extension_api("MCULive_GetButtonValue", int device, int button)
    Lua: integer retval = reaper.MCULive_GetButtonValue(integer device, integer button)
    Python: int MCULive_GetButtonValue(int device, int button)

    Get current button state.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer button


    ^ Reaper version 6.44MCULive_GetDevice

    C: int MCULive_GetDevice(int device, int type)
    EEL2: int extension_api("MCULive_GetDevice", int device, int type)
    Lua: integer retval = reaper.MCULive_GetDevice(integer device, integer type)
    Python: int MCULive_GetDevice(int device, int type)

    Get MIDI input or output dev ID. type 0 is input dev, type 1 is output dev. device < 0 returns number of MCULive devices.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer type


    ^ Reaper version 6.44MCULive_GetEncoderValue

    C: double MCULive_GetEncoderValue(int device, int encIdx, int param)
    EEL2: double extension_api("MCULive_GetEncoderValue", int device, int encIdx, int param)
    Lua: number retval = reaper.MCULive_GetEncoderValue(integer device, integer encIdx, integer param)
    Python: double MCULive_GetEncoderValue(int device, int encIdx, int param)

    Returns zero-indexed encoder parameter value. 0 = lastpos, 1 = lasttouch

    Returnvalues:
    number retval

    Parameters:
    integer device
    integer encIdx
    integer param


    ^ Reaper version 6.44MCULive_GetFaderValue

    C: double MCULive_GetFaderValue(int device, int faderIdx, int param)
    EEL2: double extension_api("MCULive_GetFaderValue", int device, int faderIdx, int param)
    Lua: number retval = reaper.MCULive_GetFaderValue(integer device, integer faderIdx, integer param)
    Python: double MCULive_GetFaderValue(int device, int faderIdx, int param)

    Returns zero-indexed fader parameter value. 0 = lastpos, 1 = lasttouch, 2 = lastmove (any fader)

    Returnvalues:
    number retval

    Parameters:
    integer device
    integer faderIdx
    integer param


    ^ Reaper version 6.44MCULive_GetMIDIMessage

    C: int MCULive_GetMIDIMessage(int device, int msgIdx, int* statusOut, int* data1Out, int* data2Out, int* frame_offsetOut, char* msgOutOptional, int msgOutOptional_sz)
    EEL2: int extension_api("MCULive_GetMIDIMessage", int device, int msgIdx, int &status, int &data1, int &data2, int &frame_offset, optional #msg)
    Lua: integer retval, integer status, integer data1, integer data2, integer frame_offset, optional string msg = reaper.MCULive_GetMIDIMessage(integer device, integer msgIdx)
    Python: int MCULive_GetMIDIMessage(int device, int msgIdx, int* statusOut, int* data1Out, int* data2Out, int* frame_offsetOut, char* msgOutOptional, int msgOutOptional_sz)

    Gets MIDI message from input buffer/queue. Gets (pops/pulls) indexed message (status, data1, data2 and frame_offset) from queue and retval is total size/length left in queue. E.g. continuously read all indiviual messages with deferred script. Frame offset resolution is 1/1024000 seconds, not audio samples. Long messages are returned as optional strings of byte characters. msgIdx -1 returns size (length) of buffer. Read also non-MCU devices by creating MCULive device with their input.

    Returnvalues:
    integer retval
    integer status
    integer data1
    integer data2
    integer frame_offset
    optional string msg

    Parameters:
    integer device
    integer msgIdx


    ^ Reaper version 6.44MCULive_Map

    C: int MCULive_Map(int device, int button, int command_id, isRemap bool)
    EEL2: int extension_api("MCULive_Map", int device, int button, int command_id, unsupported bool)
    Lua: integer retval = reaper.MCULive_Map(integer device, integer button, integer command_id, unsupported bool)
    Python: int MCULive_Map(int device, int button, int command_id, isRemap bool)

    Maps MCU Live device# button# to REAPER command ID. E.g. reaper.MCULive_Map(0,0x5b, 40340) maps MCU Rewind to "Track: Unsolo all tracks". Or remap button to another button if your MCU button layout doesnt play nicely with default MCULive mappings. By default range 0x00 .. 0x2d is in use. Button numbers are second column (prefixed with 0x) e.g. '90 5e' 0x5e for 'transport : play', roughly.

    mcu documentation:
    mcu=>pc:
      the mcu seems to send, when it boots (or is reset) f0 00 00 66 14 01 58 59 5a 57 18 61 05 57 18 61 05 f7
      ex vv vv    :   volume fader move, x=0..7, 8=master, vv vv is int14
      b0 1x vv    :   pan fader move, x=0..7, vv has 40 set if negative, low bits 0-31 are move amount
      b0 3c vv    :   jog wheel move, 01 or 41
      to the extent the buttons below have leds, you can set them by sending these messages, with 7f for on, 1 for blink, 0 for off.
      90 0x vv    :   rec arm push x=0..7 (vv:..)
      90 0x vv    :   solo push x=8..f (vv:..)
      90 1x vv    :   mute push x=0..7 (vv:..)
      90 1x vv    :   selected push x=8..f (vv:..)
      90 2x vv    :   pan knob push, x=0..7 (vv:..)
      90 28 vv    :   assignment track
      90 29 vv    :   assignment send
      90 2a vv    :   assignment pan/surround
      90 2b vv    :   assignment plug-in
      90 2c vv    :   assignment eq
      90 2d vv    :   assignment instrument
      90 2e vv    :   bank down button (vv: 00=release, 7f=push)
      90 2f vv    :   channel down button (vv: ..)
      90 30 vv    :   bank up button (vv:..)
      90 31 vv    :   channel up button (vv:..)
      90 32 vv    :   flip button
      90 33 vv    :   global view button
      90 34 vv    :   name/value display button
      90 35 vv    :   smpte/beats mode switch (vv:..)
      90 36 vv    :   f1
      90 37 vv    :   f2
      90 38 vv    :   f3
      90 39 vv    :   f4
      90 3a vv    :   f5
      90 3b vv    :   f6
      90 3c vv    :   f7
      90 3d vv    :   f8
      90 3e vv    :   global view : midi tracks
      90 3f vv    :   global view : inputs
      90 40 vv    :   global view : audio tracks
      90 41 vv    :   global view : audio instrument
      90 42 vv    :   global view : aux
      90 43 vv    :   global view : busses
      90 44 vv    :   global view : outputs
      90 45 vv    :   global view : user
      90 46 vv    :   shift modifier (vv:..)
      90 47 vv    :   option modifier
      90 48 vv    :   control modifier
      90 49 vv    :   alt modifier
      90 4a vv    :   automation read/off
      90 4b vv    :   automation write
      90 4c vv    :   automation trim
      90 4d vv    :   automation touch
      90 4e vv    :   automation latch
      90 4f vv    :   automation group
      90 50 vv    :   utilities save
      90 51 vv    :   utilities undo
      90 52 vv    :   utilities cancel
      90 53 vv    :   utilities enter
      90 54 vv    :   marker
      90 55 vv    :   nudge
      90 56 vv    :   cycle
      90 57 vv    :   drop
      90 58 vv    :   replace
      90 59 vv    :   click
      90 5a vv    :   solo
      90 5b vv    :   transport rewind (vv:..)
      90 5c vv    :   transport ffwd (vv:..)
      90 5d vv    :   transport pause (vv:..)
      90 5e vv    :   transport play (vv:..)
      90 5f vv    :   transport record (vv:..)
      90 60 vv    :   up arrow button  (vv:..)
      90 61 vv    :   down arrow button 1 (vv:..)
      90 62 vv    :   left arrow button 1 (vv:..)
      90 63 vv    :   right arrow button 1 (vv:..)
      90 64 vv    :   zoom button (vv:..)
      90 65 vv    :   scrub button (vv:..)
      90 6x vv    :   fader touch x=8..f
      90 70 vv    :   master fader touch
    pc=>mcu:
      f0 00 00 66 14 12 xx <data> f7   : update lcd. xx=offset (0-112), string. display is 55 chars wide, second line begins at 56, though.
      f0 00 00 66 14 08 00 f7          : reset mcu
      f0 00 00 66 14 20 0x 03 f7       : put track in vu meter mode, x=track  
      90 73 vv : rude solo light (vv: 7f=on, 00=off, 01=blink)
      b0 3x vv : pan display, x=0..7, vv=1..17 (hex) or so
      b0 4x vv : right to left of leds. if 0x40 set in vv, dot below char is set (x=0..11)
      d0 yx    : update vu meter, y=track, x=0..d=volume, e=clip on, f=clip off
      ex vv vv : set volume fader, x=track index, 8=master


    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer button
    unsupported bool


    ^ Reaper version 6.44MCULive_Reset

    C: int MCULive_Reset(int device)
    EEL2: int extension_api("MCULive_Reset", int device)
    Lua: integer retval = reaper.MCULive_Reset(integer device)
    Python: int MCULive_Reset(int device)

    Reset device. device < 0 resets all and returns number of devices.

    Returnvalues:
    integer retval

    Parameters:
    integer device


    ^ Reaper version 6.44MCULive_SendMIDIMessage

    C: int MCULive_SendMIDIMessage(int device, int status, int data1, int data2, const char* msgInOptional, int* msgInOptional_sz msgInOptional_sz)
    EEL2: int extension_api("MCULive_SendMIDIMessage", int device, int status, int data1, int data2, optional "msgIn", unsupported msgIn)
    Lua: integer retval = reaper.MCULive_SendMIDIMessage(integer device, integer status, integer data1, integer data2, optional string msgIn, unsupported msgIn)
    Python: int MCULive_SendMIDIMessage(int device, int status, int data1, int data2, const char* msgInOptional, int* msgInOptional_sz msgInOptional_sz)

    Sends MIDI message to device. If string is provided, individual bytes are not sent. Returns number of sent bytes.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer status
    integer data1
    integer data2
    optional string msgIn
    unsupported msgIn


    ^ Reaper version 6.44MCULive_SetButtonPassthrough

    C: int MCULive_SetButtonPassthrough(int device, int button, bool isSet)
    EEL2: int extension_api("MCULive_SetButtonPassthrough", int device, int button, bool isSet)
    Lua: integer retval = reaper.MCULive_SetButtonPassthrough(integer device, integer button, boolean isSet)
    Python: int MCULive_SetButtonPassthrough(int device, int button, bool isSet)

    Set button as MIDI passthrough.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer button
    boolean isSet


    ^ Reaper version 6.44MCULive_SetButtonPressOnly

    C: int MCULive_SetButtonPressOnly(int device, int button, bool isSet)
    EEL2: int extension_api("MCULive_SetButtonPressOnly", int device, int button, bool isSet)
    Lua: integer retval = reaper.MCULive_SetButtonPressOnly(integer device, integer button, boolean isSet)
    Python: int MCULive_SetButtonPressOnly(int device, int button, bool isSet)

    Buttons function as press only by default. Set false for press and release function.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer button
    boolean isSet


    ^ Reaper version 6.44MCULive_SetButtonValue

    C: int MCULive_SetButtonValue(int device, int button, int value)
    EEL2: int extension_api("MCULive_SetButtonValue", int device, int button, int value)
    Lua: integer retval = reaper.MCULive_SetButtonValue(integer device, integer button, integer value)
    Python: int MCULive_SetButtonValue(int device, int button, int value)

    Set button led/mode/state. Value 0 = off,1 = blink, 0x7f = on, usually.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer button
    integer value


    ^ Reaper version 6.44MCULive_SetDefault

    C: void MCULive_SetDefault(int device, bool isSet)
    EEL2: extension_api("MCULive_SetDefault", int device, bool isSet)
    Lua: reaper.MCULive_SetDefault(integer device, boolean isSet)
    Python: void MCULive_SetDefault(int device, bool isSet)

    Enables/disables default out-of-the-box operation.

    Parameters:
    integer device
    boolean isSet


    ^ Reaper version 6.44MCULive_SetDisplay

    C: void MCULive_SetDisplay(int device, int pos, const char* message, int pad)
    EEL2: extension_api("MCULive_SetDisplay", int device, int pos, "message", int pad)
    Lua: reaper.MCULive_SetDisplay(integer device, integer pos, string message, integer pad)
    Python: void MCULive_SetDisplay(int device, int pos, const char* message, int pad)

    Write to display. 112 characters, 56 per row.

    Parameters:
    integer device
    integer pos
    string message
    integer pad


    ^ Reaper version 6.44MCULive_SetEncoderValue

    C: int MCULive_SetEncoderValue(int device, int encIdx, double val, int type)
    EEL2: int extension_api("MCULive_SetEncoderValue", int device, int encIdx, val, int type)
    Lua: integer retval = reaper.MCULive_SetEncoderValue(integer device, integer encIdx, number val, integer type)
    Python: int MCULive_SetEncoderValue(int device, int encIdx, double val, int type)

    Set encoder to value 0 ... 1.0. Type 0 = linear, 1 = track volume, 2 = pan. Returns scaled value.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer encIdx
    number val
    integer type


    ^ Reaper version 6.44MCULive_SetFaderValue

    C: int MCULive_SetFaderValue(int device, int faderIdx, double val, int type)
    EEL2: int extension_api("MCULive_SetFaderValue", int device, int faderIdx, val, int type)
    Lua: integer retval = reaper.MCULive_SetFaderValue(integer device, integer faderIdx, number val, integer type)
    Python: int MCULive_SetFaderValue(int device, int faderIdx, double val, int type)

    Set fader to value 0 ... 1.0. Type 0 = linear, 1 = track volume, 2 = pan. Returns scaled value.

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer faderIdx
    number val
    integer type


    ^ Reaper version 6.44MCULive_SetMeterValue

    C: int MCULive_SetMeterValue(int device, int meterIdx, double val, int type)
    EEL2: int extension_api("MCULive_SetMeterValue", int device, int meterIdx, val, int type)
    Lua: integer retval = reaper.MCULive_SetMeterValue(integer device, integer meterIdx, number val, integer type)
    Python: int MCULive_SetMeterValue(int device, int meterIdx, double val, int type)

    Set meter value 0 ... 1.0. Type 0 = linear, 1 = track volume (with decay).

    Returnvalues:
    integer retval

    Parameters:
    integer device
    integer meterIdx
    number val
    integer type


    ^ Reaper version 6.44MCULive_SetOption

    C: void MCULive_SetOption(int option, int value)
    EEL2: extension_api("MCULive_SetOption", int option, int value)
    Lua: reaper.MCULive_SetOption(integer option, integer value)
    Python: void MCULive_SetOption(int option, int value)

    1 : surface split point device index
    2 : 'mode-is-global' bitmask/flags, first 6 bits

    Parameters:
    integer option
    integer value


    ^ Reaper version 5.965ReaPack_AboutInstalledPackage(ReaPack)

    C: bool ReaPack_AboutInstalledPackage(PackageEntry* entry)
    EEL2: bool extension_api("ReaPack_AboutInstalledPackage", PackageEntry entry)
    Lua: boolean retval = reaper.ReaPack_AboutInstalledPackage(PackageEntry entry)
    Python: Boolean retval = ReaPack_AboutInstalledPackage(PackageEntry entry)

    Show the about dialog of the given package entry.
    The repository index is downloaded asynchronously if the cached copy doesn't exist or is older than one week.

    see ReaPack_GetOwner to get this parameter

    Returnvalues:
    boolean retval
    true, if the dialog is shown

    Parameters:
    PackageEntry entry
    the installed Reapack-package, whose about dialog you want to show

    see also:
  • ReaPack_GetOwner - returns the package, that owns a certain installed file


  • ^ Reaper version 5.965ReaPack_AboutRepository(ReaPack)

    C: bool ReaPack_AboutRepository(const char* repoName)
    EEL2: bool extension_api("ReaPack_AboutRepository", "repoName")
    Lua: boolean retval = reaper.ReaPack_AboutRepository(string repoName)
    Python: Boolean retval = ReaPack_AboutRepository(String repoName)

    Show the about dialog of the given repository. Returns true if the repository exists in the user configuration.
    The repository index is downloaded asynchronously if the cached copy doesn't exist or is older than one week.

    Returnvalues:
    boolean retval
    true, if the dialog is shown

    Parameters:
    string repoName
    the repository, whose about-dialog you would love to have


    ^ Reaper version 5.965ReaPack_AddSetRepository(ReaPack)

    C: bool ReaPack_AddSetRepository(const char* name, const char* url, bool enable, int autoInstall, char* errorOut, int errorOut_sz)
    EEL2: bool extension_api("ReaPack_AddSetRepository", "name", "url", bool enable, int autoInstall, #error)
    Lua: boolean retval, string error = reaper.ReaPack_AddSetRepository(string name, string url, boolean enable, integer autoInstall)
    Python: (Boolean retval, String name, String url, Boolean enable, Int autoInstall, String errorOut, Int errorOut_sz) = ReaPack_AddSetRepository(name, url, enable, autoInstall, errorOut, errorOut_sz)

    Add or modify a repository. Set url to nullptr (or empty string in Lua) to keep the existing URL.

    Call ReaPack_ProcessQueue(true) when done to process the new list and update the GUI.

    autoInstall: usually set to 2 (obey user setting).

    Returnvalues:
    boolean retval
    true, if the repo has been added
    string error

    Parameters:
    string name
    the name of the package
    string url
    the url to the repository's xml-file; set nil to keep the current one
    boolean enable
    set this repo as enabled in the GUI of ReaPack, so synchronizing is possible
    integer autoInstall
    shall this repository automatically installed, when synchronizing and an update is available?
       0, don't autoinstall new packages when synchronizing
       1, autoinstall new packages when synchronizing
       2, use user-settings

    see also:
  • ReaPack_ProcessQueue - processes the new list and updates the gui of ReaPack


  • ^ Reaper version 5.965ReaPack_BrowsePackages(ReaPack)

    C: void ReaPack_BrowsePackages(const char* filter)
    EEL2: extension_api("ReaPack_BrowsePackages", "filter")
    Lua: reaper.ReaPack_BrowsePackages(string filter)
    Python: ReaPack_BrowsePackages(String filter)

    Opens the package browser with the given filter string.

    Parameters:
    string filter
    the filter to be applied in the package browser. Only packages that feature words included in this filter will be shown.


    ^ Reaper version 5.965ReaPack_CompareVersions(ReaPack)

    C: int ReaPack_CompareVersions(const char* ver1, const char* ver2, char* errorOut, int errorOut_sz)
    EEL2: int extension_api("ReaPack_CompareVersions", "ver1", "ver2", #error)
    Lua: integer retval, string error = reaper.ReaPack_CompareVersions(string ver1, string ver2)
    Python: (Int retval, String ver1, String ver2, String errorOut, Int errorOut_sz) = ReaPack_CompareVersions(ver1, ver2, errorOut, errorOut_sz)

    Compares two versionnumbers. Versionnumbers must start with a number/digit, or they can't be compared.
    Returns 0 if both versions are equal, a positive value if ver1 is higher than ver2 and a negative value otherwise.

    Returnvalues:
    integer retval
    -1, ver1 0, ver1 = ver2
    1, ver1>ver2
    string error
    the errormessage, if comparing the parameters ver1 and ver2 is impossible

    Parameters:
    string ver1
    a first versionnumber to compare; must start with a number/digit
    string ver2
    a second versionnumber to compare; must start with a number/digit


    ^ Reaper version 5.965ReaPack_EnumOwnedFiles(ReaPack)

    C: bool ReaPack_EnumOwnedFiles(PackageEntry* entry, int index, char* pathOut, int pathOut_sz, int* sectionsOut, int* typeOut)
    EEL2: bool extension_api("ReaPack_EnumOwnedFiles", PackageEntry entry, int index, #path, int §ions, int &type)
    Lua: boolean retval, string path, integer sections, integer type = reaper.ReaPack_EnumOwnedFiles(PackageEntry entry, integer index)
    Python: (Boolean retval, PackageEntry entry, Int index, String pathOut, Int pathOut_sz, Int sectionsOut, Int typeOut) = ReaPack_EnumOwnedFiles(entry, index, pathOut, pathOut_sz, sectionsOut, typeOut)

    Enumerate the files owned by the given package. Returns false when there is no more data.

       sections: 0=not in action list, &1=main, &2=midi editor, &4=midi inline editor
       type: see ReaPack_GetEntryInfo.

       see ReaPack_GetOwner to get the value for the parameter entry


    Returnvalues:
    boolean retval
    true, if more files exist; false, if this is the last/only file
    string path
    the path and filename of the installed file
    integer sections
    the section(s), in which this file is installed; it is an integer bitfield
      0=not in action list
      &1=main
      &2=midi editor
      &4=midi inline editor
    integer type
    the type of the extension, in which this file exists
      1, script
      2, extension
      3, effect
      4, data
      5, theme
      6, langpack
      7, webinterface

    Parameters:
    PackageEntry entry
    the installed Reapack-package, whose file you want to enumerate
    integer index
    the index of the file of this ReaPack-package with 0 for the first file

    see also:
  • ReaPack_GetOwner - returns the package, that owns a certain installed file
  • ReaPack_GetEntryInfo - returns the attributes of an installed repository, like name, package description, etc


  • ^ Reaper version 5.965ReaPack_FreeEntry(ReaPack)

    C: bool ReaPack_FreeEntry(PackageEntry* entry)
    EEL2: bool extension_api("ReaPack_FreeEntry", PackageEntry entry)
    Lua: boolean retval = reaper.ReaPack_FreeEntry(PackageEntry entry)
    Python: Boolean retval = ReaPack_FreeEntry(PackageEntry entry)

    Free resources allocated for the given package entry.

    Must be used to free PackageEntry-objects created by ReaPack_GetOwner.

    Returnvalues:
    boolean retval
    true, if freeing was successful; false, if no

    Parameters:
    PackageEntry entry
    the installed Reapack-package, whose ressources you want to free

    see also:
  • ReaPack_GetOwner - returns the package, that owns a certain installed file


  • ^ Reaper version 5.965ReaPack_GetEntryInfo(ReaPack)

    C: bool ReaPack_GetEntryInfo(PackageEntry* entry, char* repoOut, int repoOut_sz, char* catOut, int catOut_sz, char* pkgOut, int pkgOut_sz, char* descOut, int descOut_sz, int* typeOut, char* verOut, int verOut_sz, char* authorOut, int authorOut_sz, int* flagsOut, int* fileCountOut)
    EEL2: bool ReaPack_GetEntryInfo(PackageEntry entry, #repo, #cat, #pkg, #desc, int &type, #ver, #author, int &flags, int &fileCount)
    Lua: boolean retval, string repo, string cat, string pkg, string desc, integer type, string ver, string author, integer flags, integer fileCount = reaper.ReaPack_GetEntryInfo(PackageEntry entry)
    Python: (Boolean retval, PackageEntry entry, String repoOut, Int repoOut_sz, String catOut, Int catOut_sz, String pkgOut, Int pkgOut_sz, String descOut, Int descOut_sz, Int typeOut, String verOut, Int verOut_sz, String authorOut, Int authorOut_sz, Int flagsOut, Int fileCountOut) = ReaPack_GetEntryInfo(entry, repoOut, repoOut_sz, catOut, catOut_sz, pkgOut, pkgOut_sz, descOut, descOut_sz, typeOut, verOut, verOut_sz, authorOut, authorOut_sz, flagsOut, fileCountOut)

    Get the repository name, category, package name, package description, package type, the currently installed version, author name, flags (&1=Pinned, &2=BleedingEdge) and how many files are owned by the given package entry.

    see ReaPack_GetOwner to get value for parameter entry

    Returnvalues:
    boolean retval
    true, if getting the info worked
    string repo
    the name of the repository
    string cat
    the category of this package
    string pkg
    the package-name of this package
    string desc
    the description of this package
    integer type
    the type of this package
    1, script
    2, extension
    3, effect
    4, data
    5, theme
    6, langpack
    7, webinterface
    string ver
    the currently installed version of this package
    string author
    the author of this package
    integer flags
    the pinned-status of this package
    &1=Pinned
    &2=BleedingEdge
    integer fileCount
    the number of files of this package

    Parameters:
    PackageEntry entry
    the installed Reapack-package, whose package-infos you want

    see also:
  • ReaPack_GetOwner - returns the package, that owns a certain installed file


  • ^ Reaper version 5.965ReaPack_GetOwner(ReaPack)

    C: PackageEntry* ReaPack_GetOwner(const char* fn, char* errorOut, int errorOut_sz)
    EEL2: PackageEntry extension_api("ReaPack_GetOwner", "fn", #error)
    Lua: PackageEntry retval, string error = reaper.ReaPack_GetOwner(string fn)
    Python: (PackageEntry retval, String fn, String errorOut, Int errorOut_sz) = ReaPack_GetOwner(fn, errorOut, errorOut_sz)

    Returns the package entry owning the given file.
    Delete the returned object from memory after use with ReaPack_FreeEntry.

    Returnvalues:
    PackageEntry retval
    the installed Reapack-package, who is owner of this file
    string error
    an errormessage, if the file is not part of a ReaPack-package

    Parameters:
    string fn
    filename with path to a file, of which you want to know, whose package owns it

    see also:
  • ReaPack_FreeEntry - deletes a PackageEntry, when you have no use for it anymore


  • ^ Reaper version 5.965ReaPack_GetRepositoryInfo(ReaPack)

    C: bool ReaPack_GetRepositoryInfo(const char* name, char* urlOut, int urlOut_sz, bool* enabledOut, int* autoInstallOut)
    EEL2: bool extension_api("ReaPack_GetRepositoryInfo", "name", #url, bool &enabled, int &autoInstall)
    Lua: boolean retval, string url, boolean enabled, integer autoInstall = reaper.ReaPack_GetRepositoryInfo(string name)
    Python: (Boolean retval, String name, String urlOut, Int urlOut_sz, Boolean enabledOut, Int autoInstallOut) = ReaPack_GetRepositoryInfo(name, urlOut, urlOut_sz, enabledOut, autoInstallOut)

    Get the infos of the given repository.

    Returnvalues:
    boolean retval
    true, such a repository exists; false, it does not exist
    string url
    the url of the repository
    boolean enabled
    true, the repository is enabled for installing/syncing; false, if not
    integer autoInstall
    shall this repository be automatically installed when syncing?
    0, manual
    1, when synchronizing
    2, obey user setting

    Parameters:
    string name
    the name of the ReaPack package, whose repository you want to have


    ^ Reaper version 5.965ReaPack_ProcessQueue(ReaPack)

    C: void ReaPack_ProcessQueue(bool refreshUI)
    EEL2: extension_api("ReaPack_ProcessQueue", bool refreshUI)
    Lua: reaper.ReaPack_ProcessQueue(boolean refreshUI)
    Python: ReaPack_ProcessQueue(Boolean refreshUI)

    Run pending operations and save the configuration file. If refreshUI is true the browser and manager windows are guaranteed to be refreshed (otherwise it depends on which operations are in the queue).

    Parameters:
    boolean refreshUI
    true, refreshes the UI of the ReaPack-user-interface; false, doesn't update the UI


    ^ Reaper version 6.20 SWS version 2.13.1.0CF_GetCustomColor

    C: int retval = CF_GetCustomColor(int index)
    EEL2: int retval = CF_GetCustomColor(int index)
    Lua: integer retval = reaper.CF_GetCustomColor(integer index)
    Python: Int retval = CF_GetCustomColor(Int index)

    Get one of 16 SWS custom colors (0xBBGGRR on Windows, 0xRRGGBB everyhwere else). Index is zero-based.

    Returnvalues:
    integer retval
    the color-value of the chosen custom-color

    Parameters:
    integer index
    the index of the SWS-custom-color


    ^ Reaper version 6.20 SWS version 2.13.1.0CF_SetCustomColor

    C: void retval = CF_SetCustomColor(int index, int color)
    EEL2: CF_SetCustomColor(int index, int color)
    Lua: reaper.CF_SetCustomColor(integer index, integer color)
    Python: CF_SetCustomColor(Int index, Int color)

    Set one of 16 SWS custom colors (0xBBGGRR on Windows, 0xRRGGBB everyhwere else). Index is zero-based.

    Parameters:
    integer index
    the index of the SWS-color to set
    integer color
    the new color-value for this SWS-custom-color


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetCurrentTheme

    C: void BR_GetCurrentTheme(char* themePathOut, int themePathOut_sz, char* themeNameOut, int themeNameOut_sz)
    EEL2: extension_api("BR_GetCurrentTheme", #themePath, #themeName)
    Lua: string themePath, string themeName = reaper.BR_GetCurrentTheme()
    Python: (String themePathOut, Int themePathOut_sz, String themeNameOut, Int themeNameOut_sz) = BR_GetCurrentTheme(themePathOut, themePathOut_sz, themeNameOut, themeNameOut_sz)

    [BR] Get current theme information. themePathOut is set to full theme path and themeNameOut is set to theme name excluding any path info and extension

    Returnvalues:
    string themePath
    string themeName


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaTrackLayouts

    C: void BR_GetMediaTrackLayouts(MediaTrack* track, char* mcpLayoutNameOut, int mcpLayoutNameOut_sz, char* tcpLayoutNameOut, int tcpLayoutNameOut_sz)
    EEL2: extension_api("BR_GetMediaTrackLayouts", MediaTrack track, #mcpLayoutName, #tcpLayoutName)
    Lua: string mcpLayoutName, string tcpLayoutName = reaper.BR_GetMediaTrackLayouts(MediaTrack track)
    Python: (MediaTrack track, String mcpLayoutNameOut, Int mcpLayoutNameOut_sz, String tcpLayoutNameOut, Int tcpLayoutNameOut_sz) = BR_GetMediaTrackLayouts(track, mcpLayoutNameOut, mcpLayoutNameOut_sz, tcpLayoutNameOut, tcpLayoutNameOut_sz)

    [BR] Deprecated, see GetSetMediaTrackInfo (REAPER v5.02+). Get media track layouts for MCP and TCP. Empty string ("") means that layout is set to the default layout. To set media track layouts, see BR_SetMediaTrackLayouts.


    Returnvalues:
    string mcpLayoutName
    string tcpLayoutName

    Parameters:
    MediaTrack track


    ^ Reaper version 5.62 SWS version 2.9.7BR_SetMediaTrackLayouts

    C: bool BR_SetMediaTrackLayouts(MediaTrack* track, const char* mcpLayoutNameIn, const char* tcpLayoutNameIn)
    EEL2: bool extension_api("BR_SetMediaTrackLayouts", MediaTrack track, "mcpLayoutNameIn", "tcpLayoutNameIn")
    Lua: boolean retval = reaper.BR_SetMediaTrackLayouts(MediaTrack track, string mcpLayoutNameIn, string tcpLayoutNameIn)
    Python: Boolean retval = BR_SetMediaTrackLayouts(MediaTrack track, String mcpLayoutNameIn, String tcpLayoutNameIn)

    [BR] Deprecated, see GetSetMediaTrackInfo (REAPER v5.02+). Set media track layouts for MCP and TCP. To set default layout, pass empty string ("") as layout name. In case layouts were successfully set, returns true (if layouts are already set to supplied layout names, it will return false since no changes were made). To get media track layouts, see BR_GetMediaTrackLayouts.


    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    stirng mcpLayoutNameIn
    string tcpLayoutNameIn


    ^ Reaper version 5.62GetLastColorThemeFile

    C: const char* GetLastColorThemeFile()
    EEL2: bool GetLastColorThemeFile(#retval)
    Lua: string theme_filename_with_path = reaper.GetLastColorThemeFile()
    Python: String retval = RPR_GetLastColorThemeFile()

    Get the last used color-theme-file.

    Returnvalues:
    string theme_filename_with_path
    the path and filename of the last used theme


    ^ Reaper version 6.14GetThemeColor

    C: int GetThemeColor(const char* ini_key, int flagsOptional)
    EEL2: int GetThemeColor("ini_key", int flags)
    Lua: integer retval = reaper.GetThemeColor(string ini_key, integer flags)
    Python: Int retval = RPR_GetThemeColor(String ini_key, Int flagsOptional)

    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.

    Returnvalues:
    integer retval

    Parameters:
    string ini_key
    integer flags

    see also:
  • SetThemeColor - sets a theme-color to a new color-value


  • ^ Reaper version 5.62OpenColorThemeFile

    C: bool OpenColorThemeFile(const char* fn)
    EEL2: bool OpenColorThemeFile("fn")
    Lua: boolean retval = reaper.OpenColorThemeFile(string fn)
    Python: Boolean retval = RPR_OpenColorThemeFile(String fn)

    Open a different installed theme.

    Returnvalues:
    boolean retval
    true, changing theme worked; false, changing theme didn't work

    Parameters:
    string fn
    the path+filename of the color-theme-file, usually with the ".ReaperTheme"-extension


    ^ Reaper version 6.74SetThemeColor

    C: int SetThemeColor(const char* ini_key, int color, int flagsOptional)
    EEL2: int SetThemeColor("ini_key", int color, int flags)
    Lua: integer retval = reaper.SetThemeColor(string ini_key, integer color, integer flags)
    Python: Int retval = RPR_SetThemeColor(String ini_key, Int color, Int flagsOptional)

    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

    * col_main_bg2 : Main window/transport background
    * col_main_text2 : Main window/transport text
    * col_main_textshadow : Main window text shadow (ignored if too close to text color)
    * col_main_3dhl : Main window 3D highlight
    * col_main_3dsh : Main window 3D shadow
    * col_main_resize2 : Main window pane resize mouseover
    * col_main_text : Themed Window text
    * col_main_bg : Themed Window background
    * col_main_editbk : Themed Window edit background
    * col_nodarkmodemiscwnd : Do not use window theming on macOS dark mode
    * col_transport_editbk : Transport edit background
    * col_toolbar_text : Toolbar button text
    * col_toolbar_text_on : Toolbar button enabled text
    * col_toolbar_frame : Toolbar frame when floating or docked
    * toolbararmed_color : Toolbar button armed color
    * toolbararmed_drawmode : Toolbar button armed fill mode
    * io_text : I/O window text
    * io_3dhl : I/O window 3D highlight
    * io_3dsh : I/O window 3D shadow
    * genlist_bg : Window list background
    * genlist_fg : Window list text
    * genlist_grid : Window list grid lines
    * genlist_selbg : Window list selected row
    * genlist_selfg : Window list selected text
    * genlist_seliabg : Window list selected row (inactive)
    * genlist_seliafg : Window list selected text (inactive)
    * genlist_hilite : Window list highlighted text
    * genlist_hilite_sel : Window list highlighted selected text
    * col_buttonbg : Button background
    * col_tcp_text : Track panel text
    * col_tcp_textsel : Track panel (selected) text
    * col_seltrack : Selected track control panel background
    * col_seltrack2 : Unselected track control panel background (enabled with a checkbox above)
    * tcplocked_color : Locked track control panel overlay color
    * tcplocked_drawmode : Locked track control panel fill mode
    * col_tracklistbg : Empty track list area
    * col_mixerbg : Empty mixer list area
    * col_arrangebg : Empty arrange view area
    * arrange_vgrid : Empty arrange view area vertical grid shading
    * col_fadearm : Fader background when automation recording
    * col_fadearm2 : Fader background when automation playing
    * col_fadearm3 : Fader background when in inactive touch/latch
    * col_tl_fg : Timeline foreground
    * col_tl_fg2 : Timeline foreground (secondary markings)
    * col_tl_bg : Timeline background
    * col_tl_bgsel : Time selection color
    * timesel_drawmode : Time selection fill mode
    * col_tl_bgsel2 : Timeline background (in loop points)
    * col_trans_bg : Transport status background
    * col_trans_fg : Transport status text
    * playrate_edited : Project play rate control when not 1.0
    * col_mi_label : Media item label
    * col_mi_label_sel : Media item label (selected)
    * col_mi_label_float : Floating media item label
    * col_mi_label_float_sel : Floating media item label (selected)
    * col_mi_bg : Media item background (odd tracks)
    * col_mi_bg2 : Media item background (even tracks)
    * col_tr1_itembgsel : Media item background selected (odd tracks)
    * col_tr2_itembgsel : Media item background selected (even tracks)
    * itembg_drawmode : Media item background fill mode
    * col_tr1_peaks : Media item peaks (odd tracks)
    * col_tr2_peaks : Media item peaks (even tracks)
    * col_tr1_ps2 : Media item peaks when selected (odd tracks)
    * col_tr2_ps2 : Media item peaks when selected (even tracks)
    * col_peaksedge : Media item peaks edge highlight (odd tracks)
    * col_peaksedge2 : Media item peaks edge highlight (even tracks)
    * col_peaksedgesel : Media item peaks edge highlight when selected (odd tracks)
    * col_peaksedgesel2 : Media item peaks edge highlight when selected (even tracks)
    * cc_chase_drawmode : Media item MIDI CC peaks fill mode
    * col_peaksfade : Media item peaks when active in crossfade editor (fade-out)
    * col_peaksfade2 : Media item peaks when active in crossfade editor (fade-in)
    * col_mi_fades : Media item fade/volume controls
    * fadezone_color : Media item fade quiet zone fill color
    * fadezone_drawmode : Media item fade quiet zone fill mode
    * fadearea_color : Media item fade full area fill color
    * fadearea_drawmode : Media item fade full area fill mode
    * col_mi_fade2 : Media item edges of controls
    * col_mi_fade2_drawmode : Media item edges of controls blend mode
    * item_grouphl : Media item edge when selected via grouping
    * col_offlinetext : Media item "offline" text
    * col_stretchmarker : Media item stretch marker line
    * col_stretchmarker_h0 : Media item stretch marker handle (1x)
    * col_stretchmarker_h1 : Media item stretch marker handle (>1x)
    * col_stretchmarker_h2 : Media item stretch marker handle (<1x)
    * col_stretchmarker_b : Media item stretch marker handle edge
    * col_stretchmarkerm : Media item stretch marker blend mode
    * col_stretchmarker_text : Media item stretch marker text
    * col_stretchmarker_tm : Media item transient guide handle
    * take_marker : Media item take marker
    * selitem_tag : Selected media item bar color
    * activetake_tag : Active media item take bar color
    * col_tr1_bg : Track background (odd tracks)
    * col_tr2_bg : Track background (even tracks)
    * selcol_tr1_bg : Selected track background (odd tracks)
    * selcol_tr2_bg : Selected track background (even tracks)
    * col_tr1_divline : Track divider line (odd tracks)
    * col_tr2_divline : Track divider line (even tracks)
    * col_envlane1_divline : Envelope lane divider line (odd tracks)
    * col_envlane2_divline : Envelope lane divider line (even tracks)
    * mute_overlay_col : Muted/unsoloed track/item overlay color
    * mute_overlay_mode : Muted/unsoloed track/item overlay mode
    * inactive_take_overlay_col : Inactive take overlay color
    * inactive_take_overlay_mode : Inactive take overlay mode
    * locked_overlay_col : Locked track/item overlay color
    * locked_overlay_mode : Locked track/item overlay mode
    * marquee_fill : Marquee fill
    * marquee_drawmode : Marquee fill mode
    * marquee_outline : Marquee outline
    * marqueezoom_fill : Marquee zoom fill
    * marqueezoom_drawmode : Marquee zoom fill mode
    * marqueezoom_outline : Marquee zoom outline
    * areasel_fill : Razor edit area fill
    * areasel_drawmode : Razor edit area fill mode
    * areasel_outline : Razor edit area outline
    * areasel_outlinemode : Razor edit area outline mode
    * col_cursor : Edit cursor
    * col_cursor2 : Edit cursor (alternate)
    * playcursor_color : Play cursor
    * playcursor_drawmode : Play cursor fill mode
    * col_gridlines2 : Grid lines (start of measure)
    * col_gridlines2dm : Grid lines (start of measure) - draw mode
    * col_gridlines3 : Grid lines (start of beats)
    * col_gridlines3dm : Grid lines (start of beats) - draw mode
    * col_gridlines : Grid lines (in between beats)
    * col_gridlines1dm : Grid lines (in between beats) - draw mode
    * guideline_color : Editing guide line color
    * guideline_drawmode : Editing guide fill mode
    * region : Regions
    * region_lane_bg : Region lane background
    * region_lane_text : Region lane text
    * marker : Markers
    * marker_lane_bg : Marker lane background
    * marker_lane_text : Marker lane text
    * col_tsigmark : Time signature change marker
    * ts_lane_bg : Time signature lane background
    * ts_lane_text : Time signature lane text
    * timesig_sel_bg : Time signature marker selected background
    * col_routinghl1 : Routing matrix row highlight
    * col_routinghl2 : Routing matrix column highlight
    * col_routingact : Routing matrix input activity highlight
    * col_vudoint : Theme has interlaced VU meters
    * col_vuclip : VU meter clip indicator
    * col_vutop : VU meter top
    * col_vumid : VU meter middle
    * col_vubot : VU meter bottom
    * col_vuintcol : VU meter interlace/edge color
    * col_vumidi : VU meter midi activity
    * col_vuind1 : VU (indicator) - no signal
    * col_vuind2 : VU (indicator) - low signal
    * col_vuind3 : VU (indicator) - med signal
    * col_vuind4 : VU (indicator) - hot signal
    * mcp_sends_normal : Sends text: normal
    * mcp_sends_muted : Sends text: muted
    * mcp_send_midihw : Sends text: MIDI hardware
    * mcp_sends_levels : Sends level
    * mcp_fx_normal : FX insert text: normal
    * mcp_fx_bypassed : FX insert text: bypassed
    * mcp_fx_offlined : FX insert text: offline
    * mcp_fxparm_normal : FX parameter text: normal
    * mcp_fxparm_bypassed : FX parameter text: bypassed
    * mcp_fxparm_offlined : FX parameter text: offline
    * tcp_list_scrollbar : List scrollbar (track panel)
    * tcp_list_scrollbar_mode : List scrollbar (track panel) - draw mode
    * tcp_list_scrollbar_mouseover : List scrollbar mouseover (track panel)
    * tcp_list_scrollbar_mouseover_mode : List scrollbar mouseover (track panel) - draw mode
    * mcp_list_scrollbar : List scrollbar (mixer panel)
    * mcp_list_scrollbar_mode : List scrollbar (mixer panel) - draw mode
    * mcp_list_scrollbar_mouseover : List scrollbar mouseover (mixer panel)
    * mcp_list_scrollbar_mouseover_mode : List scrollbar mouseover (mixer panel) - draw mode
    * midi_rulerbg : MIDI editor ruler background
    * midi_rulerfg : MIDI editor ruler text
    * midi_grid2 : MIDI editor grid line (start of measure)
    * midi_griddm2 : MIDI editor grid line (start of measure) - draw mode
    * midi_grid3 : MIDI editor grid line (start of beats)
    * midi_griddm3 : MIDI editor grid line (start of beats) - draw mode
    * midi_grid1 : MIDI editor grid line (between beats)
    * midi_griddm1 : MIDI editor grid line (between beats) - draw mode
    * midi_trackbg1 : MIDI editor background color (naturals)
    * midi_trackbg2 : MIDI editor background color (sharps/flats)
    * midi_trackbg_outer1 : MIDI editor background color, out of bounds (naturals)
    * midi_trackbg_outer2 : MIDI editor background color, out of bounds (sharps/flats)
    * midi_selpitch1 : MIDI editor background color, selected pitch (naturals)
    * midi_selpitch2 : MIDI editor background color, selected pitch (sharps/flats)
    * midi_selbg : MIDI editor time selection color
    * midi_selbg_drawmode : MIDI editor time selection fill mode
    * midi_gridhc : MIDI editor CC horizontal center line
    * midi_gridhcdm : MIDI editor CC horizontal center line - draw mode
    * midi_gridh : MIDI editor CC horizontal line
    * midi_gridhdm : MIDI editor CC horizontal line - draw mode
    * midi_ccbut : MIDI editor CC lane add/remove buttons
    * midi_ccbut_text : MIDI editor CC lane button text
    * midi_ccbut_arrow : MIDI editor CC lane button arrow
    * midioct : MIDI editor octave line color
    * midi_inline_trackbg1 : MIDI inline background color (naturals)
    * midi_inline_trackbg2 : MIDI inline background color (sharps/flats)
    * midioct_inline : MIDI inline octave line color
    * midi_endpt : MIDI editor end marker
    * midi_notebg : MIDI editor note, unselected (midi_note_colormap overrides)
    * midi_notefg : MIDI editor note, selected (midi_note_colormap overrides)
    * midi_notemute : MIDI editor note, muted, unselected (midi_note_colormap overrides)
    * midi_notemute_sel : MIDI editor note, muted, selected (midi_note_colormap overrides)
    * midi_itemctl : MIDI editor note controls
    * midi_ofsn : MIDI editor note (offscreen)
    * midi_ofsnsel : MIDI editor note (offscreen, selected)
    * midi_editcurs : MIDI editor cursor
    * midi_pkey1 : MIDI piano key color (naturals background, sharps/flats text)
    * midi_pkey2 : MIDI piano key color (sharps/flats background, naturals text)
    * midi_pkey3 : MIDI piano key color (selected)
    * midi_noteon_flash : MIDI piano key note-on flash
    * midi_leftbg : MIDI piano pane background
    * midifont_col_light_unsel : MIDI editor note text and control color, unselected (light)
    * midifont_col_dark_unsel : MIDI editor note text and control color, unselected (dark)
    * midifont_mode_unsel : MIDI editor note text and control mode, unselected
    * midifont_col_light : MIDI editor note text and control color (light)
    * midifont_col_dark : MIDI editor note text and control color (dark)
    * midifont_mode : MIDI editor note text and control mode
    * score_bg : MIDI notation editor background
    * score_fg : MIDI notation editor staff/notation/text
    * score_sel : MIDI notation editor selected staff/notation/text
    * score_timesel : MIDI notation editor time selection
    * score_loop : MIDI notation editor loop points, selected pitch
    * midieditorlist_bg : MIDI list editor background
    * midieditorlist_fg : MIDI list editor text
    * midieditorlist_grid : MIDI list editor grid lines
    * midieditorlist_selbg : MIDI list editor selected row
    * midieditorlist_selfg : MIDI list editor selected text
    * midieditorlist_seliabg : MIDI list editor selected row (inactive)
    * midieditorlist_seliafg : MIDI list editor selected text (inactive)
    * midieditorlist_bg2 : MIDI list editor background (secondary)
    * midieditorlist_fg2 : MIDI list editor text (secondary)
    * midieditorlist_selbg2 : MIDI list editor selected row (secondary)
    * midieditorlist_selfg2 : MIDI list editor selected text (secondary)
    * col_explorer_sel : Media explorer selection
    * col_explorer_seldm : Media explorer selection mode
    * col_explorer_seledge : Media explorer selection edge
    * explorer_grid : Media explorer grid, markers
    * explorer_pitchtext : Media explorer pitch detection text
    * docker_shadow : Tab control shadow
    * docker_selface : Tab control selected tab
    * docker_unselface : Tab control unselected tab
    * docker_text : Tab control text
    * docker_text_sel : Tab control text selected tab
    * docker_bg : Tab control background
    * windowtab_bg : Tab control background in windows
    * auto_item_unsel : Envelope: Unselected automation item
    * col_env1 : Envelope: Volume (pre-FX)
    * col_env2 : Envelope: Volume
    * env_trim_vol : Envelope: Trim Volume
    * col_env3 : Envelope: Pan (pre-FX)
    * col_env4 : Envelope: Pan
    * env_track_mute : Envelope: Mute
    * col_env5 : Envelope: Master playrate
    * col_env6 : Envelope: Master tempo
    * col_env7 : Envelope: Width/Send volume
    * col_env8 : Envelope: Send pan
    * col_env9 : Envelope: Send volume 2
    * col_env10 : Envelope: Send pan 2
    * env_sends_mute : Envelope: Send mute
    * col_env11 : Envelope: Audio hardware output volume
    * col_env12 : Envelope: Audio hardware output pan
    * col_env13 : Envelope: FX parameter 1
    * col_env14 : Envelope: FX parameter 2
    * col_env15 : Envelope: FX parameter 3
    * col_env16 : Envelope: FX parameter 4
    * env_item_vol : Envelope: Item take volume
    * env_item_pan : Envelope: Item take pan
    * env_item_mute : Envelope: Item take mute
    * env_item_pitch : Envelope: Item take pitch
    * wiring_grid2 : Wiring: Background
    * wiring_grid : Wiring: Background grid lines
    * wiring_border : Wiring: Box border
    * wiring_tbg : Wiring: Box background
    * wiring_ticon : Wiring: Box foreground
    * wiring_recbg : Wiring: Record section background
    * wiring_recitem : Wiring: Record section foreground
    * wiring_activity : Wiring: Activity lights
    * wiring_media : Wiring: Media
    * wiring_recv : Wiring: Receives
    * wiring_send : Wiring: Sends
    * wiring_fader : Wiring: Fader
    * wiring_parent : Wiring: Master/Parent
    * wiring_parentwire_border : Wiring: Master/Parent wire border
    * wiring_parentwire_master : Wiring: Master/Parent to master wire
    * wiring_parentwire_folder : Wiring: Master/Parent to parent folder wire
    * wiring_pin_normal : Wiring: Pins normal
    * wiring_pin_connected : Wiring: Pins connected
    * wiring_pin_disconnected : Wiring: Pins disconnected
    * wiring_horz_col : Wiring: Horizontal pin connections
    * wiring_sendwire : Wiring: Send hanging wire
    * wiring_hwoutwire : Wiring: Hardware output wire
    * wiring_recinputwire : Wiring: Record input wire
    * wiring_hwout : Wiring: System hardware outputs
    * wiring_recinput : Wiring: System record inputs
    * autogroup : Automatic track group
    * group_0 : Group #1
    * group_1 : Group #2
    * group_2 : Group #3
    * group_3 : Group #4
    * group_4 : Group #5
    * group_5 : Group #6
    * group_6 : Group #7
    * group_7 : Group #8
    * group_8 : Group #9
    * group_9 : Group #10
    * group_10 : Group #11
    * group_11 : Group #12
    * group_12 : Group #13
    * group_13 : Group #14
    * group_14 : Group #15
    * group_15 : Group #16
    * group_16 : Group #17
    * group_17 : Group #18
    * group_18 : Group #19
    * group_19 : Group #20
    * group_20 : Group #21
    * group_21 : Group #22
    * group_22 : Group #23
    * group_23 : Group #24
    * group_24 : Group #25
    * group_25 : Group #26
    * group_26 : Group #27
    * group_27 : Group #28
    * group_28 : Group #29
    * group_29 : Group #30
    * group_30 : Group #31
    * group_31 : Group #32
    * group_32 : Group #33
    * group_33 : Group #34
    * group_34 : Group #35
    * group_35 : Group #36
    * group_36 : Group #37
    * group_37 : Group #38
    * group_38 : Group #39
    * group_39 : Group #40
    * group_40 : Group #41
    * group_41 : Group #42
    * group_42 : Group #43
    * group_43 : Group #44
    * group_44 : Group #45
    * group_45 : Group #46
    * group_46 : Group #47
    * group_47 : Group #48
    * group_48 : Group #49
    * group_49 : Group #50
    * group_50 : Group #51
    * group_51 : Group #52
    * group_52 : Group #53
    * group_53 : Group #54
    * group_54 : Group #55
    * group_55 : Group #56
    * group_56 : Group #57
    * group_57 : Group #58
    * group_58 : Group #59
    * group_59 : Group #60
    * group_60 : Group #61
    * group_61 : Group #62
    * group_62 : Group #63
    * group_63 : Group #64

    Returnvalues:
    integer retval

    Parameters:
    string ini_key
    integer color
    integer flags

    see also:
  • GetThemeColor - gets a certain theme-color
  • UpdateArrange - updates the arrangeview, so theme-color changes are applied


  • ^ Reaper version 6.00ThemeLayout_GetLayout

    C: bool ThemeLayout_GetLayout(const char* section, int idx, char* nameOut, int nameOut_sz)
    EEL2: bool ThemeLayout_GetLayout("section", int idx, #name)
    Lua: boolean retval, string name = reaper.ThemeLayout_GetLayout(string section, integer idx)
    Python: (Boolean retval, String section, Int idx, String nameOut, Int nameOut_sz) = RPR_ThemeLayout_GetLayout(section, idx, nameOut, nameOut_sz)

    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.

    Returnvalues:
    boolean retval
    string name

    Parameters:
    string section
    integer idx


    ^ Reaper version 5.972ThemeLayout_GetParameter

    C: const char* ThemeLayout_GetParameter(int wp, const char** descOutOptional, int* valueOutOptional, int* defValueOutOptional, int* minValueOutOptional, int* maxValueOutOptional)
    EEL2: bool ThemeLayout_GetParameter(#retval, int wp, optional #desc, optional int &value, optional int &defValue, optional int &minValue, optional int &maxValue)
    Lua: string retval, optional string desc, optional integer value, optional integer defValue, optional integer minValue, optional integer maxValue = reaper.ThemeLayout_GetParameter(integer wp)
    Python: (String retval, Int wp, String descOutOptional, Int valueOutOptional, Int defValueOutOptional, Int minValueOutOptional, Int maxValueOutOptional) = RPR_ThemeLayout_GetParameter(wp, descOutOptional, valueOutOptional, defValueOutOptional, minValueOutOptional, maxValueOutOptional)

    returns theme layout parameter. return value is cfg-name, or nil/empty if out of range.

    Returnvalues:
    string retval
    optional string desc
    optional integer value
    optional integer defValue
    optional integer minValue
    optional integer maxValue

    Parameters:
    integer wp


    ^ Reaper version 5.972ThemeLayout_RefreshAll

    C: void ThemeLayout_RefreshAll()
    EEL2: ThemeLayout_RefreshAll()
    Lua: reaper.ThemeLayout_RefreshAll()
    Python: RPR_ThemeLayout_RefreshAll()

    Refreshes all layouts


    ^ Reaper version 5.974ThemeLayout_SetLayout

    C: bool ThemeLayout_SetLayout(const char* section, const char* layout)
    EEL2: bool ThemeLayout_SetLayout("section", " layout")
    Lua: boolean retval = reaper.ThemeLayout_SetLayout(string section, string layout)
    Python: Boolean retval = RPR_ThemeLayout_SetLayout(String section, String layout)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    string section
    string layout


    ^ Reaper version 5.972ThemeLayout_SetParameter

    C: bool ThemeLayout_SetParameter(int wp, int value, bool persist)
    EEL2: bool ThemeLayout_SetParameter(int wp, int value, bool persist)
    Lua: boolean retval = reaper.ThemeLayout_SetParameter(integer wp, integer value, boolean persist)
    Python: Boolean retval = RPR_ThemeLayout_SetParameter(Int wp, Int value, Boolean persist)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    integer wp
    integer value
    boolean persist


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext_Track

    C: MediaTrack* BR_GetMouseCursorContext_Track()
    EEL2: MediaTrack extension_api("BR_GetMouseCursorContext_Track")
    Lua: MediaTrack tr = reaper.BR_GetMouseCursorContext_Track()
    Python: MediaTrack tr = BR_GetMouseCursorContext_Track()

    [BR] Returns track under mouse cursor that was captured with the last call to BR_GetMouseCursorContext.


    Returnvalues:
    MediaTrack tr
    the track under the mouse-cursor


    ^ Reaper version 5.62 SWS version 2.9.7BR_TrackAtMouseCursor

    C: MediaTrack* BR_TrackAtMouseCursor(int* contextOut, double* positionOut)
    EEL2: MediaTrack extension_api("BR_TrackAtMouseCursor", int &context, &position)
    Lua: MediaTrack retval, integer context, number position = reaper.BR_TrackAtMouseCursor()
    Python: (MediaTrack retval, Int contextOut, Float positionOut) = BR_TrackAtMouseCursor(contextOut, positionOut)

    [BR] Get track under mouse cursor.
    Context signifies where the track was found: 0 = TCP, 1 = MCP, 2 = Arrange.
    Position will hold mouse cursor position in arrange if applicable.

    Returnvalues:
    MediaItem retval
    integer context
    number position


    ^ Reaper version 5.62BypassFxAllTracks

    C: void BypassFxAllTracks(int bypass)
    EEL2: BypassFxAllTracks(int bypass)
    Lua: reaper.BypassFxAllTracks(integer bypass)
    Python: RPR_BypassFxAllTracks(Int bypass)

    Does bypassing of the fx of all tracks.

    Parameters:
    integer bypass
    -1, bypass all if not all bypassed,otherwise unbypass all


    ^ Reaper version 5.62CSurf_NumTracks

    C: int CSurf_NumTracks(bool mcpView)
    EEL2: int CSurf_NumTracks(bool mcpView)
    Lua: integer count_tracks = reaper.CSurf_NumTracks(boolean mcpView)
    Python: Int retval = RPR_CSurf_NumTracks(Boolean mcpView)

    counts the number of tracks, or the number of visible tracks, when mcpView is set to true.

    Returnvalues:
    integer count_tracks
    number of tracks

    Parameters:
    boolean mcpView
    true, only return the number of tracks visible in MCP; false, count all tracks, incl. invisible


    ^ Reaper version 5.62CSurf_ResetAllCachedVolPanStates

    C: void CSurf_ResetAllCachedVolPanStates()
    EEL2: CSurf_ResetAllCachedVolPanStates()
    Lua: reaper.CSurf_ResetAllCachedVolPanStates()
    Python: RPR_CSurf_ResetAllCachedVolPanStates()

    Resets all cached vol-pan-states.


    ^ Reaper version 5.62ClearAllRecArmed

    C: void ClearAllRecArmed()
    EEL2: ClearAllRecArmed()
    Lua: reaper.ClearAllRecArmed()
    Python: RPR_ClearAllRecArmed()

    Clears all armed states of all tracks.


    ^ Reaper version 5.62CountSelectedTracks

    C: int CountSelectedTracks(ReaProject* proj)
    EEL2: int CountSelectedTracks(ReaProject proj)
    Lua: integer count_sel_tracks = reaper.CountSelectedTracks(ReaProject proj)
    Python: Int retval = RPR_CountSelectedTracks(ReaProject proj)

    Count the number of selected tracks in the project.
    This function ignores the master track, see CountSelectedTracks2 if you need master-track as well.

    Returnvalues:
    integer count_sel_tracks
    the number of selected tracks in the project

    Parameters:
    ReaProject proj
    the project in which to count the selected tracks; 0 for current project.

    see also:
  • CountSelectedTracks2 - to count selected tracks including the master track


  • ^ Reaper version 5.62CountSelectedTracks2

    C: int CountSelectedTracks2(ReaProject* proj, bool wantmaster)
    EEL2: int CountSelectedTracks2(ReaProject proj, bool wantmaster)
    Lua: integer count_sel_tracks = reaper.CountSelectedTracks2(ReaProject proj, boolean wantmaster)
    Python: Int retval = RPR_CountSelectedTracks2(ReaProject proj, Boolean wantmaster)

    Count the number of selected tracks in the project.
    if you set wantmaster to true, it will include the master track as well.

    Returnvalues:
    integer count_sel_tracks
    the number of selected tracks in your project

    Parameters:
    ReaProject proj
    the number of the project in which to count the selected tracks; 0 for current project.
    boolean wantmaster
    true, if you want to count the master-track as well; false, if you don't want to count it


    ^ Reaper version 5.62CountTCPFXParms

    C: int CountTCPFXParms(ReaProject* project, MediaTrack* track)
    EEL2: int CountTCPFXParms(ReaProject project, MediaTrack track)
    Lua: integer count_params = reaper.CountTCPFXParms(ReaProject project, MediaTrack track)
    Python: Int retval = RPR_CountTCPFXParms(ReaProject project, MediaTrack track)

    Count the number of FX parameter knobs displayed on the track control panel.

    Returnvalues:
    integer count_params
    the number of FX-parameter-knobs

    Parameters:
    ReaProject project
    the project, in which to count the knobs
    MediaTrack track
    the track of which to count the knobs


    ^ Reaper version 6.20CountTracks

    C: int CountTracks(ReaProject* projOptional)
    EEL2: int CountTracks(ReaProject proj)
    Lua: integer count_tracks = reaper.CountTracks(ReaProject proj)
    Python: Int retval = RPR_CountTracks(ReaProject projOptional)

    count the number of tracks in the project (proj=0 for active project)

    Returnvalues:
    integer count_tracks
    the number of tracks in the project, excluding the master-track.

    Parameters:
    ReaProject proj
    the project in which to count the tracks; 0 for the current project.


    ^ Reaper version 5.62DeleteTrack

    C: void DeleteTrack(MediaTrack* tr)
    EEL2: DeleteTrack(MediaTrack tr)
    Lua: reaper.DeleteTrack(MediaTrack tr)
    Python: RPR_DeleteTrack(MediaTrack tr)

    deletes a track

    Parameters:
    MediaTrack tr
    the MediaTrack to be deleted


    ^ Reaper version 5.62GetLastTouchedTrack

    C: MediaTrack* GetLastTouchedTrack()
    EEL2: MediaTrack GetLastTouchedTrack()
    Lua: MediaTrack tr = reaper.GetLastTouchedTrack()
    Python: MediaTrack tr = RPR_GetLastTouchedTrack()

    Gets the MediaTrack, that has been last touched.

    Returnvalues:
    MediaTrack tr
    the last touched MediaTrack as an object


    ^ Reaper version 5.62GetMasterTrack

    C: MediaTrack* GetMasterTrack(ReaProject* proj)
    EEL2: MediaTrack GetMasterTrack(ReaProject proj)
    Lua: MediaTrack track = reaper.GetMasterTrack(ReaProject proj)
    Python: MediaTrack track = RPR_GetMasterTrack(ReaProject proj)

    Get a MediaTrack-object of the MasterTrack.

    Returnvalues:
    MediaTrack track
    the MediaTrack-object of the MasterTrack

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.


    ^ Reaper version 5.62GetNumTracks

    C: int GetNumTracks()
    EEL2: int GetNumTracks()
    Lua: integer numtracks = reaper.GetNumTracks()
    Python: Int retval = RPR_GetNumTracks()

    Get the number of tracks. Excluding the master-track.

    Returnvalues:
    integer numtracks
    the number of tracks in the current project.


    ^ Reaper version 5.62GetParentTrack

    C: MediaTrack* GetParentTrack(MediaTrack* track)
    EEL2: MediaTrack GetParentTrack(MediaTrack track)
    Lua: MediaTrack parenttrack = reaper.GetParentTrack(MediaTrack track)
    Python: MediaTrack parenttrack = RPR_GetParentTrack(MediaTrack track)

    Get the parent MediaTrack, if a MediaTrack is a track of a foldered track.

    Returnvalues:
    MediaTrack parenttrack
    the returned parent MediaTrack of a foldered MediaTrack

    Parameters:
    MediaTrack track
    the MediaTrack in a folder, whose parent MediaTrack you want


    ^ Reaper version 5.62GetSelectedTrack

    C: MediaTrack* GetSelectedTrack(ReaProject* proj, int seltrackidx)
    EEL2: MediaTrack GetSelectedTrack(ReaProject proj, int seltrackidx)
    Lua: MediaTrack sel_tr = reaper.GetSelectedTrack(ReaProject proj, integer seltrackidx)
    Python: MediaTrack sel_tr = RPR_GetSelectedTrack(ReaProject proj, Int seltrackidx)

    Get a selected track from a project by selected track count (zero-based).
    This function ignores the master track, see GetSelectedTrack2 and CountSelectedTracks.

    Returnvalues:
    MediaTrack sel_tr
    the requested, selected MediaTrack

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer seltrackidx
    the idx of within the selected tracks, zero based, as multiple tracks can be selected by the user.

    see also:
  • GetSelectedTrack - gets the selected tracks, including master track
  • GetSelectedTrack2 - gets the selected tracks, including master track
  • CountSelectedTracks - returns the number of selected tracks


  • ^ Reaper version 5.62GetSelectedTrack2

    C: MediaTrack* GetSelectedTrack2(ReaProject* proj, int seltrackidx, bool wantmaster)
    EEL2: MediaTrack GetSelectedTrack2(ReaProject proj, int seltrackidx, bool wantmaster)
    Lua: MediaTrack sel_tr = reaper.GetSelectedTrack2(ReaProject proj, integer seltrackidx, boolean wantmaster)
    Python: MediaTrack sel_tr = RPR_GetSelectedTrack2(ReaProject proj, Int seltrackidx, Boolean wantmaster)

    Get a selected track from a project (proj=0 for active project) by selected track count (zero-based).

    Returnvalues:
    MediaTrack sel_tr
    the requested, selected MediaTrack

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer seltrackidx
    the idx of within the selected tracks, zero based, as multiple tracks can be selected by the user.
    boolean wantmaster
    true, seltrackidx=0 is the master track, if selected; false, seltrackidx=0 is the first selected normal track


    ^ Reaper version 5.62GetTrack

    C: MediaTrack* GetTrack(ReaProject* proj, int trackidx)
    EEL2: MediaTrack GetTrack(ReaProject proj, int trackidx)
    Lua: MediaTrack tr = reaper.GetTrack(ReaProject proj, integer trackidx)
    Python: MediaTrack tr = RPR_GetTrack(ReaProject proj, Int trackidx)

    get a track from a project by track count (zero-based) (proj=0 for active project)

    Returnvalues:
    MediaTrack tr
    the requested MediaTrack as an object

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    integer trackidx
    the tracknumber; 0 for the first track, 1 for the second track, etc.

    Code-Examples:
    Get a track - gets the first track and shows its current trackname and volume(Mespotine)
    Toggle track-selection - gets each individual track and toggles its selection-state(Mespotine)

    see also:
  • GetTrackFromPoint - gets the track located at a specific screen-coordinate
  • GetMasterTrack - gets the master track
  • GetSelectedTrack - gets a selected track


  • ^ Reaper version 5.975GetTrackFromPoint

    C: MediaTrack* GetTrackFromPoint(int screen_x, int screen_y, int* infoOutOptional)
    EEL2: MediaTrack GetTrackFromPoint(int screen_x, int screen_y, optional int &info)
    Lua: MediaTrack retval, optional integer info = reaper.GetTrackFromPoint(integer screen_x, integer screen_y)
    Python: (MediaTrack retval, Int screen_x, Int screen_y, Int infoOutOptional) = RPR_GetTrackFromPoint(screen_x, screen_y, infoOutOptional)

    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.

    Note: You can not get the track at screen-coordinates, where it is hidden by other windows.

    See GetThingFromPoint

    Returnvalues:
    MediaTrack retval
    the MediaTrack at position; if the position is above a window associated with the track, this holds the track, where retval info will hold additional information
    optional integer info
    additional information, if the position is above a windows associated with a track
    1, if it is likely an envelope
    2, if it is likely a track FX

    Parameters:
    integer screen_x
    the x-position in pixels, from which you want to get the underlying track
    integer screen_y
    the y-position in pixels, from which you want to get the underlying track

    see also:
  • GetThingFromPoint - returns, which element can be found at a certain coordinate


  • ^ Reaper version 5.62GetTrackNumMediaItems

    C: int GetTrackNumMediaItems(MediaTrack* tr)
    EEL2: int GetTrackNumMediaItems(MediaTrack tr)
    Lua: integer num_media_items = reaper.GetTrackNumMediaItems(MediaTrack tr)
    Python: Int retval = RPR_GetTrackNumMediaItems(MediaTrack tr)

    Get the number of MediaItems of a MediaTrack

    Returnvalues:
    integer num_media_items
    the number of MediaItems in the MediaTrack

    Parameters:
    MediaTrack tr
    the MediaTrack, whose number of MediaItems you want to count


    ^ Reaper version 5.62InsertTrackAtIndex

    C: void InsertTrackAtIndex(int idx, bool wantDefaults)
    EEL2: InsertTrackAtIndex(int idx, bool wantDefaults)
    Lua: reaper.InsertTrackAtIndex(integer idx, boolean wantDefaults)
    Python: RPR_InsertTrackAtIndex(Int idx, Boolean wantDefaults)

    inserts a track at idx,of course this will be clamped to 0..GetNumTracks().

    Parameters:
    integer idx
    the index, in which to insert the track; 0, insert before the first track.
    boolean wantDefaults
    true, default envelopes/FX; false, no enabled FX/envelopes

    see also:
  • GetNumTracks - gets the number of tracks


  • ^ Reaper version 5.62MuteAllTracks

    C: void MuteAllTracks(bool mute)
    EEL2: MuteAllTracks(bool mute)
    Lua: reaper.MuteAllTracks(boolean mute)
    Python: RPR_MuteAllTracks(Boolean mute)

    Mutes all tracks

    Parameters:
    boolean mute
    true, mutes all tracks; false, unmutes all tracks


    ^ Reaper version 5.90ReorderSelectedTracks

    C: bool ReorderSelectedTracks(int beforeTrackIdx, int makePrevFolder)
    EEL2: bool ReorderSelectedTracks(int beforeTrackIdx, int makePrevFolder)
    Lua: boolean retval = reaper.ReorderSelectedTracks(integer beforeTrackIdx, integer makePrevFolder)
    Python: Boolean retval = RPR_ReorderSelectedTracks(Int beforeTrackIdx, Int makePrevFolder)

    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

    Returnvalues:
    boolean retval
    true, if it was successful; false, if not(e.g. no tracks were selected)

    Parameters:
    integer beforeTrackIdx
    the number of track, before which you want to move the selected tracks; zero-based(0 for track 1, 1 for track 2, etc)
    integer makePrevFolder
    decides, whether the track before the moved tracks(beforeTrackIdx-1) shall be a folder-track. Does only
    apply, when beforeTrackIdx>0(a track above the moved tracks exists).
    0, don't make track beforeTrackIdx-1 a folder track;
    1, make track beforeTrackIdx-1 a folder track
    2, if track beforeTrackIdx-1 is the last track in folder, extend the folder(make the last moved track the last track in folder.


    ^ Reaper version 5.62SoloAllTracks

    C: void SoloAllTracks(int solo)
    EEL2: SoloAllTracks(int solo)
    Lua: reaper.SoloAllTracks(integer solo)
    Python: RPR_SoloAllTracks(Int solo)

    Set solo-state for all tracks.

    Parameters:
    integer solo
    the new solo state for all tracks
    0, solo off
    1, solo, ignore routing
    2, solo in place


    ^ Reaper version 6.35Track_GetPeakHoldDB

    C: double Track_GetPeakHoldDB(MediaTrack* track, int channel, bool clear)
    EEL2: double Track_GetPeakHoldDB(MediaTrack track, int channel, bool clear)
    Lua: number retval = reaper.Track_GetPeakHoldDB(MediaTrack track, integer channel, boolean clear)
    Python: Float retval = RPR_Track_GetPeakHoldDB(MediaTrack track, Int channel, Boolean clear)

    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.

    Returnvalues:
    number retval

    Parameters:
    MediaTrack track
    integer channel
    boolean clear


    ^ Reaper version 6.35Track_GetPeakInfo

    C: double Track_GetPeakInfo(MediaTrack* track, int channel)
    EEL2: double Track_GetPeakInfo(MediaTrack track, int channel)
    Lua: number retval = reaper.Track_GetPeakInfo(MediaTrack track, integer channel)
    Python: Float retval = RPR_Track_GetPeakInfo(MediaTrack track, Int channel)

    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.

    Returnvalues:
    number retval

    Parameters:
    MediaTrack track
    integer channel


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaTrackSendInfo_Envelope

    C: TrackEnvelope* BR_GetMediaTrackSendInfo_Envelope(MediaTrack* track, int category, int sendidx, int envelopeType)
    EEL2: TrackEnvelope extension_api("BR_GetMediaTrackSendInfo_Envelope", MediaTrack track, int category, int sendidx, int envelopeType)
    Lua: TrackEnvelope env = reaper.BR_GetMediaTrackSendInfo_Envelope(MediaTrack track, integer category, integer sendidx, integer envelopeType)
    Python: TrackEnvelope env = BR_GetMediaTrackSendInfo_Envelope(MediaTrack track, Int category, Int sendidx, Int envelopeType)

    [BR] Get track envelope for send/receive/hardware output.

    category is <0 for receives, 0=sends, >0 for hardware outputs sendidx is zero-based (see GetTrackNumSends to count track sends/receives/hardware outputs) envelopeType determines which envelope is returned (0=volume, 1=pan, 2=mute)

    Note: To get or set other send attributes, see BR_GetSetTrackSendInfo and BR_GetMediaTrackSendInfo_Track.


    Returnvalues:
    TrackEnvelope env

    Parameters:
    MediaTrack track
    integer category
    integer sendidx
    integer envelopeType


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaTrackSendInfo_Track

    C: MediaTrack* BR_GetMediaTrackSendInfo_Track(MediaTrack* track, int category, int sendidx, int trackType)
    EEL2: MediaTrack extension_api("BR_GetMediaTrackSendInfo_Track", MediaTrack track, int category, int sendidx, int trackType)
    Lua: MediaTrack tr = reaper.BR_GetMediaTrackSendInfo_Track(MediaTrack track, integer category, integer sendidx, integer trackType)
    Python: MediaTrack tr = BR_GetMediaTrackSendInfo_Track(MediaTrack track, Int category, Int sendidx, Int trackType)

    [BR] Get source or destination media track for send/receive.

    category is <0 for receives, 0=sends sendidx is zero-based (see GetTrackNumSends to count track sends/receives) trackType determines which track is returned (0=source track, 1=destination track)

    Note: To get or set other send attributes, see BR_GetSetTrackSendInfo and BR_GetMediaTrackSendInfo_Envelope.


    Returnvalues:
    MediaTrack tr

    Parameters:
    MediaTrack track
    integer category
    integer sendidx
    integer trackType


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetSetTrackSendInfo

    C: double BR_GetSetTrackSendInfo(MediaTrack* track, int category, int sendidx, const char* parmname, bool setNewValue, double newValue)
    EEL2: double extension_api("BR_GetSetTrackSendInfo", MediaTrack track, int category, int sendidx, "parmname", bool setNewValue, newValue)
    Lua: number value = reaper.BR_GetSetTrackSendInfo(MediaTrack track, integer category, integer sendidx, string parmname, boolean setNewValue, number newValue)
    Python: Float retval = BR_GetSetTrackSendInfo(MediaTrack track, Int category, Int sendidx, String parmname, Boolean setNewValue, Float newValue)

    [BR] Get or set send attributes.

    category is <0 for receives, 0=sends, >0 for hardware outputs
    sendidx is zero-based (see GetTrackNumSends to count track sends/receives/hardware outputs)
    To set attribute, pass setNewValue as true

    List of possible parameters:

       B_MUTE : send mute state (1.0 if muted, otherwise 0.0)
       B_PHASE : send phase state (1.0 if phase is inverted, otherwise 0.0)
       B_MONO : send mono state (1.0 if send is set to mono, otherwise 0.0)
       D_VOL : send volume (1.0=+0dB etc...)
       D_PAN : send pan (-1.0=100%L, 0=center, 1.0=100%R)
       D_PANLAW : send pan law (1.0=+0.0db, 0.5=-6dB, -1.0=project default etc...)
       I_SENDMODE : send mode (0=post-fader, 1=pre-fx, 2=post-fx(deprecated), 3=post-fx)
       I_SRCCHAN : audio source starting channel index or -1 if audio send is disabled (&1024=mono...note that in that case, when reading index, you should do (index XOR 1024) to get starting channel index)
       I_DSTCHAN : audio destination starting channel index (&1024=mono (and in case of hardware output &512=rearoute)...note that in that case, when reading index, you should do (index XOR (1024 OR 512)) to get starting channel index)
       I_MIDI_SRCCHAN : source MIDI channel, -1 if MIDI send is disabled (0=all, 1-16)
       I_MIDI_DSTCHAN : destination MIDI channel, -1 if MIDI send is disabled (0=original, 1-16)
       I_MIDI_SRCBUS : source MIDI bus, -1 if MIDI send is disabled (0=all, otherwise bus index)
       I_MIDI_DSTBUS : receive MIDI bus, -1 if MIDI send is disabled (0=all, otherwise bus index)
       I_MIDI_LINK_VOLPAN : link volume/pan controls to MIDI

    Note: To get or set other send attributes, see [BR\_GetMediaTrackSendInfo\_Envelope](#BR_GetMediaTrackSendInfo_Envelope) and [BR\_GetMediaTrackSendInfo\_Track](#BR_GetMediaTrackSendInfo_Track).

    Returnvalues:
    number value

    Parameters:
    MediaTrack track
    integer category
    integer sendidx
    string parmname
    boolean setNewValue
    number newValue

    see also:
  • GetTrackNumSends - counts the track sends/receives/hardware outputs


  • ^ Reaper version 5.62CSurf_OnRecvPanChange

    C: double CSurf_OnRecvPanChange(MediaTrack* trackid, int recv_index, double pan, bool relative)
    EEL2: double CSurf_OnRecvPanChange(MediaTrack trackid, int recv_index, pan, bool relative)
    Lua: number new_recv_pan_val = reaper.CSurf_OnRecvPanChange(MediaTrack trackid, integer recv_index, number pan, boolean relative)
    Python: Float retval = RPR_CSurf_OnRecvPanChange(MediaTrack trackid, Int recv_index, Float pan, Boolean relative)

    Sets/alters a pan-value for a received-track. Will also change pan in the accompanying send-track!

    Returnvalues:
    number new_recv_pan_val
    the new receive-pan-value

    Parameters:
    MediaTrack trackid
    the MediaTrack-object whose receive-pan you want to change
    integer recv_index
    the receive to be changed. 0 for the first receive, 1 for the second, etc
    number pan
    the new pan value; -1, full left; 1, full right; 0, center
    boolean relative
    false, set pan to new value; true, alter pan by new value


    ^ Reaper version 5.62CSurf_OnRecvVolumeChange

    C: double CSurf_OnRecvVolumeChange(MediaTrack* trackid, int recv_index, double volume, bool relative)
    EEL2: double CSurf_OnRecvVolumeChange(MediaTrack trackid, int recv_index, volume, bool relative)
    Lua: number new_recv_pan_val = reaper.CSurf_OnRecvVolumeChange(MediaTrack trackid, integer recv_index, number volume, boolean relative)
    Python: Float retval = RPR_CSurf_OnRecvVolumeChange(MediaTrack trackid, Int recv_index, Float volume, Boolean relative)

    Sets/alters the volume-value of a received track. Will also change volume in the accompanying send-track!

    Note: You can't(!) use SLIDER2DB or DB2SLIDER for getting the volume-values, you want to set here! Use mkvolstr instead.

    Returnvalues:
    number new_recv_pan_val
    the new receive-volume-value

    Parameters:
    MediaTrack trackid
    the MediaTrack-object whose receive-pan you want to change
    integer recv_index
    the receive to be changed. 0 for the first receive, 1 for the second, etc
    number volume
    the volume-level of the receive; 0, -inf; 1, 0dB; 4, ca +12 db; higher values are possible, though fader will not reflect them. but higher values will still be applied.
    boolean relative
    false, set volume to new value; true, alter volume by new value

    see also:
  • mkvolstr - converts the volume-level for this function


  • ^ Reaper version 5.62CSurf_OnSendPanChange

    C: double CSurf_OnSendPanChange(MediaTrack* trackid, int send_index, double pan, bool relative)
    EEL2: double CSurf_OnSendPanChange(MediaTrack trackid, int send_index, pan, bool relative)
    Lua: number pan_value = reaper.CSurf_OnSendPanChange(MediaTrack trackid, integer send_index, number pan, boolean relative)
    Python: Float retval = RPR_CSurf_OnSendPanChange(MediaTrack trackid, Int send_index, Float pan, Boolean relative)

    Sets/alters the pan-volume of a send-track. Will also change the volume of the accompanying receive-track!

    Returnvalues:
    number pan_value
    the new pan-value

    Parameters:
    MediaTrack trackid
    the MediaTrackObject, whose pan-value you want to change
    integer send_index
    the index-number of the send-track. 0 for the first, 2 for the second, etc
    number pan
    the pan value; -1 for hard left; 1 for hard right; 0 for center
    boolean relative
    false, set pan to new value; true, alter pan by new value


    ^ Reaper version 5.62CSurf_OnSendVolumeChange

    C: double CSurf_OnSendVolumeChange(MediaTrack* trackid, int send_index, double volume, bool relative)
    EEL2: double CSurf_OnSendVolumeChange(MediaTrack trackid, int send_index, volume, bool relative)
    Lua: number volume_value = reaper.CSurf_OnSendVolumeChange(MediaTrack trackid, integer send_index, number volume, boolean relative)
    Python: Float retval = RPR_CSurf_OnSendVolumeChange(MediaTrack trackid, Int send_index, Float volume, Boolean relative)

    Sets/alters the volume-value of a send-track. Will also alter the volume of the accompanying receive-track.

    Note: You can't(!) use SLIDER2DB or DB2SLIDER for getting the volume-values, you want to set here!

    Returnvalues:
    number volume_value
    the new volume-value

    Parameters:
    MediaTrack trackid
    the MediaTrackObject, whose volume-value you want to change
    integer send_index
    the index-number of the send-track. 0 for the first, 2 for the second, etc
    number volume
    the volume-level of the receive; 0, -inf; 1, 0dB; 4, ca +12 db;
    higher values are possible, though fader will not reflect them. but higher values will still be applied.
    boolean relative
    false, set volume to new value; true, alter volume by new value


    ^ Reaper version 5.62CreateTrackSend

    C: int CreateTrackSend(MediaTrack* tr, MediaTrack* desttrInOptional)
    EEL2: int CreateTrackSend(MediaTrack tr, MediaTrack desttrIn)
    Lua: integer retval = reaper.CreateTrackSend(MediaTrack tr, MediaTrack desttrIn)
    Python: Int retval = RPR_CreateTrackSend(MediaTrack tr, MediaTrack desttrInOptional)

    Create a send/receive (desttrInOptional!=NULL), or a hardware output (desttrInOptional==NULL) with default properties, return >=0 on success (== new send/receive index).

    For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

    Returnvalues:
    integer retval
    the id of the new HWOut or Send created. HWOut and Send have their own individual index-numbering.

    Parameters:
    MediaTrack tr
    the MediaTrack in which to create the send/hwout
    MediaTrack desttrIn
    destination track input;
    a MediaTrack-object, creates a new send to tr from MediaTrack-object;
    nil(or no MediaTrack-object), creates a new hardware-output

    see also:
  • GetTrackNumSends - get number of send of a track
  • GetSetTrackSendInfo - gets and sets attributes for a track-send
  • GetSetTrackSendInfo_String - gets sets additional string-attributes for metadata of track-sends
  • GetTrackSendInfo_Value - gets attributes of a track-send
  • RemoveTrackSend - removes a track-send
  • SetTrackSendInfo_Value - sets attributes of a track-send


  • ^ Reaper version 5.975GetSetTrackSendInfo_String

    C: bool GetSetTrackSendInfo_String(MediaTrack* tr, int category, int sendidx, const char* parmname, char* stringNeedBig, bool setNewValue)
    EEL2: bool GetSetTrackSendInfo_String(MediaTrack tr, int category, int sendidx, "parmname", #stringNeedBig, bool setNewValue)
    Lua: boolean retval, string stringNeedBig = reaper.GetSetTrackSendInfo_String(MediaTrack tr, integer category, integer sendidx, string parmname, string stringNeedBig, boolean setNewValue)
    Python: (Boolean retval, MediaTrack tr, Int category, Int sendidx, String parmname, String stringNeedBig, Boolean setNewValue) = RPR_GetSetTrackSendInfo_String(tr, category, sendidx, parmname, stringNeedBig, setNewValue)

    Gets/sets a send attribute string:
        P_EXT:xyz : char * : extension-specific persistent data

    This is a little like extstates for routings, with xyz being the key and stringNeedBig being the value.

    For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

    Returnvalues:
    boolean retval
    true, getting/setting was successful; false, getting/setting was unsuccessful
    string stringNeedBig
    the currently stored value

    Parameters:
    MediaTrack tr
    the MediaTrack, whose routings you want to give additional attributes
    integer category
    category is <0 for receives, 0=sends, >0 for hardware outputs
    integer sendidx
    the index of the send/receive/hwout
    string parmname
    the parametername
    "P_EXT:attribute_name", where attribute_name can be any name. You can have multiple ones, just give them different attribute-names.
    string stringNeedBig
    the value of the attribute
    boolean setNewValue
    true, set a new value; false, get the currently saved value

    see also:
  • CreateTrackSend - creates a track-send
  • GetTrackNumSends - get number of send of a track
  • GetSetTrackSendInfo - gets and sets attributes for a track-send
  • GetTrackSendInfo_Value - gets attributes of a track-send
  • RemoveTrackSend - removes a track-send
  • SetTrackSendInfo_Value - sets attributes of a track-send


  • ^ Reaper version 5.62GetTrackNumSends

    C: int GetTrackNumSends(MediaTrack* tr, int category)
    EEL2: int GetTrackNumSends(MediaTrack tr, int category)
    Lua: integer count_sends = reaper.GetTrackNumSends(MediaTrack tr, integer category)
    Python: Int retval = RPR_GetTrackNumSends(MediaTrack tr, Int category)

    returns number of sends/receives/hardware outputs

    For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

    Returnvalues:
    integer count_sends
    the number of sends/receives/hardware outputs

    Parameters:
    MediaTrack tr
    the MediaTrack, whose number of sends/receives/hardware outputs you want to know
    integer category
    <0 for receives; 0=sends; >0 for hardware outputs

    see also:
  • CreateTrackSend - creates a track-send
  • GetTrackNumSends - get number of send of a track
  • GetSetTrackSendInfo - gets and sets attributes for a track-send
  • GetSetTrackSendInfo_String - gets sets additional string-attributes for metadata of track-sends
  • GetTrackSendInfo_Value - gets attributes of a track-send
  • RemoveTrackSend - removes a track-send
  • SetTrackSendInfo_Value - sets attributes of a track-send


  • ^ Reaper version 6.37GetTrackReceiveName

    C: bool GetTrackReceiveName(MediaTrack* track, int recv_index, char* bufOut, int receive_trackname_sz)
    EEL2: bool GetTrackReceiveName(MediaTrack track, int recv_index, #receive_trackname)
    Lua: boolean retval, string receive_trackname = reaper.GetTrackReceiveName(MediaTrack track, integer recv_index)
    Python: (Boolean retval, MediaTrack track, Int recv_index, String receive_trackname, Int receive_trackname_sz) = RPR_GetTrackReceiveName(track, recv_index, receive_trackname, receive_trackname_sz)

    Gets the name of a track, that MediaTrack is receiving.

    If the track has no name, the name will be something like "Track 2".

    See GetTrackSendName.

    Returnvalues:
    boolean retval
    true, receive is existing; false, receive is not existing
    string receive_trackname
    the name of the track, MediaTrack is receiving

    Parameters:
    MediaTrack track
    the MediaTrack, whose receive-trackname you want to get
    integer recv_index
    the index of the received track; 0-based

    see also:
  • GetTrackSendName - returns the name of a track, that MediaTrack is sending to
  • GetSetMediaTrackInfo_String - sets various track-attributes, including trackname


  • ^ Reaper version 5.62GetTrackReceiveUIMute

    C: bool GetTrackReceiveUIMute(MediaTrack* track, int recv_index, bool* muteOut)
    EEL2: bool GetTrackReceiveUIMute(MediaTrack track, int recv_index, bool &mute)
    Lua: boolean retval, boolean mute = reaper.GetTrackReceiveUIMute(MediaTrack track, integer recv_index)
    Python: (Boolean retval, MediaTrack track, Int recv_index, Boolean muteOut) = RPR_GetTrackReceiveUIMute(track, recv_index, muteOut)

    Returns the mute-state of a track, that MediaTrack is receiving.

    See GetTrackSendUIMute.

    Returnvalues:
    boolean retval
    true, receive exists; false, receive doesn't exist
    boolean mute
    true, receive is muted; false, receive is not muted

    Parameters:
    MediaTrack track
    the MediaTrack, whose receive-mutestate you want to get
    integer recv_index
    the index of the received track; 0-based

    see also:
  • GetTrackSendUIMute - returns the mute-state of a send-track


  • ^ Reaper version 5.62GetTrackReceiveUIVolPan

    C: bool GetTrackReceiveUIVolPan(MediaTrack* track, int recv_index, double* volumeOut, double* panOut)
    EEL2: bool GetTrackReceiveUIVolPan(MediaTrack track, int recv_index, &volume, &pan)
    Lua: boolean retval, number volume, number pan = reaper.GetTrackReceiveUIVolPan(MediaTrack track, integer recv_index)
    Python: (Boolean retval, MediaTrack track, Int recv_index, Float volumeOut, Float panOut) = RPR_GetTrackReceiveUIVolPan(track, recv_index, volumeOut, panOut)

    Returns the pan and volume-values of a track that MediaTrack is receiving.

    Note: convert the volumevalue to dB using in Lua: dB_volume = math.log(volume)*8.68588963806

    See GetTrackSendUIVolPan

    Returnvalues:
    MediaTrack track
    the MediaTrack, whose receive-mutestate you want to get
    number volume
    the volume as mkvol-value(see description for how to convert it to dB)
    number pan
    the pan-value; -1(L), 0(center), 1(R)

    Parameters:
    MediaTrack track
    the MediaTrack, whose receive-vol-pan-value you want to get
    integer recv_index
    the index of the received track; 0-based

    see also:
  • GetTrackSendUIVolPan - returns the volume and pan-values of a send-track


  • ^ Reaper version 6.30GetTrackSendInfo_Value

    C: double GetTrackSendInfo_Value(MediaTrack* tr, int category, int sendidx, const char* parmname)
    EEL2: double GetTrackSendInfo_Value(MediaTrack tr, int category, int sendidx, "parmname")
    Lua: number value = reaper.GetTrackSendInfo_Value(MediaTrack tr, integer category, integer sendidx, string parmname)
    Python: Float retval = RPR_GetTrackSendInfo_Value(MediaTrack tr, Int category, Int sendidx, String parmname)

    Get send/receive/hardware output numerical-value attributes.
    category is <0 for receives, 0=sends, >0 for hardware outputs
    parameter names:

      B_MUTE : bool *
      B_PHASE : bool * : true to flip phase
      B_MONO : bool *
      D_VOL : double * : 1.0 = +0dB etc
      D_PAN : double * : -1..+1
      D_PANLAW : double * : 1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc
      I_SENDMODE : int * : 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx
      I_AUTOMODE : int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)
      I_SRCCHAN : int * : -1 for no audio send. Low 10 bits specify channel offset, and higher bits specify channel count. (srcchan>>10) == 0 for stereo, 1 for mono, 2 for 4 channel, 3 for 6 channel, etc.
      I_DSTCHAN : int * : low 10 bits are destination index, &1024 set to mix to mono.
      I_MIDIFLAGS : int * : low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chanP_DESTTRACK : read only, returns MediaTrack *, destination track, only applies for sends/recvs
      P_DESTTRACK : MediaTrack * : destination track, only applies for sends/recvs (read-only)
      P_SRCTRACK : MediaTrack * : source track, only applies for sends/recvs (read-only)
      P_ENV:&envchunkname : TrackEnvelope * : call with :&VOLENV, :&PANENV, etc appended (read-only)

    For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

    Note: convert the D_VOL-volume to dB using in Lua: dB_volume = math.log(volume)*8.68588963806

    Returnvalues:
    number value
    the value of the parmname-attribute; see description for value-ranges

    Parameters:
    MediaTrack tr
    the MediaTrack, whose atributes of a send/receives/hwouts you want to get
    integer category
    <0 to index receives, 0, to index sends; >0, to index hardware-outs
    integer sendidx
    the index of the receive/send/hwout; 0-based
    string parmname
    the parameter-name(see description for more details)

    see also:
  • CreateTrackSend - creates a track-send
  • GetTrackNumSends - get number of send of a track
  • GetSetTrackSendInfo - gets and sets attributes for a track-send
  • GetSetTrackSendInfo_String - gets sets additional string-attributes for metadata of track-sends
  • RemoveTrackSend - removes a track-send
  • SetTrackSendInfo_Value - sets attributes of a track-send


  • ^ Reaper version 6.37GetTrackSendName

    C: bool GetTrackSendName(MediaTrack* track, int send_index, char* send_name, int send_name_sz)
    EEL2: bool GetTrackSendName(MediaTrack track, int send_index, #send_name)
    Lua: boolean retval, string send_name = reaper.GetTrackSendName(MediaTrack track, integer send_index)
    Python: (Boolean retval, MediaTrack track, Int send_index, String send_name, Int send_name_sz) = RPR_GetTrackSendName(track, send_index, send_name, send_name_sz)

    gets the name of a track, that MediaTrack is sending to
    send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends.

    If the send-track has no name, send_name can be something like "Track 2"

    See GetTrackReceiveName

    Returnvalues:
    boolean retval
    string send_name
    the name of the track to which you send

    Parameters:
    MediaTrack track
    the MediaTrack, whose track-send-name you want to get
    integer send_index
    the index of the track-send

    see also:
  • GetTrackReceiveName - returns, if audioaccessor has changed


  • ^ Reaper version 5.62GetTrackSendUIMute

    C: bool GetTrackSendUIMute(MediaTrack* track, int send_index, bool* muteOut)
    EEL2: bool GetTrackSendUIMute(MediaTrack track, int send_index, bool &mute)
    Lua: boolean retval, boolean mute = reaper.GetTrackSendUIMute(MediaTrack track, integer send_index)
    Python: (Boolean retval, MediaTrack track, Int send_index, Boolean muteOut) = RPR_GetTrackSendUIMute(track, send_index, muteOut)

    send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends.

    See GetTrackReceiveUIMute.

    Returnvalues:
    boolean retval
    boolean mute

    Parameters:
    MediaTrack track
    integer send_index

    see also:
  • GetTrackReceiveUIMute - returns the mute-state of a track-receive


  • ^ Reaper version 5.62GetTrackSendUIVolPan

    C: bool GetTrackSendUIVolPan(MediaTrack* track, int send_index, double* volumeOut, double* panOut)
    EEL2: bool GetTrackSendUIVolPan(MediaTrack track, int send_index, &volume, &pan)
    Lua: boolean retval, number volume, number pan = reaper.GetTrackSendUIVolPan(MediaTrack track, integer send_index)
    Python: (Boolean retval, MediaTrack track, Int send_index, Float volumeOut, Float panOut) = RPR_GetTrackSendUIVolPan(track, send_index, volumeOut, panOut)

    send_idx>=0 for hw outputs, >=nb_of_hw_outputs for sends.

    See GetTrackReceiveUIVolPan

    Note: convert the volumevalue to dB using in Lua: dB_volume = math.log(volume)*8.68588963806

    Returnvalues:
    boolean retval
    number volume
    number pan

    Parameters:
    MediaTrack track
    integer send_index

    see also:
  • GetTrackReceiveUIVolPan - get the vol-pan-states of a track receive


  • ^ Reaper version 5.62RemoveTrackSend

    C: bool RemoveTrackSend(MediaTrack* tr, int category, int sendidx)
    EEL2: bool RemoveTrackSend(MediaTrack tr, int category, int sendidx)
    Lua: boolean retval = reaper.RemoveTrackSend(MediaTrack tr, integer category, integer sendidx)
    Python: Boolean retval = RPR_RemoveTrackSend(MediaTrack tr, Int category, Int sendidx)

    Remove a send/receive/hardware output.

    For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

    Returnvalues:
    boolean retval
    true, removing worked; false, removing didn't work(e.g. does not exist)

    Parameters:
    MediaTrack tr
    the MediaTrack-object, in which you want to remove send/receive/hwouts
    integer category
    less than 0, receives; 0, sends; greater than 0, hardware outputs
    integer sendidx
    the idx of the send/receive/hwoutput to remove. 0, the first; 1 for the second, etc

    see also:
  • CreateTrackSend - creates a track-send
  • GetTrackNumSends - get number of send of a track
  • GetSetTrackSendInfo_String - gets sets additional string-attributes for metadata of track-sends
  • GetSetTrackSendInfo - gets and sets attributes for a track-send
  • GetTrackSendInfo_Value - gets attributes of a track-send
  • SetTrackSendInfo_Value - sets attributes of a track-send


  • ^ Reaper version 5.62 SWS version 2.9.7SNM_AddReceive

    C: bool SNM_AddReceive(MediaTrack* src, MediaTrack* dest, int type)
    EEL2: bool extension_api("SNM_AddReceive", MediaTrack src, MediaTrack dest, int type)
    Lua: boolean retval = reaper.SNM_AddReceive(MediaTrack src, MediaTrack dest, integer type)
    Python: Boolean retval = SNM_AddReceive(MediaTrack src, MediaTrack dest, Int type)

    [S&M] Deprecated, see CreateTrackSend (v5.15pre1+). Adds a receive. Returns false if nothing updated. type -1=Default type (user preferences), 0=Post-Fader (Post-Pan), 1=Pre-FX, 2=deprecated, 3=Pre-Fader (Post-FX). Note: obeys default sends preferences, supports frozen tracks, etc..


    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack src
    MediaTrack dest
    integer type


    ^ Reaper version 5.62 SWS version 2.9.7SNM_RemoveReceive

    C: bool SNM_RemoveReceive(MediaTrack* tr, int rcvidx)
    EEL2: bool extension_api("SNM_RemoveReceive", MediaTrack tr, int rcvidx)
    Lua: boolean retval = reaper.SNM_RemoveReceive(MediaTrack tr, integer rcvidx)
    Python: Boolean retval = SNM_RemoveReceive(MediaTrack tr, Int rcvidx)

    [S&M] Deprecated, see RemoveTrackSend (v5.15pre1+). Removes a receive. Returns false if nothing updated.


    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack tr
    integer rcvidx


    ^ Reaper version 5.62 SWS version 2.9.7SNM_RemoveReceivesFrom

    C: bool SNM_RemoveReceivesFrom(MediaTrack* tr, MediaTrack* srctr)
    EEL2: bool extension_api("SNM_RemoveReceivesFrom", MediaTrack tr, MediaTrack srctr)
    Lua: boolean retval = reaper.SNM_RemoveReceivesFrom(MediaTrack tr, MediaTrack srctr)
    Python: Boolean retval = SNM_RemoveReceivesFrom(MediaTrack tr, MediaTrack srctr)

    [S&M] Removes all receives from srctr. Returns false if nothing updated.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack tr
    MediaTrack srctr


    ^ Reaper version 5.62SetTrackSendInfo_Value

    C: bool SetTrackSendInfo_Value(MediaTrack* tr, int category, int sendidx, const char* parmname, double newvalue)
    EEL2: bool SetTrackSendInfo_Value(MediaTrack tr, int category, int sendidx, "parmname", newvalue)
    Lua: boolean retval = reaper.SetTrackSendInfo_Value(MediaTrack tr, integer category, integer sendidx, string parmname, number newvalue)
    Python: Boolean retval = RPR_SetTrackSendInfo_Value(MediaTrack tr, Int category, Int sendidx, String parmname, Float newvalue)

    Set send/receive/hardware output numerical-value attributes, return true on success.
    category is <0 for receives, 0=sends, >0 for hardware outputs
    parameter names:

       B_MUTE : bool *
       B_PHASE : bool * : true to flip phase
       B_MONO : bool *
       D_VOL : double * : 1.0 = +0dB etc
       D_PAN : double * : -1..+1
       D_PANLAW : double * : 1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc
       I_SENDMODE : int * : 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx
       I_AUTOMODE : int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)
       I_SRCCHAN : int * : -1 for no audio send. Low 10 bits specify channel offset, and higher bits specify channel count. (srcchan>>10) == 0 for stereo, 1 for mono, 2 for 4 channel, 3 for 6 channel, etc.
       I_DSTCHAN : int * : low 10 bits are destination index, &1024 set to mix to mono.
       I_MIDIFLAGS : int * : low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chan

    For ReaRoute-users: the outputs are hardware outputs, but with 512 added to the destination channel index (512 is the first rearoute channel, 513 the second, etc).

    Note: convert a dB_volume-value to the value expected by D_VOL in Lua, using: math.exp(db_value/8.68588963806)

    Returnvalues:
    boolean retval
    true, setting value was successful; false, setting value was unsuccessful

    Parameters:
    MediaTrack tr
    the track, whose routing-attribute you want to set
    integer category
    the category of the routing to set; <0 for receives, 0=sends, >0 for hardware outputs
    integer sendidx
    the index of the routing-entry that you want to set
    string parmname
    the name of the parameter, that you want to set
    number newvalue
    the new value to set

    see also:
  • CreateTrackSend - creates a track-send
  • GetTrackNumSends - get number of send of a track
  • GetSetTrackSendInfo_String - gets sets additional string-attributes for metadata of track-sends
  • GetSetTrackSendInfo - gets and sets attributes for a track-send
  • GetTrackSendInfo_Value - gets attributes of a track-send
  • RemoveTrackSend - removes a track-send


  • ^ Reaper version 5.62SetTrackSendUIPan

    C: bool SetTrackSendUIPan(MediaTrack* track, int send_idx, double pan, int isend)
    EEL2: bool SetTrackSendUIPan(MediaTrack track, int send_idx, pan, int isend)
    Lua: boolean retval = reaper.SetTrackSendUIPan(MediaTrack track, integer send_idx, number pan, integer isend)
    Python: Boolean retval = RPR_SetTrackSendUIPan(MediaTrack track, Int send_idx, Float pan, Int isend)

    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.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer send_idx
    number pan
    integer isend


    ^ Reaper version 5.62SetTrackSendUIVol

    C: bool SetTrackSendUIVol(MediaTrack* track, int send_idx, double vol, int isend)
    EEL2: bool SetTrackSendUIVol(MediaTrack track, int send_idx, vol, int isend)
    Lua: boolean retval = reaper.SetTrackSendUIVol(MediaTrack track, integer send_idx, number vol, integer isend)
    Python: Boolean retval = RPR_SetTrackSendUIVol(MediaTrack track, Int send_idx, Float vol, Int isend)

    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.

    Note: convert a dB_volume-value to the value expected by parameter vol in Lua, using: math.exp(db_value/8.68588963806)

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer send_idx
    number vol
    integer isend


    ^ Reaper version 5.62ToggleTrackSendUIMute

    C: bool ToggleTrackSendUIMute(MediaTrack* track, int send_idx)
    EEL2: bool ToggleTrackSendUIMute(MediaTrack track, int send_idx)
    Lua: boolean retval = reaper.ToggleTrackSendUIMute(MediaTrack track, integer send_idx)
    Python: Boolean retval = RPR_ToggleTrackSendUIMute(MediaTrack track, Int send_idx)

    send_idx<0 for receives, >=0 for hw ouputs, >=nb_of_hw_ouputs for sends.

    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack track
    integer send_idx


    ^ Reaper version 6.71SetTrackUIInputMonitor

    C: int retval = SetTrackUIInputMonitor(MediaTrack* track, int monitor, int igngroupflags)
    EEL2: int retval = SetTrackUIInputMonitor(MediaTrack track, int monitor, int igngroupflags)
    Lua: integer retval = reaper.SetTrackUIInputMonitor(MediaTrack track, integer monitor, integer igngroupflags)
    Python: Int retval = RPR_SetTrackUIInputMonitor(MediaTrack track, Int monitor, Int igngroupflags)

    monitor: 0=no monitoring, 1=monitoring, 2=auto-monitoring.

    returns new value or -1 if error.

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    integer retval
    -1, in case of an error; else the monitoring state

    Parameters:
    MediaTrack track
    the track, whose monitoring you want to set
    integer monitor
    the monitoring mode
    0, no monitoring
    1, monitoring
    2, auto-monitoring
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 6.71SetTrackUIMute

    C: int retval = SetTrackUIMute(MediaTrack* track, int mute, int igngroupflags)
    EEL2: int retval = SetTrackUIMute(MediaTrack track, int mute, int igngroupflags)
    Lua: integer retval = reaper.SetTrackUIMute(MediaTrack track, integer mute, integer igngroupflags)
    Python: Int retval = RPR_SetTrackUIMute(MediaTrack track, Int mute, Int igngroupflags)

    mute: <0 toggles, >0 sets mute, 0=unsets mute.

    returns new value or -1 if error.

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    integer retval
    the new mute-state; -1, in case of an error

    Parameters:
    MediaTrack track
    the track, whose mute-state you want to set
    integer monitor
    the mute-mode
    <0, toggles
    >0 sets mute
    0, unsets mute
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 6.71SetTrackUIPan

    C: double retval = SetTrackUIPan(MediaTrack* track, double pan, bool relative, bool done, int igngroupflags)
    EEL2: double retval = SetTrackUIPan(MediaTrack track, pan, bool relative, bool done, int igngroupflags)
    Lua: number retval = reaper.SetTrackUIPan(MediaTrack track, number pan, boolean relative, boolean done, integer igngroupflags)
    Python: Float retval = RPR_SetTrackUIPan(MediaTrack track, Float pan, Boolean relative, Boolean done, Int igngroupflags)

    sets pan of a certain track

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    number retval

    Parameters:
    MediaTrack track
    the track, whose panning you want to set
    number pan
    the pan-value; -1=-100%, -0.01=-1%, 0=center, 0.01=1%, 1=100%
    boolean relative
    true, change relative to the current value; false, set to absolute value
    boolean done
    false, allow touch controls; true, finish touch controls
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 6.71SetTrackUIPolarity

    C: int retval = SetTrackUIPolarity(MediaTrack* track, int polarity, int igngroupflags)
    EEL2: int retval = SetTrackUIPolarity(MediaTrack track, int polarity, int igngroupflags)
    Lua: integer retval = reaper.SetTrackUIPolarity(MediaTrack track, integer polarity, integer igngroupflags)
    Python: Int retval = RPR_SetTrackUIPolarity(MediaTrack track, Int polarity, Int igngroupflags)

    polarity (AKA phase): <0 toggles, 0=normal, >0=inverted.

    returns new value or -1 if error.

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    integer retval
    the new polarity state; -1, in case of an error

    Parameters:
    MediaTrack track
    the track, whose polarity-state you want to set
    integer polarity
    the polarity-mode
    <0, toggles
    >0 sets polarity
    0, unsets polarity
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 6.71SetTrackUIRecArm

    C: int retval = SetTrackUIRecArm(MediaTrack* track, int recarm, int igngroupflags)
    EEL2: int retval = SetTrackUIRecArm(MediaTrack track, int recarm, int igngroupflags)
    Lua: integer retval = reaper.SetTrackUIRecArm(MediaTrack track, integer recarm, integer igngroupflags)
    Python: Int retval = RPR_SetTrackUIRecArm(MediaTrack track, Int recarm, Int igngroupflags)

    recarm: <0 toggles, >0 sets recarm, 0=unsets recarm.

    returns new value or -1 if error.

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    integer retval
    the new recarm-state

    Parameters:
    MediaTrack track
    the track, whose recarm-state you want to set
    integer recarm
    the recarm-mode
    <0, toggles
    >0 sets recarm
    0, unsets recarm
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 6.71SetTrackUISolo

    C: int retval = SetTrackUISolo(MediaTrack* track, int solo, int igngroupflags)
    EEL2: int retval = SetTrackUISolo(MediaTrack track, int solo, int igngroupflags)
    Lua: integer retval = reaper.SetTrackUISolo(MediaTrack track, integer solo, integer igngroupflags)
    Python: Int retval = RPR_SetTrackUISolo(MediaTrack track, Int solo, Int igngroupflags)

    solo: <0 toggles, 1 sets solo (default mode), 0=unsets solo, 2 sets solo (non-SIP), 4 sets solo (SIP).

    returns new value or -1 if error.

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    integer retval
    the new solo-state

    Parameters:
    MediaTrack track
    the track, whose solo-state you want to set
    integer solo
    the solo-mode
    <0, toggles
    0, unsets mute
    1, sets mute
    2, sets solo(non-SIP)
    4, sets solo (SIP)
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 6.71SetTrackUIVolume

    C: double retval = SetTrackUIVolume(MediaTrack* track, double volume, bool relative, bool done, int igngroupflags)
    EEL2: double retval = SetTrackUIVolume(MediaTrack track, volume, bool relative, bool done, int igngroupflags)
    Lua: number retval = reaper.SetTrackUIVolume(MediaTrack track, number volume, boolean relative, boolean done, integer igngroupflags)
    Python: Float retval = RPR_SetTrackUIVolume(MediaTrack track, Float volume, Boolean relative, Boolean done, Int igngroupflags)

    sets the volume of a track

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    number retval
    the new volume

    Parameters:
    MediaTrack track
    the track, whose volume you want to set
    number volume
    the volume in dB
    boolean relative
    true, change relative to the current value; false, set to absolute value
    boolean done
    false, allow touch controls; true, finish touch controls
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 6.71SetTrackUIWidth

    C: double retval = SetTrackUIWidth(MediaTrack* track, double width, bool relative, bool done, int igngroupflags)
    EEL2: double retval = SetTrackUIWidth(MediaTrack track, width, bool relative, bool done, int igngroupflags)
    Lua: number retval = reaper.SetTrackUIWidth(MediaTrack track, number width, boolean relative, boolean done, integer igngroupflags)
    Python: Float retval = RPR_SetTrackUIWidth(MediaTrack track, Float width, Boolean relative, Boolean done, Int igngroupflags)

    sets the width of a track

    returns new value or -1 if error.

    igngroupflags: &1 to prevent track grouping, &2 to prevent selection ganging

    Returnvalues:
    number retval
    the new width of the track

    Parameters:
    MediaTrack track
    the track, whose width you want to set
    integer width
    the width-mode; -1=-100%, 0=mono; 1=100%
    boolean relative
    true, change relative to the current value; false, set to absolute value
    boolean done
    false, allow touch controls; true, finish touch controls
    integer igngroupflags
    &1 to prevent track grouping
    &2 to prevent selection ganging


    ^ Reaper version 5.62AnyTrackSolo

    C: bool AnyTrackSolo(ReaProject* proj)
    EEL2: bool AnyTrackSolo(ReaProject proj)
    Lua: boolean solostate = reaper.AnyTrackSolo(ReaProject proj)
    Python: Boolean retval = RPR_AnyTrackSolo(ReaProject proj)

    returns, whether any of the tracks is solo in Project proj

    Returnvalues:
    boolean solostate
    true if any track is solo; false if not. Covers all solo-states(solo in place, ignore routing, exclusive solo, solo defeat).

    Parameters:
    ReaProject proj
    the project to be checked for. 0 for current project.


    ^ Reaper version 5.62 SWS version 2.12.1.1BR_GetMediaTrackByGUID

    C: MediaTrack* BR_GetMediaTrackByGUID(ReaProject* proj, const char* guidStringIn)
    EEL2: MediaTrack extension_api("BR_GetMediaTrackByGUID", ReaProject proj, "guidStringIn")
    Lua: MediaTrack tr = reaper.BR_GetMediaTrackByGUID(ReaProject proj, string guidStringIn)
    Python: MediaTrack tr = BR_GetMediaTrackByGUID(ReaProject proj, String guidStringIn)

    [BR] Get media track from GUID string. Note that the GUID must be enclosed in braces {}. To get track's GUID as a string, see GetSetMediaTrackInfo_String.


    Returnvalues:
    MediaTrack tr
    the MediaTrack requested, as MediaTrack-object

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    string guidStringIn
    the guid of the track you want to request


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetMediaTrackFreezeCount

    C: int BR_GetMediaTrackFreezeCount(MediaTrack* track)
    EEL2: int extension_api("BR_GetMediaTrackFreezeCount", MediaTrack track)
    Lua: integer retval = reaper.BR_GetMediaTrackFreezeCount(MediaTrack track)
    Python: Int retval = BR_GetMediaTrackFreezeCount(MediaTrack track)

    [BR] Get media track freeze count (if track isn't frozen at all, returns 0).

    Returnvalues:
    integer retval

    Parameters:
    MediaTrack track


    ^ Reaper version 5.62 SWS version 2.12.1.1BR_GetMediaTrackGUID

    C: void BR_GetMediaTrackGUID(MediaTrack* track, char* guidStringOut, int guidStringOut_sz)
    EEL2: extension_api("BR_GetMediaTrackGUID", MediaTrack track, #guidString)
    Lua: string guidString = reaper.BR_GetMediaTrackGUID(MediaTrack track)
    Python: (MediaTrack track, String guidStringOut, Int guidStringOut_sz) = BR_GetMediaTrackGUID(track, guidStringOut, guidStringOut_sz)

    [BR] Deprecated, see GetSetMediaTrackInfo_String (v5.95+). Get media track GUID as a string (guidStringOut_sz should be at least 64). To get media track back from GUID string, see BR_GetMediaTrackByGUID.


    Returnvalues:
    string guidString
    the guid of the track

    Parameters:
    MediaTrack track
    the track, whose guid you want to get


    ^ Reaper version 5.62CSurf_GetTouchState

    C: bool CSurf_GetTouchState(MediaTrack* trackid, int isPan)
    EEL2: bool CSurf_GetTouchState(MediaTrack trackid, int isPan)
    Lua: boolean retval = reaper.CSurf_GetTouchState(MediaTrack trackid, integer isPan)
    Python: Boolean retval = RPR_CSurf_GetTouchState(MediaTrack trackid, Int isPan)



    Returnvalues:
    boolean retval

    Parameters:
    MediaTrack trackid
    integer isPan


    ^ Reaper version 5.62CSurf_OnFXChange

    C: bool CSurf_OnFXChange(MediaTrack* trackid, int en)
    EEL2: bool CSurf_OnFXChange(MediaTrack trackid, int en)
    Lua: boolean active_fxchain = reaper.CSurf_OnFXChange(MediaTrack trackid, integer en)
    Python: Boolean retval = RPR_CSurf_OnFXChange(MediaTrack trackid, Int en)

    Sets/toggles activation of FX-Chain.

    Returnvalues:
    boolean active_fxchain
    true, if FX-chain is activated; false, if FX-chain is deactivated

    Parameters:
    MediaTrack trackid
    the MediaTrack, whose FX-chain you want to de-/activate
    integer en
    activation state of FX-chain
      -1, toggle FX-chain on/off
       0, set FX-chain off
       1, set FX-chain on


    ^ Reaper version 5.62CSurf_OnInputMonitorChange

    C: int CSurf_OnInputMonitorChange(MediaTrack* trackid, int monitor)
    EEL2: int CSurf_OnInputMonitorChange(MediaTrack trackid, int monitor)
    Lua: integer inp_mon_state = reaper.CSurf_OnInputMonitorChange(MediaTrack trackid, integer monitor)
    Python: Int retval = RPR_CSurf_OnInputMonitorChange(MediaTrack trackid, Int monitor)

    sets rec-monitoring of a specific track.

    Returnvalues:
    integer inp_mon_state
    the new input-monitor-state (refer to parameter monitor for description)

    Parameters:
    MediaTrack trackid
    the MediaTrack, of which you want to toggle the monitor-button
    integer monitor
    monitor-input-state
      -1, monitor input on(tape auto style) (can be set with negative values, and 2 as well)
       0, monitor off (can be set with 3 and higher as well)
       1, monitor input on


    ^ Reaper version 5.62CSurf_OnInputMonitorChangeEx

    C: int CSurf_OnInputMonitorChangeEx(MediaTrack* trackid, int monitor, bool allowgang)
    EEL2: int CSurf_OnInputMonitorChangeEx(MediaTrack trackid, int monitor, bool allowgang)
    Lua: integer inp_mon_state = reaper.CSurf_OnInputMonitorChangeEx(MediaTrack trackid, integer monitor, boolean allowgang)
    Python: Int retval = RPR_CSurf_OnInputMonitorChangeEx(MediaTrack trackid, Int monitor, Boolean allowgang)

    Sets monitor-input-state. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

    Returnvalues:
    integer inp_mon_state
    the new input-monitor-state (refer to parameter monitor for description)

    Parameters:
    MediaTrack trackid
    the MediaTrack, whose monitor-input-state you want to set
    integer monitor
    monitor-input-state
      -1, monitor input on(tape auto style) (can be set with negative values, and 2 as well)
       0, monitor off (can be set with 3 and higher as well)
       1, monitor input on
    boolean allowgang
    true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid


    ^ Reaper version 5.62CSurf_OnMuteChange

    C: bool CSurf_OnMuteChange(MediaTrack* trackid, int mute)
    EEL2: bool CSurf_OnMuteChange(MediaTrack trackid, int mute)
    Lua: boolean mute_state = reaper.CSurf_OnMuteChange(MediaTrack trackid, integer mute)
    Python: Boolean retval = RPR_CSurf_OnMuteChange(MediaTrack trackid, Int mute)

    Sets mute state of a MediaTrack.

    Returnvalues:
    boolean mute_state
    the new mute-state; true, mute is on; false, mute is off

    Parameters:
    MediaTrack trackid
    the MediaTrack to be muted
    integer mute
    mute state
      0, mute off
      1 and higher, mute on
      negative values toggle mute-state


    ^ Reaper version 5.62CSurf_OnMuteChangeEx

    C: bool CSurf_OnMuteChangeEx(MediaTrack* trackid, int mute, bool allowgang)
    EEL2: bool CSurf_OnMuteChangeEx(MediaTrack trackid, int mute, bool allowgang)
    Lua: boolean mute_state = reaper.CSurf_OnMuteChangeEx(MediaTrack trackid, integer mute, boolean allowgang)
    Python: Boolean retval = RPR_CSurf_OnMuteChangeEx(MediaTrack trackid, Int mute, Boolean allowgang)

    Sets/toggles mute-state for a MediaTrack. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

    Returnvalues:
    boolean mute_state
    the new mute-state; true, mute is on; false, mute is off

    Parameters:
    MediaTrack trackid
    the MediaTrack to be muted
    integer mute
    mute state
      0, mute off
      1, and higher, mute on
      negative values toggle mute-state
    boolean allowgang
    true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid


    ^ Reaper version 5.62CSurf_OnPanChange

    C: double CSurf_OnPanChange(MediaTrack* trackid, double pan, bool relative)
    EEL2: double CSurf_OnPanChange(MediaTrack trackid, pan, bool relative)
    Lua: number pan_value = reaper.CSurf_OnPanChange(MediaTrack trackid, number pan, boolean relative)
    Python: Float retval = RPR_CSurf_OnPanChange(MediaTrack trackid, Float pan, Boolean relative)

    Changes the pan-value of a track.

    Returnvalues:
    number pan_value
    the new pan-value

    Parameters:
    MediaTrack trackid
    the MediaTrack in which to change the pan
    number pan
    -1, full pan left; 1, full pan right; 0, pan centered
    boolean relative
    true, add/subtract pan to the currently set pan-value


    ^ Reaper version 5.62CSurf_OnPanChangeEx

    C: double CSurf_OnPanChangeEx(MediaTrack* trackid, double pan, bool relative, bool allowGang)
    EEL2: double CSurf_OnPanChangeEx(MediaTrack trackid, pan, bool relative, bool allowGang)
    Lua: number pan_value = reaper.CSurf_OnPanChangeEx(MediaTrack trackid, number pan, boolean relative, boolean allowGang)
    Python: Float retval = RPR_CSurf_OnPanChangeEx(MediaTrack trackid, Float pan, Boolean relative, Boolean allowGang)

    Changes the pan-value of a track. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

    Returnvalues:
    number pan_value
    the new pan-value

    Parameters:
    MediaTrack trackid
    the MediaTrack in which to change the pan
    number pan
    -1, full pan left; 1, full pan right; 0, pan centered
    boolean relative
    true, add/subtract pan to the currently set pan-value
    boolean allowgang
    true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid


    ^ Reaper version 5.62CSurf_OnRecArmChange

    C: bool CSurf_OnRecArmChange(MediaTrack* trackid, int recarm)
    EEL2: bool CSurf_OnRecArmChange(MediaTrack trackid, int recarm)
    Lua: boolean arm_state = reaper.CSurf_OnRecArmChange(MediaTrack trackid, integer recarm)
    Python: Boolean retval = RPR_CSurf_OnRecArmChange(MediaTrack trackid, Int recarm)

    Sets a MediaTrack's armed state.

    Returnvalues:
    boolean arm_state
    true, if set to armed; false, if not

    Parameters:
    MediaTrack trackid
    the MediaTrack in which to set the armed-state
    integer recarm
    the armstate;
       0, set to unarmed
       1 and higher, set to armed
      -1 and lower, toggle recarm


    ^ Reaper version 5.62CSurf_OnRecArmChangeEx

    C: bool CSurf_OnRecArmChangeEx(MediaTrack* trackid, int recarm, bool allowgang)
    EEL2: bool CSurf_OnRecArmChangeEx(MediaTrack trackid, int recarm, bool allowgang)
    Lua: boolean arm_state = reaper.CSurf_OnRecArmChangeEx(MediaTrack trackid, integer recarm, boolean allowgang)
    Python: Boolean retval = RPR_CSurf_OnRecArmChangeEx(MediaTrack trackid, Int recarm, Boolean allowgang)

    Sets a MediaTrack's armed state. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

    Returnvalues:
    boolean arm_state
    true, if set to armed; false, if not

    Parameters:
    MediaTrack trackid
    the MediaTrack in which to set the armed-state
    integer recarm
    the armstate;
       0, set to unarmed
       1 and higher, set to armed
      -1 and lower, toggle recarm
    boolean allowgang
    true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid


    ^ Reaper version 5.62CSurf_OnSelectedChange

    C: bool CSurf_OnSelectedChange(MediaTrack* trackid, int selected)
    EEL2: bool CSurf_OnSelectedChange(MediaTrack trackid, int selected)
    Lua: boolean tr_select_state = reaper.CSurf_OnSelectedChange(MediaTrack trackid, integer selected)
    Python: Boolean retval = RPR_CSurf_OnSelectedChange(MediaTrack trackid, Int selected)

    Sets a track selected or not.

    Returnvalues:
    boolean tr_select_state
    true, track is selected; false, track is unselected

    Parameters:
    MediaTrack trackid
    the MediaTrack to be selected/unselected
    integer selected
    select-state; 0, track is selected; 1, track is unselected


    ^ Reaper version 5.62CSurf_OnSoloChange

    C: bool CSurf_OnSoloChange(MediaTrack* trackid, int solo)
    EEL2: bool CSurf_OnSoloChange(MediaTrack trackid, int solo)
    Lua: boolean solo_state = reaper.CSurf_OnSoloChange(MediaTrack trackid, integer solo)
    Python: Boolean retval = RPR_CSurf_OnSoloChange(MediaTrack trackid, Int solo)

    Sets/toggles solo state of a track.

    Returnvalues:
    boolean solo_state
    true, solo has been turned on; false, solo has been turned off

    Parameters:
    MediaTrack trackid
    the MediaTrack in which to toggle solo state
    integer solo
    solo state.
       0, solo off
       1 and higher, solo on
      -1 and lower, toggle solo on/off


    ^ Reaper version 5.62CSurf_OnSoloChangeEx

    C: bool CSurf_OnSoloChangeEx(MediaTrack* trackid, int solo, bool allowgang)
    EEL2: bool CSurf_OnSoloChangeEx(MediaTrack trackid, int solo, bool allowgang)
    Lua: boolean solo_state = reaper.CSurf_OnSoloChangeEx(MediaTrack trackid, integer solo, boolean allowgang)
    Python: Boolean retval = RPR_CSurf_OnSoloChangeEx(MediaTrack trackid, Int solo, Boolean allowgang)

    Sets/toggles solo state of a track. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

    Returnvalues:
    boolean solo_state
    true, solo has been turned on; false, solo has been turned off

    Parameters:
    MediaTrack trackid
    the MediaTrack in which to toggle solo state
    integer solo
    solo state.
      0, solo off
      1 and higher, solo on
    -1 and lower, toggle solo on/off
    boolean allowgang
    true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid


    ^ Reaper version 5.62CSurf_OnStop

    C: void CSurf_OnStop()
    EEL2: CSurf_OnStop()
    Lua: reaper.CSurf_OnStop()
    Python: RPR_CSurf_OnStop()

    Stops playing/recording in current project.


    ^ Reaper version 5.62CSurf_OnTrackSelection

    C: void CSurf_OnTrackSelection(MediaTrack* trackid)
    EEL2: CSurf_OnTrackSelection(MediaTrack trackid)
    Lua: reaper.CSurf_OnTrackSelection(MediaTrack trackid)
    Python: RPR_CSurf_OnTrackSelection(MediaTrack trackid)



    Parameters:
    MediaTrack trackid


    ^ Reaper version 5.62CSurf_OnVolumeChange

    C: double CSurf_OnVolumeChange(MediaTrack* trackid, double volume, bool relative)
    EEL2: double CSurf_OnVolumeChange(MediaTrack trackid, volume, bool relative)
    Lua: number volume_value = reaper.CSurf_OnVolumeChange(MediaTrack trackid, number volume, boolean relative)
    Python: Float retval = RPR_CSurf_OnVolumeChange(MediaTrack trackid, Float volume, Boolean relative)

    Sets or alters volume of a track to a new value.

    Use DB2SLIDER to convert dB-value to fitting numbers of the volume-parameter.

    Returnvalues:
    number volume_value
    the new volume-value

    Parameters:
    MediaTrack trackid
    the MediaTrack, whose volume you want to change.
    number volume
    volume-value; 3.1622776601684e-008(minimum) to 3.981071705535(maximum). Higher values are possible to set but are out of fader-range.
    boolean relative
    false, set volume to new value; true, alter volume by new value

    see also:
  • DB2SLIDER - converts a dB-value into the volume-level for this function
  • SLIDER2DB - converts a volume-level into a dB-value


  • ^ Reaper version 5.62CSurf_OnVolumeChangeEx

    C: double CSurf_OnVolumeChangeEx(MediaTrack* trackid, double volume, bool relative, bool allowGang)
    EEL2: double CSurf_OnVolumeChangeEx(MediaTrack trackid, volume, bool relative, bool allowGang)
    Lua: number volume_value = reaper.CSurf_OnVolumeChangeEx(MediaTrack trackid, number volume, boolean relative, boolean allowGang)
    Python: Float retval = RPR_CSurf_OnVolumeChangeEx(MediaTrack trackid, Float volume, Boolean relative, Boolean allowGang)

    Sets or alters volume of a track to a new value. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

    Use DB2SLIDER to convert dB-value to fitting numbers of the volume-parameter.

    Returnvalues:
    number volume_value
    the new volume-value

    Parameters:
    MediaTrack trackid
    the MediaTrack, whose volume you want to change.
    number volume
    volume-value; 3.1622776601684e-008(minimum) to 3.981071705535(maximum). Higher values are possible to set but are out of fader-range.
    boolean relative
    false, set volume to new value; true, alter volume by new value
    boolean allowgang
    true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid

    see also:
  • DB2SLIDER - converts a dB-value into the volume-level for this function
  • SLIDER2DB - converts a volume-level into a dB-value


  • ^ Reaper version 5.62CSurf_OnWidthChange

    C: double CSurf_OnWidthChange(MediaTrack* trackid, double width, bool relative)
    EEL2: double CSurf_OnWidthChange(MediaTrack trackid, width, bool relative)
    Lua: number width_value = reaper.CSurf_OnWidthChange(MediaTrack trackid, number width, boolean relative)
    Python: Float retval = RPR_CSurf_OnWidthChange(MediaTrack trackid, Float width, Boolean relative)

    Sets/alters the width-value of a track.

    Returnvalues:
    number width_value
    the new width-value

    Parameters:
    MediaTrack trackid
    the MediaItem, whose width you want to change
    number width
    the width-value; -1 to 1; 0 is no width/mono
    boolean relative
    false, set width to the new width-value; true, alter width by the new width-value


    ^ Reaper version 5.62CSurf_OnWidthChangeEx

    C: double CSurf_OnWidthChangeEx(MediaTrack* trackid, double width, bool relative, bool allowGang)
    EEL2: double CSurf_OnWidthChangeEx(MediaTrack trackid, width, bool relative, bool allowGang)
    Lua: number width_value = reaper.CSurf_OnWidthChangeEx(MediaTrack trackid, number width, boolean relative, boolean allowGang)
    Python: Float retval = RPR_CSurf_OnWidthChangeEx(MediaTrack trackid, Float width, Boolean relative, Boolean allowGang)

    Sets/alters the width-value of a track. If MediaTrack is selected, among others, and allowgang is set to true, the new state will be set to them as well.

    Returnvalues:
    number width_value
    the new width-value

    Parameters:
    MediaTrack trackid
    the MediaItem, whose width you want to change
    number width
    the width-value; -1 to 1; 0 is no width/mono
    boolean relative
    false, set width to the new width-value; true, alter width by the new width-value
    boolean allowgang
    true, if trackid is selected with other tracks, set new state to them as well; false, set new state only to trackid


    ^ Reaper version 5.62CSurf_SetSurfaceMute

    C: void CSurf_SetSurfaceMute(MediaTrack* trackid, bool mute, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetSurfaceMute(MediaTrack trackid, bool mute, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetSurfaceMute(MediaTrack trackid, boolean mute, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetSurfaceMute(MediaTrack trackid, Boolean mute, IReaperControlSurface ignoresurf)



    Parameters:
    MediaTrack trackid
    integer mute
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62CSurf_SetSurfacePan

    C: void CSurf_SetSurfacePan(MediaTrack* trackid, double pan, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetSurfacePan(MediaTrack trackid, pan, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetSurfacePan(MediaTrack trackid, number pan, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetSurfacePan(MediaTrack trackid, Float pan, IReaperControlSurface ignoresurf)



    Parameters:
    MediaTrack trackid
    number pan
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62CSurf_SetSurfaceRecArm

    C: void CSurf_SetSurfaceRecArm(MediaTrack* trackid, bool recarm, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetSurfaceRecArm(MediaTrack trackid, bool recarm, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetSurfaceRecArm(MediaTrack trackid, boolean recarm, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetSurfaceRecArm(MediaTrack trackid, Boolean recarm, IReaperControlSurface ignoresurf)



    Parameters:
    MediaTrack trackid
    boolean recarm
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62CSurf_SetSurfaceSelected

    C: void CSurf_SetSurfaceSelected(MediaTrack* trackid, bool selected, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetSurfaceSelected(MediaTrack trackid, bool selected, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetSurfaceSelected(MediaTrack trackid, boolean selected, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetSurfaceSelected(MediaTrack trackid, Boolean selected, IReaperControlSurface ignoresurf)



    Parameters:
    MediaTrack trackid
    boolean selected
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62CSurf_SetSurfaceSolo

    C: void CSurf_SetSurfaceSolo(MediaTrack* trackid, bool solo, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetSurfaceSolo(MediaTrack trackid, bool solo, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetSurfaceSolo(MediaTrack trackid, boolean solo, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetSurfaceSolo(MediaTrack trackid, Boolean solo, IReaperControlSurface ignoresurf)



    Parameters:
    MediaTrack trackid
    boolean solo
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62CSurf_SetSurfaceVolume

    C: void CSurf_SetSurfaceVolume(MediaTrack* trackid, double volume, IReaperControlSurface* ignoresurf)
    EEL2: CSurf_SetSurfaceVolume(MediaTrack trackid, volume, IReaperControlSurface ignoresurf)
    Lua: reaper.CSurf_SetSurfaceVolume(MediaTrack trackid, number volume, IReaperControlSurface ignoresurf)
    Python: RPR_CSurf_SetSurfaceVolume(MediaTrack trackid, Float volume, IReaperControlSurface ignoresurf)



    Parameters:
    MediaTrack trackid
    number volume
    IReaperControlSurface ignoresurf


    ^ Reaper version 5.62CSurf_TrackFromID

    C: MediaTrack* CSurf_TrackFromID(int idx, bool mcpView)
    EEL2: MediaTrack CSurf_TrackFromID(int idx, bool mcpView)
    Lua: MediaTrack tr = reaper.CSurf_TrackFromID(integer idx, boolean mcpView)
    Python: MediaTrack tr = RPR_CSurf_TrackFromID(Int idx, Boolean mcpView)

    Gets a MediaTrack-object by it's number.

    Returnvalues:
    MediaTrack tr
    the MediaTrack-object of the track you requested

    Parameters:
    integer idx
    the tracknumber of the track you want to have; 0 for track 1, 1 for track 2, etc.
    boolean mcpView
    true, count only tracks, that are visible in MixerControlPanel


    ^ Reaper version 5.62CSurf_TrackToID

    C: int CSurf_TrackToID(MediaTrack* track, bool mcpView)
    EEL2: int CSurf_TrackToID(MediaTrack track, bool mcpView)
    Lua: integer tracknumber = reaper.CSurf_TrackToID(MediaTrack track, boolean mcpView)
    Python: Int retval = RPR_CSurf_TrackToID(MediaTrack track, Boolean mcpView)

    Get the tracknumber of a MediaTrack-object.

    Returnvalues:
    integer tracknumber
    the tracknumber of the MediaTrack; when mcpView is true, invisible tracks will return -1 as number

    Parameters:
    MediaTrack track
    the MediaTrack-object, whose number you want to know
    boolean mcpView
    true, only tracks visible in MixerControlPanel; false, all tracks visible in MixerControlPanel


    ^ Reaper version 5.62GetMasterMuteSoloFlags

    C: int GetMasterMuteSoloFlags()
    EEL2: int GetMasterMuteSoloFlags()
    Lua: integer mastermutesolo = reaper.GetMasterMuteSoloFlags()
    Python: Int retval = RPR_GetMasterMuteSoloFlags()

    Deprecated: Get the mute/solo-state of the master-track. This is deprecated as you can just query the master track as well.

    Returnvalues:
    integer mastermutesolo
    state of mute/solo of the master-track; &1=master mute,&2=master solo.


    ^ Reaper version 5.62GetMasterTrackVisibility

    C: int GetMasterTrackVisibility()
    EEL2: int GetMasterTrackVisibility()
    Lua: integer master_visibility = reaper.GetMasterTrackVisibility()
    Python: Int retval = RPR_GetMasterTrackVisibility()

    Get the visibility of the master-track in mixer and track-control-panel.

    Returnvalues:
    integer master_visibility
    state of visibility of the master-track
    &1 - 1, master track visible in tcp; 0, master track invisible in mixer
    &2 - 2, master track invisible in mixer; 0, master track visible in mixer

    see also:
  • SetMasterTrackVisibility - sets the visibility of the master track in mcp/tcp


  • ^ Reaper version 6.65GetMediaTrackInfo_Value

    C: double GetMediaTrackInfo_Value(MediaTrack* tr, const char* parmname)
    EEL2: double GetMediaTrackInfo_Value(MediaTrack tr, "parmname")
    Lua: number retval = reaper.GetMediaTrackInfo_Value(MediaTrack tr, string parmname)
    Python: Float retval = RPR_GetMediaTrackInfo_Value(MediaTrack tr, String parmname)

    Get track numerical-value attributes.
    B_MUTE : bool * : muted
    B_PHASE : bool * : track phase inverted
    B_RECMON_IN_EFFECT : bool * : record monitoring in effect (current audio-thread playback state, read-only)
    IP_TRACKNUMBER : int : track number 1-based, 0=not found, -1=master track (read-only, returns the int directly)
    I_SOLO : int * : soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place
    B_SOLO_DEFEAT : bool * : when set, if anything else is soloed and this track is not muted, this track acts soloed
    I_FXEN : int * : fx enabled, 0=bypassed, !0=fx active
    I_RECARM : int * : record armed, 0=not record armed, 1=record armed
    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.
    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
    I_RECMODE_FLAGS : int * : record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader)
    I_RECMON : int * : record monitoring, 0=off, 1=normal, 2=not when playing (tape style)
    I_RECMONITEMS : int * : monitor items while recording, 0=off, 1=on
    B_AUTO_RECARM : bool * : automatically set record arm when selected (does not immediately affect recarm state, script should set directly if desired)
    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            
    I_AUTOMODE : int * : track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch
    I_NCHAN : int * : number of track channels, 2-64, even numbers only
    I_SELECTED : int * : track selected, 0=unselected, 1=selected
    I_WNDH : int * : current TCP window height in pixels including envelopes (read-only)
    I_TCPH : int * : current TCP window height in pixels not including envelopes (read-only)
    I_TCPY : int * : current TCP window Y-position in pixels relative to top of arrange view (read-only)
    I_MCPX : int * : current MCP X-position in pixels relative to mixer container(read only)
    I_MCPY : int * : current MCP Y-position in pixels relative to mixer container(read only)
    I_MCPW : int * : current MCP width in pixels(read only)
    I_MCPH : int * : current MCP height in pixels(read only)
    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
    I_FOLDERCOMPACT : int * : folder compacted state (only valid on folders), 0=normal, 1=small, 2=tiny children
    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)
    I_PERFFLAGS : int * : track performance flags, &1=no media buffering, &2=no anticipative FX
    I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000), 0, default color. If you do not |0x1000000, then it will not be used, but will store the color.
    I_HEIGHTOVERRIDE : int * : custom height override for TCP window, 0 for none, otherwise size in pixels
    B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking)
    D_VOL : double * : trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
    D_PAN : double * : trim pan of track, -1..1
    D_WIDTH : double * : width of track, -1..1
    D_DUALPANL : double * : dualpan position 1, -1..1, only if I_PANMODE==6
    D_DUALPANR : double * : dualpan position 2, -1..1, only if I_PANMODE==6
    I_PANMODE : int * : pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan
    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
    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
    P_ENV:&envchunkname or P_ENV:{GUID... : TrackEnvelope * : (read-only) chunkname can be &VOLENV, &PANENV, etc; GUID is the stringified envelope GUID
    B_SHOWINMIXER : bool * : track control panel visible in mixer (do not use on master track)
    B_SHOWINTCP : bool * : track control panel visible in arrange view (do not use on master track)
    B_MAINSEND : bool * : track sends audio to parent
    C_MAINSEND_OFFS : char * : channel offset of track send to parent
    C_MAINSEND_NCH : char * : channel count of track send to parent (0=use all child track channels, 1=use one channel only)
    I_FREEMODE : int * : 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing)
    C_BEATATTACHMODE : char * : track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only)
    F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed)
    F_MCP_FXPARM_SCALE : float * : scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed)
    F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed)
    F_TCP_FXPARM_SCALE : float * : scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed)
    I_PLAY_OFFSET_FLAG : int * : track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds)
    D_PLAY_OFFSET : double * : track media playback offset, units depend on I_PLAY_OFFSET_FLAG
    P_PARTRACK : MediaTrack * : parent track (read-only)
    P_PROJECT : ReaProject * : parent project (read-only)

    Returnvalues:
    number retval
    the value of the requested attribute

    Parameters:
    MediaTrack tr
    the MediaTrack-object, whose attribute you want to request
    string parmname
    the attribute, that you want to request, like D_VOL or B_SHOWINMIXER etc

    see also:
  • GetSetMediaTrackInfo_String - gets/sets a string value of a MediaTrack-attribute
  • SetMediaTrackInfo_Value - sets a numerical value of a MediaTrack-attribute


  • ^ Reaper version 6.54GetSetMediaTrackInfo_String

    C: bool GetSetMediaTrackInfo_String(MediaTrack* tr, const char* parmname, char* stringNeedBig, bool setnewvalue)
    EEL2: bool GetSetMediaTrackInfo_String(MediaTrack tr, "parmname", #stringNeedBig, bool setnewvalue)
    Lua: boolean retval, string stringNeedBig = reaper.GetSetMediaTrackInfo_String(MediaTrack tr, string parmname, string stringNeedBig, boolean setnewvalue)
    Python: (Boolean retval, MediaTrack tr, String parmname, String stringNeedBig, Boolean setnewvalue) = RPR_GetSetMediaTrackInfo_String(tr, parmname, stringNeedBig, setnewvalue)

    Get or set track string attributes.
    P_NAME : char * : track name (on master returns NULL)
    P_ICON : const char * : track icon (full filename, or relative to resource_path/data/track_icons)
    P_MCP_LAYOUT : const char * : layout name
    P_RAZOREDITS : const char * : list of razor edit areas, as space-separated triples of start time, end time, and envelope GUID string.
        Passing the guid sets selection within the envelope; not passing the guid sets the selection within the track itself.
        Example: "0.00 1.00 \"\" 0.00 1.00 "{xyz-...}"
        Set stringNeedBig="" and setnewvalue=false to query the currently set razor-edits on this track.
    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, optional fixed/fipm top y-position, optional fixed/fipm bottom y-position(fipm means fixed item positioning).
        Example: "0.0 1.0,0.0 1.0 "{xyz-...}",1.0 2.0 "" 0.25 0.5"
        see P_RAZOREDITS above for more details
    P_TCP_LAYOUT : const char * : layout name
    P_EXT:xyz : char * : extension-specific persistent data
    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).
    GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.

    Returnvalues:
    boolean retval
    true, getting/setting the value was successful; false, it was unsuccessful
    string stringNeedBig
    the resulting/returned value

    Parameters:
    MediaTrack tr
    the track, whose string-attributes you want to get/set
    string parmname
    the attribute that you want to get/set(see description for details)
    string stringNeedBig
    the new value; make "" when getting
    boolean setnewvalue
    true, set a new value; false, get a value

    see also:
  • GetMediaTrackInfo_Value - get a numerical value of a MediaTrack-attribute
  • SetMediaTrackInfo_Value - sets a numerical value of a MediaTrack-attribute


  • ^ Reaper version 6.12GetSetTrackGroupMembership

    C: unsigned int GetSetTrackGroupMembership(MediaTrack* tr, const char* groupname, unsigned int setmask, unsigned int setvalue)
    EEL2: uint GetSetTrackGroupMembership(MediaTrack tr, "groupname", uint setmask, uint setvalue)
    Lua: integer group_membership = reaper.GetSetTrackGroupMembership(MediaTrack tr, string groupname, integer setmask, integer setvalue)
    Python: Int retval = RPR_GetSetTrackGroupMembership(MediaTrack tr, String groupname, Int setmask, Int setvalue)

    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:
    VOLUME_LEAD
    VOLUME_FOLLOW
    VOLUME_VCA_LEAD
    VOLUME_VCA_FOLLOW
    PAN_LEAD
    PAN_FOLLOW
    WIDTH_LEAD
    WIDTH_FOLLOW
    MUTE_LEAD
    MUTE_FOLLOW
    SOLO_LEAD
    SOLO_FOLLOW
    RECARM_LEAD
    RECARM_FOLLOW
    POLARITY_LEAD
    POLARITY_FOLLOW
    AUTOMODE_LEAD
    AUTOMODE_FOLLOW
    VOLUME_REVERSE
    PAN_REVERSE
    WIDTH_REVERSE
    NO_LEAD_WHEN_FOLLOW
    VOLUME_VCA_FOLLOW_ISPREFX

    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).

    Returnvalues:
    integer group_membership

    Parameters:
    MediaTrack tr
    string groupname
    integer setmask
    integer setvalue


    ^ Reaper version 6.72GetSetTrackGroupMembershipHigh

    C: unsigned int GetSetTrackGroupMembershipHigh(MediaTrack* tr, const char* groupname, unsigned int setmask, unsigned int setvalue)
    EEL2: uint GetSetTrackGroupMembershipHigh(MediaTrack tr, "groupname", uint setmask, uint setvalue)
    Lua: integer groupstate = reaper.GetSetTrackGroupMembershipHigh(MediaTrack tr, string groupname, integer setmask, integer setvalue)
    Python: Int retval = RPR_GetSetTrackGroupMembershipHigh(MediaTrack tr, String groupname, Int setmask, Int setvalue)

    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:
    VOLUME_LEAD
    VOLUME_FOLLOW
    VOLUME_VCA_LEAD
    VOLUME_VCA_FOLLOW
    PAN_LEAD
    PAN_FOLLOW
    WIDTH_LEAD
    WIDTH_FOLLOW
    MUTE_LEAD
    MUTE_FOLLOW
    SOLO_LEAD
    SOLO_FOLLOW
    RECARM_LEAD
    RECARM_FOLLOW
    POLARITY_LEAD
    POLARITY_FOLLOW
    AUTOMODE_LEAD
    AUTOMODE_FOLLOW
    VOLUME_REVERSE
    PAN_REVERSE
    WIDTH_REVERSE
    NO_LEAD_WHEN_FOLLOW
    VOLUME_VCA_FOLLOW_ISPREFX
    MEDIA_EDIT_LEAD
    MEDIA_EDIT_FOLLOW

    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).

    Returnvalues:
    integer groupstate

    Parameters:
    MediaTrack tr
    string groupname
    integer setmask
    integer setvalue


    ^ Reaper version 5.62GetSetTrackState

    C: bool GetSetTrackState(MediaTrack* track, char* str, int str_sz)
    EEL2: bool GetSetTrackState(MediaTrack track, #str)
    Lua: boolean retval, string str = reaper.GetSetTrackState(MediaTrack track, string str)
    Python: (Boolean retval, MediaTrack track, String str, Int str_sz) = RPR_GetSetTrackState(track, str, str_sz)

    deprecated -- see SetTrackStateChunk, GetTrackStateChunk

    Returnvalues:
    boolean retval
    string str

    Parameters:
    MediaTrack track
    string str

    see also:
  • GetTrackStateChunk - returns, an TrackStateChunk, which holds all attributes-information of a MediaTrack
  • SetTrackStateChunk - sets an TrackStateChunk, to replace all attributes-information of a MediaTrack


  • ^ Reaper version 5.62GetSetTrackState2

    C: bool GetSetTrackState2(MediaTrack* track, char* str, int str_sz, bool isundo)
    EEL2: bool GetSetTrackState2(MediaTrack track, #str, bool isundo)
    Lua: boolean retval, string str = reaper.GetSetTrackState2(MediaTrack track, string str, boolean isundo)
    Python: (Boolean retval, MediaTrack track, String str, Int str_sz, Boolean isundo) = RPR_GetSetTrackState2(track, str, str_sz, isundo)

    deprecated -- see SetTrackStateChunk, GetTrackStateChunk

    Returnvalues:
    boolean retval
    string str

    Parameters:
    MediaTrack track
    string str
    boolean isundo

    see also:
  • GetTrackStateChunk - returns, an TrackStateChunk, which holds all attributes-information of a MediaTrack
  • SetTrackStateChunk - sets an TrackStateChunk, to replace all attributes-information of a MediaTrack


  • ^ Reaper version 5.62GetTrackColor

    C: int GetTrackColor(MediaTrack* track)
    EEL2: int GetTrackColor(MediaTrack track)
    Lua: integer color = reaper.GetTrackColor(MediaTrack track)
    Python: Int retval = RPR_GetTrackColor(MediaTrack track)

    Returns the track custom color as OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). Black is returned as 0x01000000, no color setting is returned as 0.

    Returnvalues:
    integer color
    the os-dependent color

    Parameters:
    MediaTrack track
    the MediaTrack, whose color you want to request


    ^ Reaper version 5.62GetTrackDepth

    C: int GetTrackDepth(MediaTrack* track)
    EEL2: int GetTrackDepth(MediaTrack track)
    Lua: integer tr_depth = reaper.GetTrackDepth(MediaTrack track)
    Python: Int retval = RPR_GetTrackDepth(MediaTrack track)

    Get the depth of a track within a folder structure

    Returnvalues:
    integer tr_depth
    the position in the track-folder-structure; 0 for the highest level or unfoldered tracks

    Parameters:
    MediaTrack track
    the MediaTrack whose position in the track-folder-structure you want to request


    ^ Reaper version 5.62GetTrackGUID

    C: GUID* GetTrackGUID(MediaTrack* tr)
    EEL2: bool GetTrackGUID(#retguid, MediaTrack tr)
    Lua: string GUID = reaper.GetTrackGUID(MediaTrack tr)
    Python: String GUID = RPR_GetTrackGUID(MediaTrack tr)

    Get the guid of a MediaTrack

    Returnvalues:
    string GUID

    Parameters:
    MediaTrack tr


    ^ Reaper version 5.974GetTrackName

    C: bool GetTrackName(MediaTrack* track, char* bufOut, int bufOut_sz)
    EEL2: bool GetTrackName(MediaTrack track, #buf)
    Lua: boolean retval, string buf = reaper.GetTrackName(MediaTrack track)
    Python: (Boolean retval, MediaTrack track, String bufOut, Int bufOut_sz) = RPR_GetTrackName(track, bufOut, bufOut_sz)

    Returns "MASTER" for master track, "Track N" if track has no name.

    Returnvalues:
    boolean retval
    true, if successful
    string buf
    the name of the track; "MASTER" for master-track; "Track N" if the track has no given name yet(N=tracknumber)

    Parameters:
    MediaTrack track
    the MediaTrack, whose name you want to know


    ^ Reaper version 5.62GetTrackState

    C: const char* GetTrackState(MediaTrack* track, int* flagsOut)
    EEL2: bool GetTrackState(#retval, MediaTrack track, int &flags)
    Lua: string retval, integer flags = reaper.GetTrackState(MediaTrack track)
    Python: (String retval, MediaTrack track, Int flagsOut) = RPR_GetTrackState(track, flagsOut)

    Gets track state, returns track name.
    flags will be set to:
    &1=folder
    &2=selected
    &4=has fx enabled
    &8=muted
    &16=soloed
    &32=SIP'd (with &16)
    &64=rec armed
    &128=rec monitoring on
    &256=rec monitoring auto
    &512=hide from TCP
    &1024=hide from MCP

    Returnvalues:
    string retval
    integer flags

    Parameters:
    MediaTrack track


    ^ Reaper version 5.982GetTrackStateChunk

    C: bool GetTrackStateChunk(MediaTrack* track, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)
    EEL2: bool GetTrackStateChunk(MediaTrack track, #str, bool isundo)
    Lua: boolean retval, string str = reaper.GetTrackStateChunk(MediaTrack track, string str, boolean isundo)
    Python: (Boolean retval, MediaTrack track, String strNeedBig, Int strNeedBig_sz, Boolean isundoOptional) = RPR_GetTrackStateChunk(track, strNeedBig, strNeedBig_sz, isundoOptional)

    Gets the RPPXML state of a track, returns true if successful. Undo flag is a performance/caching hint.

    Returnvalues:
    boolean retval
    string str

    Parameters:
    MediaTrack track
    string str
    boolean isundo


    ^ Reaper version 5.62GetTrackUIMute

    C: bool GetTrackUIMute(MediaTrack* track, bool* muteOut)
    EEL2: bool GetTrackUIMute(MediaTrack track, bool &mute)
    Lua: boolean retval, boolean mute = reaper.GetTrackUIMute(MediaTrack track)
    Python: (Boolean retval, MediaTrack track, Boolean muteOut) = RPR_GetTrackUIMute(track, muteOut)



    Returnvalues:
    boolean retval
    boolean mute

    Parameters:
    MediaTrack track


    ^ Reaper version 5.62GetTrackUIPan

    C: bool GetTrackUIPan(MediaTrack* track, double* pan1Out, double* pan2Out, int* panmodeOut)
    EEL2: bool GetTrackUIPan(MediaTrack track, &pan1, &pan2, int &panmode)
    Lua: boolean retval, number pan1, number pan2, integer panmode = reaper.GetTrackUIPan(MediaTrack track)
    Python: (Boolean retval, MediaTrack track, Float pan1Out, Float pan2Out, Int panmodeOut) = RPR_GetTrackUIPan(track, pan1Out, pan2Out, panmodeOut)



    Returnvalues:
    boolean retval
    number pan1
    number pan2
    integer panmode

    Parameters:
    MediaTrack track


    ^ Reaper version 5.62GetTrackUIVolPan

    C: bool GetTrackUIVolPan(MediaTrack* track, double* volumeOut, double* panOut)
    EEL2: bool GetTrackUIVolPan(MediaTrack track, &volume, &pan)
    Lua: boolean retval, number volume, number pan = reaper.GetTrackUIVolPan(MediaTrack track)
    Python: (Boolean retval, MediaTrack track, Float volumeOut, Float panOut) = RPR_GetTrackUIVolPan(track, volumeOut, panOut)



    Returnvalues:
    boolean retval
    number volume
    number pan

    Parameters:
    MediaTrack track


    ^ Reaper version 5.62IsTrackSelected

    C: bool IsTrackSelected(MediaTrack* track)
    EEL2: bool IsTrackSelected(MediaTrack track)
    Lua: boolean track_selected = reaper.IsTrackSelected(MediaTrack track)
    Python: Boolean retval = RPR_IsTrackSelected(MediaTrack track)

    Get, if a MediaTrack is selected or not.

    Returnvalues:
    boolean track_selected
    true, MediaTrack is selected; false, MediaTrack is not selected

    Parameters:
    MediaTrack track
    the MediaTrack, whose selection-state you want to know


    ^ Reaper version 5.62IsTrackVisible

    C: bool IsTrackVisible(MediaTrack* track, bool mixer)
    EEL2: bool IsTrackVisible(MediaTrack track, bool mixer)
    Lua: boolean track_visible = reaper.IsTrackVisible(MediaTrack track, boolean mixer)
    Python: Boolean retval = RPR_IsTrackVisible(MediaTrack track, Boolean mixer)

    Gets visibility-state of a MediaTrack.

    Returnvalues:
    boolean track_visible
    true, MediaTrack is visible; false, MediaTrack is invisible

    Parameters:
    MediaTrack track
    the MediaTrack, whose visibility-state you want to know
    boolean mixer
    true, visibility-state of the MediaTrack in the mixer; false, visibility-state of the MediaTrack in the TrackControlPanel


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_GetSWSTrackNotes

    C: const char* NF_GetSWSTrackNotes(MediaTrack* track)
    EEL2: bool extension_api("NF_GetSWSTrackNotes", #retval, MediaTrack track)
    Lua: string tracknotes = reaper.NF_GetSWSTrackNotes(MediaTrack track)
    Python: String retval = NF_GetSWSTrackNotes(MediaTrack track)

    Get the SWS tracknotes.

    Returnvalues:
    string tracknotes
    the stored notes

    Parameters:
    MediaTrack track
    the track, whose SWS-tracknotes you want to get


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_SetSWSTrackNotes

    C: void NF_SetSWSTrackNotes(MediaTrack* track, const char* str)
    EEL2: extension_api("NF_SetSWSTrackNotes", MediaTrack track, "str")
    Lua: reaper.NF_SetSWSTrackNotes(MediaTrack track, string str)
    Python: NF_SetSWSTrackNotes(MediaTrack track, String str)



    Parameters:
    MediaTrack track
    string str


    ^ Reaper version 5.62SetMasterTrackVisibility

    C: int SetMasterTrackVisibility(int flag)
    EEL2: int SetMasterTrackVisibility(int flag)
    Lua: integer mas_prev_vis_state = reaper.SetMasterTrackVisibility(integer flag)
    Python: Int retval = RPR_SetMasterTrackVisibility(Int flag)

    set &1=1 to show the master track in the TCP, &2=2 to hide in the mixer. Returns the previous visibility state. See GetMasterTrackVisibility.


    Returnvalues:
    integer mas_prev_vis_state
    the previous visibility state

    Parameters:
    integer flag
    the flag to show the master-track in TCP, MCP or both
    TCP: &1=0, invisible; &1=1, visible
    MCP: &2=0, invisible; &2=1, visible


    ^ Reaper version 6.60SetMediaTrackInfo_Value

    C: bool SetMediaTrackInfo_Value(MediaTrack* tr, const char* parmname, double newvalue)
    EEL2: bool SetMediaTrackInfo_Value(MediaTrack tr, "parmname", newvalue)
    Lua: boolean retval = reaper.SetMediaTrackInfo_Value(MediaTrack tr, string parmname, number newvalue)
    Python: Boolean retval = RPR_SetMediaTrackInfo_Value(MediaTrack tr, String parmname, Float newvalue)

    Set track numerical-value attributes.
    B_MUTE : bool * : muted
    B_PHASE : bool * : track phase inverted
    B_RECMON_IN_EFFECT : bool * : record monitoring in effect (current audio-thread playback state, read-only)
    IP_TRACKNUMBER : int : track number 1-based, 0=not found, -1=master track (read-only, returns the int directly)
    I_SOLO : int * : soloed, 0=not soloed, 1=soloed, 2=soloed in place, 5=safe soloed, 6=safe soloed in place
    B_SOLO_DEFEAT : bool * : when set, if anything else is soloed and this track is not muted, this track acts soloed
    I_FXEN : int * : fx enabled, 0=bypassed, !0=fx active
    I_RECARM : int * : record armed, 0=not record armed, 1=record armed
    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.
    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
    I_RECMODE_FLAGS : int * : record mode flags, &3=output recording mode (0=post fader, 1=pre-fx, 2=post-fx/pre-fader)
    I_RECMON : int * : record monitoring, 0=off, 1=normal, 2=not when playing (tape style)
    I_RECMONITEMS : int * : monitor items while recording, 0=off, 1=on
    B_AUTO_RECARM : bool * : automatically set record arm when selected (does not immediately affect recarm state, script should set directly if desired)
    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
    I_AUTOMODE : int * : track automation mode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch
    I_NCHAN : int * : number of track channels, 2-64, even numbers only
    I_SELECTED : int * : track selected, 0=unselected, 1=selected
    I_WNDH : int * : current TCP window height in pixels including envelopes (read-only)
    I_TCPH : int * : current TCP window height in pixels not including envelopes (read-only)
    I_TCPY : int * : current TCP window Y-position in pixels relative to top of arrange view (read-only)
    I_MCPX : int * : current MCP X-position in pixels relative to mixer container (read-only)
    I_MCPY : int * : current MCP Y-position in pixels relative to mixer container (read-only)
    I_MCPW : int * : current MCP width in pixels (read-only)
    I_MCPH : int * : current MCP height in pixels (read-only)
    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
    I_FOLDERCOMPACT : int * : folder compacted state (only valid on folders), 0=normal, 1=small, 2=tiny children
    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)
    I_PERFFLAGS : int * : track performance flags, &1=no media buffering, &2=no anticipative FX
    I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x1000000 (i.e. ColorToNative(r,g,b)|0x1000000). 0, default color. If you do not |0x1000000, then it will not be used, but will store the color
    I_HEIGHTOVERRIDE : int * : custom height override for TCP window, 0 for none, otherwise size in pixels
    B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking)
    D_VOL : double * : trim volume of track, 0=-inf, 0.5=-6dB, 1=+0dB, 2=+6dB, etc
    D_PAN : double * : trim pan of track, -1..1
    D_WIDTH : double * : width of track, -1..1
    D_DUALPANL : double * : dualpan position 1, -1..1, only if I_PANMODE==6
    D_DUALPANR : double * : dualpan position 2, -1..1, only if I_PANMODE==6
    I_PANMODE : int * : pan mode, 0=classic 3.x, 3=new balance, 5=stereo pan, 6=dual pan
    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
    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
    P_ENV: B_SHOWINMIXER : bool * : track control panel visible in mixer (do not use on master track)
    B_SHOWINTCP : bool * : track control panel visible in arrange view (do not use on master track)
    B_MAINSEND : bool * : track sends audio to parent
    C_MAINSEND_OFFS : char * : channel offset of track send to parent
    C_MAINSEND_NCH : char * : channel count of track send to parent (0=use all child track channels, 1=use one channel only)
    I_FREEMODE : int * : 1=track free item positioning enabled, 2=track fixed lanes enabled (call UpdateTimeline() after changing)
    C_BEATATTACHMODE : char * : track timebase, -1=project default, 0=time, 1=beats (position, length, rate), 2=beats (position only)
    F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0=minimum allowed, 1=maximum allowed)
    F_MCP_FXPARM_SCALE : float * : scale of fx parameter area in MCP (0=minimum allowed, 1=maximum allowed)
    F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=minimum allowed, 1=maximum allowed)
    F_TCP_FXPARM_SCALE : float * : scale of TCP parameter area when TCP FX are embedded (0=min allowed, default, 1=max allowed)
    I_PLAY_OFFSET_FLAG : int * : track media playback offset state, &1=bypassed, &2=offset value is measured in samples (otherwise measured in seconds)
    D_PLAY_OFFSET : double * : track media playback offset, units depend on I_PLAY_OFFSET_FLAG

    Returnvalues:
    boolean retval
    true, setting was successful; false, setting was unsuccessful

    Parameters:
    MediaTrack tr
    the track, whose attribute you want to set
    string parmname
    the attribute, that you want to set; refer description for possible attributes
    number newvalue
    the new value, that you want to set to the attribute

    see also:
  • GetSetMediaTrackInfo_String - gets/sets a string value of a MediaTrack-attribute
  • GetMediaTrackInfo_Value - returns a numerical value of a MediaTrack-attribute


  • ^ Reaper version 5.62SetOnlyTrackSelected

    C: void SetOnlyTrackSelected(MediaTrack* track)
    EEL2: SetOnlyTrackSelected(MediaTrack track)
    Lua: reaper.SetOnlyTrackSelected(MediaTrack track)
    Python: RPR_SetOnlyTrackSelected(MediaTrack track)

    Set exactly one track selected, deselect all others.

    This sets the track as Last-Touched-Track as well.

    Parameters:
    MediaTrack track
    the MediaTrack to be selected


    ^ Reaper version 5.62SetTrackColor

    C: void SetTrackColor(MediaTrack* track, int color)
    EEL2: SetTrackColor(MediaTrack track, int color)
    Lua: reaper.SetTrackColor(MediaTrack track, integer color)
    Python: RPR_SetTrackColor(MediaTrack track, Int color)

    Set the custom track color, color is OS dependent (i.e. ColorToNative(r,g,b).

    You cannot set default color with this function, use SetMediaTrackInfo_Value instead.

    Parameters:
    MediaTrack track
    the MediaTrack, whose color you want to change
    integer color
    the new color-value

    see also:
  • ColorToNative - converts a color-value to a native operating-system-one
  • SetMediaTrackInfo_Value - Allows setting various track-attributes, including the default-color.


  • ^ Reaper version 5.62SetTrackSelected

    C: void SetTrackSelected(MediaTrack* track, bool selected)
    EEL2: SetTrackSelected(MediaTrack track, bool selected)
    Lua: reaper.SetTrackSelected(MediaTrack track, boolean selected)
    Python: RPR_SetTrackSelected(MediaTrack track, Boolean selected)

    Set a MediaTrack selected/deselected. Will retain already existing selection, so you can set multiple tracks selected that way.

    Will not affect Last-Touched-Track.

    Parameters:
    MediaTrack track
    the MediaTrack, whose selection state you want to set
    boolean selected
    true, set MediaTrack to selected; false, set MediaTrack to deselected


    ^ Reaper version 5.62SetTrackStateChunk

    C: bool SetTrackStateChunk(MediaTrack* track, const char* str, bool isundoOptional)
    EEL2: bool SetTrackStateChunk(MediaTrack track, "str", bool isundo)
    Lua: boolean retval = reaper.SetTrackStateChunk(MediaTrack track, string str, boolean isundo)
    Python: Boolean retval = RPR_SetTrackStateChunk(MediaTrack track, String str, Boolean isundoOptional)

    Sets the RPPXML state of a track, returns true if successful. Undo flag is a performance/caching hint.

    Returnvalues:
    boolean retval
    true, setting worked; false, setting didn't work

    Parameters:
    MediaTrack track
    the MediaTrack, whose statechunk you want to set
    string str
    the new trackstatechunk, you want to set this MediaTrack to
    boolean isundo
    undo flag is a performance/caching hint


    ^ Reaper version 5.62 SWS version 2.9.7BR_GetArrangeView

    C: void BR_GetArrangeView(ReaProject* proj, double* startTimeOut, double* endTimeOut)
    EEL2: extension_api("BR_GetArrangeView", ReaProject proj, &startTime, &endTime)
    Lua: number startTime, number endTime = reaper.BR_GetArrangeView(ReaProject proj)
    Python: (ReaProject proj, Float startTimeOut, Float endTimeOut) = BR_GetArrangeView(proj, startTimeOut, endTimeOut)

    [BR] Deprecated, see GetSet_ArrangeView2 (REAPER v5.12pre4+)

    Get start and end time position of arrange view.

    To set arrange view instead, see BR_SetArrangeView.

    Returnvalues:
    number startTime
    the current starttime in the arrangeview in seconds
    number endTime
    the current endtime in the arrangeview in seconds

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.

    see also:
  • GetSet_ArrangeView2 - gets/sets arrangeview position and viewrange


  • ^ Reaper version 5.62 SWS version 2.9.7BR_GetMouseCursorContext_Position

    C: double BR_GetMouseCursorContext_Position()
    EEL2: double extension_api("BR_GetMouseCursorContext_Position")
    Lua: number retval = reaper.BR_GetMouseCursorContext_Position()
    Python: Float retval = BR_GetMouseCursorContext_Position()

    [BR] Returns project time position in arrange/ruler/midi editor that was captured with the last call to BR_GetMouseCursorContext.


    Returnvalues:
    number retval


    ^ Reaper version 5.62 SWS version 2.9.7BR_PositionAtMouseCursor

    C: double BR_PositionAtMouseCursor(bool checkRuler)
    EEL2: double extension_api("BR_PositionAtMouseCursor", bool checkRuler)
    Lua: number position = reaper.BR_PositionAtMouseCursor(boolean checkRuler)
    Python: Float retval = BR_PositionAtMouseCursor(Boolean checkRuler)

    [BR] Get position at mouse cursor. To check ruler along with arrange, pass checkRuler=true. Returns -1 if cursor is not over arrange/ruler.

    Returnvalues:
    number position
    the position at mouse-cursor

    Parameters:
    boolean checkRuler
    true, include ruler/markerarea; false, donÄt include ruler/markerarea


    ^ Reaper version 5.62 SWS version 2.9.7BR_SetArrangeView

    C: void BR_SetArrangeView(ReaProject* proj, double startTime, double endTime)
    EEL2: extension_api("BR_SetArrangeView", ReaProject proj, startTime, endTime)
    Lua: reaper.BR_SetArrangeView(ReaProject proj, number startTime, number endTime)
    Python: BR_SetArrangeView(ReaProject proj, Float startTime, Float endTime)

    [BR] Deprecated, see GetSet_ArrangeView2 (REAPER v5.12pre4+) -- Set start and end time position of arrange view. To get arrange view instead, see BR_GetArrangeView.


    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    number startTime
    the new starttime of the arrangewview in seconds
    number endTime
    the new endtime of the arrangewview in seconds


    ^ Reaper version 5.62CSurf_OnArrow

    C: void CSurf_OnArrow(int whichdir, bool wantzoom)
    EEL2: CSurf_OnArrow(int whichdir, bool wantzoom)
    Lua: reaper.CSurf_OnArrow(integer whichdir, boolean wantzoom)
    Python: RPR_CSurf_OnArrow(Int whichdir, Boolean wantzoom)

    Zoom or scroll the Arrangeview vertically.
    The stepsize with scrolling is track by track.

    Parameters:
    integer whichdir
    into which (zoom-)direction to change
      0, move arrangeview upward(one track each step)/zoom in
      1, move arrangeview downward(one track each step)/zoom out
    boolean wantzoom
    true, adjust vertical zoom; false, adjust vertical scrolling


    ^ Reaper version 5.62CSurf_OnScroll

    C: void CSurf_OnScroll(int xdir, int ydir)
    EEL2: CSurf_OnScroll(int xdir, int ydir)
    Lua: reaper.CSurf_OnScroll(integer xdir, integer ydir)
    Python: RPR_CSurf_OnScroll(Int xdir, Int ydir)

    Scroll arrangeview relative to it's current view-settings.

    Parameters:
    integer xdir
    scroll horizontally(timeline) through the project.
    Negative values toward the beginning, positive toward the end. The higher the values, the farther the movement.
    integer ydir
    scroll vertically(tracks) through the project.
    Negative values toward the top, positive toward the bottom. The higher the values, the farther the movement.


    ^ Reaper version 5.62CSurf_OnZoom

    C: void CSurf_OnZoom(int xdir, int ydir)
    EEL2: CSurf_OnZoom(int xdir, int ydir)
    Lua: reaper.CSurf_OnZoom(integer xdir, integer ydir)
    Python: RPR_CSurf_OnZoom(Int xdir, Int ydir)

    Changes horizontal/vertical zoom.

    Parameters:
    integer xdir
    horizontal zoom; 0, no change; negative values, zoom out; positive values, zoom in; the higher the values, the bigger the zoom-stepsize.
    integer ydir
    vertical zoom; 0, no change; negative values, zoom out; positive values, zoom in; the higher the values, the bigger the zoom-stepsize.


    ^ Reaper version 5.62GetHZoomLevel

    C: double GetHZoomLevel()
    EEL2: double GetHZoomLevel()
    Lua: number pixels_per_second = reaper.GetHZoomLevel()
    Python: Float retval = RPR_GetHZoomLevel()

    returns pixels/second

    Returnvalues:
    number pixels_per_second
    pixels/shown per second visible in arrange-view


    ^ Reaper version 5.62GetSet_ArrangeView2

    C: void GetSet_ArrangeView2(ReaProject* proj, bool isSet, int screen_x_start, int screen_x_end, double* start_timeOut, double* end_timeOut)
    EEL2: GetSet_ArrangeView2(ReaProject proj, bool isSet, int screen_x_start, int screen_x_end, &start_time, &end_time)
    Lua: number start_time, number end_time = reaper.GetSet_ArrangeView2(ReaProject proj, boolean isSet, integer screen_x_start, integer screen_x_end, number start_time, number end_time)
    Python: (ReaProject proj, Boolean isSet, Int screen_x_start, Int screen_x_end, Float start_timeOut, Float end_timeOut) = RPR_GetSet_ArrangeView2(proj, isSet, screen_x_start, screen_x_end, start_timeOut, end_timeOut)

    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

    If you want to get the arrangeviewposition by pixels, set isSet=false and pass the pixel-position of the start and endposition to screen_x_start and screen_x_end.

    screen_x_start and screen_x_end will be ignored, when isSet=true

    Returnvalues:
    number start_time
    the startposition of the arrangeview(left side) in seconds
    number end_time
    the startposition of the arrangeview(right side) in seconds

    Parameters:
    ReaProject proj
    the project-number. 0 for the current project.
    boolean isSet
    true, set a new arrangeview-time position; false, only get the current arrangeview-time position
    integer screen_x_start
    if isSet=false, this parameter returns the start-time-position at screen-pixel-x position. set this and screen_x_end to 0 for the whole shown arrangeview start/endtime
    integer screen_x_end
    if isSet=false, this parameter returns the end-time-position at screen-pixel-x position. set this and screen_x_end to 0 for the whole shown arrangeview start/endtime
    number start_time
    if isSet=true, this is the startposition of the arrangeview(the left side) in seconds
    number end_time
    if isSet=true, this is the startposition of the arrangeview(the right side) in seconds


    ^ Reaper version 5.965 SWS version 2.13.2.0NF_ScrollHorizontallyByPercentage

    C: void NF_ScrollHorizontallyByPercentage(int amount)
    EEL2: extension_api("NF_ScrollHorizontallyByPercentage", int amount)
    Lua: reaper.NF_ScrollHorizontallyByPercentage(integer amount)
    Python: NF_ScrollHorizontallyByPercentage(Int amount)

    100 means scroll one page. Negative values scroll left.

    Parameters:
    integer amount


    ^ Reaper version 5.62adjustZoom

    C: void adjustZoom(double amt, int forceset, bool doupd, int centermode)
    EEL2: adjustZoom(amt, int forceset, bool doupd, int centermode)
    Lua: reaper.adjustZoom(number amt, integer forceset, boolean doupd, integer centermode)
    Python: RPR_adjustZoom(Float amt, Int forceset, Boolean doupd, Int centermode)

    Sets horizontal zoom in track view.

    Parameters:
    number amt
    the zoom factor, positive values=zoom in, negative values=zoom out, 0=no zoom
    integer forceset
    forces one amt-zoomfactor(non zero) or allows repeatable zoom-in/zoomout(0)
    boolean doupd
    true, updates the track-view instantly; false, or only when mouse hovers over trackview
    integer centermode
    decides, what shall be in the center of the view. The following are available:
    -1, default selection, as set in the reaper-prefs,
      0, edit-cursor or playcursor(if it's in the current zoomfactor of the view during playback/recording) in center,
      1, keeps edit-cursor in center of zoom
      2, keeps center of view in the center during zoom
      3, keeps in center of zoom, what is beneath the mousecursor


    ^ Reaper version 5.62GR_SelectColor

    C: int GR_SelectColor(HWND hwnd, int* colorOut)
    EEL2: int GR_SelectColor(HWND hwnd, int &color)
    Lua: integer retval, integer color = reaper.GR_SelectColor(HWND hwnd)
    Python: (Int retval, HWND hwnd, Int colorOut) = RPR_GR_SelectColor(hwnd, colorOut)

    Runs the system color chooser dialog. Returns 0 if the user cancels the dialog.

    Returnvalues:
    integer retval
    1, user chose a color; 0, user canceled dialog
    integer color
    the returned color as a native-color-value.

    Parameters:
    HWND hwnd
    the window, in which to open the dialog. Nil is allowed in Lua.


    ^ Reaper version 5.62GetUserFileNameForRead

    C: bool GetUserFileNameForRead(char* filenameNeed4096, const char* title, const char* defext)
    EEL2: bool GetUserFileNameForRead(#filenameNeed4096, "title", "defext")
    Lua: boolean retval, string filenameNeed4096 = reaper.GetUserFileNameForRead(string filenameNeed4096, string title, string defext)
    Python: (Boolean retval, String filenameNeed4096, String title, String defext) = RPR_GetUserFileNameForRead(filenameNeed4096, title, defext)

    Opens a filerequester, where a user can select a file.
    The requester only returns the file, but doesn't open or write to it. That said, this function can be used for both use-cases, BUT: keep in mind, that it shows an "open"-button, even if you want to use it in code for saving a file. You also can't use it for "create new file"-usecases, as you can't choose nonexisting files.

    Returnvalues:
    boolean retval
    true, if the user selected a file; false if the user canceled the dialog
    string filenameNeed4096
    the filename including the full absolute path of the file the user selected

    Parameters:
    string filenameNeed4096
    default-filename the requester uses, until the user selects another file.
    string title
    title of the file-requester-window
    string defext
    the filter for the fileextensions. Only files with an extension defined in defext are shown.
    examples:
    "", all files
    "*", all files
    "ini", only .ini-files
    "*.ini", only .ini-files
    "*.txt; *.ini; *.exe", shows .txt; .ini; .exe-files


    ^ Reaper version 5.979GetUserInputs

    C: bool GetUserInputs(const char* title, int num_inputs, const char* captions_csv, char* retvals_csv, int retvals_csv_sz)
    EEL2: bool GetUserInputs("title", int num_inputs, "captions_csv", #retvals_csv)
    Lua: boolean retval, string retvals_csv = reaper.GetUserInputs(string title, integer num_inputs, string captions_csv, string retvals_csv)
    Python: (Boolean retval, String title, Int num_inputs, String captions_csv, String retvals_csv, Int retvals_csv_sz) = RPR_GetUserInputs(title, num_inputs, captions_csv, retvals_csv, retvals_csv_sz)

    Opens a window with input-fields to get values from the user.
    If a caption begins with *, for example "*password", the edit field will not display the input text.
    Maximum fields is 16. Values are returned as a comma/custom separator-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(separator=\n is recommended).

    Example:

    
        retval, retvals_csv = reaper.GetUserInputs("Title", 2, "Hello,World, separator=\n", "defaultvalue1\ndefaultvalue2")
    


    will return the values input by the user, separated by a newline.

    \n is recommended, as this allows the user entering everything, a one-lined-inputbox can handle.

    Important: the separator-field in the captions has no effect on how captions in parameter captions_csv are separated from each other. They still need to be separated by commas!

    Note: the parameter retvals_csv follows undisclosed csv rules. This is important when you want to set the default-captions for multiple input-field.
    For instance every entry for each input-field:

    - must contain an even number of quotes/single quotes
    - every ( or must be closed by with )

    otherwise the separator will be ignored and the default-retvals will show in the wrong fields.

    Example:
    
    a retval_csv of I'm enlightened,I am too
    

    with one singlequote in it (the one in I'm) will NOT be shown in two fields

    
    I'm enlightened
    I am too
    


    but rather in one field as

    
    I'm enlightened,I am too
    


    These can't be escaped due Reaper's API-limitation. Keep this in mind!

    Another note when only having one entry:
    You may run into the situation of wanting to have a caption, that has a , in it.
    This could be interpreted as separator, so an caption entry like:
    "this, is, my, entry"
    will be shown like
    "this"

    To avoid this, use separator=\b in the caption_csv, so
    "this, is, my, entry, separator=\b"
    will be shown as
    "this, is, my, entry".


    Returnvalues:
    boolean retval
    did the user click OK in the dialog(true) or close/cancel the dialog(false)
    string retvals_csv
    the data from each of the input-fields, separated by a comma , or a separator you chose.

    Parameters:
    string title
    title of the window
    integer num_inputs
    number of input-fields, 1-16.
    string captions_csv
    a string with the captions for each input-field, each separated by a comma. Can be fewer than num_inputs. If a caption begins with *, the inputfield will display * instead of characters(for i.e. passwords).
    string retvals_csv
    default-values for each input-field, separated by a comma or a separator you chose.


    ^ Reaper version 5.974 JS version 0.962JS_Dialog_BrowseForFolder

    C: int JS_Dialog_BrowseForFolder(const char* caption, const char* initialFolder, char* folderOutNeedBig, int folderOutNeedBig_sz)
    EEL2: int extension_api("JS_Dialog_BrowseForFolder", "caption", "initialFolder", #folder)
    Lua: integer retval, string folder = reaper.JS_Dialog_BrowseForFolder(string caption, string initialFolder)
    Python: (Int retval, String caption, String initialFolder, String folderOutNeedBig, Int folderOutNeedBig_sz) = JS_Dialog_BrowseForFolder(caption, initialFolder, folderOutNeedBig, folderOutNeedBig_sz)

    retval is 1 if a folder was selected, 0 if the user canceled the dialog, and -1 if an error occurred.

    Returnvalues:
    integer retval
    0, no folder was selected(user hit cancel-button); 1, folder was selected; -1, in case of an error
    string folder
    the path to the folder that was selected

    Parameters:
    string caption
    the captiontext for the folder-selection dialog
    string initialFolder
    the path to the folder, which shall be highlighted initially


    ^ Reaper version 5.974 JS version 0.986JS_Dialog_BrowseForOpenFiles

    C: int JS_Dialog_BrowseForOpenFiles(const char* windowTitle, const char* initialFolder, const char* initialFile, const char* extensionList, bool allowMultiple, char* fileNamesOutNeedBig, int fileNamesOutNeedBig_sz)
    EEL2: int extension_api("JS_Dialog_BrowseForOpenFiles", "windowTitle", "initialFolder", "initialFile", "extensionList", bool allowMultiple, #fileNames)
    Lua: integer retval, string fileNames = reaper.JS_Dialog_BrowseForOpenFiles(string windowTitle, string initialFolder, string initialFile, string extensionList, boolean allowMultiple)
    Python: (Int retval, String windowTitle, String initialFolder, String initialFile, String extensionList, Boolean allowMultiple, String fileNamesOutNeedBig, Int fileNamesOutNeedBig_sz) = JS_Dialog_BrowseForOpenFiles(windowTitle, initialFolder, initialFile, extensionList, allowMultiple, fileNamesOutNeedBig, fileNamesOutNeedBig_sz)

    If allowMultiple is true, multiple files may be selected. The returned string is \0-separated, with the first substring containing the folder path and subsequent substrings containing the file names.
    * On macOS, the first substring may be empty, and each file name will then contain its entire path.
    * This function only allows selection of existing files, and does not allow creation of new files.

    extensionList is a string containing pairs of \0-terminated substrings. The last substring must be terminated by two \0 characters. Each pair defines one filter pattern:
    * The first substring in each pair describes the filter in user-readable form (for example, "Lua script files (*.lua)") and will be displayed in the dialog box.
    * The second substring specifies the filter that the operating system must use to search for the files (for example, "*.txt"; the wildcard should not be omitted). To specify multiple extensions for a single display string, use a semicolon to separate the patterns (for example, "*.lua;*.eel").

    An example of an extensionList string:
    "ReaScript files\0*.lua;*.eel\0Lua files (.lua)\0*.lua\0EEL files (.eel)\0*.eel\0\0".

    On macOS, file dialogs do not accept empty extensionLists, nor wildcard extensions (such as "All files\0*.*\0\0"), so each acceptable extension must be listed explicitly. On Linux and Windows, wildcard extensions are acceptable, and if the extensionList string is empty, the dialog will display a default "All files (*.*)" filter.

    retval is 1 if one or more files were selected, 0 if the user cancelled the dialog, or negative if an error occurred.

    Displaying \0-separated strings:
    * REAPER's IDE and ShowConsoleMsg only display strings up to the first \0 byte. If multiple files were selected, only the first substring containing the path will be displayed. This is not a problem for Lua or EEL, which can access the full string beyond the first \0 byte as usual.

    Returnvalues:
    integer retval
    1, file was selected; 0, no file selected; -1, in case of an error
    string fileNames
    the selected filenames.
    when parameter allowMultiple=false, this returnvalue holds filename with path
    when parameter allowMultiple=true, this returnvalue holds the path and all selected files, separated by \0
         path\0filename1\0filename2\0filename3

    Parameters:
    string windowTitle
    the title of the file-selection-window
    string initialFolder
    the initial folder opened in the file-chooser-dialog
    string initialFile
    the default-filename already entered in the filename-entrybox
    string extensionList
    a list of extensions that can be selected in the selection-list.
    the list has the following structure(separate the entries with a \0):
          "description of type1\0type1\0description of type 2\0type2\0"
    the description of type can be anything that describes the type(s),
    to define one type, write: *.ext
    to define multiple types, write: *.ext;*.ext2;*.ext3
    the extensionList must end with a \0
    boolean allowMultiple
    true, allows selection of multiple files; false, allows only selection of one file


    ^ Reaper version 5.974 JS version 0.986JS_Dialog_BrowseForSaveFile

    C: int JS_Dialog_BrowseForSaveFile(const char* windowTitle, const char* initialFolder, const char* initialFile, const char* extensionList, char* fileNameOutNeedBig, int fileNameOutNeedBig_sz)
    EEL2: int extension_api("JS_Dialog_BrowseForSaveFile", "windowTitle", "initialFolder", "initialFile", "extensionList", #fileName)
    Lua: integer retval, string fileName = reaper.JS_Dialog_BrowseForSaveFile(string windowTitle, string initialFolder, string initialFile, string extensionList)
    Python: (Int retval, String windowTitle, String initialFolder, String initialFile, String extensionList, String fileNameOutNeedBig, Int fileNameOutNeedBig_sz) = JS_Dialog_BrowseForSaveFile(windowTitle, initialFolder, initialFile, extensionList, fileNameOutNeedBig, fileNameOutNeedBig_sz)

    Opens a file-chooser-dialog for saving operations.

    retval is 1 if a file was selected, 0 if the user cancelled the dialog, or negative if an error occurred.

    extensionList is a string containing pairs of 0-terminated substrings. The last substring must be terminated by two 0 characters. Each pair defines one filter pattern:
    * The first substring in each pair describes the filter in user-readable form (for example, "Lua script files (*.lua)") and will be displayed in the dialog box.
    * The second substring specifies the filter that the operating system must use to search for the files (for example, "*.txt"; the wildcard should not be omitted). To specify multiple extensions for a single display string, use a semicolon to separate the patterns (for example, "*.lua;*.eel").

    An example of an extensionList string:
    "ReaScript files\0*.lua;*.eel\0Lua files (.lua)\0*.lua\0EEL files (.eel)\0*.eel\0\0".

    If the extensionList string is empty, it will display the default "All files (*.*)" filter.

    Returnvalues:
    integer retval
    1, file was selected; 0, no file selected; -1, in case of an error
    string fileNames
    the selected filename.

    Parameters:
    string windowTitle
    the title of the file-selection-window
    string initialFolder
    the initial folder opened in the file-chooser-dialog
    string initialFile
    the default-filename already entered in the filename-entrybox
    string extensionList
    a list of extensions that can be selected in the selection-list.
    the list has the following structure(separate the entries with a \0):
          "description of type1\0type1\0description of type 2\0type2\0"
    the description of type can be anything that describes the type(s),
    to define one type, write: *.ext
    to define multiple types, write: *.ext;*.ext2;*.ext3
    the extensionList must end with a \0


    ^ Reaper version 5.62MB

    C: int MB(const char* msg, const char* title, int type)
    EEL2: int MB("msg", "title", int type)
    Lua: integer retval = reaper.MB(string msg, string title, integer type)
    Python: Int retval = RPR_MB(String msg, String title, Int type)

    Shows Messagebox with user-clickable buttons.

    Returnvalues:
    integer retval
    the button pressed by the user
    1, OK
    2, CANCEL
    3, ABORT
    4, RETRY
    5, IGNORE
    6, YES
    7, NO

    Parameters:
    string msg
    the message, that shall be shown in messagebox
    string title
    the title of the messagebox
    string type
    which buttons shall be shown in the messagebox
    0, OK
    1, OK CANCEL
    2, ABORT RETRY IGNORE
    3, YES NO CANCEL
    4, YES NO
    5, RETRY CANCEL


    ^ Reaper version 5.62 SWS version 2.9.7SNM_SelectResourceBookmark

    C: int SNM_SelectResourceBookmark(const char* name)
    EEL2: int extension_api("SNM_SelectResourceBookmark", "name")
    Lua: integer retval = reaper.SNM_SelectResourceBookmark(string name)
    Python: Int retval = SNM_SelectResourceBookmark(String name)

    [S&M] Select a bookmark of the Resources window. Returns the related bookmark id (or -1 if failed).

    Returnvalues:
    integer retval

    Parameters:
    string name


    ^ Reaper version 5.62 SWS version 2.9.7SNM_TieResourceSlotActions

    C: void SNM_TieResourceSlotActions(int bookmarkId)
    EEL2: extension_api("SNM_TieResourceSlotActions", int bookmarkId)
    Lua: reaper.SNM_TieResourceSlotActions(integer bookmarkId)
    Python: SNM_TieResourceSlotActions(Int bookmarkId)

    [S&M] Attach Resources slot actions to a given bookmark.

    Parameters:
    integer bookmarkId


    ^ Reaper version 6.72ShowActionList

    C: void ShowActionList(KbdSectionInfo* section, HWND callerWnd)
    EEL2: ShowActionList(KbdSectionInfo section, HWND callerWnd)
    Lua: reaper.ShowActionList(KbdSectionInfo section, optional HWND callerWnd)
    Python: RPR_ShowActionList(KbdSectionInfo section, HWND callerWnd)

    shows the action-list

    Parameters:
    KbdSectionInfo section
    0, Main  
    100, Main (alt recording)  
    32060, MIDI Editor  
    32061, MIDI Event List Editor  
    32062, MIDI Inline Editor  
    32063, Media Explorer  
    optional HWND callerWnd
    the HWND that shall call the ActionList; can be nil


    ^ Reaper version 5.62ShowMessageBox

    C: int ShowMessageBox(const char* msg, const char* title, int type)
    EEL2: int ShowMessageBox("msg", "title", int type)
    Lua: integer retval = reaper.ShowMessageBox(string msg, string title, integer type)
    Python: Int retval = RPR_ShowMessageBox(String msg, String title, Int type)

    Shows Messagebox with user-clickable buttons.

    Returnvalues:
    integer retval
    the button pressed by the user
    1, OK
    2, CANCEL
    3, ABORT
    4, RETRY
    5, IGNORE
    6, YES
    7, NO

    Parameters:
    string msg
    the message, that shall be shown in messagebox
    string title
    the title of the messagebox
    integer type
    which buttons shall be shown in the messagebox
    0, OK
    1, OK CANCEL
    2, ABORT RETRY IGNORE
    3, YES NO CANCEL
    4, YES NO
    5, RETRY CANCEL


    ^ Reaper version 5.62ViewPrefs

    C: void ViewPrefs(int page, const char* pageByName)
    EEL2: ViewPrefs(int page, "pageByName")
    Lua: reaper.ViewPrefs(integer page, string pageByName)
    Python: RPR_ViewPrefs(Int page, String pageByName)

    Opens the prefs to a page, use pageByName if page is 0.

    Parameters:
    integer page
    the idx of the preferences-page. The following are valid:
    139, General
    474, Paths
    219, Keyboard/Multitouch
    212, Project
    178, Track/Send Defaults
    477, Media Item Defaults
    156, Audio
    118, Device
    153, MIDI Devices
    203, Buffering
    584, Mute/Solo
    136, Playback
    517, Seeking
    137, Recording
    518, Loop Recording
    478, Rendering
    213, Appearance
    236, Media(Appearance)
    459, Peaks/Waveforms
    524, Fades/Crossfades
    458, Track Control Panels
    172, Editing Behavior
    447, Envelope Display
    519, Automation
    215, Mouse
    466, Mouse Modifiers
    490, MIDI Editor
    138, Media
    257, MIDI
    449, Video/REX/Misc
    154, Plug-ins
    505, Compatibility
    210, VST
    209, ReWire/DX
    515, ReaScript
    227, ReaMote
    257, Control/OSC/web
    160, External Editors
    string pageByName


    ^ Reaper version 6.02DockGetPosition

    C: int DockGetPosition(int whichDock)
    EEL2: int DockGetPosition(int whichDock)
    Lua: integer dock_position = reaper.DockGetPosition(integer whichDock)
    Python: Int retval = RPR_DockGetPosition(Int whichDock)

    returns the position of docker whichDock

    Returnvalues:
    integer dock_position

    Parameters:
    integer whichDock
    the docker, whose position you want to get
    -1, not found
    0, bottom
    1, left
    2, top
    3, right
    4, floating


    ^ Reaper version 5.62DockIsChildOfDock

    C: int DockIsChildOfDock(HWND hwnd, bool* isFloatingDockerOut)
    EEL2: int DockIsChildOfDock(HWND hwnd, bool &isFloatingDocker)
    Lua: integer retval, boolean isFloatingDocker = reaper.DockIsChildOfDock(HWND hwnd)
    Python: (Int retval, HWND hwnd, Boolean isFloatingDockerOut) = RPR_DockIsChildOfDock(hwnd, isFloatingDockerOut)

    returns dock index that contains hwnd, or -1

    Returnvalues:
    integer retval
    boolean isFloatingDocker

    Parameters:
    HWND hwnd


    ^ Reaper version 5.62DockWindowActivate

    C: void DockWindowActivate(HWND hwnd)
    EEL2: DockWindowActivate(HWND hwnd)
    Lua: reaper.DockWindowActivate(HWND hwnd)
    Python: RPR_DockWindowActivate(HWND hwnd)



    Parameters:
    HWND hwnd


    ^ Reaper version 5.62DockWindowAdd

    C: void DockWindowAdd(HWND hwnd, const char* name, int pos, bool allowShow)
    EEL2: DockWindowAdd(HWND hwnd, "name", int pos, bool allowShow)
    Lua: reaper.DockWindowAdd(HWND hwnd, string name, integer pos, boolean allowShow)
    Python: RPR_DockWindowAdd(HWND hwnd, String name, Int pos, Boolean allowShow)



    Parameters:
    HWND hwnd
    string name
    integer pos
    boolean allowShow


    ^ Reaper version 5.62DockWindowAddEx

    C: void DockWindowAddEx(HWND hwnd, const char* name, const char* identstr, bool allowShow)
    EEL2: DockWindowAddEx(HWND hwnd, "name", "identstr", bool allowShow)
    Lua: reaper.DockWindowAddEx(HWND hwnd, string name, string identstr, boolean allowShow)
    Python: RPR_DockWindowAddEx(HWND hwnd, String name, String identstr, Boolean allowShow)



    Parameters:
    HWND hwnd
    string name
    string identstr
    boolean allowShow


    ^ Reaper version 5.62DockWindowRefresh

    C: void DockWindowRefresh()
    EEL2: DockWindowRefresh()
    Lua: reaper.DockWindowRefresh()
    Python: RPR_DockWindowRefresh()

    Refreshes docked windows.


    ^ Reaper version 5.62DockWindowRefreshForHWND

    C: void DockWindowRefreshForHWND(HWND hwnd)
    EEL2: DockWindowRefreshForHWND(HWND hwnd)
    Lua: reaper.DockWindowRefreshForHWND(HWND hwnd)
    Python: RPR_DockWindowRefreshForHWND(HWND hwnd)



    Parameters:
    HWND hwnd


    ^ Reaper version 5.62DockWindowRemove

    C: void DockWindowRemove(HWND hwnd)
    EEL2: DockWindowRemove(HWND hwnd)
    Lua: reaper.DockWindowRemove(HWND hwnd)
    Python: RPR_DockWindowRemove(HWND hwnd)



    Parameters:
    HWND hwnd


    ^ Reaper version 5.62Dock_UpdateDockID

    C: void Dock_UpdateDockID(const char* ident_str, int whichDock)
    EEL2: Dock_UpdateDockID("ident_str", int whichDock)
    Lua: reaper.Dock_UpdateDockID(string ident_str, integer whichDock)
    Python: RPR_Dock_UpdateDockID(String ident_str, Int whichDock)

    updates preference for docker window ident_str to be in dock whichDock on next open

    Parameters:
    string ident_str
    integer whichDock


    ^ Reaper version 5.62GetConfigWantsDock

    C: int GetConfigWantsDock(const char* ident_str)
    EEL2: int GetConfigWantsDock("ident_str")
    Lua: integer dock_id = reaper.GetConfigWantsDock(string ident_str)
    Python: Int retval = RPR_GetConfigWantsDock(String ident_str)

    gets the dock ID desired by ident_str, if any

    Returnvalues:
    integer dock_id

    Parameters:
    string ident_str


    ^ Reaper version 5.974 JS version 1.215JS_Composite

    C: int JS_Composite(void* windowHWND, int dstx, int dsty, int dstw, int dsth, void* sysBitmap, int srcx, int srcy, int srcw, int srch, bool* autoUpdateOptional)
    EEL2: int extension_api("JS_Composite", void* windowHWND, int dstx, int dsty, int dstw, int dsth, void* sysBitmap, int srcx, int srcy, int srcw, int srch, optional boolean autoUpdateOptional)
    Lua: integer retval = reaper.JS_Composite(identifier windowHWND, integer dstx, integer dsty, integer dstw, integer dsth, identifier sysBitmap, integer srcx, integer srcy, integer srcw, integer srch, optional boolean autoUpdate)
    Python: (Int retval, void windowHWND, Int dstx, Int dsty, Int dstw, Int dsth, void sysBitmap, Int srcx, Int srcy, Int srcw, Int srch, Boolean autoUpdateOptional) = JS_Composite(windowHWND, dstx, dsty, dstw, dsth, sysBitmap, srcx, srcy, srcw, srch, autoUpdateOptional)

    Composites a LICE bitmap with a REAPER window. Each time that the window is re-drawn, the bitmap will be blitted over the window's client area (with per-pixel alpha blending).

    * If dstw or dsth is -1, the bitmap will be stretched to fill the width or height of the window, respectively.

    * autoUpdate is an optional parameter that is false by default. If true, JS_Composite will automatically invalidate and re-draw the part of the window that covers the current position of the bitmap, and if the bitmap is being moved, also the previous position. (If only one or a handful of bitmaps are being moved across the screen, autoUpdate should result in smoother animation on WindowsOS; if numerous bitmaps are spread over the entire window, it may be faster to disable autoUpdate and instead call JS_Window_InvalidateRect explicitly once all bitmaps have been moved.)

    * InvalidateRect should also be called whenever the contents of the bitmap contents have been changed, but not the position, to trigger a window update.

    * On WindowsOS, the key to reducing flickering is to slow down the frequency at which the window is re-drawn. InvalidateRect should only be called when absolutely necessary, preferably not more than 20 times per second. (Also refer to the JS_Composite_Delay function.)

    * On WindowsOS, flickering can further be reduced by keeping the invalidated area as small as possible, covering only the bitmaps that have been edited or moved. However, if numerous bitmaps are spread over the entire window, it may be faster to simply invalidate the entire client area.

    * This function should not be applied directly to top-level windows, but rather to child windows.

    * Some classes of UI elements, particularly buttons, do not take kindly to being composited, and may crash REAPER.

    * On WindowsOS, GDI blitting does not perform alpha multiplication of the source bitmap. For proper color rendering, a separate pre-multiplication step is therefore required, using either LICE_Blit or LICE_ProcessRect.

    Returns: 1 if successful, otherwise -1 = windowHWND is not a window, -3 = Could not obtain the original window process, -4 = sysBitmap is not a LICE bitmap, -5 = sysBitmap is not a system bitmap, -6 = Could not obtain the window HDC, -7 = Error when subclassing to new window process.


    Returnvalues:
    integer retval
    1 if successful
    -1 = windowHWND is not a window
    -3 = Could not obtain the original window process
    -4 = sysBitmap is not a LICE bitmap
    -5 = sysBitmap is not a system bitmap
    -6 = Could not obtain the window HDC
    -7 = Error when subclassing to new window process.

    Parameters:
    identifier windowHWND
    integer dstx
    integer dsty
    integer dstw
    integer dsth
    identifier sysBitmap
    integer srcx
    integer srcy
    integer srcw
    integer srch
    optional boolean autoUpdate


    ^ Reaper version 5.974 JS version 1.010JS_Composite_Delay

    C: int JS_Composite_Delay(void* windowHWND, double minTime, double maxTime, int numBitmapsWhenMax, double* prevMinTimeOut, double* prevMaxTimeOut, int* prevBitmapsOut)
    EEL2: int extension_api("JS_Composite_Delay", void* windowHWND, minTime, maxTime, int numBitmapsWhenMax, &prevMinTime, &prevMaxTime, int &prevBitmaps)
    Lua: integer retval, number prevMinTime, number prevMaxTime, integer prevBitmaps = reaper.JS_Composite_Delay(identifier windowHWND, number minTime, number maxTime, integer numBitmapsWhenMax)
    Python: (Int retval, void windowHWND, Float minTime, Float maxTime, Int numBitmapsWhenMax, Float prevMinTimeOut, Float prevMaxTimeOut, Int prevBitmapsOut) = JS_Composite_Delay(windowHWND, minTime, maxTime, numBitmapsWhenMax, prevMinTimeOut, prevMaxTimeOut, prevBitmapsOut)

    On WindowsOS, flickering of composited images can be improved considerably by slowing the refresh rate of the window. The optimal refresh rate may depend on the number of composited bitmaps.

    minTime is the minimum refresh delay, in seconds, when only one bitmap is composited onto the window. The delay time will increase linearly with the number of bitmaps, up to a maximum of maxTime when numBitmapsWhenMax is reached.

    If both minTime and maxTime are 0, all delay settings for the window are cleared.

    Returns:
    * retval = 1 if successful, 0 if arguments are invalid (i.e. if maxTime < minTime, or maxBitmaps < 1).
    * If delay times have not previously been set for this window, prev time values are 0.

    Returnvalues:
    integer retval
    number prevMinTime
    number prevMaxTime
    integer prevBitmaps

    Parameters:
    identifier windowHWND
    number minTime
    number maxTime
    integer numBitmapsWhenMax


    ^ Reaper version 5.974 JS version 0.980JS_Composite_ListBitmaps

    C: int JS_Composite_ListBitmaps(void* windowHWND, char* listOutNeedBig, int listOutNeedBig_sz)
    EEL2: int extension_api("JS_Composite_ListBitmaps", void* windowHWND, #list)
    Lua: integer retval, string list = reaper.JS_Composite_ListBitmaps(identifier windowHWND)
    Python: (Int retval, void windowHWND, String listOutNeedBig, Int listOutNeedBig_sz) = JS_Composite_ListBitmaps(windowHWND, listOutNeedBig, listOutNeedBig_sz)

    Returns all bitmaps composited to the given window.

    The list is formatted as a comma-separated string of hexadecimal values, each representing a LICE_IBitmap* pointer.

    retval is the number of linked bitmaps found, or negative if an error occured.


    Returnvalues:
    integer retval
    string list

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 1.002JS_Composite_Unlink

    C: void JS_Composite_Unlink(void* windowHWND, void* bitmapOptional, bool* autoUpdateOptional)
    EEL2: extension_api("JS_Composite_Unlink", void* windowHWND, void* bitmap, boolean autoUpdateOptional)
    Lua: reaper.JS_Composite_Unlink(identifier windowHWND, identifier bitmap, boolean autoUpdate)
    Python: (void windowHWND, void bitmapOptional, Boolean autoUpdateOptional) = JS_Composite_Unlink(windowHWND, bitmapOptional, autoUpdateOptional)

    Unlinks the window and bitmap.

    * autoUpdate is an optional parameter. If unlinking a single bitmap and autoUpdate is true, the function will automatically re-draw the window to remove the blitted image.

    If no bitmap is specified, all bitmaps composited to the window will be unlinked -- even those by other scripts.

    Parameters:
    identifier windowHWND
    identifier bitmap
    boolean autoUpdate


    ^ Reaper version 5.974 JS version 1.002JS_GDI_Blit

    C: void JS_GDI_Blit(void* destHDC, int dstx, int dsty, void* sourceHDC, int srcx, int srxy, int width, int height, const char* modeOptional)
    EEL2: extension_api("JS_GDI_Blit", void* destHDC, int dstx, int dsty, void* sourceHDC, int srcx, int srxy, int width, int height, optional "mode")
    Lua: reaper.JS_GDI_Blit(identifier destHDC, integer dstx, integer dsty, identifier sourceHDC, integer srcx, integer srxy, integer width, integer height, optional string mode)
    Python: JS_GDI_Blit(void destHDC, Int dstx, Int dsty, void sourceHDC, Int srcx, Int srxy, Int width, Int height, String modeOptional)

    Blits between two device contexts, which may include LICE "system bitmaps".

    mode: Optional parameter. "SRCCOPY" by default, or specify "ALPHA" to enable per-pixel alpha blending.

    WARNING: On WindowsOS, GDI_Blit does not perform alpha multiplication of the source bitmap. For proper color rendering, a separate pre-multiplication step is therefore required, using either LICE_Blit or LICE_ProcessRect.


    Parameters:
    identifier destHDC
    integer dstx
    integer dsty
    identifier sourceHDC
    integer srcx
    integer srxy
    integer width
    integer height
    optional string mode


    ^ Reaper version 5.974 JS version 0.951JS_GDI_CreateFillBrush

    C: void* JS_GDI_CreateFillBrush(int color)
    EEL2: void* extension_api("JS_GDI_CreateFillBrush", int color)
    Lua: identifier font = reaper.JS_GDI_CreateFillBrush(integer color)
    Python: identifier font = JS_GDI_CreateFillBrush(Int color)



    Returnvalues:
    identifier font

    Parameters:
    integer color


    ^ Reaper version 5.974 JS version 0.951JS_GDI_CreateFont

    C: void* JS_GDI_CreateFont(int height, int weight, int angle, bool italic, bool underline, bool strikeOut, const char* fontName)
    EEL2: void* extension_api("JS_GDI_CreateFont", int height, int weight, int angle, bool italic, bool underline, bool strike, "fontName")
    Lua: identifier font = reaper.JS_GDI_CreateFont(integer height, integer weight, integer angle, boolean italic, boolean underline, boolean strike, string fontName)
    Python: identifier font = JS_GDI_CreateFont(Int height, Int weight, Int angle, Boolean italic, Boolean underline, Boolean strikeOut, String fontName)

    Parameters:

    * weight: 0 - 1000, with 0 = auto, 400 = normal and 700 = bold.

    * angle: the angle, in tenths of degrees, between the text and the x-axis of the device.

    * fontName: If empty string "", uses first font that matches the other specified attributes.



               Note: Text color must be set separately.


    Returnvalues:
    identifier font

    Parameters:
    integer height
    integer weight
    integer angle
    boolean italic
    boolean underline
    boolean strike
    string fontName


    ^ Reaper version 5.974 JS version 0.951JS_GDI_CreatePen

    C: void* JS_GDI_CreatePen(int width, int color)
    EEL2: void* extension_api("JS_GDI_CreatePen", int width, int color)
    Lua: identifier pen = reaper.JS_GDI_CreatePen(integer width, integer color)
    Python: identifier pen = JS_GDI_CreatePen(Int width, Int color)



    Returnvalues:
    identifier pen

    Parameters:
    integer width
    integer color


    ^ Reaper version 5.974 JS version 0.951JS_GDI_DeleteObject

    C: void JS_GDI_DeleteObject(void* GDIObject)
    EEL2: extension_api("JS_GDI_DeleteObject", void* GDIObject)
    Lua: reaper.JS_GDI_DeleteObject(identifier GDIObject)
    Python: JS_GDI_DeleteObject(void GDIObject)



    Parameters:
    identifier GDIObject


    ^ Reaper version 5.974 JS version 0.951JS_GDI_DrawText

    C: int JS_GDI_DrawText(void* deviceHDC, const char* text, int len, int left, int top, int right, int bottom, const char* align))
    EEL2: int extension_api("JS_GDI_DrawText", void* deviceHDC, "text", int len, int left, int top, int right, int bottom, "align)")
    Lua: integer retval = reaper.JS_GDI_DrawText(identifier deviceHDC, string text, integer len, integer left, integer top, integer right, integer bottom, string align))
    Python: Int retval = JS_GDI_DrawText(void deviceHDC, String text, Int len, Int left, Int top, Int right, Int bottom, String align))

    Parameters:

    * align: Combination of: "TOP", "VCENTER", "LEFT", "HCENTER", "RIGHT", "BOTTOM", "WORDBREAK", "SINGLELINE", "NOCLIP", "CALCRECT", "NOPREFIX" or "ELLIPSIS"


    Returnvalues:
    integer

    Parameters:
    identifier deviceHDC
    string text
    integer len
    integer left
    integer top
    integer right
    integer bottom
    string align


    ^ Reaper version 5.974 JS version 0.951JS_GDI_FillEllipse

    C: void JS_GDI_FillEllipse(void* deviceHDC, int left, int top, int right, int bottom)
    EEL2: extension_api("JS_GDI_FillEllipse", void* deviceHDC, int left, int top, int right, int bottom)
    Lua: reaper.JS_GDI_FillEllipse(identifier deviceHDC, integer left, integer top, integer right, integer bottom)
    Python: JS_GDI_FillEllipse(void deviceHDC, Int left, Int top, Int right, Int bottom)



    Parameters:
    identifier deviceHDC
    integer left
    integer top
    integer right
    integer bottom


    ^ Reaper version 5.974 JS version 0.951JS_GDI_FillPolygon

    C: void JS_GDI_FillPolygon(void* deviceHDC, const char* packedX, const char* packedY, int numPoints)
    EEL2: extension_api("JS_GDI_FillPolygon", void* deviceHDC, "packedX", "packedY", int numPoints)
    Lua: reaper.JS_GDI_FillPolygon(identifier deviceHDC, string packedX, string packedY, integer numPoints)
    Python: JS_GDI_FillPolygon(void deviceHDC, String packedX, String packedY, Int numPoints)

    packedX and packedY are strings of points, each packed as "

    Parameters:
    identifier deviceHDC
    string packedX
    string packedY
    integer numPoints


    ^ Reaper version 5.974 JS version 0.951JS_GDI_FillRect

    C: void JS_GDI_FillRect(void* deviceHDC, int left, int top, int right, int bottom)
    EEL2: extension_api("JS_GDI_FillRect", void* deviceHDC, int left, int top, int right, int bottom)
    Lua: reaper.JS_GDI_FillRect(identifier deviceHDC, integer left, integer top, integer right, integer bottom)
    Python: JS_GDI_FillRect(void deviceHDC, Int left, Int top, Int right, Int bottom)



    Parameters:
    identifier deviceHDC
    integer left
    integer top
    integer right
    integer bottom


    ^ Reaper version 5.974 JS version 0.951JS_GDI_FillRoundRect

    C: void JS_GDI_FillRoundRect(void* deviceHDC, int left, int top, int right, int bottom, int xrnd, int yrnd)
    EEL2: extension_api("JS_GDI_FillRoundRect", void* deviceHDC, int left, int top, int right, int bottom, int xrnd, int yrnd)
    Lua: reaper.JS_GDI_FillRoundRect(identifier deviceHDC, integer left, integer top, integer right, integer bottom, integer xrnd, integer yrnd)
    Python: JS_GDI_FillRoundRect(void deviceHDC, Int left, Int top, Int right, Int bottom, Int xrnd, Int yrnd)



    Parameters:
    identifier deviceHDC
    integer left
    integer top
    integer right
    integer bottom
    integer xrnd
    integer yrnd


    ^ Reaper version 5.974 JS version 0.951JS_GDI_GetSysColor

    C: int JS_GDI_GetSysColor(const char* GUIElement)
    EEL2: int extension_api("JS_GDI_GetSysColor", "GUIElement")
    Lua: integer retval = reaper.JS_GDI_GetSysColor(string GUIElement)
    Python: Int retval = JS_GDI_GetSysColor(String GUIElement)



    Returnvalues:
    integer

    Parameters:
    string GUIElement


    ^ Reaper version 5.974 JS version 0.951JS_GDI_GetTextColor

    C: int JS_GDI_GetTextColor(void* deviceHDC)
    EEL2: int extension_api("JS_GDI_GetTextColor", void* deviceHDC)
    Lua: integer retval = reaper.JS_GDI_GetTextColor(identifier deviceHDC)
    Python: Int retval = JS_GDI_GetTextColor(void deviceHDC)



    Returnvalues:
    integer

    Parameters:
    identifier deviceHDC


    ^ Reaper version 5.974 JS version 0.951JS_GDI_Line

    C: void JS_GDI_Line(void* deviceHDC, int x1, int y1, int x2, int y2)
    EEL2: extension_api("JS_GDI_Line", void* deviceHDC, int x1, int y1, int x2, int y2)
    Lua: reaper.JS_GDI_Line(identifier deviceHDC, integer x1, integer y1, integer x2, integer y2)
    Python: JS_GDI_Line(void deviceHDC, Int x1, Int y1, Int x2, Int y2)



    Parameters:
    identifier deviceHDC
    integer x1
    integer y1
    integer x2
    integer y2


    ^ Reaper version 5.974 JS version 0.951JS_GDI_Polyline

    C: void JS_GDI_Polyline(void* deviceHDC, const char* packedX, const char* packedY, int numPoints)
    EEL2: extension_api("JS_GDI_Polyline", void* deviceHDC, "packedX", "packedY", int numPoints)
    Lua: reaper.JS_GDI_Polyline(identifier deviceHDC, string packedX, string packedY, integer numPoints)
    Python: JS_GDI_Polyline(void deviceHDC, String packedX, String packedY, Int numPoints)

    packedX and packedY are strings of points, each packed as "

    Parameters:
    identifier deviceHDC
    string packedX
    string packedY
    integer numPoints


    ^ Reaper version 5.974 JS version 0.999JS_GDI_ReleaseDC

    C: void JS_GDI_ReleaseDC(void* windowHWND, void* deviceHDC)
    EEL2: extension_api("JS_GDI_ReleaseDC", void* windowHWND, void* deviceHDC)
    Lua: reaper.JS_GDI_ReleaseDC(identifier windowHWND, identifier deviceHDC)
    Python: JS_GDI_ReleaseDC(void windowHWND, void deviceHDC)

    To release a window HDC, both arguments must be supplied: the HWND as well as the HDC. To release a screen DC, only the HDC needs to be supplied.

    For compatibility with previous versions, the HWND and HDC can be supplied in any order.

    NOTE: Any GDI HDC should be released immediately after drawing, and deferred scripts should get and release new DCs in each cycle.

    Parameters:
    identifier windowHWND
    identifier deviceHDC


    ^ Reaper version 5.974 JS version 0.951JS_GDI_SelectObject

    C: void* JS_GDI_SelectObject(void* deviceHDC, void* GDIObject)
    EEL2: void* extension_api("JS_GDI_SelectObject", void* deviceHDC, void* GDIObject)
    Lua: identifier object = reaper.JS_GDI_SelectObject(identifier deviceHDC, identifier GDIObject)
    Python: identifier object = JS_GDI_SelectObject(void deviceHDC, void GDIObject)

    Activates a font, pen, or fill brush for subsequent drawing in the specified device context.


    Returnvalues:
    identifier object

    Parameters:
    identifier deviceHDC
    identifier GDIObject


    ^ Reaper version 5.974 JS version 0.951JS_GDI_SetPixel

    C: void JS_GDI_SetPixel(void* deviceHDC, int x, int y, int color)
    EEL2: extension_api("JS_GDI_SetPixel", void* deviceHDC, int x, int y, int color)
    Lua: reaper.JS_GDI_SetPixel(identifier deviceHDC, integer x, integer y, integer color)
    Python: JS_GDI_SetPixel(void deviceHDC, Int x, Int y, Int color)



    Parameters:
    identifier deviceHDC
    integer x
    integer y
    integer color


    ^ Reaper version 5.974 JS version 0.951JS_GDI_SetTextBkColor

    C: void JS_GDI_SetTextBkColor(void* deviceHDC, int color)
    EEL2: extension_api("JS_GDI_SetTextBkColor", void* deviceHDC, int color)
    Lua: reaper.JS_GDI_SetTextBkColor(identifier deviceHDC, integer color)
    Python: JS_GDI_SetTextBkColor(void deviceHDC, Int color)



    Parameters:
    identifier deviceHDC
    integer color


    ^ Reaper version 5.974 JS version 0.951JS_GDI_SetTextBkMode

    C: void JS_GDI_SetTextBkMode(void* deviceHDC, int mode)
    EEL2: extension_api("JS_GDI_SetTextBkMode", void* deviceHDC, int mode)
    Lua: reaper.JS_GDI_SetTextBkMode(identifier deviceHDC, integer mode)
    Python: JS_GDI_SetTextBkMode(void deviceHDC, Int mode)



    Parameters:
    identifier deviceHDC
    integer mode


    ^ Reaper version 5.974 JS version 0.951JS_GDI_SetTextColor

    C: void JS_GDI_SetTextColor(void* deviceHDC, int color)
    EEL2: extension_api("JS_GDI_SetTextColor", void* deviceHDC, int color)
    Lua: reaper.JS_GDI_SetTextColor(identifier deviceHDC, integer color)
    Python: JS_GDI_SetTextColor(void deviceHDC, Int color)



    Parameters:
    identifier deviceHDC
    integer color


    ^ Reaper version 5.974 JS version 1.002JS_GDI_StretchBlit

    C: void JS_GDI_StretchBlit(void* destHDC, int dstx, int dsty, int dstw, int dsth, void* sourceHDC, int srcx, int srxy, int srcw, int srch, const char* modeOptional)
    EEL2: extension_api("JS_GDI_StretchBlit", void* destHDC, int dstx, int dsty, int dstw, int dsth, void* sourceHDC, int srcx, int srxy, int srcw, int srch, optional "mode")
    Lua: reaper.JS_GDI_StretchBlit(identifier destHDC, integer dstx, integer dsty, integer dstw, integer dsth, identifier sourceHDC, integer srcx, integer srxy, integer srcw, integer srch, optional string mode)
    Python: JS_GDI_StretchBlit(void destHDC, Int dstx, Int dsty, Int dstw, Int dsth, void sourceHDC, Int srcx, Int srxy, Int srcw, Int srch, String modeOptional)

    Blits between two device contexts, which may include LICE "system bitmaps".

    modeOptional: "SRCCOPY" by default, or specify "ALPHA" to enable per-pixel alpha blending.

    WARNING: On WindowsOS, GDI_Blit does not perform alpha multiplication of the source bitmap. For proper color rendering, a separate pre-multiplication step is therefore required, using either LICE_Blit or LICE_ProcessRect.


    Parameters:
    identifier destHDC
    integer dstx
    integer dsty
    integer dstw
    integer dsth
    identifier sourceHDC
    integer srcx
    integer srxy
    integer srcw
    integer srch
    optional string mode


    ^ Reaper version 5.974 JS version 0.988JS_LICE_AlterBitmapHSV

    C: void JS_LICE_AlterBitmapHSV(void* bitmap, double hue, double saturation, double value)
    EEL2: extension_api("JS_LICE_AlterBitmapHSV", void* bitmap, hue, saturation, value)
    Lua: reaper.JS_LICE_AlterBitmapHSV(identifier bitmap, number hue, number saturation, number value)
    Python: (JS_LICE_AlterBitmapHSV(void bitmap, Float hue, Float saturation, Float value)

    Hue is rolled over, saturation and value are clamped, all 0..1. (Alpha remains unchanged.)

    Parameters:
    identifier bitmap
    number hue
    number saturation
    number value


    ^ Reaper version 5.974 JS version 0.988JS_LICE_AlterRectHSV

    C: void JS_LICE_AlterRectHSV(void* bitmap, int x, int y, int w, int h, double hue, double saturation, double value)
    EEL2: extension_api("JS_LICE_AlterRectHSV", void* bitmap, int x, int y, int w, int h, hue, saturation, value)
    Lua: reaper.JS_LICE_AlterRectHSV(identifier bitmap, integer x, integer y, integer w, integer h, number hue, number saturation, number value)
    Python: JS_LICE_AlterRectHSV(void bitmap, Int x, Int y, Int w, Int h, Float hue, Float saturation, Float value)

    Hue is rolled over, saturation and value are clamped, all 0..1. (Alpha remains unchanged.)

    Parameters:
    identifier bitmap
    integer x
    integer y
    integer w
    integer h
    number hue
    number saturation
    number value


    ^ Reaper version 5.974 JS version 1.000JS_LICE_Arc

    C: void JS_LICE_Arc(void* bitmap, double cx, double cy, double r, double minAngle, double maxAngle, int color, double alpha, const char* mode, bool antialias)
    EEL2: extension_api("JS_LICE_Arc", void* bitmap, cx, cy, r, minAngle, maxAngle, int color, alpha, "mode", bool antialias)
    Lua: reaper.JS_LICE_Arc(identifier bitmap, number cx, number cy, number r, number minAngle, number maxAngle, integer color, number alpha, string mode, boolean antialias)
    Python: JS_LICE_Arc(void bitmap, Float cx, Float cy, Float r, Float minAngle, Float maxAngle, Int color, Float alpha, String mode, Boolean antialias)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".

    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).

    Parameters:
    identifier bitmap
    number cx
    number cy
    number r
    number minAngle
    number maxAngle
    integer color
    number alpha
    string mode
    boolean antialias


    ^ Reaper version 5.974 JS version 1.215JS_LICE_ArrayAllBitmaps

    C: int JS_LICE_ArrayAllBitmaps(void* reaperarray)
    EEL2: int extension_api("JS_LICE_ArrayAllBitmaps", void* reaperarray)
    Lua: integer retval = reaper.JS_LICE_ArrayAllBitmaps(identifier reaperarray)
    Python: Int retval = JS_LICE_ArrayAllBitmaps(void reaperarray)



    Returnvalues:
    integer retval

    Parameters:
    identifier reaperarray


    ^ Reaper version 5.974 JS version 0.986JS_LICE_Bezier

    C: void JS_LICE_Bezier(void* bitmap, double xstart, double ystart, double xctl1, double yctl1, double xctl2, double yctl2, double xend, double yend, double tol, int color, double alpha, const char* mode, bool antialias)
    EEL2: extension_api("JS_LICE_Bezier", void* bitmap, xstart, ystart, xctl1, yctl1, xctl2, yctl2, xend, yend, tol, int color, alpha, "mode", bool antialias)
    Lua: reaper.JS_LICE_Bezier(identifier bitmap, number xstart, number ystart, number xctl1, number yctl1, number xctl2, number yctl2, number xend, number yend, number tol, integer color, number alpha, string mode, boolean antialias)
    Python: JS_LICE_Bezier(void bitmap, Float xstart, Float ystart, Float xctl1, Float yctl1, Float xctl2, Float yctl2, Float xend, Float yend, Float tol, Int color, Float alpha, String mode, Boolean antialias)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA" to enable per-pixel alpha blending.

    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).

    Parameters:
    identifier bitmap
    number xstart
    number ystart
    number xctl1
    number yctl1
    number xctl2
    number yctl2
    number xend
    number yend
    number tol
    integer color
    number alpha
    string mode
    boolean antialias


    ^ Reaper version 5.974 JS version 0.988JS_LICE_Blit

    C: void JS_LICE_Blit(void* destBitmap, int dstx, int dsty, void* sourceBitmap, int srcx, int srcy, int width, int height, double alpha, const char* mode)
    EEL2: extension_api("JS_LICE_Blit", void* destBitmap, int dstx, int dsty, void* sourceBitmap, int srcx, int srcy, int width, int height, alpha, "mode")
    Lua: reaper.JS_LICE_Blit(identifier destBitmap, integer dstx, integer dsty, identifier sourceBitmap, integer srcx, integer srcy, integer width, integer height, number alpha, string mode)
    Python: JS_LICE_Blit(void destBitmap, Int dstx, Int dsty, void sourceBitmap, Int srcx, Int srcy, Int width, Int height, Float alpha, String mode)

    Standard LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA" to enable per-pixel alpha blending.

    In addition to the standard LICE modes, LICE_Blit also offers: * "CHANCOPY_XTOY", with X and Y any of the four channels, A, R, G or B. (CHANCOPY_ATOA is similar to MASK mode.) * "BLUR" * "ALPHAMUL", which overwrites the destination with a per-pixel alpha-multiplied copy of the source. (Similar to first clearing the destination with 0x00000000 and then blitting with "COPY,ALPHA".)


    Parameters:
    identifier destBitmap
    integer dstx
    integer dsty
    identifier sourceBitmap
    integer srcx
    integer srcy
    integer width
    integer height
    number alpha
    string mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_Circle

    C: void JS_LICE_Circle(void* bitmap, double cx, double cy, double r, int color, double alpha, const char* mode, bool antialias)
    EEL2: extension_api("JS_LICE_Circle", void* bitmap, cx, cy, r, int color, alpha, "mode", bool antialias)
    Lua: reaper.JS_LICE_Circle(identifier bitmap, number cx, number cy, number r, integer color, number alpha, string mode, boolean antialias)
    Python: JS_LICE_Circle(void bitmap, Float cx, Float cy, Float r, Int color, Float alpha, String mode, Boolean antialias)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".


    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).


    Parameters:
    identifier bitmap
    number cx
    number cy
    number r
    integer color
    number alpha
    string mode
    boolean antialias


    ^ Reaper version 5.974 JS version 0.951JS_LICE_Clear

    C: void JS_LICE_Clear(void* bitmap, int color)
    EEL2: extension_api("JS_LICE_Clear", void* bitmap, int color)
    Lua: reaper.JS_LICE_Clear(identifier bitmap, integer color)
    Python: JS_LICE_Clear(void bitmap, Int color)



    Parameters:
    identifier bitmap
    integer color


    ^ Reaper version 5.974 JS version 0.951JS_LICE_CreateBitmap

    C: void* JS_LICE_CreateBitmap(bool isSysBitmap, int width, int height)
    EEL2: void* extension_api("JS_LICE_CreateBitmap", bool isSysBitmap, int width, int height)
    Lua: identifier bitmap = reaper.JS_LICE_CreateBitmap(boolean isSysBitmap, integer width, integer height)
    Python: identifier bitmap = JS_LICE_CreateBitmap(Boolean isSysBitmap, Int width, Int height)



    Returnvalues:
    identifier bitmap

    Parameters:
    boolean isSysBitmap
    integer width
    integer height


    ^ Reaper version 5.974 JS version 0.951JS_LICE_CreateFont

    C: void* JS_LICE_CreateFont()
    EEL2: void* extension_api("JS_LICE_CreateFont")
    Lua: identifier font = reaper.JS_LICE_CreateFont()
    Python: identifier font = JS_LICE_CreateFont()



    Returnvalues:
    identifier font


    ^ Reaper version 5.974 JS version 1.000JS_LICE_DestroyBitmap

    C: void JS_LICE_DestroyBitmap(void* bitmap)
    EEL2: extension_api("JS_LICE_DestroyBitmap", void* bitmap)
    Lua: reaper.JS_LICE_DestroyBitmap(identifier bitmap)
    Python: JS_LICE_DestroyBitmap(void bitmap)

    Deletes the bitmap, and also unlinks bitmap from any composited window.

    Parameters:
    identifier bitmap


    ^ Reaper version 5.974 JS version 0.951JS_LICE_DestroyFont

    C: void JS_LICE_DestroyFont(void* LICEFont)
    EEL2: extension_api("JS_LICE_DestroyFont", void* LICEFont)
    Lua: reaper.JS_LICE_DestroyFont(identifier LICEFont)
    Python: JS_LICE_DestroyFont(void LICEFont)



    Parameters:
    identifier LICEFont


    ^ Reaper version 5.974 JS version 0.951JS_LICE_DrawChar

    C: void JS_LICE_DrawChar(void* bitmap, int x, int y, char c, int color, double alpha, int mode))
    EEL2: extension_api("JS_LICE_DrawChar", void* bitmap, int x, int y, char c, int color, alpha, int mode))
    Lua: reaper.JS_LICE_DrawChar(identifier bitmap, integer x, integer y, integer c, integer color, number alpha, integer mode))
    Python: JS_LICE_DrawChar(void bitmap, Int x, Int y, Int c, Int color, Float alpha, Int mode))



    Parameters:
    identifier bitmap
    integer x
    integer y
    integer c
    integer color
    number alpha
    integer mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_DrawText

    C: int JS_LICE_DrawText(void* bitmap, void* LICEFont, const char* text, int textLen, int x1, int y1, int x2, int y2)
    EEL2: int extension_api("JS_LICE_DrawText", void* bitmap, void* LICEFont, "text", int textLen, int x1, int y1, int x2, int y2)
    Lua: integer retval = reaper.JS_LICE_DrawText(identifier bitmap, identifier LICEFont, string text, integer textLen, integer x1, integer y1, integer x2, integer y2)
    Python: Int retval = JS_LICE_DrawText(void bitmap, void LICEFont, String text, Int textLen, Int x1, Int y1, Int x2, Int y2)



    Returnvalues:
    integer

    Parameters:
    identifier bitmap
    identifier LICEFont
    string text
    integer textLen
    integer x1
    integer y1
    integer x2
    integer y2


    ^ Reaper version 5.974 JS version 0.951JS_LICE_FillCircle

    C: void JS_LICE_FillCircle(void* bitmap, double cx, double cy, double r, int color, double alpha, const char* mode, bool antialias)
    EEL2: extension_api("JS_LICE_FillCircle", void* bitmap, cx, cy, r, int color, alpha, "mode", bool antialias)
    Lua: reaper.JS_LICE_FillCircle(identifier bitmap, number cx, number cy, number r, integer color, number alpha, string mode, boolean antialias)
    Python: JS_LICE_FillCircle(void bitmap, Float cx, Float cy, Float r, Int color, Float alpha, String mode, Boolean antialias)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".



    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).


    Parameters:
    identifier bitmap
    number cx
    number cy
    number r
    integer color
    number alpha
    string mode
    boolean antialias


    ^ Reaper version 5.974 JS version 0.986JS_LICE_FillPolygon

    C: void JS_LICE_FillPolygon(void* bitmap, const char* packedX, const char* packedY, int numPoints, int color, double alpha, const char* mode)
    EEL2: extension_api("JS_LICE_FillPolygon", void* bitmap, "packedX", "packedY", int numPoints, int color, alpha, "mode")
    Lua: reaper.JS_LICE_FillPolygon(identifier bitmap, string packedX, string packedY, integer numPoints, integer color, number alpha, string mode)
    Python: JS_LICE_FillPolygon(void bitmap, String packedX, String packedY, Int numPoints, Int color, Float alpha, String mode)

    packedX and packedY are two strings of coordinates, each packed as "
    LICE modes : "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA" to enable per-pixel alpha blending.

    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).

    Parameters:
    identifier bitmap
    string packedX
    string packedY
    integer numPoints
    integer color
    number alpha
    string mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_FillRect

    C: void JS_LICE_FillRect(void* bitmap, int x, int y, int w, int h, int color, double alpha, const char* mode)
    EEL2: extension_api("JS_LICE_FillRect", void* bitmap, int x, int y, int w, int h, int color, alpha, "mode")
    Lua: reaper.JS_LICE_FillRect(identifier bitmap, integer x, integer y, integer w, integer h, integer color, number alpha, string mode)
    Python: JS_LICE_FillRect(void bitmap, Int x, Int y, Int w, Int h, Int color, Float alpha, String mode)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".



    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).

    Parameters:
    identifier bitmap
    integer x
    integer y
    integer w
    integer h
    integer color
    number alpha
    string mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_FillTriangle

    C: void JS_LICE_FillTriangle(void* bitmap, int x1, int y1, int x2, int y2, int x3, int y3, int color, double alpha, const char* mode)
    EEL2: extension_api("JS_LICE_FillTriangle", void* bitmap, int x1, int y1, int x2, int y2, int x3, int y3, int color, alpha, "mode")
    Lua: reaper.JS_LICE_FillTriangle(identifier bitmap, integer x1, integer y1, integer x2, integer y2, integer x3, integer y3, integer color, number alpha, string mode)
    Python: JS_LICE_FillTriangle(void bitmap, Int x1, Int y1, Int x2, Int y2, Int x3, Int y3, Int color, Float alpha, String mode)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".



    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).

    Parameters:
    identifier bitmap
    integer x1
    integer y1
    integer x2
    integer y2
    integer x3
    integer y3
    integer color
    number alpha
    string mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_GetDC

    C: void* JS_LICE_GetDC(void* bitmap)
    EEL2: void* extension_api("JS_LICE_GetDC", void* bitmap)
    Lua: identifier device_context = reaper.JS_LICE_GetDC(identifier bitmap)
    Python: identifier device_context = JS_LICE_GetDC(void bitmap)



    Returnvalues:
    identifier device_context

    Parameters:
    identifier bitmap


    ^ Reaper version 5.974 JS version 0.951JS_LICE_GetHeight

    C: int JS_LICE_GetHeight(void* bitmap)
    EEL2: int extension_api("JS_LICE_GetHeight", void* bitmap)
    Lua: integer retval = reaper.JS_LICE_GetHeight(identifier bitmap)
    Python: Int retval = JS_LICE_GetHeight(void bitmap)



    Returnvalues:
    integer

    Parameters:
    identifier bitmap


    ^ Reaper version 5.974 JS version 0.951JS_LICE_GetPixel

    C: int JS_LICE_GetPixel(void* bitmap, int x, int y)
    EEL2: int extension_api("JS_LICE_GetPixel", void* bitmap, int x, int y)
    Lua: integer retval = reaper.JS_LICE_GetPixel(identifier bitmap, integer x, integer y)
    Python: Int retval = JS_LICE_GetPixel(void bitmap, Int x, Int y)

    Returns the color of the specified pixel.


    Returnvalues:
    integer retval

    Parameters:
    identifier bitmap
    integer x
    integer y


    ^ Reaper version 5.974 JS version 0.951JS_LICE_GetWidth

    C: int JS_LICE_GetWidth(void* bitmap)
    EEL2: int extension_api("JS_LICE_GetWidth", void* bitmap)
    Lua: integer retval = reaper.JS_LICE_GetWidth(identifier bitmap)
    Python: Int retval = JS_LICE_GetWidth(void bitmap)



    Returnvalues:
    integer

    Parameters:
    identifier bitmap


    ^ Reaper version 5.974 JS version 0.951JS_LICE_GradRect

    C: void JS_LICE_GradRect(void* bitmap, int dstx, int dsty, int dstw, int dsth, double ir, double ig, double ib, double ia, double drdx, double dgdx, double dbdx, double dadx, double drdy, double dgdy, double dbdy, double dady, const char* mode)
    EEL2: extension_api("JS_LICE_GradRect", void* bitmap, int dstx, int dsty, int dstw, int dsth, ir, ig, ib, ia, drdx, dgdx, dbdx, dadx, drdy, dgdy, dbdy, dady, "mode")
    Lua: reaper.JS_LICE_GradRect(identifier bitmap, integer dstx, integer dsty, integer dstw, integer dsth, number ir, number ig, number ib, number ia, number drdx, number dgdx, number dbdx, number dadx, number drdy, number dgdy, number dbdy, number dady, string mode)
    Python: JS_LICE_GradRect(void bitmap, 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, String mode)



    Parameters:
    identifier bitmap
    integer dstx
    integer dsty
    integer dstw
    integer dsth
    number ir
    number ig
    number ib
    number ia
    number drdx
    number dgdx
    number dbdx
    number dadx
    number drdy
    number dgdy
    number dbdy
    number dady
    string mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_IsFlipped

    C: bool JS_LICE_IsFlipped(void* bitmap)
    EEL2: bool extension_api("JS_LICE_IsFlipped", void* bitmap)
    Lua: boolean retval = reaper.JS_LICE_IsFlipped(identifier bitmap)
    Python: Boolean retval = JS_LICE_IsFlipped(void bitmap)



    Returnvalues:
    boolean

    Parameters:
    identifier bitmap


    ^ Reaper version 5.974 JS version 0.951JS_LICE_Line

    C: void JS_LICE_Line(void* bitmap, double x1, double y1, double x2, double y2, int color, double alpha, const char* mode, bool antialias)
    EEL2: extension_api("JS_LICE_Line", void* bitmap, x1, y1, x2, y2, int color, alpha, "mode", bool antialias)
    Lua: reaper.JS_LICE_Line(identifier bitmap, number x1, number y1, number x2, number y2, integer color, number alpha, string mode, boolean antialias)
    Python: JS_LICE_Line(void bitmap, Float x1, Float y1, Float x2, Float y2, Int color, Float alpha, String mode, Boolean antialias)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".



    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).

    Parameters:
    identifier bitmap
    number x1
    number y1
    number x2
    number y2
    integer color
    number alpha
    string mode
    boolean antialias


    ^ Reaper version 5.974 JS version 1.000JS_LICE_ListAllBitmaps

    C: int JS_LICE_ListAllBitmaps(char* listOutNeedBig, int listOutNeedBig_sz)
    EEL2: int extension_api("JS_LICE_ListAllBitmaps", #list)
    Lua: integer retval, string list = reaper.JS_LICE_ListAllBitmaps()
    Python: (Int retval, String listOutNeedBig, Int listOutNeedBig_sz) = JS_LICE_ListAllBitmaps(listOutNeedBig, listOutNeedBig_sz)



    Returnvalues:
    integer retval
    string list


    ^ Reaper version 5.974 JS version 0.986JS_LICE_MeasureText

    C: void JS_LICE_MeasureText(const char* text, int* widthOut, int* HeightOut)
    EEL2: extension_api("JS_LICE_MeasureText", "text", int &width, int &Height)
    Lua: integer width, integer Height = reaper.JS_LICE_MeasureText(string text)
    Python: (String text, Int widthOut, Int HeightOut) = JS_LICE_MeasureText(text, widthOut, HeightOut)



    Returnvalues:
    integer width
    integer Height

    Parameters:
    string text


    ^ Reaper version 5.974 JS version 0.988JS_LICE_ProcessRect

    C: bool JS_LICE_ProcessRect(void* bitmap, int x, int y, int w, int h, const char* mode, double operand)
    EEL2: bool extension_api("JS_LICE_ProcessRect", void* bitmap, int x, int y, int w, int h, "mode", operand)
    Lua: boolean retval = reaper.JS_LICE_ProcessRect(identifier bitmap, integer x, integer y, integer w, integer h, string mode, number operand)
    Python: Boolean retval = JS_LICE_ProcessRect(void bitmap, Int x, Int y, Int w, Int h, String mode, Float operand)

    Applies bitwise operations to each pixel in the target rectangle.

    operand: a color in 0xAARRGGBB format.

    modes: * "XOR", "OR" or "AND". * "SET_XYZ", with XYZ any combination of A, R, G, and B: copies the specified channels from operand to the bitmap. (Useful for setting the alpha values of a bitmap.) * "ALPHAMUL": Performs alpha pre-multiplication on each pixel in the rect. operand is ignored in this mode. (On WindowsOS, GDI_Blit does not perform alpha multiplication on the fly, and a separate alpha pre-multiplication step is therefore required.)

    NOTE: LICE_Blit and LICE_ScaledBlit are also useful for processing bitmap colors. For example, to multiply all channel values by 1.5: reaper.JS_LICE_Blit(bitmap, x, y, bitmap, x, y, w, h, 0.5, "ADD").


    Returnvalues:
    boolean retval

    Parameters:
    identifier bitmap
    integer x
    integer y
    integer w
    integer h
    string mode
    number operand


    ^ Reaper version 5.974 JS version 0.951JS_LICE_PutPixel

    C: void JS_LICE_PutPixel(void* bitmap, int x, int y, int color, double alpha, const char* mode)
    EEL2: extension_api("JS_LICE_PutPixel", void* bitmap, int x, int y, int color, alpha, "mode")
    Lua: reaper.JS_LICE_PutPixel(identifier bitmap, integer x, integer y, integer color, number alpha, string mode)
    Python: JS_LICE_PutPixel(void bitmap, Int x, Int y, Int color, Float alpha, String mode)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".

    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).

    Parameters:
    identifier bitmap
    integer x
    integer y
    integer color
    number alpha
    string mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_Resize

    C: void JS_LICE_Resize(void* bitmap, int width, int height)
    EEL2: extension_api("JS_LICE_Resize", void* bitmap, int width, int height)
    Lua: reaper.JS_LICE_Resize(identifier bitmap, integer width, integer height)
    Python: JS_LICE_Resize(void bitmap, Int width, Int height)



    Parameters:
    identifier bitmap
    integer width
    integer height


    ^ Reaper version 5.974 JS version 0.986JS_LICE_RotatedBlit

    C: void JS_LICE_RotatedBlit(void* destBitmap, int dstx, int dsty, int dstw, int dsth, void* sourceBitmap, double srcx, double srcy, double srcw, double srch, double angle, double rotxcent, double rotycent, bool cliptosourcerect, double alpha, const char* mode)
    EEL2: extension_api("JS_LICE_RotatedBlit", void* destBitmap, int dstx, int dsty, int dstw, int dsth, void* sourceBitmap, srcx, srcy, srcw, srch, angle, rotxcent, rotycent, bool cliptosourcerect, alpha, "mode")
    Lua: reaper.JS_LICE_RotatedBlit(identifier destBitmap, integer dstx, integer dsty, integer dstw, integer dsth, identifier sourceBitmap, number srcx, number srcy, number srcw, number srch, number angle, number rotxcent, number rotycent, boolean cliptosourcerect, number alpha, string mode)
    Python: JS_LICE_RotatedBlit(void destBitmap, Int dstx, Int dsty, Int dstw, Int dsth, void sourceBitmap, Float srcx, Float srcy, Float srcw, Float srch, Float angle, Float rotxcent, Float rotycent, Boolean cliptosourcerect, Float alpha, String mode)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA" to enable per-pixel alpha blending.

    Parameters:
    identifier destBitmap
    integer dstx
    integer dsty
    integer dstw
    integer dsth
    identifier sourceBitmap
    number srcx
    number srcy
    number srcw
    number srch
    number angle
    number rotxcent
    number rotycent
    boolean cliptosourcerect
    number alpha
    string mode


    ^ Reaper version 5.974 JS version 0.951JS_LICE_RoundRect

    C: void JS_LICE_RoundRect(void* bitmap, double x, double y, double w, double h, int cornerradius, int color, double alpha, const char* mode, bool antialias)
    EEL2: extension_api("JS_LICE_RoundRect", void* bitmap, x, y, w, h, int cornerradius, int color, alpha, "mode", bool antialias)
    Lua: reaper.JS_LICE_RoundRect(identifier bitmap, number x, number y, number w, number h, integer cornerradius, integer color, number alpha, string mode, boolean antialias)
    Python: JS_LICE_RoundRect(void bitmap, Float x, Float y, Float w, Float h, Int cornerradius, Int color, Float alpha, String mode, Boolean antialias)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA".

    LICE color format: 0xAARRGGBB (AA is only used in ALPHA mode).


    Parameters:
    identifier bitmap
    number x
    number y
    number w
    number h
    integer cornerradius
    integer color
    number alpha
    string mode
    boolean antialias


    ^ Reaper version 5.974 JS version 0.986JS_LICE_ScaledBlit

    C: void JS_LICE_ScaledBlit(void* destBitmap, int dstx, int dsty, int dstw, int dsth, void* srcBitmap, double srcx, double srcy, double srcw, double srch, double alpha, const char* mode)
    EEL2: extension_api("JS_LICE_ScaledBlit", void* destBitmap, int dstx, int dsty, int dstw, int dsth, void* srcBitmap, srcx, srcy, srcw, srch, alpha, "mode")
    Lua: reaper.JS_LICE_ScaledBlit(identifier destBitmap, integer dstx, integer dsty, integer dstw, integer dsth, identifier srcBitmap, number srcx, number srcy, number srcw, number srch, number alpha, string mode)
    Python: JS_LICE_ScaledBlit(void destBitmap, Int dstx, Int dsty, Int dstw, Int dsth, void srcBitmap, Float srcx, Float srcy, Float srcw, Float srch, Float alpha, String mode)

    LICE modes: "COPY" (default if empty string), "MASK", "ADD", "DODGE", "MUL", "OVERLAY" or "HSVADJ", any of which may be combined with "ALPHA" to enable per-pixel alpha blending.

    Parameters:
    identifier destBitmap
    integer dstx
    integer dsty
    integer dstw
    integer dsth
    identifier srcBitmap
    number srcx
    number srcy
    number srcw
    number srch
    number alpha
    string mode


    ^ Reaper version 5.974 JS version 0.988JS_LICE_SetAlphaFromColorMask

    C: void JS_LICE_SetAlphaFromColorMask(void* bitmap, int colorRGB)
    EEL2: extension_api("JS_LICE_SetAlphaFromColorMask", void* bitmap, int colorRGB)
    Lua: reaper.JS_LICE_SetAlphaFromColorMask(identifier bitmap, integer colorRGB)
    Python: JS_LICE_SetAlphaFromColorMask(void bitmap, Int colorRGB)

    Sets all pixels that match the given color's RGB values to fully transparent, and all other pixels to fully opaque. (All pixels' RGB values remain unchanged.)

    Parameters:
    identifier bitmap
    integer colorRGB


    ^ Reaper version 5.974 JS version 0.951JS_LICE_SetFontBkColor

    C: void JS_LICE_SetFontBkColor(void* LICEFont, int color)
    EEL2: extension_api("JS_LICE_SetFontBkColor", void* LICEFont, int color)
    Lua: reaper.JS_LICE_SetFontBkColor(identifier LICEFont, integer color)
    Python: JS_LICE_SetFontBkColor(void LICEFont, Int color)

    Sets the color of the font background.

    Parameters:
    identifier LICEFont
    integer color


    ^ Reaper version 5.974 JS version 0.951JS_LICE_SetFontColor

    C: void JS_LICE_SetFontColor(void* LICEFont, int color)
    EEL2: extension_api("JS_LICE_SetFontColor", void* LICEFont, int color)
    Lua: reaper.JS_LICE_SetFontColor(identifier LICEFont, integer color)
    Python: JS_LICE_SetFontColor(void LICEFont, Int color)



    Parameters:
    identifier LICEFont
    integer color


    ^ Reaper version 5.974 JS version 1.301JS_LICE_SetFontFXColor

    C: void JS_LICE_SetFontFXColor(void* LICEFont, int color)
    EEL2: extension_api("JS_LICE_SetFontFXColor", void* LICEFont, int color)
    Lua: reaper.JS_LICE_SetFontFXColor(identifier LICEFont, integer color)
    Python: JS_LICE_SetFontFXColor(void LICEFont, Int color)

    Sets the color of font FX such as shadow.

    Parameters:
    identifier LICEFont
    integer color


    ^ Reaper version 5.974 JS version 0.951JS_LICE_SetFontFromGDI

    C: void JS_LICE_SetFontFromGDI(void* LICEFont, void* GDIFont, const char* moreFormats)
    EEL2: extension_api("JS_LICE_SetFontFromGDI", void* LICEFont, void* GDIFont, "moreFormats")
    Lua: reaper.JS_LICE_SetFontFromGDI(identifier LICEFont, identifier GDIFont, string moreFormats)
    Python: JS_LICE_SetFontFromGDI(void LICEFont, void GDIFont, String moreFormats)

    Converts a GDI font into a LICE font.

    The font can be modified by the following flags, in a comma-separated list:

    "VERTICAL", "BOTTOMUP", "NATIVE", "BLUR", "INVERT", "MONO", "SHADOW" or "OUTLINE".

    Parameters:
    identifier LICEFont
    identifier GDIFont
    string moreFormats


    ^ Reaper version 5.62LICE_ClipLine

    C: bool LICE_ClipLine(int* pX1Out, int* pY1Out, int* pX2Out, int* pY2Out, int xLo, int yLo, int xHi, int yHi)
    EEL2: bool LICE_ClipLine(int &pX1, int &pY1, int &pX2, int &pY2, int xLo, int yLo, int xHi, int yHi)
    Lua: boolean retval, integer pX1, integer pY1, integer pX2, integer pY2 = reaper.LICE_ClipLine(integer pX1, integer pY1, integer pX2, integer pY2, integer xLo, integer yLo, integer xHi, integer yHi)
    Python: (Boolean retval, Int pX1Out, Int pY1Out, Int pX2Out, Int pY2Out, Int xLo, Int yLo, Int xHi, Int yHi) = RPR_LICE_ClipLine(pX1Out, pY1Out, pX2Out, pY2Out, xLo, yLo, xHi, yHi)

    Returns false if the line is entirely offscreen.

    Returnvalues:
    boolean retval
    integer pX1
    integer pY1
    integer pX2
    integer pY2

    Parameters:
    integer pX1
    integer pY1
    integer pX2
    integer pY2
    integer xLo
    integer yLo
    integer xHi
    integer yHi


    ^ Reaper version 5.974 JS version 1.310JS_Header_GetItemCount

    C: int count = JS_Header_GetItemCount(void* headerHWND)
    EEL2: int count = extension_api("JS_Header_GetItemCount", void* headerHWND)
    Lua: integer count = reaper.JS_Header_GetItemCount(identifier headerHWND)
    Python: Int count = JS_Header_GetItemCount(void headerHWND)

    returns the number of item of the listview

    Returnvalues:
    integer count

    Parameters:
    identifier headerHWND


    ^ Reaper version 5.974 JS version 0.990JS_ListView_EnsureVisible

    C: void JS_ListView_EnsureVisible(void* listviewHWND, int index, bool partialOK)
    EEL2: extension_api("JS_ListView_EnsureVisible", void* listviewHWND, int index, bool partialOK)
    Lua: reaper.JS_ListView_EnsureVisible(identifier listviewHWND, integer index, boolean partialOK)
    Python: JS_ListView_EnsureVisible(void listviewHWND, Int index, Boolean partialOK)



    Parameters:
    identifier listviewHWND
    integer index
    boolean partialOK


    ^ Reaper version 5.974 JS version 0.962JS_ListView_EnumSelItems

    C: int JS_ListView_EnumSelItems(void* listviewHWND, int index)
    EEL2: int extension_api("JS_ListView_EnumSelItems", void* listviewHWND, int index)
    Lua: integer retval = reaper.JS_ListView_EnumSelItems(identifier listviewHWND, integer index)
    Python: Int retval = JS_ListView_EnumSelItems(void listviewHWND, Int index)

    Returns the index of the next selected list item with index greater that the specified number. Returns -1 if no selected items left.

    Returnvalues:
    integer retval
    the index of the next selected list item

    Parameters:
    identifier listviewHWND
    the HWND of the window
    integer index
    the index of the listitems before the next selected one


    ^ Reaper version 5.974 JS version 0.963JS_ListView_GetFocusedItem

    C: int JS_ListView_GetFocusedItem(void* listviewHWND, char* textOut, int textOut_sz)
    EEL2: int extension_api("JS_ListView_GetFocusedItem", void* listviewHWND, #text)
    Lua: integer retval, string text = reaper.JS_ListView_GetFocusedItem(identifier listviewHWND)
    Python: (Int retval, void listviewHWND, String textOut, Int textOut_sz) = JS_ListView_GetFocusedItem(listviewHWND, textOut, textOut_sz)

    Returns the index and text of the focused item, if any.

    Returnvalues:
    integer retval
    string text

    Parameters:
    identifier listviewHWND


    ^ Reaper version 5.974 JS version 1.310JS_ListView_GetHeader

    C: void* JS_ListView_GetHeader(void* listviewHWND)
    EEL2: void* extension_api("JS_ListView_GetHeader", void* listviewHWND)
    Lua: identifier index = reaper.JS_ListView_GetHeader(identifier listviewHWND)
    Python: void JS_ListView_GetHeader(void listviewHWND)

    Returns the index and text of the focused item, if any.

    Returnvalues:
    identifier index

    Parameters:
    identifier listviewHWND


    ^ Reaper version 5.974 JS version 0.963JS_ListView_GetItem

    C: void JS_ListView_GetItem(void* listviewHWND, int index, int subItem, char* textOut, int textOut_sz, int* stateOut)
    EEL2: extension_api("JS_ListView_GetItem", void* listviewHWND, int index, int subItem, #text, int &state)
    Lua: string text, integer state = reaper.JS_ListView_GetItem(identifier listviewHWND, integer index, integer subItem)
    Python: (void listviewHWND, Int index, Int subItem, String textOut, Int textOut_sz, Int stateOut) = JS_ListView_GetItem(listviewHWND, index, subItem, textOut, textOut_sz, stateOut)

    Returns the text and state of specified item.

    Returnvalues:
    string text
    integer state

    Parameters:
    identifier listviewHWND
    integer index
    integer subItem


    ^ Reaper version 5.974 JS version 0.963JS_ListView_GetItemCount

    C: int JS_ListView_GetItemCount(void* listviewHWND)
    EEL2: int extension_api("JS_ListView_GetItemCount", void* listviewHWND)
    Lua: integer retval = reaper.JS_ListView_GetItemCount(identifier listviewHWND)
    Python: Int retval = JS_ListView_GetItemCount(void listviewHWND)



    Returnvalues:
    integer retval

    Parameters:
    identifier listviewHWND


    ^ Reaper version 5.974 JS version 1.217JS_ListView_GetItemRect

    C: bool JS_ListView_GetItemRect(void* listviewHWND, int index, int* leftOut, int* topOut, int* rightOut, int* bottomOut)
    EEL2: bool extension_api("JS_ListView_GetItemRect", void* listviewHWND, int index, int &left, int &top, int &right, int &bottom)
    Lua: boolean retval, integer left, integer top, integer right, integer bottom = reaper.JS_ListView_GetItemRect(identifier listviewHWND, integer index)
    Python: (Boolean retval, void listviewHWND, Int index, Int leftOut, Int topOut, Int rightOut, Int bottomOut) = JS_ListView_GetItemRect(listviewHWND, index, leftOut, topOut, rightOut, bottomOut)

    Returns client coordinates of the item.

    Returnvalues:
    boolean retval
    integer left
    integer top
    integer right
    integer bottom

    Parameters:
    identifier listviewHWND
    integer index


    ^ Reaper version 5.974 JS version 1.301JS_ListView_GetItemState

    C: int JS_ListView_GetItemState(void* listviewHWND, int index)
    EEL2: int extension_api("JS_ListView_GetItemState", void* listviewHWND, int index)
    Lua: integer retval = reaper.JS_ListView_GetItemState(identifier listviewHWND, integer index)
    Python: Int retval = JS_ListView_GetItemState(void listviewHWND, Int index)

    State is a bitmask:
    1 = focused, 2 = selected. On Windows only, cut-and-paste marked = 4, drag-and-drop highlighted = 8.

    Warning: this function uses the Win32 bitmask values, which differ from the values used by WDL/swell.

    Returnvalues:
    integer retval

    Parameters:
    identifier listviewHWND
    integer index


    ^ Reaper version 5.974 JS version 0.963JS_ListView_GetItemText

    C: void JS_ListView_GetItemText(void* listviewHWND, int index, int subItem, char* textOut, int textOut_sz)
    EEL2: extension_api("JS_ListView_GetItemText", void* listviewHWND, int index, int subItem, #text)
    Lua: string text = reaper.JS_ListView_GetItemText(identifier listviewHWND, integer index, integer subItem)
    Python: (void listviewHWND, Int index, Int subItem, String textOut, Int textOut_sz) = JS_ListView_GetItemText(listviewHWND, index, subItem, textOut, textOut_sz)



    Returnvalues:
    string text

    Parameters:
    identifier listviewHWND
    integer index
    integer subItem


    ^ Reaper version 5.974 JS version 0.963JS_ListView_GetSelectedCount

    C: int JS_ListView_GetSelectedCount(void* listviewHWND)
    EEL2: int extension_api("JS_ListView_GetSelectedCount", void* listviewHWND)
    Lua: integer retval = reaper.JS_ListView_GetSelectedCount(identifier listviewHWND)
    Python: Int retval = JS_ListView_GetSelectedCount(void listviewHWND)



    Returnvalues:
    integer retval

    Parameters:
    identifier listviewHWND


    ^ Reaper version 5.974 JS version 1.217JS_ListView_GetTopIndex

    C: int JS_ListView_GetTopIndex(void* listviewHWND)
    EEL2: int extension_api("JS_ListView_GetTopIndex", void* listviewHWND)
    Lua: integer retval = reaper.JS_ListView_GetTopIndex(identifier listviewHWND)
    Python: Int retval = JS_ListView_GetTopIndex(void listviewHWND)



    Returnvalues:
    integer retval

    Parameters:
    identifier listviewHWND


    ^ Reaper version 5.974 JS version 1.217JS_ListView_HitTest

    C: void JS_ListView_HitTest(void* listviewHWND, int clientX, int clientY, int* indexOut, int* subItemOut, int* flagsOut)
    EEL2: extension_api("JS_ListView_HitTest", void* listviewHWND, int clientX, int clientY, int &index, int &subItem, int &flags)
    Lua: integer index, integer subItem, integer flags = reaper.JS_ListView_HitTest(identifier listviewHWND, integer clientX, integer clientY)
    Python: (void listviewHWND, Int clientX, Int clientY, Int indexOut, Int subItemOut, Int flagsOut) = JS_ListView_HitTest(listviewHWND, clientX, clientY, indexOut, subItemOut, flagsOut)



    Returnvalues:
    integer index
    integer subItem
    integer flags

    Parameters:
    identifier listviewHWND
    integer clientX
    integer clientY


    ^ Reaper version 5.974 JS version 0.963JS_ListView_ListAllSelItems

    C: int JS_ListView_ListAllSelItems(void* listviewHWND, char* itemsOutNeedBig, int itemsOutNeedBig_sz)
    EEL2: int extension_api("JS_ListView_ListAllSelItems", void* listviewHWND, #items)
    Lua: integer retval, string items = reaper.JS_ListView_ListAllSelItems(identifier listviewHWND)
    Python: (Int retval, void listviewHWND, String itemsOutNeedBig, Int itemsOutNeedBig_sz) = JS_ListView_ListAllSelItems(listviewHWND, itemsOutNeedBig, itemsOutNeedBig_sz)

    Returns the indices of all selected items as a comma-separated list.

    * retval: Number of selected items found; negative or zero if an error occured.

    Returnvalues:
    integer retval
    string items

    Parameters:
    identifier listviewHWND


    ^ Reaper version 5.974 JS version 1.301JS_ListView_SetItemState

    C: void JS_ListView_SetItemState(void* listviewHWND, int index, int state, int mask)
    EEL2: extension_api("JS_ListView_SetItemState", void* listviewHWND, int index, int state, int mask)
    Lua: reaper.JS_ListView_SetItemState(identifier listviewHWND, integer index, integer state, integer mask)
    Python: JS_ListView_SetItemState(void listviewHWND, Int index, Int state, Int mask)

    The mask parameter specifies the state bits that must be set, and the state parameter specifies the new values for those bits.

    1 = focused, 2 = selected. On Windows only, cut-and-paste marked = 4, drag-and-drop highlighted = 8.

    Warning: this function uses the Win32 bitmask values, which differ from the values used by WDL/swell.

    Parameters:
    identifier listviewHWND
    integer index
    integer state
    integer mask


    ^ Reaper version 5.974 JS version 1.217JS_ListView_SetItemText

    C: void JS_ListView_SetItemText(void* listviewHWND, int index, int subItem, const char* text)
    EEL2: extension_api("JS_ListView_SetItemText", void* listviewHWND, int index, int subItem, "text")
    Lua: reaper.JS_ListView_SetItemText(identifier listviewHWND, integer index, integer subItem, string text)
    Python: JS_ListView_SetItemText(void listviewHWND, Int index, Int subItem, String text)

    Currently, this function only accepts ASCII text.

    Parameters:
    identifier listviewHWND
    integer index
    integer subItem
    string text


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetCursorPos

    C: bool BR_Win32_GetCursorPos(int* xOut, int* yOut)
    EEL2: bool extension_api("BR_Win32_GetCursorPos", int &x, int &y)
    Lua: boolean retval, integer x, integer y = reaper.BR_Win32_GetCursorPos()
    Python: (Boolean retval, Int xOut, Int yOut) = BR_Win32_GetCursorPos(xOut, yOut)

    [BR] Equivalent to win32 API GetCursorPos().


    Returnvalues:
    boolean retval
    integer x
    integer y


    ^ Reaper version 5.62CSurf_SetTrackListChange

    C: void CSurf_SetTrackListChange()
    EEL2: CSurf_SetTrackListChange()
    Lua: reaper.CSurf_SetTrackListChange()
    Python: RPR_CSurf_SetTrackListChange()




    ^ Reaper version 5.978EnsureNotCompletelyOffscreen

    C: void EnsureNotCompletelyOffscreen(RECT* rInOut)
    EEL2: EnsureNotCompletelyOffscreen(int &r.left, int &r.top, int &r.right, int &r.bot)
    Lua: integer r.left, integer r.top, integer r.right, integer r.bot = reaper.EnsureNotCompletelyOffscreen(integer r.left, integer r.top, integer r.right, integer r.bot)
    Python: RPR_EnsureNotCompletelyOffscreen(RECT rInOut)

    call with a saved window rect for your window and it'll correct any positioning info.

    Returnvalues:
    integer r.left
    integer r.top
    integer r.right
    integer r.bot

    Parameters:
    integer r.left
    integer r.top
    integer r.right
    integer r.bot


    ^ Reaper version 5.62GSC_mainwnd

    C: int GSC_mainwnd(int t)
    EEL2: int GSC_mainwnd(int t)
    Lua: integer color = reaper.GSC_mainwnd(integer t)
    Python: Int retval = RPR_GSC_mainwnd(Int t)

    this is just like win32 GetSysColor() but can have overrides.

    Returnvalues:
    integer color

    Parameters:
    integer t


    ^ Reaper version 5.62GetCursorContext

    C: int GetCursorContext()
    EEL2: int GetCursorContext()
    Lua: integer context = reaper.GetCursorContext()
    Python: Int retval = RPR_GetCursorContext()

    return the current cursor context.

    Returnvalues:
    integer context
    the cursor context
      -1, unknown
       0, track panels
       1, items
       2, envelopes


    ^ Reaper version 5.62GetCursorContext2

    C: int GetCursorContext2(bool want_last_valid)
    EEL2: int GetCursorContext2(bool want_last_valid)
    Lua: integer context = reaper.GetCursorContext2(boolean want_last_valid)
    Python: Int retval = RPR_GetCursorContext2(Boolean want_last_valid)

    0 if track panels, 1 if items, 2 if envelopes, otherwise unknown (unlikely when want_last_valid is true)

    Returnvalues:
    integer context
    the cursor context
      -1, unknown
       0, track panels
       1, items
       2, envelopes

    Parameters:
    boolean want_last_valid
    true, get the last valid context; false, get the current context


    ^ Reaper version 5.62GetMixerScroll

    C: MediaTrack* GetMixerScroll()
    EEL2: MediaTrack GetMixerScroll()
    Lua: MediaTrack leftmosttrack = reaper.GetMixerScroll()
    Python: MediaTrack leftmosttrack = RPR_GetMixerScroll()

    Get the leftmost track visible in the mixer

    Returnvalues:
    MediaTrack leftmosttrack
    the leftmost track in the MCP


    ^ Reaper version 6.37GetThingFromPoint

    C: MediaTrack* GetThingFromPoint(int screen_x, int screen_y, char* infoOut, int infoOut_sz)
    EEL2: MediaTrack GetThingFromPoint(int screen_x, int screen_y, #info)
    Lua: optional MediaTrack tr, string info = reaper.GetThingFromPoint(integer screen_x, integer screen_y)
    Python: (MediaTrack tr, Int screen_x, Int screen_y, String infoOut, Int infoOut_sz) = RPR_GetThingFromPoint(screen_x, screen_y, infoOut, infoOut_sz)

    Hit tests a point in screen coordinates. Updates infoOut with information such as "arrange", "fx_chain", "fx_0" (first FX in chain, floating) or Walter-elements.
    When hovering above a track, info is "arrange", while over envelopes, it is "envelope x" where x is the number of the active(!) envelope.
    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.

    Returnvalues:
    optional MediaTrack tr
    a track-object, if existing at this point
    string info
    info like Walter-elements, arrange, fx_chain, etc

    Parameters:
    integer screen_x
    the x-position to query element
    integer screen_y
    the y-position to query element


    ^ Reaper version 5.62GetTooltipWindow

    C: HWND GetTooltipWindow()
    EEL2: HWND GetTooltipWindow()
    Lua: HWND hwnd = reaper.GetTooltipWindow()
    Python: HWND hwnd = RPR_GetTooltipWindow()

    gets a tooltip window,in case you want to ask it for font information. Can return NULL.

    Returnvalues:
    HWND hwnd
    the tooltip-window


    ^ Reaper version 5.62Help_Set

    C: void Help_Set(const char* helpstring, bool is_temporary_help)
    EEL2: Help_Set("helpstring", bool is_temporary_help)
    Lua: reaper.Help_Set(string helpstring, boolean is_temporary_help)
    Python: RPR_Help_Set(String helpstring, Boolean is_temporary_help)

    Displays an information in the help and information-display, underneath the TCP(might be missing, in certain themes).

    Parameters:
    string helpstring
    the string to display
    boolean is_temporary_help
    true, show until another message is displayed; false, show permanently, every time no other message is displayed.


    ^ Reaper version 5.965 SWS version 2.12.0NF_Win32_GetSystemMetrics

    C: int NF_Win32_GetSystemMetrics(int nIndex)
    EEL2: int extension_api("NF_Win32_GetSystemMetrics", int nIndex)
    Lua: integer retval = reaper.NF_Win32_GetSystemMetrics(integer nIndex)
    Python: Int retval = NF_Win32_GetSystemMetrics(Int nIndex)

    Equivalent to win32 API GetSystemMetrics().

    Note: Only SM_C[XY]SCREEN, SM_C[XY][HV]SCROLL and SM_CYMENU are currently supported on macOS and Linux as of REAPER 6.68.

    Check the SWELL source code for up-to-date support information (swell-wnd.mm, swell-wnd-generic.cpp).

    see: https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getsystemmetrics.

    Returnvalues:
    integer retval
    the returned value

    Parameters:
    integer nIndex
    the value to query, i.e.:
    5, width of window-borders
    7, thickness of a frame around the perimeter of a window with caption but not resizeable
    10, width of "thumb box" in a horizontal scroll bar
    11, default icon width
    13, width of the cursor in pixels
    16, x-width of fullscreen
    21, width of arrow of the horizontal-scrollbar
    36, width of the rectangle, within double-clicks are detected
    43, number of mousebuttons or zero, if no mouse is installed
    45, width of a 3d-border
    56, flags how system arranges minimized windows
    67, (0, normal boot; 1, Fail-safe boot; 2, Fail-safe with network boot)
    68, the width of the area, that detects a mouse-drag
    80, number of display monitors
    83, width of left and right edges of focus rectangle drawn by DrawFocusRect-Win32-function
    0x2003, slate state of laptop; 0, slate mode; non-zero, otherwise
    etc.

    see also:
  • https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getsystemmetrics - more information about, which metrics you can get with this function


  • ^ Reaper version 5.62OpenMediaExplorer

    C: HWND OpenMediaExplorer(const char* mediafn, bool play)
    EEL2: HWND OpenMediaExplorer("mediafn", bool play)
    Lua: HWND hwnd = reaper.OpenMediaExplorer(string mediafn, boolean play)
    Python: HWND hwnd = RPR_OpenMediaExplorer(String mediafn, Boolean play)

    Opens mediafn in the Media Explorer.

    If you just want to change folder in MediaExplorer, give it a path instead of a file and set play to false.

    Returnvalues:
    HWND hwnd
    the window of the Media Explorer

    Parameters:
    string mediafn
    the filename/folder, to be opened with the Media Explorer
    boolean play
    true, start/toggle playing immediately; false, just select file without playing


    ^ Reaper version 5.62SetCursorContext

    C: void SetCursorContext(int mode, TrackEnvelope* envInOptional)
    EEL2: SetCursorContext(int mode, TrackEnvelope envIn)
    Lua: reaper.SetCursorContext(integer mode, TrackEnvelope envIn)
    Python: RPR_SetCursorContext(Int mode, TrackEnvelope envInOptional)

    Change the focus for the cursor.
    You must use this to change the focus for the cursor programmatically.

    mode=0 to focus track panels, 1 to focus the arrange window, 2 to focus the arrange window and select env (or envIn==NULL to clear the current track/take envelope selection)

    Parameters:
    integer mode
    the focus to be changed to
    0, track panels
    1, arrange window
    2, arrangewindow and env
    TrackEnvelope envIn
    TrackEnvelope-object of the envelope to select(only when mode=2, else set to nil); nil, clear current track/envelope-selection;


    ^ Reaper version 5.62SetMixerScroll

    C: MediaTrack* SetMixerScroll(MediaTrack* leftmosttrack)
    EEL2: MediaTrack SetMixerScroll(MediaTrack leftmosttrack)
    Lua: MediaTrack tr = reaper.SetMixerScroll(MediaTrack leftmosttrack)
    Python: MediaTrack tr = RPR_SetMixerScroll(MediaTrack leftmosttrack)

    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.

    Returnvalues:
    MediaTrack tr
    the new leftmost-track as MediaTrack-object

    Parameters:
    MediaTrack leftmosttrack
    the requested leftmost-MediaTrack


    ^ Reaper version 5.92ShowPopupMenu

    C: void ShowPopupMenu(const char* name, int x, int y, HWND hwndParentOptional, void* ctxOptional, int ctx2Optional, int ctx3Optional)
    EEL2: ShowPopupMenu("name", int x, int y, HWND hwndParent, void* ctx, int ctx2, int ctx3)
    Lua: reaper.ShowPopupMenu(string name, integer x, integer y, optional HWND hwndParent, identifier ctx, integer ctx2, integer ctx3)
    Python: RPR_ShowPopupMenu(String name, Int x, Int y, HWND hwndParentOptional, void ctxOptional, Int ctx2Optional, Int ctx3Optional)

    shows a Reaper-context menu.
    You can decide, which menu to show and to which track/item/envelope/envelope-point/automation-item you want this context-menu to be applied to.
    e.g. you can decide, whether settings in the context-menu "track_panel" shall be applied to track 1, track 2, etc

    You can also apply this to the selected track/mediaitem/envelope.
    The parameters name and ctx influence each other, means: name="item" and ctx=reaper.GetMediaItem(0,1) apply the mediaitem-contextmenu to the Mediaitem-object, given to parameter ctx.
    The choice of the parameter name also influences, whether ctxOptional and ctx2Optional can be set or not and what they mean.

    Blocks further execution of a script, until the context-menu is closed.

    Parameters:
    string name
    the name of the context-menu to show
    can be track_input, track_panel, track_area, track_routing, item, ruler, envelope, envelope_point, envelope_item
    integer x
    x-position of the contextmenu-display-position in pixels
    integer y
    y-position of the contextmenu-display-position in pixels
    optional HWND hwndParent
    the HWND-window in which to display the context-menu.
    nil, Reaper's main window will be used as HWND
    optional identifier ctx
    the object for which to apply the contextmenu. Options selected in the context-menu will be applied to this track/item;
    nil, use the selected track(s)/item(s)/envelope, depending on the chosen context-menu-name in parameter name;
         shows no context-menu, when no track/item/envelope is selected;

    possible objects and their corresponding name-parameter:
      - MediaTrack(track_input, track_panel, track_routing)
      - MediaItem(item)
      - TrackEnvelope(also Take-Envelopes!) (envelope, envelope_point)
    when using any other context-menu-name, this parameter will be ignored by Reaper.
    optional ctxOptional
    when ctx is a TrackEnvelope(or nil) and menu="envelope_point",
         this is the idx of the envelope-point to which to apply the context-menu
    when ctx is a TrackEnvelope(or nil) and menu="envelope_item",
         this reflects the automation-item in chosen envelope, to which to apply the context-menu(1 or higher for automation-item 1 or higher)
    optional ctx2Optional
    when ctx is a TrackEnvelope(or nil) and menu="envelope_point", this reflects,
    0, whether to apply the context-menu to the point in the envelope-lane or
    1 or higher, whether to apply the context-menu to the point in automation-item 1 or higher;
    nil, assumes 0(envelope-lane)


    ^ Reaper version 5.62Splash_GetWnd

    C: HWND Splash_GetWnd()
    EEL2: HWND Splash_GetWnd()
    Lua: HWND hwnd = reaper.Splash_GetWnd()
    Python: HWND hwnd = RPR_Splash_GetWnd()

    gets the splash window, in case you want to display a message over it. Returns NULL when the splash window is not displayed.

    Returnvalues:
    HWND hwnd
    the window-handler of the splash-window


    ^ Reaper version 5.62TrackCtl_SetToolTip

    C: void TrackCtl_SetToolTip(const char* fmt, int xpos, int ypos, bool topmost)
    EEL2: TrackCtl_SetToolTip("fmt", int xpos, int ypos, bool topmost)
    Lua: reaper.TrackCtl_SetToolTip(string fmt, integer xpos, integer ypos, boolean topmost)
    Python: RPR_TrackCtl_SetToolTip(String fmt, Int xpos, Int ypos, Boolean topmost)

    Displays tooltip at location, or removes if empty string.

    Only one tooltip can be shown, means, a new tooltip removes the previous one.

    Parameters:
    string fmt
    the message, to be shown as tooltip; empty string removes tooltip
    integer xpos
    horizontal position in pixels
    integer ypos
    vertical position in pixels
    boolean topmost
    true, puts tooltip on top of all windows of the operating system;
    false, tooltip will only be shown within Reaper's windows


    ^ Reaper version 5.62TrackList_AdjustWindows

    C: void TrackList_AdjustWindows(bool isMinor)
    EEL2: TrackList_AdjustWindows(bool isMinor)
    Lua: reaper.TrackList_AdjustWindows(boolean isMinor)
    Python: RPR_TrackList_AdjustWindows(Boolean isMinor)

    Updates the TCP and optionally the MCP. Helpful, when setting a new trackheight using I_HEIGHTOVERRIDE in SetMediaTrackInfo_Value.

    This also updates the Region Render Matrix.


    Parameters:
    boolean isMinor
    false, updates only TCP; true, updates TCP and MCP


    ^ Reaper version 5.62UpdateArrange

    C: void UpdateArrange()
    EEL2: UpdateArrange()
    Lua: reaper.UpdateArrange()
    Python: RPR_UpdateArrange()

    Redraw the arrange view


    ^ Reaper version 5.62UpdateTimeline

    C: void UpdateTimeline()
    EEL2: UpdateTimeline()
    Lua: reaper.UpdateTimeline()
    Python: RPR_UpdateTimeline()

    Redraw the arrange view and ruler


    ^ Reaper version 5.62my_getViewport

    C: void my_getViewport(RECT* r, const RECT* sr, bool wantWorkArea)
    EEL2: my_getViewport(int &r.left, int &r.top, int &r.right, int &r.bot, int sr.left, int sr.top, int sr.right, int sr.bot, bool wantWorkArea)
    Lua: integer left, integer top, integer right, integer bottom = reaper.my_getViewport(integer r.left, integer r.top, integer r.right, integer r.bot, integer sr.left, integer sr.top, integer sr.right, integer sr.bot, boolean wantWorkArea)
    Python: RPR_my_getViewport(RECT r, const RECT sr, Boolean wantWorkArea)

    With r.??? and sr.??? parameters, you can define coordinates of a rectangle.
    The function will return the left/top/right/bottom coordinates of the viewport that that rectangle is on/closest to.

    Returnvalues:
    integer left
    left coordinate of the returned viewport
    integer top
    top coordinate of the returned viewport
    integer right
    right coordinate of the returned viewport
    integer bottom
    bottom coordinate of the returned viewport

    Parameters:
    integer r.left
    left coordinate of the rectangle
    integer r.top
    top coordinate of the rectangle
    integer r.right
    right coordinate of the rectangle
    integer r.bot
    bottom coordinate of the rectangle
    integer sr.left
    left coordinate of the rectangle in multimonitor usecases
    integer sr.top
    top coordinate of the rectangle in multimonitor usecases
    integer sr.right
    right coordinate of the rectangle in multimonitor usecases
    integer sr.bot
    bottom coordinate of the rectangle in mutlimonitor usecases
    boolean wantWorkArea
    true, returns workspace only; false, full monitor coordinates of the returned viewport


    ^ Reaper version 5.62RefreshToolbar

    C: void RefreshToolbar(int command_id)
    EEL2: RefreshToolbar(int command_id)
    Lua: reaper.RefreshToolbar(integer command_id)
    Python: RPR_RefreshToolbar(Int command_id)

    Refreshes the toolbar-buttons, associated with a specific command_id/action

    see NamedCommandLookup for getting command-ids from scripts and 3rd-party actions

    See RefreshToolbar2.


    Parameters:
    integer command_id
    the command_id-number of the action, whose toolbar button you want to toggle.


    ^ Reaper version 5.62RefreshToolbar2

    C: void RefreshToolbar2(int section_id, int command_id)
    EEL2: RefreshToolbar2(int section_id, int command_id)
    Lua: reaper.RefreshToolbar2(integer section_id, integer command_id)
    Python: RPR_RefreshToolbar2(Int section_id, Int command_id)

    Refreshes the toolbar-buttons, associated with a specific command_id/action within a certain section

    see NamedCommandLookup for getting command-ids from scripts and 3rd-party actions


    Parameters:
    integer section_id
    the section, in which the action lies
    0, Main
    100, Main (alt recording)
    32060, MIDI Editor
    32061, MIDI Event List Editor
    32062, MIDI Inline Editor
    32063, Media Explorer
    integer command_id
    the command_id-number of the action, whose toolbar button you want to toggle.


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_GetMouseCursorContext_MIDI

    C: void* BR_GetMouseCursorContext_MIDI(bool* inlineEditorOut, int* noteRowOut, int* ccLaneOut, int* ccLaneValOut, int* ccLaneIdOut)
    EEL2: void* extension_api("BR_GetMouseCursorContext_MIDI", bool &inlineEditor, int ¬eRow, int &ccLane, int &ccLaneVal, int &ccLaneId)
    Lua: identifier hwnd, boolean inlineEditor, integer noteRow, integer ccLane, integer ccLaneVal, integer ccLaneId = reaper.BR_GetMouseCursorContext_MIDI()
    Python: (void retval, Boolean inlineEditorOut, Int noteRowOut, Int ccLaneOut, Int ccLaneValOut, Int ccLaneIdOut) = BR_GetMouseCursorContext_MIDI(inlineEditorOut, noteRowOut, ccLaneOut, ccLaneValOut, ccLaneIdOut)

    [BR] Returns midi editor under mouse cursor that was captured with the last call to BR_GetMouseCursorContext.

    inlineEditor: if mouse was captured in inline MIDI editor, this will be true (consequentially, returned MIDI editor will be NULL) noteRow: note row or piano key under mouse cursor (0-127) ccLane: CC lane under mouse cursor (CC0-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) ccLaneVal: value in CC lane under mouse cursor (0-127 or 0-16383) ccLaneId: lane position, counting from the top (0 based)

    Note: due to API limitations, if mouse is over inline MIDI editor with some note rows hidden, noteRow will be -1


    Returnvalues:
    identifier hwnd
    boolean inlineEditor
    integer noteRow
    integer ccLane
    integer ccLaneVal
    integer ccLaneId


    ^ Reaper version 5.974 SWS version 2.10.0.1BR_Win32_CB_FindString

    C: int BR_Win32_CB_FindString(void* comboBoxHwnd, int startId, const char* string)
    EEL2: int extension_api("BR_Win32_CB_FindString", void* comboBoxHwnd, int startId, "string")
    Lua: integer retval = reaper.BR_Win32_CB_FindString(identifier comboBoxHwnd, integer startId, string string)
    Python: Int retval = BR_Win32_CB_FindString(void comboBoxHwnd, Int startId, String string)

    [BR] Equivalent to win32 API ComboBox_FindString().


    Returnvalues:
    integer retval

    Parameters:
    identifier comboBoxHwnd
    integer startId
    string string


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_CB_FindStringExact

    C: int BR_Win32_CB_FindStringExact(void* comboBoxHwnd, int startId, const char* string)
    EEL2: int extension_api("BR_Win32_CB_FindStringExact", void* comboBoxHwnd, int startId, "string")
    Lua: integer retval = reaper.BR_Win32_CB_FindStringExact(identifier comboBoxHwnd, integer startId, string string)
    Python: Int retval = BR_Win32_CB_FindStringExact(void comboBoxHwnd, Int startId, String string)

    [BR] Equivalent to win32 API ComboBox_FindStringExact().


    Returnvalues:
    integer retval

    Parameters:
    identifier comboBoxHwnd
    integer startId
    string string


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_ClientToScreen

    C: void BR_Win32_ClientToScreen(void* hwnd, int xIn, int yIn, int* xOut, int* yOut)
    EEL2: extension_api("BR_Win32_ClientToScreen", void* hwnd, int xIn, int yIn, int &x, int &y)
    Lua: integer x, integer y = reaper.BR_Win32_ClientToScreen(identifier hwnd, integer xIn, integer yIn)
    Python: (void hwnd, Int xIn, Int yIn, Int xOut, Int yOut) = BR_Win32_ClientToScreen(hwnd, xIn, yIn, xOut, yOut)

    [BR] Equivalent to win32 API ClientToScreen().

    Returnvalues:
    integer x
    integer y

    Parameters:
    identifier hwnd
    integer xIn
    integer yIn


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_FindWindowEx

    C: void* BR_Win32_FindWindowEx(const char* hwndParent, const char* hwndChildAfter, const char* className, const char* windowName, bool searchClass, bool searchName)
    EEL2: void* extension_api("BR_Win32_FindWindowEx", "hwndParent", "hwndChildAfter", "className", "windowName", bool searchClass, bool searchName)
    Lua: identifier hwnd = reaper.BR_Win32_FindWindowEx(string hwndParent, string hwndChildAfter, string className, string windowName, boolean searchClass, boolean searchName)
    Python: identifier hwnd = BR_Win32_FindWindowEx(String hwndParent, String hwndChildAfter, String className, String windowName, Boolean searchClass, Boolean searchName)

    [BR] Equivalent to win32 API FindWindowEx(). Since ReaScript doesn't allow passing NULL (None in Python, nil in Lua etc...) parameters, to search by supplied class or name set searchClass and searchName accordingly. HWND parameters should be passed as either "0" to signify NULL or as string obtained from BR_Win32_HwndToString.


    Returnvalues:
    identifier hwnd

    Parameters:
    string hwndParent
    string hwndChildAfter
    string className
    string windowName
    boolean searchClass
    boolean searchName


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GET_X_LPARAM

    C: int BR_Win32_GET_X_LPARAM(int lParam)
    EEL2: int extension_api("BR_Win32_GET_X_LPARAM", int lParam)
    Lua: integer retval = reaper.BR_Win32_GET_X_LPARAM(integer lParam)
    Python: Int retval = BR_Win32_GET_X_LPARAM(Int lParam)

    [BR] Equivalent to win32 API GET_X_LPARAM().


    Returnvalues:
    integer retval

    Parameters:
    integer lParam


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GET_Y_LPARAM

    C: int BR_Win32_GET_Y_LPARAM(int lParam)
    EEL2: int extension_api("BR_Win32_GET_Y_LPARAM", int lParam)
    Lua: integer retval = reaper.BR_Win32_GET_Y_LPARAM(integer lParam)
    Python: Int retval = BR_Win32_GET_Y_LPARAM(Int lParam)

    [BR] Equivalent to win32 API GET_Y_LPARAM().


    Returnvalues:
    integer retval

    Parameters:
    integer lParam


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetFocus

    C: void* BR_Win32_GetFocus()
    EEL2: void* extension_api("BR_Win32_GetFocus")
    Lua: identifier hwnd_focus = reaper.BR_Win32_GetFocus()
    Python: identifier hwnd_focus = BR_Win32_GetFocus()

    [BR] Equivalent to win32 API GetFocus().


    Returnvalues:
    identifier hwnd_focus


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetForegroundWindow

    C: void* BR_Win32_GetForegroundWindow()
    EEL2: void* extension_api("BR_Win32_GetForegroundWindow")
    Lua: identifier hwnd_foreground = reaper.BR_Win32_GetForegroundWindow()
    Python: identifier hwnd_foreground = BR_Win32_GetForegroundWindow()

    [BR] Equivalent to win32 API GetForegroundWindow().


    Returnvalues:
    identifier hwnd_foreground


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetMainHwnd

    C: void* BR_Win32_GetMainHwnd()
    EEL2: void* extension_api("BR_Win32_GetMainHwnd")
    Lua: identifier hwnd_main = reaper.BR_Win32_GetMainHwnd()
    Python: identifier hwnd_main = BR_Win32_GetMainHwnd()

    [BR] Alternative to GetMainHwnd. REAPER seems to have problems with extensions using HWND type for exported functions so all BR_Win32 functions use void* instead of HWND type


    Returnvalues:
    identifier hwnd_main


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetMixerHwnd

    C: void* BR_Win32_GetMixerHwnd(bool* isDockedOut)
    EEL2: void* extension_api("BR_Win32_GetMixerHwnd", bool &isDocked)
    Lua: identifier retval, boolean isDocked = reaper.BR_Win32_GetMixerHwnd()
    Python: (void retval, Boolean isDockedOut) = BR_Win32_GetMixerHwnd(isDockedOut)

    [BR] Get mixer window HWND. isDockedOut will be set to true if mixer is docked


    Returnvalues:
    identifier retval
    boolean isDocked


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetMonitorRectFromRect

    C: void BR_Win32_GetMonitorRectFromRect(bool workingAreaOnly, int leftIn, int topIn, int rightIn, int bottomIn, int* leftOut, int* topOut, int* rightOut, int* bottomOut)
    EEL2: extension_api("BR_Win32_GetMonitorRectFromRect", bool workingAreaOnly, int leftIn, int topIn, int rightIn, int bottomIn, int &left, int &top, int &right, int &bottom)
    Lua: integer left, integer top, integer right, integer bottom = reaper.BR_Win32_GetMonitorRectFromRect(boolean workingAreaOnly, integer leftIn, integer topIn, integer rightIn, integer bottomIn)
    Python: (Boolean workingAreaOnly, Int leftIn, Int topIn, Int rightIn, Int bottomIn, Int leftOut, Int topOut, Int rightOut, Int bottomOut) = BR_Win32_GetMonitorRectFromRect(workingAreaOnly, leftIn, topIn, rightIn, bottomIn, leftOut, topOut, rightOut, bottomOut)

    [BR] Get coordinates for screen which is nearest to supplied coordinates. Pass workingAreaOnly as true to get screen coordinates excluding taskbar (or menu bar on OSX).


    Returnvalues:
    integer left
    integer top
    integer right
    integer bottom

    Parameters:
    boolean workingAreaOnly
    integer leftIn
    integer topIn
    integer rightIn
    integer bottomIn


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetParent

    C: void* BR_Win32_GetParent(void* hwnd)
    EEL2: void* extension_api("BR_Win32_GetParent", void* hwnd)
    Lua: identifier hwnd_parent = reaper.BR_Win32_GetParent(identifier hwnd)
    Python: identifier hwnd_parent = BR_Win32_GetParent(void hwnd)

    [BR] Equivalent to win32 API GetParent().


    Returnvalues:
    identifier hwnd_parent

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetWindow

    C: void* BR_Win32_GetWindow(void* hwnd, int cmd)
    EEL2: void* extension_api("BR_Win32_GetWindow", void* hwnd, int cmd)
    Lua: identifier hwnd = reaper.BR_Win32_GetWindow(identifier hwnd, integer cmd)
    Python: identifier hwnd = BR_Win32_GetWindow(void hwnd, Int cmd)

    [BR] Equivalent to win32 API GetWindow().


    Returnvalues:
    identifier hwnd

    Parameters:
    identifier hwnd
    integer cmd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetWindowLong

    C: int BR_Win32_GetWindowLong(void* hwnd, int index)
    EEL2: int extension_api("BR_Win32_GetWindowLong", void* hwnd, int index)
    Lua: integer retval = reaper.BR_Win32_GetWindowLong(identifier hwnd, integer index)
    Python: Int retval = BR_Win32_GetWindowLong(void hwnd, Int index)

    [BR] Equivalent to win32 API GetWindowLong().


    Returnvalues:
    integer retval

    Parameters:
    identifier hwnd
    integer index


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetWindowRect

    C: bool BR_Win32_GetWindowRect(void* hwnd, int* leftOut, int* topOut, int* rightOut, int* bottomOut)
    EEL2: bool extension_api("BR_Win32_GetWindowRect", void* hwnd, int &left, int &top, int &right, int &bottom)
    Lua: boolean retval, integer left, integer top, integer right, integer bottom = reaper.BR_Win32_GetWindowRect(identifier hwnd)
    Python: (Boolean retval, void hwnd, Int leftOut, Int topOut, Int rightOut, Int bottomOut) = BR_Win32_GetWindowRect(hwnd, leftOut, topOut, rightOut, bottomOut)

    [BR] Equivalent to win32 API GetWindowRect().


    Returnvalues:
    boolean retval
    integer left
    integer top
    integer right
    integer bottom

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_GetWindowText

    C: int BR_Win32_GetWindowText(void* hwnd, char* textOut, int textOut_sz)
    EEL2: int extension_api("BR_Win32_GetWindowText", void* hwnd, #text)
    Lua: integer retval, string text = reaper.BR_Win32_GetWindowText(identifier hwnd)
    Python: (Int retval, void hwnd, String textOut, Int textOut_sz) = BR_Win32_GetWindowText(hwnd, textOut, textOut_sz)

    [BR] Equivalent to win32 API GetWindowText().


    Returnvalues:
    integer retval
    string text

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_HwndToString

    C: void BR_Win32_HwndToString(void* hwnd, char* stringOut, int stringOut_sz)
    EEL2: extension_api("BR_Win32_HwndToString", void* hwnd, #string)
    Lua: string hwndstring = reaper.BR_Win32_HwndToString(identifier hwnd)
    Python: (void hwnd, String stringOut, Int stringOut_sz) = BR_Win32_HwndToString(hwnd, stringOut, stringOut_sz)

    [BR] Convert HWND to string. To convert string back to HWND, see BR_Win32_StringToHwnd.

    A way to share a hwnd via extstate, which only allows strings, not binary objects.


    Returnvalues:
    string hwndstring

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_IsWindow

    C: bool BR_Win32_IsWindow(void* hwnd)
    EEL2: bool extension_api("BR_Win32_IsWindow", void* hwnd)
    Lua: boolean retval = reaper.BR_Win32_IsWindow(identifier hwnd)
    Python: Boolean retval = BR_Win32_IsWindow(void hwnd)

    [BR] Equivalent to win32 API IsWindow().


    Returnvalues:
    boolean retval

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_IsWindowVisible

    C: bool BR_Win32_IsWindowVisible(void* hwnd)
    EEL2: bool extension_api("BR_Win32_IsWindowVisible", void* hwnd)
    Lua: boolean retval = reaper.BR_Win32_IsWindowVisible(identifier hwnd)
    Python: Boolean retval = BR_Win32_IsWindowVisible(void hwnd)

    [BR] Equivalent to win32 API IsWindowVisible().


    Returnvalues:
    boolean retval

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_MIDIEditor_GetActive

    C: void* BR_Win32_MIDIEditor_GetActive()
    EEL2: void* extension_api("BR_Win32_MIDIEditor_GetActive")
    Lua: identifier hwnd_active_midi_ed = reaper.BR_Win32_MIDIEditor_GetActive()
    Python: identifier hwnd_active_midi_ed = BR_Win32_MIDIEditor_GetActive()

    [BR] Alternative to MIDIEditor_GetActive. REAPER seems to have problems with extensions using HWND type for exported functions so all BR_Win32 functions use void* instead of HWND type.


    Returnvalues:
    identifier hwnd_active_midi_ed


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_ScreenToClient

    C: void BR_Win32_ScreenToClient(void* hwnd, int xIn, int yIn, int* xOut, int* yOut)
    EEL2: extension_api("BR_Win32_ScreenToClient", void* hwnd, int xIn, int yIn, int &x, int &y)
    Lua: integer x, integer y = reaper.BR_Win32_ScreenToClient(identifier hwnd, integer xIn, integer yIn)
    Python: (void hwnd, Int xIn, Int yIn, Int xOut, Int yOut) = BR_Win32_ScreenToClient(hwnd, xIn, yIn, xOut, yOut)

    [BR] Equivalent to win32 API ClientToScreen().


    Returnvalues:
    integer x
    integer y

    Parameters:
    identifier hwnd
    integer xIn
    integer yIn


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_SendMessage

    C: int BR_Win32_SendMessage(void* hwnd, int msg, int lParam, int wParam)
    EEL2: int extension_api("BR_Win32_SendMessage", void* hwnd, int msg, int lParam, int wParam)
    Lua: integer retval = reaper.BR_Win32_SendMessage(identifier hwnd, integer msg, integer lParam, integer wParam)
    Python: Int retval = BR_Win32_SendMessage(void hwnd, Int msg, Int lParam, Int wParam)

    [BR] Equivalent to win32 API SendMessage().


    Returnvalues:
    integer retval

    Parameters:
    identifier hwnd
    integer msg
    integer lParam
    integer wParam


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_SetFocus

    C: void* BR_Win32_SetFocus(void* hwnd)
    EEL2: void* extension_api("BR_Win32_SetFocus", void* hwnd)
    Lua: identifier hwnd_focus = reaper.BR_Win32_SetFocus(identifier hwnd)
    Python: identifier hwnd_focus = BR_Win32_SetFocus(void hwnd)

    [BR] Equivalent to win32 API SetFocus().


    Returnvalues:
    identifier hwnd_focus

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_SetForegroundWindow

    C: int BR_Win32_SetForegroundWindow(void* hwnd)
    EEL2: int extension_api("BR_Win32_SetForegroundWindow", void* hwnd)
    Lua: integer retval = reaper.BR_Win32_SetForegroundWindow(identifier hwnd)
    Python: Int retval = BR_Win32_SetForegroundWindow(void hwnd)

    [BR] Equivalent to win32 API SetForegroundWindow().


    Returnvalues:
    integer retval

    Parameters:
    identifier hwnd


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_SetWindowLong

    C: int BR_Win32_SetWindowLong(void* hwnd, int index, int newLong)
    EEL2: int extension_api("BR_Win32_SetWindowLong", void* hwnd, int index, int newLong)
    Lua: integer retval = reaper.BR_Win32_SetWindowLong(identifier hwnd, integer index, integer newLong)
    Python: Int retval = BR_Win32_SetWindowLong(void hwnd, Int index, Int newLong)

    [BR] Equivalent to win32 API SetWindowLong().


    Returnvalues:
    integer retval

    Parameters:
    identifier hwnd
    integer index
    integer newLong


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_SetWindowPos

    C: bool BR_Win32_SetWindowPos(void* hwnd, const char* hwndInsertAfter, int x, int y, int width, int height, int flags)
    EEL2: bool extension_api("BR_Win32_SetWindowPos", void* hwnd, "hwndInsertAfter", int x, int y, int width, int height, int flags)
    Lua: boolean retval = reaper.BR_Win32_SetWindowPos(identifier hwnd, string hwndInsertAfter, integer x, integer y, integer width, integer height, integer flags)
    Python: Boolean retval = BR_Win32_SetWindowPos(void hwnd, String hwndInsertAfter, Int x, Int y, Int width, Int height, Int flags)

    [BR] Equivalent to win32 API SetWindowPos(). hwndInsertAfter may be a string: "HWND_BOTTOM", "HWND_NOTOPMOST", "HWND_TOP", "HWND_TOPMOST" or a string obtained with BR_Win32_HwndToString.


    Returnvalues:
    boolean retval

    Parameters:
    identifier hwnd
    string hwndInsertAfter
    integer x
    integer y
    integer width
    integer height
    integer flags


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_ShowWindow

    C: bool BR_Win32_ShowWindow(void* hwnd, int cmdShow)
    EEL2: bool extension_api("BR_Win32_ShowWindow", void* hwnd, int cmdShow)
    Lua: boolean retval = reaper.BR_Win32_ShowWindow(identifier hwnd, integer cmdShow)
    Python: Boolean retval = BR_Win32_ShowWindow(void hwnd, Int cmdShow)

    [BR] Equivalent to win32 API ShowWindow().


    Returnvalues:
    boolean retval

    Parameters:
    identifier hwnd
    integer cmdShow


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_StringToHwnd

    C: void* BR_Win32_StringToHwnd(const char* string)
    EEL2: void* extension_api("BR_Win32_StringToHwnd", "string")
    Lua: identifier hwnd = reaper.BR_Win32_StringToHwnd(string string)
    Python: identifier hwnd = BR_Win32_StringToHwnd(String string)

    [BR] Convert string to HWND. To convert HWND back to string, see BR_Win32_HwndToString.

    A way to share a hwnd via extstate, which only allows strings, not binary objects.


    Returnvalues:
    identifier hwnd

    Parameters:
    string string


    ^ Reaper version 5.965 SWS version 2.10.0.1BR_Win32_WindowFromPoint

    C: void* BR_Win32_WindowFromPoint(int x, int y)
    EEL2: void* extension_api("BR_Win32_WindowFromPoint", int x, int y)
    Lua: identifier hwnd_point = reaper.BR_Win32_WindowFromPoint(integer x, integer y)
    Python: identifier hwnd_point = BR_Win32_WindowFromPoint(Int x, Int y)

    [BR] Equivalent to win32 API WindowFromPoint().

    Returnvalues:
    identifier hwnd_point
    the hwnd at x and y-coordinates

    Parameters:
    integer x
    x-coordinate of the point to look for possible hwnd
    integer y
    y-coordinate of the point to look for possible hwnd


    ^ Reaper version 5.965 SWS version 2.13.0.0CF_GetTrackFXChainEx

    C: FxChain * CF_GetTrackFXChainEx(ReaProject* project, MediaTrack* track, bool wantInputChain)
    EEL2: FxChain extension_api("CF_GetTrackFXChainEx", ReaProject project, MediaTrack track, bool wantInputChain)
    Lua: FxChain fxchain = reaper.CF_GetTrackFXChainEx(ReaProject project, MediaTrack track, boolean wantInputChain)
    Python: FXChain retval = CF_GetTrackFXChainEx(ReaProject project, MediaTrack track, Boolean wantInputChain)

    Return a handle to the given track FX chain window. Set wantInputChain to get the track's input/monitoring FX chain.

    Returnvalues:
    FxChain fxchain
    the fxchain you requested

    Parameters:
    ReaProject project
    the project, whose fxchain you want to get
    MediaTrack track
    the track, whose fxchain you want to get
    boolean wantInputChain
    true, get the fxchain of the monitoring fx; false, get the fxchain of a track


    ^ Reaper version 5.62GetMainHwnd

    C: HWND GetMainHwnd()
    EEL2: HWND GetMainHwnd()
    Lua: HWND hwnd = reaper.GetMainHwnd()
    Python: HWND hwnd = RPR_GetMainHwnd()

    Get the Reaper-window as an HWND-object

    Returnvalues:
    HWND hwnd
    the Reaper-Window


    ^ Reaper version 5.974 JS version 0.951JS_GDI_GetClientDC

    C: void* JS_GDI_GetClientDC(void* windowHWND)
    EEL2: void* extension_api("JS_GDI_GetClientDC", void* windowHWND)
    Lua: identifier device_context = reaper.JS_GDI_GetClientDC(identifier windowHWND)
    Python: identifier device_context = JS_GDI_GetClientDC(void windowHWND)

    Returns the device context for the client area of the specified window.


    Returnvalues:
    identifier device_context

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_GDI_GetScreenDC

    C: void* JS_GDI_GetScreenDC()
    EEL2: void* extension_api("JS_GDI_GetScreenDC")
    Lua: identifier device_context = reaper.JS_GDI_GetScreenDC()
    Python: identifier device_context = JS_GDI_GetScreenDC()

    Returns a device context for the entire screen.



    WARNING: Only available on Windows, not Linux or MacOS.


    Returnvalues:
    identifier device_context


    ^ Reaper version 5.974 JS version 0.951JS_GDI_GetWindowDC

    C: void* JS_GDI_GetWindowDC(void* windowHWND)
    EEL2: void* extension_api("JS_GDI_GetWindowDC", void* windowHWND)
    Lua: identifier device_context = reaper.JS_GDI_GetWindowDC(identifier windowHWND)
    Python: identifier device_context = JS_GDI_GetWindowDC(void windowHWND)

    Returns the device context for the entire window, including title bar and frame.


    Returnvalues:
    identifier device_context

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_MIDIEditor_ArrayAll

    C: void JS_MIDIEditor_ArrayAll(void* reaperarray)
    EEL2: extension_api("JS_MIDIEditor_ArrayAll", void* reaperarray)
    Lua: reaper.JS_MIDIEditor_ArrayAll(identifier reaperarray)
    Python: JS_MIDIEditor_ArrayAll(void reaperarray)

    Returns the addresses of all open MIDI windows (whether docked or not).

    * The addresses are stored in the provided reaper.array.

    * Each address can be converted to a REAPER object (HWND) by the function JS_Window_HandleFromAddress.


    Parameters:
    identifier reaperarray


    ^ Reaper version 5.974 JS version 0.951JS_MIDIEditor_ListAll

    C: void JS_MIDIEditor_ListAll(char* buf, int buf_sz)
    EEL2: extension_api("JS_MIDIEditor_ListAll", #buf)
    Lua: string buf = reaper.JS_MIDIEditor_ListAll(string buf)
    Python: (String buf, Int buf_sz) = JS_MIDIEditor_ListAll(buf, buf_sz)

    Returns a list of HWNDs of all open MIDI windows (whether docked or not).

    * The list is formatted as a comma-separated (and terminated) string of hexadecimal values.

    * Each value is an address that can be converted to a HWND by the function JS_Window_HandleFromAddress.


    Returnvalues:
    string buf

    Parameters:
    string buf


    ^ Reaper version 5.974 JS version 0.980JS_WindowMessage_Intercept

    C: int JS_WindowMessage_Intercept(void* windowHWND, const char* messages, bool passThrough)
    EEL2: int extension_api("JS_WindowMessage_Intercept", void* windowHWND, "messages", bool passThrough)
    Lua: integer retval = reaper.JS_WindowMessage_Intercept(identifier windowHWND, string messages, boolean passThrough)
    Python: Int retval = JS_WindowMessage_Intercept(void windowHWND, String messages, Boolean passThrough)

    Intercepts window messages to specified window.

    Parameters:

    * message: a single message type to be intercepted, either in WM_ or hexadecimal format. For example "WM_SETCURSOR" or "0x0020".

    * passThrough: Whether message should be blocked (false) or passed through (true) to the window.

        For more information on message codes, refer to the Win32 C++ API documentation.

        For a list of message types that are valid cross-platform, refer to swell-types.h. Only these will be recognized by WM_ name.



    Returns:

    * 1: Success.

    * 0: The message type is already being intercepted by another script.

    * -2: message string could not be parsed.

    * -3: Failure getting original window process / window not valid.

    * -6: Could not obtain the window client HDC.


    Notes:

    * Intercepted messages can be polled using JS_WindowMessage_Peek.

    * Intercepted messages can be edited, if necessary, and then forwarded to their original destination using JS_WindowMessage_Post or JS_WindowMessage_Send.

    * To check whether a message type is being blocked or passed through, Peek the message type, or retrieve the entire List of intercepts.

    * Mouse events are typically received by the child window under the mouse, not the parent window.

    Keyboard events are usually *not* received by any individual window. To intercept keyboard events, use the VKey functions.

    Returnvalues:
    integer

    Parameters:
    identifier windowHWND
    string messages
    boolean passThrough


    ^ Reaper version 5.974 JS version 0.980JS_WindowMessage_InterceptList

    C: int JS_WindowMessage_InterceptList(void* windowHWND, const char* messages)
    EEL2: int extension_api("JS_WindowMessage_InterceptList", void* windowHWND, "messages")
    Lua: integer retval = reaper.JS_WindowMessage_InterceptList(identifier windowHWND, string messages)
    Python: Int retval = JS_WindowMessage_InterceptList(void windowHWND, String messages)

    Intercepts window messages to specified window.



               Parameters:

    * messages: comma-separated string of message types to be intercepted (either in WM_ or hexadecimal format), each with a "block" or "passthrough" modifier to specify whether the message should be blocked or passed through to the window. For example "WM_SETCURSOR:block, 0x0201:passthrough".

       For more information on message codes, refer to the Win32 C++ API documentation.

       For a list of message types that are valid cross-platform, refer to swell-types.h. Only these will be recognized by WM_ name.



               Returns:

    * 1: Success.

    * 0: The message type is already being intercepted by another script.

    * -1: windowHWND is not a valid window.

    * -2: message string could not be parsed.

    * -3: Failure getting original window process.

    * -6: Could not obtain the window client HDC.

               Notes:

    * Intercepted messages can be polled using JS_WindowMessage_Peek.

    * Intercepted messages can be edited, if necessary, and then forwarded to their original destination using JS_WindowMessage_Post or JS_WindowMessage_Send.

    * To check whether a message type is being blocked or passed through, Peek the message type, or retrieve the entire List of intercepts.


    Returnvalues:
    integer

    Parameters:
    identifier windowHWND
    string messages


    ^ Reaper version 5.974 JS version 0.951JS_WindowMessage_ListIntercepts

    C: bool JS_WindowMessage_ListIntercepts(void* windowHWND, char* buf, int buf_sz)
    EEL2: bool extension_api("JS_WindowMessage_ListIntercepts", void* windowHWND, #buf)
    Lua: boolean retval, string buf = reaper.JS_WindowMessage_ListIntercepts(identifier windowHWND, string buf)
    Python: (Boolean retval, void windowHWND, String buf, Int buf_sz) = JS_WindowMessage_ListIntercepts(windowHWND, buf, buf_sz)

    Returns a string with a list of all message types currently being intercepted for the specified window.


    Returnvalues:
    boolean retval
    string buf

    Parameters:
    identifier windowHWND
    string buf


    ^ Reaper version 5.974 JS version 0.998JS_WindowMessage_PassThrough

    C: int JS_WindowMessage_PassThrough(void* windowHWND, const char* message, bool passThrough)
    EEL2: int extension_api("JS_WindowMessage_PassThrough", void* windowHWND, "message", bool passThrough)
    Lua: integer retval = reaper.JS_WindowMessage_PassThrough(identifier windowHWND, string message, boolean passThrough)
    Python: Int retval = JS_WindowMessage_PassThrough(void windowHWND, String message, Boolean passThrough)

    Changes the passthrough setting of a message type that is already being intercepted.

    Returns 1 if successful, 0 if the message type is not yet being intercepted, or -2 if the argument could not be parsed.

    Returnvalues:
    integer

    Parameters:
    identifier windowHWND
    string message
    boolean passThrough


    ^ Reaper version 5.974 JS version 0.951JS_WindowMessage_Peek

    C: bool JS_WindowMessage_Peek(void* windowHWND, const char* message, bool* passedThroughOut, double* timeOut, int* wParamLowOut, int* wParamHighOut, int* lParamLowOut, int* lParamHighOut)
    EEL2: bool extension_api("JS_WindowMessage_Peek", void* windowHWND, "message", bool &passedThrough, &time, int &wParamLow, int &wParamHigh, int &lParamLow, int &lParamHigh)
    Lua: boolean retval, boolean passedThrough, number time, integer wParamLow, integer wParamHigh, integer lParamLow, integer lParamHigh = reaper.JS_WindowMessage_Peek(identifier windowHWND, string message)
    Python: (Boolean retval, void windowHWND, String message, Boolean passedThroughOut, Float timeOut, Int wParamLowOut, Int wParamHighOut, Int lParamLowOut, Int lParamHighOut) = JS_WindowMessage_Peek(windowHWND, message, passedThroughOut, timeOut, wParamLowOut, wParamHighOut, lParamLowOut, lParamHighOut)

    Polls the state of an intercepted message.



               Parameters:

    * message: String containing a single message name, such as "WM_SETCURSOR", or in hexadecimal format, "0x0020".

    (For a list of message types that are valid cross-platform, refer to swell-types.h. Only these will be recognized by WM_ name.)



               Returns:

    * A retval of false indicates that the message type is not being intercepted in the specified window.

    * All messages are timestamped. A time of 0 indicates that no message if this type has been intercepted yet.

    * For more information about wParam and lParam for different message types, refer to Win32 C++ documentation.

    * For example, in the case of mousewheel, returns mousewheel delta, modifier keys, x position and y position.

    * wParamHigh, lParamLow and lParamHigh are signed, whereas wParamLow is unsigned.


    Returnvalues:
    boolean retval
    boolean passedThrough
    number time
    integer wParamLow
    integer wParamHigh
    integer lParamLow
    integer lParamHigh

    Parameters:
    identifier windowHWND
    string message


    ^ Reaper version 5.974 JS version 0.998JS_WindowMessage_Post

    C: bool JS_WindowMessage_Post(void* windowHWND, const char* message, double wParam, int wParamHighWord, double lParam, int lParamHighWord)
    EEL2: bool extension_api("JS_WindowMessage_Post", void* windowHWND, "message", wParam, int wParamHighWord, lParam, int lParamHighWord)
    Lua: boolean retval = reaper.JS_WindowMessage_Post(identifier windowHWND, string message, number wParam, integer wParamHighWord, number lParam, integer lParamHighWord)
    Python: Boolean retval = JS_WindowMessage_Post(void windowHWND, String message, Float wParam, Int wParamHighWord, Float lParam, Int lParamHighWord)

    If the specified window and message type are not currently being intercepted by a script, this function will post the message in the message queue of the specified window, and return without waiting.

    If the window and message type are currently being intercepted, the message will be sent directly to the original window process, similar to WindowMessage_Send, thereby skipping any intercepts.

    Parameters:
    * message: String containing a single message name, such as "WM_SETCURSOR", or in hexadecimal format, "0x0020".
    (For a list of WM_ and CB_ message types that are valid cross-platform, refer to swell-types.h. Only these will be recognized by WM_ or CB_ name.)
    * wParam, wParamHigh, lParam and lParamHigh: Low and high 16-bit WORDs of the WPARAM and LPARAM parameters.
    (Most window messages encode separate information into the two WORDs. However, for those rare cases in which the entire WPARAM and LPARAM must be used to post a large pointer, the script can store this address in wParam or lParam, and keep wParamHigh and lParamHigh zero.)

    Notes:
    * For more information about parameter values, refer to documentation for the Win32 C++ function PostMessage.
    * Messages should only be sent to windows that were created from the main thread.
    * Useful for simulating mouse clicks and calling mouse modifier actions from scripts.

    Returnvalues:
    boolean retval

    Parameters:
    identifier windowHWND
    string message
    number wParam
    integer wParamHighWord
    number lParam
    integer lParamHighWord


    ^ Reaper version 5.974 JS version 0.951JS_WindowMessage_Release

    C: int JS_WindowMessage_Release(void* windowHWND, const char* messages)
    EEL2: int extension_api("JS_WindowMessage_Release", void* windowHWND, "messages")
    Lua: integer retval = reaper.JS_WindowMessage_Release(identifier windowHWND, string messages)
    Python: Int retval = JS_WindowMessage_Release(void windowHWND, String messages)

    Release intercepts of specified message types.

               Parameters:

    * messages: "WM_SETCURSOR,WM_MOUSEHWHEEL" or "0x0020,0x020E", for example.


    Returnvalues:
    integer

    Parameters:
    identifier windowHWND
    string messages


    ^ Reaper version 5.974 JS version 0.951JS_WindowMessage_ReleaseAll

    C: void JS_WindowMessage_ReleaseAll()
    EEL2: extension_api("JS_WindowMessage_ReleaseAll")
    Lua: reaper.JS_WindowMessage_ReleaseAll()
    Python: JS_WindowMessage_ReleaseAll()

    Release script intercepts of window messages for all windows.



    ^ Reaper version 5.974 JS version 0.951JS_WindowMessage_ReleaseWindow

    C: void JS_WindowMessage_ReleaseWindow(void* windowHWND)
    EEL2: extension_api("JS_WindowMessage_ReleaseWindow", void* windowHWND)
    Lua: reaper.JS_WindowMessage_ReleaseWindow(identifier windowHWND)
    Python: JS_WindowMessage_ReleaseWindow(void windowHWND)

    Release script intercepts of window messages for specified window.


    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.998JS_WindowMessage_Send

    C: int JS_WindowMessage_Send(void* windowHWND, const char* message, double wParam, int wParamHighWord, double lParam, int lParamHighWord)
    EEL2: int extension_api("JS_WindowMessage_Send", void* windowHWND, "message", wParam, int wParamHighWord, lParam, int lParamHighWord)
    Lua: integer retval = reaper.JS_WindowMessage_Send(identifier windowHWND, string message, number wParam, integer wParamHighWord, number lParam, integer lParamHighWord)
    Python: Int retval = JS_WindowMessage_Send(void windowHWND, String message, Float wParam, Int wParamHighWord, Float lParam, Int lParamHighWord)

    Sends a message to the specified window by calling the window process directly, and only returns after the message has been processed. Any intercepts of the message by scripts will be skipped, and the message can therefore not be blocked.

    Parameters:
    * message: String containing a single message name, such as "WM_SETCURSOR", or in hexadecimal format, "0x0020".
    (For a list of WM_ and CB_ message types that are valid cross-platform, refer to swell-types.h. Only these will be recognized by WM_ or CB_ name.)
    * wParam, wParamHigh, lParam and lParamHigh: Low and high 16-bit WORDs of the WPARAM and LPARAM parameters.
    (Most window messages encode separate information into the two WORDs. However, for those rare cases in which the entire WPARAM and LPARAM must be used to post a large pointer, the script can store this address in wParam or lParam, and keep wParamHigh and lParamHigh zero.)

    Notes:
    * For more information about parameter and return values, refer to documentation for the Win32 C++ function SendMessage.
    * Messages should only be sent to windows that were created from the main thread.
    * Useful for simulating mouse clicks and calling mouse modifier actions from scripts.

    Returnvalues:
    integer

    Parameters:
    identifier windowHWND
    string message
    number wParam
    integer wParamHighWord
    number lParam
    integer lParamHighWord


    ^ Reaper version 5.974 JS version 0.951JS_Window_AddressFromHandle

    C: void JS_Window_AddressFromHandle(void* handle, double* addressOut)
    EEL2: extension_api("JS_Window_AddressFromHandle", void* handle, &address)
    Lua: number address = reaper.JS_Window_AddressFromHandle(identifier handle)
    Python: (void handle, Float addressOut) = JS_Window_AddressFromHandle(handle, addressOut)



    Returnvalues:
    number address

    Parameters:
    identifier handle


    ^ Reaper version 5.974 JS version 0.951JS_Window_ArrayAllChild

    C: void JS_Window_ArrayAllChild(void* parentHWND, void* reaperarray)
    EEL2: extension_api("JS_Window_ArrayAllChild", void* parentHWND, void* reaperarray)
    Lua: reaper.JS_Window_ArrayAllChild(identifier parentHWND, identifier reaperarray)
    Python: JS_Window_ArrayAllChild(void parentHWND, void reaperarray)

    Returns all child windows of the specified parent.



               The addresses are stored in the provided reaper.array, and can be converted to REAPER objects (HWNDs) by the function JS_Window_HandleFromAddress.


    Parameters:
    identifier parentHWND
    identifier reaperarray


    ^ Reaper version 5.974 JS version 0.951JS_Window_ArrayAllTop

    C: void JS_Window_ArrayAllTop(void* reaperarray)
    EEL2: extension_api("JS_Window_ArrayAllTop", void* reaperarray)
    Lua: reaper.JS_Window_ArrayAllTop(identifier reaperarray)
    Python: JS_Window_ArrayAllTop(void reaperarray)

    Returns all top-level windows.



               The addresses are stored in the provided reaper.array, and can be converted to REAPER objects (HWNDs) by the function JS_Window_HandleFromAddress.


    Parameters:
    identifier reaperarray


    ^ Reaper version 5.974 JS version 0.951JS_Window_ArrayFind

    C: void JS_Window_ArrayFind(const char* title, bool exact, void* reaperarray)
    EEL2: extension_api("JS_Window_ArrayFind", "title", bool exact, void* reaperarray)
    Lua: reaper.JS_Window_ArrayFind(string title, boolean exact, identifier reaperarray)
    Python: JS_Window_ArrayFind(String title, Boolean exact, void reaperarray)

    Returns all windows, whether top-level or child, whose titles match the specified string.



               The addresses are stored in the provided reaper.array, and can be converted to REAPER objects (HWNDs) by the function JS_Window_HandleFromAddress.



               Parameters: * exact: Match entire title exactly, or match substring of title.


    Parameters:
    string title
    boolean exact
    identifier reaperarray


    ^ Reaper version 5.974 JS version 0.951JS_Window_AttachResizeGrip

    C: void JS_Window_AttachResizeGrip(void* windowHWND)
    EEL2: extension_api("JS_Window_AttachResizeGrip", void* windowHWND)
    Lua: reaper.JS_Window_AttachResizeGrip(identifier windowHWND)
    Python: JS_Window_AttachResizeGrip(void windowHWND)



    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.988JS_Window_AttachTopmostPin

    C: void* JS_Window_AttachTopmostPin(void* windowHWND)
    EEL2: void extension_api("JS_Window_AttachTopmostPin", void* windowHWND)
    Lua: identifier HWND = reaper.JS_Window_AttachTopmostPin(identifier windowHWND)
    Python: identifier HWND = JS_Window_AttachTopmostPin(void windowHWND)

    Attaches a "pin on top" button to the window frame. The button should remember its state when closing and re-opening the window.

    WARNING: This function does not yet work on Linux.

    Returnvalues:
    identifier HWND

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_ClientToScreen

    C: void JS_Window_ClientToScreen(void* windowHWND, int x, int y, int* xOut, int* yOut)
    EEL2: extension_api("JS_Window_ClientToScreen", void* windowHWND, int x, int y, int &x, int &y)
    Lua: integer x, integer y = reaper.JS_Window_ClientToScreen(identifier windowHWND, integer x, integer y)
    Python: (void windowHWND, Int x, Int y, Int xOut, Int yOut) = JS_Window_ClientToScreen(windowHWND, x, y, xOut, yOut)

    Converts the client-area coordinates of a specified point to screen coordinates.


    Returnvalues:
    integer x
    integer y

    Parameters:
    identifier windowHWND
    integer x
    integer y


    ^ Reaper version 5.974 JS version 0.995JS_Window_Create

    C: void* JS_Window_Create(const char* title, const char* className, int x, int y, int w, int h, char* styleOptional, void* ownerHWNDOptional)
    EEL2: void* extension_api("JS_Window_Create", "title", "className", int x, int y, int w, int h, optional #style, void* ownerHWND)
    Lua: identifier retval, optional string style = reaper.JS_Window_Create(string title, string className, integer x, integer y, integer w, integer h, optional string style, identifier ownerHWND)
    Python: (void retval, String title, String className, Int x, Int y, Int w, Int h, String styleOptional, void ownerHWNDOptional) = JS_Window_Create(title, className, x, y, w, h, styleOptional, ownerHWNDOptional)

    Creates a modeless window with WS_OVERLAPPEDWINDOW style and only rudimentary features. Scripts can paint into the window using GDI or LICE/Composite functions (and JS_Window_InvalidateRect to trigger re-painting).

    style: An optional parameter that overrides the default style. The string may include any combination of standard window styles, such as "POPUP" for a frameless window, or "CAPTION,SIZEBOX,SYSMENU" for a standard framed window.

    On Linux and macOS, "MAXIMIZE" has not yet been implemented, and the remaining styles may appear slightly different from their WindowsOS counterparts.

    className: On Windows, only standard ANSI characters are supported.

    ownerHWND: Optional parameter, only available on WindowsOS. Usually either the REAPER main window or another script window, and useful for ensuring that the created window automatically closes when the owner is closed.

    NOTE: On Linux and macOS, the window contents are only updated *between* defer cycles, so the window cannot be animated by for/while loops within a single defer cycle.


    Returnvalues:
    identifier retval
    optional string style

    Parameters:
    string title
    string className
    integer x
    integer y
    integer w
    integer h
    optional string style
    identifier ownerHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_Destroy

    C: void JS_Window_Destroy(void* windowHWND)
    EEL2: extension_api("JS_Window_Destroy", void* windowHWND)
    Lua: reaper.JS_Window_Destroy(identifier windowHWND)
    Python: JS_Window_Destroy(void windowHWND)

    Destroys the specified window.


    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_Enable

    C: void JS_Window_Enable(void* windowHWND, bool enable)
    EEL2: extension_api("JS_Window_Enable", void* windowHWND, bool enable)
    Lua: reaper.JS_Window_Enable(identifier windowHWND, boolean enable)
    Python: JS_Window_Enable(void windowHWND, Boolean enable)

    Enables or disables mouse and keyboard input to the specified window or control.


    Parameters:
    identifier windowHWND
    boolean enable


    ^ Reaper version 5.974 JS version 1.000JS_Window_EnableMetal

    C: int retval = JS_Window_EnableMetal(void* windowHWND)
    EEL2: int retval = extension_api("JS_Window_EnableMetal", void* windowHWND)
    Lua: integer retval = reaper.JS_Window_EnableMetal(identifier windowHWND)
    Python: Int retval = JS_Window_EnableMetal(void windowHWND)

    On macOS, returns the Metal graphics setting: 2 = Metal enabled and support GetDC()/ReleaseDC() for drawing (more overhead). 1 = Metal enabled. 0 = N/A (Windows and Linux). -1 = non-metal async layered mode. -2 = non-metal non-async layered mode.

    WARNING: If using mode -1, any BitBlt()/StretchBlt() MUST have the source bitmap persist. If it is resized after Blit it could cause crashes.


    Returnvalues:
    integer retval

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.989JS_Window_Find

    C: void* JS_Window_Find(const char* title, bool exact)
    EEL2: void* extension_api("JS_Window_Find", "title", bool exact)
    Lua: identifier hwnd = reaper.JS_Window_Find(string title, boolean exact)
    Python: identifier hwnd = JS_Window_Find(String title, Boolean exact)

    Returns a HWND to a window whose title matches the specified string.
    * Unlike the Win32 function FindWindow, this function searches top-level as well as child windows, so that the target window can be found irrespective of docked state.
    * In addition, the function can optionally match substrings of the title.
    * Matching is not case sensitive.

    Parameters:
    * exact: Match entire title, or match substring of title.

    Returnvalues:
    identifier hwnd
    the identifier of the found window, or nil

    Parameters:
    string title
    the title of the window to find
    boolean exact
    true, title must match exactly the name of the window; false, title can only partially match the windowtitle


    ^ Reaper version 5.974 JS version 0.990JS_Window_FindChild

    C: void* JS_Window_FindChild(void* parentHWND, const char* title, bool exact)
    EEL2: void* extension_api("JS_Window_FindChild", void* parentHWND, "title", bool exact)
    Lua: identifier hwnd = reaper.JS_Window_FindChild(identifier parentHWND, string title, boolean exact)
    Python: identifier hwnd = JS_Window_FindChild(void parentHWND, String title, Boolean exact)

    Returns a HWND to a child window whose title matches the specified string.

    Parameters:

    * exact: Match entire title length, or match substring of title. In both cases, matching is not case sensitive.


    Returnvalues:
    identifier hwnd
    the identifier for the window found; nil, if no such window found

    Parameters:
    identifier parentHWND
    the identifier of the parent window to the child-window
    string title
    the title of the child-window to find
    boolean exact
    true, title must match exactly the name of the window; false, title can only partially match the windowtitle


    ^ Reaper version 5.974 JS version 0.963JS_Window_FindChildByID

    C: void* JS_Window_FindChildByID(void* parentHWND, int ID)
    EEL2: void* extension_api("JS_Window_FindChildByID", void* parentHWND, int ID)
    Lua: identifier HWND = reaper.JS_Window_FindChildByID(identifier parentHWND, integer ID)
    Python: identifier HWND = JS_Window_FindChildByID(void parentHWND, Int ID)

    Similar to the C++ WIN32 function GetDlgItem, this function finds child windows by ID.

    (The ID of a window may be retrieved by JS_Window_GetLongPtr.)

    For instance: with Reaper's MainHWND, you can get: 0: Transport(Windows)/MainHWND(Mac) 999: project-tabs(if existing, otherwise will be nil) 1000: trackview 1005: timeline 1259: Mouse editing help in the area beneath the track control panels


    Returnvalues:
    identifier HWND
    the HWND of the window, that the function found

    Parameters:
    identifier parentHWND
    the parent HWND, whose child-HWNDs you want to search through
    integer ID
    the ID of the childHWND


    ^ Reaper version 5.974 JS version 0.964JS_Window_FindEx

    C: void* JS_Window_FindEx(void* parentHWND, void* childHWND, const char* className, const char* title)
    EEL2: void* extension_api("JS_Window_FindEx", void* parentHWND, void* childHWND, "className", "title")
    Lua: identifier HWND = reaper.JS_Window_FindEx(identifier parentHWND, identifier childHWND, string className, string title)
    Python: identifier HWND = JS_Window_FindEx(void parentHWND, void childHWND, String className, String title)

    Returns a handle to a child window whose class and title match the specified strings.

    Parameters: * childWindow: The function searches child windows, beginning with the window *after* the specified child window. If childHWND is equal to parentHWND, the search begins with the first child window of parentHWND.
    * title: An empty string, "", will match all windows. (Search is not case sensitive.)

    Returnvalues:
    identifier HWND
    the found window; nil, if no window has been found

    Parameters:
    identifier parentHWND
    the parent hwnd of the child-window to find
    identifier childHWND
    the parent child-window of the window to find; set it to parentHWND to search beginning with the first childhwnd of the parenthwnd
    string className
    the name of the class of the child-window, that you want to find
    string title
    the title of the child-window to find


    ^ Reaper version 5.974 JS version 0.989JS_Window_FindTop

    C: void* JS_Window_FindTop(const char* title, bool exact)
    EEL2: void* extension_api("JS_Window_FindTop", "title", bool exact)
    Lua: identifier hwnd = reaper.JS_Window_FindTop(string title, boolean exact)
    Python: identifier hwnd = JS_Window_FindTop(String title, Boolean exact)

    Returns a HWND to a top-level window whose title matches the specified string.

    Parameters:
    * exact: Match entire title length, or match substring of title. In both cases, matching is not case sensitive.

    Returnvalues:
    identifier hwnd
    the found identifier of the window; nil, if not found

    Parameters:
    string title
    the title of the top-level window to find
    boolean exact
    true, title must match exactly the name of the window; false, title can only partially match the windowtitle


    ^ Reaper version 5.974 JS version 0.951JS_Window_FromPoint

    C: void* JS_Window_FromPoint(int x, int y)
    EEL2: void* extension_api("JS_Window_FromPoint", int x, int y)
    Lua: identifier hwnd = reaper.JS_Window_FromPoint(integer x, integer y)
    Python: identifier hwnd = JS_Window_FromPoint(Int x, Int y)

    Retrieves a HWND to the window that contains the specified point.


    Returnvalues:
    identifier hwnd
    the window found at the coordinates

    Parameters:
    integer x
    the x-position in pixels, at which to find the window
    integer y
    the y-position in pixels, at which to find the window


    ^ Reaper version 5.974 JS version 0.951JS_Window_GetClassName

    C: void JS_Window_GetClassName(void* windowHWND, char* buf, int buf_sz)
    EEL2: extension_api("JS_Window_GetClassName", void* windowHWND, #buf)
    Lua: string buf = reaper.JS_Window_GetClassName(identifier windowHWND, string buf)
    Python: (void windowHWND, String buf, Int buf_sz) = JS_Window_GetClassName(windowHWND, buf, buf_sz)

    WARNING: May not be fully implemented on MacOS and Linux.


    Returnvalues:
    string buf

    Parameters:
    identifier windowHWND
    string buf


    ^ Reaper version 5.974 JS version 0.951JS_Window_GetClientRect

    C: bool JS_Window_GetClientRect(void* windowHWND, int* leftOut, int* topOut, int* rightOut, int* bottomOut)
    EEL2: bool extension_api("JS_Window_GetClientRect", void* windowHWND, int &left, int &top, int &right, int &bottom)
    Lua: boolean retval, integer left, integer top, integer right, integer bottom = reaper.JS_Window_GetClientRect(identifier windowHWND)
    Python: (Boolean retval, void windowHWND, Int leftOut, Int topOut, Int rightOut, Int bottomOut) = JS_Window_GetClientRect(windowHWND, leftOut, topOut, rightOut, bottomOut)

    Retrieves the coordinates of the client area rectangle of the specified window. The dimensions are given in screen coordinates relative to the upper-left corner of the screen.

    NOTE 1: Unlike the C++ function GetClientRect, this function returns the actual coordinates, not the width and height.

    NOTE 2: The pixel at (right, bottom) lies immediately outside the rectangle.

    Returnvalues:
    boolean retval
    integer left
    integer top
    integer right
    integer bottom

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 1.215JS_Window_GetClientSize

    C: bool JS_Window_GetClientSize(void* windowHWND, int* widthOut, int* heightOut)
    EEL2: bool extension_api("JS_Window_GetClientSize", void* windowHWND, int &width, int &height)
    Lua: boolean retval, integer width, integer height = reaper.JS_Window_GetClientSize(identifier windowHWND)
    Python: (Boolean retval, void windowHWND, Int widthOut, Int heightOut) = JS_Window_GetClientSize(windowHWND, widthOut, heightOut)

    Retrieves a HWND to the window that has the keyboard focus, if the window is attached to the calling thread's message queue.


    Returnvalues:
    boolean retval
    integer width
    integer height

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_GetFocus

    C: void* JS_Window_GetFocus()
    EEL2: void* extension_api("JS_Window_GetFocus")
    Lua: identifier hwnd = reaper.JS_Window_GetFocus()
    Python: identifier hwnd = JS_Window_GetFocus()

    Retrieves a HWND to the window that has the keyboard focus, if the window is attached to the calling thread's message queue.


    Returnvalues:
    identifier hwnd


    ^ Reaper version 5.974 JS version 1.002JS_Window_GetForeground

    C: void* JS_Window_GetForeground()
    EEL2: void* extension_api("JS_Window_GetForeground")
    Lua: identifier hwnd = reaper.JS_Window_GetForeground()
    Python: identifier hwnd = JS_Window_GetForeground()

    Retrieves a HWND to the top-level foreground window (the window with which the user is currently working).

    Returnvalues:
    identifier hwnd


    ^ Reaper version 5.974 JS version 1.010JS_Window_GetLong

    C: void JS_Window_GetLong(void* windowHWND, const char* info, double* retvalOut)
    EEL2: extension_api("JS_Window_GetLong", void* windowHWND, "info", &retval)
    Lua: number retval = reaper.JS_Window_GetLong(identifier windowHWND, string info)
    Python: (void windowHWND, String info, Float retvalOut) = JS_Window_GetLong(windowHWND, info, retvalOut)

    In the case of "DLGPROC" and "WNDPROC", the return values can be converted to pointers by JS_Window_HandleFromAddress.

    If the function fails, the return value is 0.


    Returnvalues:
    number retval

    Parameters:
    identifier windowHWND
    string info


    ^ Reaper version 5.974 JS version 1.010JS_Window_GetLongPtr

    C: void* JS_Window_GetLongPtr(void* windowHWND, const char* info)
    EEL2: void* extension_api("JS_Window_GetLongPtr", void* windowHWND, "info")
    Lua: identifier long_ptr = reaper.JS_Window_GetLongPtr(identifier windowHWND, string info)
    Python: identifier long_ptr = JS_Window_GetLongPtr(void windowHWND, String info)

    Returns information about the specified window.



    info: "USERDATA", "WNDPROC", "DLGPROC", "ID", "EXSTYLE" or "STYLE".



    For documentation about the types of information returned, refer to the Win32 function GetWindowLongPtr.
    The values returned by "DLGPROC" and "WNDPROC" are typically used as-is, as pointers, whereas the others should first be converted to integers.


    Returnvalues:
    identifier long_ptr

    Parameters:
    identifier windowHWND
    string info


    ^ Reaper version 5.974 JS version 0.951JS_Window_GetParent

    C: void* JS_Window_GetParent(void* windowHWND)
    EEL2: void* extension_api("JS_Window_GetParent", void* windowHWND)
    Lua: identifier hwnd = reaper.JS_Window_GetParent(identifier windowHWND)
    Python: identifier hwnd = JS_Window_GetParent(void windowHWND)

    Retrieves a HWND to the specified window's parent or owner.

    Returns NULL if the window is unowned or if the function otherwise fails.

    Returnvalues:
    identifier hwnd

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_GetRect

    C: bool JS_Window_GetRect(void* windowHWND, int* leftOut, int* topOut, int* rightOut, int* bottomOut)
    EEL2: bool extension_api("JS_Window_GetRect", void* windowHWND, int &left, int &top, int &right, int &bottom)
    Lua: boolean retval, integer left, integer top, integer right, integer bottom = reaper.JS_Window_GetRect(identifier windowHWND)
    Python: (Boolean retval, void windowHWND, Int leftOut, Int topOut, Int rightOut, Int bottomOut) = JS_Window_GetRect(windowHWND, leftOut, topOut, rightOut, bottomOut)

    Retrieves the coordinates of the bounding rectangle of the specified window. The dimensions are given in screen coordinates relative to the upper-left corner of the screen.

    NOTE: The pixel at (right, bottom) lies immediately outside the rectangle.

    Returnvalues:
    boolean retval
    integer left
    integer top
    integer right
    integer bottom

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_GetRelated

    C: void* JS_Window_GetRelated(void* windowHWND, const char* relation)
    EEL2: void* extension_api("JS_Window_GetRelated", void* windowHWND, "relation")
    Lua: identifier hwnd = reaper.JS_Window_GetRelated(identifier windowHWND, string relation)
    Python: identifier hwnd = JS_Window_GetRelated(void windowHWND, String relation)

    Retrieves a handle to a window that has the specified relationship (Z-Order or owner) to the specified window.

    relation: "LAST", "NEXT", "PREV", "OWNER" or "CHILD".

    (Refer to documentation for Win32 C++ function GetWindow.)

    Returnvalues:
    identifier hwnd

    Parameters:
    identifier windowHWND
    string relation


    ^ Reaper version 5.974 JS version 0.951JS_Window_GetScrollInfo

    C: bool JS_Window_GetScrollInfo(void* windowHWND, const char* scrollbar, int* positionOut, int* pageSizeOut, int* minOut, int* maxOut, int* trackPosOut)
    EEL2: bool extension_api("JS_Window_GetScrollInfo", void* windowHWND, "scrollbar", int &position, int &pageSize, int &min, int &max, int &trackPos)
    Lua: boolean retval, integer position, integer pageSize, integer min, integer max, integer trackPos = reaper.JS_Window_GetScrollInfo(identifier windowHWND, string scrollbar)
    Python: (Boolean retval, void windowHWND, String scrollbar, Int positionOut, Int pageSizeOut, Int minOut, Int maxOut, Int trackPosOut) = JS_Window_GetScrollInfo(windowHWND, scrollbar, positionOut, pageSizeOut, minOut, maxOut, trackPosOut)

    Retrieves the scroll information of a window.

    Parameters:
    * scrollbar: "v" (or "SB_VERT", or "VERT") for vertical scroll, "h" (or "SB_HORZ" or "HORZ") for horizontal.

    Returns:
    * Leftmost or topmost visible pixel position, as well as the visible page size, the range minimum and maximum, and scroll box tracking position.


    Returnvalues:
    boolean retval
    integer position
    integer pageSize
    integer min
    integer max
    integer trackPos

    Parameters:
    identifier windowHWND
    string scrollbar


    ^ Reaper version 5.974 JS version 0.992JS_Window_GetTitle

    C: void JS_Window_GetTitle(void* windowHWND, char* titleOut, int titleOut_sz)
    EEL2: extension_api("JS_Window_GetTitle", void* windowHWND, #title)
    Lua: string title = reaper.JS_Window_GetTitle(identifier windowHWND)
    Python: (void windowHWND, String titleOut, Int titleOut_sz) = JS_Window_GetTitle(windowHWND, titleOut, titleOut_sz)

    Returns the title (if any) of the specified window.


    Returnvalues:
    string title
    the title of the window

    Parameters:
    identifier windowHWND
    the hwnd of the window, whose title you want to retrieve


    ^ Reaper version 5.974 JS version 0.980JS_Window_GetViewportFromRect

    C: void JS_Window_GetViewportFromRect(int x1, int y1, int x2, int y2, bool wantWork, int* leftOut, int* topOut, int* rightOut, int* bottomOut)
    EEL2: extension_api("JS_Window_GetViewportFromRect", int x1, int y1, int x2, int y2, bool wantWork, int &left, int &top, int &right, int &bottom)
    Lua: integer left, integer top, integer right, integer bottom = reaper.JS_Window_GetViewportFromRect(integer x1, integer y1, integer x2, integer y2, boolean wantWork)
    Python: (Int x1, Int y1, Int x2, Int y2, Boolean wantWork, Int leftOut, Int topOut, Int rightOut, Int bottomOut) = JS_Window_GetViewportFromRect(x1, y1, x2, y2, wantWork, leftOut, topOut, rightOut, bottomOut)

    Retrieves the dimensions of the display monitor that has the largest area of intersection with the specified rectangle.

    If the monitor is not the primary display, some of the rectangle's coordinates may be negative.

    wantWork: Returns the work area of the display, which excludes the system taskbar or application desktop toolbars.

    Returnvalues:
    integer left
    integer top
    integer right
    integer bottom

    Parameters:
    integer x1
    integer y1
    integer x2
    integer y2
    boolean wantWork


    ^ Reaper version 5.974 JS version 0.951JS_Window_HandleFromAddress

    C: void* JS_Window_HandleFromAddress(double address)
    EEL2: void* extension_api("JS_Window_HandleFromAddress", address)
    Lua: identifier hwnd = reaper.JS_Window_HandleFromAddress(number address)
    Python: identifier hwnd = JS_Window_HandleFromAddress(Float address)

    Converts an address to a handle (such as a HWND) that can be utilized by REAPER and other API functions.


    Returnvalues:
    identifier hwnd

    Parameters:
    number address


    ^ Reaper version 5.974 JS version 0.980JS_Window_InvalidateRect

    C: bool JS_Window_InvalidateRect(void* windowHWND, int left, int top, int right, int bottom, bool eraseBackground)
    EEL2: bool extension_api("JS_Window_InvalidateRect", void* windowHWND, int left, int top, int right, int bottom, bool eraseBackground)
    Lua: boolean retval = reaper.JS_Window_InvalidateRect(identifier windowHWND, integer left, integer top, integer right, integer bottom, boolean eraseBackground)
    Python: Boolean retval = JS_Window_InvalidateRect(void windowHWND, Int left, Int top, Int right, Int bottom, Boolean eraseBackground)

    Similar to the Win32 function InvalidateRect.


    Returnvalues:
    boolean retval

    Parameters:
    identifier windowHWND
    integer left
    integer top
    integer right
    integer bottom
    boolean eraseBackground


    ^ Reaper version 5.974 JS version 0.951JS_Window_IsChild

    C: bool JS_Window_IsChild(void* parentHWND, void* childHWND)
    EEL2: bool extension_api("JS_Window_IsChild", void* parentHWND, void* childHWND)
    Lua: boolean retval = reaper.JS_Window_IsChild(identifier parentHWND, identifier childHWND)
    Python: Boolean retval = JS_Window_IsChild(void parentHWND, void childHWND)

    Determines whether a window is a child window or descendant window of a specified parent window.


    Returnvalues:
    boolean

    Parameters:
    identifier parentHWND
    identifier childHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_IsVisible

    C: bool JS_Window_IsVisible(void* windowHWND)
    EEL2: bool extension_api("JS_Window_IsVisible", void* windowHWND)
    Lua: boolean retval = reaper.JS_Window_IsVisible(identifier windowHWND)
    Python: Boolean retval = JS_Window_IsVisible(void windowHWND)

    Determines the visibility state of the window.


    Returnvalues:
    boolean

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.999JS_Window_IsWindow

    C: bool JS_Window_IsWindow(void* windowHWND)
    EEL2: bool extension_api("JS_Window_IsWindow", void* windowHWND)
    Lua: boolean retval = reaper.JS_Window_IsWindow(identifier windowHWND)
    Python: Boolean retval = JS_Window_IsWindow(void windowHWND)

    Determines whether the specified window handle identifies an existing window.

    On macOS and Linux, only windows that were created by WDL/swell will be identified (and only such windows should be acted on by scripts).

    NOTE: Since REAPER v5.974, windows can be checked using the native function ValidatePtr(windowHWND, "HWND").


    Returnvalues:
    boolean

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.963JS_Window_ListAllChild

    C: int JS_Window_ListAllChild(void* parentHWND, char* listOutNeedBig, int listOutNeedBig_sz)
    EEL2: int extension_api("JS_Window_ListAllChild", void* parentHWND, #list)
    Lua: integer retval, string list = reaper.JS_Window_ListAllChild(identifier parentHWND)
    Python: (Int retval, void parentHWND, String listOutNeedBig, Int listOutNeedBig_sz) = JS_Window_ListAllChild(parentHWND, listOutNeedBig, listOutNeedBig_sz)

    Finds all child windows of the specified parent.

    Returns: * retval: The number of windows found; negative if an error occurred. * list: A comma-separated string of hexadecimal values. Each value is an address that can be converted to a HWND by the function JS_Window_HandleFromAddress.


    Returnvalues:
    integer retval
    string list

    Parameters:
    identifier parentHWND


    ^ Reaper version 5.974 JS version 0.963JS_Window_ListAllTop

    C: int JS_Window_ListAllTop(char* listOutNeedBig, int listOutNeedBig_sz)
    EEL2: int extension_api("JS_Window_ListAllTop", #list)
    Lua: integer retval, string list = reaper.JS_Window_ListAllTop()
    Python: (Int retval, String listOutNeedBig, Int listOutNeedBig_sz) = JS_Window_ListAllTop(listOutNeedBig, listOutNeedBig_sz)

    Finds all top-level windows.

    Returns: * retval: The number of windows found; negative if an error occurred. * list: A comma-separated string of hexadecimal values. Each value is an address that can be converted to a HWND by the function JS_Window_HandleFromAddress.


    Returnvalues:
    integer retval
    string list


    ^ Reaper version 5.974 JS version 0.963JS_Window_ListFind

    C: int JS_Window_ListFind(const char* title, bool exact, char* listOutNeedBig, int listOutNeedBig_sz)
    EEL2: int extension_api("JS_Window_ListFind", "title", bool exact, #list)
    Lua: integer retval, string list = reaper.JS_Window_ListFind(string title, boolean exact)
    Python: (Int retval, String title, Boolean exact, String listOutNeedBig, Int listOutNeedBig_sz) = JS_Window_ListFind(title, exact, listOutNeedBig, listOutNeedBig_sz)

    Finds all windows (whether top-level or child) whose titles match the specified string.

    Returns: * retval: The number of windows found; negative if an error occurred. * list: A comma-separated string of hexadecimal values. Each value is an address that can be converted to a HWND by the function JS_Window_HandleFromAddress.

    Parameters: * exact: Match entire title exactly, or match substring of title.


    Returnvalues:
    integer retval
    string list

    Parameters:
    string title
    boolean exact


    ^ Reaper version 5.974 JS version 0.963JS_Window_MonitorFromRect

    C: void JS_Window_MonitorFromRect(int x1, int y1, int x2, int y2, bool wantWork, int* leftOut, int* topOut, int* rightOut, int* bottomOut)
    EEL2: extension_api("JS_Window_MonitorFromRect", int x1, int y1, int x2, int y2, bool wantWork, int &left, int &top, int &right, int &bottom)
    Lua: integer left, integer top, integer right, integer bottom = reaper.JS_Window_MonitorFromRect(integer x1, integer y1, integer x2, integer y2, boolean wantWork)
    Python: (Int x1, Int y1, Int x2, Int y2, Boolean wantWork, Int leftOut, Int topOut, Int rightOut, Int bottomOut) = JS_Window_MonitorFromRect(x1, y1, x2, y2, wantWork, leftOut, topOut, rightOut, bottomOut)

    Deprecated - use GetViewportFromRect instead.


    Returnvalues:
    integer left
    integer top
    integer right
    integer bottom

    Parameters:
    integer x1
    integer y1
    integer x2
    integer y2
    boolean wantWork


    ^ Reaper version 5.974 JS version 0.993JS_Window_Move

    C: void JS_Window_Move(void* windowHWND, int left, int top)
    EEL2: extension_api("JS_Window_Move", void* windowHWND, int left, int top)
    Lua: reaper.JS_Window_Move(identifier windowHWND, integer left, integer top)
    Python: JS_Window_Move(void windowHWND, Int left, Int top)

    Changes the position of the specified window, keeping its size constant.

    NOTES: * For top-level windows, position is relative to the primary display. * On Windows and Linux, position is calculated as the coordinates of the upper left corner of the window, relative to upper left corner of the primary display, and the positive Y-axis points downward. * On macOS, position is calculated as the coordinates of the bottom left corner of the window, relative to bottom left corner of the display, and the positive Y-axis points upward. * For a child window, on all platforms, position is relative to the upper-left corner of the parent window's client area. * Equivalent to calling JS_Window_SetPosition with NOSIZE, NOZORDER, NOACTIVATE and NOOWNERZORDER flags set.


    Parameters:
    identifier windowHWND
    integer left
    integer top


    ^ Reaper version 5.974 JS version 0.963JS_Window_OnCommand

    C: bool JS_Window_OnCommand(void* windowHWND, int commandID)
    EEL2: bool extension_api("JS_Window_OnCommand", void* windowHWND, int commandID)
    Lua: boolean retval = reaper.JS_Window_OnCommand(identifier windowHWND, integer commandID)
    Python: Boolean retval = JS_Window_OnCommand(void windowHWND, Int commandID)

    Sends a "WM_COMMAND" message to the specified window, which simulates a user selecting a command in the window menu.

    This function is similar to Main_OnCommand and MIDIEditor_OnCommand, but can send commands to any window that has a menu.

    In the case of windows that are listed among the Action list's contexts (such as the Media Explorer), the commandIDs of the actions in the Actions list may be used.


    Returnvalues:
    boolean retval

    Parameters:
    identifier windowHWND
    integer commandID


    ^ Reaper version 5.974 JS version 0.951JS_Window_RemoveXPStyle

    C: bool JS_Window_RemoveXPStyle(void* windowHWND, bool remove)
    EEL2: bool extension_api("JS_Window_RemoveXPStyle", void* windowHWND, bool remove)
    Lua: boolean retval = reaper.JS_Window_RemoveXPStyle(identifier windowHWND, boolean remove)
    Python: Boolean retval = JS_Window_RemoveXPStyle(void windowHWND, Boolean remove)

    deprecated, removed from JS_0.952 and later

    Returnvalues:
    boolean

    Parameters:
    identifier windowHWND
    boolean remove


    ^ Reaper version 5.974 JS version 0.993JS_Window_Resize

    C: void JS_Window_Resize(void* windowHWND, int width, int height)
    EEL2: extension_api("JS_Window_Resize", void* windowHWND, int width, int height)
    Lua: reaper.JS_Window_Resize(identifier windowHWND, integer width, integer height)
    Python: JS_Window_Resize(void windowHWND, Int width, Int height)

    Changes the dimensions of the specified window, keeping the top left corner position constant.


    Parameters:
    identifier windowHWND
    integer width
    integer height


    ^ Reaper version 5.974 JS version 0.951JS_Window_ScreenToClient

    C: void JS_Window_ScreenToClient(void* windowHWND, int x, int y, int* xOut, int* yOut)
    EEL2: extension_api("JS_Window_ScreenToClient", void* windowHWND, int x, int y, int &x, int &y)
    Lua: integer x, integer y = reaper.JS_Window_ScreenToClient(identifier windowHWND, integer x, integer y)
    Python: (void windowHWND, Int x, Int y, Int xOut, Int yOut) = JS_Window_ScreenToClient(windowHWND, x, y, xOut, yOut)

    Converts the screen coordinates of a specified point on the screen to client-area coordinates.


    Returnvalues:
    integer x
    integer y

    Parameters:
    identifier windowHWND
    integer x
    integer y


    ^ Reaper version 5.974 JS version 0.951JS_Window_SetFocus

    C: void JS_Window_SetFocus(void* windowHWND)
    EEL2: extension_api("JS_Window_SetFocus", void* windowHWND)
    Lua: reaper.JS_Window_SetFocus(identifier windowHWND)
    Python: JS_Window_SetFocus(void windowHWND)

    Sets the keyboard focus to the specified window.


    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.951JS_Window_SetForeground

    C: void JS_Window_SetForeground(void* windowHWND)
    EEL2: extension_api("JS_Window_SetForeground", void* windowHWND)
    Lua: reaper.JS_Window_SetForeground(identifier windowHWND)
    Python: JS_Window_SetForeground(void windowHWND)

    Brings the specified window into the foreground, activates the window, and directs keyboard input to it.


    Parameters:
    identifier windowHWND


    ^ Reaper version 5.974 JS version 0.990JS_Window_SetLong

    C: void JS_Window_SetLong(void* windowHWND, const char* info, double value, double* retvalOut)
    EEL2: extension_api("JS_Window_SetLong", void* windowHWND, "info", value, &retval)
    Lua: number retval = reaper.JS_Window_SetLong(identifier windowHWND, string info, number value)
    Python: (void windowHWND, String info, Float value, Float retvalOut) = JS_Window_SetLong(windowHWND, info, value, retvalOut)

    Similar to the Win32 function SetWindowLongPtr.

    info: "USERDATA", "WNDPROC", "DLGPROC", "ID", "EXSTYLE" or "STYLE", and only on WindowOS, "INSTANCE" and "PARENT".

    Returnvalues:
    number retval

    Parameters:
    identifier windowHWND
    string info
    number value


    ^ Reaper version 5.974 JS version 0.990JS_Window_SetOpacity

    C: bool JS_Window_SetOpacity(void* windowHWND, const char* mode, double value)
    EEL2: bool extension_api("JS_Window_SetOpacity", void* windowHWND, "mode", value)
    Lua: boolean retval = reaper.JS_Window_SetOpacity(identifier windowHWND, string mode, number value)
    Python: Boolean retval = JS_Window_SetOpacity(void windowHWND, String mode, Float value)

    Sets the window opacity.

    Parameters:  
    mode: either "ALPHA" or "COLOR".  
    value: If ALPHA, the specified value may range from zero to one, and will apply to the entire window, frame included.  
    If COLOR, value specifies a 0xRRGGBB color, and all pixels of this color will be made transparent. (All mouse clicks over transparent pixels will pass through, too).  

    WARNING: COLOR mode is only available in Windows, not Linux or macOS.

    Transparency can only be applied to top-level windows. If windowHWND refers to a child window, the entire top-level window that contains windowHWND will be made transparent.  

    Returnvalues:
    boolean

    Parameters:
    identifier windowHWND
    string mode
    number value


    ^ Reaper version 5.974 JS version 1.220JS_Window_SetParent

    C: void* JS_Window_SetParent(void* childHWND, void* parentHWNDOptional)
    EEL2: void* extension_api("JS_Window_SetParent", void* childHWND, void* parentHWND)
    Lua: identifier hwnd = reaper.JS_Window_SetParent(identifier childHWND, identifier parentHWND)
    Python: identifier hwnd = JS_Window_SetParent(void childHWND, void parentHWNDOptional)

    If successful, returns a handle to the previous parent window.

    Only on WindowsOS: If parentHWND is not specified, the desktop window becomes the new parent window.

    Returnvalues:
    identifier hwnd

    Parameters:
    identifier childHWND
    identifier parentHWND


    ^ Reaper version 5.974 JS version 0.991JS_Window_SetPosition

    C: bool JS_Window_SetPosition(void* windowHWND, int left, int top, int width, int height, char* ZOrderOptional, char* flagsOptional)
    EEL2: bool extension_api("JS_Window_SetPosition", void* windowHWND, int left, int top, int width, int height, optional #ZOrder, optional #flags)
    Lua: boolean retval, optional string ZOrder, optional string flags = reaper.JS_Window_SetPosition(identifier windowHWND, integer left, integer top, integer width, integer height, optional string ZOrder, optional string flags)
    Python: (Boolean retval, void windowHWND, Int left, Int top, Int width, Int height, String ZOrderOptional, String flagsOptional) = JS_Window_SetPosition(windowHWND, left, top, width, height, ZOrderOptional, flagsOptional)

    Interface to the Win32/swell function SetWindowPos, with which window position, size, Z-order and visibility can be set, and new frame styles can be applied.

    ZOrder and flags are optional parameters. If no arguments are supplied, the window will simply be moved and resized, as if the NOACTIVATE, NOZORDER, NOOWNERZORDER flags were set.
    * ZOrder: "BOTTOM", "TOPMOST", "NOTOPMOST", "TOP" or a window HWND converted to a string, for example by the Lua function tostring.
    * flags: Any combination of the standard flags, of which "NOMOVE", "NOSIZE", "NOZORDER", "NOACTIVATE", "SHOWWINDOW", "FRAMECHANGED" and "NOCOPYBITS" should be valid cross-platform.

    Returnvalues:
    boolean retval
    optional string ZOrder
    optional string flags

    Parameters:
    identifier windowHWND
    integer left
    integer top
    integer width
    integer height
    optional string ZOrder
    optional string flags


    ^ Reaper version 5.974 JS version 0.951JS_Window_SetScrollPos

    C: bool JS_Window_SetScrollPos(void* windowHWND, const char* scrollbar, int position)
    EEL2: bool extension_api("JS_Window_SetScrollPos", void* windowHWND, "scrollbar", int position)
    Lua: boolean retval = reaper.JS_Window_SetScrollPos(identifier windowHWND, string scrollbar, integer position)
    Python: Boolean retval = JS_Window_SetScrollPos(void windowHWND, String scrollbar, Int position)

    Parameters:

    * scrollbar: "v" (or "SB_VERT", or "VERT") for vertical scroll, "h" (or "SB_HORZ" or "HORZ") for horizontal.



               NOTE: API functions can scroll REAPER's windows, but cannot zoom them.  Instead, use actions such as "View: Zoom to one loop iteration".


    Returnvalues:
    boolean retval

    Parameters:
    identifier windowHWND
    string scrollbar
    integer position


    ^ Reaper version 5.974 JS version 0.991JS_Window_SetStyle

    C: bool JS_Window_SetStyle(void* windowHWND, char* style)
    EEL2: bool extension_api("JS_Window_SetStyle", void* windowHWND, #style)
    Lua: boolean retval, string style = reaper.JS_Window_SetStyle(identifier windowHWND, string style)
    Python: (Boolean retval, void windowHWND, String style) = JS_Window_SetStyle(windowHWND, style)

    Sets and applies a window style.

    style may include any combination of standard window styles, such as "POPUP" for a frameless window, or "CAPTION,SIZEBOX,SYSMENU" for a standard framed window.

    On Linux and macOS, "MAXIMIZE" has not yet been implmented, and the remaining styles may appear slightly different from their WindowsOS counterparts.

    Returnvalues:
    boolean retval
    string style

    Parameters:
    identifier windowHWND
    string style


    ^ Reaper version 5.974 JS version 0.951JS_Window_SetTitle

    C: bool JS_Window_SetTitle(void* windowHWND, const char* title)
    EEL2: bool extension_api("JS_Window_SetTitle", void* windowHWND, "title")
    Lua: boolean retval = reaper.JS_Window_SetTitle(identifier windowHWND, string title)
    Python: Boolean retval = JS_Window_SetTitle(void windowHWND, String title)

    Changes the title of the specified window. Returns true if successful.


    Returnvalues:
    boolean retval

    Parameters:
    identifier windowHWND
    string title


    ^ Reaper version 5.974 JS version 0.991JS_Window_SetZOrder

    C: bool JS_Window_SetZOrder(void* windowHWND, const char* ZOrder, void* insertAfterHWND)
    EEL2: bool extension_api("JS_Window_SetZOrder", void* windowHWND, "ZOrder", void* insertAfterHWND)
    Lua: boolean retval = reaper.JS_Window_SetZOrder(identifier windowHWND, string ZOrder, identifier insertAfterHWND)
    Python: Boolean retval = JS_Window_SetZOrder(void windowHWND, String ZOrder, void insertAfterHWND)

    Sets the window Z order.
    * Equivalent to calling JS_Window_SetPos with flags NOMOVE | NOSIZE.
    * Not all the Z orders have been implemented in Linux yet.

    Parameters:
    * ZOrder: "BOTTOM", "TOPMOST", "NOTOPMOST", "TOP", or a window HWND converted to a string, for example by the Lua function tostring.

    * InsertAfterHWND: For compatibility with older versions, this parameter is still available, and is optional. If ZOrder is "INSERTAFTER", insertAfterHWND must be a handle to the window behind which windowHWND will be placed in the Z order, equivalent to setting ZOrder to this HWND; otherwise, insertAfterHWND is ignored and can be left out (or it can simply be set to the same value as windowHWND).

    Returnvalues:
    boolean retval

    Parameters:
    identifier windowHWND
    string ZOrder
    identifier insertAfterHWND


    ^ Reaper version 5.974 JS version 0.991JS_Window_Show

    C: void JS_Window_Show(void* windowHWND, const char* state)
    EEL2: extension_api("JS_Window_Show", void* windowHWND, "state")
    Lua: reaper.JS_Window_Show(identifier windowHWND, string state)
    Python: JS_Window_Show(void windowHWND, String state)

    Sets the specified window's show state.

    Parameters:
    * state: One of the following options: "SHOW", "SHOWNA" (or "SHOWNOACTIVATE"), "SHOWMINIMIZED", "HIDE", "NORMAL", "SHOWNORMAL", "SHOWMAXIMIZED", "SHOWDEFAULT" or "RESTORE".

    On Linux and macOS, only the first four options are fully implemented.


    Parameters:
    identifier windowHWND
    string state


    ^ Reaper version 5.974 JS version 0.980JS_Window_Update

    C: void JS_Window_Update(void* windowHWND)
    EEL2: extension_api("JS_Window_Update", void* windowHWND)
    Lua: reaper.JS_Window_Update(identifier windowHWND)
    Python: JS_Window_Update(void windowHWND)

    Similar to the Win32 function UpdateWindow.

    Parameters:
    identifier windowHWND


    ^ Reaper version 5.965 SWS version 2.10.0.1NF_UpdateSWSMarkerRegionSubWindow

    C: void NF_UpdateSWSMarkerRegionSubWindow()
    EEL2: extension_api("NF_UpdateSWSMarkerRegionSubWindow")
    Lua: reaper.NF_UpdateSWSMarkerRegionSubWindow()
    Python: NF_UpdateSWSMarkerRegionSubWindow()

    Redraw the Notes window (call if you've changed a subtitle via NF_SetSWSMarkerRegionSub which is currently displayed in the Notes window and you want to appear the new subtitle immediately.)



    ^ Reaper version 5.62 SWS version 2.9.7SN_FocusMIDIEditor

    C: void SN_FocusMIDIEditor()
    EEL2: extension_api("SN_FocusMIDIEditor")
    Lua: reaper.SN_FocusMIDIEditor()
    Python: SN_FocusMIDIEditor()

    Focuses the active/open MIDI editor.


    View: [all] [C/C++] [EEL2] [Lua] [Python Automatically generated by Ultraschall-API 4.9 - 2399 elements available