#pragma once #include "acioemu/acioemu.h" #include "hooks/devicehook.h" namespace games::iidx { class BI2XSerialHandle : public CustomHandle { private: acioemu::ACIOEmu acio_emu; class BI2XDevice : public acioemu::ACIODeviceEmu { private: uint8_t coin_counter = 0; public: BI2XDevice(); bool parse_msg(acioemu::MessageData *msg_in, circular_buffer *response_buffer) override; }; public: bool open(LPCWSTR lpFileName) override; int read(LPVOID lpBuffer, DWORD nNumberOfBytesToRead) override; int write(LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite) override; int device_io(DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize) override; bool close() override; }; }