Reformat InteropDll (Resharper)
This commit is contained in:
parent
3764af908f
commit
f3f15a32fe
10 changed files with 564 additions and 495 deletions
|
@ -9,60 +9,60 @@ extern unique_ptr<IAudioDevice> _soundManager;
|
||||||
static string _returnString;
|
static string _returnString;
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
DllExport void __stdcall SetVideoConfig(VideoConfig config)
|
DllExport void __stdcall SetVideoConfig(VideoConfig config)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetVideoConfig(config);
|
_console->GetSettings()->SetVideoConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetAudioConfig(AudioConfig config)
|
DllExport void __stdcall SetAudioConfig(AudioConfig config)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetAudioConfig(config);
|
_console->GetSettings()->SetAudioConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetInputConfig(InputConfig config)
|
DllExport void __stdcall SetInputConfig(InputConfig config)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetInputConfig(config);
|
_console->GetSettings()->SetInputConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetEmulationConfig(EmulationConfig config)
|
DllExport void __stdcall SetEmulationConfig(EmulationConfig config)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetEmulationConfig(config);
|
_console->GetSettings()->SetEmulationConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetGameboyConfig(GameboyConfig config)
|
DllExport void __stdcall SetGameboyConfig(GameboyConfig config)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetGameboyConfig(config);
|
_console->GetSettings()->SetGameboyConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetPreferences(PreferencesConfig config)
|
DllExport void __stdcall SetPreferences(PreferencesConfig config)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetPreferences(config);
|
_console->GetSettings()->SetPreferences(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetShortcutKeys(ShortcutKeyInfo shortcuts[], uint32_t count)
|
DllExport void __stdcall SetShortcutKeys(ShortcutKeyInfo shortcuts[], uint32_t count)
|
||||||
{
|
{
|
||||||
vector<ShortcutKeyInfo> shortcutList(shortcuts, shortcuts + count);
|
vector<ShortcutKeyInfo> shortcutList(shortcuts, shortcuts + count);
|
||||||
_console->GetSettings()->SetShortcutKeys(shortcutList);
|
_console->GetSettings()->SetShortcutKeys(shortcutList);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport ControllerType __stdcall GetControllerType(int player)
|
DllExport ControllerType __stdcall GetControllerType(int player)
|
||||||
{
|
{
|
||||||
return _console->GetSettings()->GetInputConfig().Controllers[player].Type;
|
return _console->GetSettings()->GetInputConfig().Controllers[player].Type;
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport const char* __stdcall GetAudioDevices()
|
DllExport const char* __stdcall GetAudioDevices()
|
||||||
{
|
{
|
||||||
_returnString = _soundManager ? _soundManager->GetAvailableDevices() : "";
|
_returnString = _soundManager ? _soundManager->GetAvailableDevices() : "";
|
||||||
return _returnString.c_str();
|
return _returnString.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetEmulationFlag(EmulationFlags flag, bool enabled)
|
DllExport void __stdcall SetEmulationFlag(EmulationFlags flag, bool enabled)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetFlagState(flag, enabled);
|
_console->GetSettings()->SetFlagState(flag, enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetDebuggerFlag(DebuggerFlags flag, bool enabled)
|
DllExport void __stdcall SetDebuggerFlag(DebuggerFlags flag, bool enabled)
|
||||||
{
|
{
|
||||||
_console->GetSettings()->SetDebuggerFlag(flag, enabled);
|
_console->GetSettings()->SetDebuggerFlag(flag, enabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -18,9 +18,9 @@
|
||||||
#include "InteropNotificationListeners.h"
|
#include "InteropNotificationListeners.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include "../Windows/Renderer.h"
|
#include "../Windows/Renderer.h"
|
||||||
#include "../Windows/SoundManager.h"
|
#include "../Windows/SoundManager.h"
|
||||||
#include "../Windows/WindowsKeyManager.h"
|
#include "../Windows/WindowsKeyManager.h"
|
||||||
#else
|
#else
|
||||||
#include "../Linux/SdlRenderer.h"
|
#include "../Linux/SdlRenderer.h"
|
||||||
#include "../Linux/SdlSoundManager.h"
|
#include "../Linux/SdlSoundManager.h"
|
||||||
|
@ -61,12 +61,16 @@ enum class ConsoleId
|
||||||
shared_ptr<Console> GetConsoleById(ConsoleId consoleId)
|
shared_ptr<Console> GetConsoleById(ConsoleId consoleId)
|
||||||
{
|
{
|
||||||
shared_ptr<Console> console;
|
shared_ptr<Console> console;
|
||||||
switch (consoleId) {
|
switch (consoleId)
|
||||||
case ConsoleId::Main: console = _console; break;
|
{
|
||||||
case ConsoleId::HistoryViewer: console = _historyConsole; break;
|
case ConsoleId::Main: console = _console;
|
||||||
|
break;
|
||||||
|
case ConsoleId::HistoryViewer: console = _historyConsole;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!console) {
|
if (!console)
|
||||||
|
{
|
||||||
//Otherwise return the main CPU
|
//Otherwise return the main CPU
|
||||||
console = _console;
|
console = _console;
|
||||||
}
|
}
|
||||||
|
@ -74,91 +78,101 @@ shared_ptr<Console> GetConsoleById(ConsoleId consoleId)
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
DllExport bool __stdcall TestDll()
|
DllExport bool __stdcall TestDll()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport uint32_t __stdcall GetMesenVersion() { return _console->GetSettings()->GetVersion(); }
|
DllExport uint32_t __stdcall GetMesenVersion() { return _console->GetSettings()->GetVersion(); }
|
||||||
|
|
||||||
DllExport void __stdcall InitDll()
|
DllExport void __stdcall InitDll()
|
||||||
{
|
{
|
||||||
_console.reset(new Console());
|
_console.reset(new Console());
|
||||||
KeyManager::SetSettings(_console->GetSettings().get());
|
KeyManager::SetSettings(_console->GetSettings().get());
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall InitializeEmu(const char* homeFolder, void *windowHandle, void *viewerHandle, bool noAudio, bool noVideo, bool noInput)
|
DllExport void __stdcall InitializeEmu(const char* homeFolder, void* windowHandle, void* viewerHandle, bool noAudio,
|
||||||
{
|
bool noVideo, bool noInput)
|
||||||
|
{
|
||||||
_console->Initialize();
|
_console->Initialize();
|
||||||
|
|
||||||
FolderUtilities::SetHomeFolder(homeFolder);
|
FolderUtilities::SetHomeFolder(homeFolder);
|
||||||
_shortcutKeyHandler.reset(new ShortcutKeyHandler(_console));
|
_shortcutKeyHandler.reset(new ShortcutKeyHandler(_console));
|
||||||
|
|
||||||
if(windowHandle != nullptr && viewerHandle != nullptr) {
|
if (windowHandle != nullptr && viewerHandle != nullptr)
|
||||||
|
{
|
||||||
_windowHandle = windowHandle;
|
_windowHandle = windowHandle;
|
||||||
_viewerHandle = viewerHandle;
|
_viewerHandle = viewerHandle;
|
||||||
|
|
||||||
if(!noVideo) {
|
if (!noVideo)
|
||||||
#ifdef _WIN32
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
_renderer.reset(new Renderer(_console, (HWND)_viewerHandle, true));
|
_renderer.reset(new Renderer(_console, (HWND)_viewerHandle, true));
|
||||||
#else
|
#else
|
||||||
_renderer.reset(new SdlRenderer(_console, _viewerHandle, true));
|
_renderer.reset(new SdlRenderer(_console, _viewerHandle, true));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!noAudio) {
|
if (!noAudio)
|
||||||
#ifdef _WIN32
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
_soundManager.reset(new SoundManager(_console, (HWND)_windowHandle));
|
_soundManager.reset(new SoundManager(_console, (HWND)_windowHandle));
|
||||||
#else
|
#else
|
||||||
_soundManager.reset(new SdlSoundManager(_console));
|
_soundManager.reset(new SdlSoundManager(_console));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!noInput) {
|
if (!noInput)
|
||||||
#ifdef _WIN32
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
_keyManager.reset(new WindowsKeyManager(_console, (HWND)_windowHandle));
|
_keyManager.reset(new WindowsKeyManager(_console, (HWND)_windowHandle));
|
||||||
#else
|
#else
|
||||||
_keyManager.reset(new LinuxKeyManager(_console));
|
_keyManager.reset(new LinuxKeyManager(_console));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
KeyManager::RegisterKeyManager(_keyManager.get());
|
KeyManager::RegisterKeyManager(_keyManager.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetMasterVolume(double volume, ConsoleId consoleId) {
|
DllExport void __stdcall SetMasterVolume(double volume, ConsoleId consoleId)
|
||||||
|
{
|
||||||
AudioConfig config = GetConsoleById(consoleId)->GetSettings()->GetAudioConfig();
|
AudioConfig config = GetConsoleById(consoleId)->GetSettings()->GetAudioConfig();
|
||||||
config.MasterVolume = volume;
|
config.MasterVolume = volume;
|
||||||
GetConsoleById(consoleId)->GetSettings()->SetAudioConfig(config);
|
GetConsoleById(consoleId)->GetSettings()->SetAudioConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetVideoScale(double scale, ConsoleId consoleId) {
|
DllExport void __stdcall SetVideoScale(double scale, ConsoleId consoleId)
|
||||||
|
{
|
||||||
VideoConfig config = GetConsoleById(consoleId)->GetSettings()->GetVideoConfig();
|
VideoConfig config = GetConsoleById(consoleId)->GetSettings()->GetVideoConfig();
|
||||||
config.VideoScale = scale;
|
config.VideoScale = scale;
|
||||||
GetConsoleById(consoleId)->GetSettings()->SetVideoConfig(config);
|
GetConsoleById(consoleId)->GetSettings()->SetVideoConfig(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DllExport void __stdcall SetFullscreenMode(bool fullscreen, void *windowHandle, uint32_t monitorWidth, uint32_t monitorHeight)
|
DllExport void __stdcall SetFullscreenMode(bool fullscreen, void* windowHandle, uint32_t monitorWidth,
|
||||||
|
uint32_t monitorHeight)
|
||||||
|
{
|
||||||
|
if (_renderer)
|
||||||
{
|
{
|
||||||
if(_renderer) {
|
|
||||||
_renderer->SetFullscreenMode(fullscreen, windowHandle, monitorWidth, monitorHeight);
|
_renderer->SetFullscreenMode(fullscreen, windowHandle, monitorWidth, monitorHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport bool __stdcall LoadRom(char* filename, char* patchFile)
|
DllExport bool __stdcall LoadRom(char* filename, char* patchFile)
|
||||||
{
|
{
|
||||||
GameClient::Disconnect();
|
GameClient::Disconnect();
|
||||||
return _console->LoadRom((VirtualFile)filename, patchFile ? (VirtualFile)patchFile : VirtualFile());
|
return _console->LoadRom((VirtualFile)filename, patchFile ? (VirtualFile)patchFile : VirtualFile());
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall AddKnownGameFolder(char* folder) { FolderUtilities::AddKnownGameFolder(folder); }
|
DllExport void __stdcall AddKnownGameFolder(char* folder) { FolderUtilities::AddKnownGameFolder(folder); }
|
||||||
|
|
||||||
DllExport void __stdcall GetRomInfo(InteropRomInfo &info)
|
DllExport void __stdcall GetRomInfo(InteropRomInfo& info)
|
||||||
{
|
{
|
||||||
RomInfo romInfo = {};
|
RomInfo romInfo = {};
|
||||||
string sha1;
|
string sha1;
|
||||||
if(_console->GetCartridge()) {
|
if (_console->GetCartridge())
|
||||||
|
{
|
||||||
romInfo = _console->GetCartridge()->GetRomInfo();
|
romInfo = _console->GetCartridge()->GetRomInfo();
|
||||||
sha1 = _console->GetCartridge()->GetSha1Hash();
|
sha1 = _console->GetCartridge()->GetSha1Hash();
|
||||||
}
|
}
|
||||||
|
@ -172,79 +186,88 @@ extern "C" {
|
||||||
info.Coprocessor = romInfo.Coprocessor;
|
info.Coprocessor = romInfo.Coprocessor;
|
||||||
|
|
||||||
memcpy(info.Sha1, sha1.c_str(), sha1.size());
|
memcpy(info.Sha1, sha1.c_str(), sha1.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall TakeScreenshot() { _console->GetVideoDecoder()->TakeScreenshot(); }
|
DllExport void __stdcall TakeScreenshot() { _console->GetVideoDecoder()->TakeScreenshot(); }
|
||||||
|
|
||||||
DllExport const char* __stdcall GetArchiveRomList(char* filename) {
|
DllExport const char* __stdcall GetArchiveRomList(char* filename)
|
||||||
|
{
|
||||||
std::ostringstream out;
|
std::ostringstream out;
|
||||||
shared_ptr<ArchiveReader> reader = ArchiveReader::GetReader(filename);
|
shared_ptr<ArchiveReader> reader = ArchiveReader::GetReader(filename);
|
||||||
if(reader) {
|
if (reader)
|
||||||
for(string romName : reader->GetFileList(VirtualFile::RomExtensions)) {
|
{
|
||||||
|
for (string romName : reader->GetFileList(VirtualFile::RomExtensions))
|
||||||
|
{
|
||||||
out << romName << "[!|!]";
|
out << romName << "[!|!]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_returnString = out.str();
|
_returnString = out.str();
|
||||||
return _returnString.c_str();
|
return _returnString.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport bool __stdcall IsRunning()
|
DllExport bool __stdcall IsRunning()
|
||||||
{
|
{
|
||||||
return _console->IsRunning();
|
return _console->IsRunning();
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall Stop()
|
DllExport void __stdcall Stop()
|
||||||
{
|
{
|
||||||
GameClient::Disconnect();
|
GameClient::Disconnect();
|
||||||
_console->Stop(true);
|
_console->Stop(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall Pause(ConsoleId consoleId)
|
DllExport void __stdcall Pause(ConsoleId consoleId)
|
||||||
|
{
|
||||||
|
if (!GameClient::Connected())
|
||||||
{
|
{
|
||||||
if(!GameClient::Connected()) {
|
|
||||||
GetConsoleById(consoleId)->Pause();
|
GetConsoleById(consoleId)->Pause();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall Resume(ConsoleId consoleId)
|
DllExport void __stdcall Resume(ConsoleId consoleId)
|
||||||
|
{
|
||||||
|
if (!GameClient::Connected())
|
||||||
{
|
{
|
||||||
if(!GameClient::Connected()) {
|
|
||||||
GetConsoleById(consoleId)->Resume();
|
GetConsoleById(consoleId)->Resume();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport bool __stdcall IsPaused(ConsoleId consoleId)
|
DllExport bool __stdcall IsPaused(ConsoleId consoleId)
|
||||||
{
|
{
|
||||||
shared_ptr<Console> console = GetConsoleById(consoleId);
|
shared_ptr<Console> console = GetConsoleById(consoleId);
|
||||||
if(console) {
|
if (console)
|
||||||
|
{
|
||||||
return console->IsPaused();
|
return console->IsPaused();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall Reset()
|
DllExport void __stdcall Reset()
|
||||||
|
{
|
||||||
|
if (!GameClient::Connected())
|
||||||
{
|
{
|
||||||
if(!GameClient::Connected()) {
|
|
||||||
_console->GetControlManager()->GetSystemActionManager()->Reset();
|
_console->GetControlManager()->GetSystemActionManager()->Reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall PowerCycle()
|
DllExport void __stdcall PowerCycle()
|
||||||
|
{
|
||||||
|
if (!GameClient::Connected())
|
||||||
{
|
{
|
||||||
if(!GameClient::Connected()) {
|
|
||||||
_console->GetControlManager()->GetSystemActionManager()->PowerCycle();
|
_console->GetControlManager()->GetSystemActionManager()->PowerCycle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall ReloadRom()
|
DllExport void __stdcall ReloadRom()
|
||||||
|
{
|
||||||
|
if (!GameClient::Connected())
|
||||||
{
|
{
|
||||||
if(!GameClient::Connected()) {
|
|
||||||
_console->ReloadRom(false);
|
_console->ReloadRom(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall Release()
|
DllExport void __stdcall Release()
|
||||||
{
|
{
|
||||||
GameClient::Disconnect();
|
GameClient::Disconnect();
|
||||||
GameServer::StopServer();
|
GameServer::StopServer();
|
||||||
|
|
||||||
|
@ -258,47 +281,62 @@ extern "C" {
|
||||||
_renderer.reset();
|
_renderer.reset();
|
||||||
_soundManager.reset();
|
_soundManager.reset();
|
||||||
_keyManager.reset();
|
_keyManager.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport INotificationListener* __stdcall RegisterNotificationCallback(NotificationListenerCallback callback)
|
DllExport INotificationListener* __stdcall RegisterNotificationCallback(NotificationListenerCallback callback)
|
||||||
{
|
{
|
||||||
return _listeners.RegisterNotificationCallback(callback, _console);
|
return _listeners.RegisterNotificationCallback(callback, _console);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall UnregisterNotificationCallback(INotificationListener *listener)
|
DllExport void __stdcall UnregisterNotificationCallback(INotificationListener* listener)
|
||||||
{
|
{
|
||||||
_listeners.UnregisterNotificationCallback(listener);
|
_listeners.UnregisterNotificationCallback(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall DisplayMessage(char* title, char* message, char* param1) { MessageManager::DisplayMessage(title, message, param1 ? param1 : ""); }
|
DllExport void __stdcall DisplayMessage(char* title, char* message, char* param1)
|
||||||
DllExport const char* __stdcall GetLog()
|
{
|
||||||
{
|
MessageManager::DisplayMessage(title, message, param1 ? param1 : "");
|
||||||
|
}
|
||||||
|
|
||||||
|
DllExport const char* __stdcall GetLog()
|
||||||
|
{
|
||||||
_logString = MessageManager::GetLog();
|
_logString = MessageManager::GetLog();
|
||||||
return _logString.c_str();
|
return _logString.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport ScreenSize __stdcall GetScreenSize(bool ignoreScale, ConsoleId console)
|
DllExport ScreenSize __stdcall GetScreenSize(bool ignoreScale, ConsoleId console)
|
||||||
{
|
{
|
||||||
return GetConsoleById(console)->GetVideoDecoder()->GetScreenSize(ignoreScale);
|
return GetConsoleById(console)->GetVideoDecoder()->GetScreenSize(ignoreScale);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall ClearCheats() { _console->GetCheatManager()->ClearCheats(); }
|
DllExport void __stdcall ClearCheats() { _console->GetCheatManager()->ClearCheats(); }
|
||||||
DllExport void __stdcall SetCheats(uint32_t codes[], uint32_t length) { _console->GetCheatManager()->SetCheats(codes, length); }
|
DllExport void __stdcall SetCheats(uint32_t codes[], uint32_t length)
|
||||||
|
{
|
||||||
|
_console->GetCheatManager()->SetCheats(codes, length);
|
||||||
|
}
|
||||||
|
|
||||||
DllExport void __stdcall WriteLogEntry(char* message) { MessageManager::Log(message); }
|
DllExport void __stdcall WriteLogEntry(char* message) { MessageManager::Log(message); }
|
||||||
|
|
||||||
DllExport void __stdcall SaveState(uint32_t stateIndex) { _console->GetSaveStateManager()->SaveState(stateIndex); }
|
DllExport void __stdcall SaveState(uint32_t stateIndex) { _console->GetSaveStateManager()->SaveState(stateIndex); }
|
||||||
DllExport void __stdcall LoadState(uint32_t stateIndex) { _console->GetSaveStateManager()->LoadState(stateIndex); }
|
DllExport void __stdcall LoadState(uint32_t stateIndex) { _console->GetSaveStateManager()->LoadState(stateIndex); }
|
||||||
DllExport void __stdcall SaveStateFile(char* filepath) { _console->GetSaveStateManager()->SaveState(filepath); }
|
DllExport void __stdcall SaveStateFile(char* filepath) { _console->GetSaveStateManager()->SaveState(filepath); }
|
||||||
DllExport void __stdcall LoadStateFile(char* filepath) { _console->GetSaveStateManager()->LoadState(filepath); }
|
DllExport void __stdcall LoadStateFile(char* filepath) { _console->GetSaveStateManager()->LoadState(filepath); }
|
||||||
DllExport void __stdcall LoadRecentGame(char* filepath, bool resetGame) { _console->GetSaveStateManager()->LoadRecentGame(filepath, resetGame); }
|
DllExport void __stdcall LoadRecentGame(char* filepath, bool resetGame)
|
||||||
DllExport int32_t __stdcall GetSaveStatePreview(char* saveStatePath, uint8_t* pngData) { return _console->GetSaveStateManager()->GetSaveStatePreview(saveStatePath, pngData); }
|
{
|
||||||
|
_console->GetSaveStateManager()->LoadRecentGame(filepath, resetGame);
|
||||||
|
}
|
||||||
|
|
||||||
DllExport void __stdcall PgoRunTest(vector<string> testRoms, bool enableDebugger)
|
DllExport int32_t __stdcall GetSaveStatePreview(char* saveStatePath, uint8_t* pngData)
|
||||||
{
|
{
|
||||||
|
return _console->GetSaveStateManager()->GetSaveStatePreview(saveStatePath, pngData);
|
||||||
|
}
|
||||||
|
|
||||||
|
DllExport void __stdcall PgoRunTest(vector<string> testRoms, bool enableDebugger)
|
||||||
|
{
|
||||||
FolderUtilities::SetHomeFolder("../PGOMesenHome");
|
FolderUtilities::SetHomeFolder("../PGOMesenHome");
|
||||||
|
|
||||||
for(size_t i = 0; i < testRoms.size(); i++) {
|
for (size_t i = 0; i < testRoms.size(); i++)
|
||||||
|
{
|
||||||
std::cout << "Running: " << testRoms[i] << std::endl;
|
std::cout << "Running: " << testRoms[i] << std::endl;
|
||||||
|
|
||||||
_console.reset(new Console());
|
_console.reset(new Console());
|
||||||
|
@ -309,7 +347,8 @@ extern "C" {
|
||||||
_console->GetSettings()->SetGameboyConfig(cfg);
|
_console->GetSettings()->SetGameboyConfig(cfg);
|
||||||
_console->LoadRom((VirtualFile)testRoms[i], VirtualFile());
|
_console->LoadRom((VirtualFile)testRoms[i], VirtualFile());
|
||||||
|
|
||||||
if(enableDebugger) {
|
if (enableDebugger)
|
||||||
|
{
|
||||||
//turn on debugger to profile the debugger's code too
|
//turn on debugger to profile the debugger's code too
|
||||||
_console->GetDebugger();
|
_console->GetDebugger();
|
||||||
}
|
}
|
||||||
|
@ -318,5 +357,5 @@ extern "C" {
|
||||||
_console->Stop(false);
|
_console->Stop(false);
|
||||||
_console->Release();
|
_console->Release();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,16 +22,15 @@ unique_ptr<IRenderingDevice> _historyRenderer;
|
||||||
unique_ptr<IAudioDevice> _historySoundManager;
|
unique_ptr<IAudioDevice> _historySoundManager;
|
||||||
enum class VideoCodec;
|
enum class VideoCodec;
|
||||||
|
|
||||||
extern "C"
|
extern "C" {
|
||||||
|
DllExport bool __stdcall HistoryViewerEnabled()
|
||||||
{
|
{
|
||||||
DllExport bool __stdcall HistoryViewerEnabled()
|
|
||||||
{
|
|
||||||
shared_ptr<RewindManager> rewindManager = _console->GetRewindManager();
|
shared_ptr<RewindManager> rewindManager = _console->GetRewindManager();
|
||||||
return rewindManager ? rewindManager->HasHistory() : false;
|
return rewindManager ? rewindManager->HasHistory() : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall HistoryViewerInitialize(void* windowHandle, void* viewerHandle)
|
DllExport void __stdcall HistoryViewerInitialize(void* windowHandle, void* viewerHandle)
|
||||||
{
|
{
|
||||||
_historyConsole.reset(new Console());
|
_historyConsole.reset(new Console());
|
||||||
// TODO: something about initializing with settings?
|
// TODO: something about initializing with settings?
|
||||||
_historyConsole->Initialize();
|
_historyConsole->Initialize();
|
||||||
|
@ -45,9 +44,9 @@ extern "C"
|
||||||
VideoConfig config = _historyConsole->GetSettings()->GetVideoConfig();
|
VideoConfig config = _historyConsole->GetSettings()->GetVideoConfig();
|
||||||
config.VideoScale = 2;
|
config.VideoScale = 2;
|
||||||
_historyConsole->GetSettings()->SetVideoConfig(config);
|
_historyConsole->GetSettings()->SetVideoConfig(config);
|
||||||
// TODO
|
// TODO
|
||||||
// _historyConsole->GetSettings()->SetEmulationSpeed(100);
|
// _historyConsole->GetSettings()->SetEmulationSpeed(100);
|
||||||
// _historyConsole->GetSettings()->ClearFlags(EmulationFlags::InBackground | EmulationFlags::Rewind /*|EmulationFlags::ForceMaxSpeed | EmulationFlags::DebuggerWindowEnabled*/);
|
// _historyConsole->GetSettings()->ClearFlags(EmulationFlags::InBackground | EmulationFlags::Rewind /*|EmulationFlags::ForceMaxSpeed | EmulationFlags::DebuggerWindowEnabled*/);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
_historyRenderer.reset(new Renderer(_historyConsole, (HWND)viewerHandle, false));
|
_historyRenderer.reset(new Renderer(_historyConsole, (HWND)viewerHandle, false));
|
||||||
|
@ -56,68 +55,75 @@ extern "C"
|
||||||
_historyRenderer.reset(new SdlRenderer(_historyConsole, viewerHandle, false));
|
_historyRenderer.reset(new SdlRenderer(_historyConsole, viewerHandle, false));
|
||||||
_historySoundManager.reset(new SdlSoundManager(_historyConsole));
|
_historySoundManager.reset(new SdlSoundManager(_historyConsole));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall HistoryViewerRelease()
|
DllExport void __stdcall HistoryViewerRelease()
|
||||||
{
|
{
|
||||||
_historyConsole->Stop(true);
|
_historyConsole->Stop(true);
|
||||||
_historyConsole->Release(); // Mesen had True, "For ShutDown"
|
_historyConsole->Release(); // Mesen had True, "For ShutDown"
|
||||||
_historyRenderer.reset();
|
_historyRenderer.reset();
|
||||||
_historySoundManager.reset();
|
_historySoundManager.reset();
|
||||||
_historyConsole.reset();
|
_historyConsole.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport uint32_t __stdcall HistoryViewerGetHistoryLength()
|
DllExport uint32_t __stdcall HistoryViewerGetHistoryLength()
|
||||||
|
{
|
||||||
|
if (_historyConsole)
|
||||||
{
|
{
|
||||||
if (_historyConsole) {
|
|
||||||
return _historyConsole->GetHistoryViewer()->GetHistoryLength();
|
return _historyConsole->GetHistoryViewer()->GetHistoryLength();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall HistoryViewerGetSegments(uint32_t* segmentBuffer, uint32_t& bufferSize)
|
DllExport void __stdcall HistoryViewerGetSegments(uint32_t* segmentBuffer, uint32_t& bufferSize)
|
||||||
|
{
|
||||||
|
if (_historyConsole)
|
||||||
{
|
{
|
||||||
if (_historyConsole) {
|
|
||||||
_historyConsole->GetHistoryViewer()->GetHistorySegments(segmentBuffer, bufferSize);
|
_historyConsole->GetHistoryViewer()->GetHistorySegments(segmentBuffer, bufferSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport bool __stdcall HistoryViewerCreateSaveState(const char* outputFile, uint32_t position)
|
DllExport bool __stdcall HistoryViewerCreateSaveState(const char* outputFile, uint32_t position)
|
||||||
|
{
|
||||||
|
if (_historyConsole)
|
||||||
{
|
{
|
||||||
if (_historyConsole) {
|
|
||||||
return _historyConsole->GetHistoryViewer()->CreateSaveState(outputFile, position);
|
return _historyConsole->GetHistoryViewer()->CreateSaveState(outputFile, position);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport bool __stdcall HistoryViewerSaveMovie(const char* movieFile, uint32_t startPosition, uint32_t endPosition)
|
DllExport bool __stdcall HistoryViewerSaveMovie(const char* movieFile, uint32_t startPosition, uint32_t endPosition)
|
||||||
|
{
|
||||||
|
if (_historyConsole)
|
||||||
{
|
{
|
||||||
if (_historyConsole) {
|
|
||||||
return _historyConsole->GetHistoryViewer()->SaveMovie(movieFile, startPosition, endPosition);
|
return _historyConsole->GetHistoryViewer()->SaveMovie(movieFile, startPosition, endPosition);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall HistoryViewerResumeGameplay(uint32_t resumeAtSecond)
|
DllExport void __stdcall HistoryViewerResumeGameplay(uint32_t resumeAtSecond)
|
||||||
|
{
|
||||||
|
if (_historyConsole)
|
||||||
{
|
{
|
||||||
if (_historyConsole) {
|
|
||||||
_historyConsole->GetHistoryViewer()->ResumeGameplay(_console, resumeAtSecond);
|
_historyConsole->GetHistoryViewer()->ResumeGameplay(_console, resumeAtSecond);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall HistoryViewerSetPosition(uint32_t seekPosition)
|
DllExport void __stdcall HistoryViewerSetPosition(uint32_t seekPosition)
|
||||||
|
{
|
||||||
|
if (_historyConsole)
|
||||||
{
|
{
|
||||||
if (_historyConsole) {
|
|
||||||
_historyConsole->GetHistoryViewer()->SeekTo(seekPosition);
|
_historyConsole->GetHistoryViewer()->SeekTo(seekPosition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport uint32_t __stdcall HistoryViewerGetPosition()
|
DllExport uint32_t __stdcall HistoryViewerGetPosition()
|
||||||
|
{
|
||||||
|
if (_historyConsole)
|
||||||
{
|
{
|
||||||
if (_historyConsole) {
|
|
||||||
return _historyConsole->GetHistoryViewer()->GetPosition();
|
return _historyConsole->GetHistoryViewer()->GetPosition();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -9,67 +9,74 @@ extern shared_ptr<Console> _console;
|
||||||
|
|
||||||
static string _returnString;
|
static string _returnString;
|
||||||
|
|
||||||
extern "C"
|
extern "C" {
|
||||||
|
DllExport void __stdcall SetMousePosition(double x, double y)
|
||||||
{
|
{
|
||||||
DllExport void __stdcall SetMousePosition(double x, double y)
|
|
||||||
{
|
|
||||||
KeyManager::SetMousePosition(_console, x, y);
|
KeyManager::SetMousePosition(_console, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetMouseMovement(int16_t x, int16_t y)
|
DllExport void __stdcall SetMouseMovement(int16_t x, int16_t y)
|
||||||
{
|
{
|
||||||
KeyManager::SetMouseMovement(x, y);
|
KeyManager::SetMouseMovement(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall UpdateInputDevices()
|
DllExport void __stdcall UpdateInputDevices()
|
||||||
|
{
|
||||||
|
if (_keyManager)
|
||||||
{
|
{
|
||||||
if(_keyManager) {
|
|
||||||
_keyManager->UpdateDevices();
|
_keyManager->UpdateDevices();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall GetPressedKeys(uint32_t *keyBuffer)
|
DllExport void __stdcall GetPressedKeys(uint32_t* keyBuffer)
|
||||||
{
|
{
|
||||||
vector<uint32_t> pressedKeys = KeyManager::GetPressedKeys();
|
vector<uint32_t> pressedKeys = KeyManager::GetPressedKeys();
|
||||||
for(size_t i = 0; i < pressedKeys.size() && i < 3; i++) {
|
for (size_t i = 0; i < pressedKeys.size() && i < 3; i++)
|
||||||
|
{
|
||||||
keyBuffer[i] = pressedKeys[i];
|
keyBuffer[i] = pressedKeys[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall DisableAllKeys(bool disabled)
|
DllExport void __stdcall DisableAllKeys(bool disabled)
|
||||||
|
{
|
||||||
|
if (_keyManager)
|
||||||
{
|
{
|
||||||
if(_keyManager) {
|
|
||||||
_keyManager->SetDisabled(disabled);
|
_keyManager->SetDisabled(disabled);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall SetKeyState(int32_t scanCode, bool state)
|
DllExport void __stdcall SetKeyState(int32_t scanCode, bool state)
|
||||||
|
{
|
||||||
|
if (_keyManager)
|
||||||
{
|
{
|
||||||
if(_keyManager) {
|
|
||||||
_keyManager->SetKeyState(scanCode, state);
|
_keyManager->SetKeyState(scanCode, state);
|
||||||
_shortcutKeyHandler->ProcessKeys();
|
_shortcutKeyHandler->ProcessKeys();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall ResetKeyState()
|
DllExport void __stdcall ResetKeyState()
|
||||||
|
{
|
||||||
|
if (_keyManager)
|
||||||
{
|
{
|
||||||
if(_keyManager) {
|
|
||||||
_keyManager->ResetKeyState();
|
_keyManager->ResetKeyState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport const char* __stdcall GetKeyName(uint32_t keyCode)
|
DllExport const char* __stdcall GetKeyName(uint32_t keyCode)
|
||||||
{
|
{
|
||||||
_returnString = KeyManager::GetKeyName(keyCode);
|
_returnString = KeyManager::GetKeyName(keyCode);
|
||||||
return _returnString.c_str();
|
return _returnString.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport uint32_t __stdcall GetKeyCode(char* keyName)
|
DllExport uint32_t __stdcall GetKeyCode(char* keyName)
|
||||||
|
{
|
||||||
|
if (keyName)
|
||||||
{
|
{
|
||||||
if(keyName) {
|
|
||||||
return KeyManager::GetKeyCode(keyName);
|
return KeyManager::GetKeyCode(keyName);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
#include "../Core/INotificationListener.h"
|
#include "../Core/INotificationListener.h"
|
||||||
#include "../Core/NotificationManager.h"
|
#include "../Core/NotificationManager.h"
|
||||||
|
|
||||||
typedef void(__stdcall *NotificationListenerCallback)(int, void*);
|
typedef void (__stdcall *NotificationListenerCallback)(int, void*);
|
||||||
|
|
||||||
class InteropNotificationListener : public INotificationListener
|
class InteropNotificationListener : public INotificationListener
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include "../Utilities/SimpleLock.h"
|
#include "../Utilities/SimpleLock.h"
|
||||||
#include "InteropNotificationListener.h"
|
#include "InteropNotificationListener.h"
|
||||||
|
|
||||||
typedef void(__stdcall *NotificationListenerCallback)(int, void*);
|
typedef void (__stdcall *NotificationListenerCallback)(int, void*);
|
||||||
|
|
||||||
class InteropNotificationListeners
|
class InteropNotificationListeners
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,8 @@ class InteropNotificationListeners
|
||||||
vector<shared_ptr<INotificationListener>> _externalNotificationListeners;
|
vector<shared_ptr<INotificationListener>> _externalNotificationListeners;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
INotificationListener* RegisterNotificationCallback(NotificationListenerCallback callback, shared_ptr<Console> console)
|
INotificationListener* RegisterNotificationCallback(NotificationListenerCallback callback,
|
||||||
|
shared_ptr<Console> console)
|
||||||
{
|
{
|
||||||
auto lock = _externalNotificationListenerLock.AcquireSafe();
|
auto lock = _externalNotificationListenerLock.AcquireSafe();
|
||||||
auto listener = shared_ptr<INotificationListener>(new InteropNotificationListener(callback));
|
auto listener = shared_ptr<INotificationListener>(new InteropNotificationListener(callback));
|
||||||
|
@ -23,7 +24,7 @@ public:
|
||||||
return listener.get();
|
return listener.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UnregisterNotificationCallback(INotificationListener *listener)
|
void UnregisterNotificationCallback(INotificationListener* listener)
|
||||||
{
|
{
|
||||||
auto lock = _externalNotificationListenerLock.AcquireSafe();
|
auto lock = _externalNotificationListenerLock.AcquireSafe();
|
||||||
_externalNotificationListeners.erase(
|
_externalNotificationListeners.erase(
|
||||||
|
|
|
@ -8,43 +8,56 @@
|
||||||
extern shared_ptr<Console> _console;
|
extern shared_ptr<Console> _console;
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
DllExport void __stdcall StartServer(uint16_t port, char* password, char* hostPlayerName) { GameServer::StartServer(_console, port, password, hostPlayerName); }
|
DllExport void __stdcall StartServer(uint16_t port, char* password, char* hostPlayerName)
|
||||||
DllExport void __stdcall StopServer() { GameServer::StopServer(); }
|
{
|
||||||
DllExport bool __stdcall IsServerRunning() { return GameServer::Started(); }
|
GameServer::StartServer(_console, port, password, hostPlayerName);
|
||||||
|
}
|
||||||
|
|
||||||
DllExport void __stdcall Connect(char* host, uint16_t port, char* password, char* playerName, bool spectator)
|
DllExport void __stdcall StopServer() { GameServer::StopServer(); }
|
||||||
{
|
DllExport bool __stdcall IsServerRunning() { return GameServer::Started(); }
|
||||||
|
|
||||||
|
DllExport void __stdcall Connect(char* host, uint16_t port, char* password, char* playerName, bool spectator)
|
||||||
|
{
|
||||||
ClientConnectionData connectionData(host, port, password, playerName, spectator);
|
ClientConnectionData connectionData(host, port, password, playerName, spectator);
|
||||||
GameClient::Connect(_console, connectionData);
|
GameClient::Connect(_console, connectionData);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall Disconnect() { GameClient::Disconnect(); }
|
DllExport void __stdcall Disconnect() { GameClient::Disconnect(); }
|
||||||
DllExport bool __stdcall IsConnected() { return GameClient::Connected(); }
|
DllExport bool __stdcall IsConnected() { return GameClient::Connected(); }
|
||||||
|
|
||||||
DllExport int32_t __stdcall NetPlayGetAvailableControllers()
|
DllExport int32_t __stdcall NetPlayGetAvailableControllers()
|
||||||
|
{
|
||||||
|
if (GameServer::Started())
|
||||||
{
|
{
|
||||||
if(GameServer::Started()) {
|
|
||||||
return GameServer::GetAvailableControllers();
|
return GameServer::GetAvailableControllers();
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return GameClient::GetAvailableControllers();
|
return GameClient::GetAvailableControllers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall NetPlaySelectController(int32_t port)
|
DllExport void __stdcall NetPlaySelectController(int32_t port)
|
||||||
|
{
|
||||||
|
if (GameServer::Started())
|
||||||
{
|
{
|
||||||
if(GameServer::Started()) {
|
|
||||||
return GameServer::SetHostControllerPort(port);
|
return GameServer::SetHostControllerPort(port);
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return GameClient::SelectController(port);
|
return GameClient::SelectController(port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport int32_t __stdcall NetPlayGetControllerPort()
|
DllExport int32_t __stdcall NetPlayGetControllerPort()
|
||||||
|
{
|
||||||
|
if (GameServer::Started())
|
||||||
{
|
{
|
||||||
if(GameServer::Started()) {
|
|
||||||
return GameServer::GetHostControllerPort();
|
return GameServer::GetHostControllerPort();
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return GameClient::GetControllerPort();
|
return GameClient::GetControllerPort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -7,23 +7,26 @@
|
||||||
extern shared_ptr<Console> _console;
|
extern shared_ptr<Console> _console;
|
||||||
enum class VideoCodec;
|
enum class VideoCodec;
|
||||||
|
|
||||||
extern "C"
|
extern "C" {
|
||||||
|
DllExport void __stdcall AviRecord(char* filename, VideoCodec codec, uint32_t compressionLevel)
|
||||||
{
|
{
|
||||||
DllExport void __stdcall AviRecord(char* filename, VideoCodec codec, uint32_t compressionLevel) { _console->GetVideoRenderer()->StartRecording(filename, codec, compressionLevel); }
|
_console->GetVideoRenderer()->StartRecording(filename, codec, compressionLevel);
|
||||||
DllExport void __stdcall AviStop() { _console->GetVideoRenderer()->StopRecording(); }
|
}
|
||||||
DllExport bool __stdcall AviIsRecording() { return _console->GetVideoRenderer()->IsRecording(); }
|
|
||||||
|
|
||||||
DllExport void __stdcall WaveRecord(char* filename) { _console->GetSoundMixer()->StartRecording(filename); }
|
DllExport void __stdcall AviStop() { _console->GetVideoRenderer()->StopRecording(); }
|
||||||
DllExport void __stdcall WaveStop() { _console->GetSoundMixer()->StopRecording(); }
|
DllExport bool __stdcall AviIsRecording() { return _console->GetVideoRenderer()->IsRecording(); }
|
||||||
DllExport bool __stdcall WaveIsRecording() { return _console->GetSoundMixer()->IsRecording(); }
|
|
||||||
|
|
||||||
DllExport void __stdcall MoviePlay(char* filename) { _console->GetMovieManager()->Play(string(filename)); }
|
DllExport void __stdcall WaveRecord(char* filename) { _console->GetSoundMixer()->StartRecording(filename); }
|
||||||
DllExport void __stdcall MovieStop() { _console->GetMovieManager()->Stop(); }
|
DllExport void __stdcall WaveStop() { _console->GetSoundMixer()->StopRecording(); }
|
||||||
DllExport bool __stdcall MoviePlaying() { return _console->GetMovieManager()->Playing(); }
|
DllExport bool __stdcall WaveIsRecording() { return _console->GetSoundMixer()->IsRecording(); }
|
||||||
DllExport bool __stdcall MovieRecording() { return _console->GetMovieManager()->Recording(); }
|
|
||||||
DllExport void __stdcall MovieRecord(RecordMovieOptions *options)
|
DllExport void __stdcall MoviePlay(char* filename) { _console->GetMovieManager()->Play(string(filename)); }
|
||||||
{
|
DllExport void __stdcall MovieStop() { _console->GetMovieManager()->Stop(); }
|
||||||
|
DllExport bool __stdcall MoviePlaying() { return _console->GetMovieManager()->Playing(); }
|
||||||
|
DllExport bool __stdcall MovieRecording() { return _console->GetMovieManager()->Recording(); }
|
||||||
|
DllExport void __stdcall MovieRecord(RecordMovieOptions* options)
|
||||||
|
{
|
||||||
RecordMovieOptions opt = *options;
|
RecordMovieOptions opt = *options;
|
||||||
_console->GetMovieManager()->Record(opt);
|
_console->GetMovieManager()->Record(opt);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -5,27 +5,27 @@
|
||||||
extern shared_ptr<Console> _console;
|
extern shared_ptr<Console> _console;
|
||||||
shared_ptr<RecordedRomTest> _recordedRomTest;
|
shared_ptr<RecordedRomTest> _recordedRomTest;
|
||||||
|
|
||||||
extern "C"
|
extern "C" {
|
||||||
|
DllExport int32_t __stdcall RunRecordedTest(char* filename, bool inBackground)
|
||||||
{
|
{
|
||||||
DllExport int32_t __stdcall RunRecordedTest(char* filename, bool inBackground)
|
|
||||||
{
|
|
||||||
shared_ptr<RecordedRomTest> romTest(new RecordedRomTest(inBackground ? nullptr : _console));
|
shared_ptr<RecordedRomTest> romTest(new RecordedRomTest(inBackground ? nullptr : _console));
|
||||||
return romTest->Run(filename);
|
return romTest->Run(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall RomTestRecord(char* filename, bool reset)
|
DllExport void __stdcall RomTestRecord(char* filename, bool reset)
|
||||||
{
|
{
|
||||||
_recordedRomTest.reset(new RecordedRomTest(_console));
|
_recordedRomTest.reset(new RecordedRomTest(_console));
|
||||||
_recordedRomTest->Record(filename, reset);
|
_recordedRomTest->Record(filename, reset);
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport void __stdcall RomTestStop()
|
DllExport void __stdcall RomTestStop()
|
||||||
|
{
|
||||||
|
if (_recordedRomTest)
|
||||||
{
|
{
|
||||||
if(_recordedRomTest) {
|
|
||||||
_recordedRomTest->Stop();
|
_recordedRomTest->Stop();
|
||||||
_recordedRomTest.reset();
|
_recordedRomTest.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DllExport bool __stdcall RomTestRecording() { return _recordedRomTest != nullptr; }
|
DllExport bool __stdcall RomTestRecording() { return _recordedRomTest != nullptr; }
|
||||||
}
|
}
|
|
@ -6,23 +6,23 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#if _WIN32 || _WIN64
|
#if _WIN32 || _WIN64
|
||||||
#if _WIN64
|
#if _WIN64
|
||||||
#define ENVIRONMENT64
|
#define ENVIRONMENT64
|
||||||
#else
|
#else
|
||||||
#define ENVIRONMENT32
|
#define ENVIRONMENT32
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GNUC__
|
#if __GNUC__
|
||||||
#if __x86_64__ || __ppc64__
|
#if __x86_64__ || __ppc64__
|
||||||
#define ENVIRONMENT64
|
#define ENVIRONMENT64
|
||||||
#else
|
#else
|
||||||
#define ENVIRONMENT32
|
#define ENVIRONMENT32
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define MESEN_LIBRARY_DEBUG_SUFFIX "Debug"
|
#define MESEN_LIBRARY_DEBUG_SUFFIX "Debug"
|
||||||
#else
|
#else
|
||||||
#define MESEN_LIBRARY_DEBUG_SUFFIX "Release"
|
#define MESEN_LIBRARY_DEBUG_SUFFIX "Release"
|
||||||
#endif
|
#endif
|
||||||
|
@ -30,18 +30,18 @@
|
||||||
#ifdef ENVIRONMENT32
|
#ifdef ENVIRONMENT32
|
||||||
#define MESEN_LIBRARY_SUFFIX "x86.lib"
|
#define MESEN_LIBRARY_SUFFIX "x86.lib"
|
||||||
#else
|
#else
|
||||||
#define MESEN_LIBRARY_SUFFIX "x64.lib"
|
#define MESEN_LIBRARY_SUFFIX "x64.lib"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _WIN32 || _WIN64
|
#if _WIN32 || _WIN64
|
||||||
//#pragma comment(lib, "Core.lib")
|
//#pragma comment(lib, "Core.lib")
|
||||||
//#pragma comment(lib, "Utilities.lib")
|
//#pragma comment(lib, "Utilities.lib")
|
||||||
//#pragma comment(lib, "Windows.lib")
|
//#pragma comment(lib, "Windows.lib")
|
||||||
//#pragma comment(lib, "SevenZip.lib")
|
//#pragma comment(lib, "SevenZip.lib")
|
||||||
//#pragma comment(lib, "Lua.lib")
|
//#pragma comment(lib, "Lua.lib")
|
||||||
//#pragma comment(lib, "ws2_32.lib") //Winsock Library
|
//#pragma comment(lib, "ws2_32.lib") //Winsock Library
|
||||||
//#pragma comment(lib, "../Dependencies/DirectXTK." MESEN_LIBRARY_DEBUG_SUFFIX ".Static." MESEN_LIBRARY_SUFFIX)
|
//#pragma comment(lib, "../Dependencies/DirectXTK." MESEN_LIBRARY_DEBUG_SUFFIX ".Static." MESEN_LIBRARY_SUFFIX)
|
||||||
#define DllExport __declspec(dllexport)
|
#define DllExport __declspec(dllexport)
|
||||||
#else
|
#else
|
||||||
#define __stdcall
|
#define __stdcall
|
||||||
#define DllExport __attribute__((visibility("default")))
|
#define DllExport __attribute__((visibility("default")))
|
||||||
|
|
Loading…
Add table
Reference in a new issue