switched uint8_t -> bool in input, no pressure sense

This commit is contained in:
Hay1tsme 2022-01-09 12:30:31 -05:00
parent 315a272a03
commit d633cb9838
3 changed files with 11 additions and 11 deletions

View File

@ -36,7 +36,7 @@ static HRESULT touch_handle_get_unit_board_ver(const struct touch_req *req);
static HRESULT touch_handle_mystery1(const struct touch_req *req); static HRESULT touch_handle_mystery1(const struct touch_req *req);
static HRESULT touch_handle_mystery2(const struct touch_req *req); static HRESULT touch_handle_mystery2(const struct touch_req *req);
static HRESULT touch_handle_start_auto_scan(const struct touch_req *req); static HRESULT touch_handle_start_auto_scan(const struct touch_req *req);
static void touch_res_auto_scan(const uint8_t *state); static void touch_res_auto_scan(const bool *state);
uint8_t input_frame_count_0 = 0x7b; uint8_t input_frame_count_0 = 0x7b;
uint8_t input_frame_count_1 = 0x7b; uint8_t input_frame_count_1 = 0x7b;
@ -409,18 +409,18 @@ static HRESULT touch_handle_start_auto_scan(const struct touch_req *req)
return hr; return hr;
} }
static void touch_res_auto_scan(const uint8_t *state) static void touch_res_auto_scan(const bool *state)
{ {
struct touch_input_frame frame0; struct touch_input_frame frame0;
//struct touch_input_frame frame1; //struct touch_input_frame frame1;
uint8_t data1[24] = { 0 }; uint8_t data[24] = { 0 };
uint8_t data2[9] = { 0x0d, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 }; uint8_t data2[9] = { 0x0d, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 };
frame0.cmd = 0x81; frame0.cmd = 0x81;
frame0.count = input_frame_count_0++; frame0.count = input_frame_count_0++;
input_frame_count_0 %= 0x7f; input_frame_count_0 %= 0x7f;
// for now return no data // for now return no data
memcpy(frame0.data1, data1, sizeof(data1)); memcpy(frame0.data1, data, sizeof(data));
memcpy(frame0.data2, data2, sizeof(data2)); memcpy(frame0.data2, data2, sizeof(data2));
frame0.checksum = 0; frame0.checksum = 0;
frame0.checksum = calc_checksum(&frame0, sizeof(frame0)); frame0.checksum = calc_checksum(&frame0, sizeof(frame0));

View File

@ -89,21 +89,21 @@ void mercury_io_touch_start(mercury_io_touch_callback_t callback)
static unsigned int __stdcall mercury_io_touch_thread_proc(void *ctx) static unsigned int __stdcall mercury_io_touch_thread_proc(void *ctx)
{ {
mercury_io_touch_callback_t callback; mercury_io_touch_callback_t callback;
uint8_t pressure[240]; bool cellPressed[240];
size_t i; size_t i;
callback = ctx; callback = ctx;
while (!mercury_io_touch_stop_flag) { while (!mercury_io_touch_stop_flag) {
for (i = 0 ; i < _countof(pressure) ; i++) { for (i = 0 ; i < _countof(cellPressed) ; i++) {
if (GetAsyncKeyState(mercury_io_cfg.vk_cell[i]) & 0x8000) { if (GetAsyncKeyState(mercury_io_cfg.vk_cell[i])) {
pressure[i] = 128; cellPressed[i] = true;
} else { } else {
pressure[i] = 0; cellPressed[i] = false;
} }
} }
callback(pressure); callback(cellPressed);
Sleep(1); Sleep(1);
} }

View File

@ -14,7 +14,7 @@ enum {
MERCURY_IO_GAMEBTN_VOL_DOWN = 0x02, MERCURY_IO_GAMEBTN_VOL_DOWN = 0x02,
}; };
typedef void (*mercury_io_touch_callback_t)(const uint8_t *state); typedef void (*mercury_io_touch_callback_t)(const bool *state);
/* Get the version of the Wacca IO API that this DLL supports. This /* Get the version of the Wacca IO API that this DLL supports. This
function should return a positive 16-bit integer, where the high byte is function should return a positive 16-bit integer, where the high byte is
the major version and the low byte is the minor version (as defined by the the major version and the low byte is the minor version (as defined by the