Skip to content

Commit

Permalink
#572 Also log target invocations caused by hit instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
helgoboss committed Jun 9, 2022
1 parent c2b80d1 commit 0357722
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 26 deletions.
40 changes: 26 additions & 14 deletions main/src/domain/main_processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2458,6 +2458,27 @@ pub struct BasicSettings {
}

impl BasicSettings {
pub fn target_control_logger<'a>(
&'a self,
instance_state: &'a SharedInstanceState,
context_label: &'static str,
mapping_id: QualifiedMappingId,
) -> impl Fn(ModeControlResult<ControlValue>) + 'a {
move |r| {
if self.target_control_logging_enabled {
let instance_state = instance_state.borrow();
let mapping_name = if let Some(info) = instance_state.get_mapping_info(mapping_id) {
info.name.as_str()
} else {
"<unknown>"
};
log_target_control(
&instance_state.instance_id(),
format!("Mapping {}: {} during {}", mapping_name, r, context_label),
);
}
}
}
/// For real-time processor usage.
pub fn midi_control_input(&self) -> MidiControlInput {
self.control_input
Expand Down Expand Up @@ -2622,20 +2643,8 @@ impl<EH: DomainEventHandler> Basics<EH> {
context_label: &'static str,
mapping_id: QualifiedMappingId,
) -> impl Fn(ModeControlResult<ControlValue>) + '_ {
move |r| {
if self.settings.target_control_logging_enabled {
let instance_state = self.instance_state.borrow();
let mapping_name = if let Some(info) = instance_state.get_mapping_info(mapping_id) {
info.name.as_str()
} else {
"<unknown>"
};
log_target_control(
&self.instance_id,
format!("Mapping {}: {} during {}", mapping_name, r, context_label),
);
}
}
self.settings
.target_control_logger(&self.instance_state, context_label, mapping_id)
}

