#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 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
-{
- /** vertical position is distance:
- * from top of screen to top of subtitle (for SMPTE 428-7:{2007,2010} or
- * from top of screen to subtitle baseline (for Interop or SMPTE 428-7:2014)
- */
- TOP,
- /** vertical position is distance:
- * from centre of screen to centre of subtitle (for SMPTE 428-7:{2007,2010}) or
- * from centre of screen to subtitle baseline (for Interop or SMPTE 428-7:2014)
- */
- CENTER,
- /** vertical position is distance:
- * from bottom of screen to bottom of subtitle (for SMPTE 428-7:{2007,2010}) or
- * from bottom of screen to subtitle baseline (for Interop or SMPTE 428-7:2014)
- */
- BOTTOM
-};
-
-
-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;
- /** The maximum allowable absolute difference between the vertical position of subtitles */
- float max_subtitle_vertical_position_error = 0;
-};
-
-
enum class NoteType {
PROGRESS,
ERROR,
{
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.
class MainSoundConfiguration
{
public:
- MainSoundConfiguration (std::string);
+ explicit MainSoundConfiguration(std::string);
MainSoundConfiguration (MCASoundField field_, int channels);
MCASoundField field () const {