Commit Graph

72 Commits

Author SHA1 Message Date
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis 39ed528e25 std-ize: convert all boost shared/weak ptr includes to <memory>
Also fix stdint.h -> cstdint and alphabetically order std includes
2023-03-24 14:19:15 -06:00
Ben Loftis 9d0d8e1785 Selection: Region Operations in a Slot need a RegionView proxy (ToDo) 2021-12-08 12:40:20 -06:00
Ben Loftis 1489fabbcd Selection: make trigger slots more exclusive wrt some other selectables 2021-12-08 12:40:20 -06:00
Paul Davis a9949f20e6 basic architecture for Trigger selection
This is all done in the GUI, using GUI objects. THe primary goal
here is to allow actions to be applied to selected triggers, so
there's no real need for a trigger aspect to libardour (core)
selection.
2021-11-10 16:37:15 -07:00
Paul Davis 2a08e4bdaa continued work on timeline types conversion. in theory, just editor_ops.cc remains 2021-08-13 12:51:29 -06:00
Paul Davis 5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
Paul Davis 7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
Paul Davis ece174ca47 region selection toggle in RippleAll mode applies across all tracks 2021-08-13 12:51:27 -06:00
Paul Davis 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
Robin Gareus 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
Ben Loftis 0299229e41 SoloSelection: gui part. 2018-02-11 09:39:45 -06:00
Paul Davis 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
Robin Gareus b976bf8986 NO-OP whitespace & foratting of header files 2017-07-01 21:19:56 +02:00
Thomas Brand 63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
Paul Davis 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
Paul Davis dc0139d4af use CoreSelection for track selection 2017-05-05 18:56:25 +01:00
Robin Gareus 89c02f4fd7 the daily dose of const'ness 2017-02-24 16:10:14 +01:00
Paul Davis 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
nick_m 9698f16aee Note selection state uses note event_id_t. 2016-10-15 23:50:02 +11:00
Robin Gareus d21f202905 add some more Editor Selection lua bindings 2016-04-11 14:06:26 +02:00
Paul Davis 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
Tim Mayberry 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
Robin Gareus 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
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
David Robillard a12a065457 Fix copy paste of MIDI and track automation. 2014-12-18 20:23:34 -05:00
Ben Loftis 7ab8a11fb5 Enforce internal/external selection exclusivity. 2014-12-18 20:22:48 -05:00
Paul Davis 40e9dae606 various fixes for "advanced" operations on range selections. ctrl-drags now add a new range selection, allowing discontiguous selections as in ardour2, shift-click extends an existing range selection to the clicked position, alt-drag on a range selection moves it, and to do a so-called "separation drag" now use ctrl-alt-drag (or ctrl-alt-click)
git-svn-id: svn://localhost/ardour2/branches/3.0@13660 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-13 19:39:36 +00:00
Ben Loftis b43875dd27 explicitly enforce selection rules to avoid some corner cases and avoid user confusion
git-svn-id: svn://localhost/ardour2/branches/3.0@13549 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-26 22:37:34 +00:00
Carl Hetherington fc77252d51 Slightly unpleasant hack to stop control points being
unselected when you ctrl-drag a selected point in order to
do a push drag.


git-svn-id: svn://localhost/ardour2/branches/3.0@12502 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-31 14:39:48 +00:00
Carl Hetherington a4434809e1 Use a list of ControlPoints to hold the automation selection,
rather than a time range.  This makes more sense now that we
display every point on an automation line, rather than just
a subset.  Makes the code a fair bit simpler, and should fix
some unexpected behaviours, especially when cutting automation
points.


