using System; using System.Collections.Generic; using System.Text; namespace InABox.Core { public class DFLayoutVideoFieldProperties : DFLayoutFieldProperties { public enum VideoQuality { Default, Low, Medium, High } [IntegerEditor(ToolTip = "Maximum video length (sec)")] public int MaximumVideoLength { get; set; } = 0; [EnumLookupEditor(typeof(VideoQuality))] public VideoQuality Quality { get; set; } = VideoQuality.Default; public override string FormatValue(object? value) { return value != null ? "Yes" : ""; } public override object? ParseValue(object? value) { if (value is byte[]) return value; if (value is string str) { if (Guid.TryParse(str, out var id)) { return Array.Empty(); } try { return Convert.FromBase64String(str); } catch (Exception e) { Logger.Send(LogType.Error, "", $"Error in video data; invalid Base-64: {e.Message}"); return null; } } return null; } } }