]> granicus.if.org Git - handbrake/commitdiff
WinGui: Improved logging around SCANDONE and some additional defensive programming...
authorsr55 <sr55.hb@outlook.com>
Tue, 2 May 2017 17:37:52 +0000 (18:37 +0100)
committersr55 <sr55.hb@outlook.com>
Tue, 2 May 2017 17:37:52 +0000 (18:37 +0100)
win/CS/HandBrake.ApplicationServices/Interop/HandBrakeInstance.cs
win/CS/HandBrake.ApplicationServices/Services/Logging/LogService.cs
win/CS/HandBrakeWPF/Services/Scan/LibScan.cs

index 7114bab6458d4cdd32b3480388cb0f8a51d6ea36..2c56a76c44fa4d596ff43d1a2751ebbb361a5936 100644 (file)
@@ -489,24 +489,40 @@ namespace HandBrake.ApplicationServices.Interop
             IntPtr json = HBFunctions.hb_get_state_json(this.hbHandle);\r
             string statusJson = Marshal.PtrToStringAnsi(json);\r
             this.log.LogMessage(statusJson, LogMessageType.Progress, LogLevel.Trace);\r
-            JsonState state = JsonConvert.DeserializeObject<JsonState>(statusJson);\r
+            JsonState state = null;\r
+            if (!string.IsNullOrEmpty(statusJson))\r
+            {\r
+                state = JsonConvert.DeserializeObject<JsonState>(statusJson);\r
+            }\r
 \r
             if (state != null && (state.State == NativeConstants.HB_STATE_SCANNING || state.State == NativeConstants.HB_STATE_SEARCHING))\r
             {\r
-                if (this.ScanProgress != null)\r
+                if (this.ScanProgress != null && state.Scanning != null)\r
                 {\r
                     this.ScanProgress(this, new ScanProgressEventArgs(state.Scanning.Progress, state.Scanning.Preview, state.Scanning.PreviewCount, state.Scanning.Title, state.Scanning.TitleCount));\r
                 }\r
             }\r
             else if (state != null && state.State == NativeConstants.HB_STATE_SCANDONE)\r
             {\r
+                this.log.LogMessage("Scan: HB_STATE_SCANDONE", LogMessageType.API, LogLevel.Info);\r
+                this.scanPollTimer.Stop();\r
+\r
                 var jsonMsg = HBFunctions.hb_get_title_set_json(this.hbHandle);\r
                 string scanJson = InteropUtilities.ToStringFromUtf8Ptr(jsonMsg);\r
-                this.log.LogMessage(scanJson, LogMessageType.Progress, LogLevel.Trace);\r
-                this.titles = JsonConvert.DeserializeObject<JsonScanObject>(scanJson);\r
-                this.featureTitle = this.titles.MainFeature;\r
+                this.log.LogMessage(scanJson, LogMessageType.Progress, LogLevel.Info);\r
 \r
-                this.scanPollTimer.Stop();\r
+                if (string.IsNullOrEmpty(scanJson))\r
+                {\r
+                    this.log.LogMessage("Scan Error: No Scan Data Returned.", LogMessageType.API, LogLevel.Error);\r
+                }\r
+                else\r
+                {\r
+                    this.titles = JsonConvert.DeserializeObject<JsonScanObject>(scanJson);\r
+                    if (this.titles != null)\r
+                    {\r
+                        this.featureTitle = this.titles.MainFeature;\r
+                    }\r
+                }\r
 \r
                 if (this.ScanCompleted != null)\r
                 {\r
index ef869570a710994d264b5a15daf5f1a5d51a4cf1..abaf18e64903878a28d8e45f1ff6d2213c40e12b 100644 (file)
@@ -103,7 +103,7 @@ namespace HandBrake.ApplicationServices.Services.Logging
                 return;
             }
 
-            if (level >= this.currentLogLevel)
+            if (level > this.currentLogLevel)
             {
                 return;
             }
index eac84f263172e3c1e3ec203a7dc3e5590ac674c6..955e769eda75d6ebab8dca93351162891aeaafcc 100644 (file)
@@ -142,7 +142,7 @@ namespace HandBrakeWPF.Services.Scan
         {
             try
             {
-                this.ServiceLogMessage("Stopping Scan ...");
+                this.ServiceLogMessage("Manually Stopping Scan ...");
                 this.IsScanning = false;
                 this.instance.StopScan();              
             }