@@ -82,20 +82,46 @@ impl PlayingNotes {
8282 }
8383}
8484
85- pub struct ScheduledEventsHelper {
85+ struct ScheduledEventsHelper {
8686 playing_notes : PlayingNotes ,
87- pub queued_messages : AbsoluteTimeMidiMessageVector ,
87+ queued_messages : AbsoluteTimeMidiMessageVector ,
8888 notes_on_to_requeue : HashMap < usize , AbsoluteTimeMidiMessage > ,
89- pub events : Vec < MidiEvent > ,
89+ events : Vec < MidiEvent > ,
9090 buffer_duration_in_samples : usize ,
9191 delay_is_active : bool ,
9292 max_notes : MaxNotesParameter ,
9393 apply_max_notes_to_delayed_notes_only : bool ,
9494 current_time_in_samples : usize ,
9595}
9696
97+ pub fn process_scheduled_events (
98+ buffer_duration_in_samples : usize ,
99+ delay_is_active : bool ,
100+ max_notes : MaxNotesParameter ,
101+ apply_max_notes_to_delayed_notes_only : bool ,
102+ current_time_in_samples : usize ,
103+ messages : & AbsoluteTimeMidiMessageVector ,
104+ ) -> ( AbsoluteTimeMidiMessageVector , Vec < MidiEvent > ) {
105+ let mut helper = ScheduledEventsHelper :: new (
106+ buffer_duration_in_samples,
107+ delay_is_active,
108+ max_notes,
109+ apply_max_notes_to_delayed_notes_only,
110+ current_time_in_samples,
111+ ) ;
112+ helper. process_scheduled_events ( messages) ;
113+
114+ let ScheduledEventsHelper {
115+ events,
116+ queued_messages,
117+ ..
118+ } = helper;
119+
120+ ( queued_messages, events)
121+ }
122+
97123impl ScheduledEventsHelper {
98- pub fn new (
124+ fn new (
99125 buffer_duration_in_samples : usize ,
100126 delay_is_active : bool ,
101127 max_notes : MaxNotesParameter ,
@@ -174,7 +200,7 @@ impl ScheduledEventsHelper {
174200 }
175201 }
176202
177- pub fn process_scheduled_events ( & mut self , messages : & AbsoluteTimeMidiMessageVector ) {
203+ fn process_scheduled_events ( & mut self , messages : & AbsoluteTimeMidiMessageVector ) {
178204 for mut message in messages. iter ( ) . copied ( ) {
179205 if message. play_time_in_samples < self . current_time_in_samples {
180206 match MidiMessageType :: from ( message) {
0 commit comments