#ifndef NESE_STATE_H_ #define NESE_STATE_H_ #include #include #include #include "input.h" #include "overlay.h" #include "render.h" #include "audio.h" #include "nes.h" // Persistent State typedef struct { char* filename; FILE* file; } cart_info; void cart_info_done(cart_info*); typedef enum { State_Bit_Fullscreen = 0, State_Bit_Integer_Scale = 1, State_Bit_CRT_Effect = 2, } nese_State_Flag_Bits; typedef struct { cart_info cart; uint32_t flags; // nese_State_Flag_Bits } nese_State; void nese_state_done(nese_State*); int load_prefs_file(nese_State*, FILE*); int save_prefs_file(const nese_State*, FILE*); int load_prefs_filename(nese_State*, const char*); int save_prefs_filename(const nese_State*, const char*); // Running State typedef struct nese_Components { nes_Renderer* rend; nes_Input_Reader* reader; nes_Audio_Stream* audio; nes* sys; nese_State* state; } nese_Components; #endif // NESE_STATE_H_