diff options
Diffstat (limited to 'ingen')
-rw-r--r-- | ingen/URIMap.hpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ingen/URIMap.hpp b/ingen/URIMap.hpp index 6ad8c684..fc402c2c 100644 --- a/ingen/URIMap.hpp +++ b/ingen/URIMap.hpp @@ -18,8 +18,11 @@ #define INGEN_URIMAP_HPP #include <cstdint> +#include <mutex> #include <string> +#include <unordered_map> #include <utility> +#include <vector> #include "ingen/LV2Features.hpp" #include "ingen/ingen.h" @@ -65,7 +68,7 @@ public: struct URIDMapFeature : public Feature { URIDMapFeature(URIMap* map, LV2_URID_Map* impl, Log& log); LV2_URID map(const char* uri); - static LV2_URID default_map(LV2_URID_Map_Handle h, const char* uri); + static LV2_URID default_map(LV2_URID_Map_Handle h, const char* c_uri); LV2_URID_Map urid_map; Log& log; }; @@ -81,8 +84,15 @@ public: SPtr<URIDUnmapFeature> urid_unmap_feature() { return _urid_unmap_feature; } private: + friend class URIDMapFeature; + friend class URIDUnMapFeature; + SPtr<URIDMapFeature> _urid_map_feature; SPtr<URIDUnmapFeature> _urid_unmap_feature; + + std::mutex _mutex; + std::unordered_map<std::string, LV2_URID> _map; + std::vector<std::string> _unmap; }; } // namespace Ingen |