ardour.git
7 years agoCommence transport tool bar re-layout
Robin Gareus [Sun, 11 Dec 2016 16:24:30 +0000 (17:24 +0100)]
Commence transport tool bar re-layout

7 years agoRework shuttle control display
Robin Gareus [Sun, 11 Dec 2016 00:33:23 +0000 (01:33 +0100)]
Rework shuttle control display

7 years agoAdd API to query editor's playhead cursor position
Robin Gareus [Fri, 16 Dec 2016 14:02:29 +0000 (15:02 +0100)]
Add API to query editor's playhead cursor position

7 years agoinitial attempt at importing SMF tempo maps during MIDI import.
Paul Davis [Fri, 16 Dec 2016 16:49:52 +0000 (16:49 +0000)]
initial attempt at importing SMF tempo maps during MIDI import.

Still with debug output

7 years agoadd copy constructor, operator= and a clean ::dump() method for TempoMap
Paul Davis [Fri, 16 Dec 2016 16:49:27 +0000 (16:49 +0000)]
add copy constructor, operator= and a clean ::dump() method for TempoMap

7 years agoadd arguments (unusued) to control whether or not SMF tempo map is used during import
Paul Davis [Fri, 16 Dec 2016 14:57:14 +0000 (14:57 +0000)]
add arguments (unusued) to control whether or not SMF tempo map is used during import

7 years agoadd arguments (unusued) to control whether or not SMF tempo map is used during import
Paul Davis [Fri, 16 Dec 2016 14:57:10 +0000 (14:57 +0000)]
add arguments (unusued) to control whether or not SMF tempo map is used during import

7 years agotweak presentation of SMF tempo option
Paul Davis [Fri, 16 Dec 2016 14:14:08 +0000 (14:14 +0000)]
tweak presentation of SMF tempo option

7 years agoshow tempo information for MIDI files in preview pane; start to offer choice about...
Paul Davis [Fri, 16 Dec 2016 13:46:13 +0000 (13:46 +0000)]
show tempo information for MIDI files in preview pane; start to offer choice about using tempo map when importing

7 years ago"toll free bridging" between smf_tempo_t and Evoral::SMF::Tempo
Paul Davis [Fri, 16 Dec 2016 13:45:43 +0000 (13:45 +0000)]
"toll free bridging" between smf_tempo_t and Evoral::SMF::Tempo

7 years agoexpose SMF tempo information in Evoral::SMF
Paul Davis [Fri, 16 Dec 2016 10:43:52 +0000 (10:43 +0000)]
expose SMF tempo information in Evoral::SMF

7 years agoadd function to get number of tempos found in SMF tempo map
Paul Davis [Fri, 16 Dec 2016 10:43:41 +0000 (10:43 +0000)]
add function to get number of tempos found in SMF tempo map

7 years agounused but slightly tricky code to add track name/instrument to an SMF file when...
Paul Davis [Thu, 15 Dec 2016 17:23:44 +0000 (17:23 +0000)]
unused but slightly tricky code to add track name/instrument to an SMF file when saved

7 years agoadd comments about limitations for Evoral::SMF and tracks
Paul Davis [Thu, 15 Dec 2016 17:22:48 +0000 (17:22 +0000)]
add comments about limitations for Evoral::SMF and tracks

7 years agoMIDI tracer actually changes the event-loop
Robin Gareus [Fri, 16 Dec 2016 00:56:15 +0000 (01:56 +0100)]
MIDI tracer actually changes the event-loop

7 years agofix generic plugins for toggle with 2 scalepoints (enum)
Robin Gareus [Fri, 16 Dec 2016 00:55:28 +0000 (01:55 +0100)]
fix generic plugins for toggle with 2 scalepoints (enum)

Signed-off-by: Robin Gareus <robin@gareus.org>
7 years agosome further invalidation details:
Robin Gareus [Thu, 15 Dec 2016 17:16:03 +0000 (18:16 +0100)]
some further invalidation details:

Prevent double unref during when the EventLoop terminates:
deleting the ringbuffer deletes all requests, some of which may
contain stale invalidation

remove the buffer_map_lock, now that signals ref-count the IR.

7 years agostore InvalidationRecord in a Connection object and ref/unref it as appropriate
Paul Davis [Thu, 15 Dec 2016 16:36:39 +0000 (16:36 +0000)]
store InvalidationRecord in a Connection object and ref/unref it as appropriate

