diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-01-13 13:04:04 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-01-13 13:04:04 +0100 |
| commit | cafee6f81257fa81ee302b5d3ffa82213a0a6a44 (patch) | |
| tree | 87797f282d0bc1ca62aed44cbf98528ebeb4be86 | |
| parent | 18f00cbcdab8eaf3db1cb5a7fba3ed78bea565fa (diff) | |
Replace list with vector in most of the API.
| -rw-r--r-- | src/collect.h | 16 | ||||
| -rw-r--r-- | src/dcp_reader.cc | 1 | ||||
| -rw-r--r-- | src/exceptions.cc | 4 | ||||
| -rw-r--r-- | src/exceptions.h | 5 | ||||
| -rw-r--r-- | src/raw_subtitle.h | 2 | ||||
| -rw-r--r-- | src/reader.h | 8 | ||||
| -rw-r--r-- | src/ssa_reader.cc | 5 | ||||
| -rw-r--r-- | src/ssa_reader.h | 2 | ||||
| -rw-r--r-- | src/stl_binary_writer.cc | 10 | ||||
| -rw-r--r-- | src/stl_binary_writer.h | 2 | ||||
| -rw-r--r-- | src/stl_text_reader.cc | 1 | ||||
| -rw-r--r-- | src/subrip_reader.cc | 3 | ||||
| -rw-r--r-- | src/subrip_reader.h | 1 | ||||
| -rw-r--r-- | src/subtitle.h | 6 | ||||
| -rw-r--r-- | src/util.cc | 45 | ||||
| -rw-r--r-- | test/dcp_reader_test.cc | 70 | ||||
| -rw-r--r-- | test/dcp_to_stl_binary_test.cc | 20 | ||||
| -rw-r--r-- | test/ssa_reader_test.cc | 66 | ||||
| -rw-r--r-- | test/stl_binary_reader_test.cc | 1 | ||||
| -rw-r--r-- | test/stl_binary_writer_test.cc | 6 | ||||
| -rw-r--r-- | test/stl_text_reader_test.cc | 11 | ||||
| -rw-r--r-- | test/subrip_reader_test.cc | 29 | ||||
| -rw-r--r-- | tools/dumpsubs.cc | 1 |
23 files changed, 154 insertions, 161 deletions
diff --git a/src/collect.h b/src/collect.h index 34f81aa..5fcf694 100644 --- a/src/collect.h +++ b/src/collect.h @@ -30,29 +30,29 @@ namespace sub { */ template <class T> T -collect (std::list<RawSubtitle> raw) +collect (std::vector<RawSubtitle> raw) { - raw.sort (); + std::stable_sort (raw.begin(), raw.end()); T out; boost::optional<Subtitle> current; - for (std::list<RawSubtitle>::const_iterator i = raw.begin (); i != raw.end(); ++i) { - if (current && current->same_metadata (*i)) { + for (auto const& i: raw) { + if (current && current->same_metadata(i)) { /* This RawSubtitle can be added to current... */ - if (!current->lines.empty() && current->lines.back().same_metadata (*i)) { + if (!current->lines.empty() && current->lines.back().same_metadata(i)) { /* ... and indeed to its last line */ - current->lines.back().blocks.push_back (Block (*i)); + current->lines.back().blocks.push_back(Block(i)); } else { /* ... as a new line */ - current->lines.push_back (Line (*i)); + current->lines.push_back(Line(i)); } } else { /* We must start a new Subtitle */ if (current) { out.push_back (current.get ()); } - current = Subtitle (*i); + current = Subtitle (i); } } diff --git a/src/dcp_reader.cc b/src/dcp_reader.cc index 82808b3..5f57746 100644 --- a/src/dcp_reader.cc +++ b/src/dcp_reader.cc @@ -25,7 +25,6 @@ #include <dcp/smpte_subtitle_asset.h> #include <boost/filesystem.hpp> -using std::list; using std::cout; using std::string; using std::exception; diff --git a/src/exceptions.cc b/src/exceptions.cc index d59d32a..bc131b8 100644 --- a/src/exceptions.cc +++ b/src/exceptions.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net> + Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,8 +21,8 @@ #include "exceptions.h" #include <boost/foreach.hpp> -using std::string; using std::list; +using std::string; using namespace sub; ProgrammingError::ProgrammingError (string file, int line) diff --git a/src/exceptions.h b/src/exceptions.h index 2bb7018..a032252 100644 --- a/src/exceptions.h +++ b/src/exceptions.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net> + Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,9 +20,10 @@ #ifndef LIBSUB_EXCEPTIONS_H #define LIBSUB_EXCEPTIONS_H +#include <list> #include <stdexcept> #include <string> -#include <list> +#include <vector> namespace sub { diff --git a/src/raw_subtitle.h b/src/raw_subtitle.h index 965ca93..a3ee5ca 100644 --- a/src/raw_subtitle.h +++ b/src/raw_subtitle.h @@ -29,7 +29,7 @@ #include "horizontal_position.h" #include <boost/optional.hpp> #include <string> -#include <list> +#include <vector> namespace sub { diff --git a/src/reader.h b/src/reader.h index 08474f6..aab7384 100644 --- a/src/reader.h +++ b/src/reader.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington <cth@carlh.net> + Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,9 +21,9 @@ #define LIBSUB_READER_H #include "raw_subtitle.h" -#include <list> #include <map> #include <string> +#include <vector> struct subrip_reader_convert_line_test; @@ -37,7 +37,7 @@ class Reader public: virtual ~Reader () {} - std::list<RawSubtitle> subtitles () const { + std::vector<RawSubtitle> subtitles () const { return _subs; } @@ -50,7 +50,7 @@ protected: void warn (std::string) const; - std::list<RawSubtitle> _subs; + std::vector<RawSubtitle> _subs; }; } diff --git a/src/ssa_reader.cc b/src/ssa_reader.cc index c507ddb..072fff8 100644 --- a/src/ssa_reader.cc +++ b/src/ssa_reader.cc @@ -33,7 +33,6 @@ using std::string; using std::vector; using std::map; using std::cout; -using std::list; using boost::optional; using boost::function; using namespace boost::algorithm; @@ -265,7 +264,7 @@ SSAReader::parse_style (RawSubtitle& sub, string style, int play_res_x, int play * @param line SSA line string (i.e. just the subtitle, possibly with embedded stuff) * @return List of RawSubtitles to represent line with vertical reference TOP_OF_SUBTITLE. */ -list<RawSubtitle> +vector<RawSubtitle> SSAReader::parse_line (RawSubtitle base, string line, int play_res_x, int play_res_y) { enum { @@ -274,7 +273,7 @@ SSAReader::parse_line (RawSubtitle base, string line, int play_res_x, int play_r BACKSLASH } state = TEXT; - list<RawSubtitle> subs; + vector<RawSubtitle> subs; RawSubtitle current = base; string style; diff --git a/src/ssa_reader.h b/src/ssa_reader.h index aba06cc..e9bb061 100644 --- a/src/ssa_reader.h +++ b/src/ssa_reader.h @@ -41,7 +41,7 @@ public: SSAReader (FILE* f); SSAReader (std::string subs); - static std::list<RawSubtitle> parse_line (RawSubtitle base, std::string line, int play_res_x, int play_res_y); + static std::vector<RawSubtitle> parse_line (RawSubtitle base, std::string line, int play_res_x, int play_res_y); static void parse_style (RawSubtitle& sub, std::string style, int play_res_x, int play_res_y); private: diff --git a/src/stl_binary_writer.cc b/src/stl_binary_writer.cc index adb9e11..4a16ce0 100644 --- a/src/stl_binary_writer.cc +++ b/src/stl_binary_writer.cc @@ -30,14 +30,12 @@ #include <boost/locale.hpp> #include <boost/algorithm/string.hpp> #include <boost/foreach.hpp> -#include <list> #include <cmath> #include <fstream> -#include <vector> #include <iomanip> #include <set> +#include <vector> -using std::list; using std::set; using std::ofstream; using std::string; @@ -149,7 +147,7 @@ vertical_position (sub::Line const & line) } vector<char*> -make_tti_blocks (list<Subtitle> const& subtitles, STLBinaryTables const& tables, float frames_per_second) +make_tti_blocks (vector<Subtitle> const& subtitles, STLBinaryTables const& tables, float frames_per_second) { static int const tti_size = 128; vector<char*> tti; @@ -287,9 +285,9 @@ make_tti_blocks (list<Subtitle> const& subtitles, STLBinaryTables const& tables, /** @param language ISO 3-character country code for the language of the subtitles */ - void +void sub::write_stl_binary ( - list<Subtitle> subtitles, + vector<Subtitle> subtitles, float frames_per_second, Language language, string original_programme_title, diff --git a/src/stl_binary_writer.h b/src/stl_binary_writer.h index 4986afb..38a102d 100644 --- a/src/stl_binary_writer.h +++ b/src/stl_binary_writer.h @@ -33,7 +33,7 @@ namespace sub { class Subtitle; extern void write_stl_binary ( - std::list<Subtitle> subtitles, + std::vector<Subtitle> subtitles, float frames_per_second, Language language, std::string original_programme_title, diff --git a/src/stl_text_reader.cc b/src/stl_text_reader.cc index c7b1fcf..f08a438 100644 --- a/src/stl_text_reader.cc +++ b/src/stl_text_reader.cc @@ -24,7 +24,6 @@ #include <vector> #include <iostream> -using std::list; using std::ostream; using std::istream; using std::string; diff --git a/src/subrip_reader.cc b/src/subrip_reader.cc index 89a5599..ab10f68 100644 --- a/src/subrip_reader.cc +++ b/src/subrip_reader.cc @@ -37,7 +37,6 @@ using std::string; using std::vector; -using std::list; using std::cout; using std::hex; using boost::lexical_cast; @@ -198,7 +197,7 @@ SubripReader::convert_line (string t, RawSubtitle& p) string tag; - list<Colour> colours; + vector<Colour> colours; colours.push_back (Colour (1, 1, 1)); /* XXX: missing <font> support */ diff --git a/src/subrip_reader.h b/src/subrip_reader.h index f45e7c8..8d3fd4c 100644 --- a/src/subrip_reader.h +++ b/src/subrip_reader.h @@ -26,6 +26,7 @@ #include "reader.h" #include <boost/function.hpp> +#include <list> struct subrip_reader_convert_line_test; struct subrip_reader_convert_time_test; diff --git a/src/subtitle.h b/src/subtitle.h index 2b6867d..fba0cf4 100644 --- a/src/subtitle.h +++ b/src/subtitle.h @@ -29,7 +29,7 @@ #include "raw_subtitle.h" #include <boost/optional.hpp> #include <string> -#include <list> +#include <vector> namespace sub { @@ -90,7 +90,7 @@ public: /** vertical position of the baseline of the text */ VerticalPosition vertical_position; - std::list<Block> blocks; + std::vector<Block> blocks; bool same_metadata (RawSubtitle) const; }; @@ -120,7 +120,7 @@ public: boost::optional<Time> fade_up; boost::optional<Time> fade_down; - std::list<Line> lines; + std::vector<Line> lines; bool same_metadata (RawSubtitle) const; }; diff --git a/src/util.cc b/src/util.cc index c347375..eb68752 100644 --- a/src/util.cc +++ b/src/util.cc @@ -32,8 +32,9 @@ using std::getline; using std::ostream; using std::map; using std::list; -using boost::optional; using std::shared_ptr; +using std::vector; +using boost::optional; using namespace sub; /** @param s A string. @@ -100,27 +101,27 @@ sub::remove_unicode_bom (optional<string>& line) void sub::dump (shared_ptr<const Reader> reader, ostream& os) { - map<string, string> metadata = reader->metadata (); - for (map<string, string>::const_iterator i = metadata.begin(); i != metadata.end(); ++i) { - os << i->first << ": " << i->second << "\n"; + auto metadata = reader->metadata (); + for (auto const& i: metadata) { + os << i.first << ": " << i.second << "\n"; } - list<sub::Subtitle> subs = collect<list<sub::Subtitle> > (reader->subtitles ()); + auto subs = collect<vector<sub::Subtitle>> (reader->subtitles()); int n = 0; - for (list<sub::Subtitle>::const_iterator i = subs.begin(); i != subs.end(); ++i) { - os << "Subtitle " << n << " at " << i->from << " -> " << i->to << "\n"; - for (list<sub::Line>::const_iterator j = i->lines.begin(); j != i->lines.end(); ++j) { + for (auto const& i: subs) { + os << "Subtitle " << n << " at " << i.from << " -> " << i.to << "\n"; + for (auto const& j: i.lines) { os << "\t"; - if (j->vertical_position.proportional) { - os << j->vertical_position.proportional.get() << " of screen"; - } else if (j->vertical_position.line && j->vertical_position.lines) { - os << j->vertical_position.line.get() << " lines of " << j->vertical_position.lines.get(); + if (j.vertical_position.proportional) { + os << j.vertical_position.proportional.get() << " of screen"; + } else if (j.vertical_position.line && j.vertical_position.lines) { + os << j.vertical_position.line.get() << " lines of " << j.vertical_position.lines.get(); } - if (j->vertical_position.reference) { + if (j.vertical_position.reference) { os << " from "; - switch (j->vertical_position.reference.get()) { + switch (j.vertical_position.reference.get()) { case TOP_OF_SCREEN: os << "top"; break; @@ -139,22 +140,22 @@ sub::dump (shared_ptr<const Reader> reader, ostream& os) os << "\t"; bool italic = false; bool underline = false; - for (list<sub::Block>::const_iterator k = j->blocks.begin(); k != j->blocks.end(); ++k) { - if (k->italic && !italic) { + for (auto const& k: j.blocks) { + if (k.italic && !italic) { os << "<i>"; - } else if (italic && !k->italic) { + } else if (italic && !k.italic) { os << "</i>"; } - if (k->underline && !underline) { + if (k.underline && !underline) { os << "<u>"; - } else if (underline && !k->underline) { + } else if (underline && !k.underline) { os << "</u>"; } - italic = k->italic; - underline = k->underline; + italic = k.italic; + underline = k.underline; - os << k->text; + os << k.text; } if (italic) { diff --git a/test/dcp_reader_test.cc b/test/dcp_reader_test.cc index e6a53e6..9105c28 100644 --- a/test/dcp_reader_test.cc +++ b/test/dcp_reader_test.cc @@ -22,24 +22,24 @@ #include <boost/test/unit_test.hpp> #include <boost/optional/optional_io.hpp> -using std::list; using std::shared_ptr; +using std::vector; /* Test reading of a DCP XML file */ BOOST_AUTO_TEST_CASE (dcp_reader_test1) { sub::DCPReader reader ("test/data/test1.xml"); - list<sub::Subtitle> subs = sub::collect<list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); - BOOST_REQUIRE (i != subs.end ()); + auto i = subs.begin(); + BOOST_REQUIRE (i != subs.end()); BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 5, 198 * 4)); BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 7, 115 * 4)); BOOST_CHECK_EQUAL (i->fade_up.get(), sub::Time::from_hms (0, 0, 0, 4)); BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); @@ -65,10 +65,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front (); BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -105,10 +105,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -131,10 +131,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 4)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFontId"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -154,9 +154,9 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test1) BOOST_AUTO_TEST_CASE (dcp_reader_test2) { sub::DCPReader reader ("test/data/test2.xml"); - list<sub::Subtitle> subs = sub::collect<list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles ()); - list<sub::Subtitle>::iterator i = subs.begin (); + auto i = subs.begin (); BOOST_REQUIRE (i != subs.end ()); BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 41, 62 * 4)); BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 43, 52 * 4)); @@ -164,10 +164,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin (); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front (); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -204,10 +204,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin (); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front (); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -244,10 +244,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -288,10 +288,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -328,10 +328,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -368,10 +368,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -408,10 +408,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -448,10 +448,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -488,10 +488,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -528,10 +528,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, false); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); @@ -568,10 +568,10 @@ BOOST_AUTO_TEST_CASE (dcp_reader_test2) BOOST_CHECK_EQUAL (i->fade_down.get(), sub::Time::from_hms (0, 0, 0, 0)); { - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.font.get(), "theFont"); BOOST_CHECK_EQUAL (b.italic, true); BOOST_CHECK (b.colour == sub::Colour (1, 1, 1)); diff --git a/test/dcp_to_stl_binary_test.cc b/test/dcp_to_stl_binary_test.cc index 3c6f185..450b730 100644 --- a/test/dcp_to_stl_binary_test.cc +++ b/test/dcp_to_stl_binary_test.cc @@ -25,7 +25,7 @@ #include <fstream> using std::ifstream; -using std::list; +using std::vector; BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test1) { @@ -35,7 +35,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test1) boost::filesystem::path p = private_test / "fd586c30-6d38-48f2-8241-27359acf184c_sub.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles ()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -62,7 +62,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test2) boost::filesystem::path p = private_test / "93e8a6bf-499e-4d36-9350-a9bfa2e6758a_sub.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles ()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -89,7 +89,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test3) boost::filesystem::path p = private_test / "P_FTR_Subs_DE-FR_24fps_R1.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles ()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -111,7 +111,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test3) BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test4) { sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader("test/data/test1.xml").subtitles ()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader("test/data/test1.xml").subtitles()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -133,7 +133,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test5) boost::filesystem::path p = private_test / "065d39ff-6723-4dbf-a94f-849cde82f5e1_sub.mxf"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles ()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 25, sub::LANGUAGE_FRENCH, "", "", @@ -160,7 +160,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test6) boost::filesystem::path p = private_test / "P_FTR_FullSubs_DE_24fps.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles ()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 24, sub::LANGUAGE_GERMAN, "", "", @@ -183,7 +183,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test7) { boost::filesystem::path p = "test/data/test3.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles ()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 24, sub::LANGUAGE_GERMAN, "", "", @@ -206,7 +206,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test8) { boost::filesystem::path p = private_test / "91a30f25-b415-4ffe-9623-bdae43a381d3_sub.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 24, sub::LANGUAGE_GERMAN, "", "", @@ -229,7 +229,7 @@ BOOST_AUTO_TEST_CASE (dcp_to_stl_binary_test9) { boost::filesystem::path p = private_test / "8b95f204-f2a6-4586-8e67-2dc671a78e72_sub.xml"; sub::write_stl_binary ( - sub::collect<list<sub::Subtitle> > (sub::DCPReader(p).subtitles()), + sub::collect<vector<sub::Subtitle>> (sub::DCPReader(p).subtitles()), 24, sub::LANGUAGE_GERMAN, "", "", diff --git a/test/ssa_reader_test.cc b/test/ssa_reader_test.cc index f8297b8..c29ff7c 100644 --- a/test/ssa_reader_test.cc +++ b/test/ssa_reader_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016-2019 Carl Hetherington <cth@carlh.net> + Copyright (C) 2016-2021 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,8 +29,8 @@ #include <cmath> #include <iostream> -using std::list; using std::fabs; +using std::vector; BOOST_AUTO_TEST_CASE (ssa_reader_test) { @@ -38,14 +38,14 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test) FILE* f = fopen (p.string().c_str(), "r"); sub::SSAReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); + auto i = subs.begin (); BOOST_REQUIRE (i != subs.end ()); BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 2, 40, 650)); BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 2, 41, 790)); - list<sub::Line>::iterator j = i->lines.begin(); + auto j = i->lines.begin(); BOOST_REQUIRE (j != i->lines.end ()); BOOST_REQUIRE_EQUAL (j->blocks.size(), 1); sub::Block b = j->blocks.front (); @@ -78,13 +78,13 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test) BOOST_AUTO_TEST_CASE (ssa_reader_line_test1) { sub::RawSubtitle base; - list<sub::RawSubtitle> r = sub::SSAReader::parse_line ( + auto r = sub::SSAReader::parse_line ( base, "This is a line with some {\\i1}italics{\\i0} and then\\nthere is a new line.", 1920, 1080 ); - list<sub::RawSubtitle>::const_iterator i = r.begin (); + auto i = r.begin(); BOOST_CHECK_EQUAL (i->text, "This is a line with some "); BOOST_CHECK_EQUAL (i->italic, false); ++i; @@ -108,13 +108,13 @@ BOOST_AUTO_TEST_CASE (ssa_reader_line_test1) BOOST_AUTO_TEST_CASE (ssa_reader_line_test2) { sub::RawSubtitle base; - list<sub::RawSubtitle> r = sub::SSAReader::parse_line ( + auto r = sub::SSAReader::parse_line ( base, "{\\i1}It's all just italics{\\i0}", 1920, 1080 ); - list<sub::RawSubtitle>::const_iterator i = r.begin (); + auto i = r.begin (); BOOST_CHECK_EQUAL (i->text, "It's all just italics"); BOOST_CHECK_EQUAL (i->italic, true); ++i; @@ -192,11 +192,11 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test3) FILE* f = fopen (p.string().c_str(), "r"); sub::SSAReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); - list<sub::Line>::iterator j; - list<sub::Block>::iterator k; + auto i = subs.begin(); + vector<sub::Line>::iterator j; + vector<sub::Block>::iterator k; /* Hello world */ SUB_START (sub::Time::from_hms (0, 0, 1, 230), sub::Time::from_hms (0, 0, 4, 550)); @@ -281,11 +281,11 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test4) FILE* f = fopen (p.string().c_str(), "r"); sub::SSAReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); - list<sub::Line>::iterator j; - list<sub::Block>::iterator k; + auto i = subs.begin(); + vector<sub::Line>::iterator j; + vector<sub::Block>::iterator k; BOOST_REQUIRE (i != subs.end ()); @@ -329,11 +329,11 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test5) FILE* f = fopen (p.string().c_str(), "r"); sub::SSAReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); - list<sub::Line>::iterator j; - list<sub::Block>::iterator k; + auto i = subs.begin (); + vector<sub::Line>::iterator j; + vector<sub::Block>::iterator k; BOOST_REQUIRE (i != subs.end ()); @@ -378,11 +378,11 @@ BOOST_AUTO_TEST_CASE (ssa_reader_test6) BOOST_REQUIRE (f); sub::SSAReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); - list<sub::Line>::iterator j; - list<sub::Block>::iterator k; + auto i = subs.begin (); + vector<sub::Line>::iterator j; + vector<sub::Block>::iterator k; BOOST_REQUIRE (i != subs.end ()); @@ -459,11 +459,11 @@ BOOST_AUTO_TEST_CASE (ssa_reader_pos) FILE* f = fopen (p.string().c_str(), "r"); sub::SSAReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); - list<sub::Line>::iterator j; - list<sub::Block>::iterator k; + auto i = subs.begin (); + vector<sub::Line>::iterator j; + vector<sub::Block>::iterator k; /* Hello world */ SUB_START (sub::Time::from_hms (0, 0, 1, 230), sub::Time::from_hms (0, 0, 4, 550)); @@ -478,13 +478,13 @@ BOOST_AUTO_TEST_CASE (ssa_reader_pos) BOOST_AUTO_TEST_CASE (ssa_reader_fs) { sub::RawSubtitle base; - list<sub::RawSubtitle> r = sub::SSAReader::parse_line ( + auto r = sub::SSAReader::parse_line ( base, "This is a line with some {\\fs64}font sizing.", 1920, 1080 ); - list<sub::RawSubtitle>::const_iterator i = r.begin (); + auto i = r.begin (); BOOST_CHECK_EQUAL (i->text, "This is a line with some "); ++i; BOOST_REQUIRE (i != r.end ()); @@ -500,13 +500,13 @@ BOOST_AUTO_TEST_CASE (ssa_reader_fs) BOOST_AUTO_TEST_CASE (ssa_reader_c) { sub::RawSubtitle base; - list<sub::RawSubtitle> r = sub::SSAReader::parse_line ( + auto r = sub::SSAReader::parse_line ( base, "{\\c&H00FFFF&}Dieser Untertitel ist gelb", 1920, 1080 ); - list<sub::RawSubtitle>::const_iterator i = r.begin (); + auto i = r.begin (); BOOST_CHECK_EQUAL (i->text, "Dieser Untertitel ist gelb"); BOOST_CHECK (i->colour == sub::Colour::from_rgb_hex("ffff00")); ++i; diff --git a/test/stl_binary_reader_test.cc b/test/stl_binary_reader_test.cc index bad4bc4..fd01c9c 100644 --- a/test/stl_binary_reader_test.cc +++ b/test/stl_binary_reader_test.cc @@ -24,7 +24,6 @@ #include <boost/test/unit_test.hpp> #include <fstream> -using std::list; using std::ifstream; using std::ofstream; using std::shared_ptr; diff --git a/test/stl_binary_writer_test.cc b/test/stl_binary_writer_test.cc index f77cba5..94e3b09 100644 --- a/test/stl_binary_writer_test.cc +++ b/test/stl_binary_writer_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington <cth@carlh.net> + Copyright (C) 2014-2021 Carl Hetherington <cth@carlh.net> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,12 +21,12 @@ #include "subtitle.h" #include <boost/test/unit_test.hpp> -using std::list; +using std::vector; /** Test writing of a binary STL file */ BOOST_AUTO_TEST_CASE (stl_binary_writer_test) { - list<sub::Subtitle> subs; + vector<sub::Subtitle> subs; { sub::Subtitle s; diff --git a/test/stl_text_reader_test.cc b/test/stl_text_reader_test.cc index 162790f..f0ec969 100644 --- a/test/stl_text_reader_test.cc +++ b/test/stl_text_reader_test.cc @@ -23,7 +23,6 @@ #include <boost/test/unit_test.hpp> #include <fstream> -using std::list; using std::ifstream; using std::vector; @@ -32,9 +31,9 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) { ifstream file ("test/data/test_text.stl"); sub::STLTextReader reader (file); - list<sub::Subtitle> subs = sub::collect<list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); + auto i = subs.begin (); /* First subtitle */ @@ -43,10 +42,10 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK_EQUAL (i->from, sub::Time::from_hmsf (0, 0, 41, 9)); BOOST_CHECK_EQUAL (i->to, sub::Time::from_hmsf (0, 0, 42, 21)); - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin (); BOOST_CHECK (j != i->lines.end ()); BOOST_CHECK_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front (); BOOST_CHECK_EQUAL (b.text, " This is a subtitle "); BOOST_CHECK_EQUAL (b.font.get(), "Arial"); BOOST_CHECK_EQUAL (b.font_size.points().get(), 42); @@ -80,7 +79,7 @@ BOOST_AUTO_TEST_CASE (stl_text_reader_test) BOOST_CHECK_EQUAL (l.blocks.size(), 7); BOOST_CHECK_EQUAL (l.vertical_position.line.get(), 0); - list<sub::Block>::iterator k = l.blocks.begin (); + auto k = l.blocks.begin (); BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, " This is some "); diff --git a/test/subrip_reader_test.cc b/test/subrip_reader_test.cc index bb8f71c..818b6ad 100644 --- a/test/subrip_reader_test.cc +++ b/test/subrip_reader_test.cc @@ -28,7 +28,6 @@ #include <iostream> #include <cstdio> -using std::list; using std::cerr; using std::vector; using std::fabs; @@ -39,9 +38,9 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) FILE* f = fopen ("test/data/test.srt", "r"); sub::SubripReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<std::vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); + auto i = subs.begin (); /* First subtitle */ @@ -50,10 +49,10 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 0, 41, 90)); BOOST_CHECK_EQUAL (i->to, sub::Time::from_hms (0, 0, 42, 210)); - list<sub::Line>::iterator j = i->lines.begin (); + auto j = i->lines.begin(); BOOST_CHECK (j != i->lines.end ()); BOOST_CHECK_EQUAL (j->blocks.size(), 1); - sub::Block b = j->blocks.front (); + auto b = j->blocks.front(); BOOST_CHECK_EQUAL (b.text, "This is a subtitle"); /* No font is specified by subrip, so none should be seen here */ BOOST_CHECK (!b.font); @@ -94,7 +93,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test) BOOST_CHECK_EQUAL (l.vertical_position.line.get(), 0); BOOST_CHECK_EQUAL (l.vertical_position.reference.get(), sub::TOP_OF_SUBTITLE); - list<sub::Block>::iterator k = l.blocks.begin (); + auto k = l.blocks.begin(); BOOST_CHECK (k != l.blocks.end ()); BOOST_CHECK_EQUAL (k->text, "This is some "); @@ -175,9 +174,9 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test2) FILE* f = fopen ("test/data/test2.srt", "r"); sub::SubripReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::const_iterator i = subs.begin(); + auto i = subs.begin(); BOOST_CHECK (i != subs.end ()); BOOST_CHECK_EQUAL (i->from, sub::Time::from_hms (0, 1, 49, 200)); @@ -293,7 +292,7 @@ BOOST_AUTO_TEST_CASE (subrip_reader_convert_line_test) rs = sub::RawSubtitle(); r.convert_line ("<b>This is <i>nesting</i> of subtitles</b>", rs); BOOST_CHECK_EQUAL (r._subs.size(), 3); - list<sub::RawSubtitle>::iterator i = r._subs.begin (); + auto i = r._subs.begin(); BOOST_CHECK_EQUAL (i->text, "This is "); BOOST_CHECK_EQUAL (i->bold, true); BOOST_CHECK_EQUAL (i->italic, false); @@ -461,11 +460,11 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test3) FILE* f = fopen (p.string().c_str(), "r"); sub::SubripReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> > (reader.subtitles ()); + auto subs = sub::collect<std::vector<sub::Subtitle>> (reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); - list<sub::Line>::iterator j; - list<sub::Block>::iterator k; + auto i = subs.begin (); + vector<sub::Line>::iterator j; + vector<sub::Block>::iterator k; BOOST_REQUIRE (i != subs.end ()); @@ -538,9 +537,9 @@ BOOST_AUTO_TEST_CASE (subrip_reader_test4) FILE* f = fopen (p.string().c_str(), "r"); sub::SubripReader reader (f); fclose (f); - list<sub::Subtitle> subs = sub::collect<std::list<sub::Subtitle> >(reader.subtitles()); + auto subs = sub::collect<std::vector<sub::Subtitle>>(reader.subtitles()); - list<sub::Subtitle>::iterator i = subs.begin (); + auto i = subs.begin(); std::cout << i->lines.front().blocks.front().text << "\n"; std::string const t = i->lines.front().blocks.front().text; diff --git a/tools/dumpsubs.cc b/tools/dumpsubs.cc index 94470e8..cf7008e 100644 --- a/tools/dumpsubs.cc +++ b/tools/dumpsubs.cc @@ -30,7 +30,6 @@ using std::string; using std::cerr; using std::cout; using std::map; -using std::list; using std::shared_ptr; using namespace sub; |
