// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark, unnecessary_null_comparison

part of 'connection_session_state.dart';

// **************************************************************************
// FreezedGenerator
// **************************************************************************

T _$identity<T>(T value) => value;

final _privateConstructorUsedError = UnsupportedError(
  'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models',
);

ConnectionSessionState _$ConnectionSessionStateFromJson(Map<String, dynamic> json) {
  return ConnectionSessionState(
    connected: json['connected'] as bool? ?? false,
    connecting: json['connecting'] as bool? ?? false,
    signalingConnected: json['signalingConnected'] as bool? ?? false,
    myDeviceId: json['myDeviceId'] as String?,
    status: json['status'] as String? ?? '',
    bindings: (json['bindings'] as List?)?.cast<BindingDevice>() ?? const [],
    onlineUids: (json['onlineUids'] as Set?)?.cast<String>() ?? const {},
    selectedDeviceUid: json['selectedDeviceUid'] as String?,
    deviceRefreshing: json['deviceRefreshing'] as bool? ?? false,
    deviceError: json['deviceError'] as String?,
    redeeming: json['redeeming'] as bool? ?? false,
    redeemError: json['redeemError'] as String?,
    stats: json['stats'] as String? ?? '',
    videoAspect: json['videoAspect'] as double? ?? 16 / 9,
    streamMode: json['streamMode'] as int? ?? 0,
    selfCodecTextureId: json['selfCodecTextureId'] as int?,
    selfCodecReady: json['selfCodecReady'] as bool? ?? false,
    selfCodecSupported: json['selfCodecSupported'] as bool? ?? true,
    recording: json['recording'] as bool? ?? false,
    recordStatus: json['recordStatus'] as String? ?? '',
    pendingRecordStart: json['pendingRecordStart'] as bool? ?? false,
    selectedResolution: json['selectedResolution'] as int? ?? 0,
    resolutionOptions: (json['resolutionOptions'] as List?)?.cast<Map<String, Object>>() ?? kResolutionOptions,
    fpsOptions: (json['fpsOptions'] as List?)?.cast<int>() ?? kDefaultFpsOptions,
    currentFps: json['currentFps'] as int? ?? 0,
    lastReportedWidth: json['lastReportedWidth'] as int? ?? 0,
    lastReportedHeight: json['lastReportedHeight'] as int? ?? 0,
    renderer: json['renderer'] as RTCVideoRenderer?,
    alert: json['alert'] as String?,
  );
}

Map<String, dynamic> _$ConnectionSessionStateToJson(ConnectionSessionState instance) {
  final val = <String, dynamic>{};
  val['connected'] = instance.connected;
  val['connecting'] = instance.connecting;
  val['signalingConnected'] = instance.signalingConnected;
  val['myDeviceId'] = instance.myDeviceId;
  val['status'] = instance.status;
  val['bindings'] = instance.bindings;
  val['onlineUids'] = instance.onlineUids;
  val['selectedDeviceUid'] = instance.selectedDeviceUid;
  val['deviceRefreshing'] = instance.deviceRefreshing;
  val['deviceError'] = instance.deviceError;
  val['redeeming'] = instance.redeeming;
  val['redeemError'] = instance.redeemError;
  val['stats'] = instance.stats;
  val['videoAspect'] = instance.videoAspect;
  val['streamMode'] = instance.streamMode;
  val['selfCodecTextureId'] = instance.selfCodecTextureId;
  val['selfCodecReady'] = instance.selfCodecReady;
  val['selfCodecSupported'] = instance.selfCodecSupported;
  val['recording'] = instance.recording;
  val['recordStatus'] = instance.recordStatus;
  val['pendingRecordStart'] = instance.pendingRecordStart;
  val['selectedResolution'] = instance.selectedResolution;
  val['resolutionOptions'] = instance.resolutionOptions;
  val['fpsOptions'] = instance.fpsOptions;
  val['currentFps'] = instance.currentFps;
  val['lastReportedWidth'] = instance.lastReportedWidth;
  val['lastReportedHeight'] = instance.lastReportedHeight;
  val['renderer'] = instance.renderer;
  val['alert'] = instance.alert;
  return val;
}

