Commit graph

321 commits

Author SHA1 Message Date
nick_m
3ee7972069 AudioRegionView - don't do coverage frames unless we're in stacked mode. 2016-07-10 02:18:37 +10:00
Paul Davis
6baac7d46f various safety checks for the result of dynamic_cast-ing a TimeAxisView to RouteTimeAxisView
Now that we have VCATimeAxisView, this needed to be done, but it also potentially applied with automation
2016-06-02 08:42:58 -04:00
nick_m
4f7a4cd233 Crapola - this is an experimental performance hack that must be reverted. 2016-05-27 23:38:14 +10:00
Robin Gareus
8fe2a308a5 GUI updates for transient rework 2016-05-01 02:02:25 +02:00
Paul Davis
6991a07902 remove all trace of SAE from source code.
This had become incoherent over time, and posed a development hazard and burden going forward
2016-02-22 15:31:24 -05:00
nick_m
5e7c7e52bd Use automation line's frame of reference for y position.
- removes the need for 'pixel hunting' wrt NAME_HIGHLIGHT_SIZE.
	- new control points generated by clicking on a line are placed
	  where the verbose canvas cursor says they are.
2015-10-30 21:14:16 +11:00
Tim Mayberry
b074ff0dd5 Remove GhostRegion::CatchDeletion signal to reduce session close times
Currently when a GhostRegion is deleted by its "parent" RegionView it emits the
static GhostRegion::CatchDeletion signal which is connected to the
RegionView::remove_ghost method of every RegionView instance.

With a static GhostRegion::CatchDeletion signal a particular test session
causes 31 Million calls of RegionView::remove_ghost on Session deletion and the
session takes 70 seconds to close with a debug build.

The lifetime of a ghost region is tied to both the TimeAxisView(TAV) and
RegionView(RV) in that when a RegionView is deleted all GhostRegion instances
associated with the RegionView should be deleted or when a TimeAxisView is
deleted all ghost regions that are contained in the view should be deleted.

This means that there needs to be notification between GhostRegion and both
classes. Instead of using a signal for this as we know there are only two
listeners and GhostRegion already holds a reference to the TimeAxisView, also
take a reference to the parent RegionView in the GhostRegion constructor and
use it to notify the RegionView when GhostRegion destructor is called so it can
drop any references it holds.

Using a direct function call in the GhostRegion destructor to notify the
TimeAxisView and RegionView "parents" brings the unload/close time down for the
test session from 70 seconds to 4.5 seconds.

The GhostRegion also references canvas items that are added to the TimeAxisView
canvas group or at least a canvas group that it manages. So when the
TimeAxisView is destroyed and the canvas group that is the parent of those
items is destroyed, the GhostRegion's canvas items will also be
deleted/destroyed by the parent canvas item/group. This means the GhostRegions
must be destroyed when the TimeAxisView they are contained in is destroyed or
there will be dangling references to canvas items that have already been
deleted and trying to delete them again will be bad.
2015-10-22 11:51:03 -04:00
nick_m
070c67bdcc Fix incorrect snap when adding region gain points. 2015-10-20 00:53:29 +11:00
nick_m
43b47d1169 Add missing diff to last commit. 2015-10-20 00:53:28 +11:00
nick_m
5afb645c9f Amend last commit. 2015-10-20 00:53:27 +11:00
nick_m
17294ab9ec Make control point selection more consistent.
- disallow simultaneous events via ControlList::editor_add ()
	- clicking on an automation line selects the points that define it.
	- don't 'flash' a region selection when using mousedraw mode.
	- cp click selection resembles region selection.
	- region gain points respect snap modifier (a la automation points).
