namespace SHH.CameraSdk;

/// <summary>
/// 视频源逻辑状态枚举
/// 描述了从配置加载到视频流稳定输出的完整生命周期
/// </summary>
public enum VideoSourceStatus
{
    /// <summary> 
    /// 已断开/初始状态。
    /// 此时资源已释放，尚未执行 Login 或 Start 操作。
    /// </summary>
    Disconnected,

    /// <summary> 
    /// 正在尝试建立网络连接。
    /// 此时正在进行 Socket 握手或探测设备 IP 是否可达。
    /// </summary>
    Connecting,

    /// <summary> 
    /// 正在进行身份验证。
    /// 连接已建立，正在提交 UserName/Password 调用 SDK 的 Login 接口。
    /// </summary>
    Authorizing,

    /// <summary> 
    /// 已登录/待机。
    /// 登录成功并获取到了设备元数据（Metadata），但尚未启动预览（RealPlay）。
    /// 适用于“仅管理，不看画面”的场景。
    /// </summary>
    Connected,

    /// <summary>
    /// 正常取流播放中
    /// </summary>
    Playing,

    /// <summary> 
    /// 正在取流/正常运行中。
    /// 预览句柄已开启，取流回调函数正在持续接收数据帧并进行解码。
    /// </summary>
    Streaming,

    /// <summary> 
    /// 自动重连中。
    /// 检测到网络抖动或心跳丢失，SDK 正在尝试内部恢复，此时视频流可能处于停滞状态。
    /// </summary>
    Reconnecting,

    /// <summary> 
    /// 故障/异常状态。
    /// 发生了不可恢复的错误（如密码错误、最大连接数限制、设备强制离线）。
    /// 进入此状态通常需要人工干预或调用 Stop 后重新 Start。
    /// </summary>
    Faulted
}