#include <string>
-/* MinGW seems to define this, but we want to use it */
+/* windows.h defines this but we want to use it */
#undef ERROR
*/
struct Size
{
- Size ()
- : width (0)
- , height (0)
- {}
+ Size() = default;
Size (int w, int h)
: width (w)
return float (width) / height;
}
- int width;
- int height;
+ int width = 0;
+ int height = 0;
};
enum class MCASoundField
{
FIVE_POINT_ONE,
- SEVEN_POINT_ONE
+ SEVEN_POINT_ONE,
+ OTHER
};
extern ASDCP::UL channel_to_mca_universal_label (Channel c, MCASoundField field, ASDCP::Dictionary const* dict);
-enum class ContentKind
-{
- FEATURE,
- SHORT,
- TRAILER,
- TEST,
- TRANSITIONAL,
- RATING,
- TEASER,
- POLICY,
- PUBLIC_SERVICE_ANNOUNCEMENT,
- ADVERTISEMENT,
- EPISODE,
- PROMO
-};
-
-
-extern std::string content_kind_to_string (ContentKind kind);
-extern ContentKind content_kind_from_string (std::string kind);
-
-
enum class Effect
{
NONE,
extern Effect string_to_effect (std::string s);
-enum class HAlign
-{
- LEFT, ///< horizontal position is distance from left of screen to left of subtitle
- CENTER, ///< horizontal position is distance from centre of screen to centre of subtitle
- RIGHT, ///< horizontal position is distance from right of screen to right of subtitle
-};
-
-
-extern std::string halign_to_string (HAlign a);
-extern HAlign string_to_halign (std::string s);
-
-
-enum class VAlign
-{
- TOP, ///< vertical position is distance from top of screen to top of subtitle
- CENTER, ///< vertical position is distance from centre of screen to centre of subtitle
- BOTTOM ///< vertical position is distance from bottom of screen to bottom of subtitle
-};
-
-
-extern std::string valign_to_string (VAlign a);
-extern VAlign string_to_valign (std::string s);
-
-
/** Direction for subtitle test */
enum class Direction
{
{
public:
/** Construct a fraction of 0/0 */
- Fraction () {}
+ Fraction() = default;
+
explicit Fraction (std::string s);
/** Construct a fraction with a specified numerator and denominator.
* @param n Numerator.
extern bool operator!= (Fraction const & a, Fraction const & b);
-/** @struct EqualityOptions
- * @brief A class to describe what "equality" means for a particular test.
- *
- * When comparing things, we want to be able to ignore some differences;
- * this class expresses those differences.
- *
- * It also contains some settings for how the comparison should be done.
- */
-struct EqualityOptions
-{
- /** Construct an EqualityOptions where nothing at all can differ */
- EqualityOptions () {}
-
- /** The maximum allowable mean difference in pixel value between two images */
- double max_mean_pixel_error = 0;
- /** The maximum standard deviation of the differences in pixel value between two images */
- double max_std_dev_pixel_error = 0;
- /** The maximum difference in audio sample value between two soundtracks */
- int max_audio_sample_error = 0;
- /** true if the <AnnotationText> nodes of CPLs are allowed to differ */
- bool cpl_annotation_texts_can_differ = false;
- /** true if the <AnnotationText> nodes of Reels are allowed to differ */
- bool reel_annotation_texts_can_differ = false;
- /** true if <Hash>es in Reels can differ */
- bool reel_hashes_can_differ = false;
- /** true if IssueDate nodes can differ */
- bool issue_dates_can_differ = false;
- bool load_font_nodes_can_differ = false;
- bool keep_going = false;
- /** true to save the first pair of differeng image subtitles to the current working directory */
- bool export_differing_subtitles = false;
-};
-
-
enum class NoteType {
PROGRESS,
ERROR,
MULTIPLE_MODIFIED_TRANSITIONAL_1,
DCI_ANY,
DCI_SPECIFIC,
- /** For testing: adds no AuthorizedDeviceInfo tag */
- MODIFIED_TRANSITIONAL_TEST
};
+std::string formulation_to_string (dcp::Formulation formulation);
+dcp::Formulation string_to_formulation (std::string forumulation);
+
+
/** @class Colour
* @brief An RGB colour
*/
{
public:
/** Construct a Colour, initialising it to black */
- Colour ();
+ Colour() = default;
/** Construct a Colour from R, G and B. The values run between
* 0 and 255.
constexpr float ALIGN_EPSILON = 1e-3;
+/** Maximum absolute difference between dcp::SubtitleString space_before values that
+ * are considered equal.
+ */
+constexpr float SPACE_BEFORE_EPSILON = 1e-3;
+
+
enum class Marker {
FFOC, ///< first frame of composition
LFOC, ///< last frame of composition
Marker marker_from_string (std::string);
-class Rating
-{
-public:
- Rating (std::string agency_, std::string label_)
- : agency (agency_)
- , label (label_)
- {}
-
- explicit Rating (cxml::ConstNodePtr node);
-
- void as_xml (xmlpp::Element* parent) const;
-
- /** URI of the agency issuing the rating */
- std::string agency;
- /** Rating (e.g. PG, PG-13, 12A etc) */
- std::string label;
-};
-
-
-extern bool operator== (Rating const & a, Rating const & b);
-
-
enum class Status
{
FINAL, ///< final version
class MainSoundConfiguration
{
public:
- MainSoundConfiguration (std::string);
+ explicit MainSoundConfiguration(std::string);
MainSoundConfiguration (MCASoundField field_, int channels);
MCASoundField field () const {