BizHawk/waterbox/bsnescore/bsnes/target-bsnescore/callbacks.h

41 lines
1.4 KiB
C

#ifndef CALLBACKS_H
#define CALLBACKS_H
#include <stdint.h>
typedef void (*snes_video_frame_t)(const uint16_t* data, int width, int height, int pitch);
typedef int16_t (*snes_input_poll_t)(int port, int index, int id);
typedef void (*snes_controller_latch_t)(void);
typedef void (*snes_no_lag_t)(bool sgb_poll);
typedef char* (*snes_path_request_t)(int slot, const char* hint, bool required);
typedef void (*snes_trace_t)(const char* disassembly, const char* register_info);
typedef void (*snes_read_hook_t)(uint32_t address);
typedef void (*snes_write_hook_t)(uint32_t address, uint8_t value);
typedef void (*snes_exec_hook_t)(uint32_t address);
typedef int64_t (*snes_time_t)(void);
typedef void (*snes_msu_open_t)(uint16_t track_id);
typedef void (*snes_msu_seek_t)(long offset, bool relative);
typedef uint8_t (*snes_msu_read_t)(void);
typedef bool (*snes_msu_end_t)(void);
struct SnesCallbacks {
snes_video_frame_t snes_video_frame;
snes_input_poll_t snes_input_poll;
snes_controller_latch_t snes_controller_latch;
snes_no_lag_t snes_no_lag;
snes_path_request_t snes_path_request;
snes_trace_t snes_trace;
snes_read_hook_t snes_read_hook;
snes_write_hook_t snes_write_hook;
snes_exec_hook_t snes_exec_hook;
snes_time_t snes_time;
snes_msu_open_t snes_msu_open;
snes_msu_seek_t snes_msu_seek;
snes_msu_read_t snes_msu_read;
snes_msu_end_t snes_msu_end;
};
extern SnesCallbacks snesCallbacks;
#endif