_regions->selection_mapover (mem_fun (*this, &Editor::hide_a_region));
}
+void
+Editor::start_step_editing ()
+{
+ step_edit_connection = Glib::signal_timeout().connect (mem_fun (*this, &Editor::check_step_edit), 20);
+}
+
+void
+Editor::stop_step_editing ()
+{
+ step_edit_connection.disconnect ();
+}
+
+bool
+Editor::check_step_edit ()
+{
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ MidiTimeAxisView* mtv = dynamic_cast<MidiTimeAxisView*> (*i);
+ if (mtv) {
+ mtv->check_step_edit ();
+ }
+ }
+
+ return true; // do it again, till we stop
+}
EditorGroupTabs* _group_tabs;
void fit_route_group (ARDOUR::RouteGroup *);
+ void start_step_editing ();
+ void stop_step_editing ();
+ bool check_step_edit ();
+ sigc::connection step_edit_connection;
+
friend class Drag;
friend class RegionDrag;
friend class RegionMoveDrag;
mtv->start_step_editing ();
}
}
+ start_step_editing ();
} else {
mouse_select_button.set_image (*(manage (new Image (::get_xpm("tool_range.xpm")))));
+ stop_step_editing ();
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
MidiTimeAxisView* mtv = dynamic_cast<MidiTimeAxisView*> (*i);
nframes64_t region_end = _region->position() + _region->length() - 1;
if (end_frame > region_end) {
- cerr << "Resize region!\n";
_region->set_length (end_frame, this);
} else {
redisplay_model ();
void
MidiTimeAxisView::start_step_editing ()
{
- step_edit_connection = Glib::signal_timeout().connect (mem_fun (*this, &MidiTimeAxisView::check_step_edit), 20);
step_edit_insert_position = _editor.get_preferred_edit_position ();
step_edit_beat_pos = 0;
step_edit_region = playlist()->top_region_at (step_edit_insert_position);
void
MidiTimeAxisView::stop_step_editing ()
{
- step_edit_connection.disconnect ();
midi_track()->set_step_editing (false);
}
-bool
+void
MidiTimeAxisView::check_step_edit ()
{
MidiRingBuffer<nframes_t>& incoming (midi_track()->step_edit_ring_buffer());
}
}
-
- return true; /* keep checking */
}
boost::shared_ptr<Region>
void start_step_editing ();
void stop_step_editing ();
+ void check_step_edit ();
+
private:
sigc::signal<void, std::string, std::string> _midi_patch_settings_changed;
Gtk::ComboBoxText _custom_device_mode_selector;
Gtk::CheckMenuItem* _step_edit_item;
- sigc::connection step_edit_connection;
nframes64_t step_edit_insert_position;
Evoral::MusicalTime step_edit_beat_pos;
boost::shared_ptr<ARDOUR::Region> step_edit_region;
MidiRegionView* step_edit_region_view;
- bool check_step_edit ();
};
#endif /* __ardour_midi_time_axis_h__ */