From 29ad09f4ef54126831d36fe1b99e794059fc5421 Mon Sep 17 00:00:00 2001 From: FintasticMan Date: Tue, 20 Feb 2024 11:25:02 +0100 Subject: weather: Refactor temperature type for type safety There is now a Temperature struct in the weather service, which holds the internal representation. There is also a temperature struct in the Applications namespace, which holds the temperature in either Celsius or Fahrenheit. --- src/displayapp/Weather.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/displayapp/Weather.cpp (limited to 'src/displayapp/Weather.cpp') diff --git a/src/displayapp/Weather.cpp b/src/displayapp/Weather.cpp new file mode 100644 index 00000000..a0f0a281 --- /dev/null +++ b/src/displayapp/Weather.cpp @@ -0,0 +1,13 @@ +#include "displayapp/Weather.h" + +using namespace Pinetime::Applications; + +Temperature Pinetime::Applications::Convert(Controllers::SimpleWeatherService::Temperature temp, + Controllers::Settings::WeatherFormat format) { + Temperature t = {temp.temp}; + if (format == Controllers::Settings::WeatherFormat::Imperial) { + t.temp = t.temp * 9 / 5 + 3200; + } + t.temp = t.temp / 100 + (t.temp % 100 >= 50 ? 1 : 0); + return t; +} -- cgit v1.2.3-70-g09d2