\r
using System;\r
using System.Collections;\r
-using System.ComponentModel;\r
-using System.Data;\r
using System.Drawing;\r
using System.Text;\r
using System.Windows.Forms;\r
-using System.Net;\r
using System.IO;\r
using System.Diagnostics;\r
using System.Threading;\r
public partial class frmMain : Form\r
{\r
// -------------------------------------------------------------- \r
- // Applicaiton Startup Stuff\r
+ // Applicaiton Startup\r
// --------------------------------------------------------------\r
\r
#region Application Startup\r
\r
- // Some stuff that needs to be Initialized. \r
+ // Declarations\r
private Process hbProc;\r
private Parsing.DVD thisDVD;\r
private frmQueue queueWindow = new frmQueue();\r
this.Enabled = true;\r
}\r
\r
+ // Startup Functions\r
private void startupUpdateCheck()\r
{\r
try\r
MessageBox.Show(exc.ToString());\r
}\r
}\r
-\r
private void splashTimer(object sender)\r
{\r
Thread.Sleep(1000); //sit for 1 seconds then exit\r
}\r
-\r
private void showSplash(object sender)\r
{\r
Form splash = new frmSplashScreen();\r
splash.Show();\r
}\r
-\r
private void setupH264Panel()\r
{\r
/*Set opt widget values here*/\r
/* Standardize the option string */\r
rtf_x264Query.Text = "";\r
}\r
-\r
private void loadUserDefaults()\r
{\r
string userDefaults = Properties.Settings.Default.defaultUserSettings;\r
\r
#endregion\r
\r
- #region Set Varible Function\r
- public void setStreamReader(Parsing.DVD dvd)\r
- {\r
- this.thisDVD = dvd;\r
- }\r
- #endregion\r
-\r
// -------------------------------------------------------------- \r
- // The main Menu bar.\r
+ // The Applications Main Menu\r
// -------------------------------------------------------------- \r
\r
#region File Menu\r
+\r
private void mnu_open_Click(object sender, EventArgs e)\r
{\r
string filename;\r
}\r
}\r
}\r
-\r
- private void mnu_save_Click(object sender, EventArgs e)\r
- {\r
- string filename;\r
- File_Save.ShowDialog();\r
- filename = File_Save.FileName;\r
- if (filename != "")\r
- {\r
- try\r
- {\r
- // Create a StreamWriter and open the file\r
- StreamWriter line = new StreamWriter(filename);\r
-\r
- // Generate and write the query string to the file\r
- String query = hb_common_func.GenerateTheQuery(this);\r
- line.WriteLine(query);\r
-\r
- // close the stream\r
- line.Close();\r
- MessageBox.Show("Your profile has been sucessfully saved.", "Status", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
- }\r
- catch (Exception)\r
- {\r
- MessageBox.Show("Unable to write to the file. Please make sure the location has the correct permissions for file writing.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);\r
- }\r
-\r
- }\r
- }\r
-\r
private void mnu_exit_Click(object sender, EventArgs e)\r
{\r
Application.Exit();\r
{\r
showQueue();\r
}\r
-\r
private void mnu_viewDVDdata_Click(object sender, EventArgs e)\r
{\r
frmDvdInfo dvdInfoWindow = new frmDvdInfo();\r
dvdInfoWindow.Show();\r
}\r
-\r
private void mnu_options_Click(object sender, EventArgs e)\r
{\r
Form Options = new frmOptions();\r
else\r
MessageBox.Show("Presets have been updated", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
}\r
-\r
private void mnu_SelectDefault_Click(object sender, EventArgs e)\r
{\r
loadNormalPreset();\r
{\r
Process.Start("http://handbrake.fr/trac");\r
}\r
-\r
private void mnu_faq_Click(object sender, EventArgs e)\r
{\r
Process.Start("http://handbrake.fr/trac/wiki/SupportFAQ");\r
}\r
-\r
private void mnu_onlineDocs_Click(object sender, EventArgs e)\r
{\r
Process.Start("http://handbrake.fr/?article=documentation");\r
}\r
-\r
private void mnu_handbrake_home_Click(object sender, EventArgs e)\r
{\r
Process.Start("http://handbrake.fr");\r
}\r
-\r
private void mnu_UpdateCheck_Click(object sender, EventArgs e)\r
{\r
Boolean update = hb_common_func.updateCheck(true);\r
else\r
MessageBox.Show("There are no new updates at this time.", "Update Check", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
}\r
-\r
private void mnu_about_Click(object sender, EventArgs e)\r
{\r
Form About = new frmAbout();\r
#endregion\r
\r
// -------------------------------------------------------------- \r
- // Buttons on the main Window and items that require actions\r
+ // MainWindow Components, Actions and Functions\r
// --------------------------------------------------------------\r
\r
- #region Buttons\r
+ #region Actions\r
+\r
+ // ToolBar\r
+ private void btn_start_Click(object sender, EventArgs e)\r
+ {\r
+ if (text_source.Text == "" || text_source.Text == "Click 'Browse' to continue" || text_destination.Text == "")\r
+ MessageBox.Show("No source OR destination selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+ else\r
+ {\r
+ String query;\r
+ if (rtf_query.Text != "")\r
+ query = rtf_query.Text;\r
+ else\r
+ query = hb_common_func.GenerateTheQuery(this);\r
+\r
+ ThreadPool.QueueUserWorkItem(procMonitor, query);\r
+ lbl_encode.Visible = true;\r
+ lbl_encode.Text = "Encoding in Progress";\r
+ }\r
+ }\r
+ private void btn_add2Queue_Click(object sender, EventArgs e)\r
+ {\r
+ if (text_source.Text == "" || text_source.Text == "Click 'Browse' to continue" || text_destination.Text == "")\r
+ MessageBox.Show("No source OR destination selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+ else\r
+ {\r
+ String query;\r
+ if (rtf_query.Text != "")\r
+ query = rtf_query.Text;\r
+ else\r
+ query = hb_common_func.GenerateTheQuery(this);\r
+\r
+ queueWindow.list_queue.Items.Add(query);\r
+ queueWindow.Show();\r
+ }\r
+ }\r
+ private void btn_showQueue_Click(object sender, EventArgs e)\r
+ {\r
+ showQueue();\r
+ }\r
+ private void btn_ActivityWindow_Click(object sender, EventArgs e)\r
+ {\r
+ Form ActivityWindow = new frmActivityWindow();\r
+ ActivityWindow.ShowDialog();\r
+ }\r
\r
+ //Source\r
private void btn_Browse_Click(object sender, EventArgs e)\r
{\r
String filename = "";\r
\r
}\r
}\r
-\r
- private void btn_destBrowse_Click(object sender, EventArgs e)\r
- {\r
- // This removes the file extension from the filename box on the save file dialog.\r
- // It's daft but some users don't realise that typing an extension overrides the dropdown extension selected.\r
- DVD_Save.FileName = DVD_Save.FileName.Replace(".mp4", "").Replace(".m4v", "").Replace(".mkv", "").Replace(".ogm", "").Replace(".avi", "");\r
-\r
- // Show the dialog and set the main form file path\r
- DVD_Save.ShowDialog();\r
- if (DVD_Save.FileName.StartsWith("\\"))\r
- MessageBox.Show("Sorry, HandBrake does not support UNC file paths. \nTry mounting the share as a network drive in My Computer", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
- else\r
- {\r
- setAudioByContainer(DVD_Save.FileName);\r
-\r
- text_destination.Text = DVD_Save.FileName;\r
-\r
- // Quicktime requires .m4v file for chapter markers to work. If checked, change the extension to .m4v (mp4 and m4v are the same thing)\r
- if (Check_ChapterMarkers.Checked)\r
- text_destination.Text = text_destination.Text.Replace(".mp4", ".m4v");\r
- }\r
- }\r
-\r
- private void btn_ActivityWindow_Click(object sender, EventArgs e)\r
- {\r
- Form ActivityWindow = new frmActivityWindow();\r
- ActivityWindow.ShowDialog();\r
- }\r
-\r
- #endregion\r
-\r
- #region Reusable Functions\r
- private void setAudioByContainer(String path)\r
- {\r
- if ((path.EndsWith(".mp4")) || (path.EndsWith(".mp4")))\r
- {\r
- drp_audenc_1.Items.Clear();\r
- drp_audenc_1.Items.Add("AAC");\r
- drp_audenc_1.SelectedIndex = 0;\r
-\r
- drp_audenc_2.Items.Clear();\r
- drp_audenc_2.Items.Add("AAC");\r
- if (drp_audenc_2.Enabled)\r
- drp_audenc_2.SelectedIndex = 0;\r
- }\r
- else if (path.EndsWith(".avi"))\r
- {\r
- drp_audenc_1.Items.Clear();\r
- drp_audenc_1.Items.Add("MP3");\r
- drp_audenc_1.Items.Add("AC3");\r
- drp_audenc_1.SelectedIndex = 0;\r
-\r
- drp_audenc_2.Items.Clear();\r
- drp_audenc_2.Items.Add("MP3");\r
- drp_audenc_2.Items.Add("AC3");\r
- if (drp_audenc_2.Enabled)\r
- drp_audenc_2.SelectedIndex = 0;\r
- }\r
- else if (path.EndsWith(".ogm"))\r
- {\r
- drp_audenc_1.Items.Clear();\r
- drp_audenc_1.Items.Add("Vorbis");\r
- drp_audenc_1.SelectedIndex = 0;\r
-\r
- drp_audenc_2.Items.Clear();\r
- drp_audenc_2.Items.Add("Vorbis");\r
- if (drp_audenc_2.Enabled)\r
- drp_audenc_2.SelectedIndex = 0;\r
- }\r
- else if (path.EndsWith(".mkv"))\r
- {\r
- drp_audenc_1.Items.Clear();\r
- drp_audenc_1.Items.Add("AAC");\r
- drp_audenc_1.Items.Add("MP3");\r
- drp_audenc_1.Items.Add("AC3");\r
- drp_audenc_1.Items.Add("Vorbis");\r
- drp_audenc_1.SelectedIndex = 0;\r
-\r
- drp_audenc_2.Items.Clear();\r
- drp_audenc_2.Items.Add("AAC");\r
- drp_audenc_2.Items.Add("MP3");\r
- drp_audenc_2.Items.Add("AC3");\r
- drp_audenc_2.Items.Add("Vorbis");\r
- if (drp_audenc_2.Enabled)\r
- drp_audenc_2.SelectedIndex = 0;\r
- }\r
- }\r
- #endregion\r
-\r
- #region frmMain Actions\r
-\r
- private void text_destination_TextChanged(object sender, EventArgs e)\r
+ private void drp_dvdtitle_Click(object sender, EventArgs e)\r
{\r
- setAudioByContainer(text_destination.Text);\r
+ if (drp_dvdtitle.Items.Count == 0)\r
+ MessageBox.Show("There are no titles to select. Please scan the DVD by clicking the 'browse' button above before trying to select a title.", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
}\r
-\r
private void drp_dvdtitle_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
// Reset some values on the form\r
hb_common_func.autoName(this);\r
hb_common_func.chapterNaming(this);\r
}\r
-\r
private void drop_chapterStart_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
drop_chapterStart.BackColor = Color.White;\r
// Run the Autonaming function\r
hb_common_func.autoName(this);\r
}\r
-\r
private void drop_chapterFinish_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
drop_chapterFinish.BackColor = Color.White;\r
hb_common_func.autoName(this);\r
}\r
\r
- private void text_bitrate_TextChanged(object sender, EventArgs e)\r
- {\r
- text_filesize.Text = "";\r
- slider_videoQuality.Value = 0;\r
- SliderValue.Text = "0%";\r
- }\r
-\r
- private void text_filesize_TextChanged(object sender, EventArgs e)\r
- {\r
- text_bitrate.Text = "";\r
- slider_videoQuality.Value = 0;\r
- SliderValue.Text = "0%";\r
- }\r
-\r
- private void slider_videoQuality_Scroll(object sender, EventArgs e)\r
+ //Destination\r
+ private void btn_destBrowse_Click(object sender, EventArgs e)\r
{\r
- SliderValue.Text = slider_videoQuality.Value.ToString() + "%";\r
- text_bitrate.Text = "";\r
- text_filesize.Text = "";\r
- }\r
+ // This removes the file extension from the filename box on the save file dialog.\r
+ // It's daft but some users don't realise that typing an extension overrides the dropdown extension selected.\r
+ DVD_Save.FileName = DVD_Save.FileName.Replace(".mp4", "").Replace(".m4v", "").Replace(".mkv", "").Replace(".ogm", "").Replace(".avi", "");\r
\r
- private void text_width_TextChanged(object sender, EventArgs e)\r
- {\r
- try\r
+ // Show the dialog and set the main form file path\r
+ DVD_Save.ShowDialog();\r
+ if (DVD_Save.FileName.StartsWith("\\"))\r
+ MessageBox.Show("Sorry, HandBrake does not support UNC file paths. \nTry mounting the share as a network drive in My Computer", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+ else\r
{\r
+ setAudioByContainer(DVD_Save.FileName);\r
\r
- if ((int.Parse(text_width.Text) % 16) != 0)\r
- text_width.BackColor = Color.LightCoral;\r
- else\r
- text_width.BackColor = Color.LightGreen;\r
-\r
-\r
- if ((lbl_Aspect.Text != "Select a Title") && (drp_crop.SelectedIndex == 2))\r
- {\r
- double height = int.Parse(text_width.Text) / double.Parse(lbl_Aspect.Text);\r
- double mod16 = height % 16;\r
- height = height - mod16;\r
+ text_destination.Text = DVD_Save.FileName;\r
\r
- if (text_width.Text == "")\r
- {\r
- text_height.Text = "";\r
- text_width.BackColor = Color.White;\r
- }\r
- else\r
- text_height.Text = height.ToString();\r
- }\r
- }\r
- catch (Exception)\r
- {\r
- // No need to throw an error here.\r
+ // Quicktime requires .m4v file for chapter markers to work. If checked, change the extension to .m4v (mp4 and m4v are the same thing)\r
+ if (Check_ChapterMarkers.Checked)\r
+ text_destination.Text = text_destination.Text.Replace(".mp4", ".m4v");\r
}\r
}\r
-\r
- private void text_height_TextChanged(object sender, EventArgs e)\r
+ private void text_destination_TextChanged(object sender, EventArgs e)\r
{\r
- try\r
- {\r
- if ((int.Parse(text_height.Text) % 16) != 0)\r
- text_height.BackColor = Color.LightCoral;\r
- else\r
- text_height.BackColor = Color.LightGreen;\r
- }\r
- catch (Exception)\r
- {\r
- // No need to alert the user.\r
- }\r
+ setAudioByContainer(text_destination.Text);\r
}\r
\r
- private void drp_crop_SelectedIndexChanged(object sender, EventArgs e)\r
+ // Output Settings\r
+ private void drp_videoEncoder_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
- if ((string)drp_crop.SelectedItem == "Custom")\r
+ //Turn off some options which are H.264 only when the user selects a non h.264 encoder\r
+ if (!drp_videoEncoder.Text.Contains("H.264"))\r
+ {\r
+ check_turbo.CheckState = CheckState.Unchecked;\r
+ check_turbo.Enabled = false;\r
+ h264Tab.Enabled = false;\r
+ rtf_x264Query.Text = "";\r
+ check_iPodAtom.Enabled = false;\r
+ check_iPodAtom.Checked = false;\r
+ check_optimiseMP4.Enabled = false;\r
+ if (drp_anamorphic.Items.Count == 3)\r
+ drp_anamorphic.Items.RemoveAt(2);\r
+ }\r
+ else\r
+ {\r
+ if (check_2PassEncode.CheckState == CheckState.Checked)\r
+ check_turbo.Enabled = true;\r
+\r
+ h264Tab.Enabled = true;\r
+ check_iPodAtom.Enabled = true;\r
+ check_optimiseMP4.Enabled = true;\r
+ if (!drp_anamorphic.Items.Contains("Loose"))\r
+ drp_anamorphic.Items.Add("Loose");\r
+ }\r
+\r
+ }\r
+ private void check_largeFile_CheckedChanged(object sender, EventArgs e)\r
+ {\r
+ if ((!text_destination.Text.Contains(".mp4")) && (!text_destination.Text.Contains(".m4v")))\r
+ {\r
+ check_largeFile.BackColor = Color.LightCoral;\r
+ check_largeFile.CheckState = CheckState.Unchecked;\r
+ }\r
+ else\r
+ {\r
+ check_largeFile.BackColor = Color.Transparent;\r
+ }\r
+ }\r
+ private void check_iPodAtom_CheckedChanged(object sender, EventArgs e)\r
+ {\r
+ if ((!text_destination.Text.Contains(".mp4")) && (!text_destination.Text.Contains(".m4v")))\r
+ {\r
+ text_destination.BackColor = Color.LightCoral;\r
+ check_iPodAtom.BackColor = Color.LightCoral;\r
+ check_iPodAtom.CheckState = CheckState.Unchecked;\r
+ }\r
+ else\r
+ {\r
+ check_iPodAtom.BackColor = Color.Transparent;\r
+ text_destination.BackColor = Color.White;\r
+ }\r
+ }\r
+ private void check_optimiseMP4_CheckedChanged(object sender, EventArgs e)\r
+ {\r
+ if ((!text_destination.Text.Contains(".mp4")) && (!text_destination.Text.Contains(".m4v")))\r
+ {\r
+ check_optimiseMP4.BackColor = Color.LightCoral;\r
+ text_destination.BackColor = Color.LightCoral;\r
+ check_optimiseMP4.CheckState = CheckState.Unchecked;\r
+ }\r
+ else\r
+ {\r
+ check_optimiseMP4.BackColor = Color.Transparent;\r
+ text_destination.BackColor = Color.White;\r
+ }\r
+ }\r
+\r
+ //Video Tab\r
+ private void text_bitrate_TextChanged(object sender, EventArgs e)\r
+ {\r
+ text_filesize.Text = "";\r
+ slider_videoQuality.Value = 0;\r
+ SliderValue.Text = "0%";\r
+ }\r
+ private void text_filesize_TextChanged(object sender, EventArgs e)\r
+ {\r
+ text_bitrate.Text = "";\r
+ slider_videoQuality.Value = 0;\r
+ SliderValue.Text = "0%";\r
+ }\r
+ private void slider_videoQuality_Scroll(object sender, EventArgs e)\r
+ {\r
+ SliderValue.Text = slider_videoQuality.Value.ToString() + "%";\r
+ text_bitrate.Text = "";\r
+ text_filesize.Text = "";\r
+ }\r
+ private void check_2PassEncode_CheckedChanged(object sender, EventArgs e)\r
+ {\r
+ if (check_2PassEncode.CheckState.ToString() == "Checked")\r
+ {\r
+ if (drp_videoEncoder.Text.Contains("H.264"))\r
+ check_turbo.Enabled = true;\r
+ }\r
+ else\r
+ {\r
+ check_turbo.Enabled = false;\r
+ check_turbo.CheckState = CheckState.Unchecked;\r
+ }\r
+ }\r
+\r
+ //Picture Tab\r
+ private void text_width_TextChanged(object sender, EventArgs e)\r
+ {\r
+ try\r
+ {\r
+\r
+ if ((int.Parse(text_width.Text) % 16) != 0)\r
+ text_width.BackColor = Color.LightCoral;\r
+ else\r
+ text_width.BackColor = Color.LightGreen;\r
+\r
+\r
+ if ((lbl_Aspect.Text != "Select a Title") && (drp_crop.SelectedIndex == 2))\r
+ {\r
+ double height = int.Parse(text_width.Text) / double.Parse(lbl_Aspect.Text);\r
+ double mod16 = height % 16;\r
+ height = height - mod16;\r
+\r
+ if (text_width.Text == "")\r
+ {\r
+ text_height.Text = "";\r
+ text_width.BackColor = Color.White;\r
+ }\r
+ else\r
+ text_height.Text = height.ToString();\r
+ }\r
+ }\r
+ catch (Exception)\r
+ {\r
+ // No need to throw an error here.\r
+ }\r
+ }\r
+ private void text_height_TextChanged(object sender, EventArgs e)\r
+ {\r
+ try\r
+ {\r
+ if ((int.Parse(text_height.Text) % 16) != 0)\r
+ text_height.BackColor = Color.LightCoral;\r
+ else\r
+ text_height.BackColor = Color.LightGreen;\r
+ }\r
+ catch (Exception)\r
+ {\r
+ // No need to alert the user.\r
+ }\r
+ }\r
+ private void drp_crop_SelectedIndexChanged(object sender, EventArgs e)\r
+ {\r
+ if ((string)drp_crop.SelectedItem == "Custom")\r
{\r
text_left.Enabled = true;\r
text_right.Enabled = true;\r
\r
}\r
}\r
-\r
private void check_vfr_CheckedChanged(object sender, EventArgs e)\r
{\r
if (check_vfr.CheckState == CheckState.Checked)\r
lbl_vfr.Visible = false;\r
}\r
}\r
-\r
private void drp_anamorphic_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
if (drp_anamorphic.SelectedIndex == 1)\r
}\r
}\r
\r
- private void check_2PassEncode_CheckedChanged(object sender, EventArgs e)\r
- {\r
- if (check_2PassEncode.CheckState.ToString() == "Checked")\r
- {\r
- if (drp_videoEncoder.Text.Contains("H.264"))\r
- check_turbo.Enabled = true;\r
- }\r
- else\r
- {\r
- check_turbo.Enabled = false;\r
- check_turbo.CheckState = CheckState.Unchecked;\r
- }\r
- }\r
-\r
- private void check_largeFile_CheckedChanged(object sender, EventArgs e)\r
- {\r
- if ((!text_destination.Text.Contains(".mp4")) && (!text_destination.Text.Contains(".m4v")))\r
- {\r
- check_largeFile.BackColor = Color.LightCoral;\r
- check_largeFile.CheckState = CheckState.Unchecked;\r
- }\r
- else\r
- {\r
- check_largeFile.BackColor = Color.Transparent;\r
- }\r
- }\r
-\r
- private void check_iPodAtom_CheckedChanged(object sender, EventArgs e)\r
- {\r
- if ((!text_destination.Text.Contains(".mp4")) && (!text_destination.Text.Contains(".m4v")))\r
- {\r
- text_destination.BackColor = Color.LightCoral;\r
- check_iPodAtom.BackColor = Color.LightCoral;\r
- check_iPodAtom.CheckState = CheckState.Unchecked;\r
- }\r
- else\r
- {\r
- check_iPodAtom.BackColor = Color.Transparent;\r
- text_destination.BackColor = Color.White;\r
- }\r
- }\r
-\r
- private void check_optimiseMP4_CheckedChanged(object sender, EventArgs e)\r
- {\r
- if ((!text_destination.Text.Contains(".mp4")) && (!text_destination.Text.Contains(".m4v")))\r
- {\r
- check_optimiseMP4.BackColor = Color.LightCoral;\r
- text_destination.BackColor = Color.LightCoral;\r
- check_optimiseMP4.CheckState = CheckState.Unchecked;\r
- }\r
- else\r
- {\r
- check_optimiseMP4.BackColor = Color.Transparent;\r
- text_destination.BackColor = Color.White;\r
- }\r
- }\r
-\r
- private void drp_dvdtitle_Click(object sender, EventArgs e)\r
- {\r
- if (drp_dvdtitle.Items.Count == 0)\r
- MessageBox.Show("There are no titles to select. Please scan the DVD by clicking the 'browse' button above before trying to select a title.", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
- }\r
-\r
- // Audio Track Changed\r
+ // Audio Tab\r
private void drp_track1Audio_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
if (drp_track1Audio.SelectedItem.Equals("None"))\r
drp_audmix_2.Text = "Automatic";\r
}\r
}\r
- \r
- // Audio Mixdown Selection Changed\r
private void drp_audioMixDown_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
if ((drp_audenc_1.Text == "AAC") && (drp_audmix_1.Text == "6 Channel Discrete"))\r
drp_audbit_2.Items.Add("384");\r
}\r
}\r
-\r
- // Audio Encoder Selection Changed\r
private void drp_audenc_1_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
if (drp_audenc_1.Text == "AC3")\r
drp_audbit_2.Items.Add("320");\r
}\r
}\r
-\r
private void slider_drc_Scroll(object sender, EventArgs e)\r
{\r
double value = slider_drc.Value / 10.0;\r
\r
lbl_drc.Text = value.ToString();\r
}\r
-\r
private void drp_subtitle_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
if (drp_subtitle.Text.Contains("None"))\r
check_forced.Enabled = true;\r
}\r
\r
+ // Chapter Marker Tab\r
private void Check_ChapterMarkers_CheckedChanged(object sender, EventArgs e)\r
{\r
if (Check_ChapterMarkers.Checked)\r
}\r
}\r
\r
- private void drp_videoEncoder_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- //Turn off some options which are H.264 only when the user selects a non h.264 encoder\r
- if (!drp_videoEncoder.Text.Contains("H.264"))\r
- {\r
- check_turbo.CheckState = CheckState.Unchecked;\r
- check_turbo.Enabled = false;\r
- h264Tab.Enabled = false;\r
- rtf_x264Query.Text = "";\r
- check_iPodAtom.Enabled = false;\r
- check_iPodAtom.Checked = false;\r
- check_optimiseMP4.Enabled = false;\r
- if (drp_anamorphic.Items.Count == 3)\r
- drp_anamorphic.Items.RemoveAt(2);\r
- }\r
- else\r
- {\r
- if (check_2PassEncode.CheckState == CheckState.Checked)\r
- check_turbo.Enabled = true;\r
-\r
- h264Tab.Enabled = true;\r
- check_iPodAtom.Enabled = true;\r
- check_optimiseMP4.Enabled = true;\r
- if (!drp_anamorphic.Items.Contains("Loose"))\r
- drp_anamorphic.Items.Add("Loose");\r
- }\r
-\r
- }\r
-\r
- #endregion\r
-\r
- #region Advanced H264 Options Changed\r
-\r
- /*\r
- * x264 widgets\r
- */\r
+ // Advanced Tab\r
private void drop_refFrames_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("ref", this);\r
}\r
-\r
private void check_mixedReferences_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("mixed-refs", this);\r
}\r
-\r
private void drop_bFrames_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("bframes", this);\r
}\r
-\r
private void drop_directPrediction_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("direct", this);\r
}\r
-\r
private void check_weightedBFrames_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("weightb", this);\r
}\r
-\r
private void check_bFrameDistortion_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("brdo", this);\r
}\r
-\r
private void check_BidirectionalRefinement_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("bime", this);\r
}\r
-\r
private void check_pyrmidalBFrames_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("b-pyramid", this);\r
}\r
-\r
private void drop_MotionEstimationMethod_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("me", this);\r
}\r
-\r
private void drop_MotionEstimationRange_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("merange", this);\r
}\r
-\r
private void drop_subpixelMotionEstimation_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("subq", this);\r
}\r
-\r
private void drop_analysis_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("analyse", this);\r
}\r
-\r
private void check_8x8DCT_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("8x8dct", this);\r
}\r
-\r
private void drop_deblockAlpha_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("deblock", this);\r
\r
}\r
-\r
private void drop_deblockBeta_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("deblock", this);\r
\r
}\r
-\r
private void drop_trellis_SelectedIndexChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("trellis", this);\r
}\r
-\r
private void check_noFastPSkip_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("no-fast-pskip", this);\r
}\r
-\r
private void check_noDCTDecimate_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("no-dct-decimate", this);\r
\r
}\r
-\r
private void check_Cabac_CheckedChanged(object sender, EventArgs e)\r
{\r
x264PanelFunctions.on_x264_WidgetChange("cabac", this);\r
}\r
\r
- /*\r
- * Buttons and x264 RTF Box\r
- */\r
private void rtf_x264Query_TextChanged(object sender, EventArgs e)\r
{\r
if (rtf_x264Query.Text.EndsWith("\n"))\r
x264PanelFunctions.reset2Defaults(this);\r
}\r
}\r
-\r
private void btn_reset_Click(object sender, EventArgs e)\r
{\r
rtf_x264Query.Text = "";\r
x264PanelFunctions.reset2Defaults(this);\r
}\r
\r
- #endregion\r
-\r
- #region Query Editor Tab\r
-\r
- private void btn_clear_Click(object sender, EventArgs e)\r
- {\r
- rtf_query.Clear();\r
- }\r
-\r
+ // Query Editor Tab\r
private void btn_generate_Query_Click(object sender, EventArgs e)\r
{\r
rtf_query.Text = hb_common_func.GenerateTheQuery(this);\r
}\r
-\r
+ private void btn_clear_Click(object sender, EventArgs e)\r
+ {\r
+ rtf_query.Clear();\r
+ }\r
private void btn_copy2C_Click(object sender, EventArgs e)\r
{\r
if (rtf_query.Text != "")\r
Clipboard.SetText(rtf_query.Text, TextDataFormat.Text);\r
}\r
\r
- #endregion\r
-\r
- // -------------------------------------------------------------- \r
- // Main Window Preset System\r
- // --------------------------------------------------------------\r
-\r
- #region Preset System\r
-\r
- // Import Current Presets\r
- public void loadPresetPanel()\r
+ // Presets\r
+ private void btn_addPreset_Click(object sender, EventArgs e)\r
{\r
- treeView_presets.Nodes.Clear();\r
- ArrayList presetNameList = new ArrayList();\r
+ Form preset = new frmAddPreset(this);\r
+ preset.ShowDialog();\r
+ }\r
+ private void btn_removePreset_Click(object sender, EventArgs e)\r
+ {\r
+ ArrayList user_presets = new ArrayList();\r
+ ArrayList modified_presets_list = new ArrayList();\r
+ string selectedPreset = null;\r
+ selectedPreset = treeView_presets.SelectedNode.Text;\r
\r
- // Load in the built in presets from presets.dat\r
- string filePath = Application.StartupPath.ToString() + "\\presets.dat";\r
- if (File.Exists(filePath))\r
- {\r
- StreamReader presetInput = new StreamReader(filePath);\r
- while (!presetInput.EndOfStream)\r
- {\r
- if ((char)presetInput.Peek() == '+')\r
- {\r
- string preset = presetInput.ReadLine().Replace("+ ", "");\r
- Regex r = new Regex("(: )"); // Split on hyphens. \r
- presetNameList.Add(r.Split(preset));\r
- }\r
- else\r
- presetInput.ReadLine();\r
- }\r
+ if (!selectedPreset.StartsWith("--"))\r
+ MessageBox.Show("Sorry, You can not remove any of the built in presets.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
\r
- presetInput.Close();\r
- presetInput.Dispose();\r
- }\r
- addPresetToList(presetNameList);\r
- presetNameList.Clear();\r
\r
- // Load in the users presets from user_presets.dat\r
- filePath = Application.StartupPath.ToString() + "\\user_presets.dat";\r
- if (File.Exists(filePath))\r
+ // Scan through the users presets and dump them all in an arraylist\r
+ string userPresets = Application.StartupPath.ToString() + "\\user_presets.dat";\r
+ if (File.Exists(userPresets))\r
{\r
- StreamReader presetInput = new StreamReader(filePath);\r
+ StreamReader presetInput = new StreamReader(userPresets);\r
while (!presetInput.EndOfStream)\r
{\r
if ((char)presetInput.Peek() == '+')\r
{\r
- string preset = "--" + presetInput.ReadLine().Replace("+ ", "");\r
- Regex r = new Regex("(: )"); // Split on hyphens. \r
- presetNameList.Add(r.Split(preset));\r
+ string item = presetInput.ReadLine();\r
+ user_presets.Add(item);\r
+ modified_presets_list.Add(item);\r
}\r
else\r
presetInput.ReadLine();\r
presetInput.Close();\r
presetInput.Dispose();\r
}\r
- addPresetToList(presetNameList);\r
- }\r
\r
- private void addPresetToList(ArrayList presetNameList)\r
- {\r
- TreeNode preset_treeview = new TreeNode();\r
- foreach (string[] preset in presetNameList)\r
+ // now lets scan through the arraylist and remove the preset with the\r
+ // same name as the one selected.\r
+ int c = 0;\r
+ foreach (string item in user_presets)\r
{\r
- preset_treeview = new TreeNode(preset[0]);\r
-\r
- // Now Fill Out List View with Items\r
- treeView_presets.Nodes.Add(preset_treeview);\r
+ string preset_name = selectedPreset.Replace("--", "");\r
+ if (item.Contains(preset_name))\r
+ modified_presets_list.RemoveAt(c);\r
+ c++;\r
}\r
- }\r
\r
- // Generate a new presets.dat file from the CLI\r
- private void grabCLIPresets()\r
- {\r
- string appPath = Application.StartupPath.ToString() + "\\";\r
- string strCmdLine = "cmd /c " + '"' + '"' + appPath + "HandBrakeCLI.exe" + '"' + " --preset-list >" + '"' + appPath + "presets.dat" + '"' + " 2>&1" + '"';\r
- Process hbproc = Process.Start("CMD.exe", strCmdLine);\r
- hbproc.WaitForExit();\r
- hbproc.Dispose();\r
- hbproc.Close();\r
- }\r
-\r
- // Selects the preset called "normal". This is HandBrakes default settings\r
- private void loadNormalPreset()\r
- {\r
- try\r
- {\r
- string appPath = Application.StartupPath.ToString() + "\\presets.dat";\r
- if (File.Exists(appPath))\r
- {\r
-\r
- int normal = 0;\r
- foreach (TreeNode treenode in treeView_presets.Nodes)\r
- {\r
- if (treenode.ToString().Equals("TreeNode: Normal"))\r
- normal = treenode.Index;\r
- }\r
-\r
- TreeNode np = treeView_presets.Nodes[normal];\r
-\r
- treeView_presets.SelectedNode = np;\r
- }\r
- }\r
- catch (Exception)\r
+ // Now we need to rebuilt the user presets file.\r
+ StreamWriter line = new StreamWriter(userPresets);\r
+ foreach (string item in modified_presets_list)\r
{\r
- // Do nothing\r
+ line.WriteLine(item);\r
}\r
- }\r
+ line.Close();\r
+ line.Dispose();\r
\r
- // Set's the current options set in the program as the new defaults for the program.\r
+ // Now reload the preset panel\r
+ loadPresetPanel();\r
+ }\r
private void btn_setDefault_Click(object sender, EventArgs e)\r
{\r
String query = hb_common_func.GenerateTheQuery(this);\r
Properties.Settings.Default.Save();\r
MessageBox.Show("New default settings saved.", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
}\r
-\r
- // When the user select a preset from the treeview, load it\r
private void treeView_presets_AfterSelect(object sender, TreeViewEventArgs e)\r
{\r
+ //When the user select a preset from the treeview, load it\r
try\r
{\r
// Scan through the built in presets\r
}\r
}\r
\r
- private void checkSelectedPreset(string preset)\r
+ #endregion\r
+\r
+ #region Functions\r
+ // DVD Parsing\r
+ public void setStreamReader(Parsing.DVD dvd)\r
{\r
- string selectedPreset = null;\r
- selectedPreset = treeView_presets.SelectedNode.Text;\r
+ this.thisDVD = dvd;\r
+ }\r
\r
- Regex r = new Regex("(: )"); // Split on hyphens. \r
- string[] presetName = r.Split(preset);\r
+ // Audio system functions\r
+ private void setAudioByContainer(String path)\r
+ {\r
+ if ((path.EndsWith(".mp4")) || (path.EndsWith(".mp4")))\r
+ {\r
+ drp_audenc_1.Items.Clear();\r
+ drp_audenc_1.Items.Add("AAC");\r
+ drp_audenc_1.SelectedIndex = 0;\r
\r
- if ((selectedPreset == (presetName[0])) || (selectedPreset == ("--" + presetName[0])))\r
+ drp_audenc_2.Items.Clear();\r
+ drp_audenc_2.Items.Add("AAC");\r
+ if (drp_audenc_2.Enabled)\r
+ drp_audenc_2.SelectedIndex = 0;\r
+ }\r
+ else if (path.EndsWith(".avi"))\r
{\r
- //Ok, Reset all the H264 widgets before changing the preset\r
- x264PanelFunctions.reset2Defaults(this);\r
+ drp_audenc_1.Items.Clear();\r
+ drp_audenc_1.Items.Add("MP3");\r
+ drp_audenc_1.Items.Add("AC3");\r
+ drp_audenc_1.SelectedIndex = 0;\r
\r
- // Send the query from the file to the Query Parser class\r
- Functions.QueryParser presetQuery = Functions.QueryParser.Parse(preset);\r
+ drp_audenc_2.Items.Clear();\r
+ drp_audenc_2.Items.Add("MP3");\r
+ drp_audenc_2.Items.Add("AC3");\r
+ if (drp_audenc_2.Enabled)\r
+ drp_audenc_2.SelectedIndex = 0;\r
+ }\r
+ else if (path.EndsWith(".ogm"))\r
+ {\r
+ drp_audenc_1.Items.Clear();\r
+ drp_audenc_1.Items.Add("Vorbis");\r
+ drp_audenc_1.SelectedIndex = 0;\r
\r
- // Now load the preset\r
- hb_common_func.presetLoader(this, presetQuery, selectedPreset);\r
+ drp_audenc_2.Items.Clear();\r
+ drp_audenc_2.Items.Add("Vorbis");\r
+ if (drp_audenc_2.Enabled)\r
+ drp_audenc_2.SelectedIndex = 0;\r
+ }\r
+ else if (path.EndsWith(".mkv"))\r
+ {\r
+ drp_audenc_1.Items.Clear();\r
+ drp_audenc_1.Items.Add("AAC");\r
+ drp_audenc_1.Items.Add("MP3");\r
+ drp_audenc_1.Items.Add("AC3");\r
+ drp_audenc_1.Items.Add("Vorbis");\r
+ drp_audenc_1.SelectedIndex = 0;\r
\r
- // The x264 widgets will need updated, so do this now:\r
- x264PanelFunctions.X264_StandardizeOptString(this);\r
- x264PanelFunctions.X264_SetCurrentSettingsInPanel(this);\r
+ drp_audenc_2.Items.Clear();\r
+ drp_audenc_2.Items.Add("AAC");\r
+ drp_audenc_2.Items.Add("MP3");\r
+ drp_audenc_2.Items.Add("AC3");\r
+ drp_audenc_2.Items.Add("Vorbis");\r
+ if (drp_audenc_2.Enabled)\r
+ drp_audenc_2.SelectedIndex = 0;\r
}\r
}\r
\r
- private void btn_addPreset_Click(object sender, EventArgs e)\r
+ // Preset system functions\r
+ private void addPresetToList(ArrayList presetNameList)\r
{\r
- Form preset = new frmAddPreset(this);\r
- preset.ShowDialog();\r
- }\r
+ // Adds a new preset name to the preset list.\r
+ TreeNode preset_treeview = new TreeNode();\r
+ foreach (string[] preset in presetNameList)\r
+ {\r
+ preset_treeview = new TreeNode(preset[0]);\r
\r
- private void btn_removePreset_Click(object sender, EventArgs e)\r
+ // Now Fill Out List View with Items\r
+ treeView_presets.Nodes.Add(preset_treeview);\r
+ }\r
+ }\r
+ private void grabCLIPresets()\r
{\r
- ArrayList user_presets = new ArrayList();\r
- ArrayList modified_presets_list = new ArrayList();\r
- string selectedPreset = null;\r
- selectedPreset = treeView_presets.SelectedNode.Text;\r
+ // Gets the presets from the CLI and stores them in presets.dat\r
+ string appPath = Application.StartupPath.ToString() + "\\";\r
+ string strCmdLine = "cmd /c " + '"' + '"' + appPath + "HandBrakeCLI.exe" + '"' + " --preset-list >" + '"' + appPath + "presets.dat" + '"' + " 2>&1" + '"';\r
+ Process hbproc = Process.Start("CMD.exe", strCmdLine);\r
+ hbproc.WaitForExit();\r
+ hbproc.Dispose();\r
+ hbproc.Close();\r
+ }\r
+ private void loadNormalPreset()\r
+ {\r
+ //Loads the preset called "normal"\r
+ try\r
+ {\r
+ string appPath = Application.StartupPath.ToString() + "\\presets.dat";\r
+ if (File.Exists(appPath))\r
+ {\r
\r
- if (!selectedPreset.StartsWith("--"))\r
- MessageBox.Show("Sorry, You can not remove any of the built in presets.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+ int normal = 0;\r
+ foreach (TreeNode treenode in treeView_presets.Nodes)\r
+ {\r
+ if (treenode.ToString().Equals("TreeNode: Normal"))\r
+ normal = treenode.Index;\r
+ }\r
\r
+ TreeNode np = treeView_presets.Nodes[normal];\r
\r
- // Scan through the users presets and dump them all in an arraylist\r
- string userPresets = Application.StartupPath.ToString() + "\\user_presets.dat";\r
- if (File.Exists(userPresets))\r
+ treeView_presets.SelectedNode = np;\r
+ }\r
+ }\r
+ catch (Exception)\r
{\r
- StreamReader presetInput = new StreamReader(userPresets);\r
+ // Do nothing\r
+ }\r
+ }\r
+ public void loadPresetPanel()\r
+ {\r
+ treeView_presets.Nodes.Clear();\r
+ ArrayList presetNameList = new ArrayList();\r
+\r
+ // Load in the built in presets from presets.dat\r
+ string filePath = Application.StartupPath.ToString() + "\\presets.dat";\r
+ if (File.Exists(filePath))\r
+ {\r
+ StreamReader presetInput = new StreamReader(filePath);\r
while (!presetInput.EndOfStream)\r
{\r
if ((char)presetInput.Peek() == '+')\r
{\r
- string item = presetInput.ReadLine();\r
- user_presets.Add(item);\r
- modified_presets_list.Add(item);\r
+ string preset = presetInput.ReadLine().Replace("+ ", "");\r
+ Regex r = new Regex("(: )"); // Split on hyphens. \r
+ presetNameList.Add(r.Split(preset));\r
}\r
else\r
presetInput.ReadLine();\r
presetInput.Close();\r
presetInput.Dispose();\r
}\r
+ addPresetToList(presetNameList);\r
+ presetNameList.Clear();\r
\r
- // now lets scan through the arraylist and remove the preset with the\r
- // same name as the one selected.\r
- int c = 0;\r
- foreach (string item in user_presets)\r
+ // Load in the users presets from user_presets.dat\r
+ filePath = Application.StartupPath.ToString() + "\\user_presets.dat";\r
+ if (File.Exists(filePath))\r
{\r
- string preset_name = selectedPreset.Replace("--", "");\r
- if (item.Contains(preset_name))\r
- modified_presets_list.RemoveAt(c);\r
- c++;\r
- }\r
+ StreamReader presetInput = new StreamReader(filePath);\r
+ while (!presetInput.EndOfStream)\r
+ {\r
+ if ((char)presetInput.Peek() == '+')\r
+ {\r
+ string preset = "--" + presetInput.ReadLine().Replace("+ ", "");\r
+ Regex r = new Regex("(: )"); // Split on hyphens. \r
+ presetNameList.Add(r.Split(preset));\r
+ }\r
+ else\r
+ presetInput.ReadLine();\r
+ }\r
\r
- // Now we need to rebuilt the user presets file.\r
- StreamWriter line = new StreamWriter(userPresets);\r
- foreach (string item in modified_presets_list)\r
- {\r
- line.WriteLine(item);\r
+ presetInput.Close();\r
+ presetInput.Dispose();\r
}\r
- line.Close();\r
- line.Dispose();\r
-\r
- // Now reload the preset panel\r
- loadPresetPanel();\r
+ addPresetToList(presetNameList);\r
}\r
+ private void checkSelectedPreset(string preset)\r
+ {\r
+ string selectedPreset = null;\r
+ selectedPreset = treeView_presets.SelectedNode.Text;\r
\r
- #endregion\r
-\r
- //---------------------------------------------------\r
- // Encode / Cancel Buttons\r
- // Encode Progress Text Handler\r
- //---------------------------------------------------\r
-\r
- #region Encodeing and Queue\r
-\r
- Functions.CLI process = new Functions.CLI();\r
- private delegate void UpdateUIHandler();\r
-\r
- [DllImport("user32.dll")]\r
- public static extern void LockWorkStation();\r
- [DllImport("user32.dll")]\r
- public static extern int ExitWindowsEx(int uFlags, int dwReason);\r
+ Regex r = new Regex("(: )"); // Split on hyphens. \r
+ string[] presetName = r.Split(preset);\r
\r
- private void btn_start_Click(object sender, EventArgs e)\r
- {\r
- if (text_source.Text == "" || text_source.Text == "Click 'Browse' to continue" || text_destination.Text == "")\r
- MessageBox.Show("No source OR destination selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
- else\r
+ if ((selectedPreset == (presetName[0])) || (selectedPreset == ("--" + presetName[0])))\r
{\r
- String query;\r
- if (rtf_query.Text != "")\r
- query = rtf_query.Text;\r
- else\r
- query = hb_common_func.GenerateTheQuery(this);\r
+ //Ok, Reset all the H264 widgets before changing the preset\r
+ x264PanelFunctions.reset2Defaults(this);\r
\r
- ThreadPool.QueueUserWorkItem(procMonitor, query);\r
- lbl_encode.Visible = true;\r
- lbl_encode.Text = "Encoding in Progress";\r
- }\r
- }\r
+ // Send the query from the file to the Query Parser class\r
+ Functions.QueryParser presetQuery = Functions.QueryParser.Parse(preset);\r
\r
- private void btn_add2Queue_Click(object sender, EventArgs e)\r
- {\r
- if (text_source.Text == "" || text_source.Text == "Click 'Browse' to continue" || text_destination.Text == "")\r
- MessageBox.Show("No source OR destination selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
- else\r
- {\r
- String query;\r
- if (rtf_query.Text != "")\r
- query = rtf_query.Text;\r
- else\r
- query = hb_common_func.GenerateTheQuery(this);\r
+ // Now load the preset\r
+ hb_common_func.presetLoader(this, presetQuery, selectedPreset);\r
\r
- queueWindow.list_queue.Items.Add(query);\r
- queueWindow.Show();\r
+ // The x264 widgets will need updated, so do this now:\r
+ x264PanelFunctions.X264_StandardizeOptString(this);\r
+ x264PanelFunctions.X264_SetCurrentSettingsInPanel(this);\r
}\r
}\r
\r
- private void btn_showQueue_Click(object sender, EventArgs e)\r
- {\r
- showQueue();\r
- }\r
-\r
+ // Queue system functions\r
private void showQueue()\r
{\r
queueWindow.Show();\r
}\r
+ #endregion\r
+\r
+ #region Encoding and Queue\r
\r
+ // Declarations\r
+ Functions.CLI process = new Functions.CLI();\r
+ private delegate void UpdateUIHandler();\r
+ [DllImport("user32.dll")]\r
+ public static extern void LockWorkStation();\r
+ [DllImport("user32.dll")]\r
+ public static extern int ExitWindowsEx(int uFlags, int dwReason);\r
+\r
+ // Encoding Functions\r
private void procMonitor(object state)\r
{\r
// Make sure we are not already encoding and if we are then display an error.\r
hbProc = process.runCli(this, (string)state, false, false, false, false);\r
hbProc.WaitForExit();\r
\r
- setEncodeLabel();\r
+ setEncodeLabelFinished();\r
hbProc = null;\r
\r
// Do something whent he encode ends.\r
}\r
}\r
}\r
-\r
- private void setEncodeLabel()\r
+ private void setEncodeLabelFinished()\r
{\r
if (this.InvokeRequired)\r
{\r
- this.BeginInvoke(new UpdateUIHandler(setEncodeLabel));\r
+ this.BeginInvoke(new UpdateUIHandler(setEncodeLabelFinished));\r
return;\r
}\r
lbl_encode.Text = "Encoding Finished";\r
\r
#endregion\r
\r
- private void button1_Click(object sender, EventArgs e)\r
- {\r
- string filename;\r
- File_Open.ShowDialog();\r
- filename = File_Open.FileName;\r
-\r
- if (filename != "")\r
- {\r
- try\r
- {\r
- // Create StreamReader & open file\r
- StreamReader line = new StreamReader(filename);\r
-\r
- // Send the query from the file to the Query Parser class then load the preset\r
- Functions.QueryParser presetQuery = Functions.QueryParser.Parse(line.ReadLine());\r
- hb_common_func.presetLoader(this, presetQuery, filename);\r
-\r
- // Close the stream\r
- line.Close();\r
-\r
- }\r
- catch (Exception exc)\r
- {\r
- MessageBox.Show("Unable to load profile. \n\n" + exc.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);\r
- }\r
- }\r
- }\r
-\r
- private void button2_Click(object sender, EventArgs e)\r
- {\r
- string filename;\r
- File_Save.ShowDialog();\r
- filename = File_Save.FileName;\r
- if (filename != "")\r
- {\r
- try\r
- {\r
- // Create a StreamWriter and open the file\r
- StreamWriter line = new StreamWriter(filename);\r
-\r
- // Generate and write the query string to the file\r
- String query = hb_common_func.GenerateTheQuery(this);\r
- line.WriteLine(query);\r
-\r
- // close the stream\r
- line.Close();\r
- MessageBox.Show("Your profile has been sucessfully saved.", "Status", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);\r
- }\r
- catch (Exception)\r
- {\r
- MessageBox.Show("Unable to write to the file. Please make sure the location has the correct permissions for file writing.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);\r
- }\r
-\r
- }\r
- }\r
-\r
-\r
\r
// This is the END of the road ------------------------------------------------------------------------------\r
}\r