interface.h 1001 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include "core/hle/service/service.h"
  6. namespace Service::APM {
  7. class Controller;
  8. class Module;
  9. class APM final : public ServiceFramework<APM> {
  10. public:
  11. explicit APM(std::shared_ptr<Module> apm, Controller& controller, const char* name);
  12. ~APM() override;
  13. private:
  14. void OpenSession(Kernel::HLERequestContext& ctx);
  15. void GetPerformanceMode(Kernel::HLERequestContext& ctx);
  16. std::shared_ptr<Module> apm;
  17. Controller& controller;
  18. };
  19. class APM_Sys final : public ServiceFramework<APM_Sys> {
  20. public:
  21. explicit APM_Sys(Controller& controller);
  22. ~APM_Sys() override;
  23. void SetCpuBoostMode(Kernel::HLERequestContext& ctx);
  24. private:
  25. void GetPerformanceEvent(Kernel::HLERequestContext& ctx);
  26. void GetCurrentPerformanceConfiguration(Kernel::HLERequestContext& ctx);
  27. Controller& controller;
  28. };
  29. } // namespace Service::APM