diff --git a/README.md b/README.md index b22019c..e6f7f65 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,8 @@ Standalone HP 48(SX/GX) front-end ready to be plugged into emulators. Provide both GUI implemented in SDL2 and TUI in ncurses. Extracted from x48ng. + +## How to use? + +To plug an emulator you'll want to look into the interface defined in emulator.h and emulator.c +A basic main loop is shown in main.c diff --git a/src/emulator.c b/src/emulator.c index d8409c8..bbb73a7 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -1,5 +1,8 @@ +#include "config.h" #include "emulator.h" +static config_t config; + typedef struct hpkey_t { int code; bool pressed; @@ -100,10 +103,7 @@ void get_lcd_buffer( int* target ) int get_contrast( void ) { return contrast; } -void init_emulator( void ) -{ - // nop; -} +void init_emulator( config_t* conf ) { config = *conf; } void exit_emulator( void ) { diff --git a/src/emulator.h b/src/emulator.h index 0bd285d..aa08946 100644 --- a/src/emulator.h +++ b/src/emulator.h @@ -3,6 +3,8 @@ #include +#include "config.h" + // Keys #define HPKEY_A 0 #define HPKEY_B 1 @@ -90,7 +92,7 @@ extern void press_key( int hpkey ); extern void release_key( int hpkey ); extern bool is_key_pressed( int hpkey ); -extern void init_emulator( void ); +extern void init_emulator( config_t* conf ); extern void exit_emulator( void ); extern unsigned char get_annunciators( void ); diff --git a/src/main.c b/src/main.c index b495c8b..e2bed1e 100644 --- a/src/main.c +++ b/src/main.c @@ -5,10 +5,9 @@ int main( int argc, char** argv ) { - config_t* config = config_init( argc, argv ); - init_emulator(); + init_emulator( config ); /* (G)UI */ setup_ui( config );