/// @nodoc
mixin _$ConnectionSessionState {
  /// 是否已建立 WebRTC 连接（可开始远程控制）。
  bool get connected => throw _privateConstructorUsedError;
  /// 是否正在连接信令服务器 / 建立 WebRTC。
  bool get connecting => throw _privateConstructorUsedError;
  /// 信令（WebSocket）是否已连接并注册成功。
  bool get signalingConnected => throw _privateConstructorUsedError;
  /// 信令注册后服务端下发的本机设备ID。
  String? get myDeviceId => throw _privateConstructorUsedError;
  /// 状态提示文本。
  String get status => throw _privateConstructorUsedError;
  /// 主控端已绑定的被控设备列表（供用户选择连接）。
  List<BindingDevice> get bindings => throw _privateConstructorUsedError;
  /// 当前在线的已绑定设备 uid 集合（用于列表标记在线状态）。
  Set<String> get onlineUids => throw _privateConstructorUsedError;
  /// 用户在绑定设备列表中选中的目标设备 uid。
  String? get selectedDeviceUid => throw _privateConstructorUsedError;
  /// 是否正在拉取绑定设备列表 / 在线状态。
  bool get deviceRefreshing => throw _privateConstructorUsedError;
  /// 设备列表加载失败时的错误提示（null 表示无错误）。
  String? get deviceError => throw _privateConstructorUsedError;
  /// 是否正在兑换配对码建立绑定。
  bool get redeeming => throw _privateConstructorUsedError;
  /// 配对码兑换失败提示（null 表示无错误）。
  String? get redeemError => throw _privateConstructorUsedError;
  /// 连接统计文本（每秒刷新）。
  String get stats => throw _privateConstructorUsedError;
  /// 当前视频宽高比。
  double get videoAspect => throw _privateConstructorUsedError;
  /// 当前串流模式：0=WebRTC 全托管；1=自编码。
  int get streamMode => throw _privateConstructorUsedError;
  /// 自编码解码纹理 id。
  int? get selfCodecTextureId => throw _privateConstructorUsedError;
  /// 自编码解码器是否就绪。
  bool get selfCodecReady => throw _privateConstructorUsedError;
  /// 当前平台是否支持自编码硬解。
  bool get selfCodecSupported => throw _privateConstructorUsedError;
  /// 是否正在录制远程视频。
  bool get recording => throw _privateConstructorUsedError;
  /// 录制状态提示。
  String get recordStatus => throw _privateConstructorUsedError;
  /// 自编码模式下请求录制时，先切回 WebRTC 标准模式再开始录制。
  bool get pendingRecordStart => throw _privateConstructorUsedError;
  /// 当前选中的分辨率预设下标。
  int get selectedResolution => throw _privateConstructorUsedError;
  /// 分辨率预设列表。
  List<Map<String, Object>> get resolutionOptions => throw _privateConstructorUsedError;
  /// 帧率档位（收到被控端上报后以上报列表为准）。
  List<int> get fpsOptions => throw _privateConstructorUsedError;
  /// 被控端当前采集帧率（0 表示尚未收到上报）。
  int get currentFps => throw _privateConstructorUsedError;
  /// 被控端最近上报的实际采集尺寸（切帧率时保持分辨率不变）。
  int get lastReportedWidth => throw _privateConstructorUsedError;
  /// 被控端最近上报的实际采集尺寸。
  int get lastReportedHeight => throw _privateConstructorUsedError;
  /// 远端视频渲染器（未连接为 null）。
  RTCVideoRenderer? get renderer => throw _privateConstructorUsedError;
  /// 一次性提示消息（消费后由控制器置空）。
  String? get alert => throw _privateConstructorUsedError;

  /// Create a copy of ConnectionSessionState
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  $ConnectionSessionStateCopyWith<ConnectionSessionState> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $ConnectionSessionStateCopyWith<$Res> {
  factory $ConnectionSessionStateCopyWith(
    ConnectionSessionState value,
    $Res Function(ConnectionSessionState) then,
  ) = _$ConnectionSessionStateCopyWithImpl<$Res, ConnectionSessionState>;
  @useResult
  $Res call({
    bool connected,
    bool connecting,
    bool signalingConnected,
    String? myDeviceId,
    String status,
    List<BindingDevice> bindings,
    Set<String> onlineUids,
    String? selectedDeviceUid,
    bool deviceRefreshing,
    String? deviceError,
    bool redeeming,
    String? redeemError,
    String stats,
    double videoAspect,
    int streamMode,
    int? selfCodecTextureId,
    bool selfCodecReady,
    bool selfCodecSupported,
    bool recording,
    String recordStatus,
    bool pendingRecordStart,
    int selectedResolution,
    List<Map<String, Object>> resolutionOptions,
    List<int> fpsOptions,
    int currentFps,
    int lastReportedWidth,
    int lastReportedHeight,
    RTCVideoRenderer? renderer,
    String? alert,
  });
}

/// @nodoc
class _$ConnectionSessionStateCopyWithImpl<
  $Res,
  $Val extends ConnectionSessionState
>
    implements $ConnectionSessionStateCopyWith<$Res> {
  _$ConnectionSessionStateCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? connected = null,
    Object? connecting = null,
    Object? signalingConnected = null,
    Object? myDeviceId = freezed,
    Object? status = null,
    Object? bindings = null,
    Object? onlineUids = null,
    Object? selectedDeviceUid = freezed,
    Object? deviceRefreshing = null,
    Object? deviceError = freezed,
    Object? redeeming = null,
    Object? redeemError = freezed,
    Object? stats = null,
    Object? videoAspect = null,
    Object? streamMode = null,
    Object? selfCodecTextureId = freezed,
    Object? selfCodecReady = null,
    Object? selfCodecSupported = null,
    Object? recording = null,
    Object? recordStatus = null,
    Object? pendingRecordStart = null,
    Object? selectedResolution = null,
    Object? resolutionOptions = null,
    Object? fpsOptions = null,
    Object? currentFps = null,
    Object? lastReportedWidth = null,
    Object? lastReportedHeight = null,
    Object? renderer = freezed,
    Object? alert = freezed,
  }) {
    return _then(
      _value.copyWith(
        connected: null == connected
            ? _value.connected
            : connected // ignore: cast_nullable_to_non_nullable
                  as bool,
        connecting: null == connecting
            ? _value.connecting
            : connecting // ignore: cast_nullable_to_non_nullable
                  as bool,
        signalingConnected: null == signalingConnected
            ? _value.signalingConnected
            : signalingConnected // ignore: cast_nullable_to_non_nullable
                  as bool,
        myDeviceId: freezed == myDeviceId
            ? _value.myDeviceId
            : myDeviceId // ignore: cast_nullable_to_non_nullable
                  as String?,
        status: null == status
            ? _value.status
            : status // ignore: cast_nullable_to_non_nullable
                  as String,
        bindings: null == bindings
            ? _value.bindings
            : bindings // ignore: cast_nullable_to_non_nullable
                  as List<BindingDevice>,
        onlineUids: null == onlineUids
            ? _value.onlineUids
            : onlineUids // ignore: cast_nullable_to_non_nullable
                  as Set<String>,
        selectedDeviceUid: freezed == selectedDeviceUid
            ? _value.selectedDeviceUid
            : selectedDeviceUid // ignore: cast_nullable_to_non_nullable
                  as String?,
        deviceRefreshing: null == deviceRefreshing
            ? _value.deviceRefreshing
            : deviceRefreshing // ignore: cast_nullable_to_non_nullable
                  as bool,
        deviceError: freezed == deviceError
            ? _value.deviceError
            : deviceError // ignore: cast_nullable_to_non_nullable
                  as String?,
        redeeming: null == redeeming
            ? _value.redeeming
            : redeeming // ignore: cast_nullable_to_non_nullable
                  as bool,
        redeemError: freezed == redeemError
            ? _value.redeemError
            : redeemError // ignore: cast_nullable_to_non_nullable
                  as String?,
        stats: null == stats
            ? _value.stats
            : stats // ignore: cast_nullable_to_non_nullable
                  as String,
        videoAspect: null == videoAspect
            ? _value.videoAspect
            : videoAspect // ignore: cast_nullable_to_non_nullable
                  as double,
        streamMode: null == streamMode
            ? _value.streamMode
            : streamMode // ignore: cast_nullable_to_non_nullable
                  as int,
        selfCodecTextureId: freezed == selfCodecTextureId
            ? _value.selfCodecTextureId
            : selfCodecTextureId // ignore: cast_nullable_to_non_nullable
                  as int?,
        selfCodecReady: null == selfCodecReady
            ? _value.selfCodecReady
            : selfCodecReady // ignore: cast_nullable_to_non_nullable
                  as bool,
        selfCodecSupported: null == selfCodecSupported
            ? _value.selfCodecSupported
            : selfCodecSupported // ignore: cast_nullable_to_non_nullable
                  as bool,
        recording: null == recording
            ? _value.recording
            : recording // ignore: cast_nullable_to_non_nullable
                  as bool,
        recordStatus: null == recordStatus
            ? _value.recordStatus
            : recordStatus // ignore: cast_nullable_to_non_nullable
                  as String,
        pendingRecordStart: null == pendingRecordStart
            ? _value.pendingRecordStart
            : pendingRecordStart // ignore: cast_nullable_to_non_nullable
                  as bool,
        selectedResolution: null == selectedResolution
            ? _value.selectedResolution
            : selectedResolution // ignore: cast_nullable_to_non_nullable
                  as int,
        resolutionOptions: null == resolutionOptions
            ? _value.resolutionOptions
            : resolutionOptions // ignore: cast_nullable_to_non_nullable
                  as List<Map<String, Object>>,
        fpsOptions: null == fpsOptions
            ? _value.fpsOptions
            : fpsOptions // ignore: cast_nullable_to_non_nullable
                  as List<int>,
        currentFps: null == currentFps
            ? _value.currentFps
            : currentFps // ignore: cast_nullable_to_non_nullable
                  as int,
        lastReportedWidth: null == lastReportedWidth
            ? _value.lastReportedWidth
            : lastReportedWidth // ignore: cast_nullable_to_non_nullable
                  as int,
        lastReportedHeight: null == lastReportedHeight
            ? _value.lastReportedHeight
            : lastReportedHeight // ignore: cast_nullable_to_non_nullable
                  as int,
        renderer: freezed == renderer
            ? _value.renderer
            : renderer // ignore: cast_nullable_to_non_nullable
                  as RTCVideoRenderer?,
        alert: freezed == alert
            ? _value.alert
            : alert // ignore: cast_nullable_to_non_nullable
                  as String?,
      ) as $Val,
    );
  }
}

