rpcsx/rpcs3/rpcs3_app.h
2017-07-14 18:10:38 +03:00

58 lines
1.5 KiB
C++

#pragma once
#include "stdafx.h"
#include "keyboard_pad_handler.h"
#include "basic_keyboard_handler.h"
#include "basic_mouse_handler.h"
#include "Utilities/Config.h"
#include "Emu/RSX/GSRender.h"
#include "Emu/Io/KeyboardHandler.h"
#include "Emu/Io/PadHandler.h"
#include "Emu/Io/MouseHandler.h"
#include "Emu/Audio/AudioThread.h"
#include "rpcs3qt/msg_dialog_frame.h"
#include "rpcs3qt/main_window.h"
#include "rpcs3qt/gui_settings.h"
#include <QApplication>
/** RPCS3 Application Class
* The point of this class is to do application initialization and to hold onto the main window. The main thing I intend this class to do, for now, is to initialize callbacks and the main_window.
*/
class rpcs3_app : public QApplication
{
Q_OBJECT
public:
rpcs3_app(int& argc, char** argv);
/** Call this method before calling app.exec
*/
void Init();
Q_SIGNALS:
void OnEmulatorRun();
void OnEmulatorPause();
void OnEmulatorResume();
void OnEmulatorStop();
void OnEmulatorReady();
void RequestCallAfter(const std::function<void()>& func);
private Q_SLOTS:
void OnChangeStyleSheetRequest(const QString& path);
void HandleCallAfter(const std::function<void()>& func);
void ResetPads();
private:
void InitializeCallbacks();
void InitializeConnects();
// See ResetPads() for why these shared pointers exist.
std::shared_ptr<keyboard_pad_handler> m_keyboardPadHandler;
std::shared_ptr<basic_keyboard_handler> m_basicKeyboardHandler;
std::shared_ptr<basic_mouse_handler> m_basicMouseHandler;
main_window* RPCS3MainWin;
std::shared_ptr<gui_settings> guiSettings;
};