yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
hex.cc
Go to the documentation of this file.
1#include "hex.h"
2
3#include <string>
4
5#include "absl/strings/str_cat.h"
6#include "absl/strings/str_format.h"
7
8namespace yaze {
9namespace util {
10
11namespace {
12
13void HandleHexStringParams(std::string &hex, const HexStringParams &params) {
14 switch (params.prefix) {
16 hex = absl::StrCat("$", hex);
17 break;
19 hex = absl::StrCat("#", hex);
20 break;
22 hex = absl::StrCat("0x", hex);
24 default:
25 break;
26 }
27}
28} // namespace
29
30std::string HexByte(uint8_t byte, HexStringParams params) {
31 std::string result;
32 if (params.uppercase) {
33 result = absl::StrFormat("%02X", byte);
34 } else {
35 result = absl::StrFormat("%02x", byte);
36 }
37 HandleHexStringParams(result, params);
38 return result;
39}
40
41std::string HexWord(uint16_t word, HexStringParams params) {
42 std::string result;
43 if (params.uppercase) {
44 result = absl::StrFormat("%04X", word);
45 } else {
46 result = absl::StrFormat("%04x", word);
47 }
48 HandleHexStringParams(result, params);
49 return result;
50}
51
52std::string HexLong(uint32_t dword, HexStringParams params) {
53 std::string result;
54 if (params.uppercase) {
55 result = absl::StrFormat("%06X", dword);
56 } else {
57 result = absl::StrFormat("%06x", dword);
58 }
59 HandleHexStringParams(result, params);
60 return result;
61}
62
63std::string HexLongLong(uint64_t qword, HexStringParams params) {
64 std::string result;
65 if (params.uppercase) {
66 result = absl::StrFormat("%08X", qword);
67 } else {
68 result = absl::StrFormat("%08x", qword);
69 }
70 HandleHexStringParams(result, params);
71 return result;
72}
73
74} // namespace util
75} // namespace yaze
void HandleHexStringParams(std::string &hex, const HexStringParams &params)
Definition hex.cc:13
std::string HexWord(uint16_t word, HexStringParams params)
Definition hex.cc:41
std::string HexByte(uint8_t byte, HexStringParams params)
Definition hex.cc:30
std::string HexLongLong(uint64_t qword, HexStringParams params)
Definition hex.cc:63
std::string HexLong(uint32_t dword, HexStringParams params)
Definition hex.cc:52
Main namespace for the application.
enum yaze::util::HexStringParams::Prefix prefix