using OpenCvSharp; using System.Collections.Generic; namespace DaJiaoYan.Variables { internal class Vars { public delegate void DeleCounterChange(int i); public static DeleCounterChange DelegateCounterChange; private static readonly object CounterLocker = new object(); /// /// 任务 /// private static readonly Dictionary Tasks = new Dictionary(); private static readonly object TasksLocker = new object(); private static int _UploadedCounter = 0; /// /// 请求头 /// public static Dictionary RequestHeaders = new Dictionary { {"AppName", Const.APP_NAME }, {"AppVersion", Const.APP_VERSION }, {"Platform", Const.PLATFORM }, {"Authorization", "" }, }; /// /// 扫描仪列表 /// public static string[] Scanners = null; /// /// 当前选择的扫描仪 /// public static string ScannerSelected = null; /// /// 可处理图片类型 /// public static readonly List AvalibleImageSuffixes = new List { ".png", ".jpg", ".jpeg" }; /// /// opencv jpeg 保存配置 /// public readonly static ImageEncodingParam IMAGE_SAVE_JPEG_PARAM = new ImageEncodingParam(ImwriteFlags.JpegQuality, 70); /// /// opencv png 保存配置 /// public readonly static ImageEncodingParam IMAGE_SAVE_PNG_PARAM = new ImageEncodingParam(ImwriteFlags.PngCompression, 5); public static void SetTaskStatus(string taskId, bool status) { lock (TasksLocker) { Tasks[taskId] = status; } } public static void UploadedCounterIncrease(int i = 1) { int n = 0; lock (CounterLocker) { n = _UploadedCounter += i; } DelegateCounterChange?.Invoke(n); } public static bool AllTaskFinished() { bool res = true; foreach (var item in Tasks.Values) { if (!item) { res = false; break; } } return res; } } }