flip_trader_callback.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef FLIP_TRADER_CALLBACK_H
  2. #define FLIP_TRADER_CALLBACK_H
  3. #define MAX_TOKENS 32 // Adjust based on expected JSON size (25)
  4. #include <flip_trader.h>
  5. #include <flip_storage/flip_trader_storage.h>
  6. // hold the price of the asset
  7. extern char asset_price[64];
  8. extern bool sent_get_request;
  9. extern bool get_request_success;
  10. extern bool request_processed;
  11. void callback_submenu_choices(void* context, uint32_t index);
  12. void text_updated_ssid(void* context);
  13. void text_updated_password(void* context);
  14. uint32_t callback_to_submenu(void* context);
  15. uint32_t callback_to_wifi_settings(void* context);
  16. uint32_t callback_to_assets_submenu(void* context);
  17. void settings_item_selected(void* context, uint32_t index);
  18. // Add edits by Derek Jamison
  19. typedef enum AssetState AssetState;
  20. enum AssetState {
  21. AssetStateInitial,
  22. AssetStateRequested,
  23. AssetStateReceived,
  24. AssetStateParsed,
  25. AssetStateParseError,
  26. AssetStateError,
  27. };
  28. typedef enum FlipTraderCustomEvent FlipTraderCustomEvent;
  29. enum FlipTraderCustomEvent {
  30. FlipTraderCustomEventProcess,
  31. };
  32. typedef struct AssetLoaderModel AssetLoaderModel;
  33. typedef bool (*AssetLoaderFetch)(AssetLoaderModel* model);
  34. typedef char* (*AssetLoaderParser)(AssetLoaderModel* model);
  35. struct AssetLoaderModel {
  36. char* title;
  37. char* asset_text;
  38. AssetState asset_state;
  39. AssetLoaderFetch fetcher;
  40. AssetLoaderParser parser;
  41. void* parser_context;
  42. size_t request_index;
  43. size_t request_count;
  44. ViewNavigationCallback back_callback;
  45. FuriTimer* timer;
  46. };
  47. void flip_trader_generic_switch_to_view(
  48. FlipTraderApp* app,
  49. char* title,
  50. AssetLoaderFetch fetcher,
  51. AssetLoaderParser parser,
  52. size_t request_count,
  53. ViewNavigationCallback back,
  54. uint32_t view_id);
  55. void flip_trader_loader_draw_callback(Canvas* canvas, void* model);
  56. void flip_trader_loader_init(View* view);
  57. void flip_trader_loader_free_model(View* view);
  58. bool flip_trader_custom_event_callback(void* context, uint32_t index);
  59. #endif // FLIP_TRADER_CALLBACK_H