13
0
Commit Graph

276 Commits

Author SHA1 Message Date
nick_m
59daffea1d rework snap
snap now fills in a struct (MusicFrame) which contins a snapped frame
along with a music divisor.
this gives useful information wrt magnetic snap which may or may not
have rounded to an exact musical position.

region position may now be set musically (using quarter notes for now).

this patch fixes several problems in the current code:

	- dragging a list of music-locked regions now maintains correct
	  musical offsets within the list.

	- splitting regions using magnetic snap works correctly (#7192)

	- cut drag should now work correctly with magnetic snap.

	- musical length of split midi regions is no longer frame based.
2017-02-04 22:57:36 +11:00
47de9314cc suffix region gain to TAVitem name 2017-01-24 13:37:20 +01:00
90202f7675 coverage frames must still be deleted when switching back to Overlay mode 2017-01-11 11:43:44 +00:00
9095d60f96 removed commented code, now that the comment is actually correct 2016-08-17 23:13:49 -04:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
nick_m
3ee7972069 AudioRegionView - don't do coverage frames unless we're in stacked mode. 2016-07-10 02:18:37 +10:00
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
8fe2a308a5 GUI updates for transient rework 2016-05-01 02:02:25 +02:00
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
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
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
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
48b904fcee is there a better way to make gcc+enumwriter happy? 2015-09-29 16:09:01 +02:00
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
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
b05912b0cb GUI part: cleanup peak-files 2015-09-15 14:44:05 +02:00
11c0adfbae pending-peaks: checker pattern. 2015-09-15 02:28:24 +02:00
7e1baa70e4 visually indicate peak-file rebuild
Not yet a checker pattern, but closing it :)
2015-09-15 00:19:02 +02:00
787fe69ff8 highlight regions with pending peak-files 2015-09-06 12:58:54 +02:00
1aa4c62abe properly disconnect peak-ready connection 2015-09-06 12:56:50 +02:00
e161bc0596 fix peak-thread, GUI-thread race condition 2015-09-06 12:39:53 +02:00
46c8369328 merge fix 2015-07-16 16:13:24 -05:00
81c7eff66b fix “Show waveform in regions” Preference. 2015-07-11 05:25:47 +02:00
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
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
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
e0747bdb79 x-fade pixel hunt 2015-04-30 02:32:42 +02:00
90110c4308 allow to drag gain-envelope points 2015-03-08 20:18:50 +01:00
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
64fa63212f move all (G)UI related configuration parameters into UIConfiguration, not RCConfiguration 2014-12-22 13:39:46 -05:00
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
1fd681604e next modifier 2014-12-15 10:21:08 -05:00
666f33b463 next modifier 2014-12-15 10:02:20 -05:00
70e517380c add 22 modifiers to dark.colors and start using the first one (for crossfade alpha) 2014-12-15 09:05:25 -05:00
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
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
c98366c7c8 fixed merge conflict 2014-12-14 09:36:01 -05:00
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
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
4260d0ca0e use new canvas colors header as necessary 2014-11-07 14:24:27 -05:00
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
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