*/
#include <boost/algorithm/string.hpp>
+#include <boost/lexical_cast.hpp>
#include "subrip.h"
#include "subrip_content.h"
#include "subrip_subtitle.h"
throw SubRipError (line, _("a time/position line"), content->path (0));
}
- current->from = convert_time (p[0]);
- current->to = convert_time (p[2]);
+ current->period = ContentTimePeriod (convert_time (p[0]), convert_time (p[2]));
if (p.size() > 3) {
current->x1 = convert_coordinate (p[3]);
ContentTime
SubRip::convert_time (string t)
{
- ContentTime r = 0;
+ ContentTime r;
vector<string> a;
boost::algorithm::split (a, t, boost::is_any_of (":"));
assert (a.size() == 3);
- r += lexical_cast<int> (a[0]) * 60 * 60 * TIME_HZ;
- r += lexical_cast<int> (a[1]) * 60 * TIME_HZ;
+ r += ContentTime::from_seconds (lexical_cast<int> (a[0]) * 60 * 60);
+ r += ContentTime::from_seconds (lexical_cast<int> (a[1]) * 60);
vector<string> b;
boost::algorithm::split (b, a[2], boost::is_any_of (","));
- r += lexical_cast<int> (b[0]) * TIME_HZ;
- r += lexical_cast<int> (b[1]) * TIME_HZ / 1000;
+ r += ContentTime::from_seconds (lexical_cast<int> (b[0]));
+ r += ContentTime::from_seconds (lexical_cast<double> (b[1]) / 1000);
return r;
}
SubRip::length () const
{
if (_subtitles.empty ()) {
- return 0;
+ return ContentTime ();
}
- return _subtitles.back().to;
+ return _subtitles.back().period.to;
}