mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
MIDI: unlinked region copies get sources that are copies of the original
Previously, the copied source file only contained data within the initial region bounds. This meant that you could not trim the (unlinked) copy to beyond its initial bounds. Seems wrong.
This commit is contained in:
parent
4f83eea46c
commit
7428f13e15
1 changed files with 3 additions and 4 deletions
|
|
@ -145,9 +145,6 @@ MidiRegion::clone (string path) const
|
|||
boost::shared_ptr<MidiRegion>
|
||||
MidiRegion::clone (boost::shared_ptr<MidiSource> newsrc, ThawList* tl) const
|
||||
{
|
||||
Temporal::Beats const bbegin = _start.val().beats ();
|
||||
Temporal::Beats const bend = _start.val().beats() + _length.val().beats();
|
||||
|
||||
{
|
||||
boost::shared_ptr<MidiSource> ms = midi_source(0);
|
||||
|
||||
|
|
@ -156,7 +153,7 @@ MidiRegion::clone (boost::shared_ptr<MidiSource> newsrc, ThawList* tl) const
|
|||
*/
|
||||
|
||||
Source::ReaderLock lm (ms->mutex());
|
||||
if (ms->write_to (lm, newsrc, bbegin, bend)) {
|
||||
if (ms->write_to (lm, newsrc, Temporal::Beats(), std::numeric_limits<Temporal::Beats>::max())) {
|
||||
return boost::shared_ptr<MidiRegion> ();
|
||||
}
|
||||
}
|
||||
|
|
@ -168,6 +165,8 @@ MidiRegion::clone (boost::shared_ptr<MidiSource> newsrc, ThawList* tl) const
|
|||
plist.add (Properties::automatic, false);
|
||||
plist.add (Properties::external, false);
|
||||
plist.add (Properties::import, false);
|
||||
plist.add (Properties::start, _start.val());
|
||||
plist.add (Properties::length, _length.val());
|
||||
plist.add (Properties::layer, 0);
|
||||
|
||||
boost::shared_ptr<MidiRegion> ret (boost::dynamic_pointer_cast<MidiRegion> (RegionFactory::create (newsrc, plist, true, tl)));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue