@@ -5,13 +5,15 @@ import 'dart:typed_data';
55
66import 'package:dart_des/dart_des.dart' ;
77import 'package:dart_rfb/src/client/config.dart' ;
8+ import 'package:dart_rfb/src/client/remote_frame_buffer_client_pointer_event.dart' ;
89import 'package:dart_rfb/src/client/remote_frame_buffer_client_update.dart' ;
910import 'package:dart_rfb/src/constants.dart' ;
1011import 'package:dart_rfb/src/extensions/byte_data_extensions.dart' ;
1112import 'package:dart_rfb/src/extensions/int_extensions.dart' ;
1213import 'package:dart_rfb/src/protocol/client_init_message.dart' ;
1314import 'package:dart_rfb/src/protocol/frame_buffer_update_message.dart' ;
1415import 'package:dart_rfb/src/protocol/frame_buffer_update_request_message.dart' ;
16+ import 'package:dart_rfb/src/protocol/pointer_event_message.dart' ;
1517import 'package:dart_rfb/src/protocol/protocol_version_handshake_message.dart' ;
1618import 'package:dart_rfb/src/protocol/security_handshake_message.dart' ;
1719import 'package:dart_rfb/src/protocol/security_result_handshake_message.dart' ;
@@ -139,6 +141,30 @@ class RemoteFrameBufferClient {
139141 ),
140142 );
141143
144+ void sendPointerEvent ({
145+ required final RemoteFrameBufferClientPointerEvent pointerEvent,
146+ }) =>
147+ _socket.match (
148+ () {},
149+ (final RawSocket socket) {
150+ final RemoteFrameBufferPointerEventMessage message =
151+ RemoteFrameBufferPointerEventMessage (
152+ button1Down: pointerEvent.button1Down,
153+ button2Down: pointerEvent.button2Down,
154+ button3Down: pointerEvent.button3Down,
155+ button4Down: pointerEvent.button4Down,
156+ button5Down: pointerEvent.button5Down,
157+ button6Down: pointerEvent.button6Down,
158+ button7Down: pointerEvent.button7Down,
159+ button8Down: pointerEvent.button8Down,
160+ x: pointerEvent.x,
161+ y: pointerEvent.y,
162+ );
163+ _logger.info ('> $message ' );
164+ socket.write (message.toBytes ().asUint8List ());
165+ },
166+ );
167+
142168 /// Start the reading loop that handles incoming protocol messages.
143169 Future <void > startReadLoop () async => await _socket.match (
144170 () => throw Exception ('Socket not available' ),
0 commit comments