X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstep_editor.h;h=b16cd8f863b60b4ddc279cc0cf61b788d1a5f8cc;hb=d26aac90204a87e00ea3b2cb622a7f5729bfbc4a;hp=00be7890a3412a158464c2d6d1956189c1f27213;hpb=faca3e5f5d666fc543b23f6ab7b93a14f6c8ff7f;p=ardour.git diff --git a/gtk2_ardour/step_editor.h b/gtk2_ardour/step_editor.h index 00be7890a3..b16cd8f863 100644 --- a/gtk2_ardour/step_editor.h +++ b/gtk2_ardour/step_editor.h @@ -1,5 +1,23 @@ -#ifndef __pbd__step_editor_h__ -#define __pbd__step_editor_h__ +/* + Copyright (C) 2012 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef __gtk2_ardour_step_editor_h__ +#define __gtk2_ardour_step_editor_h__ #include @@ -7,11 +25,11 @@ #include #include "pbd/signals.h" -#include "evoral/types.hpp" +#include "evoral/Beats.hpp" namespace ARDOUR { - class MidiTrack; - class MidiRegion; +class MidiTrack; +class MidiRegion; } class MidiRegionView; @@ -21,53 +39,55 @@ class StepEntry; class StepEditor : public PBD::ScopedConnectionList, public sigc::trackable { - public: - StepEditor (PublicEditor&, boost::shared_ptr, MidiTimeAxisView&); - virtual ~StepEditor (); +public: + StepEditor (PublicEditor&, boost::shared_ptr, MidiTimeAxisView&); + virtual ~StepEditor (); 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); - - std::string name() const; + void step_edit_rest (Evoral::Beats 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::Beats beat_duration); + void step_edit_sustain (Evoral::Beats 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::Beats beats); + void set_step_edit_cursor_width (Evoral::Beats beats); + + std::string name() const; void start_step_editing (); void stop_step_editing (); - private: - ARDOUR::framepos_t step_edit_insert_position; - Evoral::MusicalTime step_edit_beat_pos; +private: + ARDOUR::framepos_t step_edit_insert_position; + Evoral::Beats step_edit_beat_pos; boost::shared_ptr 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; - PBD::ScopedConnection step_edit_region_connection; - PublicEditor& _editor; - boost::shared_ptr _track; - StepEntry* step_editor; - MidiTimeAxisView& _mtv; - - void region_removed (boost::weak_ptr); - void playlist_changed (); - bool step_editor_hidden (GdkEventAny*); - void step_editor_hide (); - void resync_step_edit_position (); - void prepare_step_edit_region (); + uint8_t _step_edit_triplet_countdown; + bool _step_edit_within_chord; + Evoral::Beats _step_edit_chord_duration; + PBD::ScopedConnection step_edit_region_connection; + PublicEditor& _editor; + boost::shared_ptr _track; + StepEntry* step_editor; + MidiTimeAxisView& _mtv; + int8_t last_added_pitch; + Evoral::Beats last_added_end; + + void region_removed (boost::weak_ptr); + void playlist_changed (); + bool step_editor_hidden (GdkEventAny*); + void step_editor_hide (); + void resync_step_edit_position (); + void prepare_step_edit_region (); }; -#endif /* __pbd__step_editor_h__ */ +#endif /* __gtk2_ardour_step_editor_h__ */