refactor midi mute buffer sizing into a separate method for Delivery

This commit is contained in:
Paul Davis 2025-06-19 13:37:30 -06:00
parent e45c2f616a
commit fc24c59eb9
2 changed files with 15 additions and 9 deletions

View file

@ -182,6 +182,8 @@ private:
bool _no_panner_reset;
std::atomic<int> _midi_mute_mask;
MidiBuffer _midi_mute_buffer;
void resize_midi_mute_buffer ();
};

View file

@ -75,11 +75,7 @@ Delivery::Delivery (Session& s, std::shared_ptr<IO> io, std::shared_ptr<Pannable
}
_display_to_user = false;
const size_t stamp_size = sizeof(samplepos_t);
const size_t etype_size = sizeof(Evoral::EventType);
const size_t mmb_size = 16 * (stamp_size + etype_size + 3);
_midi_mute_buffer.resize (mmb_size);
resize_midi_mute_buffer ();
if (_output) {
_output->changed.connect_same_thread (*this, std::bind (&Delivery::output_changed, this, _1, _2));
@ -107,10 +103,7 @@ Delivery::Delivery (Session& s, std::shared_ptr<Pannable> pannable, std::shared_
}
_display_to_user = false;
const size_t stamp_size = sizeof(samplepos_t);
const size_t etype_size = sizeof(Evoral::EventType);
const size_t mmb_size = 16 * (stamp_size + etype_size + 3);
_midi_mute_buffer.resize (mmb_size);
resize_midi_mute_buffer ();
if (_output) {
_output->changed.connect_same_thread (*this, std::bind (&Delivery::output_changed, this, _1, _2));
@ -133,6 +126,17 @@ Delivery::~Delivery()
delete _output_buffers;
}
void
Delivery::resize_midi_mute_buffer ()
{
const size_t stamp_size = sizeof (samplepos_t);
const size_t etype_size = sizeof (Evoral::EventType);
/* space for two 3-byte messages per channel */
const size_t mmb_size = 16 * (stamp_size + etype_size + 6);
_midi_mute_buffer.resize (mmb_size);
}
std::string
Delivery::display_name () const
{