diff options
author | David Robillard <d@drobilla.net> | 2009-02-17 02:11:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-02-17 02:11:49 +0000 |
commit | 022818b4a796f52c0a91eea42e65aec0bc7bed43 (patch) | |
tree | f82bde33d44c7b3e16af7e837536665e17fe0189 /gtk2_ardour | |
parent | 4565b73a3993b0cb5ccb9170e276180f2b5c1372 (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.cc | 5 | ||||
-rw-r--r-- | gtk2_ardour/editor_export_audio.cc | 10 | ||||
-rw-r--r-- | gtk2_ardour/sfdb_ui.cc | 10 |
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) { |