diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2007-11-15 02:31:32 +0000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2007-11-15 02:31:32 +0000 |
commit | e1fde117b4c2ac4eecd81fbebc83990201d1110e (patch) | |
tree | ae78a051a37c5f8a985dacea6fb515ba8532a9a2 /libs/ardour/import.cc | |
parent | 9e8afdd306e373028f17ac8c244633664786216b (diff) |
Use scoped_ptr in Session::import_audiofile to manage ImportableSource
git-svn-id: svn://localhost/ardour2/trunk@2661 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/import.cc')
-rw-r--r-- | libs/ardour/import.cc | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/libs/ardour/import.cc b/libs/ardour/import.cc index 56b2aec648..405edc622b 100644 --- a/libs/ardour/import.cc +++ b/libs/ardour/import.cc @@ -151,7 +151,6 @@ Session::import_audiofile (import_status& status) int ret = -1; vector<string> new_paths; struct tm* now; - ImportableSource* importable = 0; uint32_t cnt = 1; status.sources.clear (); @@ -166,11 +165,13 @@ Session::import_audiofile (import_status& status) status.cancel = 1; return -1; } - + + boost::scoped_ptr<ImportableSource> importable; + if ((nframes_t) info.samplerate != frame_rate()) { - importable = new ResampledImportableSource (in.get(), &info, frame_rate(), status.quality); + importable.reset(new ResampledImportableSource (in.get(), &info, frame_rate(), status.quality)); } else { - importable = new ImportableSource (in.get(), &info); + importable.reset(new ImportableSource (in.get(), &info)); } newfiles.clear (); @@ -178,7 +179,7 @@ Session::import_audiofile (import_status& status) for (int n = 0; n < info.channels; ++n) { newfiles.push_back (boost::shared_ptr<AudioFileSource>()); } - + SessionDirectory sdir(get_best_session_directory_for_new_source ()); basepath = PBD::basename_nosuffix ((*p)); @@ -217,7 +218,7 @@ Session::import_audiofile (import_status& status) } - write_audio_data_to_new_files (importable, status, newfiles); + write_audio_data_to_new_files (importable.get(), status, newfiles); if (status.cancel) { goto out; @@ -264,10 +265,6 @@ Session::import_audiofile (import_status& status) } } - if (importable) { - delete importable; - } - status.done = true; return ret; |