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    Written by Moritz Bunkus <moritz@bunkus.org>.
10 */
11 
12 #pragma once
13 
14 #include "common/common_pch.h"
15 
16 namespace mtx {
17 
18 class kax_element_names_c {
19 protected:
20   static std::unordered_map<uint32_t, std::string> ms_names;
21 
22 public:
23   kax_element_names_c() = delete;
24 
25   static std::string get(uint32_t id);
get(libebml::EbmlId const & id)26   static std::string get(libebml::EbmlId const &id) {
27     return get(id.GetValue());
28   }
get(libebml::EbmlElement const & elt)29   static std::string get(libebml::EbmlElement const &elt) {
30     return get(libebml::EbmlId(elt).GetValue());
31   }
32 
33   static void init();
34   static void reset();
35 };
36 
37 }
38