private static void addCineFileNode(XPathNavigator current, List <CineFile> cfl, bool isBigEndian)
{
string basepath = current.GetAttribute("base", "");
string name = current.GetAttribute("name", "");
var entryNodes = current.Select("entry");
CineFile cf = new CineFile(basepath, name, isBigEndian);
SubtitleEntry se;
// Get first entry
entryNodes.MoveNext();
se = new SubtitleEntry();
se.lang = Locale.getFromString(entryNodes.Current.GetAttribute("lang", ""));
se.blockNumber = int.Parse(entryNodes.Current.GetAttribute("block", ""));
se.text = entryNodes.Current.Value;
while (entryNodes.MoveNext() == true)
{
// Check if same block
if (se.blockNumber == int.Parse(entryNodes.Current.GetAttribute("block", "")))
{
se.text += ("\n" + entryNodes.Current.Value);
}
else
{
// Save previous entry
cf.add(se);
// Save new current entry
se = new SubtitleEntry();
se.lang = Locale.getFromString(entryNodes.Current.GetAttribute("lang", ""));
se.blockNumber = int.Parse(entryNodes.Current.GetAttribute("block", ""));
se.text = entryNodes.Current.Value;
}
}
// Add last sub entry
cf.add(se);
// Add cinefile to list
cfl.Add(cf);
}