mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	qt: Add an option to view/regenerate telemetry ID.
This commit is contained in:
		
							parent
							
								
									5d7b364a21
								
							
						
					
					
						commit
						9f0da33c33
					
				
					 4 changed files with 40 additions and 7 deletions
				
			
		|  | @ -4,11 +4,15 @@ | ||||||
| 
 | 
 | ||||||
| #include "citra_qt/configuration/configure_web.h" | #include "citra_qt/configuration/configure_web.h" | ||||||
| #include "core/settings.h" | #include "core/settings.h" | ||||||
|  | #include "core/telemetry_session.h" | ||||||
| #include "ui_configure_web.h" | #include "ui_configure_web.h" | ||||||
| 
 | 
 | ||||||
| ConfigureWeb::ConfigureWeb(QWidget* parent) | ConfigureWeb::ConfigureWeb(QWidget* parent) | ||||||
|     : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) { |     : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) { | ||||||
|     ui->setupUi(this); |     ui->setupUi(this); | ||||||
|  |     connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this, | ||||||
|  |             &ConfigureWeb::refreshTelemetryID); | ||||||
|  | 
 | ||||||
|     this->setConfiguration(); |     this->setConfiguration(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -30,8 +34,8 @@ void ConfigureWeb::setConfiguration() { | ||||||
|     ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry); |     ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry); | ||||||
|     ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username)); |     ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username)); | ||||||
|     ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token)); |     ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token)); | ||||||
| 
 |     ui->label_telemetry_id->setText("Telemetry ID: 0x" + | ||||||
|     updateWeb(); |                                     QString::number(Core::GetTelemetryId(), 16).toUpper()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ConfigureWeb::applyConfiguration() { | void ConfigureWeb::applyConfiguration() { | ||||||
|  | @ -41,4 +45,8 @@ void ConfigureWeb::applyConfiguration() { | ||||||
|     Settings::Apply(); |     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(); |     void applyConfiguration(); | ||||||
| 
 | 
 | ||||||
| public slots: | public slots: | ||||||
|     void updateWeb(); |     void refreshTelemetryID(); | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     void setConfiguration(); |     void setConfiguration(); | ||||||
|  |  | ||||||
|  | @ -38,21 +38,21 @@ static u64 GenerateTelemetryId() { | ||||||
|     return telemetry_id; |     return telemetry_id; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static u64 GetTelemetryId() { | u64 GetTelemetryId() { | ||||||
|     u64 telemetry_id{}; |     u64 telemetry_id{}; | ||||||
|     static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"}; |     static const std::string& filename{FileUtil::GetUserPath(D_CONFIG_IDX) + "telemetry_id"}; | ||||||
| 
 | 
 | ||||||
|     if (FileUtil::Exists(filename)) { |     if (FileUtil::Exists(filename)) { | ||||||
|         FileUtil::IOFile file(filename, "rb"); |         FileUtil::IOFile file(filename, "rb"); | ||||||
|         if (!file.IsOpen()) { |         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 {}; |             return {}; | ||||||
|         } |         } | ||||||
|         file.ReadBytes(&telemetry_id, sizeof(u64)); |         file.ReadBytes(&telemetry_id, sizeof(u64)); | ||||||
|     } else { |     } else { | ||||||
|         FileUtil::IOFile file(filename, "wb"); |         FileUtil::IOFile file(filename, "wb"); | ||||||
|         if (!file.IsOpen()) { |         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 {}; |             return {}; | ||||||
|         } |         } | ||||||
|         telemetry_id = GenerateTelemetryId(); |         telemetry_id = GenerateTelemetryId(); | ||||||
|  | @ -62,6 +62,19 @@ static u64 GetTelemetryId() { | ||||||
|     return telemetry_id; |     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() { | TelemetrySession::TelemetrySession() { | ||||||
| #ifdef ENABLE_WEB_SERVICE | #ifdef ENABLE_WEB_SERVICE | ||||||
|     backend = std::make_unique<WebService::TelemetryJson>(); |     backend = std::make_unique<WebService::TelemetryJson>(); | ||||||
|  |  | ||||||
|  | @ -35,4 +35,16 @@ private: | ||||||
|     std::unique_ptr<Telemetry::VisitorInterface> backend; ///< Backend interface that logs fields
 |     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
 | } // namespace Core
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue