145 lines
5.5 KiB
C++
Executable File
145 lines
5.5 KiB
C++
Executable File
#include <string>
|
|
#include <iostream>
|
|
|
|
|
|
#define ICON_stop "\U000F04DB"
|
|
#define ICON_play "\U000F040A"
|
|
#define ICON_pause "\U000F03E4"
|
|
|
|
std::string playbackStatusToIcon(bool playing, bool paused) {
|
|
if (playing) return ICON_play;
|
|
else if (paused) return ICON_pause;
|
|
else return ICON_stop;
|
|
}
|
|
|
|
#define ICON_moon_first_quarter "\U000F0F61"
|
|
#define ICON_moon_full "\U000F0F62"
|
|
#define ICON_moon_last_quarter "\U000F0F63"
|
|
#define ICON_moon_new "\U000F0F64"
|
|
#define ICON_moon_waning_crescent "\U000F0F65"
|
|
#define ICON_moon_waning_gibbous "\U000F0F66"
|
|
#define ICON_moon_waxing_crescent "\U000F0F67"
|
|
#define ICON_moon_waxing_gibbous "\U000F0F68"
|
|
|
|
std::string moonToIcon(std::string moonPhase)
|
|
{
|
|
if (moonPhase == "new_moon") return ICON_moon_new;
|
|
if (moonPhase == "waxing_crescent") return ICON_moon_waxing_crescent;
|
|
if (moonPhase == "first_quarter") return ICON_moon_first_quarter;
|
|
if (moonPhase == "waxing_gibbous") return ICON_moon_waxing_gibbous;
|
|
if (moonPhase == "full_moon") return ICON_moon_full;
|
|
if (moonPhase == "waning_gibbous") return ICON_moon_waning_gibbous;
|
|
if (moonPhase == "last_quarter") return ICON_moon_last_quarter;
|
|
if (moonPhase == "waning_crescent") return ICON_moon_waning_crescent;
|
|
return "";
|
|
}
|
|
|
|
// Map weather states to MDI characters.
|
|
std::map<std::string, std::string> weather_icon_map
|
|
{
|
|
{"cloudy", "\U000F0590"},
|
|
{"cloudy-alert", "\U000F0F2F"},
|
|
{"cloudy-arrow-right", "\U000F0E6E"},
|
|
{"fog", "\U000F0591"},
|
|
{"hail", "\U000F0592"},
|
|
{"hazy", "\U000F0F30"},
|
|
{"hurricane", "\U000F0898"},
|
|
{"lightning", "\U000F0593"},
|
|
{"lightning-rainy", "\U000F067E"},
|
|
{"night", "\U000F0594"},
|
|
{"night-partly-cloudy", "\U000F0F31"},
|
|
{"partlycloudy", "\U000F0595"},
|
|
{"partly-lightning", "\U000F0F32"},
|
|
{"partly-rainy", "\U000F0F33"},
|
|
{"partly-snowy", "\U000F0F34"},
|
|
{"partly-snowy-rainy", "\U000F0F35"},
|
|
{"pouring", "\U000F0596"},
|
|
{"rainy", "\U000F0597"},
|
|
{"snowy", "\U000F0598"},
|
|
{"snowy-heavy", "\U000F0F36"},
|
|
{"snowy-rainy", "\U000F067F"},
|
|
{"sunny", "\U000F0599"},
|
|
{"sunny-alert", "\U000F0F37"},
|
|
{"sunny-off", "\U000F14E4"},
|
|
{"sunset", "\U000F059A"},
|
|
{"sunset-down", "\U000F059B"},
|
|
{"sunset-up", "\U000F059C"},
|
|
{"tornado", "\U000F0F38"},
|
|
{"windy", "\U000F059D"},
|
|
{"windy-variant", "\U000F059E"},
|
|
{"car", "\U000f010b"},
|
|
{"trash", "\U000F0819"},
|
|
};
|
|
std::map<std::string, std::string> moon_icon_map
|
|
{
|
|
{ "mdi:moon-waxing-crescent", "\U000f0f67" },
|
|
{ "mdi:moon-first-quarter", "\U000F0F61" },
|
|
{ "mdi:moon-waxing-gibbous", "\U000F0F68" },
|
|
{ "mdi:moon-full", "\U000F0F62" },
|
|
{ "mdi:moon-waning-gibbous", "\U000F0F66" },
|
|
{ "mdi:moon-last-quarter", "\U000F0F63" },
|
|
{ "mdi:moon-waning-crescent", "\U000F0F65" },
|
|
};
|
|
|
|
|
|
#define ICON_w_clear_night "\U000F0594"
|
|
#define ICON_w_cloudy "\U000F0590"
|
|
#define ICON_w_fog "\U000F0591"
|
|
#define ICON_w_hail "\U000F0592"
|
|
#define ICON_w_lightning "\U000F0593"
|
|
#define ICON_w_lightning_rainy "\U000F067E"
|
|
#define ICON_w_night_partly_cloudy "\U000F0F31"
|
|
#define ICON_w_partly_cloudy "\U000F0595"
|
|
#define ICON_w_pouring "\U000F0596"
|
|
#define ICON_w_rainy "\U000F0597"
|
|
#define ICON_w_snowy "\U000F0F36"
|
|
#define ICON_w_snowy_rainy "\U000F067F"
|
|
#define ICON_w_sunny "\U000F0599"
|
|
#define ICON_w_windy "\U000F059D"
|
|
#define ICON_w_windy_variant "\U000F059E"
|
|
#define ICON_w_exceptional "\U000F0F38"
|
|
|
|
std::string conditionToIcon(std::string condition, bool daytime)
|
|
{
|
|
if (condition == "clear") return ICON_w_clear_night;
|
|
if (condition == "clear-night") return ICON_w_clear_night;
|
|
if (condition == "cloudy") return ICON_w_cloudy;
|
|
if (condition == "dust") return ICON_w_fog;
|
|
if (condition == "dusty") return ICON_w_fog;
|
|
if (condition == "fog") return ICON_w_fog;
|
|
if (condition == "frost") return ICON_w_snowy;
|
|
if (condition == "hail") return ICON_w_hail;
|
|
if (condition == "haze") return ICON_w_fog;
|
|
if (condition == "hazy") return ICON_w_fog;
|
|
if (condition == "heavy_shower") return ICON_w_rainy;
|
|
if (condition == "heavy_showers") return ICON_w_rainy;
|
|
if (condition == "light_rain") return ICON_w_rainy;
|
|
if (condition == "light_showers") return ICON_w_rainy;
|
|
if (condition == "light_shower") return ICON_w_rainy;
|
|
if (condition == "lightning") return ICON_w_lightning;
|
|
if (condition == "lightning-rainy") return ICON_w_lightning_rainy;
|
|
if (condition == "mostly_sunny") return ICON_w_sunny;
|
|
if (condition == "night") return ICON_w_clear_night;
|
|
if (condition == "partlycloudy" && !daytime) return ICON_w_night_partly_cloudy;
|
|
if (condition == "partlycloudy" && daytime) return ICON_w_partly_cloudy;
|
|
if (condition == "partly_cloudy" && !daytime) return ICON_w_night_partly_cloudy;
|
|
if (condition == "partly_cloudy" && daytime) return ICON_w_partly_cloudy;
|
|
if (condition == "pouring") return ICON_w_pouring;
|
|
if (condition == "rain") return ICON_w_rainy;
|
|
if (condition == "rainy") return ICON_w_rainy;
|
|
if (condition == "shower") return ICON_w_rainy;
|
|
if (condition == "showers") return ICON_w_rainy;
|
|
if (condition == "snow") return ICON_w_snowy;
|
|
if (condition == "snowy") return ICON_w_snowy;
|
|
if (condition == "snowy-rainy") return ICON_w_snowy_rainy;
|
|
if (condition == "storm") return ICON_w_lightning_rainy;
|
|
if (condition == "storms") return ICON_w_lightning_rainy;
|
|
if (condition == "sunny") return ICON_w_sunny;
|
|
if (condition == "wind") return ICON_w_windy;
|
|
if (condition == "windy") return ICON_w_windy;
|
|
if (condition == "windy-variant") return ICON_w_windy_variant;
|
|
if (condition == "exceptional") return ICON_w_exceptional;
|
|
return "";
|
|
}
|
|
|
|
|