flip_weather_parse.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef FLIP_WEATHER_PARSE_H
  2. #define FLIP_WEATHER_PARSE_H
  3. #include <flip_weather.h>
  4. extern bool sent_get_request;
  5. extern bool get_request_success;
  6. extern bool got_ip_address;
  7. extern bool geo_information_processed;
  8. extern bool weather_information_processed;
  9. // Add edits by Derek Jamison
  10. typedef enum DataState DataState;
  11. enum DataState
  12. {
  13. DataStateInitial,
  14. DataStateRequested,
  15. DataStateReceived,
  16. DataStateParsed,
  17. DataStateParseError,
  18. DataStateError,
  19. };
  20. typedef enum FlipWeatherCustomEvent FlipWeatherCustomEvent;
  21. enum FlipWeatherCustomEvent
  22. {
  23. FlipWeatherCustomEventProcess,
  24. };
  25. typedef struct DataLoaderModel DataLoaderModel;
  26. typedef bool (*DataLoaderFetch)(DataLoaderModel *model);
  27. typedef char *(*DataLoaderParser)(DataLoaderModel *model);
  28. struct DataLoaderModel
  29. {
  30. char *title;
  31. char *data_text;
  32. DataState data_state;
  33. DataLoaderFetch fetcher;
  34. DataLoaderParser parser;
  35. void *parser_context;
  36. size_t request_index;
  37. size_t request_count;
  38. ViewNavigationCallback back_callback;
  39. FuriTimer *timer;
  40. };
  41. bool send_geo_location_request();
  42. char *process_geo_location(DataLoaderModel *model);
  43. bool process_geo_location_2();
  44. char *process_weather(DataLoaderModel *model);
  45. bool send_geo_weather_request(DataLoaderModel *model);
  46. #endif