Add missing files from previous commit.
[ardour.git] / libs / pbd / pbd / enumwriter.h
index 356a0a1acc97ac6c0120273776ad3651d21d7f97..461665d739f0a7b9ad1116bf0677d5354f3bfcd4 100644 (file)
@@ -18,6 +18,9 @@
     $Id$
 */
 
+#ifndef __pbd_enumwriter_h__
+#define __pbd_enumwriter_h__
+
 #include <map>
 #include <string>
 #include <vector>
@@ -33,10 +36,7 @@ class unknown_enumeration : public std::exception {
 
 class EnumWriter {
   public:
-       EnumWriter ();
-       ~EnumWriter ();
-
-       static EnumWriter& instance() { return *_instance; }
+       static EnumWriter& instance();
 
        void register_distinct (std::string type, std::vector<int>, std::vector<std::string>);
        void register_bits     (std::string type, std::vector<int>, std::vector<std::string>);
@@ -44,7 +44,12 @@ class EnumWriter {
        std::string write (std::string type, int value);
        int         read  (std::string type, std::string value);
 
+       void add_to_hack_table (std::string str, std::string hacked_str);
+
   private:
+       EnumWriter ();
+       ~EnumWriter ();
+
        struct EnumRegistration {
            std::vector<int> values;
            std::vector<std::string> names;
@@ -65,6 +70,7 @@ class EnumWriter {
        int read_distinct (EnumRegistration&, std::string value);
 
        static EnumWriter* _instance;
+       static std::map<std::string,std::string> hack_table;
 };
 
 }
@@ -72,3 +78,4 @@ class EnumWriter {
 #define enum_2_string(e) (PBD::EnumWriter::instance().write (typeid(e).name(), e))
 #define string_2_enum(str,e) (PBD::EnumWriter::instance().read (typeid(e).name(), (str)))
 
+#endif /*  __pbd_enumwriter_h__ */