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>
14
22int joybus_n64_read(struct joybus *bus, struct joybus_n64_controller_state *response);
23
33int joybus_n64_read_async(struct joybus *bus, struct joybus_n64_controller_state *response, joybus_transfer_cb callback,
34 void *user_data);
35
48int joybus_n64_pak_write(struct joybus *bus, uint16_t addr, const void *data,
49 uint8_t response[JOYBUS_CMD_N64_PAK_WRITE_RX]);
50
65int joybus_n64_pak_write_async(struct joybus *bus, uint16_t addr, const uint8_t data[JOYBUS_N64_PAK_BLOCK_SIZE],
66 uint8_t response[JOYBUS_CMD_N64_PAK_WRITE_RX], joybus_transfer_cb callback,
67 void *user_data);
68
80int joybus_n64_pak_read(struct joybus *bus, uint16_t addr, uint8_t response[JOYBUS_CMD_N64_PAK_READ_RX]);
81
95int joybus_n64_pak_read_async(struct joybus *bus, uint16_t addr, uint8_t response[JOYBUS_CMD_N64_PAK_READ_RX],
96 joybus_transfer_cb callback, void *user_data);
97
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.
Common definitions for N64 paks.
#define JOYBUS_N64_PAK_BLOCK_SIZE
Size of a pak read or write block in bytes.
Definition n64_pak.h:10
int joybus_n64_pak_write_async(struct joybus *bus, uint16_t addr, const uint8_t data[JOYBUS_N64_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.
Definition n64.c:37
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_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:57
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.
Definition n64.c:63
void(* joybus_transfer_cb)(struct joybus *bus, int status, void *user_data)
Function type for transfer completion callbacks.
Definition bus.h:85
N64 controller input state.
Definition n64_controller.h:42
A Joybus instance.
Definition bus.h:105