海康摄像头取流示例初始签入
This commit is contained in:
53
SHH.CameraSdk/Abstractions/Models/MetadataDiff.cs
Normal file
53
SHH.CameraSdk/Abstractions/Models/MetadataDiff.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
namespace SHH.CameraSdk;
|
||||
|
||||
/// <summary>
|
||||
/// 元数据变更差异描述符(只读结构体)
|
||||
/// 核心职责:对比设备当前运行元数据与最新拉取元数据的差异,明确变更类型及业务影响
|
||||
/// 协作场景:指导上层模块执行差异化处理(如仅刷新UI、重启流、调整功能按钮)
|
||||
/// </summary>
|
||||
public readonly struct MetadataDiff
|
||||
{
|
||||
#region --- 差异类型属性 (Change Type Properties) ---
|
||||
|
||||
/// <summary>
|
||||
/// 设备基础描述信息变更(如名称、位置)
|
||||
/// 业务影响:仅需刷新 UI 显示文字,无需中断当前流
|
||||
/// </summary>
|
||||
public bool NameChanged { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 设备能力集变更(如新增/移除对讲、截图功能)
|
||||
/// 业务影响:需调整 UI 功能按钮的可用性,无需中断流
|
||||
/// </summary>
|
||||
public bool CapabilityChanged { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 致命/破坏性变更(如设备型号、编码格式变更)
|
||||
/// 业务影响:必须销毁当前流实例并重启,否则会导致流异常或崩溃
|
||||
/// </summary>
|
||||
public bool IsMajorChange { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 分辨率/帧率档位列表变更
|
||||
/// 业务影响:需重新校验当前流参数是否合法,非法则自动降级到可用档位
|
||||
/// </summary>
|
||||
public bool ResolutionProfilesChanged { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// 全局变更标识:是否存在任何类型的元数据变更
|
||||
/// 业务用途:快速判断是否需要执行后续差异化处理逻辑
|
||||
/// </summary>
|
||||
public bool HasChanges => NameChanged || CapabilityChanged || IsMajorChange || ResolutionProfilesChanged;
|
||||
|
||||
#endregion
|
||||
|
||||
#region --- 快捷实例 (Quick Instances) ---
|
||||
|
||||
/// <summary>
|
||||
/// 无变更状态的快捷实例
|
||||
/// 业务用途:元数据刷新后无变化时直接返回,避免重复创建空对象
|
||||
/// </summary>
|
||||
public static MetadataDiff None => new();
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user