示例#1
0
 void ParsePatterns(const Indices& pats, Builder& builder) const
 {
   Dbg("Patterns: %1% to parse", pats.Count());
   for (Indices::Iterator it = pats.Items(); it; ++it)
   {
     const uint_t patIndex = *it;
     Dbg("Parse pattern %1%", patIndex);
     ParsePattern(patIndex, builder);
   }
 }
示例#2
0
 void ParseOrnaments(const Indices& ornaments, Builder& builder) const
 {
   Dbg("Ornaments: %1% to parse", ornaments.Count());
   const std::size_t ornamentsTable = fromLE(Source.OrnamentsOffset);
   for (Indices::Iterator it = ornaments.Items(); it; ++it)
   {
     const uint_t ornIdx = *it;
     Dbg("Parse ornament %1%", ornIdx);
     const std::size_t ornOffset = ReadWord(ornamentsTable, ornIdx);
     Ornament result;
     ParseOrnament(ornOffset, result);
     builder.SetOrnament(ornIdx, result);
   }
 }
示例#3
0
 void ParseSamples(const Indices& samples, Builder& builder) const
 {
   Dbg("Samples: %1% to parse", samples.Count());
   const std::size_t samplesTable = fromLE(Source.SamplesOffset);
   for (Indices::Iterator it = samples.Items(); it; ++it)
   {
     const uint_t samIdx = *it;
     Dbg("Parse sample %1%", samIdx);
     const std::size_t samOffset = ReadWord(samplesTable, samIdx);
     Sample result;
     ParseSample(samOffset, result);
     builder.SetSample(samIdx, result);
   }
 }