Minor refactor of GBJoypad lifecycles functions

This commit is contained in:
condret 2024-11-05 18:46:12 +01:00
parent 4fe5bd2e15
commit cc18c20435
2 changed files with 10 additions and 12 deletions

View File

@ -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;

View File

@ -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);
}