#pragma once #include #include #include #ifdef __cplusplus extern "C" { #endif typedef enum { LocaleMeasurementUnitsMetric = 0, /**< Metric measurement units */ LocaleMeasurementUnitsImperial = 1, /**< Imperial measurement units */ } LocaleMeasurementUnits; typedef enum { LocaleTimeFormat24h = 0, /**< 24-hour format */ LocaleTimeFormat12h = 1, /**< 12-hour format */ } LocaleTimeFormat; typedef enum { LocaleDateFormatDMY = 0, /**< Day/Month/Year */ LocaleDateFormatMDY = 1, /**< Month/Day/Year */ LocaleDateFormatYMD = 2, /**< Year/Month/Day */ } LocaleDateFormat; /** Get Locale measurement units * * @return The locale measurement units. */ LocaleMeasurementUnits locale_get_measurement_unit(); /** Set locale measurement units * * @param[in] format The locale measurements units */ void locale_set_measurement_unit(LocaleMeasurementUnits format); /** Convert Fahrenheit to Celsius * * @param[in] temp_f The Temperature in Fahrenheit * * @return The Temperature in Celsius */ float locale_fahrenheit_to_celsius(float temp_f); /** Convert Celsius to Fahrenheit * * @param[in] temp_c The Temperature in Celsius * * @return The Temperature in Fahrenheit */ float locale_celsius_to_fahrenheit(float temp_c); /** Get Locale time format * * @return The locale time format. */ LocaleTimeFormat locale_get_time_format(); /** Set Locale Time Format * * @param[in] format The Locale Time Format */ void locale_set_time_format(LocaleTimeFormat format); /** Format time to furi string * * @param[out] out_str The FuriString to store formatted time * @param[in] datetime Pointer to the datetime * @param[in] format The Locale Time Format * @param[in] show_seconds The show seconds flag */ void locale_format_time( FuriString* out_str, const FuriHalRtcDateTime* datetime, const LocaleTimeFormat format, const bool show_seconds); /** Get Locale DateFormat * * @return The Locale DateFormat. */ LocaleDateFormat locale_get_date_format(); /** Set Locale DateFormat * * @param[in] format The Locale DateFormat */ void locale_set_date_format(LocaleDateFormat format); /** Format date to furi string * * @param[out] out_str The FuriString to store formatted date * @param[in] datetime Pointer to the datetime * @param[in] format The format * @param[in] separator The separator */ void locale_format_date( FuriString* out_str, const FuriHalRtcDateTime* datetime, const LocaleDateFormat format, const char* separator); #ifdef __cplusplus } #endif