225 lines
6.4 KiB
C#
225 lines
6.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using CdgLib;
|
|
|
|
namespace KaraokeConverter
|
|
{
|
|
public partial class Form1 : Form
|
|
{
|
|
public Form1()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
#region "Private Declarations"
|
|
|
|
private CDGFile mCDGFile;
|
|
private CdgFileIoStream mCDGStream;
|
|
private string mCDGFileName;
|
|
private string mMP3FileName;
|
|
private string mTempDir;
|
|
private ExportAVI withEventsField_mExportAVI;
|
|
private ExportAVI mExportAVI
|
|
{
|
|
get { return withEventsField_mExportAVI; }
|
|
set
|
|
{
|
|
if (withEventsField_mExportAVI != null)
|
|
{
|
|
withEventsField_mExportAVI.Status -= mExportAVI_Status;
|
|
}
|
|
withEventsField_mExportAVI = value;
|
|
if (withEventsField_mExportAVI != null)
|
|
{
|
|
withEventsField_mExportAVI.Status += mExportAVI_Status;
|
|
}
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region "Control Events"
|
|
|
|
private void btOutputAVI_Click_1(System.Object sender, System.EventArgs e)
|
|
{
|
|
SelectOutputAVI();
|
|
}
|
|
|
|
private void btBackGroundBrowse_Click(System.Object sender, System.EventArgs e)
|
|
{
|
|
SelectBackGroundAVI();
|
|
}
|
|
|
|
private void btConvert_Click(System.Object sender, System.EventArgs e)
|
|
{
|
|
ConvertAVI();
|
|
}
|
|
|
|
private void tbFPS_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
|
|
{
|
|
/*
|
|
if ((Strings.Asc(e.KeyChar) >= Keys.D0 & Strings.Asc(e.KeyChar) <= Keys.D9) | Strings.Asc(e.KeyChar) == Keys.Back | e.KeyChar == ".") {
|
|
e.Handled = false;
|
|
} else {
|
|
e.Handled = true;
|
|
}
|
|
*/
|
|
}
|
|
|
|
private void btBrowseCDG_Click(System.Object sender, System.EventArgs e)
|
|
{
|
|
OpenFileDialog1.Filter = "CDG or Zip Files (*.zip, *.cdg)|*.zip;*.cdg";
|
|
OpenFileDialog1.ShowDialog();
|
|
tbFileName.Text = OpenFileDialog1.FileName;
|
|
}
|
|
|
|
private void chkBackGraph_CheckedChanged(System.Object sender, System.EventArgs e)
|
|
{
|
|
if (chkBackGround.Checked && chkBackGraph.Checked)
|
|
{
|
|
chkBackGround.Checked = false;
|
|
}
|
|
ToggleCheckBox();
|
|
}
|
|
|
|
private void chkBackGround_CheckedChanged(System.Object sender, System.EventArgs e)
|
|
{
|
|
if (chkBackGraph.Checked && chkBackGround.Checked)
|
|
{
|
|
chkBackGraph.Checked = false;
|
|
}
|
|
ToggleCheckBox();
|
|
}
|
|
|
|
private void btBrowseImg_Click(System.Object sender, System.EventArgs e)
|
|
{
|
|
SelectBackGroundGraphic();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region "Events"
|
|
|
|
private void mExportAVI_Status(string message)
|
|
{
|
|
pbAVI.Value = (Convert.ToInt32(message));
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region "Private Methods"
|
|
|
|
private void SelectOutputAVI()
|
|
{
|
|
SaveFileDialog1.Filter = "AVI Files (*.avi)|*.avi";
|
|
SaveFileDialog1.ShowDialog();
|
|
tbAVIFile.Text = SaveFileDialog1.FileName;
|
|
}
|
|
|
|
private void SelectBackGroundAVI()
|
|
{
|
|
OpenFileDialog1.Filter = "Movie Files (*.avi, *.mpg, *.wmv)|*.avi;*.mpg;*.wmv";
|
|
OpenFileDialog1.ShowDialog();
|
|
tbBackGroundAVI.Text = OpenFileDialog1.FileName;
|
|
}
|
|
|
|
private void SelectBackGroundGraphic()
|
|
{
|
|
OpenFileDialog1.Filter = "Graphic Files|*.jpg;*.bmp;*.png;*.tif;*.tiff;*.gif;*.wmf";
|
|
OpenFileDialog1.ShowDialog();
|
|
tbBackGroundImg.Text = OpenFileDialog1.FileName;
|
|
}
|
|
|
|
private void ConvertAVI()
|
|
{
|
|
try
|
|
{
|
|
PreProcessFiles();
|
|
if (string.IsNullOrEmpty(mCDGFileName) | string.IsNullOrEmpty(mMP3FileName))
|
|
{
|
|
MessageBox.Show("Cannot find a CDG and MP3 file to convert together.");
|
|
return;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//Do nothing for now
|
|
}
|
|
mExportAVI = new ExportAVI();
|
|
pbAVI.Value = 0;
|
|
string backGroundFilename = "";
|
|
if (chkBackGraph.Checked)
|
|
backGroundFilename = tbBackGroundImg.Text;
|
|
if (chkBackGround.Checked)
|
|
backGroundFilename = tbBackGroundAVI.Text;
|
|
mExportAVI.CDGtoAVI(tbAVIFile.Text, mCDGFileName, mMP3FileName, Convert.ToDouble(tbFPS.Text), backGroundFilename);
|
|
pbAVI.Value = 0;
|
|
try
|
|
{
|
|
CleanUp();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//Do nothing for now
|
|
}
|
|
}
|
|
|
|
private void CleanUp()
|
|
{
|
|
if (!string.IsNullOrEmpty(mTempDir))
|
|
{
|
|
try
|
|
{
|
|
Directory.Delete(mTempDir, true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
}
|
|
}
|
|
mTempDir = "";
|
|
}
|
|
|
|
private void PreProcessFiles()
|
|
{
|
|
/*
|
|
string myCDGFileName = "";
|
|
if (Regex.IsMatch(tbFileName.Text, "\\.zip$")) {
|
|
string myTempDir = Path.GetTempPath() + Path.GetRandomFileName();
|
|
Directory.CreateDirectory(myTempDir);
|
|
mTempDir = myTempDir;
|
|
myCDGFileName = Unzip.UnzipMP3GFiles(tbFileName.Text, myTempDir);
|
|
goto PairUpFiles;
|
|
} else if (Regex.IsMatch(tbFileName.Text, "\\.cdg$")) {
|
|
myCDGFileName = tbFileName.Text;
|
|
PairUpFiles:
|
|
string myMP3FileName = System.Text.RegularExpressions.Regex.Replace(myCDGFileName, "\\.cdg$", ".mp3");
|
|
if (File.Exists(myMP3FileName)) {
|
|
mMP3FileName = myMP3FileName;
|
|
mCDGFileName = myCDGFileName;
|
|
mTempDir = "";
|
|
}
|
|
}
|
|
*/
|
|
}
|
|
|
|
|
|
private void ToggleCheckBox()
|
|
{
|
|
tbBackGroundAVI.Enabled = chkBackGround.Checked;
|
|
btBackGroundBrowse.Enabled = chkBackGround.Checked;
|
|
tbBackGroundImg.Enabled = chkBackGraph.Checked;
|
|
btBrowseImg.Enabled = chkBackGraph.Checked;
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|