summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/controllers
diff options
context:
space:
mode:
authorgerman <german@thesoftwareartisans.com>2020-11-27 04:15:48 +0100
committergerman <german@thesoftwareartisans.com>2020-11-27 04:35:11 +0100
commit3898d8f0d7fc51c7337eae4aa174b9545d52157e (patch)
treea8fc2c2014a1b22e09db350a5b162a8b5e72d94b /src/core/hle/service/hid/controllers
parentMerge pull request #5016 from comex/xx-push (diff)
downloadyuzu-3898d8f0d7fc51c7337eae4aa174b9545d52157e.tar
yuzu-3898d8f0d7fc51c7337eae4aa174b9545d52157e.tar.gz
yuzu-3898d8f0d7fc51c7337eae4aa174b9545d52157e.tar.bz2
yuzu-3898d8f0d7fc51c7337eae4aa174b9545d52157e.tar.lz
yuzu-3898d8f0d7fc51c7337eae4aa174b9545d52157e.tar.xz
yuzu-3898d8f0d7fc51c7337eae4aa174b9545d52157e.tar.zst
yuzu-3898d8f0d7fc51c7337eae4aa174b9545d52157e.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp8
-rw-r--r--src/core/hle/service/hid/controllers/npad.h10
2 files changed, 18 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index e2539ded8..66c4fe60a 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -677,6 +677,14 @@ Controller_NPad::NpadHandheldActivationMode Controller_NPad::GetNpadHandheldActi
return handheld_activation_mode;
}
+void Controller_NPad::SetNpadCommunicationMode(NpadCommunicationMode communication_mode_) {
+ communication_mode = communication_mode_;
+}
+
+Controller_NPad::NpadCommunicationMode Controller_NPad::GetNpadCommunicationMode() const {
+ return communication_mode;
+}
+
void Controller_NPad::SetNpadMode(u32 npad_id, NpadAssignments assignment_mode) {
const std::size_t npad_index = NPadIdToIndex(npad_id);
ASSERT(npad_index < shared_memory_entries.size());
diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h
index 160dcbbe3..f1437c941 100644
--- a/src/core/hle/service/hid/controllers/npad.h
+++ b/src/core/hle/service/hid/controllers/npad.h
@@ -86,6 +86,11 @@ public:
None = 2,
};
+ enum class NpadCommunicationMode : u64 {
+ Unknown0 = 0,
+ Unknown1 = 1,
+ };
+
struct DeviceHandle {
NpadType npad_type{};
u8 npad_id{};
@@ -146,6 +151,9 @@ public:
void SetNpadHandheldActivationMode(NpadHandheldActivationMode activation_mode);
NpadHandheldActivationMode GetNpadHandheldActivationMode() const;
+ void SetNpadCommunicationMode(NpadCommunicationMode communication_mode_);
+ NpadCommunicationMode GetNpadCommunicationMode() const;
+
void SetNpadMode(u32 npad_id, NpadAssignments assignment_mode);
bool VibrateControllerAtIndex(std::size_t npad_index, std::size_t device_index,
@@ -424,6 +432,8 @@ private:
std::vector<u32> supported_npad_id_types{};
NpadHoldType hold_type{NpadHoldType::Vertical};
NpadHandheldActivationMode handheld_activation_mode{NpadHandheldActivationMode::Dual};
+ // NpadCommunicationMode is unknown, default value is 1
+ NpadCommunicationMode communication_mode{NpadCommunicationMode::Unknown1};
// Each controller should have their own styleset changed event
std::array<Kernel::EventPair, 10> styleset_changed_events;
std::array<std::array<std::chrono::steady_clock::time_point, 2>, 10> last_vibration_timepoints;