7 years agoadd ::use_count() method to InvalidationRecord
Paul Davis [Thu, 15 Dec 2016 16:35:37 +0000 (16:35 +0000)]
add ::use_count() method to InvalidationRecord

7 years agobe a bit less flickery when redrawing tempo/meter markers.
nick_m [Thu, 15 Dec 2016 15:56:58 +0000 (02:56 +1100)]
be a bit less flickery when redrawing tempo/meter markers.

7 years agofix unused Outside filled framed curve for constant points outside the draw area.
nick_m [Thu, 15 Dec 2016 15:54:10 +0000 (02:54 +1100)]
fix unused Outside filled framed curve for constant points outside the draw area.

7 years agorevert c3ab67dd now that this misbehaviour is understood.
nick_m [Thu, 15 Dec 2016 15:52:39 +0000 (02:52 +1100)]
revert c3ab67dd now that this misbehaviour is understood.

7 years agofix issue with disappearing tempo curve at constant tempi.
nick_m [Thu, 15 Dec 2016 15:50:07 +0000 (02:50 +1100)]
fix issue with disappearing tempo curve at constant tempi.

7 years agotempo before the initial section is always constant.
nick_m [Thu, 15 Dec 2016 15:15:56 +0000 (02:15 +1100)]
tempo before the initial section is always constant.

7 years agoamend incomplete change in previous commit.
nick_m [Thu, 15 Dec 2016 15:01:50 +0000 (02:01 +1100)]
amend incomplete change in previous commit.

7 years agomore work on patch change redisplay.
nick_m [Thu, 15 Dec 2016 14:58:58 +0000 (01:58 +1100)]
more work on patch change redisplay.

- fixes just-introduced undo crash.

7 years agofix thinko in TempoMap::framepos_plus_qn.
nick_m [Thu, 15 Dec 2016 14:04:22 +0000 (01:04 +1100)]
fix thinko in TempoMap::framepos_plus_qn.

- affects region relative time conversion when
  initial meter is non-zero.

7 years agocorrect return syntax
Paul Davis [Thu, 15 Dec 2016 11:57:31 +0000 (11:57 +0000)]
correct return syntax

7 years agostd::list::erase() needs a non-const iterator.;
Paul Davis [Thu, 15 Dec 2016 11:36:55 +0000 (11:36 +0000)]
std::list::erase() needs a non-const iterator.;

at least for some versions of gcc.

7 years agospeed up patch change redisplay when using scroomer / adjusting height.
nick_m [Thu, 15 Dec 2016 11:35:23 +0000 (22:35 +1100)]
speed up patch change redisplay when using scroomer / adjusting height.

- zoom is still a bit slow.

7 years agoand now with erase
Robin Gareus [Thu, 15 Dec 2016 09:57:40 +0000 (10:57 +0100)]
and now with erase

7 years agoC++98 compatible iterator erase
Robin Gareus [Thu, 15 Dec 2016 09:40:45 +0000 (10:40 +0100)]
C++98 compatible iterator erase

7 years agorework request invalidation
Robin Gareus [Thu, 15 Dec 2016 05:11:20 +0000 (06:11 +0100)]
rework request invalidation

This kills 2 birds with 1 stone: Removes the necessity of locks
and makes call_slot() realtime safe (req->invalidation->requests list
push_back). On object destruction, the invalidation-record (IR) itself is
invalidated.

Invalidated IRs are pushed onto a trash-pool and deleted in the event-loop
of the invalidated object (GUI thread) once all requests that reference it
have been processed.

One last detail remains: PBD::signal connect should reference the IR
and disconnect unreference it. This will guarantee that signal emission
will not reference the IR while the pool trash is dropped.

7 years agoAdd a trash pool for invalidation requests.
Robin Gareus [Wed, 14 Dec 2016 21:38:37 +0000 (22:38 +0100)]
Add a trash pool for invalidation requests.

While EventLoop::invalidate_request() does invalidate request in the
request-list. It does *not* invalidate requests in the
per-thread-request-ringbuffer(s).
The invalidation record cannot be deleted in EventLoop::invalidate_request
see 6b5891a78f.

7 years agoNO-OP: re-indent
Robin Gareus [Wed, 14 Dec 2016 21:21:11 +0000 (22:21 +0100)]
NO-OP: re-indent

7 years agoAtomically to invalidate request
Robin Gareus [Wed, 14 Dec 2016 21:19:33 +0000 (22:19 +0100)]
Atomically to invalidate request

Yet another slightly overkill approach, but it /may/ explain crashes.

