summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-02-20 00:30:42 +0000
committerDavid Robillard <d@drobilla.net>2009-02-20 00:30:42 +0000
commitc9582da23371bfd40f3087f5a9112d081ef012da (patch)
treed039fc76d262918d0335941ad5933bf7ccebfd05 /gtk2_ardour
parentbed0d89337b0775e669439ef4e0759feb7ddc74e (diff)
Make source length a dynamic thing.
Update MIDI region length (actually and visually) when position changes. git-svn-id: svn://localhost/ardour2/branches/3.0@4644 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/audio_streamview.cc2
-rw-r--r--gtk2_ardour/editor_audio_import.cc8
-rw-r--r--gtk2_ardour/editor_export_audio.cc2
-rw-r--r--gtk2_ardour/editor_region_list.cc2
-rw-r--r--gtk2_ardour/midi_region_view.cc1
-rw-r--r--gtk2_ardour/midi_streamview.cc2
-rw-r--r--gtk2_ardour/sfdb_ui.cc4
7 files changed, 12 insertions, 9 deletions
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc
index d205e400d2..f102674fb4 100644
--- a/gtk2_ardour/audio_streamview.cc
+++ b/gtk2_ardour/audio_streamview.cc
@@ -699,7 +699,7 @@ AudioStreamView::update_rec_regions ()
if (nlen != region->length()) {
- if (region->source(0)->length() >= region->start() + nlen) {
+ if (region->source_length(0) >= region->start() + nlen) {
region->freeze ();
region->set_position (_trackview.get_diskstream()->get_capture_start_frame(n), this);
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index ab5cea3f7b..730063655a 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -732,8 +732,8 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64
region_name = region_name_from_path (paths.front(), (sources.size() > 1), false);
- regions.push_back (RegionFactory::create (sources, 0, sources[0]->length(), region_name, 0,
- Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
+ regions.push_back (RegionFactory::create (sources, 0, sources[0]->length(pos), region_name, 0,
+ Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
} else if (target_regions == -1 || target_regions > 1) {
@@ -750,8 +750,8 @@ Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64
region_name = region_name_from_path ((*x)->path(), false, false, sources.size(), n);
- regions.push_back (RegionFactory::create (just_one, 0, (*x)->length(), region_name, 0,
- Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
+ regions.push_back (RegionFactory::create (just_one, 0, (*x)->length(pos), region_name, 0,
+ Region::Flag (Region::DefaultFlags|Region::WholeFile|Region::External)));
}
}
diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc
index 7586a813cf..ea1876ca94 100644
--- a/gtk2_ardour/editor_export_audio.cc
+++ b/gtk2_ardour/editor_export_audio.cc
@@ -170,7 +170,7 @@ Editor::write_region (string path, boost::shared_ptr<AudioRegion> region)
/* don't do duplicate of the entire source if that's what is going on here */
- if (region->start() == 0 && region->length() == region->source()->length()) {
+ if (region->start() == 0 && region->length() == region->source_length(0)) {
/* XXX should link(2) to create a new inode with "path" */
return true;
}
diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc
index 694d9033dc..b97c8acc9e 100644
--- a/gtk2_ardour/editor_region_list.cc
+++ b/gtk2_ardour/editor_region_list.cc
@@ -989,7 +989,7 @@ Editor::region_list_sorter (TreeModel::iterator a, TreeModel::iterator b)
break;
case BySourceFileLength:
- cmp = region1->source()->length() - region2->source()->length();
+ cmp = region1->source_length(0) - region2->source_length(0);
break;
case BySourceFileCreationDate:
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 3087d3436e..aca13c8c44 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -685,6 +685,7 @@ MidiRegionView::region_resized (Change what_changed)
RegionView::region_resized(what_changed);
if (what_changed & ARDOUR::PositionChanged) {
+ set_duration(_region->length(), 0);
if (_enable_display) {
redisplay_model();
}
diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc
index 4e1afffbfb..ed364e7156 100644
--- a/gtk2_ardour/midi_streamview.cc
+++ b/gtk2_ardour/midi_streamview.cc
@@ -594,7 +594,7 @@ MidiStreamView::update_rec_regions (boost::shared_ptr<MidiModel> data, nframes_t
if (nlen != region->length()) {
- if (region->source(0)->length() >= region->position() + nlen) {
+ if (region->source_length(0) >= region->position() + nlen) {
region->freeze ();
region->set_position (_trackview.get_diskstream()->get_capture_start_frame(n), this);
diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc
index bb95da5c00..0ee8935f1b 100644
--- a/gtk2_ardour/sfdb_ui.cc
+++ b/gtk2_ardour/sfdb_ui.cc
@@ -352,7 +352,9 @@ SoundFileBox::audition ()
afs = boost::dynamic_pointer_cast<AudioFileSource> (srclist[0]);
string rname = region_name_from_path (afs->path(), false);
- r = boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (srclist, 0, srclist[0]->length(), rname, 0, Region::DefaultFlags, false));
+ r = boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (srclist, 0,
+ srclist[0]->length(srclist[0]->timeline_position()),
+ rname, 0, Region::DefaultFlags, false));
_session->audition_region(r);
}