1 /*
2    mkvmerge -- utility for splicing together matroska files
3    from component media subtypes
4 
5    Distributed under the GPL v2
6    see the file COPYING for details
7    or visit https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
8 
9    ISO 639 types
10 
11    Written by Moritz Bunkus <moritz@bunkus.org>.
12 */
13 
14 #pragma once
15 
16 #include <string>
17 #include <vector>
18 
19 namespace mtx::iso639 {
20 
21 struct language_t {
22   std::string const english_name, alpha_3_code, alpha_2_code, terminology_abbrev;
23   bool is_part_of_iso639_2{};
24 
language_tlanguage_t25   language_t(std::string &&p_english_name, std::string &&p_alpha_3_code, std::string &&p_alpha_2_code, std::string &&p_terminology_abbrev, bool p_is_part_of_iso639_2)
26     : english_name{std::move(p_english_name)}
27     , alpha_3_code{std::move(p_alpha_3_code)}
28     , alpha_2_code{std::move(p_alpha_2_code)}
29     , terminology_abbrev{std::move(p_terminology_abbrev)}
30     , is_part_of_iso639_2{p_is_part_of_iso639_2}
31   {
32   }
33 };
34 
35 extern std::vector<language_t> g_languages;
36 
37 } // namespace mtx::iso639
38