vi.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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/nvflinger/nvflinger.h"
  6. #include "core/hle/service/service.h"
  7. namespace CoreTiming {
  8. struct EventType;
  9. }
  10. namespace Service {
  11. namespace VI {
  12. enum class DisplayResolution : u32 {
  13. DockedWidth = 1920,
  14. DockedHeight = 1080,
  15. UndockedWidth = 1280,
  16. UndockedHeight = 720,
  17. };
  18. class Module final {
  19. public:
  20. class Interface : public ServiceFramework<Interface> {
  21. public:
  22. Interface(std::shared_ptr<Module> module, const char* name,
  23. std::shared_ptr<NVFlinger::NVFlinger> nv_flinger);
  24. void GetDisplayService(Kernel::HLERequestContext& ctx);
  25. protected:
  26. std::shared_ptr<Module> module;
  27. std::shared_ptr<NVFlinger::NVFlinger> nv_flinger;
  28. };
  29. };
  30. /// Registers all VI services with the specified service manager.
  31. void InstallInterfaces(SM::ServiceManager& service_manager,
  32. std::shared_ptr<NVFlinger::NVFlinger> nv_flinger);
  33. } // namespace VI
  34. } // namespace Service