Minor refactor of GBJoypad lifecycles functions
This commit is contained in:
parent
4fe5bd2e15
commit
cc18c20435
|
@ -43,9 +43,9 @@ typedef struct gb_joypad_t {
|
|||
ut8 odata;
|
||||
} GBJoypad;
|
||||
|
||||
GBJoypad *gb_joypad_open(RIO *io);
|
||||
bool gb_joypad_init(GBJoypad *joypad, RIO *io);
|
||||
void gb_joypad_continue(GBJoypad *joypad);
|
||||
void gb_joypad_close(GBJoypad *joypad, RIO *io);
|
||||
void gb_joypad_fini(GBJoypad *joypad, RIO *io);
|
||||
|
||||
typedef struct gb_dma_t {
|
||||
ut64 seek; //17 bit seek and some flags
|
||||
|
@ -173,7 +173,7 @@ typedef struct gameboy_t {
|
|||
RIO *io;
|
||||
RArch *arch;
|
||||
GBTimers *timers;
|
||||
GBJoypad *joypad;
|
||||
GBJoypad joypad;
|
||||
GBDMA *dma;
|
||||
GBPPU *ppu;
|
||||
ut64 addr;
|
||||
|
|
16
io/joypad.c
16
io/joypad.c
|
@ -80,19 +80,18 @@ RIOPlugin r_io_plugin_gb_joypad = {
|
|||
.write = __write,
|
||||
};
|
||||
|
||||
GBJoypad *gb_joypad_open (RIO *io) {
|
||||
GBJoypad *joypad = R_NEW0 (GBJoypad);
|
||||
if (!joypad) {
|
||||
return NULL;
|
||||
bool gb_joypad_init (GBJoypad *joypad, RIO *io) {
|
||||
if (!joypad || !io) {
|
||||
return false;
|
||||
}
|
||||
joypad[0] = (const GBJoypad){0};
|
||||
char uri[64];
|
||||
memset (uri, 0x00, sizeof (char) * 64);
|
||||
sprintf (uri, "gb_joypad://%p", joypad);
|
||||
RIODesc *desc = r_io_desc_open_plugin (io, &r_io_plugin_gb_joypad,
|
||||
uri, R_PERM_RWX, 0);
|
||||
if (!desc) {
|
||||
free (joypad);
|
||||
return NULL;
|
||||
return false;
|
||||
}
|
||||
joypad->fd = desc->fd;
|
||||
const ut8 *keys = SDL_GetKeyboardState (NULL);
|
||||
|
@ -105,7 +104,7 @@ GBJoypad *gb_joypad_open (RIO *io) {
|
|||
joypad->b = SDL_SCANCODE_K;
|
||||
joypad->start = SDL_SCANCODE_SPACE;
|
||||
joypad->select = SDL_SCANCODE_KP_ENTER;
|
||||
return joypad;
|
||||
return true;;
|
||||
}
|
||||
|
||||
void gb_joypad_continue(GBJoypad *joypad) {
|
||||
|
@ -139,10 +138,9 @@ void gb_joypad_continue(GBJoypad *joypad) {
|
|||
}
|
||||
}
|
||||
|
||||
void gb_joypad_close (GBJoypad *joypad, RIO *io) {
|
||||
void gb_joypad_fini (GBJoypad *joypad, RIO *io) {
|
||||
if (!joypad || !io) {
|
||||
return;
|
||||
}
|
||||
r_io_fd_close (io, joypad->fd);
|
||||
free (joypad);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user