2015-10-20 00:53:27 +11:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Robin Gareus
48b904fcee is there a better way to make gcc+enumwriter happy? 2015-09-29 16:09:01 +02:00
Robin Gareus
08446f79e1 set waveform height depending on Layer mode
Fixes background peakfile/waveform creation. Waves need to be
created directly with the proper attributes as set by StreamView.
2015-09-29 13:47:21 +02:00
Tim Mayberry
6b019a4953 Move UIConfiguration Singleton into UIConfiguration header
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16 16:55:17 -04:00
Robin Gareus
b05912b0cb GUI part: cleanup peak-files 2015-09-15 14:44:05 +02:00
Robin Gareus
11c0adfbae pending-peaks: checker pattern. 2015-09-15 02:28:24 +02:00
Robin Gareus
7e1baa70e4 visually indicate peak-file rebuild
Not yet a checker pattern, but closing it :)
2015-09-15 00:19:02 +02:00
Robin Gareus
787fe69ff8 highlight regions with pending peak-files 2015-09-06 12:58:54 +02:00
Robin Gareus
1aa4c62abe properly disconnect peak-ready connection 2015-09-06 12:56:50 +02:00
Robin Gareus
e161bc0596 fix peak-thread, GUI-thread race condition 2015-09-06 12:39:53 +02:00
Ben Loftis
46c8369328 merge fix 2015-07-16 16:13:24 -05:00
Robin Gareus
81c7eff66b fix “Show waveform in regions” Preference. 2015-07-11 05:25:47 +02:00
Paul Davis
9f0012aaaa various tweaks to the height/sizing of audioregion views and their waveforms 2015-06-19 08:15:25 -04:00
nick_m
aa1cdd26ca AudioRegionView now uses ControlList::editor_add(). 2015-06-19 05:02:06 +10:00
Ben Loftis
cc396baf0d Fix some visual loopholes when switching tools inside a region:
switching to Grab should show the fade handles...
...switching away from grab should hide them.
Also, change "always show gain" preference to show lines, but not control points.
2015-06-01 13:12:39 -05:00
Ben Loftis
cc7a368fb6 Rationalize some aspects of region-gain control-point visibility:
Visibility is driven by the currently selected mouse mode.
Visibility no longer depends on entering/exiting the region.
Range mode shows the lines but not the points.
Fixed option text to reflect new operation.
2015-05-26 16:41:03 -05:00
Robin Gareus
e0747bdb79 x-fade pixel hunt 2015-04-30 02:32:42 +02:00
Robin Gareus
90110c4308 allow to drag gain-envelope points 2015-03-08 20:18:50 +01:00
Paul Davis
266ac60941 skip drawing the first pixel of waves in an audio region view.
This means that they do no overwrite the frame border of the time axis item
2015-02-10 19:48:47 -05:00
Paul Davis
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -05:00
David Robillard
5fef655380 Remove internal edit mode and add "content" tool. 2014-12-18 20:21:01 -05:00
nick_m
9af9e17adc Add editor selection state to session history via a SelectionMemento, which
combines selection related editor properties with the current editor selection.

The related editor properties are:
mouse mode,
zoom setting,
left frame of the canvas,
y origin of the canvas.

Selection state now includes region views (storing the underlying region id)
and time.

This patch also fixes a region mute undo bug.
2014-12-18 11:03:10 -05:00
Paul Davis
1fd681604e next modifier 2014-12-15 10:21:08 -05:00
Paul Davis
666f33b463 next modifier 2014-12-15 10:02:20 -05:00
Paul Davis
70e517380c add 22 modifiers to dark.colors and start using the first one (for crossfade alpha) 2014-12-15 09:05:25 -05:00
Paul Davis
56ca52651e fix up requested color names everywhere.
Thank <deity> for emacs ... space-uncamelcase-word-at-point FTW
2014-12-14 16:15:38 -05:00
Paul Davis
48a7a11974 initial pass to replace all UIConfiguration::get_XXXXXX() calls with UIConfiguration::color(name).
IMPORTANT: names have not been downcased and spaced yet, so many colors are not found
2014-12-14 12:27:07 -05:00
Paul Davis
c98366c7c8 fixed merge conflict 2014-12-14 09:36:01 -05:00
David Robillard
603748d68a Unify gain and draw tools.
There might be a few special cases lingering around from attempts at magic tool
business, but this seems to work fine as far as I can tell.
2014-12-07 20:37:46 -05:00
David Robillard
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
Paul Davis
4260d0ca0e use new canvas colors header as necessary 2014-11-07 14:24:27 -05:00
Paul Davis
1e8645bb8e remove TimeAxisViewItem::RIGHT_EDGE_SHIFT; fix up x-coordinate for right edge of an audio fade out 2014-11-07 12:58:56 -05:00
Robin Gareus
7baa3275e0 one off by one off - red-selection outline
This mitigates issues introduced with 3.5-3406-g90872c2
but is not a final solution. The x-axis is still broken.
see #5589 comment0015955
2014-11-01 21:05:43 +01:00
Paul Davis
ba4d1cd1c1 remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config() 2014-10-21 22:58:58 -04:00
Robin Gareus
d80e55e828 don't clamp wave-fill alpha value when using region color 2014-09-13 01:48:11 +02:00
Robin Gareus
70358639de Revert "cont'd work on automation-track headers (amend ba53af1c5)"
This reverts commit beb5e3e777.
2014-09-04 16:14:01 +02:00
Robin Gareus
beb5e3e777 cont'd work on automation-track headers (amend ba53af1c5)
now that the separator line is at the top,
offset region-contents y0 by 1px.
2014-09-03 20:48:20 +02:00
Ben Loftis
1873bcfa9d More fixes for range-based automation editing.
-Remove redundant start_grab calls.
-Show gain curves in Range mode, so you can see the curves you are selecting
2014-08-06 14:43:40 -05:00