flip_weather_parse.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. DataStateInitial,
  13. DataStateRequested,
  14. DataStateReceived,
  15. DataStateParsed,
  16. DataStateParseError,
  17. DataStateError,
  18. };
  19. typedef enum FlipWeatherCustomEvent FlipWeatherCustomEvent;
  20. enum FlipWeatherCustomEvent {
  21. FlipWeatherCustomEventProcess,
  22. };
  23. typedef struct DataLoaderModel DataLoaderModel;
  24. typedef bool (*DataLoaderFetch)(DataLoaderModel* model);
  25. typedef char* (*DataLoaderParser)(DataLoaderModel* model);
  26. struct DataLoaderModel {
  27. char* title;
  28. char* data_text;
  29. DataState data_state;
  30. DataLoaderFetch fetcher;
  31. DataLoaderParser parser;
  32. void* parser_context;
  33. size_t request_index;
  34. size_t request_count;
  35. ViewNavigationCallback back_callback;
  36. FuriTimer* timer;
  37. };
  38. bool send_geo_location_request();
  39. char* process_geo_location(DataLoaderModel* model);
  40. bool process_geo_location_2();
  41. char* process_weather(DataLoaderModel* model);
  42. bool send_geo_weather_request(DataLoaderModel* model);
  43. #endif