X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsmf_source.cc;h=76d379e9477b34df62deecee23f863245c237157;hb=591d75f1d24f3b8acc76995434c9a377e0245337;hp=33ba6e2a00b83e69aaac9467e38d628d91f88fe6;hpb=dcae6c42b6089be2f21d5d46624ce66365d1a625;p=ardour.git diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index 33ba6e2a00..76d379e947 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -231,7 +231,6 @@ SMFSource::read_unlocked (const Lock& lock, // Output parameters for read_event (which will allocate scratch in buffer as needed) uint32_t ev_delta_t = 0; - uint32_t ev_type = 0; uint32_t ev_size = 0; uint8_t* ev_buffer = 0; @@ -277,10 +276,8 @@ SMFSource::read_unlocked (const Lock& lock, continue; } - ev_type = midi_parameter_type(ev_buffer[0]); - - DEBUG_TRACE (DEBUG::MidiSourceIO, string_compose ("SMF read_unlocked delta %1, time %2, buf[0] %3, type %4\n", - ev_delta_t, time, ev_buffer[0], ev_type)); + DEBUG_TRACE (DEBUG::MidiSourceIO, string_compose ("SMF read_unlocked delta %1, time %2, buf[0] %3\n", + ev_delta_t, time, ev_buffer[0])); assert(time >= start_ticks); @@ -295,7 +292,7 @@ SMFSource::read_unlocked (const Lock& lock, if (ev_frame_time < start + duration) { if (!filter || !filter->filter(ev_buffer, ev_size)) { - destination.write (ev_frame_time, ev_type, ev_size, ev_buffer); + destination.write (ev_frame_time, Evoral::MIDI_EVENT, ev_size, ev_buffer); if (tracker) { tracker->track(ev_buffer); } @@ -334,7 +331,7 @@ SMFSource::write_unlocked (const Lock& lock, _model->start_write(); } - Evoral::MIDIEvent ev; + Evoral::Event ev; while (true) { /* Get the event time, in frames since session start but ignoring looping. */ bool ret; @@ -377,7 +374,7 @@ SMFSource::write_unlocked (const Lock& lock, time -= position; ev.set(buf, size, time); - ev.set_event_type(midi_parameter_type(ev.buffer()[0])); + ev.set_event_type(Evoral::MIDI_EVENT); ev.set_id(Evoral::next_event_id()); if (!(ev.is_channel_event() || ev.is_smf_meta_event() || ev.is_sysex())) { @@ -502,7 +499,7 @@ XMLNode& SMFSource::get_state () { XMLNode& node = MidiSource::get_state(); - node.add_property (X_("origin"), _origin); + node.set_property (X_("origin"), _origin); return node; } @@ -604,8 +601,8 @@ SMFSource::safe_midi_file_extension (const string& file) } static bool compare_eventlist ( - const std::pair< Evoral::Event*, gint >& a, - const std::pair< Evoral::Event*, gint >& b) { + const std::pair< const Evoral::Event*, gint >& a, + const std::pair< const Evoral::Event*, gint >& b) { return ( a.first->time() < b.first->time() ); } @@ -674,7 +671,6 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload if (!have_event_id) { event_id = Evoral::next_event_id(); } - const uint32_t event_type = midi_parameter_type(buf[0]); const Evoral::Beats event_time = Evoral::Beats::ticks_at_rate(time, ppqn()); #ifndef NDEBUG std::string ss; @@ -685,13 +681,13 @@ SMFSource::load_model (const Glib::Threads::Mutex::Lock& lock, bool force_reload ss += b; } - DEBUG_TRACE (DEBUG::MidiSourceIO, string_compose ("SMF %7 load model delta %1, time %2, size %3 buf %4, type %5 id %6\n", - delta_t, time, size, ss , event_type, event_id, name())); + DEBUG_TRACE (DEBUG::MidiSourceIO, string_compose ("SMF %7 load model delta %1, time %2, size %3 buf %4, id %6\n", + delta_t, time, size, ss, event_id, name())); #endif eventlist.push_back(make_pair ( new Evoral::Event ( - event_type, event_time, + Evoral::MIDI_EVENT, event_time, size, buf, true) , event_id));