OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / Functions / Main.cs
index 5cdbf52..3071cf5 100644 (file)
@@ -14,6 +14,7 @@ using System.Xml.Serialization;
 using System.Threading;\r
 using Handbrake.EncodeQueue;\r
 using System.Net;\r
+using Handbrake.Model;\r
 \r
 namespace Handbrake.Functions\r
 {\r
@@ -97,10 +98,11 @@ namespace Handbrake.Functions
                 {\r
                     if (csv.Trim() != "")\r
                     {\r
+                        csv = csv.Replace("\\,", "<!comma!>");\r
                         string[] contents = csv.Split(',');\r
                         int chapter;\r
                         int.TryParse(contents[0], out chapter);\r
-                        chapterMap.Add(chapter, contents[1]);\r
+                        chapterMap.Add(chapter, contents[1].Replace("<!comma!>", ","));\r
                     }\r
                     csv = sr.ReadLine();\r
                 }\r
@@ -124,7 +126,7 @@ namespace Handbrake.Functions
         /// Function which generates the filename and path automatically based on \r
         /// the Source Name, DVD title and DVD Chapters\r
         /// </summary>\r
-        public static string AutoName(frmMain mainWindow) //ComboBox drpDvdtitle, string chapter_start, string chatper_end, string source, string dest, int format, Boolean chapters)\r
+        public static string AutoName(frmMain mainWindow)\r
         {\r
             string AutoNamePath = string.Empty;\r
             if (mainWindow.drp_dvdtitle.Text != "Automatic")\r
@@ -205,7 +207,7 @@ namespace Handbrake.Functions
                 return;\r
 \r
             Properties.Settings.Default.cliLastModified = lastModified;\r
-            \r
+\r
             Process cliProcess = new Process();\r
             ProcessStartInfo handBrakeCLI = new ProcessStartInfo("HandBrakeCLI.exe", " -u -v0")\r
                                                 {\r
@@ -345,6 +347,30 @@ namespace Handbrake.Functions
                 {\r
                     if (!file.Name.Contains("last_scan_log") && !file.Name.Contains("last_encode_log") && !file.Name.Contains("tmp_appReadable_log.txt"))\r
                         File.Delete(file.FullName);\r
+\r
+                }\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        /// Clear old log files x days in the past\r
+        /// </summary>\r
+        public static void ClearOldLogs()\r
+        {\r
+            string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";\r
+            if (Directory.Exists(logDir))\r
+            {\r
+                DirectoryInfo info = new DirectoryInfo(logDir);\r
+                FileInfo[] logFiles = info.GetFiles("*.txt");\r
+\r
+                foreach (FileInfo file in logFiles)\r
+                {\r
+                    if (file.LastWriteTime < DateTime.Now.AddDays(-30))\r
+                    {\r
+                        if (!file.Name.Contains("last_scan_log") && !file.Name.Contains("last_encode_log") && !file.Name.Contains("tmp_appReadable_log.txt"))\r
+                            File.Delete(file.FullName);\r
+\r
+                    }\r
                 }\r
             }\r
         }\r
@@ -369,10 +395,10 @@ namespace Handbrake.Functions
                     AppcastReader reader = new AppcastReader();\r
 \r
                     // Get the data, convert it to a string, and parse it into the AppcastReader\r
-                    reader.getInfo(new StreamReader(response.GetResponseStream()).ReadToEnd());\r
+                    reader.GetInfo(new StreamReader(response.GetResponseStream()).ReadToEnd());\r
 \r
                     // Further parse the information\r
-                    string build = reader.build;\r
+                    string build = reader.Build;\r
 \r
                     int latest = int.Parse(build);\r
                     int current = Properties.Settings.Default.hb_build;\r
@@ -412,32 +438,6 @@ namespace Handbrake.Functions
         }\r
 \r
         /// <summary>\r
-        /// Used in EndUpdateCheck() for update checking and the IAsyncResult design pattern.\r
-        /// </summary>\r
-        private class UpdateCheckResult : IAsyncResult\r
-        {\r
-            public UpdateCheckResult(object asyncState, UpdateCheckInformation info)\r
-            {\r
-                AsyncState = asyncState;\r
-                Result = info;\r
-            }\r
-\r
-            /// <summary>\r
-            /// Gets whether the check was executed in debug mode.\r
-            /// </summary>\r
-            public object AsyncState { get; private set; }\r
-\r
-            /// <summary>\r
-            /// Gets the result of the update check.\r
-            /// </summary>\r
-            public UpdateCheckInformation Result { get; private set; }\r
-\r
-            public WaitHandle AsyncWaitHandle { get { throw new NotImplementedException(); } }\r
-            public bool CompletedSynchronously { get { throw new NotImplementedException(); } }\r
-            public bool IsCompleted { get { throw new NotImplementedException(); } }\r
-        }\r
-\r
-        /// <summary>\r
         /// Map languages and their iso639_2 value into a IDictionary\r
         /// </summary>\r
         /// <returns></returns>\r
@@ -635,5 +635,26 @@ namespace Handbrake.Functions
             return languageMap;\r
         }\r
 \r
+        /// <summary>\r
+        /// Get a list of available DVD drives which are ready and contain DVD content.\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        public static List<DriveInformation> GetDrives()\r
+        {\r
+            List<DriveInformation> drives = new List<DriveInformation>();\r
+            DriveInfo[] theCollectionOfDrives = DriveInfo.GetDrives();\r
+            foreach (DriveInfo curDrive in theCollectionOfDrives)\r
+            {\r
+                if (curDrive.DriveType == DriveType.CDRom && curDrive.IsReady && File.Exists(curDrive.RootDirectory + "VIDEO_TS\\VIDEO_TS.IFO"))\r
+                {\r
+                    drives.Add(new DriveInformation\r
+                                             {\r
+                                                 VolumeLabel = curDrive.VolumeLabel,\r
+                                                 RootDirectory = curDrive.RootDirectory + "VIDEO_TS"\r
+                                             });\r
+                }\r
+            }\r
+            return drives;\r
+        }\r
     }\r
-}\r
+}
\ No newline at end of file