_audio_delay = node->number_child<int> ("AudioDelay");
}
-AudioContent::AudioContent (AudioContent const & o)
- : Content (o)
- , _audio_gain (o._audio_gain)
- , _audio_delay (o._audio_delay)
-{
-
-}
-
void
AudioContent::as_xml (xmlpp::Node* node) const
{
AudioContent (boost::shared_ptr<const Film>, Time);
AudioContent (boost::shared_ptr<const Film>, boost::filesystem::path);
AudioContent (boost::shared_ptr<const Film>, boost::shared_ptr<const cxml::Node>);
- AudioContent (AudioContent const &);
void as_xml (xmlpp::Node *) const;
AudioMapping ();
AudioMapping (int);
AudioMapping (boost::shared_ptr<const cxml::Node>);
+
+ /* Default copy constructor is fine */
void as_xml (xmlpp::Node *) const;
/** @class Config
* @brief A singleton class holding configuration.
*/
-class Config
+class Config : public boost::noncopyable
{
public:
_start = node->number_child<Time> ("Start");
}
-Content::Content (Content const & o)
- : boost::enable_shared_from_this<Content> (o)
- , _film (o._film)
- , _file (o._file)
- , _digest (o._digest)
- , _start (o._start)
- , _change_signals_frequent (o._change_signals_frequent)
-{
-
-}
-
void
Content::as_xml (xmlpp::Node* node) const
{
static int const LENGTH;
};
-class Content : public boost::enable_shared_from_this<Content>
+class Content : public boost::enable_shared_from_this<Content>, public boost::noncopyable
{
public:
Content (boost::shared_ptr<const Film>, Time);
Content (boost::shared_ptr<const Film>, boost::filesystem::path);
Content (boost::shared_ptr<const Film>, boost::shared_ptr<const cxml::Node>);
- Content (Content const &);
virtual ~Content () {}
virtual void examine (boost::shared_ptr<Job>);
virtual std::string summary () const = 0;
virtual std::string information () const = 0;
virtual void as_xml (xmlpp::Node *) const;
- virtual boost::shared_ptr<Content> clone () const = 0;
virtual Time length () const = 0;
boost::filesystem::path file () const {
/** @class DCPContentType
* @brief A description of the type of content for a DCP (e.g. feature, trailer etc.)
*/
-class DCPContentType
+class DCPContentType : public boost::noncopyable
{
public:
DCPContentType (std::string, libdcp::ContentKind, std::string);
/** @class EncodedData
* @brief Container for J2K-encoded data.
*/
-class EncodedData
+class EncodedData : public boost::noncopyable
{
public:
/** @param s Size of data, in bytes */
protected:
uint8_t* _data; ///< data
int _size; ///< data size in bytes
-
-private:
- /* No copy construction */
- EncodedData (EncodedData const &);
};
/** @class LocallyEncodedData
* Objects of this class are used for the queue that we keep
* of images that require encoding.
*/
-class DCPVideoFrame
+class DCPVideoFrame : public boost::noncopyable
{
public:
DCPVideoFrame (boost::shared_ptr<const Image>, int, int, int, boost::shared_ptr<Log>);
/** @class Decoder.
* @brief Parent class for decoders of content.
*/
-class Decoder
+class Decoder : public boost::noncopyable
{
public:
Decoder (boost::shared_ptr<const Film>);
* is supplied as uncompressed PCM in blocks of various sizes.
*/
-class Encoder
+class Encoder : public boost::noncopyable
{
public:
Encoder (boost::shared_ptr<const Film> f, boost::shared_ptr<Job>);
_first_video = node->optional_number_child<double> ("FirstVideo");
}
-FFmpegContent::FFmpegContent (FFmpegContent const & o)
- : Content (o)
- , VideoContent (o)
- , AudioContent (o)
- , SubtitleContent (o)
- , _subtitle_streams (o._subtitle_streams)
- , _subtitle_stream (o._subtitle_stream)
- , _audio_streams (o._audio_streams)
- , _audio_stream (o._audio_stream)
-{
-
-}
-
void
FFmpegContent::as_xml (xmlpp::Node* node) const
{
root->add_child("Id")->add_child_text (lexical_cast<string> (id));
}
-shared_ptr<Content>
-FFmpegContent::clone () const
-{
- return shared_ptr<Content> (new FFmpegContent (*this));
-}
-
Time
FFmpegContent::length () const
{
public:
FFmpegContent (boost::shared_ptr<const Film>, boost::filesystem::path);
FFmpegContent (boost::shared_ptr<const Film>, boost::shared_ptr<const cxml::Node>);
- FFmpegContent (FFmpegContent const &);
boost::shared_ptr<FFmpegContent> shared_from_this () {
return boost::dynamic_pointer_cast<FFmpegContent> (Content::shared_from_this ());
std::string summary () const;
std::string information () const;
void as_xml (xmlpp::Node *) const;
- boost::shared_ptr<Content> clone () const;
Time length () const;
std::string identifier () const;
private:
friend class ::ffmpeg_pts_offset_test;
- /* No copy construction */
- FFmpegDecoder (FFmpegDecoder const &);
- FFmpegDecoder& operator= (FFmpegDecoder const &);
-
static double compute_pts_offset (double, double, float);
void setup_subtitle ();
*
* The content of a Film is held in a Playlist (created and managed by the Film)
*/
-class Film : public boost::enable_shared_from_this<Film>
+class Film : public boost::enable_shared_from_this<Film>, public boost::noncopyable
{
public:
Film (std::string d);
private:
- /* No copy construction */
- Film (Film const &);
- Film & operator= (Film const &);
-
void signal_changed (Property);
std::string video_identifier () const;
void playlist_changed ();
#include <string>
#include <vector>
+#include <boost/utility.hpp>
/** @class Filter
* @brief A class to describe one of FFmpeg's video or post-processing filters.
*/
-class Filter
+class Filter : public boost::noncopyable
{
public:
Filter (std::string, std::string, std::string, std::string, std::string);
/** @class FilterGraph
* @brief A graph of FFmpeg filters.
*/
-class FilterGraph
+class FilterGraph : public boost::noncopyable
{
public:
FilterGraph (boost::shared_ptr<const FFmpegContent> content, libdcp::Size s, AVPixelFormat p);
take_from_video_examiner (examiner);
}
-shared_ptr<Content>
-ImageMagickContent::clone () const
-{
- return shared_ptr<Content> (new ImageMagickContent (*this));
-}
-
void
ImageMagickContent::set_video_length (VideoContent::Frame len)
{
void examine (boost::shared_ptr<Job>);
std::string summary () const;
void as_xml (xmlpp::Node *) const;
- boost::shared_ptr<Content> clone () const;
Time length () const;
std::string identifier () const;
/** @class JobManager
* @brief A simple scheduler for jobs.
*/
-class JobManager
+class JobManager : public boost::noncopyable
{
public:
/** @class Log
* @brief A very simple logging class.
*/
-class Log
+class Log : public boost::noncopyable
{
public:
Log ();
* @brief A class which can `play' a Playlist; emitting its audio and video.
*/
-class Player : public boost::enable_shared_from_this<Player>
+class Player : public boost::enable_shared_from_this<Player>, public boost::noncopyable
{
public:
Player (boost::shared_ptr<const Film>, boost::shared_ptr<const Playlist>);
}
-Playlist::Playlist (shared_ptr<const Playlist> other)
- : _loop (other->_loop)
-{
- for (ContentList::const_iterator i = other->_content.begin(); i != other->_content.end(); ++i) {
- _content.push_back ((*i)->clone ());
- }
-}
-
Playlist::~Playlist ()
{
_content.clear ();
bool operator() (boost::shared_ptr<Content> a, boost::shared_ptr<Content> b);
};
-class Playlist
+class Playlist : public boost::noncopyable
{
public:
Playlist ();
- Playlist (boost::shared_ptr<const Playlist>);
~Playlist ();
void as_xml (xmlpp::Node *);
#define DCPOMATIC_RATIO_H
#include <vector>
+#include <boost/utility.hpp>
#include <libdcp/util.h>
-class Ratio
+class Ratio : public boost::noncopyable
{
public:
Ratio (float ratio, std::string id, std::string n, std::string d)
*/
#include <boost/shared_ptr.hpp>
+#include <boost/utility.hpp>
extern "C" {
#include <libswresample/swresample.h>
}
class AudioBuffers;
-class Resampler
+class Resampler : public boost::noncopyable
{
public:
Resampler (int, int, int);
#include <string>
#include <vector>
+#include <boost/utility.hpp>
/** @class Scaler
* @brief Class to describe one of FFmpeg's software scalers
*/
-class Scaler
+class Scaler : public boost::noncopyable
{
public:
Scaler (int f, std::string i, std::string n);
{}
ServerDescription (boost::shared_ptr<const cxml::Node>);
+
+ /* Default copy constructor is fine */
/** @return server's host name or IP address in string form */
std::string host_name () const {
int _threads;
};
-class Server
+class Server : public boost::noncopyable
{
public:
Server (boost::shared_ptr<Log> log);
return (ext == ".wav" || ext == ".aif" || ext == ".aiff");
}
-shared_ptr<Content>
-SndfileContent::clone () const
-{
- return shared_ptr<Content> (new SndfileContent (*this));
-}
-
void
SndfileContent::examine (shared_ptr<Job> job)
{
std::string summary () const;
std::string information () const;
void as_xml (xmlpp::Node *) const;
- boost::shared_ptr<Content> clone () const;
Time length () const;
/* AudioContent */
#include <string>
#include <vector>
+#include <boost/utility.hpp>
/** @class SoundProcessor
* @brief Class to describe a sound processor.
*/
-class SoundProcessor
+class SoundProcessor : public boost::noncopyable
{
public:
SoundProcessor (std::string i, std::string n);
* A decoder is selected according to the content type, and the encoder can be specified
* as a parameter to the constructor.
*/
-class Transcoder
+class Transcoder : public boost::noncopyable
{
public:
Transcoder (
/** A class to allow signals to be emitted from non-UI threads and handled
* by a UI thread.
*/
-class UISignaller
+class UISignaller : public boost::noncopyable
{
public:
/** Create a UISignaller. Must be called from the UI thread */
}
}
-VideoContent::VideoContent (VideoContent const & o)
- : Content (o)
- , _video_length (o._video_length)
- , _video_size (o._video_size)
- , _video_frame_rate (o._video_frame_rate)
- , _ratio (o._ratio)
-{
-
-}
-
void
VideoContent::as_xml (xmlpp::Node* node) const
{
VideoContent (boost::shared_ptr<const Film>, Time, VideoContent::Frame);
VideoContent (boost::shared_ptr<const Film>, boost::filesystem::path);
VideoContent (boost::shared_ptr<const Film>, boost::shared_ptr<const cxml::Node>);
- VideoContent (VideoContent const &);
void as_xml (xmlpp::Node *) const;
virtual std::string information () const;
bool operator< (QueueItem const & a, QueueItem const & b);
bool operator== (QueueItem const & a, QueueItem const & b);
-class Writer : public ExceptionStore
+class Writer : public ExceptionStore, public boost::noncopyable
{
public:
Writer (boost::shared_ptr<const Film>, boost::shared_ptr<Job>);