7 years agoAdd some more invalidation debug messages.
Robin Gareus [Wed, 14 Dec 2016 18:43:12 +0000 (19:43 +0100)]
Add some more invalidation debug messages.

7 years agoThe threading anecdotes - Episode 7
Robin Gareus [Wed, 14 Dec 2016 17:46:01 +0000 (18:46 +0100)]
The threading anecdotes - Episode 7

When do_request() destroys the receiver object, the receiver will
free the invalidation record. So the IR needs to be removed from the list
before executing the request.

Invalid read of size 8
   at: AbstractUI<Gtkmm2ext::UIRequest>::handle_ui_requests() (abstract_ui.cc:242)
   by: BaseUI::request_handler(Glib::IOCondition) (base_ui.cc:141)
   by: sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>::operator()(Glib::IOCondition const&) const (mem_fun.h:2066)
   by: sigc::adaptor_functor<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition> >::deduce_result_type<Glib::IOCondition const&, void, void, void, void, void, void>::type sigc::adaptor_functor<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition> >::operator()<Glib::IOCondition const&>(Glib::IOCondition const&) const (adaptor_trait.h:89)
   by: sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>, bool, Glib::IOCondition>::call_it(sigc::internal::slot_rep*, Glib::IOCondition const&) (slot.h:148)
   by: sigc::slot1<bool, Glib::IOCondition>::operator()(Glib::IOCondition const&) const (slot.h:643)
   by: cross_thread_channel_call_receive_slot(_GIOChannel*, GIOCondition, void*) (crossthread.cc:49)
   by: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
   by: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
   by: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
   by: gtk_main (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.31)
   by: Gtkmm2ext::UI::run(Receiver&) (gtk_ui.cc:286)
   by main (main.cc:408)
 Addrd1b8 is 24 bytes inside a block of size 48 free'd
   at: operator delete(void*) (vg_replace_malloc.c:576)
   by: PBD::EventLoop::invalidate_request(void*) (event_loop.cc:98)
   by: sigc::internal::trackable_callback_list::~trackable_callback_list() (in /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0.0.0)
   by: sigc::trackable::notify_callbacks() (in /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0.0.0)
   by: ProcessorEntry::LuaPluginDisplay::~LuaPluginDisplay() (processor_box.cc:1757)
   by: ProcessorEntry::LuaPluginDisplay::~LuaPluginDisplay() (processor_box.cc:1760)
   by: ProcessorEntry::~ProcessorEntry() (processor_box.cc:251)

