import 'package:equatable/equatable.dart'; abstract class GeViScopeEvent extends Equatable { const GeViScopeEvent(); @override List get props => []; } /// Connect to GeViScope Camera Server class ConnectGeViScopeEvent extends GeViScopeEvent { final String address; final String username; final String password; const ConnectGeViScopeEvent({ required this.address, required this.username, required this.password, }); @override List get props => [address, username, password]; } /// Disconnect from GeViScope class DisconnectGeViScopeEvent extends GeViScopeEvent { const DisconnectGeViScopeEvent(); } /// Check connection status class CheckGeViScopeStatusEvent extends GeViScopeEvent { const CheckGeViScopeStatusEvent(); } /// Load media channels class LoadChannelsEvent extends GeViScopeEvent { const LoadChannelsEvent(); } /// Refresh media channels class RefreshChannelsEvent extends GeViScopeEvent { const RefreshChannelsEvent(); } /// Send CrossSwitch command class SendGeViScopeCrossSwitchEvent extends GeViScopeEvent { final int videoInput; final int videoOutput; final int switchMode; const SendGeViScopeCrossSwitchEvent({ required this.videoInput, required this.videoOutput, this.switchMode = 0, }); @override List get props => [videoInput, videoOutput, switchMode]; } /// PTZ Camera Pan class CameraPanEvent extends GeViScopeEvent { final int camera; final String direction; final int speed; const CameraPanEvent({ required this.camera, required this.direction, this.speed = 50, }); @override List get props => [camera, direction, speed]; } /// PTZ Camera Tilt class CameraTiltEvent extends GeViScopeEvent { final int camera; final String direction; final int speed; const CameraTiltEvent({ required this.camera, required this.direction, this.speed = 50, }); @override List get props => [camera, direction, speed]; } /// PTZ Camera Zoom class CameraZoomEvent extends GeViScopeEvent { final int camera; final String direction; final int speed; const CameraZoomEvent({ required this.camera, required this.direction, this.speed = 50, }); @override List get props => [camera, direction, speed]; } /// PTZ Camera Stop class CameraStopEvent extends GeViScopeEvent { final int camera; const CameraStopEvent({required this.camera}); @override List get props => [camera]; } /// PTZ Camera Preset class CameraPresetEvent extends GeViScopeEvent { final int camera; final int preset; const CameraPresetEvent({ required this.camera, required this.preset, }); @override List get props => [camera, preset]; } /// Close digital contact class GeViScopeCloseContactEvent extends GeViScopeEvent { final int contactId; const GeViScopeCloseContactEvent({required this.contactId}); @override List get props => [contactId]; } /// Open digital contact class GeViScopeOpenContactEvent extends GeViScopeEvent { final int contactId; const GeViScopeOpenContactEvent({required this.contactId}); @override List get props => [contactId]; } /// Send custom action class SendGeViScopeCustomActionEvent extends GeViScopeEvent { final int typeId; final String text; const SendGeViScopeCustomActionEvent({ required this.typeId, this.text = '', }); @override List get props => [typeId, text]; } /// Send raw action class SendGeViScopeActionEvent extends GeViScopeEvent { final String action; const SendGeViScopeActionEvent({required this.action}); @override List get props => [action]; } /// Clear last action result class ClearGeViScopeActionResultEvent extends GeViScopeEvent { const ClearGeViScopeActionResultEvent(); }