diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-04-12 23:25:19 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-05-18 11:50:29 +0100 |
| commit | 78664f8073256de51355c9162f61a4ae4fa560d7 (patch) | |
| tree | cd49f4377b123ea6bc0a3a4ca5973a76fae38b72 /src | |
| parent | 6f344b876689a1234a5eb75041882f06f5d9fe5c (diff) | |
Take some stuff out of VideoContent into ContentPart.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/content_part.h | 37 | ||||
| -rw-r--r-- | src/lib/video_content.cc | 9 | ||||
| -rw-r--r-- | src/lib/video_content.h | 6 |
3 files changed, 42 insertions, 10 deletions
diff --git a/src/lib/content_part.h b/src/lib/content_part.h new file mode 100644 index 000000000..2d0f73f7f --- /dev/null +++ b/src/lib/content_part.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2016 Carl Hetherington <cth@carlh.net> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include <boost/weak_ptr.hpp> + +class Content; +class Film; + +class ContentPart +{ +public: + ContentPart (Content* parent, boost::shared_ptr<const Film> film) + : _parent (parent) + , _film (film) + {} + +protected: + Content* _parent; + boost::weak_ptr<const Film> _film; + mutable boost::mutex _mutex; +}; diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index 708edee76..4059c29d1 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -65,8 +65,7 @@ using boost::optional; using boost::dynamic_pointer_cast; VideoContent::VideoContent (Content* parent, shared_ptr<const Film> film) - : _parent (parent) - , _film (film) + : ContentPart (parent, film) , _video_length (0) , _video_frame_type (VIDEO_FRAME_TYPE_2D) , _scale (VideoContentScale (Ratio::from_id ("178"))) @@ -78,8 +77,7 @@ VideoContent::VideoContent (Content* parent, shared_ptr<const Film> film) } VideoContent::VideoContent (Content* parent, shared_ptr<const Film> film, cxml::ConstNodePtr node, int version) - : _parent (parent) - , _film (film) + : ContentPart (parent, film) { _video_size.width = node->number_child<int> ("VideoWidth"); _video_size.height = node->number_child<int> ("VideoHeight"); @@ -117,8 +115,7 @@ VideoContent::VideoContent (Content* parent, shared_ptr<const Film> film, cxml:: } VideoContent::VideoContent (Content* parent, shared_ptr<const Film> film, vector<shared_ptr<Content> > c) - : _parent (parent) - , _film (film) + : ContentPart (parent, film) , _video_length (0) , _yuv (false) { diff --git a/src/lib/video_content.h b/src/lib/video_content.h index 768f1897d..075f7b701 100644 --- a/src/lib/video_content.h +++ b/src/lib/video_content.h @@ -25,6 +25,7 @@ #include "dcpomatic_time.h" #include "user_property.h" #include "types.h" +#include "content_part.h" #include <boost/thread/mutex.hpp> #include <boost/weak_ptr.hpp> #include <boost/enable_shared_from_this.hpp> @@ -47,7 +48,7 @@ public: static int const VIDEO_FADE_OUT; }; -class VideoContent : public boost::enable_shared_from_this<VideoContent> +class VideoContent : public ContentPart, public boost::enable_shared_from_this<VideoContent> { public: VideoContent (Content* parent, boost::shared_ptr<const Film>); @@ -184,9 +185,6 @@ public: private: - Content* _parent; - boost::weak_ptr<const Film> _film; - mutable boost::mutex _mutex; Frame _video_length; /** Video frame rate, or not set if this content should use the DCP's frame rate */ boost::optional<double> _video_frame_rate; |
