summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor_audio_import.cc4
-rw-r--r--gtk2_ardour/midi_region_view.cc2
-rw-r--r--libs/ardour/ardour/importable_source.h14
-rw-r--r--libs/ardour/ardour/resampled_source.h14
-rw-r--r--libs/ardour/ardour/sndfileimportable.h21
-rw-r--r--libs/ardour/import.cc1
-rw-r--r--libs/ardour/resampled_source.cc5
-rw-r--r--libs/ardour/sndfileimportable.cc8
8 files changed, 37 insertions, 32 deletions
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index c1d51e11a4..db470fbe64 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -827,20 +827,16 @@ Editor::add_sources (vector<string> paths, SourceList& sources, nframes64_t& pos
if (as->natural_position() != 0) {
pos = as->natural_position();
- cerr << "\tgot " << pos << " from source TC info\n";
} else if (target_tracks == 1) {
/* hmm, no timestamp available, put it after the previous region
*/
if (n == 0) {
pos = get_preferred_edit_position ();
- cerr << "\tno timestamp, first file, use edit pos = " << pos << endl;
} else {
pos += rlen;
- cerr << "\tpacked-sequence-shuffle to " << pos << endl;
}
} else {
pos = get_preferred_edit_position ();
- cerr << "\tmultitracks, using edit position = " << pos << endl;
}
}
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index f3e1b2cd98..505380cc25 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -1997,7 +1997,7 @@ MidiRegionView::move_selection(double dx, double dy, double cumulative_dy)
}
if (dy && !_selection.empty() && !no_sound_notes && trackview.editor().sound_notes()) {
-
+
if (to_play.size() > 1) {
PossibleChord shifted;
diff --git a/libs/ardour/ardour/importable_source.h b/libs/ardour/ardour/importable_source.h
index 7df346a782..c610d546f2 100644
--- a/libs/ardour/ardour/importable_source.h
+++ b/libs/ardour/ardour/importable_source.h
@@ -30,13 +30,13 @@ public:
ImportableSource () {}
virtual ~ImportableSource() {}
- virtual nframes_t read (Sample* buffer, nframes_t nframes) = 0;
- virtual float ratio() const { return 1.0f; }
- virtual uint32_t channels() const = 0;
- virtual nframes_t length() const = 0;
- virtual nframes_t samplerate() const = 0;
- virtual void seek (nframes_t pos) = 0;
- virtual nframes64_t natural_position() const = 0;
+ virtual nframes_t read (Sample* buffer, nframes_t nframes) = 0;
+ virtual float ratio() const { return 1.0f; }
+ virtual uint32_t channels() const = 0;
+ virtual framecnt_t length() const = 0;
+ virtual nframes_t samplerate() const = 0;
+ virtual void seek (nframes_t pos) = 0;
+ virtual framepos_t natural_position() const = 0;
virtual bool clamped_at_unity () const = 0;
};
diff --git a/libs/ardour/ardour/resampled_source.h b/libs/ardour/ardour/resampled_source.h
index b61303b65c..6d630bc44b 100644
--- a/libs/ardour/ardour/resampled_source.h
+++ b/libs/ardour/ardour/resampled_source.h
@@ -34,13 +34,13 @@ class ResampledImportableSource : public ImportableSource
~ResampledImportableSource ();
- nframes_t read (Sample* buffer, nframes_t nframes);
- float ratio() const { return src_data.src_ratio; }
- uint32_t channels() const { return source->channels(); }
- nframes_t length() const { return source->length(); }
- nframes_t samplerate() const { return source->samplerate(); }
- void seek (nframes_t);
- nframes64_t natural_position() const { return source->natural_position(); }
+ nframes_t read (Sample* buffer, nframes_t nframes);
+ float ratio() const { return src_data.src_ratio; }
+ uint32_t channels() const { return source->channels(); }
+ framecnt_t length() const { return source->length(); }
+ nframes_t samplerate() const { return source->samplerate(); }
+ void seek (nframes_t);
+ framepos_t natural_position() const;
bool clamped_at_unity () const {
/* resampling may generate inter-sample peaks with magnitude > 1 */
diff --git a/libs/ardour/ardour/sndfileimportable.h b/libs/ardour/ardour/sndfileimportable.h
index 6e308415c9..aab8b6ac59 100644
--- a/libs/ardour/ardour/sndfileimportable.h
+++ b/libs/ardour/ardour/sndfileimportable.h
@@ -33,18 +33,23 @@ class SndFileImportableSource : public ImportableSource {
SndFileImportableSource (const std::string& path);
virtual ~SndFileImportableSource();
- nframes_t read (Sample* buffer, nframes_t nframes);
- uint32_t channels() const;
- nframes_t length() const;
- nframes_t samplerate() const;
- void seek (nframes_t pos);
- nframes64_t natural_position() const;
- bool clamped_at_unity () const;
+ nframes_t read (Sample* buffer, nframes_t nframes);
+ uint32_t channels() const;
+ framecnt_t length() const;
+ nframes_t samplerate() const;
+ void seek (nframes_t pos);
+ framepos_t natural_position() const;
+ bool clamped_at_unity () const;
protected:
SF_INFO sf_info;
boost::shared_ptr<SNDFILE> in;
- nframes_t timecode;
+
+ /* these are int64_t so as to be independent of whatever
+ types Ardour may use for framepos_t, framecnt_t etc.
+ */
+
+ int64_t timecode;
int64_t get_timecode_info (SNDFILE*, SF_BROADCAST_INFO*, bool&);
};
diff --git a/libs/ardour/import.cc b/libs/ardour/import.cc
index 784fedefdb..13fb859efe 100644
--- a/libs/ardour/import.cc
+++ b/libs/ardour/import.cc
@@ -214,7 +214,6 @@ create_mono_sources_for_writing (const vector<string>& new_paths, Session& sess,
{
const DataType type = SMFSource::safe_midi_file_extension (*i) ? DataType::MIDI : DataType::AUDIO;
-
source = SourceFactory::createWritable (type, sess,
i->c_str(),
false, // destructive
diff --git a/libs/ardour/resampled_source.cc b/libs/ardour/resampled_source.cc
index 675a0e426d..7379aa74af 100644
--- a/libs/ardour/resampled_source.cc
+++ b/libs/ardour/resampled_source.cc
@@ -134,3 +134,8 @@ ResampledImportableSource::seek (nframes_t pos)
src_data.end_of_input = 0;
}
+framepos_t
+ResampledImportableSource::natural_position () const
+{
+ return source->natural_position() * ratio ();
+}
diff --git a/libs/ardour/sndfileimportable.cc b/libs/ardour/sndfileimportable.cc
index 99697b888f..b51ad3634a 100644
--- a/libs/ardour/sndfileimportable.cc
+++ b/libs/ardour/sndfileimportable.cc
@@ -57,10 +57,10 @@ SndFileImportableSource::channels () const
return sf_info.channels;
}
-nframes_t
+framecnt_t
SndFileImportableSource::length () const
{
- return sf_info.frames;
+ return (framecnt_t) sf_info.frames;
}
nframes_t
@@ -75,10 +75,10 @@ SndFileImportableSource::seek (nframes_t /*pos*/)
sf_seek (in.get(), 0, SEEK_SET);
}
-nframes64_t
+framepos_t
SndFileImportableSource::natural_position () const
{
- return timecode;
+ return (framepos_t) timecode;
}
bool