OSCR
Open Source Cartridge Reader
Loading...
Searching...
No Matches
units.h
1/********************************************************************
2 * Open Source Cartridge Reader *
3 ********************************************************************/
4#pragma once
5#ifndef OSCR_LANG_UNITS_H_
6# define OSCR_LANG_UNITS_H_
7
8# include "ui/l10n.h"
9
10# define OSCR_UNIT_BIT "b"
11# define OSCR_UNIT_BYTE "B"
12
13# define OSCR_UNIT_KILO "K"
14# define OSCR_UNIT_MEGA "M"
15# define OSCR_UNIT_GIGA "G"
16
17# define OSCR_UNIT_KILOBIT OSCR_UNIT_KILO OSCR_UNIT_BIT
18# define OSCR_UNIT_MEGABIT OSCR_UNIT_MEGA OSCR_UNIT_BIT
19# define OSCR_UNIT_GIGABIT OSCR_UNIT_GIGA OSCR_UNIT_BIT
20
21# define OSCR_UNIT_KILOBYTE OSCR_UNIT_KILO OSCR_UNIT_BYTE
22# define OSCR_UNIT_MEGABYTE OSCR_UNIT_MEGA OSCR_UNIT_BYTE
23# define OSCR_UNIT_GIGABYTE OSCR_UNIT_GIGA OSCR_UNIT_BYTE
24
25# define OSCR_UNIT_SPACE " "
26
27# define OSCR_UNIT_STRING(NUMSTR, UNITTYPE) NUMSTR OSCR_UNIT_SPACE OSCR_UNIT_ ## UNITTYPE
28# define OSCR_UNIT_TEMPLATE(UNITTYPE) "%" PRIu32 OSCR_UNIT_SPACE OSCR_UNIT_ ## UNITTYPE
29
30namespace OSCR::Strings
31{
32 namespace Units
33 {
34 constexpr char const PROGMEM Size32B[] = OSCR_UNIT_STRING("32", BYTE);
35 constexpr char const PROGMEM Size64B[] = OSCR_UNIT_STRING("64", BYTE);
36 constexpr char const PROGMEM Size128B[] = OSCR_UNIT_STRING("128", BYTE);
37 constexpr char const PROGMEM Size256B[] = OSCR_UNIT_STRING("256", BYTE);
38 constexpr char const PROGMEM Size512B[] = OSCR_UNIT_STRING("512", BYTE);
39 constexpr char const PROGMEM Size1KB[] = OSCR_UNIT_STRING("1", KILOBYTE);
40 constexpr char const PROGMEM Size2KB[] = OSCR_UNIT_STRING("2", KILOBYTE);
41 constexpr char const PROGMEM Size4KB[] = OSCR_UNIT_STRING("4", KILOBYTE);
42 constexpr char const PROGMEM Size8KB[] = OSCR_UNIT_STRING("8", KILOBYTE);
43 constexpr char const PROGMEM Size16KB[] = OSCR_UNIT_STRING("16", KILOBYTE);
44 constexpr char const PROGMEM Size24KB[] = OSCR_UNIT_STRING("24", KILOBYTE);
45 constexpr char const PROGMEM Size32KB[] = OSCR_UNIT_STRING("32", KILOBYTE);
46 constexpr char const PROGMEM Size64KB[] = OSCR_UNIT_STRING("64", KILOBYTE);
47 constexpr char const PROGMEM Size128KB[] = OSCR_UNIT_STRING("128", KILOBYTE);
48 constexpr char const PROGMEM Size256KB[] = OSCR_UNIT_STRING("256", KILOBYTE);
49 constexpr char const PROGMEM Size512KB[] = OSCR_UNIT_STRING("512", KILOBYTE);
50 constexpr char const PROGMEM Size1MB[] = OSCR_UNIT_STRING("1", MEGABYTE);
51 constexpr char const PROGMEM Size2MB[] = OSCR_UNIT_STRING("2", MEGABYTE);
52 constexpr char const PROGMEM Size4MB[] = OSCR_UNIT_STRING("4", MEGABYTE);
53 constexpr char const PROGMEM Size8MB[] = OSCR_UNIT_STRING("8", MEGABYTE);
54 constexpr char const PROGMEM Size12MB[] = OSCR_UNIT_STRING("12", MEGABYTE);
55 constexpr char const PROGMEM Size16MB[] = OSCR_UNIT_STRING("16", MEGABYTE);
56 constexpr char const PROGMEM Size32MB[] = OSCR_UNIT_STRING("32", MEGABYTE);
57 constexpr char const PROGMEM Size64MB[] = OSCR_UNIT_STRING("64", MEGABYTE);
58 constexpr char const PROGMEM Size128MB[] = OSCR_UNIT_STRING("128", MEGABYTE);
59
60 constexpr char const PROGMEM B[] = OSCR_UNIT_BYTE;
61 constexpr char const PROGMEM K[] = OSCR_UNIT_KILO;
62 constexpr char const PROGMEM M[] = OSCR_UNIT_MEGA;
63
64 constexpr char const PROGMEM KB[] = OSCR_UNIT_KILOBYTE;
65 constexpr char const PROGMEM MB[] = OSCR_UNIT_MEGABYTE;
66 } /* namespace Units */
67
68 // (Unit) Templates
69 namespace Templates
70 {
71 constexpr char const PROGMEM PaddedHex2[] = "%02X";
72 constexpr char const PROGMEM SizeBits[] = OSCR_UNIT_TEMPLATE(BIT);
73 constexpr char const PROGMEM SizeK[] = OSCR_UNIT_TEMPLATE(KILOBIT);
74 constexpr char const PROGMEM SizeM[] = OSCR_UNIT_TEMPLATE(MEGABIT);
75 constexpr char const PROGMEM SizeG[] = OSCR_UNIT_TEMPLATE(GIGABIT);
76
77 constexpr char const PROGMEM SizeBytes[] = OSCR_UNIT_TEMPLATE(BYTE);
78 constexpr char const PROGMEM SizeKB[] = OSCR_UNIT_TEMPLATE(KILOBYTE);
79 constexpr char const PROGMEM SizeMB[] = OSCR_UNIT_TEMPLATE(MEGABYTE);
80 constexpr char const PROGMEM SizeGB[] = OSCR_UNIT_TEMPLATE(GIGABYTE);
81 } /* namespace Templates */
82} /* namespace OSCR::Strings */
83
84# undef OSCR_UNIT_BIT
85# undef OSCR_UNIT_BYTE
86# undef OSCR_UNIT_KILO
87# undef OSCR_UNIT_MEGA
88# undef OSCR_UNIT_GIGA
89# undef OSCR_UNIT_KILOBIT
90# undef OSCR_UNIT_MEGABIT
91# undef OSCR_UNIT_GIGABIT
92# undef OSCR_UNIT_KILOBYTE
93# undef OSCR_UNIT_MEGABYTE
94# undef OSCR_UNIT_GIGABYTE
95# undef OSCR_UNIT_SPACE
96# undef OSCR_UNIT_STRING
97# undef OSCR_UNIT_TEMPLATE
98
99#endif /* OSCR_LANG_SYMBOLS_H_ */
String constants.
Definition OSCR.h:98