summaryrefslogtreecommitdiff
path: root/emu/device.h
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-11-29 19:31:22 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2020-11-29 19:31:22 +0100
commitc7b0b280339064ab1b673ab7767d0318b2e9b72a (patch)
treeb597ee3f3c36db401eccb5bca5e8d7f8a8db8485 /emu/device.h
parentaca930d803177cb6ea8ebadd77b6ef09ab2b5b49 (diff)
download6502-c7b0b280339064ab1b673ab7767d0318b2e9b72a.tar.gz
6502-c7b0b280339064ab1b673ab7767d0318b2e9b72a.tar.bz2
7-segment display is now drawn
Diffstat (limited to 'emu/device.h')
-rw-r--r--emu/device.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/emu/device.h b/emu/device.h
index ce2abad..41c430f 100644
--- a/emu/device.h
+++ b/emu/device.h
@@ -3,22 +3,35 @@
#include <stdint.h>
+#ifdef WITH_GUI
+#include <SDL.h>
+#endif
+
struct device_t;
typedef struct device_vtable_t {
uint8_t (*read)( void *obj, uint16_t addr );
void (*write)( void *obj, uint16_t addr, uint8_t data );
+#ifdef WITH_GUI
+ void (*draw)( void *obj, SDL_Renderer *renderer );
+#endif
void (*deinit)( void *obj );
} device_vtable_t;
typedef struct device_t {
device_vtable_t const *vtable;
char *name;
+#ifdef WITH_GUI
+ SDL_Renderer *renderer;
+#endif
} device_t;
void device_init( device_t *device, const char *name );
uint8_t device_read( void *obj, uint16_t addr );
void device_write( void *obj, uint16_t addr, uint8_t data );
+#ifdef WITH_GUI
+void device_draw( void *obj, SDL_Renderer *renderer );
+#endif
void device_deinit( void *obj );
#endif