Bump version
[dcpomatic.git] / src / lib / film.h
index 7279541e4dda7ebffe00cce4d86be0916cfcc658..f5b29466afe44574d033ae504d605f43bd6d49ba 100644 (file)
 #include <string>
 #include <vector>
 #include <inttypes.h>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread.hpp>
 #include <boost/signals2.hpp>
 #include <boost/enable_shared_from_this.hpp>
+#include <boost/filesystem.hpp>
 #include "util.h"
 #include "types.h"
-#include "playlist.h"
 #include "dci_metadata.h"
 
 class DCPContentType;
 class Log;
 class Content;
 class Player;
+class Playlist;
+class AudioContent;
+class Scaler;
 
 /** @class Film
  *
@@ -52,7 +53,7 @@ class Player;
 class Film : public boost::enable_shared_from_this<Film>, public boost::noncopyable
 {
 public:
-       Film (std::string d);
+       Film (boost::filesystem::path);
 
        std::string info_dir () const;
        std::string j2c_path (int, Eyes, bool) const;
@@ -133,81 +134,72 @@ public:
                /** The setting of _three_d has been changed */
                THREE_D,
                SEQUENCE_VIDEO,
+               INTEROP,
        };
 
 
        /* GET */
 
        std::string directory () const {
-               boost::mutex::scoped_lock lm (_directory_mutex);
                return _directory;
        }
 
        std::string name () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _name;
        }
 
        bool use_dci_name () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _use_dci_name;
        }
 
        DCPContentType const * dcp_content_type () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _dcp_content_type;
        }
 
        Ratio const * container () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _container;
        }
 
        Resolution resolution () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _resolution;
        }
 
        Scaler const * scaler () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _scaler;
        }
 
        bool with_subtitles () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _with_subtitles;
        }
 
        int j2k_bandwidth () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _j2k_bandwidth;
        }
 
        DCIMetadata dci_metadata () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _dci_metadata;
        }
 
        /** @return The frame rate of the DCP */
        int video_frame_rate () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _video_frame_rate;
        }
 
        int audio_channels () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _audio_channels;
        }
 
        bool three_d () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _three_d;
        }
 
        bool sequence_video () const {
-               boost::mutex::scoped_lock lm (_state_mutex);
                return _sequence_video;
        }
+
+       bool interop () const {
+               return _interop;
+       }
        
 
        /* SET */
@@ -230,6 +222,7 @@ public:
        void set_three_d (bool);
        void set_dci_date_today ();
        void set_sequence_video (bool);
+       void set_interop (bool);
 
        /** Emitted when some property has of the Film has changed */
        mutable boost::signals2::signal<void (Property)> Changed;
@@ -257,8 +250,6 @@ private:
         *  must not be relative.
         */
        std::string _directory;
-       /** Mutex for _directory */
-       mutable boost::mutex _directory_mutex;
        
        /** Name for DCP-o-matic */
        std::string _name;
@@ -289,13 +280,11 @@ private:
        */
        bool _three_d;
        bool _sequence_video;
+       bool _interop;
 
        /** true if our state has changed since we last saved it */
        mutable bool _dirty;
 
-       /** Mutex for all state except _directory */
-       mutable boost::mutex _state_mutex;
-
        friend class paths_test;
        friend class film_metadata_test;
 };