#include #include #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 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 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 ""; }