flip_store_callback.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef FLIP_STORE_CALLBACK_H
  2. #define FLIP_STORE_CALLBACK_H
  3. #include <flip_store.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_app_list(void *context);
  19. uint32_t callback_exit_app(void *context);
  20. void callback_submenu_choices(void *context, uint32_t index);
  21. // Add edits by Derek Jamison
  22. typedef enum DataState DataState;
  23. enum DataState
  24. {
  25. DataStateInitial,
  26. DataStateRequested,
  27. DataStateReceived,
  28. DataStateParsed,
  29. DataStateParseError,
  30. DataStateError,
  31. };
  32. typedef enum FlipStoreCustomEvent FlipStoreCustomEvent;
  33. enum FlipStoreCustomEvent
  34. {
  35. FlipStoreCustomEventProcess,
  36. };
  37. typedef struct DataLoaderModel DataLoaderModel;
  38. typedef bool (*DataLoaderFetch)(DataLoaderModel *model);
  39. typedef char *(*DataLoaderParser)(DataLoaderModel *model);
  40. struct DataLoaderModel
  41. {
  42. char *title;
  43. char *data_text;
  44. DataState data_state;
  45. DataLoaderFetch fetcher;
  46. DataLoaderParser parser;
  47. void *parser_context;
  48. size_t request_index;
  49. size_t request_count;
  50. ViewNavigationCallback back_callback;
  51. FuriTimer *timer;
  52. FlipperHTTP *fhttp;
  53. };
  54. 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);
  55. void flip_store_loader_draw_callback(Canvas *canvas, void *model);
  56. void flip_store_loader_init(View *view);
  57. void flip_store_loader_free_model(View *view);
  58. bool flip_store_custom_event_callback(void *context, uint32_t index);
  59. #endif // FLIP_STORE_CALLBACK_H