summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/CMakeLists.txt1
-rw-r--r--src/core/hle/service/am/applets/applet_mii_edit.cpp3
-rw-r--r--src/core/hle/service/am/applets/applet_mii_edit.h58
-rw-r--r--src/core/hle/service/am/applets/applet_mii_edit_types.h62
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
13namespace Service::AM::Applets { 14namespace 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
13namespace Core { 11namespace Core {
14class System; 12class System;
15} 13} // namespace Core
16 14
17namespace Service::AM::Applets { 15namespace Service::AM::Applets {
18 16
19// This is nn::mii::AppletMode
20enum class MiiAppletMode : u32 {
21 ShowMiiEdit = 0,
22 AppendMii = 1,
23 AppendMiiImage = 2,
24 UpdateMiiImage = 3,
25 CreateMii = 4,
26 EditMii = 5,
27};
28
29struct MiiCharInfo {
30 Service::Mii::MiiInfo mii_data{};
31 INSERT_PADDING_BYTES(0x28);
32};
33static_assert(sizeof(MiiCharInfo) == 0x80, "MiiCharInfo has incorrect size.");
34
35// This is nn::mii::AppletInput
36struct 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};
47static_assert(sizeof(MiiAppletInput) == 0x100, "MiiAppletInput has incorrect size.");
48
49// This is nn::mii::AppletOutput
50struct MiiAppletOutput {
51 ResultCode result{ResultSuccess};
52 s32 index{};
53 INSERT_PADDING_BYTES(0x18);
54};
55static_assert(sizeof(MiiAppletOutput) == 0x20, "MiiAppletOutput has incorrect size.");
56
57// This is nn::mii::AppletOutputForCharInfoEditing
58struct AppletOutputForCharInfoEditing {
59 ResultCode result{ResultSuccess};
60 Service::Mii::MiiInfo mii_data{};
61 INSERT_PADDING_BYTES(0x24);
62};
63static_assert(sizeof(AppletOutputForCharInfoEditing) == 0x80,
64 "AppletOutputForCharInfoEditing has incorrect size.");
65
66class MiiEdit final : public Applet { 17class MiiEdit final : public Applet {
67public: 18public:
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
81private: 32private:
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
13namespace Service::AM::Applets {
14
15// This is nn::mii::AppletMode
16enum class MiiAppletMode : u32 {
17 ShowMiiEdit = 0,
18 AppendMii = 1,
19 AppendMiiImage = 2,
20 UpdateMiiImage = 3,
21 CreateMii = 4,
22 EditMii = 5,
23};
24
25struct MiiCharInfo {
26 Service::Mii::MiiInfo mii_data{};
27 INSERT_PADDING_BYTES(0x28);
28};
29static_assert(sizeof(MiiCharInfo) == 0x80, "MiiCharInfo has incorrect size.");
30
31// This is nn::mii::AppletInput
32struct 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};
43static_assert(sizeof(MiiAppletInput) == 0x100, "MiiAppletInput has incorrect size.");
44
45// This is nn::mii::AppletOutput
46struct MiiAppletOutput {
47 u32 result{};
48 s32 index{};
49 INSERT_PADDING_BYTES(0x18);
50};
51static_assert(sizeof(MiiAppletOutput) == 0x20, "MiiAppletOutput has incorrect size.");
52
53// This is nn::mii::AppletOutputForCharInfoEditing
54struct AppletOutputForCharInfoEditing {
55 u32 result{};
56 Service::Mii::MiiInfo mii_data{};
57 INSERT_PADDING_BYTES(0x24);
58};
59static_assert(sizeof(AppletOutputForCharInfoEditing) == 0x80,
60 "AppletOutputForCharInfoEditing has incorrect size.");
61
62} // namespace Service::AM::Applets