Replaces the list of points in TempoMap with TempoSection functions, which
compute tempo-at or tick-at time relative to tempo section start.
TempoMap consults them additively to determine things like bbt_time(),
frame_time() get_grid() etc.
This has a marked effect on scrolling speed along with the code simplification
in the places it has been attempted.
Several things are broken here.
Currently every ramp except the last one is an exponential ramp. this may
be simple to fix :).
Mouse-over midi grid doesn't match mouse click grid. should also be simple.
Many things seem to work, but their accuracy should be in question until
each area has been addressed.
Change ruler context actions from "Make Loop range" to "New Loop range"
change ruler context actions from "Make Punch range" to "New Loop range"
This to make it consistent with other ruler context actions eg. "New....."
Remove the is_xrun parameter from Editor::mouse_add_new_marker(), and just
create the marker directly in ARDOUR_UI::create_xrun_marker(), so that xrun
markers don't become automatically selected when they appear.
Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it
could theoretically be used by any derived type.
When zoomed in to the millisecond level, the framerate was being divided
by 1000 as an integer to generate a ruler tick interval, which doesn't
work so well at things like 44100 or 88200. Instead, just count this
value in milliseconds, dividing by 1000 when we are done.
This was purely a display issue - the grid was in the correct place.
timeline thumbnail display, moving (drag/drop) and zoom works.
There still some crashes e.g. resizing the height of the timeline
and with off-screen image buffering when zooming in.
Likely due to concurrency issues:
VideoImageFrame::exposeimg() and direct access of the pixbuf:
"Assertion `!_bounding_box_dirty' failed." in canvas/item.cc:191
more work is needed..