Skip to content

Commit 449ebe9

Browse files
committed
fix(midi): skip OSC for page actions and fix page placeholder
1 parent 72dd7ee commit 449ebe9

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/midi.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -323,8 +323,6 @@ impl Midi {
323323
if self.crossfade_state == crate::CrossfadeState::Pause {
324324
self.blink_state = !self.blink_state;
325325

326-
327-
328326
let _v = if self.blink_state { 127 } else { 0 };
329327
// Need to find which device(s) have this mapping?
330328
// set_crossfade_state handles the finding.
@@ -710,17 +708,21 @@ pub async fn execute_mapping(
710708
for (out_idx, output) in mapping.outputs.iter().enumerate() {
711709
match output {
712710
crate::controller::Output::Osc { addr, arg_type } => {
711+
// Skip generic OSC processing for Page actions as they are handled manually with specific timing
712+
if matches!(
713+
mapping.action,
714+
crate::controller::LogicalAction::FaderPageUp
715+
| crate::controller::LogicalAction::FaderPageDown
716+
) {
717+
continue;
718+
}
719+
713720
let client_clone = client.clone();
714721
let mut final_addr = addr.clone();
715722

716723
// Perform dynamic replacement
717724
if final_addr.contains("{page}") {
718-
let page_str = if current_page <= 1 {
719-
String::new()
720-
} else {
721-
(current_page - 1).to_string()
722-
};
723-
final_addr = final_addr.replace("{page}", &page_str);
725+
final_addr = final_addr.replace("{page}", &current_page.to_string());
724726
}
725727
if final_addr.contains("{bank_size}") {
726728
final_addr = final_addr.replace("{bank_size}", &bank_size.to_string());

0 commit comments

Comments
 (0)