callback.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #include <flip_world.h>
  3. #include <flip_storage/storage.h>
  4. //
  5. #include <furi.h>
  6. #include "engine/engine.h"
  7. #include "engine/game_engine.h"
  8. #include "engine/game_manager_i.h"
  9. #include "engine/level_i.h"
  10. #include "engine/entity_i.h"
  11. void free_all_views(void *context, bool should_free_variable_item_list, bool should_free_submenu_settings);
  12. void callback_submenu_choices(void *context, uint32_t index);
  13. uint32_t callback_to_submenu(void *context);
  14. // Add edits by Derek Jamison
  15. typedef enum DataState DataState;
  16. enum DataState
  17. {
  18. DataStateInitial,
  19. DataStateRequested,
  20. DataStateReceived,
  21. DataStateParsed,
  22. DataStateParseError,
  23. DataStateError,
  24. };
  25. // typedef enum FlipWorldCustomEvent FlipWorldCustomEvent;
  26. // enum FlipWorldCustomEvent
  27. // {
  28. // FlipWorldCustomEventProcess,
  29. // };
  30. typedef struct DataLoaderModel DataLoaderModel;
  31. typedef bool (*DataLoaderFetch)(DataLoaderModel *model);
  32. typedef char *(*DataLoaderParser)(DataLoaderModel *model);
  33. struct DataLoaderModel
  34. {
  35. char *title;
  36. char *data_text;
  37. DataState data_state;
  38. DataLoaderFetch fetcher;
  39. DataLoaderParser parser;
  40. void *parser_context;
  41. size_t request_index;
  42. size_t request_count;
  43. ViewNavigationCallback back_callback;
  44. FuriTimer *timer;
  45. };
  46. void flip_world_generic_switch_to_view(FlipWorldApp *app, char *title, DataLoaderFetch fetcher, DataLoaderParser parser, size_t request_count, ViewNavigationCallback back, uint32_t view_id);
  47. void flip_world_loader_draw_callback(Canvas *canvas, void *model);
  48. void flip_world_loader_init(View *view);
  49. void flip_world_loader_free_model(View *view);
  50. bool flip_world_custom_event_callback(void *context, uint32_t index);