Esempio n. 1
0
		private void button3_Click(object sender, System.EventArgs e)
		{
            try
            {
                lock (this)
                {
                    List<IFOParse.VOB> vobs = null;
                    IFOParse.ProgramChain pgc = null;
                    List<IFOParse.Cell> cells = null;
                    if (treeView1.SelectedNode == null)
                        return;
                    if (treeView1.SelectedNode.Tag.GetType() == typeof(FileInfo))
                    {
                        // got single vob file
                        FileInfo fi = (FileInfo)treeView1.SelectedNode.Tag;
                        IFOParse.VOB v = new IFOParse.VOB(fi.FullName);
                        vobs = new List<IFOParse.VOB>();
                        vobs.Add(v);

                        // create dummy cell list
                        cells = new List<IFOParse.Cell>();
                        IFOParse.Cell c = new IFOParse.Cell();
                        c.FirstSector = 0;
                        c.LastSector = (int)v.LastSector;
                        cells.Add(c);
                    }
                    else if (treeView1.SelectedNode.Tag.GetType() == typeof(IFOParse.ProgramChain))
                    {
                        pgc = (IFOParse.ProgramChain)treeView1.SelectedNode.Tag;
                        vobs = pgc.Title.VOBs;
                        cells = pgc.Cells;
                    }


                    m_ds = new DSUtils();
                    ArrayList ranges = new ArrayList();
                    ArrayList vobNames = new ArrayList();
                    for (int c = 0; c < cells.Count; c++)
                    {
                        ranges.Add(cells[c].FirstSector);
                        ranges.Add(cells[c].LastSector);
                    }
                    for (int v = 0; v < vobs.Count; v++)
                    {
                        vobNames.Add(vobs[v].FileInfo.FullName);
                        vobNames.Add(vobs[v].Sectors);
                    }
                    m_ds.Preview(ranges, vobNames, panel1.Handle, trackBar1.Value);
                    button3.Enabled = false;
                    button4.Enabled = true;
                    button5.Enabled = true;
                    if (Settings.Default.AudioMode)
                    {
                        label9.Visible = true;
                        label10.Visible = true;
                    }

                    m_videoThread = new Thread(new ThreadStart(PlaybackProgress));
                    m_videoThread.Start();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(String.Format("Error starting preview: {0}", ex.Message));
            }
		}