/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2014 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
*/
+/** @file src/content.h
+ * @brief Content class.
+ */
+
#ifndef LIBDCP_CONTENT_H
#define LIBDCP_CONTENT_H
-#include <string>
-#include <list>
-#include <boost/filesystem.hpp>
-#include <boost/function.hpp>
-#include <libxml++/libxml++.h>
#include "types.h"
#include "asset.h"
+#include <libxml++/libxml++.h>
+#include <boost/filesystem.hpp>
+#include <boost/function.hpp>
+#include <string>
+#include <list>
namespace ASDCP {
- class WriterInfo;
+ struct WriterInfo;
}
namespace xmlpp {
class Content : public Asset
{
public:
- Content (boost::filesystem::path file);
- Content (int edit_rate);
-
- virtual ~Content () {}
-
- /** Write details of the asset to a PKL AssetList node.
- * @param p Parent node.
- */
- void write_to_pkl (xmlpp::Node *) const;
-
- /** Write details of the asset to a ASSETMAP stream.
- * @param s Stream.
+ Content () {}
+
+ /** Construct a Content object by reading a file.
+ * @param file File to read.
*/
- void write_to_assetmap (xmlpp::Node *) const;
-
- boost::filesystem::path file () const {
- return _file;
- }
-
- void set_file (boost::filesystem::path file) {
- _file = file;
- }
-
- int edit_rate () const {
- return _edit_rate;
- }
-
- void set_edit_rate (int r) {
- _edit_rate = r;
- }
-
- void set_entry_point (int64_t p) {
- _entry_point = p;
- }
-
- int64_t intrinsic_duration () const {
- return _intrinsic_duration;
- }
-
- void set_intrinsic_duration (int64_t d) {
- _intrinsic_duration = d;
- }
-
- int64_t duration () const {
- return _duration;
- }
-
- void set_duration (int64_t d) {
- _duration = d;
- }
-
- virtual bool equals (boost::shared_ptr<const Content> other, EqualityOptions opt, boost::function<void (NoteType, std::string)>) const;
+ Content (boost::filesystem::path file);
protected:
- boost::filesystem::path _file;
- /** The edit rate; this is normally equal to the number of video frames per second */
- int _edit_rate;
- int64_t _entry_point;
- int64_t _intrinsic_duration;
- int64_t _duration;
+ virtual std::string asdcp_kind () const = 0;
};
}