diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/applet_mii_edit.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/applet_mii_edit.h | 58 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/applet_mii_edit_types.h | 62 |
4 files changed, 70 insertions, 54 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index f7dd4294f..a6f442316 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -308,6 +308,7 @@ add_library(core STATIC | |||
| 308 | hle/service/am/applets/applet_general_backend.h | 308 | hle/service/am/applets/applet_general_backend.h |
| 309 | hle/service/am/applets/applet_mii_edit.cpp | 309 | hle/service/am/applets/applet_mii_edit.cpp |
| 310 | hle/service/am/applets/applet_mii_edit.h | 310 | hle/service/am/applets/applet_mii_edit.h |
| 311 | hle/service/am/applets/applet_mii_edit_types.h | ||
| 311 | hle/service/am/applets/applet_profile_select.cpp | 312 | hle/service/am/applets/applet_profile_select.cpp |
| 312 | hle/service/am/applets/applet_profile_select.h | 313 | hle/service/am/applets/applet_profile_select.h |
| 313 | hle/service/am/applets/applet_software_keyboard.cpp | 314 | hle/service/am/applets/applet_software_keyboard.cpp |
diff --git a/src/core/hle/service/am/applets/applet_mii_edit.cpp b/src/core/hle/service/am/applets/applet_mii_edit.cpp index ec57d98bd..769c3c3eb 100644 --- a/src/core/hle/service/am/applets/applet_mii_edit.cpp +++ b/src/core/hle/service/am/applets/applet_mii_edit.cpp | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include "core/frontend/applets/mii_edit.h" | 8 | #include "core/frontend/applets/mii_edit.h" |
| 9 | #include "core/hle/service/am/am.h" | 9 | #include "core/hle/service/am/am.h" |
| 10 | #include "core/hle/service/am/applets/applet_mii_edit.h" | 10 | #include "core/hle/service/am/applets/applet_mii_edit.h" |
| 11 | #include "core/hle/service/mii/mii_manager.h" | ||
| 11 | #include "core/reporter.h" | 12 | #include "core/reporter.h" |
| 12 | 13 | ||
| 13 | namespace Service::AM::Applets { | 14 | namespace Service::AM::Applets { |
| @@ -89,7 +90,7 @@ void MiiEdit::DisplayCompleted(const Core::Frontend::MiiParameters& parameters) | |||
| 89 | 90 | ||
| 90 | std::vector<u8> reply(sizeof(AppletOutputForCharInfoEditing)); | 91 | std::vector<u8> reply(sizeof(AppletOutputForCharInfoEditing)); |
| 91 | output_data = { | 92 | output_data = { |
| 92 | .result = ResultSuccess, | 93 | .result = 0, |
| 93 | .mii_data = parameters.mii_data, | 94 | .mii_data = parameters.mii_data, |
| 94 | }; | 95 | }; |
| 95 | 96 | ||
diff --git a/src/core/hle/service/am/applets/applet_mii_edit.h b/src/core/hle/service/am/applets/applet_mii_edit.h index 828f28da4..2b4b27c8f 100644 --- a/src/core/hle/service/am/applets/applet_mii_edit.h +++ b/src/core/hle/service/am/applets/applet_mii_edit.h | |||
| @@ -4,65 +4,16 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <array> | ||
| 8 | |||
| 9 | #include "core/hle/result.h" | 7 | #include "core/hle/result.h" |
| 8 | #include "core/hle/service/am/applets/applet_mii_edit_types.h" | ||
| 10 | #include "core/hle/service/am/applets/applets.h" | 9 | #include "core/hle/service/am/applets/applets.h" |
| 11 | #include "core/hle/service/mii/mii_manager.h" | ||
| 12 | 10 | ||
| 13 | namespace Core { | 11 | namespace Core { |
| 14 | class System; | 12 | class System; |
| 15 | } | 13 | } // namespace Core |
| 16 | 14 | ||
| 17 | namespace Service::AM::Applets { | 15 | namespace Service::AM::Applets { |
| 18 | 16 | ||
| 19 | // This is nn::mii::AppletMode | ||
| 20 | enum class MiiAppletMode : u32 { | ||
| 21 | ShowMiiEdit = 0, | ||
| 22 | AppendMii = 1, | ||
| 23 | AppendMiiImage = 2, | ||
| 24 | UpdateMiiImage = 3, | ||
| 25 | CreateMii = 4, | ||
| 26 | EditMii = 5, | ||
| 27 | }; | ||
| 28 | |||
| 29 | struct MiiCharInfo { | ||
| 30 | Service::Mii::MiiInfo mii_data{}; | ||
| 31 | INSERT_PADDING_BYTES(0x28); | ||
| 32 | }; | ||
| 33 | static_assert(sizeof(MiiCharInfo) == 0x80, "MiiCharInfo has incorrect size."); | ||
| 34 | |||
| 35 | // This is nn::mii::AppletInput | ||
| 36 | struct MiiAppletInput { | ||
| 37 | s32 version{}; | ||
| 38 | MiiAppletMode applet_mode{}; | ||
| 39 | u32 special_mii_key_code{}; | ||
| 40 | union { | ||
| 41 | std::array<Common::UUID, 8> valid_uuid; | ||
| 42 | MiiCharInfo mii_char_info; | ||
| 43 | }; | ||
| 44 | Common::UUID used_uuid; | ||
| 45 | INSERT_PADDING_BYTES(0x64); | ||
| 46 | }; | ||
| 47 | static_assert(sizeof(MiiAppletInput) == 0x100, "MiiAppletInput has incorrect size."); | ||
| 48 | |||
| 49 | // This is nn::mii::AppletOutput | ||
| 50 | struct MiiAppletOutput { | ||
| 51 | ResultCode result{ResultSuccess}; | ||
| 52 | s32 index{}; | ||
| 53 | INSERT_PADDING_BYTES(0x18); | ||
| 54 | }; | ||
| 55 | static_assert(sizeof(MiiAppletOutput) == 0x20, "MiiAppletOutput has incorrect size."); | ||
| 56 | |||
| 57 | // This is nn::mii::AppletOutputForCharInfoEditing | ||
| 58 | struct AppletOutputForCharInfoEditing { | ||
| 59 | ResultCode result{ResultSuccess}; | ||
| 60 | Service::Mii::MiiInfo mii_data{}; | ||
| 61 | INSERT_PADDING_BYTES(0x24); | ||
| 62 | }; | ||
| 63 | static_assert(sizeof(AppletOutputForCharInfoEditing) == 0x80, | ||
| 64 | "AppletOutputForCharInfoEditing has incorrect size."); | ||
| 65 | |||
| 66 | class MiiEdit final : public Applet { | 17 | class MiiEdit final : public Applet { |
| 67 | public: | 18 | public: |
| 68 | explicit MiiEdit(Core::System& system_, LibraryAppletMode applet_mode_, | 19 | explicit MiiEdit(Core::System& system_, LibraryAppletMode applet_mode_, |
| @@ -80,11 +31,12 @@ public: | |||
| 80 | 31 | ||
| 81 | private: | 32 | private: |
| 82 | const Core::Frontend::MiiEditApplet& frontend; | 33 | const Core::Frontend::MiiEditApplet& frontend; |
| 34 | Core::System& system; | ||
| 35 | |||
| 83 | MiiAppletInput input_data{}; | 36 | MiiAppletInput input_data{}; |
| 84 | AppletOutputForCharInfoEditing output_data{}; | 37 | AppletOutputForCharInfoEditing output_data{}; |
| 85 | 38 | ||
| 86 | bool is_complete = false; | 39 | bool is_complete{false}; |
| 87 | Core::System& system; | ||
| 88 | }; | 40 | }; |
| 89 | 41 | ||
| 90 | } // namespace Service::AM::Applets | 42 | } // namespace Service::AM::Applets |
diff --git a/src/core/hle/service/am/applets/applet_mii_edit_types.h b/src/core/hle/service/am/applets/applet_mii_edit_types.h new file mode 100644 index 000000000..7b8b35254 --- /dev/null +++ b/src/core/hle/service/am/applets/applet_mii_edit_types.h | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | // Copyright 2022 yuzu Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include <array> | ||
| 8 | |||
| 9 | #include "common/common_funcs.h" | ||
| 10 | #include "common/common_types.h" | ||
| 11 | #include "core/hle/service/mii/types.h" | ||
| 12 | |||
| 13 | namespace Service::AM::Applets { | ||
| 14 | |||
| 15 | // This is nn::mii::AppletMode | ||
| 16 | enum class MiiAppletMode : u32 { | ||
| 17 | ShowMiiEdit = 0, | ||
| 18 | AppendMii = 1, | ||
| 19 | AppendMiiImage = 2, | ||
| 20 | UpdateMiiImage = 3, | ||
| 21 | CreateMii = 4, | ||
| 22 | EditMii = 5, | ||
| 23 | }; | ||
| 24 | |||
| 25 | struct MiiCharInfo { | ||
| 26 | Service::Mii::MiiInfo mii_data{}; | ||
| 27 | INSERT_PADDING_BYTES(0x28); | ||
| 28 | }; | ||
| 29 | static_assert(sizeof(MiiCharInfo) == 0x80, "MiiCharInfo has incorrect size."); | ||
| 30 | |||
| 31 | // This is nn::mii::AppletInput | ||
| 32 | struct MiiAppletInput { | ||
| 33 | s32 version{}; | ||
| 34 | MiiAppletMode applet_mode{}; | ||
| 35 | u32 special_mii_key_code{}; | ||
| 36 | union { | ||
| 37 | std::array<Common::UUID, 8> valid_uuid; | ||
| 38 | MiiCharInfo mii_char_info; | ||
| 39 | }; | ||
| 40 | Common::UUID used_uuid; | ||
| 41 | INSERT_PADDING_BYTES(0x64); | ||
| 42 | }; | ||
| 43 | static_assert(sizeof(MiiAppletInput) == 0x100, "MiiAppletInput has incorrect size."); | ||
| 44 | |||
| 45 | // This is nn::mii::AppletOutput | ||
| 46 | struct MiiAppletOutput { | ||
| 47 | u32 result{}; | ||
| 48 | s32 index{}; | ||
| 49 | INSERT_PADDING_BYTES(0x18); | ||
| 50 | }; | ||
| 51 | static_assert(sizeof(MiiAppletOutput) == 0x20, "MiiAppletOutput has incorrect size."); | ||
| 52 | |||
| 53 | // This is nn::mii::AppletOutputForCharInfoEditing | ||
| 54 | struct AppletOutputForCharInfoEditing { | ||
| 55 | u32 result{}; | ||
| 56 | Service::Mii::MiiInfo mii_data{}; | ||
| 57 | INSERT_PADDING_BYTES(0x24); | ||
| 58 | }; | ||
| 59 | static_assert(sizeof(AppletOutputForCharInfoEditing) == 0x80, | ||
| 60 | "AppletOutputForCharInfoEditing has incorrect size."); | ||
| 61 | |||
| 62 | } // namespace Service::AM::Applets | ||