split out the logic behind step editing from MidiTimeAxisView as much as possible

git-svn-id: svn://localhost/ardour2/branches/3.0@7633 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2010-08-15 16:39:51 +00:00
parent 66ea8edc6e
commit faca3e5f5d
7 changed files with 555 additions and 439 deletions

View file

@ -54,6 +54,7 @@ class MidiStreamView;
class MidiScroomer;
class PianoRollHeader;
class StepEntry;
class StepEditor;
class MidiTimeAxisView : public RouteTimeAxisView
{
@ -87,28 +88,14 @@ class MidiTimeAxisView : public RouteTimeAxisView
return _midi_patch_settings_changed;
}
void check_step_edit ();
void step_edit_rest (Evoral::MusicalTime beats);
void step_edit_beat_sync ();
void step_edit_bar_sync ();
int step_add_bank_change (uint8_t channel, uint8_t bank);
int step_add_program_change (uint8_t channel, uint8_t program);
int step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity,
Evoral::MusicalTime beat_duration);
void step_edit_sustain (Evoral::MusicalTime beats);
bool step_edit_within_triplet () const;
void step_edit_toggle_triplet ();
bool step_edit_within_chord () const;
void step_edit_toggle_chord ();
void reset_step_edit_beat_pos ();
void resync_step_edit_to_edit_point ();
void move_step_edit_beat_pos (Evoral::MusicalTime beats);
void set_step_edit_cursor_width (Evoral::MusicalTime beats);
const MidiMultipleChannelSelector& channel_selector() { return _channel_selector; }
Gtk::CheckMenuItem* automation_child_menu_item (Evoral::Parameter);
StepEditor* step_editor() { return _step_editor; }
void check_step_edit ();
protected:
void start_step_editing ();
void stop_step_editing ();
@ -149,16 +136,6 @@ class MidiTimeAxisView : public RouteTimeAxisView
Gtk::CheckMenuItem* _midi_thru_item;
Gtk::Menu* default_channel_menu;
nframes64_t step_edit_insert_position;
Evoral::MusicalTime step_edit_beat_pos;
boost::shared_ptr<ARDOUR::MidiRegion> step_edit_region;
MidiRegionView* step_edit_region_view;
uint8_t _step_edit_triplet_countdown;
bool _step_edit_within_chord;
Evoral::MusicalTime _step_edit_chord_duration;
void region_removed (boost::weak_ptr<ARDOUR::Region>);
void playlist_changed ();
PBD::ScopedConnection step_edit_region_connection;
Gtk::Menu* build_def_channel_menu();
void set_default_channel (int);
@ -184,11 +161,7 @@ class MidiTimeAxisView : public RouteTimeAxisView
/** parameter -> menu item map for the controller menu */
ParameterMenuMap _controller_menu_map;
StepEntry* step_editor;
bool step_editor_hidden (GdkEventAny*);
void step_editor_hide ();
void resync_step_edit_position ();
void prepare_step_edit_region ();
StepEditor* _step_editor;
};
#endif /* __ardour_midi_time_axis_h__ */