2014-05-10 11:09:28 +03:00
|
|
|
#ifndef _instance__hpp__included__
|
|
|
|
#define _instance__hpp__included__
|
|
|
|
|
2014-05-24 14:05:04 +03:00
|
|
|
#include "library/threads.hpp"
|
2014-05-10 11:09:28 +03:00
|
|
|
|
2014-05-24 14:05:04 +03:00
|
|
|
class movie_logic;
|
|
|
|
class memory_space;
|
|
|
|
class memwatch_set;
|
|
|
|
class voice_commentary;
|
|
|
|
class subtitle_commentary;
|
|
|
|
class movie_branches;
|
|
|
|
class multitrack_edit;
|
|
|
|
class _lsnes_status;
|
|
|
|
class alias_binds_manager;
|
|
|
|
class rrdata;
|
|
|
|
class cart_mappings_refresher;
|
|
|
|
class controller_state;
|
|
|
|
class project_state;
|
|
|
|
class debug_context;
|
|
|
|
class framerate_regulator;
|
|
|
|
class emu_framebuffer;
|
|
|
|
class input_queue;
|
2014-05-28 13:51:24 +03:00
|
|
|
class master_dumper;
|
2014-05-28 18:24:54 +03:00
|
|
|
class button_mapping;
|
2014-05-24 14:05:04 +03:00
|
|
|
namespace command
|
|
|
|
{
|
|
|
|
class group;
|
|
|
|
}
|
|
|
|
namespace lua
|
|
|
|
{
|
|
|
|
class state;
|
|
|
|
}
|
|
|
|
namespace settingvar
|
|
|
|
{
|
|
|
|
class group;
|
|
|
|
class cache;
|
|
|
|
}
|
|
|
|
namespace keyboard
|
|
|
|
{
|
|
|
|
class keyboard;
|
|
|
|
class mapper;
|
|
|
|
}
|
|
|
|
namespace triplebuffer
|
|
|
|
{
|
|
|
|
template<typename T> class triplebuffer;
|
|
|
|
}
|
2014-05-24 11:39:36 +03:00
|
|
|
|
|
|
|
struct emulator_instance
|
|
|
|
{
|
|
|
|
emulator_instance();
|
2014-05-24 14:05:04 +03:00
|
|
|
~emulator_instance();
|
|
|
|
movie_logic* mlogic;
|
|
|
|
memory_space* memory;
|
|
|
|
lua::state* lua;
|
|
|
|
memwatch_set* mwatch;
|
|
|
|
settingvar::group* settings;
|
|
|
|
settingvar::cache* setcache;
|
|
|
|
voice_commentary* commentary;
|
|
|
|
subtitle_commentary* subtitles;
|
|
|
|
movie_branches* mbranch;
|
|
|
|
controller_state* controls;
|
2014-05-28 18:24:54 +03:00
|
|
|
button_mapping* buttons;
|
2014-05-24 14:05:04 +03:00
|
|
|
multitrack_edit* mteditor;
|
|
|
|
_lsnes_status* status_A;
|
|
|
|
_lsnes_status* status_B;
|
|
|
|
_lsnes_status* status_C;
|
|
|
|
triplebuffer::triplebuffer<_lsnes_status>* status;
|
|
|
|
keyboard::keyboard* keyboard;
|
|
|
|
command::group* command;
|
|
|
|
keyboard::mapper* mapper;
|
|
|
|
alias_binds_manager* abindmanager;
|
|
|
|
rrdata* nrrdata;
|
|
|
|
cart_mappings_refresher* cmapper;
|
|
|
|
project_state* project;
|
|
|
|
debug_context* dbg;
|
|
|
|
framerate_regulator* framerate;
|
|
|
|
emu_framebuffer* fbuf;
|
|
|
|
input_queue* iqueue;
|
2014-05-28 13:51:24 +03:00
|
|
|
master_dumper* mdumper;
|
2014-05-24 11:39:36 +03:00
|
|
|
threads::id emu_thread;
|
2014-05-10 11:09:28 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
extern emulator_instance lsnes_instance;
|
|
|
|
|
2014-05-10 13:55:07 +03:00
|
|
|
emulator_instance& CORE();
|
|
|
|
|
2014-05-10 11:09:28 +03:00
|
|
|
#endif
|