committed by
german77
14 changed files with 619 additions and 588 deletions
-
17src/core/CMakeLists.txt
-
72src/core/hle/service/set/private_settings.h
-
2src/core/hle/service/set/setting_formats/appln_settings.cpp
-
17src/core/hle/service/set/setting_formats/appln_settings.h
-
2src/core/hle/service/set/setting_formats/device_settings.cpp
-
16src/core/hle/service/set/setting_formats/device_settings.h
-
2src/core/hle/service/set/setting_formats/private_settings.cpp
-
39src/core/hle/service/set/setting_formats/private_settings.h
-
2src/core/hle/service/set/setting_formats/system_settings.cpp
-
496src/core/hle/service/set/setting_formats/system_settings.h
-
61src/core/hle/service/set/settings_server.h
-
451src/core/hle/service/set/settings_types.h
-
2src/core/hle/service/set/system_settings_server.cpp
-
28src/core/hle/service/set/system_settings_server.h
@ -1,72 +0,0 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include <array> |
|||
|
|||
#include "common/bit_field.h" |
|||
#include "common/common_funcs.h" |
|||
#include "common/common_types.h" |
|||
#include "common/uuid.h" |
|||
#include "core/hle/service/time/clock_types.h" |
|||
|
|||
namespace Service::Set { |
|||
|
|||
/// This is nn::settings::system::InitialLaunchFlag |
|||
struct InitialLaunchFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> InitialLaunchCompletionFlag; |
|||
BitField<8, 1, u32> InitialLaunchUserAdditionFlag; |
|||
BitField<16, 1, u32> InitialLaunchTimestampFlag; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(InitialLaunchFlag) == 4, "InitialLaunchFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::InitialLaunchSettings |
|||
struct InitialLaunchSettings { |
|||
InitialLaunchFlag flags; |
|||
INSERT_PADDING_BYTES(0x4); |
|||
Service::Time::Clock::SteadyClockTimePoint timestamp; |
|||
}; |
|||
static_assert(sizeof(InitialLaunchSettings) == 0x20, "InitialLaunchSettings is incorrect size"); |
|||
|
|||
#pragma pack(push, 4) |
|||
struct InitialLaunchSettingsPacked { |
|||
InitialLaunchFlag flags; |
|||
Service::Time::Clock::SteadyClockTimePoint timestamp; |
|||
}; |
|||
#pragma pack(pop) |
|||
static_assert(sizeof(InitialLaunchSettingsPacked) == 0x1C, |
|||
"InitialLaunchSettingsPacked is incorrect size"); |
|||
|
|||
struct PrivateSettings { |
|||
std::array<u8, 0x10> reserved_00; |
|||
|
|||
// nn::settings::system::InitialLaunchSettings |
|||
InitialLaunchSettings initial_launch_settings; |
|||
|
|||
std::array<u8, 0x20> reserved_30; |
|||
|
|||
Common::UUID external_clock_source_id; |
|||
s64 shutdown_rtc_value; |
|||
s64 external_steady_clock_internal_offset; |
|||
|
|||
std::array<u8, 0x60> reserved_70; |
|||
|
|||
// nn::settings::system::PlatformRegion |
|||
std::array<u8, 0x4> platform_region; |
|||
|
|||
std::array<u8, 0x4> reserved_D4; |
|||
}; |
|||
static_assert(offsetof(PrivateSettings, initial_launch_settings) == 0x10); |
|||
static_assert(offsetof(PrivateSettings, external_clock_source_id) == 0x50); |
|||
static_assert(offsetof(PrivateSettings, reserved_70) == 0x70); |
|||
static_assert(offsetof(PrivateSettings, platform_region) == 0xD0); |
|||
static_assert(sizeof(PrivateSettings) == 0xD8, "PrivateSettings has the wrong size!"); |
|||
|
|||
PrivateSettings DefaultPrivateSettings(); |
|||
|
|||
} // namespace Service::Set |
|||
@ -1,7 +1,7 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|||
|
|||
#include "core/hle/service/set/appln_settings.h"
|
|||
#include "core/hle/service/set/setting_formats/appln_settings.h"
|
|||
|
|||
namespace Service::Set { |
|||
|
|||
@ -1,7 +1,7 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|||
|
|||
#include "core/hle/service/set/device_settings.h"
|
|||
#include "core/hle/service/set/setting_formats/device_settings.h"
|
|||
|
|||
namespace Service::Set { |
|||
|
|||
@ -1,7 +1,7 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|||
|
|||
#include "core/hle/service/set/private_settings.h"
|
|||
#include "core/hle/service/set/setting_formats/private_settings.h"
|
|||
|
|||
namespace Service::Set { |
|||
|
|||
@ -0,0 +1,39 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include <array> |
|||
|
|||
#include "common/common_types.h" |
|||
#include "common/uuid.h" |
|||
#include "core/hle/service/set/settings_types.h" |
|||
#include "core/hle/service/time/clock_types.h" |
|||
|
|||
namespace Service::Set { |
|||
|
|||
struct PrivateSettings { |
|||
INSERT_PADDING_BYTES(0x10); // Reserved |
|||
|
|||
InitialLaunchSettings initial_launch_settings; |
|||
INSERT_PADDING_BYTES(0x20); // Reserved |
|||
|
|||
Common::UUID external_clock_source_id; |
|||
s64 shutdown_rtc_value; |
|||
s64 external_steady_clock_internal_offset; |
|||
INSERT_PADDING_BYTES(0x60); // Reserved |
|||
|
|||
// nn::settings::system::PlatformRegion |
|||
s32 platform_region; |
|||
INSERT_PADDING_BYTES(0x4); // Reserved |
|||
}; |
|||
static_assert(offsetof(PrivateSettings, initial_launch_settings) == 0x10); |
|||
static_assert(offsetof(PrivateSettings, external_clock_source_id) == 0x50); |
|||
static_assert(offsetof(PrivateSettings, shutdown_rtc_value) == 0x60); |
|||
static_assert(offsetof(PrivateSettings, external_steady_clock_internal_offset) == 0x68); |
|||
static_assert(offsetof(PrivateSettings, platform_region) == 0xD0); |
|||
static_assert(sizeof(PrivateSettings) == 0xD8, "PrivateSettings has the wrong size!"); |
|||
|
|||
PrivateSettings DefaultPrivateSettings(); |
|||
|
|||
} // namespace Service::Set |
|||
@ -1,7 +1,7 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|||
|
|||
#include "core/hle/service/set/system_settings.h"
|
|||
#include "core/hle/service/set/setting_formats/system_settings.h"
|
|||
|
|||
namespace Service::Set { |
|||
|
|||
@ -0,0 +1,451 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-3.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include <array> |
|||
|
|||
#include "common/bit_field.h" |
|||
#include "common/common_funcs.h" |
|||
#include "common/common_types.h" |
|||
#include "common/uuid.h" |
|||
#include "core/hle/service/time/clock_types.h" |
|||
|
|||
namespace Service::Set { |
|||
|
|||
/// This is nn::settings::system::AudioOutputMode |
|||
enum class AudioOutputMode : u32 { |
|||
ch_1, |
|||
ch_2, |
|||
ch_5_1, |
|||
ch_7_1, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::AudioOutputModeTarget |
|||
enum class AudioOutputModeTarget : u32 { |
|||
Hdmi, |
|||
Speaker, |
|||
Headphone, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::AudioVolumeTarget |
|||
enum class AudioVolumeTarget : u32 { |
|||
Speaker, |
|||
Headphone, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::ClockSourceId |
|||
enum class ClockSourceId : u32 { |
|||
NetworkSystemClock, |
|||
SteadyClock, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::CmuMode |
|||
enum class CmuMode : u32 { |
|||
None, |
|||
ColorInvert, |
|||
HighContrast, |
|||
GrayScale, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::ChineseTraditionalInputMethod |
|||
enum class ChineseTraditionalInputMethod : u32 { |
|||
Unknown0 = 0, |
|||
Unknown1 = 1, |
|||
Unknown2 = 2, |
|||
}; |
|||
|
|||
/// Indicates the current theme set by the system settings |
|||
enum class ColorSet : u32 { |
|||
BasicWhite = 0, |
|||
BasicBlack = 1, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::ConsoleSleepPlan |
|||
enum class ConsoleSleepPlan : u32 { |
|||
Sleep1Hour, |
|||
Sleep2Hour, |
|||
Sleep3Hour, |
|||
Sleep6Hour, |
|||
Sleep12Hour, |
|||
Never, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::ErrorReportSharePermission |
|||
enum class ErrorReportSharePermission : u32 { |
|||
NotConfirmed, |
|||
Granted, |
|||
Denied, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::EulaVersionClockType |
|||
enum class EulaVersionClockType : u32 { |
|||
NetworkSystemClock, |
|||
SteadyClock, |
|||
}; |
|||
|
|||
/// This is nn::settings::factory::RegionCode |
|||
enum class FactoryRegionCode : u32 { |
|||
Japan, |
|||
Usa, |
|||
Europe, |
|||
Australia, |
|||
China, |
|||
Korea, |
|||
Taiwan, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::FriendPresenceOverlayPermission |
|||
enum class FriendPresenceOverlayPermission : u8 { |
|||
NotConfirmed, |
|||
NoDisplay, |
|||
FavoriteFriends, |
|||
Friends, |
|||
}; |
|||
|
|||
enum class GetFirmwareVersionType { |
|||
Version1, |
|||
Version2, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::HandheldSleepPlan |
|||
enum class HandheldSleepPlan : u32 { |
|||
Sleep1Min, |
|||
Sleep3Min, |
|||
Sleep5Min, |
|||
Sleep10Min, |
|||
Sleep30Min, |
|||
Never, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::HdmiContentType |
|||
enum class HdmiContentType : u32 { |
|||
None, |
|||
Graphics, |
|||
Cinema, |
|||
Photo, |
|||
Game, |
|||
}; |
|||
|
|||
enum class KeyboardLayout : u32 { |
|||
Japanese = 0, |
|||
EnglishUs = 1, |
|||
EnglishUsInternational = 2, |
|||
EnglishUk = 3, |
|||
French = 4, |
|||
FrenchCa = 5, |
|||
Spanish = 6, |
|||
SpanishLatin = 7, |
|||
German = 8, |
|||
Italian = 9, |
|||
Portuguese = 10, |
|||
Russian = 11, |
|||
Korean = 12, |
|||
ChineseSimplified = 13, |
|||
ChineseTraditional = 14, |
|||
}; |
|||
|
|||
/// This is "nn::settings::LanguageCode", which is a NUL-terminated string stored in a u64. |
|||
enum class LanguageCode : u64 { |
|||
JA = 0x000000000000616A, |
|||
EN_US = 0x00000053552D6E65, |
|||
FR = 0x0000000000007266, |
|||
DE = 0x0000000000006564, |
|||
IT = 0x0000000000007469, |
|||
ES = 0x0000000000007365, |
|||
ZH_CN = 0x0000004E432D687A, |
|||
KO = 0x0000000000006F6B, |
|||
NL = 0x0000000000006C6E, |
|||
PT = 0x0000000000007470, |
|||
RU = 0x0000000000007572, |
|||
ZH_TW = 0x00000057542D687A, |
|||
EN_GB = 0x00000042472D6E65, |
|||
FR_CA = 0x00000041432D7266, |
|||
ES_419 = 0x00003931342D7365, |
|||
ZH_HANS = 0x00736E61482D687A, |
|||
ZH_HANT = 0x00746E61482D687A, |
|||
PT_BR = 0x00000052422D7470, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::NotificationVolume |
|||
enum class NotificationVolume : u32 { |
|||
Mute, |
|||
Low, |
|||
High, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::PrimaryAlbumStorage |
|||
enum class PrimaryAlbumStorage : u32 { |
|||
Nand, |
|||
SdCard, |
|||
}; |
|||
|
|||
/// Indicates the current console is a retail or kiosk unit |
|||
enum class QuestFlag : u8 { |
|||
Retail = 0, |
|||
Kiosk = 1, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::RgbRange |
|||
enum class RgbRange : u32 { |
|||
Auto, |
|||
Full, |
|||
Limited, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::RegionCode |
|||
enum class SystemRegionCode : u32 { |
|||
Japan, |
|||
Usa, |
|||
Europe, |
|||
Australia, |
|||
HongKongTaiwanKorea, |
|||
China, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::TouchScreenMode |
|||
enum class TouchScreenMode : u32 { |
|||
Stylus, |
|||
Standard, |
|||
}; |
|||
|
|||
/// This is nn::settings::system::TvResolution |
|||
enum class TvResolution : u32 { |
|||
Auto, |
|||
Resolution1080p, |
|||
Resolution720p, |
|||
Resolution480p, |
|||
}; |
|||
|
|||
constexpr std::array<LanguageCode, 18> available_language_codes = {{ |
|||
LanguageCode::JA, |
|||
LanguageCode::EN_US, |
|||
LanguageCode::FR, |
|||
LanguageCode::DE, |
|||
LanguageCode::IT, |
|||
LanguageCode::ES, |
|||
LanguageCode::ZH_CN, |
|||
LanguageCode::KO, |
|||
LanguageCode::NL, |
|||
LanguageCode::PT, |
|||
LanguageCode::RU, |
|||
LanguageCode::ZH_TW, |
|||
LanguageCode::EN_GB, |
|||
LanguageCode::FR_CA, |
|||
LanguageCode::ES_419, |
|||
LanguageCode::ZH_HANS, |
|||
LanguageCode::ZH_HANT, |
|||
LanguageCode::PT_BR, |
|||
}}; |
|||
|
|||
static constexpr std::array<std::pair<LanguageCode, KeyboardLayout>, 18> language_to_layout{{ |
|||
{LanguageCode::JA, KeyboardLayout::Japanese}, |
|||
{LanguageCode::EN_US, KeyboardLayout::EnglishUs}, |
|||
{LanguageCode::FR, KeyboardLayout::French}, |
|||
{LanguageCode::DE, KeyboardLayout::German}, |
|||
{LanguageCode::IT, KeyboardLayout::Italian}, |
|||
{LanguageCode::ES, KeyboardLayout::Spanish}, |
|||
{LanguageCode::ZH_CN, KeyboardLayout::ChineseSimplified}, |
|||
{LanguageCode::KO, KeyboardLayout::Korean}, |
|||
{LanguageCode::NL, KeyboardLayout::EnglishUsInternational}, |
|||
{LanguageCode::PT, KeyboardLayout::Portuguese}, |
|||
{LanguageCode::RU, KeyboardLayout::Russian}, |
|||
{LanguageCode::ZH_TW, KeyboardLayout::ChineseTraditional}, |
|||
{LanguageCode::EN_GB, KeyboardLayout::EnglishUk}, |
|||
{LanguageCode::FR_CA, KeyboardLayout::FrenchCa}, |
|||
{LanguageCode::ES_419, KeyboardLayout::SpanishLatin}, |
|||
{LanguageCode::ZH_HANS, KeyboardLayout::ChineseSimplified}, |
|||
{LanguageCode::ZH_HANT, KeyboardLayout::ChineseTraditional}, |
|||
{LanguageCode::PT_BR, KeyboardLayout::Portuguese}, |
|||
}}; |
|||
|
|||
/// This is nn::settings::system::AccountNotificationFlag |
|||
struct AccountNotificationFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> FriendOnlineFlag; |
|||
BitField<1, 1, u32> FriendRequestFlag; |
|||
BitField<8, 1, u32> CoralInvitationFlag; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(AccountNotificationFlag) == 4, "AccountNotificationFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::AccountSettings |
|||
struct AccountSettings { |
|||
u32 flags; |
|||
}; |
|||
static_assert(sizeof(AccountSettings) == 4, "AccountSettings is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::DataDeletionFlag |
|||
struct DataDeletionFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> AutomaticDeletionFlag; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(DataDeletionFlag) == 4, "DataDeletionFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::InitialLaunchFlag |
|||
struct InitialLaunchFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> InitialLaunchCompletionFlag; |
|||
BitField<8, 1, u32> InitialLaunchUserAdditionFlag; |
|||
BitField<16, 1, u32> InitialLaunchTimestampFlag; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(InitialLaunchFlag) == 4, "InitialLaunchFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::SleepFlag |
|||
struct SleepFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> SleepsWhilePlayingMedia; |
|||
BitField<1, 1, u32> WakesAtPowerStateChange; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(SleepFlag) == 4, "TvFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::NotificationFlag |
|||
struct NotificationFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> RingtoneFlag; |
|||
BitField<1, 1, u32> DownloadCompletionFlag; |
|||
BitField<8, 1, u32> EnablesNews; |
|||
BitField<9, 1, u32> IncomingLampFlag; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(NotificationFlag) == 4, "NotificationFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::TvFlag |
|||
struct TvFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> Allows4k; |
|||
BitField<1, 1, u32> Allows3d; |
|||
BitField<2, 1, u32> AllowsCec; |
|||
BitField<3, 1, u32> PreventsScreenBurnIn; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(TvFlag) == 4, "TvFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::UserSelectorFlag |
|||
struct UserSelectorFlag { |
|||
union { |
|||
u32 raw{}; |
|||
|
|||
BitField<0, 1, u32> SkipIfSingleUser; |
|||
BitField<31, 1, u32> Uknown; |
|||
}; |
|||
}; |
|||
static_assert(sizeof(UserSelectorFlag) == 4, "UserSelectorFlag is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::AccountNotificationSettings |
|||
struct AccountNotificationSettings { |
|||
Common::UUID uid; |
|||
AccountNotificationFlag flags; |
|||
FriendPresenceOverlayPermission friend_presence_permission; |
|||
FriendPresenceOverlayPermission friend_invitation_permission; |
|||
INSERT_PADDING_BYTES(0x2); |
|||
}; |
|||
static_assert(sizeof(AccountNotificationSettings) == 0x18, |
|||
"AccountNotificationSettings is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::EulaVersion |
|||
struct EulaVersion { |
|||
u32 version; |
|||
SystemRegionCode region_code; |
|||
EulaVersionClockType clock_type; |
|||
INSERT_PADDING_BYTES(0x4); |
|||
s64 posix_time; |
|||
Time::Clock::SteadyClockTimePoint timestamp; |
|||
}; |
|||
static_assert(sizeof(EulaVersion) == 0x30, "EulaVersion is incorrect size"); |
|||
|
|||
struct FirmwareVersionFormat { |
|||
u8 major; |
|||
u8 minor; |
|||
u8 micro; |
|||
INSERT_PADDING_BYTES(1); |
|||
u8 revision_major; |
|||
u8 revision_minor; |
|||
INSERT_PADDING_BYTES(2); |
|||
std::array<char, 0x20> platform; |
|||
std::array<u8, 0x40> version_hash; |
|||
std::array<char, 0x18> display_version; |
|||
std::array<char, 0x80> display_title; |
|||
}; |
|||
static_assert(sizeof(FirmwareVersionFormat) == 0x100, "FirmwareVersionFormat is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::HomeMenuScheme |
|||
struct HomeMenuScheme { |
|||
u32 main; |
|||
u32 back; |
|||
u32 sub; |
|||
u32 bezel; |
|||
u32 extra; |
|||
}; |
|||
static_assert(sizeof(HomeMenuScheme) == 0x14, "HomeMenuScheme is incorrect size"); |
|||
|
|||
/// This is nn::settings::system::InitialLaunchSettings |
|||
struct InitialLaunchSettings { |
|||
InitialLaunchFlag flags; |
|||
INSERT_PADDING_BYTES(0x4); |
|||
Service::Time::Clock::SteadyClockTimePoint timestamp; |
|||
}; |
|||
static_assert(sizeof(InitialLaunchSettings) == 0x20, "InitialLaunchSettings is incorrect size"); |
|||
|
|||
#pragma pack(push, 4) |
|||
struct InitialLaunchSettingsPacked { |
|||
InitialLaunchFlag flags; |
|||
Service::Time::Clock::SteadyClockTimePoint timestamp; |
|||
}; |
|||
#pragma pack(pop) |
|||
static_assert(sizeof(InitialLaunchSettingsPacked) == 0x1C, |
|||
"InitialLaunchSettingsPacked is incorrect size"); |
|||
|
|||
/// This is nn::settings::system::NotificationTime |
|||
struct NotificationTime { |
|||
u32 hour; |
|||
u32 minute; |
|||
}; |
|||
static_assert(sizeof(NotificationTime) == 0x8, "NotificationTime is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::NotificationSettings |
|||
struct NotificationSettings { |
|||
NotificationFlag flags; |
|||
NotificationVolume volume; |
|||
NotificationTime start_time; |
|||
NotificationTime stop_time; |
|||
}; |
|||
static_assert(sizeof(NotificationSettings) == 0x18, "NotificationSettings is an invalid size"); |
|||
|
|||
/// This is nn::settings::system::SleepSettings |
|||
struct SleepSettings { |
|||
SleepFlag flags; |
|||
HandheldSleepPlan handheld_sleep_plan; |
|||
ConsoleSleepPlan console_sleep_plan; |
|||
}; |
|||
static_assert(sizeof(SleepSettings) == 0xc, "SleepSettings is incorrect size"); |
|||
|
|||
/// This is nn::settings::system::TvSettings |
|||
struct TvSettings { |
|||
TvFlag flags; |
|||
TvResolution tv_resolution; |
|||
HdmiContentType hdmi_content_type; |
|||
RgbRange rgb_range; |
|||
CmuMode cmu_mode; |
|||
u32 tv_underscan; |
|||
f32 tv_gama; |
|||
f32 contrast_ratio; |
|||
}; |
|||
static_assert(sizeof(TvSettings) == 0x20, "TvSettings is an invalid size"); |
|||
|
|||
} // namespace Service::Set |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue