Skip to content

Commit

Permalink
#840 Make action/transport learning possible again
Browse files Browse the repository at this point in the history
  • Loading branch information
helgoboss committed Apr 8, 2023
1 parent f66de12 commit b4ceb7b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 18 deletions.
5 changes: 0 additions & 5 deletions main/src/application/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1751,11 +1751,6 @@ impl Session {
if !filter.matches(&event) {
continue;
}
// TODO-high CONTINUE Make it possible to learn transport/actions.
// TODO-high CONTINUE Make it still possible to have normal control while
// learning a target (as before, at least for instance target learning, but
// different than before for global target learning). Low-prio.
// => Test global learning and Learn many!
let session = weak_session.upgrade().ok_or(SESSION_GONE)?;
let mut session = session.borrow_mut();
session.learn_target(&event.target, weak_session.clone());
Expand Down
30 changes: 17 additions & 13 deletions main/src/domain/control_surface.rs
Original file line number Diff line number Diff line change
Expand Up @@ -376,14 +376,7 @@ impl<EH: DomainEventHandler> RealearnControlSurfaceMiddleware<EH> {
{
self.rx_middleware.handle_change(e.clone());
if let Some(target) = ReaperTarget::touched_from_change_event(e) {
let touch_event = TargetTouchEvent {
target,
caused_by_realearn,
};
for sender in self.target_capture_senders.values() {
let _ = sender.try_send(touch_event.clone());
}
BackboneState::get().notify_target_touched(touch_event);
process_touched_target(target, caused_by_realearn, &self.target_capture_senders);
}
}
// Now that everything ran successfully, we can assign the old drained vector back to the
Expand Down Expand Up @@ -475,11 +468,7 @@ impl<EH: DomainEventHandler> RealearnControlSurfaceMiddleware<EH> {
p.process_additional_feedback_event(&event)
}
if let Some(target) = ReaperTarget::touched_from_additional_event(&event) {
let evt = TargetTouchEvent {
target,
caused_by_realearn,
};
BackboneState::get().notify_target_touched(evt);
process_touched_target(target, caused_by_realearn, &self.target_capture_senders);
}
}
}
Expand Down Expand Up @@ -861,3 +850,18 @@ fn reset_midi_devices(
reaper_low.midi_init(input_arg, output_arg);
}
}

fn process_touched_target(
target: ReaperTarget,
caused_by_realearn: bool,
target_capture_senders: &HashMap<Option<InstanceId>, TargetCaptureSender>,
) {
let touch_event = TargetTouchEvent {
target,
caused_by_realearn,
};
for sender in target_capture_senders.values() {
let _ = sender.try_send(touch_event.clone());
}
BackboneState::get().notify_target_touched(touch_event);
}

0 comments on commit b4ceb7b

Please sign in to comment.