forked from ShuriZma/suyu
1
0
Fork 0

Qt: Auto-start game when selected, play game that's passed via argv[1].

Also moves system initialization to when the game is booted.
This commit is contained in:
archshift 2014-10-30 22:44:51 -07:00
parent 5a1de3366c
commit 1efb83bf53
1 changed files with 7 additions and 2 deletions

View File

@ -116,7 +116,10 @@ GMainWindow::GMainWindow()
show(); show();
System::Init(render_window); QStringList args = QApplication::arguments();
if (args.length() >= 2) {
BootGame(args[1].toStdString());
}
} }
GMainWindow::~GMainWindow() GMainWindow::~GMainWindow()
@ -129,6 +132,7 @@ GMainWindow::~GMainWindow()
void GMainWindow::BootGame(std::string filename) void GMainWindow::BootGame(std::string filename)
{ {
NOTICE_LOG(MASTER_LOG, "Citra starting...\n"); NOTICE_LOG(MASTER_LOG, "Citra starting...\n");
System::Init(render_window);
if (Core::Init()) { if (Core::Init()) {
ERROR_LOG(MASTER_LOG, "Core initialization failed, exiting..."); ERROR_LOG(MASTER_LOG, "Core initialization failed, exiting...");
@ -149,6 +153,7 @@ void GMainWindow::BootGame(std::string filename)
render_window->GetEmuThread().start(); render_window->GetEmuThread().start();
render_window->show(); render_window->show();
OnStartGame();
} }
void GMainWindow::OnMenuLoadFile() void GMainWindow::OnMenuLoadFile()
@ -185,6 +190,7 @@ void GMainWindow::OnPauseGame()
void GMainWindow::OnStopGame() void GMainWindow::OnStopGame()
{ {
render_window->GetEmuThread().SetCpuRunning(false); render_window->GetEmuThread().SetCpuRunning(false);
// TODO: Shutdown core
ui.action_Start->setEnabled(true); ui.action_Start->setEnabled(true);
ui.action_Pause->setEnabled(false); ui.action_Pause->setEnabled(false);
@ -246,7 +252,6 @@ int __cdecl main(int argc, char* argv[])
QApplication::setAttribute(Qt::AA_X11InitThreads); QApplication::setAttribute(Qt::AA_X11InitThreads);
QApplication app(argc, argv); QApplication app(argc, argv);
GMainWindow main_window; GMainWindow main_window;
main_window.show(); main_window.show();
return app.exec(); return app.exec();
} }