*/
void alter_program_change(PCEvent& old_program, const MIDI::Name::PatchPrimaryKey& new_patch);
+ void move_program_change (PCEvent, double);
+ void delete_program_change (ArdourCanvas::CanvasProgramChange *);
+
/** Alter a given program to the new given one.
* (Called on context menu select on CanvasProgramChange)
*/
void display_model(boost::shared_ptr<ARDOUR::MidiModel> model);
- void start_diff_command(std::string name = "midi edit");
- void diff_add_change(ArdourCanvas::CanvasNoteEvent* ev, ARDOUR::MidiModel::DiffCommand::Property, uint8_t val);
- void diff_add_change(ArdourCanvas::CanvasNoteEvent* ev, ARDOUR::MidiModel::DiffCommand::Property, Evoral::MusicalTime val);
- void diff_add_note(const boost::shared_ptr<NoteType> note, bool selected, bool show_velocity=false);
- void diff_remove_note(ArdourCanvas::CanvasNoteEvent* ev);
+ void start_note_diff_command (std::string name = "midi edit");
+ void note_diff_add_change (ArdourCanvas::CanvasNoteEvent* ev, ARDOUR::MidiModel::NoteDiffCommand::Property, uint8_t val);
+ void note_diff_add_change (ArdourCanvas::CanvasNoteEvent* ev, ARDOUR::MidiModel::NoteDiffCommand::Property, Evoral::MusicalTime val);
+ void note_diff_add_note (const boost::shared_ptr<NoteType> note, bool selected, bool show_velocity = false);
+ void note_diff_remove_note (ArdourCanvas::CanvasNoteEvent* ev);
void apply_diff();
void apply_diff_as_subcommand();
*/
void begin_resizing(bool at_front);
- void update_resizing (ArdourCanvas::CanvasNote *, bool, double, bool);
- void commit_resizing (ArdourCanvas::CanvasNote *, bool, double, bool);
+ void update_resizing (ArdourCanvas::CanvasNoteEvent*, bool, double, bool);
+ void commit_resizing (ArdourCanvas::CanvasNoteEvent*, bool, double, bool);
/** Change the channel of the selection.
* @param channel - the channel number of the new channel, zero-based
void selection_as_notelist (Notes& selected, bool allow_all_if_none_selected = false);
void enable_display (bool);
+
+ void trim_front_starting ();
+ void trim_front_ending ();
protected:
/** Allows derived types to specify their visibility requirements
bool play_midi_note_off(boost::shared_ptr<NoteType> note);
void clear_events();
- void switch_source(boost::shared_ptr<ARDOUR::Source> src);
bool canvas_event(GdkEvent* ev);
bool note_canvas_event(GdkEvent* ev);
SysExes _sys_exes;
ArdourCanvas::CanvasNote** _active_notes;
ArdourCanvas::Group* _note_group;
- ARDOUR::MidiModel::DiffCommand* _diff_command;
+ ARDOUR::MidiModel::NoteDiffCommand* _note_diff_command;
ArdourCanvas::CanvasNote* _ghost_note;
double _last_ghost_x;
double _last_ghost_y;
Evoral::MusicalTime _step_edit_cursor_width;
Evoral::MusicalTime _step_edit_cursor_position;
+ /** A group used to temporarily reparent _note_group to during start trims, so
+ * that the notes don't move with the parent region view.
+ */
+ ArdourCanvas::Group* _temporary_note_group;
+
MouseState _mouse_state;
int _pressed_button;
std::vector<NoteResizeData *> _resize_data;
- /* connection used to connect to model's ContentChanged signal */
+ /** connection used to connect to model's ContentChanged signal */
PBD::ScopedConnection content_connection;
ArdourCanvas::CanvasNoteEvent* find_canvas_note (boost::shared_ptr<NoteType>);
Events::iterator _optimization_iterator;
void update_note (ArdourCanvas::CanvasNote*);
- void update_hit (ArdourCanvas::CanvasHit*);
+ double update_hit (ArdourCanvas::CanvasHit *);
void create_ghost_note (double, double);
void update_ghost_note (double, double);
void display_program_changes_on_channel (uint8_t);
+ void connect_to_diskstream ();
+ void data_recorded (boost::shared_ptr<ARDOUR::MidiBuffer>, boost::weak_ptr<ARDOUR::MidiSource>);
+
+ void remove_ghost_note ();
+ void mouse_mode_changed ();
+ double _last_event_x;
+ double _last_event_y;
+
+ PBD::ScopedConnection _mouse_mode_connection;
+
Gdk::Cursor* pre_enter_cursor;
};