summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-02-17 02:11:49 +0000
committerDavid Robillard <d@drobilla.net>2009-02-17 02:11:49 +0000
commit022818b4a796f52c0a91eea42e65aec0bc7bed43 (patch)
treef82bde33d44c7b3e16af7e837536665e17fe0189 /gtk2_ardour
parent4565b73a3993b0cb5ccb9170e276180f2b5c1372 (diff)
Fix the horrible mess that was anything related to sources and paths.
Most significant changes: - Factor out FileSource from AudioFileSource, use for SMFSource too - Explicitly pass embedded rather than mysterious name mangling or whatever - Destroy a ton of duplicated or very-nearly-duplicated code - Clean up and document all that weird source stuff in session.cc git-svn-id: svn://localhost/ardour2/branches/3.0@4609 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_audio_import.cc5
-rw-r--r--gtk2_ardour/editor_export_audio.cc10
-rw-r--r--gtk2_ardour/sfdb_ui.cc10
3 files changed, 16 insertions, 9 deletions
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index b36d1a314e..ab5cea3f7b 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -672,9 +672,10 @@ Editor::embed_sndfiles (vector<Glib::ustring> paths, bool multifile,
if ((s = session->source_by_path_and_channel (path, n)) == 0) {
source = boost::dynamic_pointer_cast<AudioFileSource> (
- SourceFactory::createReadable (DataType::AUDIO, *session, path, n,
+ SourceFactory::createReadable (DataType::AUDIO, *session,
+ path, false, n,
(mode == ImportAsTapeTrack
- ? Source::Destructive
+ ? Source::Destructive
: Source::Flag (0)),
true, true));
} else {
diff --git a/gtk2_ardour/editor_export_audio.cc b/gtk2_ardour/editor_export_audio.cc
index 621482f0f1..7586a813cf 100644
--- a/gtk2_ardour/editor_export_audio.cc
+++ b/gtk2_ardour/editor_export_audio.cc
@@ -204,7 +204,10 @@ Editor::write_region (string path, boost::shared_ptr<AudioRegion> region)
try {
- fs = boost::dynamic_pointer_cast<AudioFileSource> (SourceFactory::createWritable (DataType::AUDIO, *session, path, false, session->frame_rate()));
+ fs = boost::dynamic_pointer_cast<AudioFileSource> (
+ SourceFactory::createWritable (DataType::AUDIO, *session,
+ path, true,
+ false, session->frame_rate()));
}
catch (failed_constructor& err) {
@@ -340,7 +343,10 @@ Editor::write_audio_range (AudioPlaylist& playlist, const ChanCount& count, list
path = s;
try {
- fs = boost::dynamic_pointer_cast<AudioFileSource> (SourceFactory::createWritable (DataType::AUDIO, *session, path, false, session->frame_rate()));
+ fs = boost::dynamic_pointer_cast<AudioFileSource> (
+ SourceFactory::createWritable (DataType::AUDIO, *session,
+ path, true,
+ false, session->frame_rate()));
}
catch (failed_constructor& err) {
diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc
index 141ce51a9c..bb95da5c00 100644
--- a/gtk2_ardour/sfdb_ui.cc
+++ b/gtk2_ardour/sfdb_ui.cc
@@ -332,8 +332,8 @@ SoundFileBox::audition ()
for (int n = 0; n < sf_info.channels; ++n) {
try {
afs = boost::dynamic_pointer_cast<AudioFileSource> (
- SourceFactory::createReadable (DataType::AUDIO, *_session, path,
- n, Source::Flag (0), false));
+ SourceFactory::createReadable (DataType::AUDIO, *_session,
+ path, false, n, Source::Flag (0), false));
srclist.push_back(afs);
@@ -639,13 +639,13 @@ SoundFileBrowser::meter ()
bool
SoundFileBrowser::on_audio_filter (const FileFilter::Info& filter_info)
{
- return AudioFileSource::safe_file_extension (filter_info.filename);
+ return AudioFileSource::safe_audio_file_extension (filter_info.filename);
}
bool
SoundFileBrowser::on_midi_filter (const FileFilter::Info& filter_info)
{
- return SMFSource::safe_file_extension (filter_info.filename);
+ return SMFSource::safe_midi_file_extension (filter_info.filename);
}
void
@@ -1096,7 +1096,7 @@ SoundFileOmega::check_info (const vector<ustring>& paths, bool& same_size, bool&
src_needed = true;
}
- } else if (SMFSource::safe_file_extension (*i)) {
+ } else if (SMFSource::safe_midi_file_extension (*i)) {
Evoral::SMFReader reader(*i);
if (reader.num_tracks() > 1) {