diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/verify.cc | 76 | ||||
| -rw-r--r-- | src/verify_internal.h | 79 |
2 files changed, 80 insertions, 75 deletions
diff --git a/src/verify.cc b/src/verify.cc index 42149197..8ad5f8a2 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -294,80 +294,6 @@ parse (XercesDOMParser& parser, string xml) } -class Context -{ -public: - Context( - std::vector<VerificationNote>& notes_, - boost::filesystem::path xsd_dtd_directory_, - function<void (string, optional<boost::filesystem::path>)> stage_, - function<void (float)> progress_, - VerificationOptions options_ - ) - : notes(notes_) - , xsd_dtd_directory(xsd_dtd_directory_) - , stage(stage_) - , progress(progress_) - , options(options_) - { - - } - - Context(Context const&) = delete; - Context& operator=(Context const&) = delete; - - template<typename... Args> - void ok(dcp::VerificationNote::Code code, Args... args) - { - add_note({dcp::VerificationNote::Type::OK, code, std::forward<Args>(args)...}); - } - - template<typename... Args> - void warning(dcp::VerificationNote::Code code, Args... args) - { - add_note({dcp::VerificationNote::Type::WARNING, code, std::forward<Args>(args)...}); - } - - template<typename... Args> - void bv21_error(dcp::VerificationNote::Code code, Args... args) - { - add_note({dcp::VerificationNote::Type::BV21_ERROR, code, std::forward<Args>(args)...}); - } - - template<typename... Args> - void error(dcp::VerificationNote::Code code, Args... args) - { - add_note({dcp::VerificationNote::Type::ERROR, code, std::forward<Args>(args)...}); - } - - void add_note(dcp::VerificationNote note) - { - if (cpl) { - note.set_cpl_id(cpl->id()); - } - notes.push_back(std::move(note)); - } - - void add_note_if_not_existing(dcp::VerificationNote note) - { - if (find(notes.begin(), notes.end(), note) == notes.end()) { - add_note(note); - } - } - - std::vector<VerificationNote>& notes; - std::shared_ptr<const DCP> dcp; - std::shared_ptr<const CPL> cpl; - boost::filesystem::path xsd_dtd_directory; - function<void (string, optional<boost::filesystem::path>)> stage; - function<void (float)> progress; - VerificationOptions options; - - boost::optional<string> subtitle_language; - boost::optional<int> audio_channels; -}; - - template <class T> void validate_xml(Context& context, T xml) @@ -1347,7 +1273,7 @@ verify_text_details(Context& context, vector<shared_ptr<Reel>> reels) void -verify_extension_metadata(Context& context) +dcp::verify_extension_metadata(Context& context) { DCP_ASSERT(context.cpl->file()); cxml::Document doc ("CompositionPlaylist"); diff --git a/src/verify_internal.h b/src/verify_internal.h index 3dfc4fb5..97c0e90f 100644 --- a/src/verify_internal.h +++ b/src/verify_internal.h @@ -44,7 +44,12 @@ #define LIBDCP_VERIFY_INTERNAL_H +#include "cpl.h" +#include "verify.h" +#include <boost/filesystem.hpp> +#include <boost/optional.hpp> #include <memory> +#include <vector> namespace dcp { @@ -67,6 +72,80 @@ extern void verify_text_lines_and_characters( ); +class Context +{ +public: + Context( + std::vector<VerificationNote>& notes_, + boost::filesystem::path xsd_dtd_directory_, + std::function<void (std::string, boost::optional<boost::filesystem::path>)> stage_, + std::function<void (float)> progress_, + VerificationOptions options_ + ) + : notes(notes_) + , xsd_dtd_directory(xsd_dtd_directory_) + , stage(stage_) + , progress(progress_) + , options(options_) + {} + + Context(Context const&) = delete; + Context& operator=(Context const&) = delete; + + template<typename... Args> + void ok(dcp::VerificationNote::Code code, Args... args) + { + add_note({dcp::VerificationNote::Type::OK, code, std::forward<Args>(args)...}); + } + + template<typename... Args> + void warning(dcp::VerificationNote::Code code, Args... args) + { + add_note({dcp::VerificationNote::Type::WARNING, code, std::forward<Args>(args)...}); + } + + template<typename... Args> + void bv21_error(dcp::VerificationNote::Code code, Args... args) + { + add_note({dcp::VerificationNote::Type::BV21_ERROR, code, std::forward<Args>(args)...}); + } + + template<typename... Args> + void error(dcp::VerificationNote::Code code, Args... args) + { + add_note({dcp::VerificationNote::Type::ERROR, code, std::forward<Args>(args)...}); + } + + void add_note(dcp::VerificationNote note) + { + if (cpl) { + note.set_cpl_id(cpl->id()); + } + notes.push_back(std::move(note)); + } + + void add_note_if_not_existing(dcp::VerificationNote note) + { + if (find(notes.begin(), notes.end(), note) == notes.end()) { + add_note(note); + } + } + + std::vector<VerificationNote>& notes; + std::shared_ptr<const DCP> dcp; + std::shared_ptr<const CPL> cpl; + boost::filesystem::path xsd_dtd_directory; + std::function<void (std::string, boost::optional<boost::filesystem::path>)> stage; + std::function<void (float)> progress; + VerificationOptions options; + + boost::optional<std::string> subtitle_language; + boost::optional<int> audio_channels; +}; + + +extern void verify_extension_metadata(dcp::Context& context); + } |
