#include "audio_content.h"
#include "image_content.h"
#include "atmos_mxf_content.h"
-#include "text_subtitle_content.h"
+#include "string_text_file_content.h"
#include "dcp_content.h"
#include "dcp_subtitle_content.h"
#include "util.h"
#include "video_mxf_content.h"
#include "film.h"
#include "log_entry.h"
+#include "dcpomatic_log.h"
#include "log.h"
#include "compose.hpp"
#include <libcxml/cxml.h>
#include <dcp/smpte_subtitle_asset.h>
#include <boost/algorithm/string.hpp>
+#include "i18n.h"
+
using std::string;
using std::list;
using boost::shared_ptr;
using boost::optional;
-#define LOG_GENERAL(...) film->log()->log (String::compose (__VA_ARGS__), LogEntry::TYPE_GENERAL);
-
/** Create a Content object from an XML node.
- * @param film Film that the content will be in.
* @param node XML description.
* @param version XML state version.
* @param notes A list to which is added descriptions of any non-critial warnings / messages.
* @return Content object, or 0 if no content was recognised in the XML.
*/
shared_ptr<Content>
-content_factory (shared_ptr<const Film> film, cxml::NodePtr node, int version, list<string>& notes)
+content_factory (cxml::ConstNodePtr node, int version, list<string>& notes)
{
string const type = node->string_child ("Type");
/* SndfileContent is now handled by the FFmpeg code rather than by
separate libsndfile-based code.
*/
- content.reset (new FFmpegContent (film, node, version, notes));
+ content.reset (new FFmpegContent (node, version, notes));
} else if (type == "Image") {
- content.reset (new ImageContent (film, node, version));
+ content.reset (new ImageContent (node, version));
} else if (type == "Sndfile") {
/* SndfileContent is now handled by the FFmpeg code rather than by
separate libsndfile-based code.
*/
- content.reset (new FFmpegContent (film, node, version, notes));
+ content.reset (new FFmpegContent (node, version, notes));
content->audio->set_stream (
AudioStreamPtr (
);
} else if (type == "SubRip" || type == "TextSubtitle") {
- content.reset (new TextSubtitleContent (film, node, version));
+ content.reset (new StringTextFileContent (node, version));
} else if (type == "DCP") {
- content.reset (new DCPContent (film, node, version));
+ content.reset (new DCPContent (node, version));
} else if (type == "DCPSubtitle") {
- content.reset (new DCPSubtitleContent (film, node, version));
+ content.reset (new DCPSubtitleContent (node, version));
} else if (type == "VideoMXF") {
- content.reset (new VideoMXFContent (film, node, version));
+ content.reset (new VideoMXFContent (node, version));
} else if (type == "AtmosMXF") {
- content.reset (new AtmosMXFContent (film, node, version));
+ content.reset (new AtmosMXFContent (node, version));
}
return content;
}
/** Create some Content objects from a file or directory.
- * @param film Film that the content will be in.
* @param path File or directory.
* @return Content objects.
*/
list<shared_ptr<Content> >
-content_factory (shared_ptr<const Film> film, boost::filesystem::path path)
+content_factory (boost::filesystem::path path)
{
list<shared_ptr<Content> > content;
}
if (image_files > 0 && sound_files == 0) {
- content.push_back (shared_ptr<Content> (new ImageContent (film, path)));
+ content.push_back (shared_ptr<Content> (new ImageContent(path)));
} else if (image_files == 0 && sound_files > 0) {
for (boost::filesystem::directory_iterator i(path); i != boost::filesystem::directory_iterator(); ++i) {
- content.push_back (shared_ptr<FFmpegContent> (new FFmpegContent (film, i->path())));
+ content.push_back (shared_ptr<FFmpegContent> (new FFmpegContent(i->path())));
}
}
transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
if (valid_image_file (path)) {
- single.reset (new ImageContent (film, path));
- } else if (ext == ".srt" || ext == ".ssa" || ext == ".ass") {
- single.reset (new TextSubtitleContent (film, path));
+ single.reset (new ImageContent(path));
+ } else if (ext == ".srt" || ext == ".ssa" || ext == ".ass" || ext == ".stl") {
+ single.reset (new StringTextFileContent(path));
} else if (ext == ".xml") {
cxml::Document doc;
doc.read_file (path);
if (doc.root_name() == "DCinemaSecurityMessage") {
throw KDMAsContentError ();
}
- single.reset (new DCPSubtitleContent (film, path));
+ single.reset (new DCPSubtitleContent(path));
} else if (ext == ".mxf" && dcp::SMPTESubtitleAsset::valid_mxf (path)) {
- single.reset (new DCPSubtitleContent (film, path));
+ single.reset (new DCPSubtitleContent(path));
} else if (ext == ".mxf" && VideoMXFContent::valid_mxf (path)) {
- single.reset (new VideoMXFContent (film, path));
+ single.reset (new VideoMXFContent(path));
} else if (ext == ".mxf" && AtmosMXFContent::valid_mxf (path)) {
- single.reset (new AtmosMXFContent (film, path));
+ single.reset (new AtmosMXFContent(path));
}
if (!single) {
- single.reset (new FFmpegContent (film, path));
+ single.reset (new FFmpegContent(path));
}
content.push_back (single);