summaryrefslogtreecommitdiff
path: root/src/localtemp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/localtemp.h')
-rw-r--r--src/localtemp.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/localtemp.h b/src/localtemp.h
new file mode 100644
index 0000000..19173d3
--- /dev/null
+++ b/src/localtemp.h
@@ -0,0 +1,57 @@
+#include <string.h>
+#include <strings.h>
+#include "errors.h"
+
+#define METAR_URL "http://weather.noaa.gov/pub/data/observations/metar/decoded/%s.TXT"
+
+class localtemp {
+public:
+ enum ESky
+ {
+ undef_sky,
+ clear, // CAVOK, SKC, CLR
+ cloudy, // FEW, SCT
+ brkovc, // Broken, Overcast (BKN, OVC)
+ tcu // TCU (Towering CUmulus)
+ };
+ enum ERain
+ {
+ undef_rain,
+ rain, // Rainy (DZ, RA)
+ snow, // Snowy (SN, SG)
+ hail // Hail (GS, GR)
+ };
+ enum EFog
+ {
+ undef_fog,
+ fog, // (BR, FG)
+ dust, // (DU, DS)
+ other // (FC, FU, HZ, SA, SS, VA)
+ };
+
+ struct TMetar
+ {
+ ESky sky;
+ bool CB; // Cumulonimbus
+ ERain rain;
+ EFog fog;
+ };
+ std::string metar;
+ std::string location_name;
+ std::string long_location;
+ std::string ob; // ob: line, METAR info.
+ int error, celsius, fahrenheit;
+ int theme; // º theme to use
+ short humidity;
+ bool loaded;
+ string sky;
+ TMetar mInfo;
+ time_t info_time; // Time stored in file
+ time_t get_time; // Time when we got the file
+ localtemp(char* metar, char* location_name);
+ bool getInfo();
+private:
+ void set_temp(std::string temp);
+ void set_humidity(std::string hum);
+ void get_ob_info();
+};