diff options
| author | 2018-02-19 17:34:02 -0500 | |
|---|---|---|
| committer | 2018-02-19 17:34:02 -0500 | |
| commit | 7bee3427d0845a9d1fb3b84f4327e2a05491a058 (patch) | |
| tree | f3a61951f7648d75e70f1e872a969c79d57b2e29 | |
| parent | logging: Add category for Friend service. (diff) | |
| download | yuzu-7bee3427d0845a9d1fb3b84f4327e2a05491a058.tar.gz yuzu-7bee3427d0845a9d1fb3b84f4327e2a05491a058.tar.xz yuzu-7bee3427d0845a9d1fb3b84f4327e2a05491a058.zip | |
service: Add Friend service interface.
| -rw-r--r-- | src/core/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/core/hle/service/friend/friend.cpp | 28 | ||||
| -rw-r--r-- | src/core/hle/service/friend/friend.h | 29 | ||||
| -rw-r--r-- | src/core/hle/service/friend/friend_a.cpp | 19 | ||||
| -rw-r--r-- | src/core/hle/service/friend/friend_a.h | 18 | ||||
| -rw-r--r-- | src/core/hle/service/service.cpp | 2 |
6 files changed, 100 insertions, 0 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 76f70a844..ec011787e 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -112,6 +112,10 @@ add_library(core STATIC | |||
| 112 | hle/service/filesystem/filesystem.h | 112 | hle/service/filesystem/filesystem.h |
| 113 | hle/service/filesystem/fsp_srv.cpp | 113 | hle/service/filesystem/fsp_srv.cpp |
| 114 | hle/service/filesystem/fsp_srv.h | 114 | hle/service/filesystem/fsp_srv.h |
| 115 | hle/service/friend/friend.cpp | ||
| 116 | hle/service/friend/friend.h | ||
| 117 | hle/service/friend/friend_a.cpp | ||
| 118 | hle/service/friend/friend_a.h | ||
| 115 | hle/service/hid/hid.cpp | 119 | hle/service/hid/hid.cpp |
| 116 | hle/service/hid/hid.h | 120 | hle/service/hid/hid.h |
| 117 | hle/service/lm/lm.cpp | 121 | hle/service/lm/lm.cpp |
diff --git a/src/core/hle/service/friend/friend.cpp b/src/core/hle/service/friend/friend.cpp new file mode 100644 index 000000000..26593bb0c --- /dev/null +++ b/src/core/hle/service/friend/friend.cpp | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "common/logging/log.h" | ||
| 6 | #include "core/hle/ipc_helpers.h" | ||
| 7 | #include "core/hle/service/friend/friend.h" | ||
| 8 | #include "core/hle/service/friend/friend_a.h" | ||
| 9 | |||
| 10 | namespace Service { | ||
| 11 | namespace Friend { | ||
| 12 | |||
| 13 | void Module::Interface::Unknown(Kernel::HLERequestContext& ctx) { | ||
| 14 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 15 | rb.Push(RESULT_SUCCESS); | ||
| 16 | LOG_WARNING(Service_Friend, "(STUBBED) called"); | ||
| 17 | } | ||
| 18 | |||
| 19 | Module::Interface::Interface(std::shared_ptr<Module> module, const char* name) | ||
| 20 | : ServiceFramework(name), module(std::move(module)) {} | ||
| 21 | |||
| 22 | void InstallInterfaces(SM::ServiceManager& service_manager) { | ||
| 23 | auto module = std::make_shared<Module>(); | ||
| 24 | std::make_shared<Friend_A>(module)->InstallAsService(service_manager); | ||
| 25 | } | ||
| 26 | |||
| 27 | } // namespace Friend | ||
| 28 | } // namespace Service | ||
diff --git a/src/core/hle/service/friend/friend.h b/src/core/hle/service/friend/friend.h new file mode 100644 index 000000000..ffa498397 --- /dev/null +++ b/src/core/hle/service/friend/friend.h | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "core/hle/service/service.h" | ||
| 8 | |||
| 9 | namespace Service { | ||
| 10 | namespace Friend { | ||
| 11 | |||
| 12 | class Module final { | ||
| 13 | public: | ||
| 14 | class Interface : public ServiceFramework<Interface> { | ||
| 15 | public: | ||
| 16 | Interface(std::shared_ptr<Module> module, const char* name); | ||
| 17 | |||
| 18 | void Unknown(Kernel::HLERequestContext& ctx); | ||
| 19 | |||
| 20 | protected: | ||
| 21 | std::shared_ptr<Module> module; | ||
| 22 | }; | ||
| 23 | }; | ||
| 24 | |||
| 25 | /// Registers all Friend services with the specified service manager. | ||
| 26 | void InstallInterfaces(SM::ServiceManager& service_manager); | ||
| 27 | |||
| 28 | } // namespace Friend | ||
| 29 | } // namespace Service | ||
diff --git a/src/core/hle/service/friend/friend_a.cpp b/src/core/hle/service/friend/friend_a.cpp new file mode 100644 index 000000000..e1f2397c2 --- /dev/null +++ b/src/core/hle/service/friend/friend_a.cpp | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/friend/friend_a.h" | ||
| 6 | |||
| 7 | namespace Service { | ||
| 8 | namespace Friend { | ||
| 9 | |||
| 10 | Friend_A::Friend_A(std::shared_ptr<Module> module) | ||
| 11 | : Module::Interface(std::move(module), "friend:a") { | ||
| 12 | static const FunctionInfo functions[] = { | ||
| 13 | {0, &Friend_A::Unknown, "Unknown"}, | ||
| 14 | }; | ||
| 15 | RegisterHandlers(functions); | ||
| 16 | } | ||
| 17 | |||
| 18 | } // namespace Friend | ||
| 19 | } // namespace Service | ||
diff --git a/src/core/hle/service/friend/friend_a.h b/src/core/hle/service/friend/friend_a.h new file mode 100644 index 000000000..68fa58297 --- /dev/null +++ b/src/core/hle/service/friend/friend_a.h | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "core/hle/service/friend/friend.h" | ||
| 8 | |||
| 9 | namespace Service { | ||
| 10 | namespace Friend { | ||
| 11 | |||
| 12 | class Friend_A final : public Module::Interface { | ||
| 13 | public: | ||
| 14 | explicit Friend_A(std::shared_ptr<Module> module); | ||
| 15 | }; | ||
| 16 | |||
| 17 | } // namespace Friend | ||
| 18 | } // namespace Service | ||
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 5e6d83729..6a2d6a4ef 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include "core/hle/service/apm/apm.h" | 20 | #include "core/hle/service/apm/apm.h" |
| 21 | #include "core/hle/service/audio/audio.h" | 21 | #include "core/hle/service/audio/audio.h" |
| 22 | #include "core/hle/service/filesystem/filesystem.h" | 22 | #include "core/hle/service/filesystem/filesystem.h" |
| 23 | #include "core/hle/service/friend/friend.h" | ||
| 23 | #include "core/hle/service/hid/hid.h" | 24 | #include "core/hle/service/hid/hid.h" |
| 24 | #include "core/hle/service/lm/lm.h" | 25 | #include "core/hle/service/lm/lm.h" |
| 25 | #include "core/hle/service/nifm/nifm.h" | 26 | #include "core/hle/service/nifm/nifm.h" |
| @@ -180,6 +181,7 @@ void Init() { | |||
| 180 | APM::InstallInterfaces(*SM::g_service_manager); | 181 | APM::InstallInterfaces(*SM::g_service_manager); |
| 181 | Audio::InstallInterfaces(*SM::g_service_manager); | 182 | Audio::InstallInterfaces(*SM::g_service_manager); |
| 182 | FileSystem::InstallInterfaces(*SM::g_service_manager); | 183 | FileSystem::InstallInterfaces(*SM::g_service_manager); |
| 184 | Friend::InstallInterfaces(*SM::g_service_manager); | ||
| 183 | HID::InstallInterfaces(*SM::g_service_manager); | 185 | HID::InstallInterfaces(*SM::g_service_manager); |
| 184 | LM::InstallInterfaces(*SM::g_service_manager); | 186 | LM::InstallInterfaces(*SM::g_service_manager); |
| 185 | NIFM::InstallInterfaces(*SM::g_service_manager); | 187 | NIFM::InstallInterfaces(*SM::g_service_manager); |