mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-11-04 12:34:39 +08:00 
			
		
		
		
	qt: Add an option to view/regenerate telemetry ID.
This commit is contained in:
		
							parent
							
								
									5d7b364a21
								
							
						
					
					
						commit
						9f0da33c33
					
				@ -4,11 +4,15 @@
 | 
			
		||||
 | 
			
		||||
#include "citra_qt/configuration/configure_web.h"
 | 
			
		||||
#include "core/settings.h"
 | 
			
		||||
#include "core/telemetry_session.h"
 | 
			
		||||
#include "ui_configure_web.h"
 | 
			
		||||
 | 
			
		||||
ConfigureWeb::ConfigureWeb(QWidget* parent)
 | 
			
		||||
    : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) {
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this,
 | 
			
		||||
            &ConfigureWeb::refreshTelemetryID);
 | 
			
		||||
 | 
			
		||||
    this->setConfiguration();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -30,8 +34,8 @@ void ConfigureWeb::setConfiguration() {
 | 
			
		||||
    ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry);
 | 
			
		||||
    ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username));
 | 
			
		||||
    ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token));
 | 
			
		||||
 | 
			
		||||
    updateWeb();
 | 
			
		||||
    ui->label_telemetry_id->setText("Telemetry ID: 0x" +
 | 
			
		||||
                                    QString::number(Core::GetTelemetryId(), 16).toUpper());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureWeb::applyConfiguration() {
 | 
			
		||||
@ -41,4 +45,8 @@ void ConfigureWeb::applyConfiguration() {
 | 
			
		||||
    Settings::Apply();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigureWeb::updateWeb() {}
 | 
			
		||||
void ConfigureWeb::refreshTelemetryID() {
 | 
			
		||||
    const u64 new_telemetry_id{Core::RegenerateTelemetryId()};
 | 
			
		||||
    ui->label_telemetry_id->setText("Telemetry ID: 0x" +
 | 
			
		||||
                                    QString::number(new_telemetry_id, 16).toUpper());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ public:
 | 
			
		||||
    void applyConfiguration();
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
    void updateWeb();
 | 
			
		||||
    void refreshTelemetryID();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void setConfiguration();
 | 
			
		||||
 | 
			
		||||
@ -38,21 +38,21 @@ static u64 GenerateTelemetryId() {
 | 
			
		||||
    return telemetry_id;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static u64 GetTelemetryId() {
 | 
			
		||||
u64 GetTelemetryId() {
 | 
			
		||||
    u64 telemetry_id{};
 | 
			
		||||
    static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"};
 | 
			
		||||
 | 
			
		||||
    if (FileUtil::Exists(filename)) {
 | 
			
		||||
        FileUtil::IOFile file(filename, "rb");
 | 
			
		||||
        if (!file.IsOpen()) {
 | 
			
		||||
            LOG_ERROR(WebService, "failed to open telemetry_id: %s", filename.c_str());
 | 
			
		||||
            LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
 | 
			
		||||
            return {};
 | 
			
		||||
        }
 | 
			
		||||
        file.ReadBytes(&telemetry_id, sizeof(u64));
 | 
			
		||||
    } else {
 | 
			
		||||
        FileUtil::IOFile file(filename, "wb");
 | 
			
		||||
        if (!file.IsOpen()) {
 | 
			
		||||
            LOG_ERROR(WebService, "failed to open telemetry_id: %s", filename.c_str());
 | 
			
		||||
            LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
 | 
			
		||||
            return {};
 | 
			
		||||
        }
 | 
			
		||||
        telemetry_id = GenerateTelemetryId();
 | 
			
		||||
@ -62,6 +62,19 @@ static u64 GetTelemetryId() {
 | 
			
		||||
    return telemetry_id;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
u64 RegenerateTelemetryId() {
 | 
			
		||||
    const u64 new_telemetry_id{GenerateTelemetryId()};
 | 
			
		||||
    static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"};
 | 
			
		||||
 | 
			
		||||
    FileUtil::IOFile file(filename, "wb");
 | 
			
		||||
    if (!file.IsOpen()) {
 | 
			
		||||
        LOG_ERROR(Core, "failed to open telemetry_id: %s", filename.c_str());
 | 
			
		||||
        return {};
 | 
			
		||||
    }
 | 
			
		||||
    file.WriteBytes(&new_telemetry_id, sizeof(u64));
 | 
			
		||||
    return new_telemetry_id;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TelemetrySession::TelemetrySession() {
 | 
			
		||||
#ifdef ENABLE_WEB_SERVICE
 | 
			
		||||
    backend = std::make_unique<WebService::TelemetryJson>();
 | 
			
		||||
 | 
			
		||||
@ -35,4 +35,16 @@ private:
 | 
			
		||||
    std::unique_ptr<Telemetry::VisitorInterface> backend; ///< Backend interface that logs fields
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets TelemetryId, a unique identifier used for the user's telemetry sessions.
 | 
			
		||||
 * @returns The current TelemetryId for the session.
 | 
			
		||||
 */
 | 
			
		||||
u64 GetTelemetryId();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Regenerates TelemetryId, a unique identifier used for the user's telemetry sessions.
 | 
			
		||||
 * @returns The new TelemetryId that was generated.
 | 
			
		||||
 */
 | 
			
		||||
u64 RegenerateTelemetryId();
 | 
			
		||||
 | 
			
		||||
} // namespace Core
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user