git-svn-id: svn://localhost/ardour2/branches/3.0@12054 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22 14:03:07 +00:00
Paul Davis e2757229a7 provide link-editor-and-mixer-selection option. gui implementation is slightly hacky because of the implicit endless loop that the link creates
git-svn-id: svn://localhost/ardour2/branches/3.0@10624 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-15 19:33:09 +00:00
Carl Hetherington e796a46e5a Small comment.
git-svn-id: svn://localhost/ardour2/branches/3.0@9809 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-08 15:28:19 +00:00
Carl Hetherington 80abf7693e Remove extend-range-to-{start,end}-of-region and replace with move-range-{start,end}-to-{previous,next}-region boundary after discussions with Chris. Seems to make more sense, and works without the need for a region selection, which is fiddly to adjust when one is in range mode.
git-svn-id: svn://localhost/ardour2/branches/3.0@9360 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-17 13:55:41 +00:00
Carl Hetherington fde56cc730 Unselect regions on tracks when the tracks are hidden. Fixes #3653.
git-svn-id: svn://localhost/ardour2/branches/3.0@8426 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-04 01:03:36 +00:00
Carl Hetherington 73192bc1a7 Remove all use of nframes_t.
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03 22:26:29 +00:00
Carl Hetherington 579fcb70e2 First go at saving window visibility and position state across saves.
git-svn-id: svn://localhost/ardour2/branches/3.0@7644 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-18 02:20:15 +00:00
Carl Hetherington efe60474d6 Hopefully fix up automation control point selection (finally).
git-svn-id: svn://localhost/ardour2/branches/3.0@7592 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-11 01:23:03 +00:00
Carl Hetherington 5f8f481172 Fixes to permit drags of multiply-selected automation control points.
git-svn-id: svn://localhost/ardour2/branches/3.0@6450 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-05 02:22:58 +00:00
Paul Davis b6f4cdaea2 rationalize destruction pathway (some more); tidy-ify some ImageFrame code
git-svn-id: svn://localhost/ardour2/branches/3.0@6398 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-25 21:06:52 +00:00
Paul Davis aae367b63c use new syntax for connecting to backend signals that enforces explicit connection scope, plus a few other related matters
git-svn-id: svn://localhost/ardour2/branches/3.0@6376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-19 20:26:31 +00:00
Paul Davis cddb08393a make private (non-usable) copy constructor for Selection compile, to follow changes to TrackSelection constructors
git-svn-id: svn://localhost/ardour2/branches/3.0@6373 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17 18:56:29 +00:00
Paul Davis f6fdd8dcbf switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17 18:24:23 +00:00
Carl Hetherington 04c7158a41 Remove confusing track / group members in TimeSelection struct; time selection
applies to the selected tracks.  Some tinkering with how tracks are selected
during time selections.


git-svn-id: svn://localhost/ardour2/branches/3.0@6360 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-13 21:27:19 +00:00
Carl Hetherington 034db5fb1c Apply Select property of route groups at the Selection object level. Accordingly
simplify code related to selecting tracks.  Add a TrackViewList object rather than
"abusing" TrackSelection in lots of places.


git-svn-id: svn://localhost/ardour2/branches/3.0@6358 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-13 19:09:52 +00:00
David Robillard bb9cc45cd2 Strip trailing whitespace and fix other whitespace errors (e.g. space/tab mixing). Whitespace changes only.
Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red.  I don't know the emacs equivalent...


git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14 16:10:01 +00:00
Paul Davis 3845af6ce9 lots of MIDI editing stuff. to be explained on the website when its done
git-svn-id: svn://localhost/ardour2/branches/3.0@5596 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-27 03:09:30 +00:00
Paul Davis 0178875021 MIDI cut&paste round two (not done yet); a small region trim fix from lincoln s.
git-svn-id: svn://localhost/ardour2/branches/3.0@5517 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-13 01:57:03 +00:00
Paul Davis 0bf3eb7759 first part of MIDI cut/copy/paste ; fix for input/output_streams of an IOProcessor being reported in a misleading way; in/out translation fix from 2.X, sort of
git-svn-id: svn://localhost/ardour2/branches/3.0@5510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-08-10 19:29:29 +00:00
Carl Hetherington 402cc384ce Back out big shared_ptr change. Moving to a branch. Apologies all.
git-svn-id: svn://localhost/ardour2/branches/3.0@5343 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-09 17:58:13 +00:00