rpcs3/rpcs3/headless_application.h
Ivan Chikish d34287b2cc Linux: use futex_waitv syscall for atomic waiting
In order to make this possible, some unnecessary features were removed.
2023-08-02 21:46:06 +03:00

37 lines
818 B
C++

#pragma once
#include <QCoreApplication>
#include "main_application.h"
#include "util/atomic.hpp"
#include <functional>
/** Headless RPCS3 Application Class
* The main point of this class is to do application initialization and initialize callbacks.
*/
class headless_application : public QCoreApplication, public main_application
{
Q_OBJECT
public:
headless_application(int& argc, char** argv);
/** Call this method before calling app.exec */
bool Init() override;
private:
void InitializeCallbacks();
void InitializeConnects() const;
QThread* get_thread() override
{
return thread();
}
Q_SIGNALS:
void RequestCallFromMainThread(std::function<void()> func, atomic_t<u32>* wake_up);
private Q_SLOTS:
static void CallFromMainThread(const std::function<void()>& func, atomic_t<u32>* wake_up);
};