| @@ -176,6 +176,7 @@ void FileBackend::Write(const Entry& entry) { | |||||||
|     SUB(Service, LBL)                                                                              \ |     SUB(Service, LBL)                                                                              \ | ||||||
|     SUB(Service, LDN)                                                                              \ |     SUB(Service, LDN)                                                                              \ | ||||||
|     SUB(Service, LM)                                                                               \ |     SUB(Service, LM)                                                                               \ | ||||||
|  |     SUB(Service, Mii)                                                                              \ | ||||||
|     SUB(Service, MM)                                                                               \ |     SUB(Service, MM)                                                                               \ | ||||||
|     SUB(Service, NFC)                                                                              \ |     SUB(Service, NFC)                                                                              \ | ||||||
|     SUB(Service, NFP)                                                                              \ |     SUB(Service, NFP)                                                                              \ | ||||||
|   | |||||||
| @@ -63,6 +63,7 @@ enum class Class : ClassType { | |||||||
|     Service_LBL,       ///< The LBL (LCD backlight) service |     Service_LBL,       ///< The LBL (LCD backlight) service | ||||||
|     Service_LDN,       ///< The LDN (Local domain network) service |     Service_LDN,       ///< The LDN (Local domain network) service | ||||||
|     Service_LM,        ///< The LM (Logger) service |     Service_LM,        ///< The LM (Logger) service | ||||||
|  |     Service_Mii,       ///< The Mii service | ||||||
|     Service_MM,        ///< The MM (Multimedia) service |     Service_MM,        ///< The MM (Multimedia) service | ||||||
|     Service_NFC,       ///< The NFC (Near-field communication) service |     Service_NFC,       ///< The NFC (Near-field communication) service | ||||||
|     Service_NFP,       ///< The NFP service |     Service_NFP,       ///< The NFP service | ||||||
|   | |||||||
| @@ -178,6 +178,8 @@ add_library(core STATIC | |||||||
|     hle/service/ldr/ldr.h |     hle/service/ldr/ldr.h | ||||||
|     hle/service/lm/lm.cpp |     hle/service/lm/lm.cpp | ||||||
|     hle/service/lm/lm.h |     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.cpp | ||||||
|     hle/service/mm/mm_u.h |     hle/service/mm/mm_u.h | ||||||
|     hle/service/nfc/nfc.cpp |     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/ldn/ldn.h" | ||||||
| #include "core/hle/service/ldr/ldr.h" | #include "core/hle/service/ldr/ldr.h" | ||||||
| #include "core/hle/service/lm/lm.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/mm/mm_u.h" | ||||||
| #include "core/hle/service/nfc/nfc.h" | #include "core/hle/service/nfc/nfc.h" | ||||||
| #include "core/hle/service/nfp/nfp.h" | #include "core/hle/service/nfp/nfp.h" | ||||||
| @@ -211,6 +212,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | |||||||
|     LDN::InstallInterfaces(*sm); |     LDN::InstallInterfaces(*sm); | ||||||
|     LDR::InstallInterfaces(*sm); |     LDR::InstallInterfaces(*sm); | ||||||
|     LM::InstallInterfaces(*sm); |     LM::InstallInterfaces(*sm); | ||||||
|  |     Mii::InstallInterfaces(*sm); | ||||||
|     MM::InstallInterfaces(*sm); |     MM::InstallInterfaces(*sm); | ||||||
|     NFC::InstallInterfaces(*sm); |     NFC::InstallInterfaces(*sm); | ||||||
|     NFP::InstallInterfaces(*sm); |     NFP::InstallInterfaces(*sm); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user