compatdb.h 873 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // SPDX-FileCopyrightText: 2017 Citra Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <memory>
  5. #include <QFutureWatcher>
  6. #include <QWizard>
  7. #include "core/telemetry_session.h"
  8. namespace Ui {
  9. class CompatDB;
  10. }
  11. enum class CompatibilityStatus {
  12. Perfect = 0,
  13. Playable = 1,
  14. // Unused: Okay = 2,
  15. Ingame = 3,
  16. IntroMenu = 4,
  17. WontBoot = 5,
  18. };
  19. class CompatDB : public QWizard {
  20. Q_OBJECT
  21. public:
  22. explicit CompatDB(Core::TelemetrySession& telemetry_session_, QWidget* parent = nullptr);
  23. ~CompatDB();
  24. int nextId() const override;
  25. private:
  26. QFutureWatcher<bool> testcase_watcher;
  27. std::unique_ptr<Ui::CompatDB> ui;
  28. void Submit();
  29. CompatibilityStatus CalculateCompatibility() const;
  30. void OnTestcaseSubmitted();
  31. void EnableNext();
  32. Core::TelemetrySession& telemetry_session;
  33. };