Fix pointer position mismatch issue

In case of big size resolution of host video, mouse pointer
indicates slightly upper left than client GUI pointer. It's caused
by rounding off value below the decimal point on the coordinate
unit. For an example, in 1600x1200 screen size, the x coordinate
unit is 32768 / 1600 = 20.48 but we use 20 after rounding off the
0.48.

To prevent this issue, this commit changes logic of the calculation.
It uses integer operations instead of using floating point
operations for better performance.

Change-Id: Ie1fbb6b41ace997c50982d9542b0b03280b2220f
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
1 file changed
tree: 85b72e1b87ef5898c2c95c5e1ae3aa5e42e49817
  1. bootstrap.sh
  2. configure.ac
  3. create_usbhid.sh
  4. ikvm_args.cpp
  5. ikvm_args.hpp
  6. ikvm_input.cpp
  7. ikvm_input.hpp
  8. ikvm_manager.cpp
  9. ikvm_manager.hpp
  10. ikvm_server.cpp
  11. ikvm_server.hpp
  12. ikvm_video.cpp
  13. ikvm_video.hpp
  14. LICENSE
  15. MAINTAINERS
  16. Makefile.am
  17. obmc-ikvm.cpp
  18. README.md
  19. scancodes.hpp
README.md

OpenBMC IpKVM Server

The obmc-ikvm application is a VNC server that provides access to the host graphics output. The application interfaces with the video device on the BMC that captures the host graphics, and then serves that video data on the RFB (remote framebuffer, also known as VNC) protocol. The application also interfaces with the BMC USB gadget device to pass HID events from the BMC to the host, allowing the user to interact with the host system.

Usage

Once the host is running and an appropriate HID gadget device is instantiated on the BMC, the application can be started with the following command: obmc-ikvm -v <video device path> -i <HID gadget device path>

For example:

obmc-ikvm -v /dev/video0 -i /dev/hidg0