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 } }