fix bit-endian 16 bit unpack for move
[premotedroid-server-perl.git] / premotedroid-server.pl
index 1719d01..0d7c6b0 100755 (executable)
@@ -45,12 +45,16 @@ while ( my $client = $sock->accept() ) {
                warn "# command: $command\n";
                if ( $command == MOUSE_MOVE ) {
                        read $client, my $move, 4;
-                       my ( $x, $y ) = unpack 'ss', $move;
+                       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";