20 #ifndef LIBSUB_COLLECT_H
21 #define LIBSUB_COLLECT_H
24 #include "raw_subtitle.h"
33 collect (std::list<RawSubtitle> raw)
39 boost::optional<Subtitle> current;
40 for (std::list<RawSubtitle>::const_iterator i = raw.begin (); i != raw.end(); ++i) {
41 if (current && current->same_metadata (*i)) {
43 if (!current->lines.empty() && current->lines.back().same_metadata (*i)) {
45 current->lines.back().blocks.push_back (Block (*i));
48 current->lines.push_back (Line (*i));
53 out.push_back (current.get ());
55 current = Subtitle (*i);
60 out.push_back (current.get ());