pub fn update_settings_internal(
Expand Down Expand Up @@ -2931,6 +2940,7 @@ impl<EH: DomainEventHandler> Basics<EH> {
control_context: self.control_context(),
domain_event_handler: &self.event_handler,
logger: &self.logger,
basic_settings: &self.settings,
processor_context: ExtendedProcessorContext::new(
&self.context,
&collections.parameters,
Expand Down Expand Up @@ -3565,6 +3575,7 @@ fn control_mapping_stage_three<EH: DomainEventHandler>(
domain_event_handler: &basics.event_handler,
logger: &basics.logger,
processor_context,
basic_settings: &basics.settings,
});
// Second pass, without group interaction this time!
for pass_2_control_result in pass_2_control_results {
Expand All @@ -3575,6 +3586,7 @@ fn control_mapping_stage_three<EH: DomainEventHandler>(
domain_event_handler: &basics.event_handler,
logger: &basics.logger,
processor_context,
basic_settings: &basics.settings,
});
}
}
Expand Down
22 changes: 12 additions & 10 deletions main/src/domain/realearn_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@ use crate::domain::ui_util::{
parse_unit_value_from_percentage, OutputReason,
};
use crate::domain::{
AdditionalEelTransformationInput, AdditionalFeedbackEvent, DomainEventHandler, Exclusivity,
ExtendedProcessorContext, FeedbackAudioHookTask, FeedbackOutput, FeedbackRealTimeTask, GroupId,
InstanceId, InstanceStateChanged, MainMapping, MappingControlResult, MappingId,
OrderedMappingMap, OscFeedbackTask, ProcessorContext, RealTimeReaperTarget, ReaperTarget,
SharedInstanceState, Tag, TagScope, TargetCharacter, TrackExclusivity, ACTION_TARGET,
ALL_TRACK_FX_ENABLE_TARGET, ANY_ON_TARGET, AUTOMATION_MODE_OVERRIDE_TARGET, CLIP_COLUMN_TARGET,
CLIP_MANAGEMENT_TARGET, CLIP_MATRIX_TARGET, CLIP_ROW_TARGET, CLIP_SEEK_TARGET,
CLIP_TRANSPORT_TARGET, CLIP_VOLUME_TARGET, DUMMY_TARGET, ENABLE_INSTANCES_TARGET,
ENABLE_MAPPINGS_TARGET, FX_ENABLE_TARGET, FX_NAVIGATE_TARGET, FX_ONLINE_TARGET, FX_OPEN_TARGET,
FX_PARAMETER_TARGET, FX_PARAMETER_TOUCH_STATE_TARGET, FX_PRESET_TARGET, GO_TO_BOOKMARK_TARGET,
AdditionalEelTransformationInput, AdditionalFeedbackEvent, BasicSettings, DomainEventHandler,
Exclusivity, ExtendedProcessorContext, FeedbackAudioHookTask, FeedbackOutput,
FeedbackRealTimeTask, GroupId, InstanceId, InstanceStateChanged, MainMapping,
MappingControlResult, MappingId, OrderedMappingMap, OscFeedbackTask, ProcessorContext,
RealTimeReaperTarget, ReaperTarget, SharedInstanceState, Tag, TagScope, TargetCharacter,
TrackExclusivity, ACTION_TARGET, ALL_TRACK_FX_ENABLE_TARGET, ANY_ON_TARGET,
AUTOMATION_MODE_OVERRIDE_TARGET, CLIP_COLUMN_TARGET, CLIP_MANAGEMENT_TARGET,
CLIP_MATRIX_TARGET, CLIP_ROW_TARGET, CLIP_SEEK_TARGET, CLIP_TRANSPORT_TARGET,
CLIP_VOLUME_TARGET, DUMMY_TARGET, ENABLE_INSTANCES_TARGET, ENABLE_MAPPINGS_TARGET,
FX_ENABLE_TARGET, FX_NAVIGATE_TARGET, FX_ONLINE_TARGET, FX_OPEN_TARGET, FX_PARAMETER_TARGET,
FX_PARAMETER_TOUCH_STATE_TARGET, FX_PRESET_TARGET, GO_TO_BOOKMARK_TARGET,
LOAD_FX_SNAPSHOT_TARGET, LOAD_MAPPING_SNAPSHOT_TARGET, MIDI_SEND_TARGET,
NAVIGATE_WITHIN_GROUP_TARGET, OSC_SEND_TARGET, PLAYRATE_TARGET, ROUTE_AUTOMATION_MODE_TARGET,
ROUTE_MONO_TARGET, ROUTE_MUTE_TARGET, ROUTE_PAN_TARGET, ROUTE_PHASE_TARGET,
Expand Down Expand Up @@ -464,6 +465,7 @@ pub struct HitInstructionContext<'a> {
pub domain_event_handler: &'a dyn DomainEventHandler,
pub logger: &'a slog::Logger,
pub processor_context: ExtendedProcessorContext<'a>,
pub basic_settings: &'a BasicSettings,
}

/// Type of a target
Expand Down
6 changes: 5 additions & 1 deletion main/src/domain/targets/load_mapping_snapshot_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,11 @@ impl RealearnTarget for LoadMappingSnapshotTarget {
context.logger,
context.processor_context,
inital_value,
|r| (),
context.basic_settings.target_control_logger(
context.processor_context.control_context.instance_state,
"mapping snapshot loading",
m.qualified_id(),
),
);
if res.successful {
m.update_last_non_performance_target_value(inital_value);
Expand Down
6 changes: 5 additions & 1 deletion main/src/domain/targets/navigate_within_group_target.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,11 @@ impl RealearnTarget for NavigateWithinGroupTarget {
context.logger,
context.processor_context,
AbsoluteValue::Continuous(v),
|r| (),
context.basic_settings.target_control_logger(
context.processor_context.control_context.instance_state,
"group navigation",
m.qualified_id(),
),
);
control_results.push(res);
}
Expand Down

0 comments on commit 0357722

Please sign in to comment.