segatools/apm3io/apm3io.c
2024-08-20 22:18:44 +02:00

55 lines
1.0 KiB
C

#include <windows.h>
#include <xinput.h>
#include <limits.h>
#include <stdint.h>
#include "apm3io/apm3io.h"
#include "apm3io/config.h"
static uint8_t apm3_opbtn;
static struct apm3_io_config apm3_io_cfg;
static bool apm3_io_coin;
uint16_t apm3_io_get_api_version(void)
{
return 0x0100;
}
HRESULT apm3_io_init(void)
{
apm3_io_config_load(&apm3_io_cfg, L".\\segatools.ini");
return S_OK;
}
HRESULT apm3_io_poll(void)
{
apm3_opbtn = 0;
if (GetAsyncKeyState(apm3_io_cfg.vk_test) & 0x8000) {
apm3_opbtn |= apm3_IO_OPBTN_TEST;
}
if (GetAsyncKeyState(apm3_io_cfg.vk_service) & 0x8000) {
apm3_opbtn |= apm3_IO_OPBTN_SERVICE;
}
if (GetAsyncKeyState(apm3_io_cfg.vk_coin) & 0x8000) {
if (!apm3_io_coin) {
apm3_io_coin = true;
apm3_opbtn |= apm3_IO_OPBTN_COIN;
}
} else {
apm3_io_coin = false;
}
return S_OK;
}
void apm3_io_get_opbtns(uint8_t *opbtn)
{
if (opbtn != NULL) {
*opbtn = apm3_opbtn;
}
}