Merged with trunk R992.
[ardour.git] / libs / ardour / import.cc
index 14f67245fdc954ac01390b224588309523ff818f..f16a6e7d8c28f3fe990860e9d7377254f2aad7f5 100644 (file)
@@ -65,7 +65,7 @@ Session::import_audiofile (import_status& status)
        long n;
        string basepath;
        string sounds_dir;
-       jack_nframes_t so_far;
+       nframes_t so_far;
        char buf[PATH_MAX+1];
        int ret = -1;
        vector<string> new_paths;
@@ -140,7 +140,7 @@ Session::import_audiofile (import_status& status)
 
                try { 
                        newfiles[n] = boost::dynamic_pointer_cast<AudioFileSource> (
-                               SourceFactory::createWritable (DataType::AUDIO, buf, false, frame_rate()));
+                               SourceFactory::createWritable (DataType::AUDIO, *this, buf, false, frame_rate()));
                }
 
                catch (failed_constructor& err) {
@@ -306,14 +306,18 @@ Session::sample_rate_convert (import_status& status, string infile, string& outf
        sf_count_t  input_count = 0;
 
        SNDFILE* in = sf_open(infile.c_str(), SFM_READ, &sf_info);
+       if (!in) {
+               error << string_compose(_("Import/SRC: could not open input file: %1"), outfile) << endmsg;
+               return false;
+       }
        sf_count_t total_input_frames = sf_info.frames;
        
        outfile = build_tmp_convert_name(infile);
        SNDFILE* out = sf_open(outfile.c_str(), SFM_RDWR, &sf_info);
-       if(!out) {
-               error << string_compose(_("Import: could not open temp file: %1"), outfile) << endmsg;
-               return false;
-       }
+       if (!out) {
+               error << string_compose(_("Import/SRC: could not open output file: %1"), outfile) << endmsg;
+               return false;
+       }
        
        sf_seek (in, 0, SEEK_SET) ;
        sf_seek (out, 0, SEEK_SET) ;
@@ -372,8 +376,6 @@ Session::sample_rate_convert (import_status& status, string infile, string& outf
        sf_close(in);
        sf_close(out);
 
-       status.done = true;
-
        if (status.cancel) {
                return false;
        } else {