flip_store_callback.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef FLIP_STORE_CALLBACK_H
  2. #define FLIP_STORE_CALLBACK_H
  3. #include <flip_downloader.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <stdlib.h>
  7. #include <ctype.h>
  8. #include <stdbool.h>
  9. #include <apps/flip_store_apps.h>
  10. #include <firmwares/flip_store_firmwares.h>
  11. #include <flip_storage/flip_store_storage.h>
  12. #define MAX_LINE_LENGTH 30
  13. extern bool flip_store_app_does_exist;
  14. extern uint32_t selected_firmware_index;
  15. uint32_t callback_to_submenu(void *context);
  16. uint32_t callback_to_submenu_options(void *context);
  17. uint32_t callback_to_firmware_list(void *context);
  18. uint32_t callback_to_vgm_firmware_list(void *context);
  19. uint32_t callback_to_app_list(void *context);
  20. uint32_t callback_exit_app(void *context);
  21. void callback_submenu_choices(void *context, uint32_t index);
  22. void free_all_views(FlipStoreApp *app, bool should_free_variable_item_list);
  23. // Add edits by Derek Jamison
  24. typedef enum DataState DataState;
  25. enum DataState
  26. {
  27. DataStateInitial,
  28. DataStateRequested,
  29. DataStateReceived,
  30. DataStateParsed,
  31. DataStateParseError,
  32. DataStateError,
  33. };
  34. typedef enum FlipStoreCustomEvent FlipStoreCustomEvent;
  35. enum FlipStoreCustomEvent
  36. {
  37. FlipStoreCustomEventProcess,
  38. };
  39. typedef struct DataLoaderModel DataLoaderModel;
  40. typedef bool (*DataLoaderFetch)(DataLoaderModel *model);
  41. typedef char *(*DataLoaderParser)(DataLoaderModel *model);
  42. struct DataLoaderModel
  43. {
  44. char *title;
  45. char *data_text;
  46. DataState data_state;
  47. DataLoaderFetch fetcher;
  48. DataLoaderParser parser;
  49. void *parser_context;
  50. size_t request_index;
  51. size_t request_count;
  52. ViewNavigationCallback back_callback;
  53. FuriTimer *timer;
  54. FlipperHTTP *fhttp;
  55. };
  56. void flip_store_generic_switch_to_view(FlipStoreApp *app, char *title, DataLoaderFetch fetcher, DataLoaderParser parser, size_t request_count, ViewNavigationCallback back, uint32_t view_id);
  57. void flip_store_loader_draw_callback(Canvas *canvas, void *model);
  58. void flip_store_loader_init(View *view);
  59. void flip_store_loader_free_model(View *view);
  60. bool flip_store_custom_event_callback(void *context, uint32_t index);
  61. #endif // FLIP_STORE_CALLBACK_H