Пример #1
0
        /// <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);
            }
        }
Пример #2
0
 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));
         }
     }
 }
Пример #3
0
        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);
                    }
                }
            }
        }
Пример #4
0
 private void CreateContainer(out ContainerFile container)
 {
     container = new ContainerFile {
         FlatStructure = _commonSettings.FlatStructure, ContentFilePath = _content
     };
 }