Small bits of tidying up.
[dcpomatic.git] / src / lib / video_content.cc
index f9de6aa2146b0f0ff5a91de4b214ddc37b83442a..819333227a6e42c4a52d41a807cb338ddce45f48 100644 (file)
@@ -22,6 +22,7 @@
 #include "video_content.h"
 #include "video_examiner.h"
 #include "ratio.h"
+#include "compose.hpp"
 
 #include "i18n.h"
 
@@ -37,7 +38,7 @@ using boost::shared_ptr;
 using boost::lexical_cast;
 using boost::optional;
 
-VideoContent::VideoContent (shared_ptr<const Film> f, Time s, ContentVideoFrame len)
+VideoContent::VideoContent (shared_ptr<const Film> f, Time s, VideoContent::Frame len)
        : Content (f, s)
        , _video_length (len)
        , _video_frame_rate (0)
@@ -58,7 +59,7 @@ VideoContent::VideoContent (shared_ptr<const Film> f, boost::filesystem::path p)
 VideoContent::VideoContent (shared_ptr<const Film> f, shared_ptr<const cxml::Node> node)
        : Content (f, node)
 {
-       _video_length = node->number_child<ContentVideoFrame> ("VideoLength");
+       _video_length = node->number_child<VideoContent::Frame> ("VideoLength");
        _video_size.width = node->number_child<int> ("VideoWidth");
        _video_size.height = node->number_child<int> ("VideoHeight");
        _video_frame_rate = node->number_child<float> ("VideoFrameRate");
@@ -136,16 +137,6 @@ VideoContent::information () const
        return s.str ();
 }
 
-void
-VideoContent::set_crop (Crop c)
-{
-       {
-               boost::mutex::scoped_lock lm (_mutex);
-               _crop = c;
-       }
-       signal_changed (VideoContentProperty::VIDEO_CROP);
-}
-
 void
 VideoContent::set_left_crop (int c)
 {
@@ -221,3 +212,21 @@ VideoContent::set_ratio (Ratio const * r)
 
        signal_changed (VideoContentProperty::VIDEO_RATIO);
 }
+
+/** @return string which includes everything about how this content looks */
+string
+VideoContent::identifier () const
+{
+       stringstream s;
+       s << Content::digest()
+         << "_" << crop().left
+         << "_" << crop().right
+         << "_" << crop().top
+         << "_" << crop().bottom;
+
+       if (ratio()) {
+               s << "_" << ratio()->id ();
+       }
+
+       return s.str ();
+}