summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
AgeCommit message (Collapse)Author
2014-10-10re-reference regions during uncombine - #5979Robin Gareus
2014-07-23Cut and Copy should remember the white space at the end of a range.Ben Loftis
This will be used when you paste with Ripple; it maintains the whitespace that you chose in the selection. Also fix default setting of Dim contol by storing the default(normal) value for MPControl Controllables.
2014-07-10add libardour infrastructure for "fade range" edit operationPaul Davis
2014-07-01Merge branch 'ripple-mode-cc' into cairocanvasColin Fletcher
Fix up merge conflicts in gtk2_ardour/editor_mouse.cc gtk2_ardour/editor_ops.cc Also fix up compile errors.
2014-06-16fix typo in comment of prev. commitRobin Gareus
2014-06-16fix region un/combine, based on a patch by Tom BrandRobin Gareus
2014-05-07Ripple mode: basic implementationColin Fletcher
Add a value for Ripple to EditMode enum. Add Ripple edit mode to edit mode dropdown, by adding it to the Editor::build_edit_mode_menu() helper function, and remove the old code that added items to the (now unused) Editor::edit_mode_strings. Add the regions that should be affected by the drag to RegionDrag::_views so that the drag carries them along automatically. Use a copy of the RegionList in Playlist::core_ripple(), since bad things happen when iterating over regions and they get moved around in the list. Handle rippling in removal of regions from playlist. When dragging in ripple mode, exclude all regions that lie before the original start position of the selected regions being dragged from rippling: this is what Mixbus does. Make editor dragging respect snap-to settings, by using the existing compute_x_delta() function, which did almost the right thing. Move setting of _last_frame_position out of that function so all ripple-dragged regions can move. Ripple when dragging from region list: even though Mixbus doesn't do this, it seems like a good idea. Prevent multi-track selection being dragged across tracks, by making RegionMotionDrag::y_movement_allowed() virtual, and overriding it in RegionRippleDrag to forbid dragging of selections containing regions on more than one track to dofferent tracks in ripple mode. Remember which TimeAxisView a ripple-mode drag that's allowed cross-track drags started from, so that the effect of rippling regions after any region that's dragged off that track can be undone.
2014-05-07Splice mode: exclude newly-added regions from being shuffledColin Fletcher
When adding regions in splice mode, exclude the region being added from possibly being shuffled. I don't know whether this might have some other adverse effects, but it fixes an obvious defect in 'Splice' mode where newly-recorded regions 'jump' to the playhead position when recording stops, and since splice mode is pretty much broken anyway, I don't think it can make matters any worse.
2013-08-04'libs/ardour' - Use 'const_iterator' where appropriate (required to be ↵John Emmas
buildable with MSVC)
2013-08-01remove an identical odd namespacing typoPaul Davis
2013-08-01remove odd namespacing typoPaul Davis
2013-01-04allow region list selection of whole file regions to select every instance ↵Paul Davis
of a region that has any source relationship with that whole file region (from a logic feature that came up while writing the manual) git-svn-id: svn://localhost/ardour2/branches/3.0@13779 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-13crossfade hack and slash. removed overlap checks, overlap mode, default ↵Ben Loftis
length, fade_is_xfade, fade_is_short, and other leftovers from previous crossfade models. Draw crossfade drags in realtime so fade_line is no longer needed. remove code for hiding crossfades during a drag. moved crossfade rect to top layer so crossfade lines dont grab mouse focus. drag-trim-with-fixed-fade-anchor is partially implemented and needs discussion git-svn-id: svn://localhost/ardour2/branches/3.0@13659 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-10Set up layering correctly on compound playlists so thatCarl Hetherington
the regions on the compound list are arranged the same as on the original. git-svn-id: svn://localhost/ardour2/branches/3.0@12643 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-01When we rename a track, only rename its playlist if itCarl Hetherington
has never contained any regions (#4759). git-svn-id: svn://localhost/ardour2/branches/3.0@12525 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24always create short xfades when adding a region based on capturePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12443 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
It's slightly possible that this causes trivial build failures on different configurations, but otherwise shouldn't cause any problems (i.e. no actual changes other than include/naming/namespace stuff). I deliberately avoided removing libardour-config.h since this can mysteriously break things, though a few of those do seem to be unnecessary. This commit only targets includes of ardour/*.h. There is also a very large number of unnecessary includes of stuff in gtk2_ardour; tackling that should also give a big improvement in build time when things are modified. git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-23stop deadlock when pasting into a playlistPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12400 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-16switch to a RWLock for Playlist, to allow simultaneous reads (which can ↵Paul Davis
happen occasionally, eg. peak and butler threads) git-svn-id: svn://localhost/ardour2/branches/3.0@12301 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-01remove recursive mutex from Playlist, replace with private regular mutex, ↵Paul Davis
force everyone to use Playlist::RegionLock to allow checking on lock handling if necessary; fix recursive use of lock in AudioPlaylist::read() git-svn-id: svn://localhost/ardour2/branches/3.0@12131 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-29Handle update of crossfades on explicit relayer more efficiently.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12119 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-28Remove unused variable.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12118 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-27Crossfades: default xfades are now constant-power, -3dB rule, other options ↵Paul Davis
are constant power(-6dB) rule or use existing region fade shape as is; provide GUI control over options; fix some inconsistent behaviour regarding xfades when relayering git-svn-id: svn://localhost/ardour2/branches/3.0@12113 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16Fairly major change to the way in which crossfades are handled;Carl Hetherington
they are now done with region fades, rather than separate objects. After this commit, Ardour will try to convert your session files to the new crossfade format, but will make a backup in your session folder first. If you have works in progress using Ardour 3 it is ***STRONGLY RECOMMENDED*** that you back up session files before updating to this commit. git-svn-id: svn://localhost/ardour2/branches/3.0@11986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-02Remove some unused stuff.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11782 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-01Tidy up slightly.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11412 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-27promote Playlist::RegionList to ARDOUR::RegionList; fix timefx on multiple ↵Paul Davis
regions, even regions of mixed type. this mostly involved some trivial code changes but to make the code simpler and less error prone, the API switched away from using RegionSelection (list of regionviews that catches regionviews vanishing) and used RegionList (lists of regions, no semantics) instead. git-svn-id: svn://localhost/ardour2/branches/3.0@11362 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04Use a few shared_ptrs to make things slightly neater.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11156 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-31Emit notify_layering_changed() more often; especially when we remove the ↵Carl Hetherington
only region on a top layer, and the StreamView needs to sort itself out. git-svn-id: svn://localhost/ardour2/branches/3.0@11126 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-30Anywhere that deletes regions needs to use a rdiff() on the playlistCarl Hetherington
for the undo history, so that changes to regions' layering_index get stored in the undo record. Make Playlist::update use add_region_internal so that undone regions don't have their layering_index corrupted. Setup layering indices on relayer() so that deletion of regions causes an update. git-svn-id: svn://localhost/ardour2/branches/3.0@11123 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-30Debug code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11122 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-30Set up layering_index immediately on an explicit layer, so that undoCarl Hetherington
works properly. Stop the layer being a stateful property, as it is always derived from layering_index, unambigiously, by relayer(). git-svn-id: svn://localhost/ardour2/branches/3.0@11120 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-29Revert internals of the last layering-related commit, and go back a ↵Carl Hetherington
slightly-cleaned-up version of how it was before. Remove all layering modes; only option now is add-is-higher. Move-add-higher could easily be re-added if anyone uses it. git-svn-id: svn://localhost/ardour2/branches/3.0@11111 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-28Remove unused variable.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11101 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27Try to make new layering stuff play nicely with undo.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11097 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27Hack around one case where satisfying all constraints in aCarl Hetherington
relayer is impossible. git-svn-id: svn://localhost/ardour2/branches/3.0@11096 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27More debugging.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11095 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27Improve debug slightly and fix raise/lower.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11094 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27Basic DEBUG_TRACE for layering code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11091 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-27Re-work layering in possibly debatable ways. Sketchy docs in doc/layering.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11088 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-20Now that notify_length_changed() just callsCarl Hetherington
ContentsChanged, its callers can be removed or changed to just notify_contents_changed. git-svn-id: svn://localhost/ardour2/branches/3.0@11024 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-20Remove LengthChanged that no-one was listening to.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11023 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-13fix up mess with unassigned Playlist::orig_track_idPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@10998 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-12Set up region BBT time when frame position changes, if the region is glued ↵Carl Hetherington
to BBT; fixes part of #4257. git-svn-id: svn://localhost/ardour2/branches/3.0@10986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-11Keep track of MIDI region's start positions in beats, toCarl Hetherington
match the source, so that starts are not corrupted when tempos change (#4494). git-svn-id: svn://localhost/ardour2/branches/3.0@10976 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-10fix for most (all? we can dream ...) issues involved in #4399 (editing ↵Paul Davis
multiply-applies operations to playlists used more than once), and as a side-issue, fix playlist selection which broke when we hid Diskstreams inside Tracks by using orig_track_id() rather than orig_diskstream_id() git-svn-id: svn://localhost/ardour2/branches/3.0@10968 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-24Remove unused read/write data count code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10300 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18make Stateful::_id private and provide appropriate methods to set it, and ↵Paul Davis
use them throughout ardour git-svn-id: svn://localhost/ardour2/branches/3.0@10222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-02Fix some set-but-not-used variable warnings from gcc 4.6Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9783 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-22drobilla-spacification of playlist.cc, along with correctly bombing out if ↵Paul Davis
::set_state() fails, part 1 git-svn-id: svn://localhost/ardour2/branches/3.0@9758 d708f5d6-7413-0410-9779-e7cbd77b26cf