gba-link-connection/lib/c_bindings/C_LinkGPIO.h

49 lines
1.2 KiB
C

#ifndef C_BINDINGS_LINK_GPIO_H
#define C_BINDINGS_LINK_GPIO_H
#ifdef __cplusplus
extern "C" {
#endif
#include <tonc_core.h>
typedef void* C_LinkGPIOHandle;
typedef enum {
C_LINK_GPIO_PIN_SI,
C_LINK_GPIO_PIN_SO,
C_LINK_GPIO_PIN_SD,
C_LINK_GPIO_PIN_SC
} C_LinkGPIO_Pin;
typedef enum {
C_LINK_GPIO_DIRECTION_INPUT,
C_LINK_GPIO_DIRECTION_OUTPUT
} C_LinkGPIO_Direction;
C_LinkGPIOHandle C_LinkGPIO_create();
void C_LinkGPIO_destroy(C_LinkGPIOHandle handle);
void C_LinkGPIO_reset(C_LinkGPIOHandle handle);
void C_LinkGPIO_setMode(C_LinkGPIOHandle handle,
C_LinkGPIO_Pin pin,
C_LinkGPIO_Direction direction);
C_LinkGPIO_Direction C_LinkGPIO_getMode(C_LinkGPIOHandle handle,
C_LinkGPIO_Pin pin);
bool C_LinkGPIO_readPin(C_LinkGPIOHandle handle, C_LinkGPIO_Pin pin);
void C_LinkGPIO_writePin(C_LinkGPIOHandle handle,
C_LinkGPIO_Pin pin,
bool isHigh);
void C_LinkGPIO_setSIInterrupts(C_LinkGPIOHandle handle, bool isEnabled);
bool C_LinkGPIO_getSIInterrupts(C_LinkGPIOHandle handle);
extern C_LinkGPIOHandle cLinkGPIO;
#ifdef __cplusplus
}
#endif
#endif // C_BINDINGS_LINK_GPIO_H