forked from Dniel97/segatools
Add API versioning mechanism to chuniio
This commit is contained in:
parent
0c7a9c87c0
commit
f65f816497
@ -16,6 +16,11 @@ static HANDLE chuni_io_slider_thread;
|
|||||||
static bool chuni_io_slider_stop_flag;
|
static bool chuni_io_slider_stop_flag;
|
||||||
static struct chuni_io_config chuni_io_cfg;
|
static struct chuni_io_config chuni_io_cfg;
|
||||||
|
|
||||||
|
uint16_t chuni_io_get_api_version(void)
|
||||||
|
{
|
||||||
|
return 0x0100;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT chuni_io_jvs_init(void)
|
HRESULT chuni_io_jvs_init(void)
|
||||||
{
|
{
|
||||||
chuni_io_config_load(&chuni_io_cfg, L".\\segatools.ini");
|
chuni_io_config_load(&chuni_io_cfg, L".\\segatools.ini");
|
||||||
|
@ -5,13 +5,24 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/* Get the version of the Chunithm 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
|
||||||
|
Semantic Versioning standard).
|
||||||
|
|
||||||
|
The latest API version as of this writing is 0x0100. */
|
||||||
|
|
||||||
|
uint16_t chuni_io_get_api_version(void);
|
||||||
|
|
||||||
/* Initialize JVS-based input. This function will be called before any other
|
/* Initialize JVS-based input. This function will be called before any other
|
||||||
chuni_io_jvs_*() function calls. Errors returned from this function will
|
chuni_io_jvs_*() function calls. Errors returned from this function will
|
||||||
manifest as a disconnected JVS bus.
|
manifest as a disconnected JVS bus.
|
||||||
|
|
||||||
All subsequent calls may originate from arbitrary threads and some may
|
All subsequent calls may originate from arbitrary threads and some may
|
||||||
overlap with each other. Ensuring synchronization inside your IO DLL is
|
overlap with each other. Ensuring synchronization inside your IO DLL is
|
||||||
your responsibility. */
|
your responsibility.
|
||||||
|
|
||||||
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
HRESULT chuni_io_jvs_init(void);
|
HRESULT chuni_io_jvs_init(void);
|
||||||
|
|
||||||
@ -28,13 +39,17 @@ HRESULT chuni_io_jvs_init(void);
|
|||||||
Note that you cannot instantly break the entire IR grid in a single frame to
|
Note that you cannot instantly break the entire IR grid in a single frame to
|
||||||
simulate hand movement; this will be judged as a miss. You need to simulate
|
simulate hand movement; this will be judged as a miss. You need to simulate
|
||||||
a gradual raising and lowering of the hands. Consult the proof-of-concept
|
a gradual raising and lowering of the hands. Consult the proof-of-concept
|
||||||
implementation for details. */
|
implementation for details.
|
||||||
|
|
||||||
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
void chuni_io_jvs_poll(uint8_t *opbtn, uint8_t *beams);
|
void chuni_io_jvs_poll(uint8_t *opbtn, uint8_t *beams);
|
||||||
|
|
||||||
/* Read the current state of the coin counter. This value should be incremented
|
/* Read the current state of the coin counter. This value should be incremented
|
||||||
for every coin detected by the coin acceptor mechanism. This count does not
|
for every coin detected by the coin acceptor mechanism. This count does not
|
||||||
need to persist beyond the lifetime of the process. */
|
need to persist beyond the lifetime of the process.
|
||||||
|
|
||||||
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
void chuni_io_jvs_read_coin_counter(uint16_t *total);
|
void chuni_io_jvs_read_coin_counter(uint16_t *total);
|
||||||
|
|
||||||
@ -49,7 +64,9 @@ void chuni_io_jvs_set_coin_blocker(bool open);
|
|||||||
|
|
||||||
All subsequent calls may originate from arbitrary threads and some may
|
All subsequent calls may originate from arbitrary threads and some may
|
||||||
overlap with each other. Ensuring synchronization inside your IO DLL is
|
overlap with each other. Ensuring synchronization inside your IO DLL is
|
||||||
your responsibility. */
|
your responsibility.
|
||||||
|
|
||||||
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
HRESULT chuni_io_slider_init(void);
|
HRESULT chuni_io_slider_init(void);
|
||||||
|
|
||||||
@ -83,7 +100,9 @@ typedef void (*chuni_io_slider_callback_t)(const uint8_t *state);
|
|||||||
preferred interval then 1 kHz is a reasonable maximum frequency.
|
preferred interval then 1 kHz is a reasonable maximum frequency.
|
||||||
|
|
||||||
Note that you do have to have to call the callback "occasionally" even if
|
Note that you do have to have to call the callback "occasionally" even if
|
||||||
nothing is changing, otherwise the game will raise a comm timeout error. */
|
nothing is changing, otherwise the game will raise a comm timeout error.
|
||||||
|
|
||||||
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
void chuni_io_slider_start(chuni_io_slider_callback_t callback);
|
void chuni_io_slider_start(chuni_io_slider_callback_t callback);
|
||||||
|
|
||||||
@ -96,13 +115,17 @@ void chuni_io_slider_start(chuni_io_slider_callback_t callback);
|
|||||||
|
|
||||||
Following on from the above, the slider polling loop *will* be restarted
|
Following on from the above, the slider polling loop *will* be restarted
|
||||||
after being stopped in the course of regular operation. Do not permanently
|
after being stopped in the course of regular operation. Do not permanently
|
||||||
tear down your input driver in response to this function call. */
|
tear down your input driver in response to this function call.
|
||||||
|
|
||||||
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
void chuni_io_slider_stop(void);
|
void chuni_io_slider_stop(void);
|
||||||
|
|
||||||
/* Update the RGB lighting on the slider. A pointer to an array of 32 * 3 = 96
|
/* Update the RGB lighting on the slider. A pointer to an array of 32 * 3 = 96
|
||||||
bytes is supplied. The illuminated areas on the touch slider are some
|
bytes is supplied. The illuminated areas on the touch slider are some
|
||||||
combination of rectangular regions and dividing lines between these regions
|
combination of rectangular regions and dividing lines between these regions
|
||||||
but the exact mapping of this lighting control buffer is still TBD. */
|
but the exact mapping of this lighting control buffer is still TBD.
|
||||||
|
|
||||||
|
Minimum API version: 0x0100 */
|
||||||
|
|
||||||
void chuni_io_slider_set_leds(const uint8_t *rgb);
|
void chuni_io_slider_set_leds(const uint8_t *rgb);
|
||||||
|
Loading…
Reference in New Issue
Block a user