Use boost::signals2; fix bugs with x-thread signalling.
[dcpomatic.git] / src / lib / copy_from_dvd_job.cc
index c43723aa03a33895daa0e689807040ff8643de55..dcf53ac54e2baed566fde74bf1b2edc51ccf1e96 100644 (file)
 #include "cross.h"
 #include "film.h"
 
-using namespace std;
-using namespace boost;
+using std::string;
+using std::list;
+using std::stringstream;
+using boost::shared_ptr;
 
 /** @param f Film to write DVD data into.
  */
@@ -50,7 +52,7 @@ void
 CopyFromDVDJob::run ()
 {
        /* Remove any old DVD rips */
-       filesystem::remove_all (_film->dir ("dvd"));
+       boost::filesystem::remove_all (_film->dir ("dvd"));
 
        string const dvd = find_dvd ();
        if (dvd.empty ()) {
@@ -93,6 +95,25 @@ CopyFromDVDJob::run ()
                }
        }
 
+       const string dvd_dir = _film->dir ("dvd");
+
+       string largest_file;
+       uintmax_t largest_size = 0;
+       for (boost::filesystem::directory_iterator i = boost::filesystem::directory_iterator (dvd_dir); i != boost::filesystem::directory_iterator(); ++i) {
+               uintmax_t const s = boost::filesystem::file_size (*i);
+               if (s > largest_size) {
+
+#if BOOST_FILESYSTEM_VERSION == 3              
+                       largest_file = boost::filesystem::path(*i).generic_string();
+#else
+                       largest_file = i->string ();
+#endif
+                       largest_size = s;
+               }
+       }
+
+       _film->set_content (largest_file);
+       
        int const r = pclose (f);
        if (WEXITSTATUS (r) != 0) {
                set_error ("call to vobcopy failed");