mirror of
https://git.btclock.dev/btclock/btclock_v3
synced 2025-06-06 01:02:05 +00:00
114 lines
5.0 KiB
C++
114 lines
5.0 KiB
C++
#include <array>
|
|
#include <string>
|
|
#include <cmath>
|
|
#include <cstdint>
|
|
#include <vector>
|
|
#include <sstream>
|
|
#include <iomanip>
|
|
|
|
#include "utils.hpp"
|
|
|
|
const char CURRENCY_USD = '$';
|
|
const char CURRENCY_EUR = '[';
|
|
const char CURRENCY_GBP = ']';
|
|
const char CURRENCY_JPY = '^';
|
|
const char CURRENCY_AUD = '_';
|
|
const char CURRENCY_CAD = '`';
|
|
const char CURRENCY_ALL = 'L';
|
|
const char CURRENCY_BWP = 'P';
|
|
const char CURRENCY_HNL = 'L';
|
|
const char CURRENCY_HTG = 'G';
|
|
const char CURRENCY_MWK = 'K';
|
|
const char CURRENCY_MZN = 'M';
|
|
const char CURRENCY_NAD = 'N';
|
|
const char CURRENCY_PYG = 'G';
|
|
const char CURRENCY_RON = 'L';
|
|
const char CURRENCY_SZL = 'E';
|
|
const char CURRENCY_ZAR = 'R';
|
|
const char CURRENCY_ZMW = 'K';
|
|
// const char CURRENCY_NZD = '$';
|
|
// const char CURRENCY_SGD = '$';
|
|
// const char CURRENCY_HKD = '$';
|
|
// const char CURRENCY_BND = '$';
|
|
// const char CURRENCY_FJD = '$';
|
|
// const char CURRENCY_SBD = '$';
|
|
// const char CURRENCY_TTD = '$';
|
|
// const char CURRENCY_XCD = '$';
|
|
// const char CURRENCY_KYD = '$';
|
|
// const char CURRENCY_GYD = '$';
|
|
// const char CURRENCY_BBD = '$';
|
|
// const char CURRENCY_BSD = '$';
|
|
// const char CURRENCY_BMD = '$';
|
|
// const char CURRENCY_LRD = '$';
|
|
// const char CURRENCY_ZWL = '$';
|
|
// const char CURRENCY_ARS = '$';
|
|
// const char CURRENCY_CLP = '$';
|
|
// const char CURRENCY_COP = '$';
|
|
// const char CURRENCY_MXN = '$';
|
|
// const char CURRENCY_UYU = '$';
|
|
// const char CURRENCY_DOP = '$';
|
|
// const char CURRENCY_SVC = '$';
|
|
// const char CURRENCY_SRD = '$';
|
|
|
|
const std::string CURRENCY_CODE_USD = "USD";
|
|
const std::string CURRENCY_CODE_EUR = "EUR";
|
|
const std::string CURRENCY_CODE_GBP = "GBP";
|
|
const std::string CURRENCY_CODE_JPY = "JPY";
|
|
const std::string CURRENCY_CODE_AUD = "AUD";
|
|
const std::string CURRENCY_CODE_CAD = "CAD";
|
|
// const std::string CURRENCY_CODE_ALL = "ALL";
|
|
// const std::string CURRENCY_CODE_BWP = "BWP";
|
|
// const std::string CURRENCY_CODE_HNL = "HNL";
|
|
// const std::string CURRENCY_CODE_HTG = "HTG";
|
|
// const std::string CURRENCY_CODE_MWK = "MWK";
|
|
// const std::string CURRENCY_CODE_MZN = "MZN";
|
|
// const std::string CURRENCY_CODE_NAD = "NAD";
|
|
// const std::string CURRENCY_CODE_PYG = "PYG";
|
|
// const std::string CURRENCY_CODE_RON = "RON";
|
|
// const std::string CURRENCY_CODE_SZL = "SZL";
|
|
// const std::string CURRENCY_CODE_ZAR = "ZAR";
|
|
// const std::string CURRENCY_CODE_ZMW = "ZMW";
|
|
// const std::string CURRENCY_CODE_NZD = "NZD";
|
|
// const std::string CURRENCY_CODE_SGD = "SGD";
|
|
// const std::string CURRENCY_CODE_HKD = "HKD";
|
|
// const std::string CURRENCY_CODE_BND = "BND";
|
|
// const std::string CURRENCY_CODE_FJD = "FJD";
|
|
// const std::string CURRENCY_CODE_SBD = "SBD";
|
|
// const std::string CURRENCY_CODE_TTD = "TTD";
|
|
// const std::string CURRENCY_CODE_XCD = "XCD";
|
|
// const std::string CURRENCY_CODE_KYD = "KYD";
|
|
// const std::string CURRENCY_CODE_GYD = "GYD";
|
|
// const std::string CURRENCY_CODE_BBD = "BBD";
|
|
// const std::string CURRENCY_CODE_BSD = "BSD";
|
|
// const std::string CURRENCY_CODE_BMD = "BMD";
|
|
// const std::string CURRENCY_CODE_LRD = "LRD";
|
|
// const std::string CURRENCY_CODE_ZWL = "ZWL";
|
|
// const std::string CURRENCY_CODE_ARS = "ARS";
|
|
// const std::string CURRENCY_CODE_CLP = "CLP";
|
|
// const std::string CURRENCY_CODE_COP = "COP";
|
|
// const std::string CURRENCY_CODE_MXN = "MXN";
|
|
// const std::string CURRENCY_CODE_UYU = "UYU";
|
|
// const std::string CURRENCY_CODE_DOP = "DOP";
|
|
// const std::string CURRENCY_CODE_SVC = "SVC";
|
|
// const std::string CURRENCY_CODE_SRD = "SRD";
|
|
const std::string CURRENCY_CODE_UNKNOWN = " ";
|
|
|
|
// Public methods
|
|
std::array<std::string, NUM_SCREENS> parsePriceData(std::uint32_t price, char currency, bool useSuffixFormat = false, bool mowMode = false, bool shareDot = false);
|
|
std::array<std::string, NUM_SCREENS> parsePriceData(std::uint32_t price, const std::string& currencyCode, bool useSuffixFormat = false, bool mowMode = false, bool shareDot = false);
|
|
std::array<std::string, NUM_SCREENS> parseSatsPerCurrency(std::uint32_t price, char currencySymbol, bool withSatsSymbol);
|
|
std::array<std::string, NUM_SCREENS> parseSatsPerCurrency(std::uint32_t price, const std::string& currencyCode, bool withSatsSymbol);
|
|
std::array<std::string, NUM_SCREENS> parseBlockHeight(std::uint32_t blockHeight);
|
|
std::array<std::string, NUM_SCREENS> parseHalvingCountdown(std::uint32_t blockHeight, bool asBlocks);
|
|
std::array<std::string, NUM_SCREENS> parseMarketCap(std::uint32_t blockHeight, std::uint32_t price, char currencySymbol, bool bigChars);
|
|
std::array<std::string, NUM_SCREENS> parseBlockFees(std::uint16_t blockFees);
|
|
|
|
char getCurrencySymbol(char input);
|
|
std::string getCurrencyCode(char input);
|
|
char getCurrencyChar(const std::string& input);
|
|
|
|
// Private helper methods
|
|
namespace {
|
|
std::array<std::string, NUM_SCREENS> formatPriceData(std::uint32_t price, char currencySymbol, const std::string& currencyCode, bool useSuffixFormat, bool mowMode, bool shareDot, bool useSymbol = true);
|
|
std::array<std::string, NUM_SCREENS> formatSatsPerCurrency(std::uint32_t price, char currencySymbol, const std::string& currencyCode, bool withSatsSymbol, bool alwaysShowSats = false);
|
|
} |