7 years agoskip dead threads (if the event remains, it'll be cleaned up below)
Robin Gareus [Wed, 14 Dec 2016 16:48:44 +0000 (17:48 +0100)]
skip dead threads (if the event remains, it'll be cleaned up below)

7 years agofix potential invalid lock
Robin Gareus [Wed, 14 Dec 2016 16:31:31 +0000 (17:31 +0100)]
fix potential invalid lock

7 years agorework locking (fa07233a, 112fba182)
Robin Gareus [Wed, 14 Dec 2016 12:42:45 +0000 (13:42 +0100)]
rework locking (fa07233a112fba182)

For now: use a single lock, which should fix all related crashes.
optimize (with less contended partial locks) if this works.

7 years agoGUI changes to allow user to specify how/if to use SMF track/instrument names during...
Paul Davis [Wed, 14 Dec 2016 12:31:16 +0000 (12:31 +0000)]
GUI changes to allow user to specify how/if to use SMF track/instrument names during import

7 years agochange ordering of options for multichannel import
Paul Davis [Wed, 14 Dec 2016 11:45:37 +0000 (11:45 +0000)]
change ordering of options for multichannel import

7 years agotemporary default value for ImportStatus.midi_track_name_source
Paul Davis [Wed, 14 Dec 2016 11:45:18 +0000 (11:45 +0000)]
temporary default value for ImportStatus.midi_track_name_source

7 years agouse SMF track or instrument names in imported MIDI track names, if requested
Paul Davis [Wed, 14 Dec 2016 11:44:40 +0000 (11:44 +0000)]
use SMF track or instrument names in imported MIDI track names, if requested

7 years agoadd new member to ImportStatus object to allow specifying how to name new MIDI tracks
Paul Davis [Wed, 14 Dec 2016 11:44:01 +0000 (11:44 +0000)]
add new member to ImportStatus object to allow specifying how to name new MIDI tracks

7 years agoadd a new enum to identify how SMF data should be used when naming imported MIDI...
Paul Davis [Wed, 14 Dec 2016 11:43:23 +0000 (11:43 +0000)]
add a new enum to identify how SMF data should be used when naming imported MIDI tracks

7 years agoadd API to Evoral::SMF to retrieve all track/instrument names for use when importing
Paul Davis [Wed, 14 Dec 2016 11:42:54 +0000 (11:42 +0000)]
add API to Evoral::SMF to retrieve all track/instrument names for use when importing

7 years agoextract track and instrument names from SMF while loading
Paul Davis [Wed, 14 Dec 2016 11:42:10 +0000 (11:42 +0000)]
extract track and instrument names from SMF while loading

7 years agoadd braces and warning for unlikely error
Paul Davis [Wed, 14 Dec 2016 11:41:09 +0000 (11:41 +0000)]
add braces and warning for unlikely error

7 years agofix incorrect test for textual meta events in libsmf
Paul Davis [Wed, 14 Dec 2016 11:40:44 +0000 (11:40 +0000)]
fix incorrect test for textual meta events in libsmf

7 years agobraces please
Paul Davis [Wed, 14 Dec 2016 11:40:27 +0000 (11:40 +0000)]
braces please

7 years agobraces, please
Paul Davis [Wed, 14 Dec 2016 11:40:07 +0000 (11:40 +0000)]
braces, please

7 years agofree track name/instrument string memory when necessary
Paul Davis [Wed, 14 Dec 2016 11:38:31 +0000 (11:38 +0000)]
free track name/instrument string memory when necessary

7 years agoadd track and instrument name members to smf_track_t
Paul Davis [Wed, 14 Dec 2016 11:37:35 +0000 (11:37 +0000)]
add track and instrument name members to smf_track_t

7 years agoimproving logic/flow for SMF type 1 files part 1:
Paul Davis [Tue, 13 Dec 2016 16:48:20 +0000 (16:48 +0000)]
improving logic/flow for SMF type 1 files part 1:

check num tracks for type1 and offer multichannel option if appropriate

7 years agorelease locks before deleting record
Robin Gareus [Wed, 14 Dec 2016 01:25:13 +0000 (02:25 +0100)]
release locks before deleting record

7 years agoamend prev commit
Robin Gareus [Tue, 13 Dec 2016 23:51:40 +0000 (00:51 +0100)]
amend prev commit

7 years agomutex 'er up
Robin Gareus [Tue, 13 Dec 2016 22:46:55 +0000 (23:46 +0100)]
mutex 'er up

Some overzealous locking to track down RequestObject related crashes.

bc0fa4d689a4 wrongly locked the current event loop's
request_invalidation_lock instead of the invalidation's list lock.

Also Abstract UI is able to delete requests concurrently with with
EventLoop invalidation.
e.g. PortManager::PortRegisteredOrUnregistered  and GlobalPortMatrixWindow
so the lock needs to be exposed.

If this solves various issues, mutexes should to be consolidated
(request_buffer_map_lock + request_invalidation_lock) and be chosen
such that there is as little contention as possible.

7 years agotest diff for patch change performance when caching colours.
nick_m [Tue, 13 Dec 2016 17:05:08 +0000 (04:05 +1100)]
test diff for patch change performance when caching colours.

7 years agowhen dragging or copying multiple regions, respect position lock style.
nick_m [Tue, 13 Dec 2016 15:08:59 +0000 (02:08 +1100)]
when dragging or copying multiple regions, respect position lock style.

- music-locked regions are moved by drag beat distance
  (will conform to tempo changes over the drag distance)
  audio-locked regions are moved by frame distance.

7 years agochanges to adapt to modified version of GTK/Quartz which uses only MOD2 for Command...
Paul Davis [Tue, 13 Dec 2016 11:22:51 +0000 (06:22 -0500)]
changes to adapt to modified version of GTK/Quartz which uses only MOD2 for Command, everywhere.

The default version of GTK2/Quartz uses MOD2+META for keys and MOD2 for scroll, which is
basically insane

7 years agoFurther fixes to non-cxx11 enabled builds
Tim Mayberry [Tue, 13 Dec 2016 07:10:30 +0000 (17:10 +1000)]
Further fixes to non-cxx11 enabled builds

Hopefully all that is necessary this time

7 years agoFix for non-cxx11 enabled builds
Tim Mayberry [Tue, 13 Dec 2016 06:50:41 +0000 (16:50 +1000)]
Fix for non-cxx11 enabled builds

7 years agoAdd option to Zoom to Selection on double click
Tim Mayberry [Tue, 13 Dec 2016 02:02:57 +0000 (12:02 +1000)]
Add option to Zoom to Selection on double click

Currently implemented for Region and Range selections.

The new option is false/off by default to maintain existing behaviour. I'm not
sure it should require another option, perhaps Zoom to Selection should be the
default and accessing the region properties dialog can be via Modifier+double
click, but further changes can be made on user feedback etc.

Related: #7112

7 years agoChange Zoom to Selection action (Z key) to zoom on both axes
Tim Mayberry [Mon, 12 Dec 2016 23:20:44 +0000 (09:20 +1000)]
Change Zoom to Selection action (Z key) to zoom on both axes

Add Zoom to Selection (Horizontal) action to access previous behavior.

Remove Editor::temporal_zoom_region as it was duplicate code and broken for
both_axes

Should Resolve: #7112

7 years agoFix layered-record undo, include changes to existing region(s)
Robin Gareus [Tue, 13 Dec 2016 01:33:07 +0000 (02:33 +0100)]
Fix layered-record undo, include changes to existing region(s)

7 years agoFix possible crash when removing ports with jack1
Robin Gareus [Mon, 12 Dec 2016 21:47:16 +0000 (22:47 +0100)]
Fix possible crash when removing ports with jack1

7 years agoAdd Slavable::AssignmentChanged signal to notify when a slavable is assigned/unassign...
Paul Davis [Mon, 12 Dec 2016 18:43:47 +0000 (18:43 +0000)]
Add Slavable::AssignmentChanged signal to notify when a slavable is assigned/unassigned to/from a master

7 years agoUI tweak for the spacer at the bottom of the master bus.
Ben Loftis [Mon, 12 Dec 2016 18:16:43 +0000 (12:16 -0600)]
UI tweak for the spacer at the bottom of the master bus.

7 years agoonly update MidiRegion length_beats in partial copy ctor if there is an offset.
nick_m [Mon, 12 Dec 2016 17:36:07 +0000 (04:36 +1100)]
only update MidiRegion length_beats in partial copy ctor if there is an offset.

7 years agoonly set the exact musical position of the primary region for move/copy drag.
nick_m [Mon, 12 Dec 2016 17:33:58 +0000 (04:33 +1100)]
only set the exact musical position of the primary region for move/copy drag.

7 years agoonly recalculate MidiRegion start_beats if there is an offset in the 'part-of' ctor.
nick_m [Mon, 12 Dec 2016 15:15:34 +0000 (02:15 +1100)]
only recalculate MidiRegion start_beats if there is an offset in the 'part-of' ctor.

- when drag-copying MIDI regions, a partial region ctor is used
  which can lead to _start_beats being off by a sample.
  this in turn leads to 7168 happening, but only if magnetic snap
  is used and the regions are copied as a group.
  this should fix 7168, but the magnetic snap part is not yet addressed.

7 years agoTowards making tape-tracks work again..
Robin Gareus [Mon, 12 Dec 2016 02:20:29 +0000 (03:20 +0100)]
Towards making tape-tracks work again..

7 years agoFix a potential deadlock/crash (here tape-track peak-file)
Robin Gareus [Mon, 12 Dec 2016 02:13:16 +0000 (03:13 +0100)]
Fix a potential deadlock/crash (here tape-track peak-file)

read_peaks_with_fpp() already holds _lock, build_peaks_from_scratch()
takes the _lock again.

Depending on glib[mm] and the threading lib it may either result in a
deadlock, or with EDEADLK in undefined behavior when a
non-recursive lock is released twice.

7 years agoFix potential deadlock on session-load
Robin Gareus [Sun, 11 Dec 2016 23:09:24 +0000 (00:09 +0100)]
Fix potential deadlock on session-load

7 years agodisallow placement of audio-locked tempi within a frame of any other.
nick_m [Sun, 11 Dec 2016 15:37:26 +0000 (02:37 +1100)]
disallow placement of audio-locked tempi within a frame of any other.

7 years agosort tempo curves initially as well.
nick_m [Sun, 11 Dec 2016 15:03:19 +0000 (02:03 +1100)]
sort tempo curves initially as well.

7 years agofix loop/crash when dragging an audio-locked tempo over a music-locked one while...
nick_m [Sun, 11 Dec 2016 15:01:12 +0000 (02:01 +1100)]
fix loop/crash when dragging an audio-locked tempo over a music-locked one while snapped to grid.

7 years agono-op - rename TempoMap::set_active_tempos -> TempoMap::set_active_tempi
nick_m [Sun, 11 Dec 2016 14:59:23 +0000 (01:59 +1100)]
no-op - rename TempoMap::set_active_tempos -> TempoMap::set_active_tempi

7 years agoclean up some odd logic.
nick_m [Sun, 11 Dec 2016 14:57:41 +0000 (01:57 +1100)]
clean up some odd logic.

7 years agoamend previous commit
nick_m [Thu, 24 Nov 2016 14:39:22 +0000 (01:39 +1100)]
amend previous commit

7 years agorename MetricSection movable -> initial, but of course initial is !movable..
nick_m [Thu, 24 Nov 2016 14:38:19 +0000 (01:38 +1100)]
rename MetricSection movable -> initial, but of course initial is !movable..

7 years agoAdd support for MacVST hidden/favorites
Robin Gareus [Sun, 11 Dec 2016 14:46:53 +0000 (15:46 +0100)]
Add support for MacVST hidden/favorites

7 years agoAdd a small tool to experiment with libcanvas
Robin Gareus [Sun, 11 Dec 2016 14:45:42 +0000 (15:45 +0100)]
Add a small tool to experiment with libcanvas

7 years agothere is no need to do a full set_colors() in MidiGhostRegion ctor.
nick_m [Sun, 11 Dec 2016 12:57:50 +0000 (23:57 +1100)]
there is no need to do a full set_colors() in MidiGhostRegion ctor.

7 years agotempo curve fiddling.
nick_m [Sun, 11 Dec 2016 12:55:13 +0000 (23:55 +1100)]
tempo curve fiddling.

7 years agogo back to always interpolating framed curve points.
nick_m [Sun, 11 Dec 2016 12:54:03 +0000 (23:54 +1100)]
go back to always interpolating framed curve points.

7 years agomake TempoMap::dump slightly more readable.
nick_m [Sun, 11 Dec 2016 12:51:00 +0000 (23:51 +1100)]
make TempoMap::dump slightly more readable.

7 years agofix incorrect audio-locked tempo position when setting bbt via tempo dialog.
nick_m [Sun, 11 Dec 2016 12:49:02 +0000 (23:49 +1100)]
fix incorrect audio-locked tempo position when setting bbt via tempo dialog.

7 years agofix flickering in tempo curve when markers are reordered.
nick_m [Sun, 11 Dec 2016 12:46:49 +0000 (23:46 +1100)]
fix flickering in tempo curve when markers are reordered.

7 years agoconstify TempoCurve::tempo().
nick_m [Sun, 11 Dec 2016 12:44:25 +0000 (23:44 +1100)]
constify TempoCurve::tempo().

7 years agofix bar renumbering for audio-locked metrum.
nick_m [Sun, 11 Dec 2016 12:42:26 +0000 (23:42 +1100)]
fix bar renumbering for audio-locked metrum.

7 years agofix typo in 914224f
Robin Gareus [Sun, 11 Dec 2016 03:36:08 +0000 (04:36 +0100)]
fix typo in 914224f

7 years agoRevert "Pixel hunt cairo-packer (status-bar, selection-clock border)"
Robin Gareus [Sun, 11 Dec 2016 01:19:10 +0000 (02:19 +0100)]
Revert "Pixel hunt cairo-packer (status-bar, selection-clock border)"

This reverts commit 6015481377bc7c96d7e09b263a18b285fe2fc282.

7 years agoPixel hunt cairo-packer (status-bar, selection-clock border)
Robin Gareus [Sun, 11 Dec 2016 00:31:31 +0000 (01:31 +0100)]
Pixel hunt cairo-packer (status-bar, selection-clock border)

7 years agoCheck for reserved i/o that are not routes, fixes #7171
Robin Gareus [Sat, 10 Dec 2016 23:03:44 +0000 (00:03 +0100)]
Check for reserved i/o that are not routes, fixes #7171

7 years agoCairoPacker draws outside of its widget allocation
Robin Gareus [Sat, 10 Dec 2016 19:48:57 +0000 (20:48 +0100)]
CairoPacker draws outside of its widget allocation

This fixes fixes TimeInfoBox packing when the InfoBox position changes.

7 years agoAdd editor actions to set tempo and meter
Robin Gareus [Sat, 10 Dec 2016 15:01:20 +0000 (16:01 +0100)]
Add editor actions to set tempo and meter

7 years agoTweak transport icons
Robin Gareus [Sat, 10 Dec 2016 14:56:47 +0000 (15:56 +0100)]
Tweak transport icons