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