//
form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
namespace FlashPlayer
... {
public partial class Form1 : Form
...{
private enum States ...{ RESET, START, WORKING, COMPLETED};
private enum Direction ...{ FIRST, FORWARD, BACKWORD, LAST};
private const string m_filename = "swf.dat";
private Form2 m_dsp = new Form2();
private const int m_interval = 100;
private bool m_needSave = false;
private string m_current_swf = "";
public Form1()
...{
InitializeComponent();
m_dsp.Hide();
m_dsp.MainForm = this;
}
private void SwitchtoPlayer()
...{
m_dsp.fullScreen();
m_dsp.Focus();
this.Hide();
}
void Form1_KeyDown(object sender, KeyEventArgs e)
...{
HandleHotKey(e);
e.Handled = true;
}
public void HandleHotKey(KeyEventArgs e)
...{
if (e.Modifiers == Keys.Alt)
...{
switch (e.KeyCode)
...{
case Keys.F4:
this.Close();
break;
case Keys.N:
MoveInList(Direction.FORWARD);
break;
case Keys.B:
MoveInList(Direction.BACKWORD);
break;
case Keys.L:
MoveInList(Direction.LAST);
break;
case Keys.F:
MoveInList(Direction.FIRST);
break;
case Keys.S:
if (m_dsp.IsPlaying)
...{
m_dsp.Stop();
}
break;
case Keys.P:
play();
break;
}
}
else
...{
switch (e.KeyCode)
...{
case Keys.Escape:
if (m_dsp != null && m_dsp.IsPlaying)
...{
SwitchtoPlayer();
}
break;
case Keys.Enter:
if (m_dsp.IsPlaying)
...{
m_dsp.Stop();
}
play();
break;
case Keys.Up:
MoveInList(Direction.BACKWORD);
break;
case Keys.Down:
MoveInList(Direction.FORWARD);
break;
}
}
}
private void MoveInList(Direction d)
...{
if (listBox1.Items.Count > 0)
...{
switch(d)
...{
case Direction .FORWARD:
this.listBox1.SelectedIndex = this.listBox1.SelectedIndex < listBox1.Items.Count - 1 ? this.listBox1.SelectedIndex + 1 : 0;
break;
case Direction.BACKWORD:
this.listBox1.SelectedIndex = this.listBox1.SelectedIndex - 1 < 0 ? this.listBox1.Items.Count - 1 : this.listBox1.SelectedIndex - 1;
break;
case Direction.FIRST:
this.listBox1.SelectedIndex = 0;
break;
case Direction.LAST:
this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1;
break;
}
}
}
protected override void OnFormClosing(FormClosingEventArgs e)
...{
if (m_dsp != null)
...{
m_dsp.Close();
}
if (m_needSave && DialogResult.OK == MessageBox.Show(this, "Do you want to save your play list?", "Information", MessageBoxButtons.OKCancel))
...{
using (StreamWriter sw = new StreamWriter(m_filename))
...{
foreach (Object o in this.listBox1.Items)
...{
sw.WriteLine((string)o);
}
}
}
base.OnFormClosing(e);
}
public void UpdateStatus(int percent)
...{
toolStripProgressBar1.Value = percent;
toolStripStatusLabel2.Text = String.Format("Frame:{0}%.", percent);
}
public void UpdateStatus(string message)
...{
toolStripStatusLabel2.Text = message;
}
public void next_step()
...{
if (this.listBox1.SelectedIndex == this.listBox1.Items.Count - 1)
...{
//m_dsp.Close();
this.toolStripButton1.Enabled = true;
this.toolStripButton2.Enabled = false;
}
else
...{
changePlaying(this.listBox1.SelectedIndex + 1);
}
}
private void Form1_Load(object sender, EventArgs e)
...{
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
//this.Left = 100;
//this.Top = 0;
if (File.Exists(m_filename))
...{
using (StreamReader sr = new StreamReader(m_filename))
...{
while (!sr.EndOfStream)
...{
listBox1.Items.Add(sr.ReadLine());
}
this.toolStripStatusLabel1.Text = String.Format("Total:{0} movies;", listBox1.Items.Count);
if (listBox1.Items.Count > 0)
...{
this.toolStripButton1.Enabled = true;
}
}
}
else
...{
this.toolStripStatusLabel1.Text = "Total:0 movies.";
}
}
private void play()
...{
if (listBox1.Items.Count > 0)
...{
if (this.listBox1.SelectedIndex == -1)
...{
this.listBox1.SelectedIndex = 0;
}
this.toolStripStatusLabel2.Text = String.Format("Current:{0}", listBox1.SelectedIndex);
m_current_swf = (string)this.listBox1.SelectedItem;
m_dsp.SWFFile = m_current_swf;
m_dsp.Play();
m_dsp.Show();
this.listBox1.Focus();
this.toolStripButton2.Enabled = true;
}
else
...{
MessageBox.Show("Please add flash movie into this list.");
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
...{
play();
this.toolStripButton1.Enabled = false;
}
void listBox1_DoubleClick(object sender, System.EventArgs e)
...{
changePlaying(listBox1.SelectedIndex);
}
private void toolStripButton2_Click(object sender, EventArgs e)
...{
m_dsp.Stop();
this.toolStripButton2.Enabled = false;
this.toolStripButton1.Enabled = true;
}
private void toolStripButton4_Click(object sender, EventArgs e)
...{
using (FolderBrowserDialog fbd = new FolderBrowserDialog())
...{
fbd.Description = "Select the folder which contains flash movies.";
fbd.ShowNewFolderButton = false;
fbd.RootFolder = Environment.SpecialFolder.Desktop;
if (DialogResult.OK == fbd.ShowDialog())
...{
get_file(fbd.SelectedPath);
get_dir(fbd.SelectedPath);
this.toolStripStatusLabel1.Text = String.Format("Total:{0} movies;", listBox1.Items.Count);
m_needSave = true;
if (this.listBox1.Items.Count > 0)
...{
this.toolStripButton1.Enabled = true;
}
}
}
}
private void get_file(string parent)
...{
DirectoryInfo di = new DirectoryInfo(parent);
foreach (FileInfo fi in di.GetFiles())
...{
if (fi.Extension == ".swf"
|| fi.Extension == ".SWF")
...{
this.listBox1.Items.Add(fi.FullName);
}
}
}
private void get_dir(string parent)
...{
DirectoryInfo di = new DirectoryInfo(parent);
foreach (DirectoryInfo subdir in di.GetDirectories())
...{
get_file(subdir.FullName);
get_dir(subdir.FullName);
}
}
private void toolStripButton3_Click(object sender, EventArgs e)
...{
SwitchtoPlayer();
}
private void toolStripButton5_Click(object sender, EventArgs e)
...{
if (this.listBox1.SelectedIndex == -1)
...{
MessageBox.Show("Please select one movie to be removed.");
}
else
...{
if (m_dsp.IsPlaying)
...{
m_dsp.Stop();
this.toolStripButton2.Enabled = false;
this.toolStripButton1.Enabled = true;
}
if (listBox1.Items.Count > 1)
...{
int pos = this.listBox1.SelectedIndex - 1 < 0 ? 0 : this.listBox1.SelectedIndex - 1;
this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);
this.listBox1.SelectedIndex = pos;
changePlaying(pos);
}
else
...{
this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);
}
}
}
private void toolStripButton7_Click(object sender, EventArgs e)
...{
MoveInList(Direction.BACKWORD);
changePlaying(this.listBox1.SelectedIndex);
}
private void toolStripButton9_Click(object sender, EventArgs e)
...{
changePlaying(0);
}
private void toolStripButton8_Click(object sender, EventArgs e)
...{
MoveInList(Direction.FORWARD);
changePlaying(this.listBox1.SelectedIndex);
}
private void toolStripButton10_Click(object sender, EventArgs e)
...{
changePlaying(this.listBox1.Items.Count - 1);
}
private void changePlaying(int selected)
...{
this.listBox1.SelectedIndex = selected;
if(m_dsp.IsPlaying)
...{
m_dsp.Stop();
}
play();
}
private void toolStripButton12_Click(object sender, EventArgs e)
...{
AboutBox1 abt = new AboutBox1();
abt.ShowDialog(this);
}
private void toolStripButton6_Click(object sender, EventArgs e)
...{
using (StreamWriter sw = new StreamWriter(m_filename))
...{
foreach (Object o in this.listBox1.Items)
...{
sw.WriteLine((string)o);
}
}
m_needSave = false;
}
private void Form1_SizeChanged(object sender, EventArgs e)
...{
if (this.WindowState == FormWindowState.Normal)
...{
//this.m_dsp.WindowState = FormWindowState.Normal;
this.m_dsp.Show();
}
else if (this.WindowState == FormWindowState.Minimized)
...{
//this.m_dsp.WindowState = FormWindowState.Minimized;
this.m_dsp.Hide();
}
}
private void toolStripButton13_Click(object sender, EventArgs e)
...{
this.listBox1.ClearSelected();
this.listBox1.Items.Clear();
this.toolStripButton1.Enabled = false;
this.toolStripStatusLabel1.Text = "Total:0 movies.";
}
}
}
// form2.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace FlashPlayer
... {
public partial class Form2 : Form
...{
private BackgroundWorker m_bgWorker = new BackgroundWorker();
private const int m_interval = 10;
private int m_perOld = -1;
public Form2()
...{
InitializeComponent();
this.KeyDown += new KeyEventHandler(Form2_KeyDown);
this.Shown += new EventHandler(Form2_Shown);
m_bgWorker.WorkerSupportsCancellation = true;
m_bgWorker.WorkerReportsProgress = true;
m_bgWorker.DoWork += new DoWorkEventHandler(m_bgWorker_DoWork);
m_bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(m_bgWorker_RunWorkerCompleted);
m_bgWorker.ProgressChanged += new ProgressChangedEventHandler(m_bgWorker_ProgressChanged);
}
void m_bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
...{
if (e.Cancelled)
...{
m_main_form.UpdateStatus("Cancelled.");
}
else if (e.Error != null)
...{
m_main_form.UpdateStatus(e.Error.Message);
}
else
...{
m_main_form.UpdateStatus("Finished.");
m_main_form.next_step();
}
}
void m_bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
...{
m_main_form.UpdateStatus(e.ProgressPercentage);
//lock (m_bgWorker)
//{
// m_main_form.UpdateStatus(e.ProgressPercentage);
//}
}
void percent(BackgroundWorker worker, DoWorkEventArgs e)
...{
for (int i = 0; i < Int32.MaxValue; i++)
...{
if (worker.CancellationPending && !e.Cancel)
...{
e.Cancel = true;
return;
}
else
...{
int cf = axShockwaveFlash1.CurrentFrame() + 1;
int tf = axShockwaveFlash1.TotalFrames;
int perNow = (int)(100 * ((float)cf / (float)tf));
if (m_perOld != perNow)
...{
worker.ReportProgress(perNow);
m_perOld = perNow;
}
else
...{
Thread.Sleep(3000);
cf = axShockwaveFlash1.CurrentFrame() + 1;
tf = axShockwaveFlash1.TotalFrames;
perNow = (int)(100 * ((float)cf / (float)tf));
if (m_perOld == perNow && !axShockwaveFlash1.Playing)
...{
//not change
//playing is over
//or need input to start.
break;
}
}
if (perNow == 100)
...{
break;
}
}
Thread.Sleep(m_interval);
}
}
void m_bgWorker_DoWork(object sender, DoWorkEventArgs e)
...{
BackgroundWorker worker = sender as BackgroundWorker;
percent(worker, e);
}
void Form2_Shown(object sender, EventArgs e)
...{
this.Left = m_main_form.Left;
this.Top = m_main_form.Top + m_main_form.Height;
this.ClientSize = new Size(m_main_form.Width, m_main_form.Width * 3 / 4);
}
void Form2_KeyDown(object sender, KeyEventArgs e)
...{
if (e.KeyCode == Keys.Escape)
...{
resize();
}
else
...{
m_main_form.HandleHotKey(e);
}
e.Handled = true;
}
private Form1 m_main_form;
public Form1 MainForm
...{
set
...{
m_main_form = value;
}
}
public bool IsPlaying
...{
get
...{
return axShockwaveFlash1.Playing;
}
}
public void fullScreen()
...{
this.ClientSize = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
this.Top = 0;
this.Left = 0;
Cursor.Hide();
}
private void resize()
...{
this.ClientSize = new Size(m_main_form.Width, m_main_form.Width * 3/4);
this.Left = m_main_form.Left;
this.Top = m_main_form.Top + m_main_form.Height;
this.m_main_form.Show();
this.m_main_form.Focus();
Cursor.Show();
}
//protected override void OnFormClosing(FormClosingEventArgs e)
//{
// Stop();
// this.axShockwaveFlash1.Dispose();
// base.OnFormClosing(e);
//}
public string SWFFile
...{
get
...{
return this.axShockwaveFlash1.Movie;
}
set
...{
this.axShockwaveFlash1.Movie = value;
axShockwaveFlash1.Loop = false;
}
}
public int CurrFrame
...{
get
...{
return axShockwaveFlash1.FrameNum;
//return axShockwaveFlash1.CurrentFrame();
}
set
...{
axShockwaveFlash1.FrameNum = value;
//axShockwaveFlash1.GotoFrame(value);
}
}
public void Play()
...{
this.axShockwaveFlash1.Play();
m_bgWorker.RunWorkerAsync();
}
public void Stop()
...{
axShockwaveFlash1.Stop();
while (axShockwaveFlash1.Playing)
...{
Application.DoEvents();
}
m_bgWorker.CancelAsync();
while (m_bgWorker.IsBusy)
...{
Application.DoEvents();
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
namespace FlashPlayer
... {
public partial class Form1 : Form
...{
private enum States ...{ RESET, START, WORKING, COMPLETED};
private enum Direction ...{ FIRST, FORWARD, BACKWORD, LAST};
private const string m_filename = "swf.dat";
private Form2 m_dsp = new Form2();
private const int m_interval = 100;
private bool m_needSave = false;
private string m_current_swf = "";
public Form1()
...{
InitializeComponent();
m_dsp.Hide();
m_dsp.MainForm = this;
}
private void SwitchtoPlayer()
...{
m_dsp.fullScreen();
m_dsp.Focus();
this.Hide();
}
void Form1_KeyDown(object sender, KeyEventArgs e)
...{
HandleHotKey(e);
e.Handled = true;
}
public void HandleHotKey(KeyEventArgs e)
...{
if (e.Modifiers == Keys.Alt)
...{
switch (e.KeyCode)
...{
case Keys.F4:
this.Close();
break;
case Keys.N:
MoveInList(Direction.FORWARD);
break;
case Keys.B:
MoveInList(Direction.BACKWORD);
break;
case Keys.L:
MoveInList(Direction.LAST);
break;
case Keys.F:
MoveInList(Direction.FIRST);
break;
case Keys.S:
if (m_dsp.IsPlaying)
...{
m_dsp.Stop();
}
break;
case Keys.P:
play();
break;
}
}
else
...{
switch (e.KeyCode)
...{
case Keys.Escape:
if (m_dsp != null && m_dsp.IsPlaying)
...{
SwitchtoPlayer();
}
break;
case Keys.Enter:
if (m_dsp.IsPlaying)
...{
m_dsp.Stop();
}
play();
break;
case Keys.Up:
MoveInList(Direction.BACKWORD);
break;
case Keys.Down:
MoveInList(Direction.FORWARD);
break;
}
}
}
private void MoveInList(Direction d)
...{
if (listBox1.Items.Count > 0)
...{
switch(d)
...{
case Direction .FORWARD:
this.listBox1.SelectedIndex = this.listBox1.SelectedIndex < listBox1.Items.Count - 1 ? this.listBox1.SelectedIndex + 1 : 0;
break;
case Direction.BACKWORD:
this.listBox1.SelectedIndex = this.listBox1.SelectedIndex - 1 < 0 ? this.listBox1.Items.Count - 1 : this.listBox1.SelectedIndex - 1;
break;
case Direction.FIRST:
this.listBox1.SelectedIndex = 0;
break;
case Direction.LAST:
this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1;
break;
}
}
}
protected override void OnFormClosing(FormClosingEventArgs e)
...{
if (m_dsp != null)
...{
m_dsp.Close();
}
if (m_needSave && DialogResult.OK == MessageBox.Show(this, "Do you want to save your play list?", "Information", MessageBoxButtons.OKCancel))
...{
using (StreamWriter sw = new StreamWriter(m_filename))
...{
foreach (Object o in this.listBox1.Items)
...{
sw.WriteLine((string)o);
}
}
}
base.OnFormClosing(e);
}
public void UpdateStatus(int percent)
...{
toolStripProgressBar1.Value = percent;
toolStripStatusLabel2.Text = String.Format("Frame:{0}%.", percent);
}
public void UpdateStatus(string message)
...{
toolStripStatusLabel2.Text = message;
}
public void next_step()
...{
if (this.listBox1.SelectedIndex == this.listBox1.Items.Count - 1)
...{
//m_dsp.Close();
this.toolStripButton1.Enabled = true;
this.toolStripButton2.Enabled = false;
}
else
...{
changePlaying(this.listBox1.SelectedIndex + 1);
}
}
private void Form1_Load(object sender, EventArgs e)
...{
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
//this.Left = 100;
//this.Top = 0;
if (File.Exists(m_filename))
...{
using (StreamReader sr = new StreamReader(m_filename))
...{
while (!sr.EndOfStream)
...{
listBox1.Items.Add(sr.ReadLine());
}
this.toolStripStatusLabel1.Text = String.Format("Total:{0} movies;", listBox1.Items.Count);
if (listBox1.Items.Count > 0)
...{
this.toolStripButton1.Enabled = true;
}
}
}
else
...{
this.toolStripStatusLabel1.Text = "Total:0 movies.";
}
}
private void play()
...{
if (listBox1.Items.Count > 0)
...{
if (this.listBox1.SelectedIndex == -1)
...{
this.listBox1.SelectedIndex = 0;
}
this.toolStripStatusLabel2.Text = String.Format("Current:{0}", listBox1.SelectedIndex);
m_current_swf = (string)this.listBox1.SelectedItem;
m_dsp.SWFFile = m_current_swf;
m_dsp.Play();
m_dsp.Show();
this.listBox1.Focus();
this.toolStripButton2.Enabled = true;
}
else
...{
MessageBox.Show("Please add flash movie into this list.");
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
...{
play();
this.toolStripButton1.Enabled = false;
}
void listBox1_DoubleClick(object sender, System.EventArgs e)
...{
changePlaying(listBox1.SelectedIndex);
}
private void toolStripButton2_Click(object sender, EventArgs e)
...{
m_dsp.Stop();
this.toolStripButton2.Enabled = false;
this.toolStripButton1.Enabled = true;
}
private void toolStripButton4_Click(object sender, EventArgs e)
...{
using (FolderBrowserDialog fbd = new FolderBrowserDialog())
...{
fbd.Description = "Select the folder which contains flash movies.";
fbd.ShowNewFolderButton = false;
fbd.RootFolder = Environment.SpecialFolder.Desktop;
if (DialogResult.OK == fbd.ShowDialog())
...{
get_file(fbd.SelectedPath);
get_dir(fbd.SelectedPath);
this.toolStripStatusLabel1.Text = String.Format("Total:{0} movies;", listBox1.Items.Count);
m_needSave = true;
if (this.listBox1.Items.Count > 0)
...{
this.toolStripButton1.Enabled = true;
}
}
}
}
private void get_file(string parent)
...{
DirectoryInfo di = new DirectoryInfo(parent);
foreach (FileInfo fi in di.GetFiles())
...{
if (fi.Extension == ".swf"
|| fi.Extension == ".SWF")
...{
this.listBox1.Items.Add(fi.FullName);
}
}
}
private void get_dir(string parent)
...{
DirectoryInfo di = new DirectoryInfo(parent);
foreach (DirectoryInfo subdir in di.GetDirectories())
...{
get_file(subdir.FullName);
get_dir(subdir.FullName);
}
}
private void toolStripButton3_Click(object sender, EventArgs e)
...{
SwitchtoPlayer();
}
private void toolStripButton5_Click(object sender, EventArgs e)
...{
if (this.listBox1.SelectedIndex == -1)
...{
MessageBox.Show("Please select one movie to be removed.");
}
else
...{
if (m_dsp.IsPlaying)
...{
m_dsp.Stop();
this.toolStripButton2.Enabled = false;
this.toolStripButton1.Enabled = true;
}
if (listBox1.Items.Count > 1)
...{
int pos = this.listBox1.SelectedIndex - 1 < 0 ? 0 : this.listBox1.SelectedIndex - 1;
this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);
this.listBox1.SelectedIndex = pos;
changePlaying(pos);
}
else
...{
this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);
}
}
}
private void toolStripButton7_Click(object sender, EventArgs e)
...{
MoveInList(Direction.BACKWORD);
changePlaying(this.listBox1.SelectedIndex);
}
private void toolStripButton9_Click(object sender, EventArgs e)
...{
changePlaying(0);
}
private void toolStripButton8_Click(object sender, EventArgs e)
...{
MoveInList(Direction.FORWARD);
changePlaying(this.listBox1.SelectedIndex);
}
private void toolStripButton10_Click(object sender, EventArgs e)
...{
changePlaying(this.listBox1.Items.Count - 1);
}
private void changePlaying(int selected)
...{
this.listBox1.SelectedIndex = selected;
if(m_dsp.IsPlaying)
...{
m_dsp.Stop();
}
play();
}
private void toolStripButton12_Click(object sender, EventArgs e)
...{
AboutBox1 abt = new AboutBox1();
abt.ShowDialog(this);
}
private void toolStripButton6_Click(object sender, EventArgs e)
...{
using (StreamWriter sw = new StreamWriter(m_filename))
...{
foreach (Object o in this.listBox1.Items)
...{
sw.WriteLine((string)o);
}
}
m_needSave = false;
}
private void Form1_SizeChanged(object sender, EventArgs e)
...{
if (this.WindowState == FormWindowState.Normal)
...{
//this.m_dsp.WindowState = FormWindowState.Normal;
this.m_dsp.Show();
}
else if (this.WindowState == FormWindowState.Minimized)
...{
//this.m_dsp.WindowState = FormWindowState.Minimized;
this.m_dsp.Hide();
}
}
private void toolStripButton13_Click(object sender, EventArgs e)
...{
this.listBox1.ClearSelected();
this.listBox1.Items.Clear();
this.toolStripButton1.Enabled = false;
this.toolStripStatusLabel1.Text = "Total:0 movies.";
}
}
}
// form2.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace FlashPlayer
... {
public partial class Form2 : Form
...{
private BackgroundWorker m_bgWorker = new BackgroundWorker();
private const int m_interval = 10;
private int m_perOld = -1;
public Form2()
...{
InitializeComponent();
this.KeyDown += new KeyEventHandler(Form2_KeyDown);
this.Shown += new EventHandler(Form2_Shown);
m_bgWorker.WorkerSupportsCancellation = true;
m_bgWorker.WorkerReportsProgress = true;
m_bgWorker.DoWork += new DoWorkEventHandler(m_bgWorker_DoWork);
m_bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(m_bgWorker_RunWorkerCompleted);
m_bgWorker.ProgressChanged += new ProgressChangedEventHandler(m_bgWorker_ProgressChanged);
}
void m_bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
...{
if (e.Cancelled)
...{
m_main_form.UpdateStatus("Cancelled.");
}
else if (e.Error != null)
...{
m_main_form.UpdateStatus(e.Error.Message);
}
else
...{
m_main_form.UpdateStatus("Finished.");
m_main_form.next_step();
}
}
void m_bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
...{
m_main_form.UpdateStatus(e.ProgressPercentage);
//lock (m_bgWorker)
//{
// m_main_form.UpdateStatus(e.ProgressPercentage);
//}
}
void percent(BackgroundWorker worker, DoWorkEventArgs e)
...{
for (int i = 0; i < Int32.MaxValue; i++)
...{
if (worker.CancellationPending && !e.Cancel)
...{
e.Cancel = true;
return;
}
else
...{
int cf = axShockwaveFlash1.CurrentFrame() + 1;
int tf = axShockwaveFlash1.TotalFrames;
int perNow = (int)(100 * ((float)cf / (float)tf));
if (m_perOld != perNow)
...{
worker.ReportProgress(perNow);
m_perOld = perNow;
}
else
...{
Thread.Sleep(3000);
cf = axShockwaveFlash1.CurrentFrame() + 1;
tf = axShockwaveFlash1.TotalFrames;
perNow = (int)(100 * ((float)cf / (float)tf));
if (m_perOld == perNow && !axShockwaveFlash1.Playing)
...{
//not change
//playing is over
//or need input to start.
break;
}
}
if (perNow == 100)
...{
break;
}
}
Thread.Sleep(m_interval);
}
}
void m_bgWorker_DoWork(object sender, DoWorkEventArgs e)
...{
BackgroundWorker worker = sender as BackgroundWorker;
percent(worker, e);
}
void Form2_Shown(object sender, EventArgs e)
...{
this.Left = m_main_form.Left;
this.Top = m_main_form.Top + m_main_form.Height;
this.ClientSize = new Size(m_main_form.Width, m_main_form.Width * 3 / 4);
}
void Form2_KeyDown(object sender, KeyEventArgs e)
...{
if (e.KeyCode == Keys.Escape)
...{
resize();
}
else
...{
m_main_form.HandleHotKey(e);
}
e.Handled = true;
}
private Form1 m_main_form;
public Form1 MainForm
...{
set
...{
m_main_form = value;
}
}
public bool IsPlaying
...{
get
...{
return axShockwaveFlash1.Playing;
}
}
public void fullScreen()
...{
this.ClientSize = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
this.Top = 0;
this.Left = 0;
Cursor.Hide();
}
private void resize()
...{
this.ClientSize = new Size(m_main_form.Width, m_main_form.Width * 3/4);
this.Left = m_main_form.Left;
this.Top = m_main_form.Top + m_main_form.Height;
this.m_main_form.Show();
this.m_main_form.Focus();
Cursor.Show();
}
//protected override void OnFormClosing(FormClosingEventArgs e)
//{
// Stop();
// this.axShockwaveFlash1.Dispose();
// base.OnFormClosing(e);
//}
public string SWFFile
...{
get
...{
return this.axShockwaveFlash1.Movie;
}
set
...{
this.axShockwaveFlash1.Movie = value;
axShockwaveFlash1.Loop = false;
}
}
public int CurrFrame
...{
get
...{
return axShockwaveFlash1.FrameNum;
//return axShockwaveFlash1.CurrentFrame();
}
set
...{
axShockwaveFlash1.FrameNum = value;
//axShockwaveFlash1.GotoFrame(value);
}
}
public void Play()
...{
this.axShockwaveFlash1.Play();
m_bgWorker.RunWorkerAsync();
}
public void Stop()
...{
axShockwaveFlash1.Stop();
while (axShockwaveFlash1.Playing)
...{
Application.DoEvents();
}
m_bgWorker.CancelAsync();
while (m_bgWorker.IsBusy)
...{
Application.DoEvents();
}
}
}
}