mirror of
https://github.com/LizardByte/libvirtualhid.git
synced 2026-10-24 12:07:24 +09:00
73 lines
2.1 KiB
C++
73 lines
2.1 KiB
C++
/**
|
|
* @file examples/keyboard_mouse_adapter.cpp
|
|
* @brief Minimal keyboard and mouse input example.
|
|
*/
|
|
|
|
// standard includes
|
|
#include <iostream>
|
|
|
|
// local includes
|
|
#include <libvirtualhid/libvirtualhid.hpp>
|
|
|
|
/**
|
|
* @brief Run the minimal keyboard and mouse input example.
|
|
* @return Zero on success; nonzero when device creation or input submission
|
|
* fails.
|
|
*/
|
|
int main() {
|
|
auto runtime = lvh::Runtime::create();
|
|
|
|
auto keyboard = runtime->create_keyboard();
|
|
if (!keyboard) {
|
|
std::cerr << keyboard.status.message() << '\n';
|
|
return 1;
|
|
}
|
|
|
|
auto mouse = runtime->create_mouse();
|
|
if (!mouse) {
|
|
std::cerr << mouse.status.message() << '\n';
|
|
return 1;
|
|
}
|
|
|
|
if (const auto status = keyboard.keyboard->press(0x41); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
if (const auto status = keyboard.keyboard->release(0x41); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
if (const auto status = keyboard.keyboard->type_text({.text = "Hi"}); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
|
|
if (const auto status = mouse.mouse->move_relative(25, -10); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
if (const auto status = mouse.mouse->move_absolute(960, 540, 1920, 1080); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
if (const auto status = mouse.mouse->button(lvh::MouseButton::left, true); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
if (const auto status = mouse.mouse->button(lvh::MouseButton::left, false); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
if (const auto status = mouse.mouse->vertical_scroll(120); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
if (const auto status = mouse.mouse->horizontal_scroll(-120); !status.ok()) {
|
|
std::cerr << status.message() << '\n';
|
|
return 1;
|
|
}
|
|
|
|
std::cout << "keyboard " << keyboard.keyboard->submit_count() << " mouse " << mouse.mouse->submit_count() << '\n';
|
|
return 0;
|
|
}
|