forked from Dniel97/segatools
switched uint8_t -> bool in input, no pressure sense
This commit is contained in:
parent
1bc2fc141b
commit
c91ef4005a
@ -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_mystery2(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_1 = 0x7b;
|
||||
@ -409,18 +409,18 @@ static HRESULT touch_handle_start_auto_scan(const struct touch_req *req)
|
||||
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 frame1;
|
||||
uint8_t data1[24] = { 0 };
|
||||
uint8_t data[24] = { 0 };
|
||||
uint8_t data2[9] = { 0x0d, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 };
|
||||
|
||||
frame0.cmd = 0x81;
|
||||
frame0.count = input_frame_count_0++;
|
||||
input_frame_count_0 %= 0x7f;
|
||||
// for now return no data
|
||||
memcpy(frame0.data1, data1, sizeof(data1));
|
||||
memcpy(frame0.data1, data, sizeof(data));
|
||||
memcpy(frame0.data2, data2, sizeof(data2));
|
||||
frame0.checksum = 0;
|
||||
frame0.checksum = calc_checksum(&frame0, sizeof(frame0));
|
||||
|
@ -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)
|
||||
{
|
||||
mercury_io_touch_callback_t callback;
|
||||
uint8_t pressure[240];
|
||||
bool cellPressed[240];
|
||||
size_t i;
|
||||
|
||||
callback = ctx;
|
||||
|
||||
while (!mercury_io_touch_stop_flag) {
|
||||
for (i = 0 ; i < _countof(pressure) ; i++) {
|
||||
if (GetAsyncKeyState(mercury_io_cfg.vk_cell[i]) & 0x8000) {
|
||||
pressure[i] = 128;
|
||||
for (i = 0 ; i < _countof(cellPressed) ; i++) {
|
||||
if (GetAsyncKeyState(mercury_io_cfg.vk_cell[i])) {
|
||||
cellPressed[i] = true;
|
||||
} else {
|
||||
pressure[i] = 0;
|
||||
cellPressed[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
callback(pressure);
|
||||
callback(cellPressed);
|
||||
Sleep(1);
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ enum {
|
||||
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
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user