/// @nodoc
class _$ConnectionSessionStateImpl with _$ConnectionSessionState
    implements ConnectionSessionState {
  const _$ConnectionSessionStateImpl({
    this.connected = false,
    this.connecting = false,
    this.signalingConnected = false,
    this.myDeviceId,
    this.status = '',
    this.bindings = const [],
    this.onlineUids = const {},
    this.selectedDeviceUid,
    this.deviceRefreshing = false,
    this.deviceError,
    this.redeeming = false,
    this.redeemError,
    this.stats = '',
    this.videoAspect = 16 / 9,
    this.streamMode = 0,
    this.selfCodecTextureId,
    this.selfCodecReady = false,
    this.selfCodecSupported = true,
    this.recording = false,
    this.recordStatus = '',
    this.pendingRecordStart = false,
    this.selectedResolution = 0,
    this.resolutionOptions = kResolutionOptions,
    this.fpsOptions = kDefaultFpsOptions,
    this.currentFps = 0,
    this.lastReportedWidth = 0,
    this.lastReportedHeight = 0,
    this.renderer,
    this.alert,
  });

  @override
  @JsonKey()
  final bool connected;
  @override
  @JsonKey()
  final bool connecting;
  @override
  @JsonKey()
  final bool signalingConnected;
  @override
  @JsonKey()
  final String? myDeviceId;
  @override
  @JsonKey()
  final String status;
  @override
  @JsonKey()
  final List<BindingDevice> bindings;
  @override
  @JsonKey()
  final Set<String> onlineUids;
  @override
  @JsonKey()
  final String? selectedDeviceUid;
  @override
  @JsonKey()
  final bool deviceRefreshing;
  @override
  @JsonKey()
  final String? deviceError;
  @override
  @JsonKey()
  final bool redeeming;
  @override
  @JsonKey()
  final String? redeemError;
  @override
  @JsonKey()
  final String stats;
  @override
  @JsonKey()
  final double videoAspect;
  @override
  @JsonKey()
  final int streamMode;
  @override
  @JsonKey()
  final int? selfCodecTextureId;
  @override
  @JsonKey()
  final bool selfCodecReady;
  @override
  @JsonKey()
  final bool selfCodecSupported;
  @override
  @JsonKey()
  final bool recording;
  @override
  @JsonKey()
  final String recordStatus;
  @override
  @JsonKey()
  final bool pendingRecordStart;
  @override
  @JsonKey()
  final int selectedResolution;
  @override
  @JsonKey()
  final List<Map<String, Object>> resolutionOptions;
  @override
  @JsonKey()
  final List<int> fpsOptions;
  @override
  @JsonKey()
  final int currentFps;
  @override
  @JsonKey()
  final int lastReportedWidth;
  @override
  @JsonKey()
  final int lastReportedHeight;
  @override
  @JsonKey()
  final RTCVideoRenderer? renderer;
  @override
  @JsonKey()
  final String? alert;

  @override
  $ConnectionSessionStateCopyWith<ConnectionSessionState> get copyWith =>
      __$$ConnectionSessionStateImplCopyWithImpl<ConnectionSessionState>(
        this,
        (value) => value,
      );

  Map<String, dynamic> toJson() => _$ConnectionSessionStateToJson(this);

  @override
  String toString() {
    return 'ConnectionSessionState(${[
      if (connected != null) 'connected: $connected',
      if (connecting != null) 'connecting: $connecting',
      if (signalingConnected != null) 'signalingConnected: $signalingConnected',
      if (myDeviceId != null) 'myDeviceId: $myDeviceId',
      if (status != null) 'status: $status',
      if (bindings != null) 'bindings: $bindings',
      if (onlineUids != null) 'onlineUids: $onlineUids',
      if (selectedDeviceUid != null) 'selectedDeviceUid: $selectedDeviceUid',
      if (deviceRefreshing != null) 'deviceRefreshing: $deviceRefreshing',
      if (deviceError != null) 'deviceError: $deviceError',
      if (redeeming != null) 'redeeming: $redeeming',
      if (redeemError != null) 'redeemError: $redeemError',
      if (stats != null) 'stats: $stats',
      if (videoAspect != null) 'videoAspect: $videoAspect',
      if (streamMode != null) 'streamMode: $streamMode',
      if (selfCodecTextureId != null) 'selfCodecTextureId: $selfCodecTextureId',
      if (selfCodecReady != null) 'selfCodecReady: $selfCodecReady',
      if (selfCodecSupported != null) 'selfCodecSupported: $selfCodecSupported',
      if (recording != null) 'recording: $recording',
      if (recordStatus != null) 'recordStatus: $recordStatus',
      if (pendingRecordStart != null) 'pendingRecordStart: $pendingRecordStart',
      if (selectedResolution != null) 'selectedResolution: $selectedResolution',
      if (resolutionOptions != null) 'resolutionOptions: $resolutionOptions',
      if (fpsOptions != null) 'fpsOptions: $fpsOptions',
      if (currentFps != null) 'currentFps: $currentFps',
      if (lastReportedWidth != null) 'lastReportedWidth: $lastReportedWidth',
      if (lastReportedHeight != null) 'lastReportedHeight: $lastReportedHeight',
      if (renderer != null) 'renderer: $renderer',
      if (alert != null) 'alert: $alert',
    ].where((t) => t != null).join(', ')})';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ConnectionSessionStateImpl &&
            (identical(other.connected, connected) || other.connected == connected)
            && (identical(other.connecting, connecting) || other.connecting == connecting)
            && (identical(other.signalingConnected, signalingConnected) || other.signalingConnected == signalingConnected)
            && (identical(other.myDeviceId, myDeviceId) || other.myDeviceId == myDeviceId)
            && (identical(other.status, status) || other.status == status)
            && (identical(other.bindings, bindings) || other.bindings == bindings)
            && (identical(other.onlineUids, onlineUids) || other.onlineUids == onlineUids)
            && (identical(other.selectedDeviceUid, selectedDeviceUid) || other.selectedDeviceUid == selectedDeviceUid)
            && (identical(other.deviceRefreshing, deviceRefreshing) || other.deviceRefreshing == deviceRefreshing)
            && (identical(other.deviceError, deviceError) || other.deviceError == deviceError)
            && (identical(other.redeeming, redeeming) || other.redeeming == redeeming)
            && (identical(other.redeemError, redeemError) || other.redeemError == redeemError)
            && (identical(other.stats, stats) || other.stats == stats)
            && (identical(other.videoAspect, videoAspect) || other.videoAspect == videoAspect)
            && (identical(other.streamMode, streamMode) || other.streamMode == streamMode)
            && (identical(other.selfCodecTextureId, selfCodecTextureId) || other.selfCodecTextureId == selfCodecTextureId)
            && (identical(other.selfCodecReady, selfCodecReady) || other.selfCodecReady == selfCodecReady)
            && (identical(other.selfCodecSupported, selfCodecSupported) || other.selfCodecSupported == selfCodecSupported)
            && (identical(other.recording, recording) || other.recording == recording)
            && (identical(other.recordStatus, recordStatus) || other.recordStatus == recordStatus)
            && (identical(other.pendingRecordStart, pendingRecordStart) || other.pendingRecordStart == pendingRecordStart)
            && (identical(other.selectedResolution, selectedResolution) || other.selectedResolution == selectedResolution)
            && (identical(other.resolutionOptions, resolutionOptions) || other.resolutionOptions == resolutionOptions)
            && (identical(other.fpsOptions, fpsOptions) || other.fpsOptions == fpsOptions)
            && (identical(other.currentFps, currentFps) || other.currentFps == currentFps)
            && (identical(other.lastReportedWidth, lastReportedWidth) || other.lastReportedWidth == lastReportedWidth)
            && (identical(other.lastReportedHeight, lastReportedHeight) || other.lastReportedHeight == lastReportedHeight)
            && (identical(other.renderer, renderer) || other.renderer == renderer)
            && (identical(other.alert, alert) || other.alert == alert)
        );
  }

  @override
  int get hashCode => connected.hashCode ^ connecting.hashCode ^ signalingConnected.hashCode ^ myDeviceId.hashCode ^ status.hashCode ^ bindings.hashCode ^ onlineUids.hashCode ^ selectedDeviceUid.hashCode ^ deviceRefreshing.hashCode ^ deviceError.hashCode ^ redeeming.hashCode ^ redeemError.hashCode ^ stats.hashCode ^ videoAspect.hashCode ^ streamMode.hashCode ^ selfCodecTextureId.hashCode ^ selfCodecReady.hashCode ^ selfCodecSupported.hashCode ^ recording.hashCode ^ recordStatus.hashCode ^ pendingRecordStart.hashCode ^ selectedResolution.hashCode ^ resolutionOptions.hashCode ^ fpsOptions.hashCode ^ currentFps.hashCode ^ lastReportedWidth.hashCode ^ lastReportedHeight.hashCode ^ renderer.hashCode ^ alert.hashCode;
}

