summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/hid.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2015-03-17 15:19:59 +0100
committerbunnei <bunneidev@gmail.com>2015-03-17 15:19:59 +0100
commit0bb4b77b784dfb1e405c71033bfa9988ac024a2d (patch)
tree26263ca5db60c6ad51be2a5bfb0be135fdb91a45 /src/core/hle/service/hid/hid.cpp
parentMerge pull request #660 from purpasmart96/ncch_updates (diff)
parentHID: Proper Signal Interrupts for EnableAccelerometer & EnableGyroscopeLow along (diff)
downloadyuzu-0bb4b77b784dfb1e405c71033bfa9988ac024a2d.tar
yuzu-0bb4b77b784dfb1e405c71033bfa9988ac024a2d.tar.gz
yuzu-0bb4b77b784dfb1e405c71033bfa9988ac024a2d.tar.bz2
yuzu-0bb4b77b784dfb1e405c71033bfa9988ac024a2d.tar.lz
yuzu-0bb4b77b784dfb1e405c71033bfa9988ac024a2d.tar.xz
yuzu-0bb4b77b784dfb1e405c71033bfa9988ac024a2d.tar.zst
yuzu-0bb4b77b784dfb1e405c71033bfa9988ac024a2d.zip
Diffstat (limited to 'src/core/hle/service/hid/hid.cpp')
-rw-r--r--src/core/hle/service/hid/hid.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index 8adb03f2e..138603d9b 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -114,6 +114,7 @@ void GetIPCHandles(Service::Interface* self) {
u32* cmd_buff = Kernel::GetCommandBuffer();
cmd_buff[1] = 0; // No error
+ cmd_buff[2] = 0x14000000; // IPC Command Structure translate-header
// TODO(yuriks): Return error from SendSyncRequest is this fails (part of IPC marshalling)
cmd_buff[3] = Kernel::g_handle_table.Create(Service::HID::shared_mem).MoveFrom();
cmd_buff[4] = Kernel::g_handle_table.Create(Service::HID::event_pad_or_touch_1).MoveFrom();
@@ -123,6 +124,37 @@ void GetIPCHandles(Service::Interface* self) {
cmd_buff[8] = Kernel::g_handle_table.Create(Service::HID::event_debug_pad).MoveFrom();
}
+void EnableAccelerometer(Service::Interface* self) {
+ u32* cmd_buff = Kernel::GetCommandBuffer();
+
+ event_accelerometer->Signal();
+
+ cmd_buff[1] = RESULT_SUCCESS.raw;
+
+ LOG_WARNING(Service_HID, "(STUBBED) called");
+}
+
+void EnableGyroscopeLow(Service::Interface* self) {
+ u32* cmd_buff = Kernel::GetCommandBuffer();
+
+ event_gyroscope->Signal();
+
+ cmd_buff[1] = RESULT_SUCCESS.raw;
+
+ LOG_WARNING(Service_HID, "(STUBBED) called");
+}
+
+void GetSoundVolume(Service::Interface* self) {
+ u32* cmd_buff = Kernel::GetCommandBuffer();
+
+ const u8 volume = 0x3F; // TODO(purpasmart): Find out if this is the max value for the volume
+
+ cmd_buff[1] = RESULT_SUCCESS.raw;
+ cmd_buff[2] = volume;
+
+ LOG_WARNING(Service_HID, "(STUBBED) called");
+}
+
void HIDInit() {
using namespace Kernel;