/// <summary> /// Adds a container file's children to a given node collection. /// </summary> /// <param name="currNode">node collection</param> /// <param name="toRead">container file</param> private void addChildFiles(TreeNodeCollection currNode, ContainerFile toRead) { List <string> filenames = toRead.getFilenames(); for (int i = 0; i < filenames.Count; i++) { string filename = filenames[i]; TreeNode temp = new TreeNode(filename); temp.ContextMenuStrip = treeViewContextMenu; if (toRead is AfsLoader || toRead is NblLoader || toRead is MiniAfsLoader) //AFS still doesn't lazy-load, meaning all my performance issues are STILL HERE. { PsuFile child = toRead.getFileParsed(i); if (child != null && child is ContainerFile) { addChildFiles(temp.Nodes, (ContainerFile)child); } } else //NBL chunk as parent { RawFile raw = toRead.getFileRaw(i); if (filename.EndsWith(".nbl") || raw.fileheader == "NMLL" || raw.fileheader == "TMLL") { addChildFiles(temp.Nodes, (ContainerFile)toRead.getFileParsed(i)); } } temp.Tag = new object[] { toRead, filename }; currNode.Add(temp); } }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { splitContainer1.Panel2.Controls.Clear(); if (e.Node.Text != "NMLL chunk" && e.Node.Text != "TMLL chunk") { if (e.Node.Tag != null && e.Node.Tag is object[]) { ContainerFile parent = (ContainerFile)((object[])e.Node.Tag)[0]; string filename = (string)((object[])e.Node.Tag)[1]; setRightPanel((PsuFile)parent.getFileParsed(filename)); } } }
private void OnOpenFile(object sender, System.EventArgs e) { openFileDialog.Filter = "QuickTime/MP4 Files|*.mp4;*.3gp;*.mov|" + "AVI Files|*.avi;*.wav|" + "ESG Container|*.*|" + "ESG Access Descriptor|*.*"; if (openFileDialog.ShowDialog(this) == DialogResult.OK) { // according to its file extension switch (Path.GetExtension(openFileDialog.FileName).ToLower()) { case ".mp4": case ".3gp": case ".mov": _container = new QuickTimeFile(openFileDialog.FileName); break; case ".avi": case ".wav": _container = new AviFile(openFileDialog.FileName); break; default: switch (openFileDialog.FilterIndex) { case 1: _container = new QuickTimeFile(openFileDialog.FileName); break; case 2: _container = new AviFile(openFileDialog.FileName); break; case 3: _container = new EsgContainerFile(openFileDialog.FileName, EsgFileType.Container); break; case 4: _container = new EsgContainerFile(openFileDialog.FileName, EsgFileType.AccessDescriptor); break; } break; } if (_container != null) { ResetTree(openFileDialog.FileName); try { _container.Walk(this); treeViewContainer.ExpandAll(); treeViewContainer.Nodes[0].EnsureVisible(); } catch (Exception ex) { Debug.WriteLine(ex); } } } }
private void CreateContainer(out ContainerFile container) { container = new ContainerFile { FlatStructure = _commonSettings.FlatStructure, ContentFilePath = _content }; }