1#pragma once
2
3#include "types.h"
4
5namespace nn {
6namespace settings {
7enum Language {
8 Language_Japanese,
9 Language_English,
10 Language_French,
11 Language_German,
12 Language_Italian,
13 Language_Spanish,
14 Language_Chinese,
15 Language_Korean,
16 Language_Dutch,
17 Language_Portuguese,
18 Language_Russian,
19 Language_Taiwanese,
20 Language_BritishEnglish,
21 Language_CanadianFrench,
22 Language_LatinAmericanSpanish
23};
24
25struct LanguageCode {
26 char code[0x8];
27
28 static LanguageCode Make(nn::settings::Language);
29};
30
31bool operator==(nn::settings::LanguageCode const&, nn::settings::LanguageCode const&);
32
33namespace system {
34struct FirmwareVersion {
35 u8 major;
36 u8 minor;
37 u8 micro;
38 u8 padding1;
39 u8 revision_major;
40 u8 revision_minor;
41 u8 padding2;
42 u8 padding3;
43 char platform[0x20];
44 char version_hash[0x40];
45 char display_version[0x18];
46 char display_title[0x80];
47
48 constexpr inline u32 getVersion() const {
49 return (static_cast<u32>(major) << 16) | (static_cast<u32>(minor) << 8) |
50 (static_cast<u32>(micro) << 0);
51 }
52};
53
54Result GetFirmwareVersion(FirmwareVersion*);
55} // namespace system
56
57} // namespace settings
58} // namespace nn
59