C++11 tidying.
[dcpomatic.git] / src / lib / video_content.h
index b478666bb0ae28462ccac08e371bc27060094791..c1e1dbeec5b05345f96730b56bd6871da6c4dead 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013-2020 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
+
 #ifndef DCPOMATIC_VIDEO_CONTENT_H
 #define DCPOMATIC_VIDEO_CONTENT_H
 
+
 #include "colour_conversion.h"
+#include "content_part.h"
 #include "dcpomatic_time.h"
-#include "user_property.h"
 #include "types.h"
-#include "content_part.h"
+#include "user_property.h"
+#include <dcp/language_tag.h>
 #include <boost/thread/mutex.hpp>
-#include <boost/weak_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
+
 
 class VideoExaminer;
 class Ratio;
 class Film;
 class Content;
 
+
 class VideoContentProperty
 {
 public:
@@ -49,18 +52,21 @@ public:
        static int const RANGE;
        static int const CUSTOM_RATIO;
        static int const CUSTOM_SIZE;
+       static int const BURNT_SUBTITLE_LANGUAGE;
 };
 
-class VideoContent : public ContentPart, public boost::enable_shared_from_this<VideoContent>
+
+class VideoContent : public ContentPart, public std::enable_shared_from_this<VideoContent>
 {
 public:
        explicit VideoContent (Content* parent);
-       VideoContent (Content* parent, std::vector<boost::shared_ptr<Content> >);
+       VideoContent (Content* parent, cxml::ConstNodePtr, int);
+       VideoContent (Content* parent, std::vector<std::shared_ptr<Content>>);
 
        void as_xml (xmlpp::Node *) const;
        std::string technical_summary () const;
        std::string identifier () const;
-       void take_settings_from (boost::shared_ptr<const VideoContent> c);
+       void take_settings_from (std::shared_ptr<const VideoContent> c);
 
        Frame length () const {
                boost::mutex::scoped_lock lm (_mutex);
@@ -69,7 +75,7 @@ public:
 
        Frame length_after_3d_combine () const {
                boost::mutex::scoped_lock lm (_mutex);
-               if (_frame_type == VIDEO_FRAME_TYPE_3D_ALTERNATE) {
+               if (_frame_type == VideoFrameType::THREE_D_ALTERNATE) {
                        return _length / 2;
                }
 
@@ -100,6 +106,8 @@ public:
        void set_range (VideoRange);
        void set_use (bool);
 
+       void set_burnt_subtitle_language (boost::optional<dcp::LanguageTag> language);
+
        VideoFrameType frame_type () const {
                boost::mutex::scoped_lock lm (_mutex);
                return _frame_type;
@@ -178,24 +186,30 @@ public:
                return _use;
        }
 
+       boost::optional<dcp::LanguageTag> burnt_subtitle_language () const {
+               boost::mutex::scoped_lock lm (_mutex);
+               return _burnt_subtitle_language;
+       }
+
+
        /* XXX: names for these? */
        dcp::Size size_after_3d_split () const;
        dcp::Size size_after_crop () const;
        dcp::Size scaled_size (dcp::Size container_size);
 
-       boost::optional<double> fade (boost::shared_ptr<const Film> film, Frame) const;
+       boost::optional<double> fade (std::shared_ptr<const Film> film, Frame) const;
 
-       std::string processing_description (boost::shared_ptr<const Film> film);
+       std::string processing_description (std::shared_ptr<const Film> film);
 
        void set_length (Frame);
 
-       void take_from_examiner (boost::shared_ptr<VideoExaminer>);
+       void take_from_examiner (std::shared_ptr<VideoExaminer>);
        void add_properties (std::list<UserProperty> &) const;
 
-       void modify_position (boost::shared_ptr<const Film> film, dcpomatic::DCPTime& pos) const;
+       void modify_position (std::shared_ptr<const Film> film, dcpomatic::DCPTime& pos) const;
        void modify_trim_start (dcpomatic::ContentTime& pos) const;
 
-       static boost::shared_ptr<VideoContent> from_xml (Content* parent, cxml::ConstNodePtr, int);
+       static std::shared_ptr<VideoContent> from_xml (Content* parent, cxml::ConstNodePtr, int);
 
 private:
 
@@ -207,7 +221,6 @@ private:
        friend struct scaled_size_test2;
        friend struct scaled_size_legacy_test;
 
-       VideoContent (Content* parent, cxml::ConstNodePtr, int);
        void setup_default_colour_conversion ();
 
        bool _use;
@@ -233,6 +246,8 @@ private:
        /** fade out time in content frames */
        Frame _fade_out;
        VideoRange _range;
+       boost::optional<dcp::LanguageTag> _burnt_subtitle_language;
 };
 
+
 #endif