/// @nodoc
abstract class _$$ConnectionSessionStateImplCopyWith<$Res>
    implements $ConnectionSessionStateCopyWith<$Res> {
  factory _$$ConnectionSessionStateImplCopyWith(
    _$ConnectionSessionStateImpl value,
    $Res Function(_$ConnectionSessionStateImpl) then,
  ) = __$$ConnectionSessionStateImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    bool connected,
    bool connecting,
    bool signalingConnected,
    String? myDeviceId,
    String status,
    List<BindingDevice> bindings,
    Set<String> onlineUids,
    String? selectedDeviceUid,
    bool deviceRefreshing,
    String? deviceError,
    bool redeeming,
    String? redeemError,
    String stats,
    double videoAspect,
    int streamMode,
    int? selfCodecTextureId,
    bool selfCodecReady,
    bool selfCodecSupported,
    bool recording,
    String recordStatus,
    bool pendingRecordStart,
    int selectedResolution,
    List<Map<String, Object>> resolutionOptions,
    List<int> fpsOptions,
    int currentFps,
    int lastReportedWidth,
    int lastReportedHeight,
    RTCVideoRenderer? renderer,
    String? alert,
  });
}

/// @nodoc
class __$$ConnectionSessionStateImplCopyWithImpl<$Res>
    extends
        _$ConnectionSessionStateCopyWithImpl<$Res, _$ConnectionSessionStateImpl>
    implements _$$ConnectionSessionStateImplCopyWith<$Res> {
  __$$ConnectionSessionStateImplCopyWithImpl(
    _$ConnectionSessionStateImpl _value,
    $Res Function(_$ConnectionSessionStateImpl) _then,
  ) : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? connected = null,
    Object? connecting = null,
    Object? signalingConnected = null,
    Object? myDeviceId = freezed,
    Object? status = null,
    Object? bindings = null,
    Object? onlineUids = null,
    Object? selectedDeviceUid = freezed,
    Object? deviceRefreshing = null,
    Object? deviceError = freezed,
    Object? redeeming = null,
    Object? redeemError = freezed,
    Object? stats = null,
    Object? videoAspect = null,
    Object? streamMode = null,
    Object? selfCodecTextureId = freezed,
    Object? selfCodecReady = null,
    Object? selfCodecSupported = null,
    Object? recording = null,
    Object? recordStatus = null,
    Object? pendingRecordStart = null,
    Object? selectedResolution = null,
    Object? resolutionOptions = null,
    Object? fpsOptions = null,
    Object? currentFps = null,
    Object? lastReportedWidth = null,
    Object? lastReportedHeight = null,
    Object? renderer = freezed,
    Object? alert = freezed,
  }) {
    return _then(
      _$ConnectionSessionStateImpl(
        connected: null == connected
            ? _value.connected
            : connected // ignore: cast_nullable_to_non_nullable
                  as bool,
        connecting: null == connecting
            ? _value.connecting
            : connecting // ignore: cast_nullable_to_non_nullable
                  as bool,
        signalingConnected: null == signalingConnected
            ? _value.signalingConnected
            : signalingConnected // ignore: cast_nullable_to_non_nullable
                  as bool,
        myDeviceId: freezed == myDeviceId
            ? _value.myDeviceId
            : myDeviceId // ignore: cast_nullable_to_non_nullable
                  as String?,
        status: null == status
            ? _value.status
            : status // ignore: cast_nullable_to_non_nullable
                  as String,
        bindings: null == bindings
            ? _value.bindings
            : bindings // ignore: cast_nullable_to_non_nullable
                  as List<BindingDevice>,
        onlineUids: null == onlineUids
            ? _value.onlineUids
            : onlineUids // ignore: cast_nullable_to_non_nullable
                  as Set<String>,
        selectedDeviceUid: freezed == selectedDeviceUid
            ? _value.selectedDeviceUid
            : selectedDeviceUid // ignore: cast_nullable_to_non_nullable
                  as String?,
        deviceRefreshing: null == deviceRefreshing
            ? _value.deviceRefreshing
            : deviceRefreshing // ignore: cast_nullable_to_non_nullable
                  as bool,
        deviceError: freezed == deviceError
            ? _value.deviceError
            : deviceError // ignore: cast_nullable_to_non_nullable
                  as String?,
        redeeming: null == redeeming
            ? _value.redeeming
            : redeeming // ignore: cast_nullable_to_non_nullable
                  as bool,
        redeemError: freezed == redeemError
            ? _value.redeemError
            : redeemError // ignore: cast_nullable_to_non_nullable
                  as String?,
        stats: null == stats
            ? _value.stats
            : stats // ignore: cast_nullable_to_non_nullable
                  as String,
        videoAspect: null == videoAspect
            ? _value.videoAspect
            : videoAspect // ignore: cast_nullable_to_non_nullable
                  as double,
        streamMode: null == streamMode
            ? _value.streamMode
            : streamMode // ignore: cast_nullable_to_non_nullable
                  as int,
        selfCodecTextureId: freezed == selfCodecTextureId
            ? _value.selfCodecTextureId
            : selfCodecTextureId // ignore: cast_nullable_to_non_nullable
                  as int?,
        selfCodecReady: null == selfCodecReady
            ? _value.selfCodecReady
            : selfCodecReady // ignore: cast_nullable_to_non_nullable
                  as bool,
        selfCodecSupported: null == selfCodecSupported
            ? _value.selfCodecSupported
            : selfCodecSupported // ignore: cast_nullable_to_non_nullable
                  as bool,
        recording: null == recording
            ? _value.recording
            : recording // ignore: cast_nullable_to_non_nullable
                  as bool,
        recordStatus: null == recordStatus
            ? _value.recordStatus
            : recordStatus // ignore: cast_nullable_to_non_nullable
                  as String,
        pendingRecordStart: null == pendingRecordStart
            ? _value.pendingRecordStart
            : pendingRecordStart // ignore: cast_nullable_to_non_nullable
                  as bool,
        selectedResolution: null == selectedResolution
            ? _value.selectedResolution
            : selectedResolution // ignore: cast_nullable_to_non_nullable
                  as int,
        resolutionOptions: null == resolutionOptions
            ? _value.resolutionOptions
            : resolutionOptions // ignore: cast_nullable_to_non_nullable
                  as List<Map<String, Object>>,
        fpsOptions: null == fpsOptions
            ? _value.fpsOptions
            : fpsOptions // ignore: cast_nullable_to_non_nullable
                  as List<int>,
        currentFps: null == currentFps
            ? _value.currentFps
            : currentFps // ignore: cast_nullable_to_non_nullable
                  as int,
        lastReportedWidth: null == lastReportedWidth
            ? _value.lastReportedWidth
            : lastReportedWidth // ignore: cast_nullable_to_non_nullable
                  as int,
        lastReportedHeight: null == lastReportedHeight
            ? _value.lastReportedHeight
            : lastReportedHeight // ignore: cast_nullable_to_non_nullable
                  as int,
        renderer: freezed == renderer
            ? _value.renderer
            : renderer // ignore: cast_nullable_to_non_nullable
                  as RTCVideoRenderer?,
        alert: freezed == alert
            ? _value.alert
            : alert // ignore: cast_nullable_to_non_nullable
                  as String?,
      ),
    );
  }
}

