projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pot/merge.
[dcpomatic.git]
/
src
/
lib
/
dcp_text_track.cc
diff --git
a/src/lib/dcp_text_track.cc
b/src/lib/dcp_text_track.cc
index 2d3d9fe10d81539b74892787df333a41b9a6c74a..0bd75127541ac7be96abf6854426aaf46df06446 100644
(file)
--- a/
src/lib/dcp_text_track.cc
+++ b/
src/lib/dcp_text_track.cc
@@
-1,5
+1,5
@@
/*
/*
- Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2018
-2021
Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
This file is part of DCP-o-matic.
@@
-18,46
+18,71
@@
*/
*/
+
#include "dcp_text_track.h"
#include "compose.hpp"
#include <string>
#include "dcp_text_track.h"
#include "compose.hpp"
#include <string>
+#include "i18n.h"
+
+
using std::string;
using std::string;
+using boost::optional;
+
DCPTextTrack::DCPTextTrack (cxml::ConstNodePtr node)
{
name = node->string_child("Name");
DCPTextTrack::DCPTextTrack (cxml::ConstNodePtr node)
{
name = node->string_child("Name");
- language = node->string_child("Language");
+ if (auto lang = node->optional_string_child("Language")) {
+ language = dcp::LanguageTag(*lang);
+ }
}
}
-DCPTextTrack::DCPTextTrack (string name_, string language_)
+
+DCPTextTrack::DCPTextTrack (string name_, optional<dcp::LanguageTag> language_)
: name (name_)
, language (language_)
{
}
: name (name_)
, language (language_)
{
}
+
string
DCPTextTrack::summary () const
{
string
DCPTextTrack::summary () const
{
- return String::compose("%1 (%2)", name, language);
+ return String::compose("%1 (%2)", name, language
? language->to_string() : _("Unknown")
);
}
void
DCPTextTrack::as_xml (xmlpp::Element* parent) const
{
parent->add_child("Name")->add_child_text(name);
}
void
DCPTextTrack::as_xml (xmlpp::Element* parent) const
{
parent->add_child("Name")->add_child_text(name);
- parent->add_child("Language")->add_child_text(language);
+ if (language) {
+ parent->add_child("Language")->add_child_text(language->to_string());
+ }
}
}
+
bool
operator== (DCPTextTrack const & a, DCPTextTrack const & b)
{
return a.name == b.name && a.language == b.language;
}
bool
operator== (DCPTextTrack const & a, DCPTextTrack const & b)
{
return a.name == b.name && a.language == b.language;
}
+
bool
operator!= (DCPTextTrack const & a, DCPTextTrack const & b)
{
return !(a == b);
}
bool
operator!= (DCPTextTrack const & a, DCPTextTrack const & b)
{
return !(a == b);
}
+
+
+bool
+operator< (DCPTextTrack const & a, DCPTextTrack const & b)
+{
+ if (a.name != b.name) {
+ return a.name < b.name;
+ }
+
+ return a.language < b.language;
+}