removed nascent ST2052-1 support pending completion
[asdcplib.git] / src / Dict.cpp
index d50a836dc06e4743dc0d4a7054958722ec2424c2..639e40fa9624c2784b99270c933b46c1efa6f558 100755 (executable)
@@ -150,22 +150,22 @@ ASDCP::Dictionary::Init()
   m_md_lookup.clear();
   memset(m_MDD_Table, 0, sizeof(m_MDD_Table));
 
-  for ( ui32_t x = 0; x < (ui32_t)ASDCP::MDD_Max; x++ )
+  for ( ui32_t x = 0; x < (ui32_t)ASDCP::MDD_Max; ++x )
     {
       if ( x == MDD_PartitionMetadata_IndexSID_DEPRECATED  // 30
           || x == MDD_PartitionMetadata_BodySID_DEPRECATED  // 32
+          || x == MDD_PartitionMetadata_OperationalPattern_DEPRECATED  // 33
           || x == MDD_PartitionMetadata_EssenceContainers_DEPRECATED  // 34
           || x == MDD_IndexTableSegmentBase_IndexSID_DEPRECATED  // 56
           || x == MDD_IndexTableSegmentBase_BodySID_DEPRECATED  // 57
           || x == MDD_PartitionArray_RandomIndexMetadata_BodySID_DEPRECATED  // 73
+          || x == MDD_Preface_OperationalPattern_DEPRECATED  // 84
           || x == MDD_Preface_EssenceContainers_DEPRECATED  // 85
           || x == MDD_EssenceContainerData_IndexSID_DEPRECATED  // 103
           || x == MDD_EssenceContainerData_BodySID_DEPRECATED  // 104
+          || x == MDD_TimedTextResourceSubDescriptor_EssenceStreamID_DEPRECATED // 264
           || x == MDD_DMSegment_DataDefinition_DEPRECATED // 266
           || x == MDD_DMSegment_Duration_DEPRECATED // 267
-          || x == MDD_PartitionMetadata_OperationalPattern_DEPRECATED  // 33
-          || x == MDD_Preface_OperationalPattern_DEPRECATED  // 84
-          || x == MDD_TimedTextResourceSubDescriptor_EssenceStreamID_DEPRECATED // 264
           )
        continue;
 
@@ -210,6 +210,7 @@ ASDCP::Dictionary::AddEntry(const MDDEntry& Entry, ui32_t index)
 
   m_md_lookup.insert(std::map<UL, ui32_t>::value_type(TmpUL, index));
   m_md_rev_lookup.insert(std::map<ui32_t, UL>::value_type(index, TmpUL));
+  m_md_sym_lookup.insert(std::map<std::string, ui32_t>::value_type(Entry.name, index));
   m_MDD_Table[index] = Entry;
 
   return result;
@@ -274,7 +275,23 @@ ASDCP::Dictionary::FindUL(const byte_t* ul_buf) const
        }
     }
 
-  return &m_MDD_Table[(*i).second];
+  return &m_MDD_Table[i->second];
+}
+
+//
+const ASDCP::MDDEntry*
+ASDCP::Dictionary::FindSymbol(const std::string& str) const
+{
+  assert(m_MDD_Table[0].name[0]);
+  std::map<std::string, ui32_t>::const_iterator i = m_md_sym_lookup.find(str);
+  
+  if ( i == m_md_sym_lookup.end() )
+    {
+      Kumu::DefaultLogSink().Warn("UL Dictionary: unknown symbol: %s\n", str.c_str());
+      return 0;
+    }
+
+  return &m_MDD_Table[i->second];
 }
 
 //