-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDivideTimeSelection.py
51 lines (41 loc) · 1.46 KB
/
DivideTimeSelection.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from reaper_python import *
errors = []
# Get time selection
timeRange = RPR_GetSet_LoopTimeRange(False, False, 0, 0, False)
if( timeRange[2] == timeRange[3] ):
errors.append("- You must select a time range to divide")
# Check for errors
if( len(errors) > 0 ):
msg = ""
for error in errors:
msg += error + "\n"
RPR_ShowMessageBox(msg, "Errors", 0)
# If no errors...
else:
# Get user input (divisions)
denominator = None
while( denominator is None or denominator <= 0):
res = RPR_GetUserInputs("Enter denominator", 1, "", "", 20)
denominatorErrors = []
try:
denominator = int(res[4])
except ValueError:
denominatorErrors.append("- Denominator needs to be an integer")
if( denominator <= 0 ):
denominatorErrors.append("- Denominator needs to be greater than 0")
if( len(denominatorErrors) > 0 ):
msg = ""
for error in denominatorErrors:
msg += error + "\n"
RPR_ShowMessageBox(msg, "Errors", 0)
timeRangeLength = timeRange[3] - timeRange[2]
divisionLength = timeRangeLength / denominator
RPR_PreventUIRefresh(1)
RPR_Undo_BeginBlock()
markerPos = timeRange[2]
while markerPos < timeRange[3]:
markerPos += divisionLength
RPR_AddProjectMarker(0, False, markerPos, 0, "", -1)
RPR_Undo_EndBlock("Divide time selection", -1)
RPR_UpdateArrange()
RPR_PreventUIRefresh(-1)