From 48130b1eaa3a45b95f141cefc36d7b0fdc0f45bb Mon Sep 17 00:00:00 2001
From: archshift <admin@archshift.com>
Date: Fri, 2 Jan 2015 15:03:40 -0300
Subject: [PATCH] Stub the y2r:u service

---
 src/core/CMakeLists.txt          |  2 ++
 src/core/hle/service/service.cpp |  2 ++
 src/core/hle/service/y2r_u.cpp   | 45 ++++++++++++++++++++++++++++++++
 src/core/hle/service/y2r_u.h     | 23 ++++++++++++++++
 4 files changed, 72 insertions(+)
 create mode 100644 src/core/hle/service/y2r_u.cpp
 create mode 100644 src/core/hle/service/y2r_u.h

diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 89ea70d23e..a08447ca26 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -66,6 +66,7 @@ set(SRCS
             hle/service/soc_u.cpp
             hle/service/srv.cpp
             hle/service/ssl_c.cpp
+            hle/service/y2r_u.cpp
             hle/config_mem.cpp
             hle/hle.cpp
             hle/svc.cpp
@@ -157,6 +158,7 @@ set(HEADERS
             hle/service/soc_u.h
             hle/service/srv.h
             hle/service/ssl_c.h
+            hle/service/y2r_u.h
             hle/config_mem.h
             hle/result.h
             hle/function_wrappers.h
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index 0f3cc2aa87..c5233e6879 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -37,6 +37,7 @@
 #include "core/hle/service/soc_u.h"
 #include "core/hle/service/srv.h"
 #include "core/hle/service/ssl_c.h"
+#include "core/hle/service/y2r_u.h"
 
 namespace Service {
 
@@ -122,6 +123,7 @@ void Init() {
     g_manager->AddService(new PTM_U::Interface);
     g_manager->AddService(new SOC_U::Interface);
     g_manager->AddService(new SSL_C::Interface);
+    g_manager->AddService(new Y2R_U::Interface);
 
     LOG_DEBUG(Service, "initialized OK");
 }
diff --git a/src/core/hle/service/y2r_u.cpp b/src/core/hle/service/y2r_u.cpp
new file mode 100644
index 0000000000..f9e3619dd7
--- /dev/null
+++ b/src/core/hle/service/y2r_u.cpp
@@ -0,0 +1,45 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/log.h"
+#include "core/hle/hle.h"
+#include "core/hle/kernel/event.h"
+#include "core/hle/service/y2r_u.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Namespace Y2R_U
+
+namespace Y2R_U {
+
+const Interface::FunctionInfo FunctionTable[] = {
+    {0x00010040, nullptr,                 "SetInputFormat"},
+    {0x00030040, nullptr,                 "SetOutputFormat"},
+    {0x00050040, nullptr,                 "SetRotation"},
+    {0x00070040, nullptr,                 "SetBlockAlignment"},
+    {0x000D0040, nullptr,                 "SetTransferEndInterrupt"},
+    {0x000F0000, nullptr,                 "GetTransferEndEvent"},
+    {0x00100102, nullptr,                 "SetSendingY"},
+    {0x00110102, nullptr,                 "SetSendingU"},
+    {0x00120102, nullptr,                 "SetSendingV"},
+    {0x00180102, nullptr,                 "SetReceiving"},
+    {0x001A0040, nullptr,                 "SetInputLineWidth"},
+    {0x001C0040, nullptr,                 "SetInputLines"},
+    {0x00200040, nullptr,                 "SetStandardCoefficient"},
+    {0x00220040, nullptr,                 "SetAlpha"},
+    {0x00260000, nullptr,                 "StartConversion"},
+    {0x00270000, nullptr,                 "StopConversion"},
+    {0x00280000, nullptr,                 "IsBusyConversion"},
+    {0x002A0000, nullptr,                 "PingProcess"},
+    {0x002B0000, nullptr,                 "DriverInitialize"},
+    {0x002C0000, nullptr,                 "DriverFinalize"}
+};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Interface class
+
+Interface::Interface() {
+    Register(FunctionTable, ARRAY_SIZE(FunctionTable));
+}
+    
+} // namespace
diff --git a/src/core/hle/service/y2r_u.h b/src/core/hle/service/y2r_u.h
new file mode 100644
index 0000000000..171aecfd1b
--- /dev/null
+++ b/src/core/hle/service/y2r_u.h
@@ -0,0 +1,23 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/hle/service/service.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Namespace Y2R_U
+
+namespace Y2R_U {
+
+class Interface : public Service::Interface {
+public:
+    Interface();
+
+    std::string GetPortName() const override {
+        return "y2r:u";
+    }
+};
+
+} // namespace
-- 
GitLab