From 5f38f82f9bfc69fdbae47a71f587ab5b7e80e594 Mon Sep 17 00:00:00 2001 From: jhurst Date: Fri, 2 Dec 2016 18:45:14 +0000 Subject: o Replaced WIN32 directory scanner with dirent_win.h o The NamespaceURI property of AS-02 timed text files has been exposed in the API and via as-02-wrap -P. This behavior replaces previous bad behavior, but puts responsibility for selecting the correct value on the operator. o Exposed CreatePNGNameId and CreateFontNameId subroutines in AS_02::TimedText o Adjusted UUID generation based on PNG and font names to exclude paths by inserting a call to PathBasename at each Id generation site --- src/ST2052_TextParser.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/ST2052_TextParser.cpp') diff --git a/src/ST2052_TextParser.cpp b/src/ST2052_TextParser.cpp index 5bc2f9d..f291a1b 100644 --- a/src/ST2052_TextParser.cpp +++ b/src/ST2052_TextParser.cpp @@ -86,15 +86,15 @@ create_4122_type5_id(const std::string& subject_name, const byte_t* ns_id) } // -static Kumu::UUID -create_png_name_id(const std::string& image_name) +Kumu::UUID +AS_02::TimedText::CreatePNGNameId(const std::string& image_name) { return create_4122_type5_id(image_name, s_png_id_prefix); } // -static Kumu::UUID -create_font_name_id(const std::string& font_name) +Kumu::UUID +AS_02::TimedText::CreateFontNameId(const std::string& font_name) { return create_4122_type5_id(font_name, s_font_id_prefix); } @@ -106,6 +106,7 @@ static std::set sg_default_font_family_list; static void setup_default_font_family_list() { + AutoMutex l(sg_default_font_family_list_lock); sg_default_font_family_list.insert("default"); sg_default_font_family_list.insert("monospace"); sg_default_font_family_list.insert("sansSerif"); @@ -166,7 +167,7 @@ AS_02::TimedText::Type5UUIDFilenameResolver::OpenRead(const std::string& dirname // is it PNG? if ( memcmp(read_buffer, PNGMagic, sizeof(PNGMagic)) == 0 ) { - UUID asset_id = create_png_name_id(next_item); + UUID asset_id = CreatePNGNameId(PathBasename(next_item)); m_ResourceMap.insert(ResourceMap::value_type(asset_id, next_item)); } // is it a font? @@ -174,7 +175,7 @@ AS_02::TimedText::Type5UUIDFilenameResolver::OpenRead(const std::string& dirname || memcmp(read_buffer, TrueTypeMagic, sizeof(TrueTypeMagic)) == 0 ) { std::string font_root_name = PathSetExtension(next_item, ""); - UUID asset_id = create_font_name_id(font_root_name); + UUID asset_id = CreateFontNameId(PathBasename(font_root_name)); m_ResourceMap.insert(ResourceMap::value_type(asset_id, next_item)); } } @@ -362,7 +363,7 @@ AS_02::TimedText::ST2052_TextParser::h__TextParser::OpenRead(const std::string& for ( i = png_visitor.value_list.begin(); i != png_visitor.value_list.end(); ++i ) { - UUID asset_id = create_png_name_id(*i); + UUID asset_id = CreatePNGNameId(PathBasename(*i)); TimedTextResourceDescriptor png_resource; memcpy(png_resource.ResourceID, asset_id.Value(), UUIDlen); png_resource.Type = ASDCP::TimedText::MT_PNG; @@ -377,7 +378,7 @@ AS_02::TimedText::ST2052_TextParser::h__TextParser::OpenRead(const std::string& for ( i = font_visitor.value_list.begin(); i != font_visitor.value_list.end(); ++i ) { - UUID font_id = create_font_name_id(*i); + UUID font_id = CreateFontNameId(PathBasename(*i)); if ( PathIsFile(font_id.EncodeHex(buf, 64)) || PathIsFile(*i+".ttf") -- cgit v1.2.3