using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using Com.Hdl.ON; using Foundation; namespace EZMonitor { using Com.Hdl.ON; [System.Serializable] public class CommonList : Com.Hdl.ON.CommonList { public readonly static MyList MonitorScenePathList = new MyList (); public static void Init () { var fileString = System.Text.Encoding.UTF8.GetString (Shared.IO.FileUtils.ReadFile ("EZVIZ_SceneLists")); if (fileString != null && fileString != "") { var tempInfo = Newtonsoft.Json.JsonConvert.DeserializeObject> (fileString); if (tempInfo != null) { foreach (TempMonitorData monitorData in tempInfo) { MonitorScenePathList.Add (new MonitorData () { ControlType = "",// monitorData.ControlType, FileName = monitorData.FileName, Id = monitorData.Id, ImagePath = "",//monitorData.ImagePath, Remark = monitorData.Remark, SelectedImagePath = "",//monitorData.SelectedImagePath, Type = monitorData.Type, }); } } } } public static void Save () { var list = new List (); foreach (MonitorData monitorData in MonitorScenePathList) { list.Add (new TempMonitorData () { ControlType = monitorData.ControlType, FileName = monitorData.FileName, Id = monitorData.Id, ImagePath = monitorData.ImagePath, Remark = monitorData.Remark, SelectedImagePath = monitorData.SelectedImagePath, Type = monitorData.Type, }); } Shared.IO.FileUtils.WriteFileByBytes ("EZVIZ_SceneLists", System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (list))); } //ezviz摄像头场景通知触发 public static Action EditorAction; public static Action ControlMonitorSceneAction; public static void AddEzvizMonitor () { Go2EZvizMonitor (); } [System.Serializable] class TempMonitorData { public string Remark = ""; public string ControlType = ""; public string SelectedImagePath = ""; public string ImagePath = ""; public string FileName = ""; public string Type = ""; public string Id = ""; } } [System.Serializable] public class MyList : System.Collections.Generic.List { public MyList () { CommonList.monitorScenePathList.RemoveAllObjects (); } public new void Add (T t) { base.Add (t); CommonList.monitorScenePathList.Add (t as Com.Hdl.ON.MonitorData); } public new void RemoveAt (int i) { base.RemoveAt (i); CommonList.monitorScenePathList.RemoveObject (i); } public new void Clear () { base.Clear (); CommonList.monitorScenePathList.RemoveAllObjects (); } } }