constification of EditingContext/{Public}Editor time+snap methods

This commit is contained in:
Paul Davis 2024-01-04 19:02:59 -07:00
parent 0f7cc13c07
commit f75dde7fbc
9 changed files with 63 additions and 55 deletions

View File

@ -94,7 +94,7 @@ CueEditor::redisplay_grid (bool immediate_redraw)
}
Temporal::timecnt_t
CueEditor::get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next)
CueEditor::get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next) const
{
return Temporal::timecnt_t (Temporal::AudioTime);
}

View File

@ -46,7 +46,7 @@ class CueEditor : public EditingContext
bool autoscroll_active() const;
void redisplay_grid (bool immediate_redraw);
Temporal::timecnt_t get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next);
Temporal::timecnt_t get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next) const;
void instant_save();

View File

@ -1218,7 +1218,7 @@ EditingContext::duration_to_pixels_unrounded (timecnt_t const & dur) const
* @param event Event to get current key modifier information from, or 0.
*/
void
EditingContext::snap_to_with_modifier (timepos_t& start, GdkEvent const * event, Temporal::RoundMode direction, SnapPref pref, bool ensure_snap)
EditingContext::snap_to_with_modifier (timepos_t& start, GdkEvent const * event, Temporal::RoundMode direction, SnapPref pref, bool ensure_snap) const
{
if (!_session || !event) {
return;
@ -1240,7 +1240,7 @@ EditingContext::snap_to_with_modifier (timepos_t& start, GdkEvent const * event,
}
void
EditingContext::snap_to (timepos_t& start, Temporal::RoundMode direction, SnapPref pref, bool ensure_snap)
EditingContext::snap_to (timepos_t& start, Temporal::RoundMode direction, SnapPref pref, bool ensure_snap) const
{
if (!_session || (_snap_mode == SnapOff && !ensure_snap)) {
return;
@ -1250,13 +1250,13 @@ EditingContext::snap_to (timepos_t& start, Temporal::RoundMode direction, SnapPr
}
timepos_t
EditingContext::snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref)
EditingContext::snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref) const
{
return _snap_to_bbt (presnap, direction, gpref, _grid_type);
}
timepos_t
EditingContext::_snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref, GridType grid_type)
EditingContext::_snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref, GridType grid_type) const
{
timepos_t ret(presnap);
TempoMap::SharedPtr tmap (TempoMap::use());
@ -1373,7 +1373,7 @@ EditingContext::_snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode dir
}
void
EditingContext::check_best_snap (timepos_t const & presnap, timepos_t &test, timepos_t &dist, timepos_t &best)
EditingContext::check_best_snap (timepos_t const & presnap, timepos_t &test, timepos_t &dist, timepos_t &best) const
{
timepos_t diff = timepos_t (presnap.distance (test).abs ());
if (diff < dist) {

View File

@ -106,7 +106,8 @@ public:
virtual bool autoscroll_active() const = 0;
virtual void redisplay_grid (bool immediate_redraw) = 0;
virtual Temporal::timecnt_t get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next) = 0;
virtual Temporal::timecnt_t get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next) const = 0;
Temporal::timecnt_t relative_distance (Temporal::timepos_t const & origin, Temporal::timecnt_t const & duration, Temporal::TimeDomain domain);
Temporal::timecnt_t snap_relative_time_to_relative_time (Temporal::timepos_t const & origin, Temporal::timecnt_t const & x, bool ensure_snap) const;
@ -194,11 +195,13 @@ public:
*/
samplepos_t canvas_event_sample (GdkEvent const * event, double* pcx = nullptr, double* pcy = nullptr) const;
virtual Temporal::Beats get_grid_type_as_beats (bool& success, Temporal::timepos_t const & position) = 0;
virtual Temporal::Beats get_draw_length_as_beats (bool& success, Temporal::timepos_t const & position) = 0;
virtual bool canvas_note_event (GdkEvent* event, ArdourCanvas::Item*) = 0;
virtual int32_t get_grid_beat_divisions (Editing::GridType gt) = 0;
virtual int32_t get_grid_music_divisions (Editing::GridType gt, uint32_t event_state) = 0;
virtual Temporal::Beats get_grid_type_as_beats (bool& success, Temporal::timepos_t const & position) const = 0;
virtual Temporal::Beats get_draw_length_as_beats (bool& success, Temporal::timepos_t const & position) const = 0;
virtual int32_t get_grid_beat_divisions (Editing::GridType gt) const = 0;
virtual int32_t get_grid_music_divisions (Editing::GridType gt, uint32_t event_state) const = 0;
Editing::GridType grid_type () const;
bool grid_type_is_musical (Editing::GridType) const;
@ -223,17 +226,17 @@ public:
virtual void snap_to (Temporal::timepos_t & first,
Temporal::RoundMode direction = Temporal::RoundNearest,
ARDOUR::SnapPref pref = ARDOUR::SnapToAny_Visual,
bool ensure_snap = false);
bool ensure_snap = false) const;
virtual void snap_to_with_modifier (Temporal::timepos_t & first,
GdkEvent const* ev,
Temporal::RoundMode direction = Temporal::RoundNearest,
ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual,
bool ensure_snap = false);
bool ensure_snap = false) const;
virtual Temporal::timepos_t snap_to_bbt (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref);
ARDOUR::SnapPref gpref) const;
virtual double get_y_origin () const = 0;
virtual void reset_x_origin (samplepos_t) = 0;
@ -383,18 +386,18 @@ public:
Temporal::timepos_t _snap_to_bbt (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref,
Editing::GridType grid_type);
Editing::GridType grid_type) const;
virtual Temporal::timepos_t snap_to_grid (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref) = 0;
ARDOUR::SnapPref gpref) const = 0;
virtual void snap_to_internal (Temporal::timepos_t& first,
Temporal::RoundMode direction = Temporal::RoundNearest,
ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual,
bool ensure_snap = false) = 0;
bool ensure_snap = false) const = 0;
void check_best_snap (Temporal::timepos_t const & presnap, Temporal::timepos_t &test, Temporal::timepos_t &dist, Temporal::timepos_t &best);
void check_best_snap (Temporal::timepos_t const & presnap, Temporal::timepos_t &test, Temporal::timepos_t &dist, Temporal::timepos_t &best) const;
virtual double visible_canvas_width() const = 0;
enum BBTRulerScale {

View File

@ -2552,7 +2552,7 @@ Editor::set_snapped_cursor_position (timepos_t const & pos)
timepos_t
Editor::snap_to_timecode (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref)
Editor::snap_to_timecode (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref) const
{
timepos_t start = presnap;
samplepos_t start_sample = presnap.samples();
@ -2629,7 +2629,7 @@ Editor::snap_to_timecode (timepos_t const & presnap, Temporal::RoundMode directi
}
timepos_t
Editor::snap_to_minsec (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref)
Editor::snap_to_minsec (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref) const
{
samplepos_t presnap_sample = presnap.samples ();
@ -2679,7 +2679,7 @@ Editor::snap_to_minsec (timepos_t const & presnap, Temporal::RoundMode direction
}
timepos_t
Editor::snap_to_cd_frames (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref)
Editor::snap_to_cd_frames (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref) const
{
if ((gpref != SnapToGrid_Unscaled) && (minsec_ruler_scale != minsec_show_msecs)) {
return snap_to_minsec (presnap, direction, gpref);
@ -2702,7 +2702,7 @@ Editor::snap_to_cd_frames (timepos_t const & presnap, Temporal::RoundMode direct
}
timepos_t
Editor::snap_to_grid (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref)
Editor::snap_to_grid (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref) const
{
timepos_t ret(presnap);
@ -2728,7 +2728,7 @@ Editor::snap_to_grid (timepos_t const & presnap, Temporal::RoundMode direction,
}
timepos_t
Editor::snap_to_marker (timepos_t const & presnap, Temporal::RoundMode direction)
Editor::snap_to_marker (timepos_t const & presnap, Temporal::RoundMode direction) const
{
timepos_t before;
timepos_t after;
@ -3729,7 +3729,7 @@ Editor::get_paste_offset (Temporal::timepos_t const & pos, unsigned paste_count,
}
int32_t
Editor::get_grid_beat_divisions (GridType gt)
Editor::get_grid_beat_divisions (GridType gt) const
{
switch (gt) {
case GridTypeBeatDiv32: return 32;
@ -3766,13 +3766,13 @@ Editor::get_grid_beat_divisions (GridType gt)
* @return Music grid beat divisions
*/
int32_t
Editor::get_grid_music_divisions (Editing::GridType gt, uint32_t event_state)
Editor::get_grid_music_divisions (Editing::GridType gt, uint32_t event_state) const
{
return get_grid_beat_divisions (gt);
}
Temporal::Beats
Editor::get_grid_type_as_beats (bool& success, timepos_t const & position)
Editor::get_grid_type_as_beats (bool& success, timepos_t const & position) const
{
success = true;
@ -3814,6 +3814,7 @@ Editor::get_grid_type_as_beats (bool& success, timepos_t const & position)
case GridTypeBeatDiv3: //Triplet eighth
return Temporal::Beats::from_double (tmap->meter_at (position).note_value() / 12.0);
case GridTypeBeatDiv6:
return Temporal::Beats::from_double (tmap->meter_at (position).note_value() / 24.0);
@ -3850,7 +3851,7 @@ Editor::get_grid_type_as_beats (bool& success, timepos_t const & position)
}
Temporal::Beats
Editor::get_draw_length_as_beats (bool& success, timepos_t const & position)
Editor::get_draw_length_as_beats (bool& success, timepos_t const & position) const
{
success = true;
GridType grid_to_use = draw_length() == DRAW_LEN_AUTO ? grid_type() : draw_length();
@ -3865,7 +3866,7 @@ Editor::get_draw_length_as_beats (bool& success, timepos_t const & position)
}
timecnt_t
Editor::get_nudge_distance (timepos_t const & pos, timecnt_t& next)
Editor::get_nudge_distance (timepos_t const & pos, timecnt_t& next) const
{
timecnt_t ret;

View File

@ -319,14 +319,14 @@ public:
/* nudge is initiated by transport controls owned by ARDOUR_UI */
Temporal::timecnt_t get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next);
Temporal::timecnt_t get_nudge_distance (Temporal::timepos_t const & pos, Temporal::timecnt_t& next) const;
Temporal::timecnt_t get_paste_offset (Temporal::timepos_t const & pos, unsigned paste_count, Temporal::timecnt_t const & duration);
Temporal::Beats get_grid_type_as_beats (bool& success, Temporal::timepos_t const & position);
Temporal::Beats get_draw_length_as_beats (bool& success, Temporal::timepos_t const & position);
Temporal::Beats get_grid_type_as_beats (bool& success, Temporal::timepos_t const & position) const;
Temporal::Beats get_draw_length_as_beats (bool& success, Temporal::timepos_t const & position) const;
int32_t get_grid_beat_divisions (Editing::GridType gt);
int32_t get_grid_music_divisions (Editing::GridType gt, uint32_t event_state);
int32_t get_grid_beat_divisions (Editing::GridType gt) const;
int32_t get_grid_music_divisions (Editing::GridType gt, uint32_t event_state) const;
void nudge_forward (bool next, bool force_playhead);
void nudge_backward (bool next, bool force_playhead);
@ -2204,27 +2204,27 @@ private:
Temporal::timepos_t snap_to_minsec (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref);
ARDOUR::SnapPref gpref) const;
Temporal::timepos_t snap_to_cd_frames (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref);
ARDOUR::SnapPref gpref) const;
Temporal::timepos_t snap_to_timecode (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref);
ARDOUR::SnapPref gpref) const;
Temporal::timepos_t snap_to_grid (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref);
ARDOUR::SnapPref gpref) const;
void snap_to_internal (Temporal::timepos_t & first,
Temporal::RoundMode direction = Temporal::RoundNearest,
ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual,
bool for_mark = false);
bool for_mark = false) const;
Temporal::timepos_t snap_to_marker (Temporal::timepos_t const & presnap,
Temporal::RoundMode direction = Temporal::RoundNearest);
Temporal::RoundMode direction = Temporal::RoundNearest) const;
double visible_canvas_width() const { return _visible_canvas_width; }

View File

@ -97,7 +97,7 @@ MidiCueEditor::build_canvas ()
timepos_t
MidiCueEditor::snap_to_grid (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref)
MidiCueEditor::snap_to_grid (timepos_t const & presnap, Temporal::RoundMode direction, SnapPref gpref) const
{
/* BBT time only */
return snap_to_bbt (presnap, direction, gpref);
@ -105,7 +105,7 @@ MidiCueEditor::snap_to_grid (timepos_t const & presnap, Temporal::RoundMode dire
void
MidiCueEditor::snap_to_internal (timepos_t& start, Temporal::RoundMode direction, SnapPref pref, bool ensure_snap)
MidiCueEditor::snap_to_internal (timepos_t& start, Temporal::RoundMode direction, SnapPref pref, bool ensure_snap) const
{
UIConfiguration const& uic (UIConfiguration::instance ());
const timepos_t presnap = start;

View File

@ -48,11 +48,13 @@ class MidiCueEditor : public CueEditor
void get_per_region_note_selection (std::list<std::pair<PBD::ID, std::set<std::shared_ptr<Evoral::Note<Temporal::Beats> > > > >&) const {}
Temporal::Beats get_grid_type_as_beats (bool& success, Temporal::timepos_t const & position) { return Temporal::Beats (1, 0); }
Temporal::Beats get_draw_length_as_beats (bool& success, Temporal::timepos_t const & position) { return Temporal::Beats (1, 0); }
Temporal::Beats get_grid_type_as_beats (bool& success, Temporal::timepos_t const & position) const { return Temporal::Beats (1, 0); }
Temporal::Beats get_draw_length_as_beats (bool& success, Temporal::timepos_t const & position) const { return Temporal::Beats (1, 0); }
int32_t get_grid_beat_divisions (Editing::GridType gt) { return 1; }
int32_t get_grid_music_divisions (Editing::GridType gt, uint32_t event_state) { return 1; }
bool canvas_note_event (GdkEvent* event, ArdourCanvas::Item*);
int32_t get_grid_beat_divisions (Editing::GridType gt) const { return 1; }
int32_t get_grid_music_divisions (Editing::GridType gt, uint32_t event_state) const { return 1; }
void apply_midi_note_edit_op (ARDOUR::MidiOperator& op, const RegionSelection& rs);
PBD::Command* apply_midi_note_edit_op_to_region (ARDOUR::MidiOperator& op, MidiRegionView& mrv);
@ -60,12 +62,12 @@ class MidiCueEditor : public CueEditor
protected:
Temporal::timepos_t snap_to_grid (Temporal::timepos_t const & start,
Temporal::RoundMode direction,
ARDOUR::SnapPref gpref);
ARDOUR::SnapPref gpref) const;
void snap_to_internal (Temporal::timepos_t& first,
Temporal::RoundMode direction = Temporal::RoundNearest,
ARDOUR::SnapPref gpref = ARDOUR::SnapToAny_Visual,
bool ensure_snap = false);
bool ensure_snap = false) const;
private:
Gtk::Adjustment vertical_adjustment;

View File

@ -1933,7 +1933,7 @@ MidiRegionView::add_note(const std::shared_ptr<NoteType> note, bool visible)
if (midi_view()->note_mode() == Sustained) {
Note* ev_rect = new Note (*this, _note_group, note); // XXX may leak
Note* ev_rect; // XXXX = new Note (*this, _note_group, note); // XXX may leak
update_sustained (ev_rect);
@ -1943,7 +1943,7 @@ MidiRegionView::add_note(const std::shared_ptr<NoteType> note, bool visible)
const double diamond_size = std::max(1., floor(note_height()) - 2.);
Hit* ev_diamond = new Hit (*this, _note_group, diamond_size, note); // XXX may leak
Hit* ev_diamond; // XXXX = new Hit (*this, _note_group, diamond_size, note); // XXX may leak
update_hit (ev_diamond);
@ -2045,6 +2045,8 @@ MidiRegionView::add_canvas_patch_change (MidiModel::PatchChangePtr patch)
// so we need to do something more sophisticated to keep its color
// appearance (MidiPatchChangeFill/MidiPatchChangeInactiveChannelFill)
// up to date.
#warning paul fix MRV/MV
#if 0
std::shared_ptr<PatchChange> patch_change = std::shared_ptr<PatchChange>(
new PatchChange(*this, group,
height, x, 1.0,
@ -2053,8 +2055,8 @@ MidiRegionView::add_canvas_patch_change (MidiModel::PatchChangePtr patch)
_patch_change_outline,
_patch_change_fill)
);
_patch_changes.insert (make_pair (patch, patch_change));
#endif
}
void
@ -2772,11 +2774,11 @@ MidiRegionView::copy_selection (NoteBase* primary)
for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
std::shared_ptr<NoteType> g (new NoteType (*((*i)->note())));
if (midi_view()->note_mode() == Sustained) {
Note* n = new Note (*this, _note_group, g);
Note* n; // XXXX = new Note (*this, _note_group, g);
update_sustained (n, false);
note = n;
} else {
Hit* h = new Hit (*this, _note_group, 10, g);
Hit* h; // XXXX = new Hit (*this, _note_group, 10, g);
update_hit (h, false);
note = h;
}
@ -4257,9 +4259,9 @@ MidiRegionView::create_ghost_note (double x, double y, uint32_t state)
std::shared_ptr<NoteType> g (new NoteType);
if (midi_view()->note_mode() == Sustained) {
_ghost_note = new Note (*this, _note_group, g);
// XXXX _ghost_note = new Note (*this, _note_group, g);
} else {
_ghost_note = new Hit (*this, _note_group, 10, g);
// XXXX _ghost_note = new Hit (*this, _note_group, 10, g);
}
_ghost_note->set_ignore_events (true);
_ghost_note->set_outline_color (0x000000aa);