mikage-dev/source/session.hpp

52 lines
1.1 KiB
C++
Raw Normal View History

2024-03-07 22:05:16 +01:00
#pragma once
#include "debug_server.hpp"
#include "input.hpp"
#include "pica.hpp"
#include "interpreter.h"
#include <vulkan_utils/device_manager.hpp>
#include <framework/profiler.hpp>
2024-09-12 19:25:33 +02:00
#include <thread>
2024-09-29 19:29:28 +02:00
struct AudioFrontend;
2024-03-07 22:05:16 +01:00
class NetworkConsole;
namespace Loader {
class GameCard;
}
struct KeyDatabase;
struct EmuSession {
Profiler::Profiler profiler;
Debugger::DebugServer debug_server;
// TODO: Does this still need to be a shared_ptr?
std::shared_ptr<Interpreter::Setup> setup;
PicaContext pica;
InputSource input;
std::pair<float, float> circle_pad { };
std::thread emuthread;
std::exception_ptr emuthread_exception = nullptr;
std::unique_ptr<NetworkConsole> network_console;
std::thread console_thread;
EmuSession( LogManager&, Settings::Settings&,
2024-09-29 19:29:28 +02:00
AudioFrontend&, VulkanDeviceManager&, EmuDisplay::EmuDisplay&,
2024-03-07 22:05:16 +01:00
const KeyDatabase&, std::unique_ptr<Loader::GameCard>);
void Run();
~EmuSession();
};
std::unique_ptr<Loader::GameCard> LoadGameCard(spdlog::logger& logger, Settings::Settings& settings);