summaryrefslogtreecommitdiff
path: root/libs/ardour/playlist.cc
AgeCommit message (Collapse)Author
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-10remove reference "const int32_t&" -> const int32_t"Robin Gareus
this simplifies lua-bindings and also let's the compiler worry about constant primitive types.
2016-07-10Remove extra ContentsChanged signal on tempo map change.nick_m
2016-07-10Exact beat for added regions.nick_m
2016-07-10Complete the task of Playlist::flush_notifications ()nick_m
2016-07-10Paste uses exact beats. rework _start_beats calculation in copy-with-offset ↵nick_m
ctor.
2016-07-10Exact beat - provide audio->music mapping for region split.nick_m
- for those not in the know, this series provides a way to remove the temporal distortion introduced when using an audio frame-based gui for music-locked objects. In short, the gui uses an audio frame representation to move objects. It displays the object using frame_at_beat(), quantizing the time value to audio frames. This is fine until the user selects that frame but expects it to be interpreted as a beat. Thus beat_at_frame() would not produce the user-expected beat (temporal quantization error of up to 0.5 audio samples). This is one method of mapping audio time to music time accurately.
2016-06-28remove debug output and add a few suggestive commentsPaul Davis
2016-06-28changes in logic used by source cleanup to avoid endless recursion in ↵Paul Davis
sessions with deeply nested/recursive compound regions. This also fixes some potentially dangerous cleanup logic related to two sources with the same name (but different paths)
2016-06-08consistent API name for region-listRobin Gareus
2016-05-27Crapola - this is an experimental performance hack that must be reverted.nick_m
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-05-01fix: gcc4.2 / PPC compilationRobin Gareus
no match for 'operator!=' in 'x != std::list<_Tp, _Alloc>::rend() [with _Tp = long long int, _Alloc = std::allocator<long long int>]()'
2016-05-01various transient-detection fixes (split region, trim, move, undo,..)Robin Gareus
* all API calls use session-time (allow region-lists) * per-region transients are separated in - Onset (Rhythm Rodent, Aubio) - User-added - internal/source (QM), used as fallback for next/prev (read-only)
2016-04-10NO-OP whitespace + commentsRobin Gareus
2016-02-22Spelling correction patch from DebianAdrian Knoth
Patch taken (and forward-ported to HEAD) from <https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/plain/debian/patches/0100-fix-typos.patch>
2016-01-28Add Playlist::duplicate_range/s utility methodsTim Mayberry
2016-01-14Fix bug 6725 regions incorrectly moved after tempo change when glued to BBT timeTim Mayberry
Playlist::_split_region copies the region and BBT_Time member is default constructed so position is bar 1 beat 1. The regions sample position is then initialized to the new position using the property list. Playlist::add_region_internal is then used to add new regions to the playlist which calls region->set_position() but as the region position has already been initialized it does not recompute the _bbt_time member based on the new sample position. Then when a tempo change occurs and Region::update_after_tempo_map_change is called the default initialized _bbt_time member is used to incorrectly determine the new sample position. So the change removes the initialization of the new region position using the property list initialization method and just lets the playlist set the position of the region in Playlist::add_region_internal so that the region _bbt_time member is recomputed in Region::set_position_internal.
2015-12-02Add function to duplicate until a certain frame.André Nusser
This excludes the 'end' frame.
2015-11-04Make duplicate start at position, not position + 1. (libs part)André Nusser
2015-10-12fix crashes due to glib ignored EDEADLK.Robin Gareus
Taking a readlock after a writelock in the same thread should result in a deadlock, yet pthread on Linux returns EDEADLK and continues. glib-2.42.0 ignores EDEADLK and assumes the lock was taken. Releasing the lock later causes issues: "Calling g_rw_lock_writer_unlock() on a lock that is not held by the current thread leads to undefined behaviour." The issue at hand: AudioStreamView::redisplay_track() -> foreach_region() #<< WriteLock -> add_region_view() ... -> AudioRegionView::create_one_wave() -> RegionView::update_coverage_frames -> Playlist::top_unmuted_region_at() #<< ReadLock All current users of Playlist::foreach_region() are in the GUI and AFAICT read-only (display regions, update visuals)
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-20fix duplicating multiple selected regions - fixes #6202André Nusser
2015-06-29fix indentationPaul Davis
2015-06-29[Summary] Region changes will make session dirtyGZharun
2015-05-10Layering - the return of "later is higher".nick_m
Currently we don't do anything special on layering prefs change (relayer only occurs when each playlist is first edited). The idea here is that "undo" is still available to restore previous layering in case of any surprises.
2015-04-11remove unused local variablePaul Davis
2014-12-01Comments in various call-sites of coverage()Colin Fletcher
Comments in various call sites of Evoral::coverage() marking things I think are dubious (with XXX). Also straightened up the alignment of some ASCII art in libs/ardour/diskstream.cc
2014-10-15when flushing notifications/signals from an ARDOUR::Playlist, emit the ↵Paul Davis
RegionAdded/ContentsChanged signals first so that when LayersChanged is sent, the receivers know about all the new regions
2014-10-10Properly count nested regionsRobin Gareus
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