libjoybus
Joybus implementation for 32-bit MCUs
Loading...
Searching...
No Matches
n64.h
1
7
8#pragma once
9
10#include <joybus/bus.h>
11#include <joybus/commands.h>
13
21int joybus_n64_read(struct joybus *bus, struct joybus_n64_controller_state *response);
22
32int joybus_n64_read_async(struct joybus *bus, struct joybus_n64_controller_state *response,
33 joybus_transfer_cb callback, void *user_data);
34
47int joybus_n64_pak_write(struct joybus *bus, uint16_t addr, const void *data, uint8_t response[JOYBUS_CMD_N64_PAK_WRITE_RX]);
48
63int joybus_n64_pak_write_async(struct joybus *bus, uint16_t addr, const uint8_t data[JOYBUS_PAK_BLOCK_SIZE],
64 uint8_t response[JOYBUS_CMD_N64_PAK_WRITE_RX], joybus_transfer_cb callback,
65 void *user_data);
66
78int joybus_n64_pak_read(struct joybus *bus, uint16_t addr, uint8_t response[JOYBUS_CMD_N64_PAK_READ_RX]);
79
93int joybus_n64_pak_read_async(struct joybus *bus, uint16_t addr, uint8_t response[JOYBUS_CMD_N64_PAK_READ_RX],
94 joybus_transfer_cb callback, void *user_data);
95
Joybus command codes and transfer lengths.
#define JOYBUS_CMD_N64_PAK_WRITE_RX
N64 pak write response length.
Definition commands.h:42
#define JOYBUS_CMD_N64_PAK_READ_RX
N64 pak read response length.
Definition commands.h:35
Common definitions for N64 controllers.
int joybus_n64_read_async(struct joybus *bus, struct joybus_n64_controller_state *response, joybus_transfer_cb callback, void *user_data)
Read the current input state of an N64 controller or mouse, asynchronously.
Definition n64.c:19
int joybus_n64_read(struct joybus *bus, struct joybus_n64_controller_state *response)
Read the current input state of an N64 controller or mouse.
Definition n64.c:13
int joybus_n64_pak_write(struct joybus *bus, uint16_t addr, const void *data, uint8_t response[JOYBUS_CMD_N64_PAK_WRITE_RX])
Write a block of data to the pak attached to an N64 controller.
Definition n64.c:30
int joybus_n64_pak_write_async(struct joybus *bus, uint16_t addr, const uint8_t data[JOYBUS_PAK_BLOCK_SIZE], uint8_t response[JOYBUS_CMD_N64_PAK_WRITE_RX], joybus_transfer_cb callback, void *user_data)
Write a block of data to the pak attached to an N64 controller, asynchronously.
int joybus_n64_pak_read(struct joybus *bus, uint16_t addr, uint8_t response[JOYBUS_CMD_N64_PAK_READ_RX])
Read a block of data from the pak attached to an N64 controller.
Definition n64.c:56
int joybus_n64_pak_read_async(struct joybus *bus, uint16_t addr, uint8_t response[JOYBUS_CMD_N64_PAK_READ_RX], joybus_transfer_cb callback, void *user_data)
Read a block of data from the pak attached to an N64 controller, asynchronously.
#define JOYBUS_PAK_BLOCK_SIZE
Size of a Joybus N64 pak read/write block.
Definition bus.h:56
void(* joybus_transfer_cb)(struct joybus *bus, int status, void *user_data)
Function type for transfer completion callbacks.
Definition bus.h:74
N64 controller input state.
Definition n64_controller.h:42
A Joybus instance.
Definition bus.h:96