mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-01-04 15:50:10 +01:00
37 lines
973 B
C++
37 lines
973 B
C++
#pragma once
|
|
|
|
#include <QtCore>
|
|
#include <QtNetwork>
|
|
#include "progress_dialog.h"
|
|
|
|
class update_manager : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
private:
|
|
const std::string m_update_url = "https://update.rpcs3.net/?api=v1&c=";
|
|
const std::string m_tmp_folder = "/rpcs3_old/";
|
|
|
|
private:
|
|
progress_dialog* m_progress_dialog = nullptr;
|
|
QWidget* m_parent = nullptr;
|
|
|
|
QNetworkAccessManager m_manager;
|
|
QNetworkReply* reply_rpcs3 = nullptr;
|
|
|
|
std::string m_expected_hash;
|
|
u64 m_expected_size = 0;
|
|
|
|
private:
|
|
bool handle_reply(QNetworkReply* reply, std::function<bool(update_manager& man, const QByteArray&, bool)> func, bool automatic, const std::string& message);
|
|
bool handle_json(const QByteArray& json_data, bool automatic);
|
|
bool handle_rpcs3(const QByteArray& rpcs3_data, bool automatic);
|
|
|
|
public:
|
|
update_manager();
|
|
void check_for_updates(bool automatic, QWidget* parent = nullptr);
|
|
|
|
private Q_SLOTS:
|
|
void handle_error(QNetworkReply::NetworkError error);
|
|
};
|