fix bit-endian 16 bit unpack for move
[premotedroid-server-perl.git] / premotedroid-server.pl
index 0813192..0d7c6b0 100755 (executable)
@@ -43,10 +43,22 @@ while ( my $client = $sock->accept() ) {
        while ( read $client, my $command, 1 ) {
                $command = ord $command;
                warn "# command: $command\n";
-               if ( $command == AUTHENTIFICATION ) {
+               if ( $command == MOUSE_MOVE ) {
+                       read $client, my $move, 4;
+                       my ( $x, $y ) = unpack 's>s>', $move; # big-endian 16 bit
+                       warn "MOVE $x $y\n";
+               } elsif ( $command == MOUSE_CLICK ) {
+                       read $client, my $b, 2;
+                       my ( $button, $state ) = unpack 'cc', $b;
+                       warn "MOUSE_CLICK $button $state\n";
+               } elsif ( $command == MOUSE_WHEEL ) {
+                       read $client, my $amount, 1;
+                       $amount = unpack 'c', $amount;
+                       warn "MOUSE_WHEEL $amount\n";
+               } elsif ( $command == AUTHENTIFICATION ) {
                        my $auth = readUTF $client;
                        warn "AUTHENTIFICATION [$auth]\n";
-
+                       print $client pack 'cc', AUTHENTIFICATION_RESPONSE, 1; # FIXME anything goes
                } else {
                        die "UNSUPPORTED";
                }