| @@ -176,6 +176,7 @@ void FileBackend::Write(const Entry& entry) { | ||||
|     SUB(Service, LBL)                                                                              \ | ||||
|     SUB(Service, LDN)                                                                              \ | ||||
|     SUB(Service, LM)                                                                               \ | ||||
|     SUB(Service, Mii)                                                                              \ | ||||
|     SUB(Service, MM)                                                                               \ | ||||
|     SUB(Service, NFC)                                                                              \ | ||||
|     SUB(Service, NFP)                                                                              \ | ||||
|   | ||||
| @@ -63,6 +63,7 @@ enum class Class : ClassType { | ||||
|     Service_LBL,       ///< The LBL (LCD backlight) service | ||||
|     Service_LDN,       ///< The LDN (Local domain network) service | ||||
|     Service_LM,        ///< The LM (Logger) service | ||||
|     Service_Mii,       ///< The Mii service | ||||
|     Service_MM,        ///< The MM (Multimedia) service | ||||
|     Service_NFC,       ///< The NFC (Near-field communication) service | ||||
|     Service_NFP,       ///< The NFP service | ||||
|   | ||||
| @@ -178,6 +178,8 @@ add_library(core STATIC | ||||
|     hle/service/ldr/ldr.h | ||||
|     hle/service/lm/lm.cpp | ||||
|     hle/service/lm/lm.h | ||||
|     hle/service/mii/mii.cpp | ||||
|     hle/service/mii/mii.h | ||||
|     hle/service/mm/mm_u.cpp | ||||
|     hle/service/mm/mm_u.h | ||||
|     hle/service/nfc/nfc.cpp | ||||
|   | ||||
							
								
								
									
										107
									
								
								src/core/hle/service/mii/mii.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								src/core/hle/service/mii/mii.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,107 @@ | ||||
| // Copyright 2018 yuzu emulator team | ||||
| // Licensed under GPLv2 or any later version | ||||
| // Refer to the license.txt file included. | ||||
|  | ||||
| #include <memory> | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/service/mii/mii.h" | ||||
| #include "core/hle/service/service.h" | ||||
| #include "core/hle/service/sm/sm.h" | ||||
|  | ||||
| namespace Service::Mii { | ||||
|  | ||||
| class IDatabaseService final : public ServiceFramework<IDatabaseService> { | ||||
| public: | ||||
|     explicit IDatabaseService() : ServiceFramework{"IDatabaseService"} { | ||||
|         // clang-format off | ||||
|         static const FunctionInfo functions[] = { | ||||
|             {0, nullptr, "IsUpdated"}, | ||||
|             {1, nullptr, "IsFullDatabase"}, | ||||
|             {2, nullptr, "GetCount"}, | ||||
|             {3, nullptr, "Get"}, | ||||
|             {4, nullptr, "Get1"}, | ||||
|             {5, nullptr, "UpdateLatest"}, | ||||
|             {6, nullptr, "BuildRandom"}, | ||||
|             {7, nullptr, "BuildDefault"}, | ||||
|             {8, nullptr, "Get2"}, | ||||
|             {9, nullptr, "Get3"}, | ||||
|             {10, nullptr, "UpdateLatest1"}, | ||||
|             {11, nullptr, "FindIndex"}, | ||||
|             {12, nullptr, "Move"}, | ||||
|             {13, nullptr, "AddOrReplace"}, | ||||
|             {14, nullptr, "Delete"}, | ||||
|             {15, nullptr, "DestroyFile"}, | ||||
|             {16, nullptr, "DeleteFile"}, | ||||
|             {17, nullptr, "Format"}, | ||||
|             {18, nullptr, "Import"}, | ||||
|             {19, nullptr, "Export"}, | ||||
|             {20, nullptr, "IsBrokenDatabaseWithClearFlag"}, | ||||
|             {21, nullptr, "GetIndex"}, | ||||
|             {22, nullptr, "SetInterfaceVersion"}, | ||||
|             {23, nullptr, "Convert"}, | ||||
|         }; | ||||
|         // clang-format on | ||||
|  | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
| }; | ||||
|  | ||||
| class MiiDBModule final : public ServiceFramework<MiiDBModule> { | ||||
| public: | ||||
|     explicit MiiDBModule(const char* name) : ServiceFramework{name} { | ||||
|         // clang-format off | ||||
|         static const FunctionInfo functions[] = { | ||||
|             {0, &MiiDBModule::GetDatabaseService, "GetDatabaseService"}, | ||||
|         }; | ||||
|         // clang-format on | ||||
|  | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetDatabaseService(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IDatabaseService>(); | ||||
|  | ||||
|         LOG_DEBUG(Service_Mii, "called"); | ||||
|     } | ||||
| }; | ||||
|  | ||||
| class MiiImg final : public ServiceFramework<MiiImg> { | ||||
| public: | ||||
|     explicit MiiImg() : ServiceFramework{"miiimg"} { | ||||
|         // clang-format off | ||||
|         static const FunctionInfo functions[] = { | ||||
|             {0, nullptr, "Initialize"}, | ||||
|             {10, nullptr, "Reload"}, | ||||
|             {11, nullptr, "GetCount"}, | ||||
|             {12, nullptr, "IsEmpty"}, | ||||
|             {13, nullptr, "IsFull"}, | ||||
|             {14, nullptr, "GetAttribute"}, | ||||
|             {15, nullptr, "LoadImage"}, | ||||
|             {16, nullptr, "AddOrUpdateImage"}, | ||||
|             {17, nullptr, "DeleteImages"}, | ||||
|             {100, nullptr, "DeleteFile"}, | ||||
|             {101, nullptr, "DestroyFile"}, | ||||
|             {102, nullptr, "ImportFile"}, | ||||
|             {103, nullptr, "ExportFile"}, | ||||
|             {104, nullptr, "ForceInitialize"}, | ||||
|         }; | ||||
|         // clang-format on | ||||
|  | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
| }; | ||||
|  | ||||
| void InstallInterfaces(SM::ServiceManager& sm) { | ||||
|     std::make_shared<MiiDBModule>("mii:e")->InstallAsService(sm); | ||||
|     std::make_shared<MiiDBModule>("mii:u")->InstallAsService(sm); | ||||
|  | ||||
|     std::make_shared<MiiImg>()->InstallAsService(sm); | ||||
| } | ||||
|  | ||||
| } // namespace Service::Mii | ||||
							
								
								
									
										15
									
								
								src/core/hle/service/mii/mii.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/core/hle/service/mii/mii.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| // Copyright 2018 yuzu emulator team | ||||
| // Licensed under GPLv2 or any later version | ||||
| // Refer to the license.txt file included. | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| namespace Service::SM { | ||||
| class ServiceManager; | ||||
| } | ||||
|  | ||||
| namespace Service::Mii { | ||||
|  | ||||
| void InstallInterfaces(SM::ServiceManager& sm); | ||||
|  | ||||
| } // namespace Service::Mii | ||||
| @@ -34,6 +34,7 @@ | ||||
| #include "core/hle/service/ldn/ldn.h" | ||||
| #include "core/hle/service/ldr/ldr.h" | ||||
| #include "core/hle/service/lm/lm.h" | ||||
| #include "core/hle/service/mii/mii.h" | ||||
| #include "core/hle/service/mm/mm_u.h" | ||||
| #include "core/hle/service/nfc/nfc.h" | ||||
| #include "core/hle/service/nfp/nfp.h" | ||||
| @@ -211,6 +212,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | ||||
|     LDN::InstallInterfaces(*sm); | ||||
|     LDR::InstallInterfaces(*sm); | ||||
|     LM::InstallInterfaces(*sm); | ||||
|     Mii::InstallInterfaces(*sm); | ||||
|     MM::InstallInterfaces(*sm); | ||||
|     NFC::InstallInterfaces(*sm); | ||||
|     NFP::InstallInterfaces(*sm); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user