import 'package:equatable/equatable.dart'; abstract class GeViServerEvent extends Equatable { const GeViServerEvent(); @override List get props => []; } /// Connect to GeViServer class ConnectGeViServerEvent extends GeViServerEvent { final String address; final String username; final String password; const ConnectGeViServerEvent({ required this.address, required this.username, required this.password, }); @override List get props => [address, username, password]; } /// Disconnect from GeViServer class DisconnectGeViServerEvent extends GeViServerEvent { const DisconnectGeViServerEvent(); } /// Check connection status class CheckStatusEvent extends GeViServerEvent { const CheckStatusEvent(); } /// Send CrossSwitch command class SendCrossSwitchEvent extends GeViServerEvent { final int videoInput; final int videoOutput; final int switchMode; const SendCrossSwitchEvent({ required this.videoInput, required this.videoOutput, this.switchMode = 0, }); @override List get props => [videoInput, videoOutput, switchMode]; } /// Clear video output class ClearVideoOutputEvent extends GeViServerEvent { final int videoOutput; const ClearVideoOutputEvent({required this.videoOutput}); @override List get props => [videoOutput]; } /// Close digital contact class CloseContactEvent extends GeViServerEvent { final int contactId; const CloseContactEvent({required this.contactId}); @override List get props => [contactId]; } /// Open digital contact class OpenContactEvent extends GeViServerEvent { final int contactId; const OpenContactEvent({required this.contactId}); @override List get props => [contactId]; } /// Send custom action class SendCustomActionEvent extends GeViServerEvent { final int typeId; final String text; const SendCustomActionEvent({ required this.typeId, this.text = '', }); @override List get props => [typeId, text]; } /// Send raw message class SendMessageEvent extends GeViServerEvent { final String message; const SendMessageEvent({required this.message}); @override List get props => [message]; } /// Start timer class StartTimerEvent extends GeViServerEvent { final int timerId; final String timerName; const StartTimerEvent({ this.timerId = 0, this.timerName = '', }); @override List get props => [timerId, timerName]; } /// Stop timer class StopTimerEvent extends GeViServerEvent { final int timerId; final String timerName; const StopTimerEvent({ this.timerId = 0, this.timerName = '', }); @override List get props => [timerId, timerName]; } /// Clear last action result (to dismiss success/error messages) class ClearActionResultEvent extends GeViServerEvent { const ClearActionResultEvent(); }