Add exception missing from previous commit.
[libsub.git] / src / subtitle.cc
1 /*
2     Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
3
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18 */
19
20 #include "subtitle.h"
21
22 using namespace sub;
23
24 Subtitle::Subtitle (RawSubtitle s)
25         : from (s.from)
26         , to (s.to)
27         , fade_up (s.fade_up)
28         , fade_down (s.fade_down)
29 {
30         lines.push_back (Line (s));
31 }
32
33 bool
34 Subtitle::same_metadata (RawSubtitle s) const
35 {
36         return from == s.from && to == s.to && fade_up == s.fade_up && fade_down == s.fade_down;
37 }
38
39 Line::Line (RawSubtitle s)
40         : horizontal_position (s.horizontal_position)
41         , vertical_position (s.vertical_position)
42 {
43         blocks.push_back (Block (s));
44 }
45
46 bool
47 Line::same_metadata (RawSubtitle s) const
48 {
49         return vertical_position == s.vertical_position;
50 }
51
52 Block::Block (RawSubtitle s)
53         : text (s.text)
54         , font (s.font)
55         , font_size (s.font_size)
56         , effect (s.effect)
57         , effect_colour (s.effect_colour)
58         , colour (s.colour)
59         , bold (s.bold)
60         , italic (s.italic)
61         , underline (s.underline)
62 {
63
64 }
65
66 bool
67 sub::operator== (Subtitle const & a, Subtitle const & b)
68 {
69         return a.from == b.from && a.to == b.to && a.fade_up == b.fade_up && a.fade_down == b.fade_down && a.lines == b.lines;
70 }
71
72 bool
73 sub::operator== (Line const & a, Line const & b)
74 {
75         return a.horizontal_position == b.horizontal_position && a.vertical_position == b.vertical_position && a.blocks == b.blocks;
76 }
77
78 bool
79 sub::operator== (Block const & a, Block const & b)
80 {
81         return a.text == b.text && a.font == b.font && a.font_size == b.font_size && a.effect == b.effect && a.effect_colour == b.effect_colour
82                 && a.colour == b.colour && a.bold == b.bold && a.italic == b.italic && a.underline == b.underline;
83 }