Use PBD::copy_file in Session::create() to copy the template file.
authorTim Mayberry <mojofunk@gmail.com>
Fri, 18 May 2007 02:45:15 +0000 (02:45 +0000)
committerTim Mayberry <mojofunk@gmail.com>
Fri, 18 May 2007 02:45:15 +0000 (02:45 +0000)
git-svn-id: svn://localhost/ardour2/trunk@1867 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/session_state.cc

index c2dfd12b4970ca3640bdd3df0ef5a2de41f1b935..fe48a92109ca2e26265df9127e1cf6424f9a047f 100644 (file)
@@ -510,38 +510,17 @@ Session::create (bool& new_session, string* mix_template, nframes_t initial_leng
        /* check new_session so we don't overwrite an existing one */
 
        if (mix_template) {
-               std::string in_path = *mix_template;
-
-               ifstream in(in_path.c_str());
-
-               if (in){
-                       string out_path = _path;
-                       out_path += _name;
-                       out_path += statefile_suffix;
-
-                       ofstream out(out_path.c_str());
-
-                       if (out){
-                               out << in.rdbuf();
-
-                               // okay, session is set up.  Treat like normal saved
-                               // session from now on.
-
-                               new_session = false;
-                               return 0;
-
-                       } else {
-                               error << string_compose (_("Could not open %1 for writing mix template"), out_path) 
-                                       << endmsg;
-                               return -1;
-                       }
+                       
+               string out_path = _path + _name + statefile_suffix;
 
-               } else {
-                       error << string_compose (_("Could not open mix template %1 for reading"), in_path
+               if(!copy_file (*mix_template, out_path)) {
+                       error << string_compose (_("Could not use session template %1 to create new session."), *mix_template
                                << endmsg;
                        return -1;
                }
 
+               new_session = false;
+               return 0;
        }
 
        /* set initial start + end point */