OSDN Git Service

CLI: add iso639-2 language code to audio track information display
[handbrake-jp/handbrake-jp-git.git] / win / C# / frmQueue.cs
index 7699216..d52545b 100644 (file)
@@ -8,34 +8,36 @@ using System;
 using System.Collections.Generic;\r
 using System.ComponentModel;\r
 using System.Windows.Forms;\r
+using Handbrake.EncodeQueue;\r
+using System.Collections.ObjectModel;\r
 \r
 namespace Handbrake\r
 {\r
     public partial class frmQueue : Form\r
     {\r
         private delegate void UpdateHandler();\r
-        Queue.QueueHandler queue;\r
+        private QueueHandler queue;\r
 \r
-        public frmQueue(Queue.QueueHandler q)\r
+        public frmQueue(QueueHandler q)\r
         {\r
             InitializeComponent();\r
 \r
             this.queue = q;\r
-            queue.OnEncodeStart += new EventHandler(queue_OnEncodeStart);\r
-            queue.OnQueueFinished += new EventHandler(queue_OnQueueFinished);\r
-            queue.OnPaused += new EventHandler(queue_OnPaused);\r
+            queue.NewJobStarted += new EventHandler(queueOnEncodeStart);\r
+            queue.QueueCompleted += new EventHandler(queueOnQueueFinished);\r
+            queue.QueuePauseRequested += new EventHandler(queueOnPaused);\r
         }\r
-        void queue_OnPaused(object sender, EventArgs e)\r
+        void queueOnPaused(object sender, EventArgs e)\r
         {\r
             setUIEncodeFinished();\r
             updateUIElements();\r
         }\r
-        void queue_OnQueueFinished(object sender, EventArgs e)\r
+        void queueOnQueueFinished(object sender, EventArgs e)\r
         {\r
             setUIEncodeFinished();\r
             resetQueue(); // Reset the Queue Window\r
         }\r
-        void queue_OnEncodeStart(object sender, EventArgs e)\r
+        void queueOnEncodeStart(object sender, EventArgs e)\r
         {\r
             setUIEncodeStarted(); // make sure the UI is set correctly\r
             setCurrentEncodeInformation();\r
@@ -55,7 +57,7 @@ namespace Handbrake
         /// </summary>\r
         public new void Show()\r
         {\r
-            Show(true);\r
+           Show(true);\r
         }\r
 \r
         /// <summary>\r
@@ -66,25 +68,26 @@ namespace Handbrake
         {\r
             if (doSetQueue) setQueue();\r
             base.Show();\r
-            Activate();\r
+\r
+            //Activate();\r
         }\r
 \r
         // Start and Stop Controls\r
         private void btn_encode_Click(object sender, EventArgs e)\r
         {\r
-            if (queue.isPaused)\r
+            if (queue.PauseRequested)\r
             {\r
                 setUIEncodeStarted();\r
                 MessageBox.Show("Encoding restarted", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);\r
             }\r
 \r
-            if (!queue.isEncodeStarted)\r
-                queue.startEncode();\r
+            if (!queue.IsEncoding)\r
+                queue.StartEncodeQueue();\r
 \r
         }\r
         private void btn_pause_Click(object sender, EventArgs e)\r
         {\r
-            queue.pauseEncode();\r
+            queue.RequestPause();\r
             setUIEncodeFinished();\r
             resetQueue();\r
             MessageBox.Show("No further items on the queue will start. The current encode process will continue until it is finished. \nClick 'Encode' when you wish to continue encoding the queue.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
@@ -139,14 +142,14 @@ namespace Handbrake
             }\r
 \r
             list_queue.Items.Clear();\r
-            List<Queue.QueueItem> theQueue = queue.getQueue();\r
-            foreach (Queue.QueueItem queue_item in theQueue)\r
+            ReadOnlyCollection<Job> theQueue = queue.CurrentQueue;\r
+            foreach (Job queue_item in theQueue)\r
             {\r
                 string q_item = queue_item.Query;\r
                 Functions.QueryParser parsed = Functions.QueryParser.Parse(q_item);\r
 \r
                 // Get the DVD Title\r
-                 string title = parsed.DVDTitle == 0 ? "Auto" : parsed.DVDTitle.ToString();\r
+                string title = parsed.DVDTitle == 0 ? "Auto" : parsed.DVDTitle.ToString();\r
 \r
                 // Get the DVD Chapters\r
                 string chapters;\r
@@ -166,17 +169,15 @@ namespace Handbrake
                 item.SubItems.Add(queue_item.Destination); // Destination\r
                 item.SubItems.Add(parsed.VideoEncoder); // Video\r
 \r
-                // Display the first 4 audio tracks.\r
-                String audio = parsed.AudioEncoder1;\r
-                if (parsed.AudioEncoder2 != null)\r
-                    audio += ", " + parsed.AudioEncoder2;\r
-\r
-                if (parsed.AudioEncoder3 != null)\r
-                    audio += ", " + parsed.AudioEncoder3;\r
-\r
-                if (parsed.AudioEncoder4 != null)\r
-                    audio += ", " + parsed.AudioEncoder4;\r
-\r
+                // Display The Audio Track Information\r
+                string audio = string.Empty;\r
+                foreach (Functions.AudioTrack track in parsed.AudioInformation)\r
+                {\r
+                    if (audio != "")\r
+                        audio += ", " + track.Encoder;\r
+                    else\r
+                        audio = track.Encoder;\r
+                }\r
                 item.SubItems.Add(audio); // Audio\r
 \r
                 list_queue.Items.Add(item);\r
@@ -203,14 +204,14 @@ namespace Handbrake
                 }\r
 \r
                 // found query is a global varible\r
-                Functions.QueryParser parsed = Functions.QueryParser.Parse(queue.getLastQueryItem().Query);\r
-                lbl_source.Text = queue.getLastQueryItem().Source;\r
-                lbl_dest.Text = queue.getLastQueryItem().Destination;\r
+                Functions.QueryParser parsed = Functions.QueryParser.Parse(queue.LastEncode.Query);\r
+                lbl_source.Text = queue.LastEncode.Source;\r
+                lbl_dest.Text = queue.LastEncode.Destination;\r
 \r
                 lbl_title.Text = parsed.DVDTitle == 0 ? "Auto" : parsed.DVDTitle.ToString();\r
 \r
                 if (Equals(parsed.DVDChapterStart, 0))\r
-                  lbl_chapt.Text = "Auto";\r
+                    lbl_chapt.Text = "Auto";\r
                 else\r
                 {\r
                     string chapters = parsed.DVDChapterStart.ToString();\r
@@ -220,16 +221,16 @@ namespace Handbrake
                 }\r
 \r
                 lbl_vEnc.Text = parsed.VideoEncoder;\r
-                String audio = parsed.AudioEncoder1;\r
-                if (parsed.AudioEncoder2 != null)\r
-                    audio += ", " + parsed.AudioEncoder2;\r
-\r
-                if (parsed.AudioEncoder3 != null)\r
-                    audio += ", " + parsed.AudioEncoder3;\r
-\r
-                if (parsed.AudioEncoder4 != null)\r
-                    audio += ", " + parsed.AudioEncoder4;\r
 \r
+                // Display The Audio Track Information\r
+                string audio = string.Empty;\r
+                foreach (Functions.AudioTrack track in parsed.AudioInformation)\r
+                {\r
+                    if (audio != "")\r
+                        audio += ", " + track.Encoder;\r
+                    else\r
+                        audio = track.Encoder;\r
+                }\r
                 lbl_aEnc.Text = audio;\r
             }\r
             catch (Exception)\r
@@ -251,16 +252,15 @@ namespace Handbrake
 \r
                 // Reverse the list to delete the items from last to first (preserves indices)\r
                 selectedIndices.Reverse();\r
-                \r
+\r
                 // Remove each selected item\r
                 foreach (int selectedIndex in selectedIndices)\r
-                    queue.remove(selectedIndex);\r
+                    queue.RemoveJob(selectedIndex);\r
 \r
-                queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
                 updateUIElements();\r
 \r
                 // Select the item where the first deleted item was previously\r
-                if (firstSelectedIndex < list_queue.Items.Count) \r
+                if (firstSelectedIndex < list_queue.Items.Count)\r
                     list_queue.Items[firstSelectedIndex].Selected = true;\r
             }\r
 \r
@@ -268,10 +268,39 @@ namespace Handbrake
         }\r
 \r
         // Queue Management\r
+        private void mnu_up_Click(object sender, EventArgs e)\r
+        {\r
+            moveUp();\r
+        }\r
+        private void mnu_Down_Click(object sender, EventArgs e)\r
+        {\r
+            moveDown();\r
+        }\r
+        private void mnu_delete_Click(object sender, EventArgs e)\r
+        {\r
+            deleteSelectedItems();\r
+        }\r
         private void btn_up_Click(object sender, EventArgs e)\r
         {\r
+            moveUp();\r
+        }\r
+        private void btn_down_Click(object sender, EventArgs e)\r
+        {\r
+            moveDown();\r
+        }\r
+        private void btn_delete_Click(object sender, EventArgs e)\r
+        {\r
+            deleteSelectedItems();\r
+        }\r
+        private void list_queue_deleteKey(object sender, KeyEventArgs e)\r
+        {\r
+            if (e.KeyCode == Keys.Delete)\r
+                deleteSelectedItems();\r
+        }\r
+        private void moveUp()\r
+        {\r
             // If there are selected items and the first item is not selected\r
-            if (list_queue.SelectedIndices.Count > 0 && ! list_queue.SelectedIndices.Contains(0))\r
+            if (list_queue.SelectedIndices.Count > 0 && !list_queue.SelectedIndices.Contains(0))\r
             {\r
                 // Copy the selected indices to preserve them during the movement\r
                 List<int> selectedIndices = new List<int>(list_queue.SelectedIndices.Count);\r
@@ -280,9 +309,8 @@ namespace Handbrake
 \r
                 // Move up each selected item\r
                 foreach (int selectedIndex in selectedIndices)\r
-                    queue.moveUp(selectedIndex);\r
+                    queue.MoveUp(selectedIndex);\r
 \r
-                queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
                 updateUIElements();\r
 \r
                 // Keep the selected item(s) selected, now moved up one index\r
@@ -293,11 +321,11 @@ namespace Handbrake
 \r
             list_queue.Select(); // Activate the control to show the selected items\r
         }\r
-        private void btn_down_Click(object sender, EventArgs e)\r
+        private void moveDown()\r
         {\r
             // If there are selected items and the last item is not selected\r
-            if (list_queue.SelectedIndices.Count > 0 && \r
-                ! list_queue.SelectedIndices.Contains(list_queue.Items[list_queue.Items.Count-1].Index))\r
+            if (list_queue.SelectedIndices.Count > 0 &&\r
+                !list_queue.SelectedIndices.Contains(list_queue.Items[list_queue.Items.Count - 1].Index))\r
             {\r
                 // Copy the selected indices to preserve them during the movement\r
                 List<int> selectedIndices = new List<int>(list_queue.SelectedIndices.Count);\r
@@ -309,28 +337,18 @@ namespace Handbrake
 \r
                 // Move down each selected item\r
                 foreach (int selectedIndex in selectedIndices)\r
-                    queue.moveDown(selectedIndex);\r
-                \r
-                queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
+                    queue.MoveDown(selectedIndex);\r
+\r
                 updateUIElements();\r
 \r
                 // Keep the selected item(s) selected, now moved down one index\r
                 foreach (int selectedIndex in selectedIndices)\r
                     if (selectedIndex + 1 < list_queue.Items.Count) // Defensive programming: ensure index is good\r
-                        list_queue.Items[selectedIndex + 1].Selected = true; \r
+                        list_queue.Items[selectedIndex + 1].Selected = true;\r
             }\r
 \r
             list_queue.Select(); // Activate the control to show the selected items\r
         }\r
-        private void btn_delete_Click(object sender, EventArgs e)\r
-        {\r
-            deleteSelectedItems();\r
-        }\r
-        private void list_queue_deleteKey(object sender, KeyEventArgs e)\r
-        {\r
-            if (e.KeyCode == Keys.Delete)\r
-                deleteSelectedItems();\r
-        }\r
 \r
         // Queue Import/Export Features\r
         private void mnu_batch_Click(object sender, EventArgs e)\r
@@ -339,7 +357,7 @@ namespace Handbrake
             SaveFile.Filter = "Batch|.bat";\r
             SaveFile.ShowDialog();\r
             if (SaveFile.FileName != String.Empty)\r
-                queue.writeBatchScript(SaveFile.FileName);\r
+                queue.WriteBatchScriptToFile(SaveFile.FileName);\r
         }\r
         private void mnu_export_Click(object sender, EventArgs e)\r
         {\r
@@ -347,22 +365,21 @@ namespace Handbrake
             SaveFile.Filter = "HandBrake Queue|*.queue";\r
             SaveFile.ShowDialog();\r
             if (SaveFile.FileName != String.Empty)\r
-                queue.write2disk(SaveFile.FileName);\r
+                queue.WriteQueueStateToFile(SaveFile.FileName);\r
         }\r
         private void mnu_import_Click(object sender, EventArgs e)\r
         {\r
             OpenFile.FileName = "";\r
             OpenFile.ShowDialog();\r
             if (OpenFile.FileName != String.Empty)\r
-                queue.recoverQueue(OpenFile.FileName);\r
+                queue.LoadQueueFromFile(OpenFile.FileName);\r
             updateUIElements();\r
         }\r
         private void mnu_readd_Click(object sender, EventArgs e)\r
         {\r
-            if (queue.getLastQueryItem() != null)\r
+            if (!queue.LastEncode.IsEmpty)\r
             {\r
-                queue.add(queue.getLastQueryItem().Query, queue.getLastQueryItem().Source, queue.getLastQueryItem().Destination);\r
-                queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file\r
+                queue.AddJob(queue.LastEncode.Query, queue.LastEncode.Source, queue.LastEncode.Destination);\r
                 updateUIElements();\r
             }\r
         }\r
@@ -375,7 +392,5 @@ namespace Handbrake
             base.OnClosing(e);\r
         }\r
 \r
-        \r
-       \r
     }\r
 }\r