Skip to content

Commit cd9f095

Browse files
committed
feat(configure): configure settings that allow more flexibility for bigger projects
Fixes #9
1 parent b5ba295 commit cd9f095

1 file changed

Lines changed: 30 additions & 16 deletions

File tree

step-recorder/src/main/kotlin/com/b3rnhard/steprecorder/StepRecorderExtension.kt

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ class StepRecorderExtension(definition: ControllerExtensionDefinition, host: Con
1313
private lateinit var documentState: DocumentState
1414
private lateinit var application: Application
1515
private lateinit var transport: Transport
16-
private lateinit var cursorTrack: CursorTrack
1716
private lateinit var clipLauncherCursorClip: Clip
1817
private lateinit var arrangerCursorClip: Clip
1918
private lateinit var midiIn: MidiIn
@@ -49,9 +48,8 @@ class StepRecorderExtension(definition: ControllerExtensionDefinition, host: Con
4948
transport = host.createTransport()
5049
preferences = host.preferences
5150

52-
cursorTrack = host.createCursorTrack("steprecorder:CursorTrack", "Cursor Track", 0, 100, true)
53-
val trackBank = host.createTrackBank(100, 0, 100, false)
54-
trackBank.setShouldShowClipLauncherFeedback(true)
51+
val trackBank = setupSelectionObserverSettings()
52+
5553
stepper = Stepper(host)
5654
clipLauncherCursorClip = host.createLauncherCursorClip(stepper.clipGridWidth, 128)
5755
clipLauncherCursorClip.exists().markInterested()
@@ -136,6 +134,18 @@ class StepRecorderExtension(definition: ControllerExtensionDefinition, host: Con
136134
}
137135
}
138136

137+
private fun setupSelectionObserverSettings(): TrackBank? {
138+
139+
val tracksSetting =
140+
host.preferences.getNumberSetting("Tracks observed", "Tracking", 0.0, 500.0, 1.0, "", 100.0)
141+
val scenesSetting =
142+
host.preferences.getNumberSetting("Scenes per track observed", "Tracking", 0.0, 500.0, 1.0, "", 100.0)
143+
if (tracksSetting.get().toInt() == 0 || scenesSetting.get().toInt() == 0) return null
144+
val trackBank = host.createTrackBank(tracksSetting.get().toInt(), 0, scenesSetting.get().toInt(), false)
145+
trackBank.setShouldShowClipLauncherFeedback(true)
146+
return trackBank
147+
}
148+
139149
private fun setupVelocity() {
140150
fixedVelocityToggle = documentState.getEnumBasedBooleanSetting("Fixed velocity", "Step Recorder", false)
141151
MidiLearnBinding(host, "Fixed Velocity Binding") {
@@ -283,23 +293,27 @@ class StepRecorderExtension(definition: ControllerExtensionDefinition, host: Con
283293

284294
private var needsResetToPlayStart = true
285295

286-
private fun setupEnable(trackBank: TrackBank) {
287-
val bankUtil = BankUtil(trackBank)
296+
private fun setupEnable(trackBank: TrackBank?) {
297+
if (trackBank != null) {
288298

289-
bankUtil.forEachBank { bank, index ->
290-
bank.addIsSelectedObserver({ slotIndex: Int, isSelected: Boolean ->
291-
if (enableSetting.get()) {
299+
val bankUtil = BankUtil(trackBank)
300+
301+
bankUtil.forEachBank { bank, index ->
302+
bank.addIsSelectedObserver({ slotIndex: Int, isSelected: Boolean ->
303+
if (enableSetting.get()) {
304+
enableSetting.set(false)
305+
needsResetToPlayStart = true
306+
host.println("Step recorder is now disabled")
307+
}
308+
})
309+
}
310+
311+
bankUtil.forEachClipLauncherSlot { slot, trackIndex, slotIndex ->
312+
slot.isSelected.addValueObserver { isSelected ->
292313
enableSetting.set(false)
293314
needsResetToPlayStart = true
294315
host.println("Step recorder is now disabled")
295316
}
296-
})
297-
}
298-
299-
bankUtil.forEachClipLauncherSlot { slot, trackIndex, slotIndex ->
300-
slot.isSelected.addValueObserver { isSelected ->
301-
enableSetting.set(false)
302-
needsResetToPlayStart = true
303317
}
304318
}
305319

0 commit comments

Comments
 (0)