Emit no audio from DCPs if none is mapped
[dcpomatic.git] / src / wx / content_view.cc
index 8055e2f2d2fb2f043c147984bf30ecd99dd542ec..b9fe7ce005a8dde13de020dffa0920317e96d84f 100644 (file)
 
 #include "content_view.h"
 #include "wx_util.h"
-#include "lib/dcpomatic_assert.h"
 #include "lib/config.h"
-#include "lib/dcp_content.h"
 #include "lib/content_factory.h"
+#include "lib/cross.h"
+#include "lib/dcp_content.h"
+#include "lib/dcpomatic_assert.h"
 #include "lib/examine_content_job.h"
 #include "lib/job_manager.h"
-#include "lib/cross.h"
+#include "lib/util.h"
 #include <dcp/exceptions.h>
+#include <dcp/filesystem.h>
+#include <dcp/warnings.h>
 #include <boost/filesystem.hpp>
 #include <boost/optional.hpp>
+LIBDCP_DISABLE_WARNINGS
 #include <wx/progdlg.h>
+LIBDCP_ENABLE_WARNINGS
 
 
 using std::cout;
@@ -77,7 +82,7 @@ ContentView::update ()
        DeleteAllItems ();
        _content.clear ();
        auto dir = Config::instance()->player_content_directory();
-       if (!dir || !boost::filesystem::is_directory(*dir)) {
+       if (!dir || !dcp::filesystem::is_directory(*dir)) {
                dir = home_directory ();
        }
 
@@ -91,10 +96,13 @@ ContentView::update ()
                        progress.Pulse ();
 
                        shared_ptr<Content> content;
-                       if (is_directory(i) && (is_regular_file(i / "ASSETMAP") || is_regular_file(i / "ASSETMAP.xml"))) {
-                               content.reset (new DCPContent(i));
-                       } else if (i.path().extension() == ".mp4" || i.path().extension() == ".ecinema") {
-                               content = content_factory(i).front();
+                       if (is_directory(i) && contains_assetmap(i)) {
+                               content = make_shared<DCPContent>(i);
+                       } else if (i.path().extension() == ".mp4") {
+                               auto all_content = content_factory(i);
+                               if (!all_content.empty()) {
+                                       content = all_content[0];
+                               }
                        }
 
                        if (content) {
@@ -149,7 +157,7 @@ ContentView::add (shared_ptr<Content> content)
        if (dcp && dcp->content_kind()) {
                it.SetId(N);
                it.SetColumn(1);
-               it.SetText(std_to_wx(dcp::content_kind_to_string(*dcp->content_kind())));
+               it.SetText(std_to_wx(dcp->content_kind()->name()));
                SetItem(it);
        }