aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/pctl/module.h
diff options
context:
space:
mode:
authorChloe Marcec <dmarcecguzman@gmail.com>2021-03-27 02:03:18 +1100
committerChloe Marcec <dmarcecguzman@gmail.com>2021-03-27 02:03:18 +1100
commite9a1f29e936e8da5899c360394f37c7646150e3f (patch)
treecbcd16b15b3e485c2523b41dee5a9e15706ca6fd /src/core/hle/service/pctl/module.h
parent65774084fd9209c9d812cdf10c2b82c2ee35f360 (diff)
pctl: Rework how pctl works to be more accurate
Introduces the usage of compatibilities to allow it the module to be closer to how it works on hardware.
Diffstat (limited to 'src/core/hle/service/pctl/module.h')
-rw-r--r--src/core/hle/service/pctl/module.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/core/hle/service/pctl/module.h b/src/core/hle/service/pctl/module.h
index 4c7e09a3b..cdba11d60 100644
--- a/src/core/hle/service/pctl/module.h
+++ b/src/core/hle/service/pctl/module.h
@@ -4,6 +4,7 @@
#pragma once
+#include "common/common_funcs.h"
#include "core/hle/service/service.h"
namespace Core {
@@ -12,12 +13,23 @@ class System;
namespace Service::PCTL {
+enum class Capability : s32 {
+ None = 0x0,
+ Application = 1 << 0,
+ SnsPost = 1 << 1,
+ Recovery = 1 << 6,
+ Status = 1 << 8,
+ SteroVision = 1 << 9,
+ System = 1 << 15,
+};
+DECLARE_ENUM_FLAG_OPERATORS(Capability);
+
class Module final {
public:
class Interface : public ServiceFramework<Interface> {
public:
- explicit Interface(Core::System& system_, std::shared_ptr<Module> module_,
- const char* name);
+ explicit Interface(Core::System& system_, std::shared_ptr<Module> module_, const char* name,
+ Capability capability);
~Interface() override;
void CreateService(Kernel::HLERequestContext& ctx);
@@ -25,6 +37,9 @@ public:
protected:
std::shared_ptr<Module> module;
+
+ private:
+ Capability capability{};
};
};