mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-06-30 11:01:50 +08:00
72 lines
2.4 KiB
C++
72 lines
2.4 KiB
C++
#include "device_controller.h"
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
namespace {
|
|
|
|
bool ExpectEqual(const char* name, size_t actual, size_t expected) {
|
|
if (actual == expected) {
|
|
return true;
|
|
}
|
|
|
|
std::cerr << name << " mismatch\n"
|
|
<< " expected: " << expected << "\n"
|
|
<< " actual: " << actual << "\n";
|
|
return false;
|
|
}
|
|
|
|
bool ExpectTrue(const char* name, bool value) {
|
|
if (value) {
|
|
return true;
|
|
}
|
|
|
|
std::cerr << name << " expected true\n";
|
|
return false;
|
|
}
|
|
|
|
} // namespace
|
|
|
|
int main() {
|
|
bool ok = true;
|
|
ok &= ExpectEqual("mouse type", crossdesk::ControlType::mouse, 0);
|
|
ok &= ExpectEqual("keyboard type", crossdesk::ControlType::keyboard, 1);
|
|
ok &= ExpectEqual("audio_capture type", crossdesk::ControlType::audio_capture,
|
|
2);
|
|
ok &= ExpectEqual("host_infomation type",
|
|
crossdesk::ControlType::host_infomation, 3);
|
|
ok &= ExpectEqual("display_id type", crossdesk::ControlType::display_id, 4);
|
|
ok &= ExpectEqual("service_status type",
|
|
crossdesk::ControlType::service_status, 5);
|
|
ok &= ExpectEqual("service_command type",
|
|
crossdesk::ControlType::service_command, 6);
|
|
ok &= ExpectEqual("keyboard_state type",
|
|
crossdesk::ControlType::keyboard_state, 7);
|
|
|
|
crossdesk::RemoteAction action{};
|
|
action.type = crossdesk::ControlType::keyboard_state;
|
|
action.ks.seq = 42;
|
|
action.ks.pressed_count = 2;
|
|
action.ks.pressed_keys[0] = {65, 30, false};
|
|
action.ks.pressed_keys[1] = {0xA3, 29, true};
|
|
|
|
const std::string json = action.to_json();
|
|
|
|
crossdesk::RemoteAction parsed{};
|
|
ok &= ExpectTrue("parse keyboard_state", parsed.from_json(json));
|
|
ok &= ExpectEqual("parsed type", parsed.type,
|
|
crossdesk::ControlType::keyboard_state);
|
|
ok &= ExpectEqual("parsed seq", parsed.ks.seq, 42);
|
|
ok &= ExpectEqual("parsed pressed_count", parsed.ks.pressed_count, 2);
|
|
ok &= ExpectEqual("parsed key 0", parsed.ks.pressed_keys[0].key_value, 65);
|
|
ok &= ExpectEqual("parsed scan 0", parsed.ks.pressed_keys[0].scan_code, 30);
|
|
ok &= ExpectTrue("parsed extended 0",
|
|
!parsed.ks.pressed_keys[0].extended);
|
|
ok &= ExpectEqual("parsed key 1", parsed.ks.pressed_keys[1].key_value,
|
|
0xA3);
|
|
ok &= ExpectEqual("parsed scan 1", parsed.ks.pressed_keys[1].scan_code, 29);
|
|
ok &= ExpectTrue("parsed extended 1", parsed.ks.pressed_keys[1].extended);
|
|
|
|
return ok ? 0 : 1;
|
|
}
|