13
0
Commit Graph

153 Commits

Author SHA1 Message Date
54ffd92fde
Fix ATAV identification by Parameter (2/2) #8201, 8203
Allow to uniquely identify Processor ATAV using the control ID.
2020-06-04 21:20:32 +02:00
0ab13e7b29
Fix ATAV identification by Parameter (1/2) #8201, 8203
See also 72af571f0c, ATAV for Processors cannot be identified by
Parameter alone. STAV uses a std::map<Evoral::Parameter, ..>
that is only valid for unique parameters.

The map cannot store Evoral::Parameter(PluginAutomation)
because it its not unique.
2020-06-04 21:20:32 +02:00
ba424352a2 change Selection object to be more clear about the status of MidiRegionViews and notes
1) Notes are only present in a Selection object if it is being used as a cut buffer. They are never stored
there as part of "normal selection" - that is delegated/left to MidiRegionViews that own the notes.

2) MidiRegionViews are stored in the Selection as "just" RegionViews, so provide a convenience
method to access them. This doesn't actually change much, since even the old MidiRegions object
was actually just a RegionSelection i.e. RegionViews.
2020-04-16 17:48:12 -06:00
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
ceac42cc03 NO-OP: whitespace
- remove trailing whitespace
- remove space after opening brackets and before closing brackets
- add space around operators
- do not use '//' for multi-line comments, do not use "//" on line-start
  to comment-out code breaking indenting (-Wmisleading-indent)
- do add a single space after comment-start /*{SPACE}... or //{SPACE}...
- reserve duplicate whitespace "  " for alignment, remove other duplicate
  whitespace
- use established "TODO" and "XXX" (highlighted keywords)
- remove equal-sign series "====" (those indicate merge conflicts)
2018-02-24 13:55:20 +01:00
0299229e41 SoloSelection: gui part. 2018-02-11 09:39:45 -06:00
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
7009ff0300 Update Selection API to include all Stripables 2017-08-06 22:17:58 +02:00
0ae9cda51d Allow to select VCAs 2017-08-06 22:17:42 +02:00
nick_m
515cdb6b32 Rework region selection XML
Ensures that selection is restored in the same object type order
it was created in, which may some day make a difference.
2017-07-22 02:15:20 +10:00
nick_m
6e5c046f90 Fix time selection undo for multiple time selections
This is in mantis somewhere but i can't find it. timbyr?
2017-07-22 02:15:20 +10:00
8fa60eaf05 Ignore Selection::set() without actual changes 2017-06-17 16:11:24 +02:00
b0f68a0f5c Prepare AutomationTimeAxisView for non-route (VCA) automation 2017-06-09 16:54:21 +02:00
6ac76734f5 cut buffer must not mess around with libardour selection
Fixes range mode selection/cut/copy that would previously clear track selection
2017-06-07 12:28:53 -04:00
589f6f67a3 maintain CoreSelection order in GUI track selection 2017-05-05 18:56:25 +01:00
dc0139d4af use CoreSelection for track selection 2017-05-05 18:56:25 +01:00
1b2bc203ac Add regions at once rather than individually when restoring Selection state
This is a workaround for performance issues with the current implementation
when adding many regions to the selection one at a time.

If the Selection implementation was to change at some point and adding regions
to the selection only takes a small constant amount of time, then this
optimization may no longer be necessary.

Related to: #7274
2017-04-24 08:41:30 +10:00
8219e3c6ee Use XMLNode::get/set_property API in Selection class
There were many possible value truncations occuring and some precision loss
with the double conversions.
2017-04-19 09:36:57 +10:00
5456fd5717 make Selection::set (TrackViewList*) more efficient and emit less PI::Change signals 2017-02-26 18:24:56 +01:00
e653da32c0 avoid doing needless duplicate work in Selection::add (TimeAxisView*) 2017-02-26 18:24:56 +01:00
89c02f4fd7 the daily dose of const'ness 2017-02-24 16:10:14 +01:00
2926555e29 fix crash when removing a TimeAxisView from the selection 2017-02-21 19:11:14 +01:00
85e3d2158e Prevent direct and indirect selection of VCAs
the ::selection_filter() does not cover select-all and various other
indirect selection operations.
2017-02-18 00:45:37 +01:00
62995bd38d stop a crash during selection 2017-02-08 16:27:36 +01:00
08bca2a07d minor logic changes to editor selection
Prevent mulitple PresentationInfo::Change signals if toggling several
tracks
2017-01-28 11:20:05 +01:00
cc82fc675b remove editor/mixer selection change signals; make editor and mixer use PresentationInfo::Change more correctly; make Selection a bit smarter when setting track selection 2017-01-27 22:17:53 +01:00
c16eb83fec Fix crash when selecting MIDI note
Replace now always invalid assertion with initialization

Related to #7110
2016-11-15 08:16:31 +10:00
nick_m
0b2ae7dad9 change note selection node name - should fix 7110 2016-11-15 03:48:20 +11:00
6794a83661 potential fix for #7110 (older sessions have no id) 2016-11-14 04:12:58 +01:00
nick_m
9698f16aee Note selection state uses note event_id_t. 2016-10-15 23:50:02 +11:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
da7d7f9502 many changes associated with rationalizing selection flow 2016-07-06 13:39:10 -04:00
8125ea5909 tweak API of Selectable 2016-06-05 20:50:57 -04:00
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
a5b06c5a41 fix gain automation copy/paste -- #6842 2016-03-28 21:45:44 +02:00
22a14a56f3 use new selection API to avoid double signal when a track or tracks are SET as the selection 2016-01-29 16:15:41 -05:00
fbe236999d modify Selection API to provide (default-valued) "with_signal" argument to all ::clear_*() methods
This allows the clear methods to be used before calling ::add(), to avoid the
emission of a signal saying "there are no <foo> selected right now".

There should be no side-effects from this commit.

Note that correct use of this new API is complex, and requires avoiding the use
of wrapper methods like clear_objects().
2016-01-29 16:15:41 -05:00
084af96bf4 Change handling of Midi note selection to eliminate signal emission/delays.
Each MidiRegionView(MRV) is connected to the Selection::ClearMidiNoteSelection
signal that is used to notify the all MRV instances to clear their note
selection.

The MRV class also has a private static SelectionCleared signal that is used to
signal other MRV instances when their selection has been cleared. When the
Selection::ClearMidiNoteSelection signal is emitted it causes each MRV to also
emit the SelectionCleared signal. So the emission takes quadratic time.

With 1500 MRV instances emission takes about 2.2 seconds on my machine, and
some operations like track selection cause it to be emitted 3 times(another
issue).

The Selection class in the Editor knows which MRV instances have note
selections, as it is notified by MidiRegionView whenever the selection count
becomes zero or becomes non-zero. Clearing the Note selection should then just
be O(N) and direct calls can be used rather than signals.

This change removes both the signals and uses the existing references between
Selection and MRV class to control note selection. There should be no
behavioural changes in Midi note selection with this change.
2016-01-14 20:41:44 +10:00
nick_m
578a60b875 Add error check to region gain control point selection undo. 2015-10-20 00:53:29 +11:00
nick_m
202a23d513 Add region gain point selection undo. 2015-10-20 00:53:28 +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
e1f168de11 rename Marker class
Classes are in the global namespace.
OSX has a flat namespace and OSX32bit/Carbon has a Marker too.
2015-07-23 17:58:40 +02:00
99f28d1966 initialize uninitialized variable
just another hint for clang/static analysis.
2015-03-17 04:11:19 +01:00
b489385bf1 fix some static-analysis warnings 2015-02-19 20:37:58 +01:00
nick_m
ade1c4923c Fix note resize double undo bug.
Newly drawn notes are selected.
Clear midi note selection on Selection::set_state().
2015-01-17 04:55:05 +11:00
764aad9efe clean up whitespace & debug output in 44203ce 2015-01-11 02:56:53 +01:00
nick_m
44203ce955 Fix AutomationTrackItem rubberband click thinking it was unhandled.
Fix several other cases where a single mouse click could cause several
(not nested) selection ops.
Fix missing selection memento for midi notes and midi commands.
Rename some variables.
Fix random style issues.
2015-01-11 04:07:31 +11:00
nick_m
884cc6f90c Add automation track control points to undo history (and selection_op history). 2015-01-02 08:01:12 -05:00
nick_m
792f9ff37b Removed unrelated change in Selection::set_state () (clear_points()). 2015-01-02 08:01:12 -05:00