flip_library.h 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef FLIP_LIBRARY_E_H
  2. #define FLIP_LIBRARY_E_H
  3. #include <flipper_http/flipper_http.h>
  4. #include <easy_flipper/easy_flipper.h>
  5. #include <furi.h>
  6. #include <furi_hal.h>
  7. #include <gui/gui.h>
  8. #include <gui/view.h>
  9. #include <gui/modules/submenu.h>
  10. #include <gui/view_dispatcher.h>
  11. #include <notification/notification.h>
  12. #include <dialogs/dialogs.h>
  13. #include <jsmn/jsmn.h>
  14. #define TAG "FlipLibrary"
  15. // Define the submenu items for our FlipLibrary application
  16. typedef enum {
  17. FlipLibrarySubmenuIndexRandomFacts, // Click to run the random facts
  18. FlipLibrarySubmenuIndexDictionary, // click to view the dictionary variable item list
  19. FlipLibrarySubmenuIndexAbout, // Click to view the about screen
  20. FlipLibrarySubmenuIndexSettings, // Click to view the WiFi settings
  21. //
  22. FlipLibrarySubmenuIndexRandomFactsCats, // Click to view the random facts (cats)
  23. FlipLibrarySubmenuIndexRandomFactsDogs, // Click to view the random facts (dogs)
  24. FlipLibrarySubmenuIndexRandomFactsQuotes, // Click to view the random facts (quotes)
  25. FlipLibrarySubmenuIndexRandomFactsAll, // Click to view the random facts (all)
  26. FlipLibrarySubmenuIndexRandomFactsWiki, // Click to view the random facts (wiki)
  27. } FlipLibrarySubmenuIndex;
  28. // Define a single view for our FlipLibrary application
  29. typedef enum {
  30. FlipLibraryViewRandomFacts = 7, // The random facts main screen
  31. FlipLibraryViewLoader, // The loader screen retrieves data from the internet
  32. FlipLibraryViewSubmenuMain, // The submenu screen
  33. FlipLibraryViewAbout, // The about screen
  34. FlipLibraryViewSettings, // The settings screen
  35. FlipLibraryViewTextInputSSID, // The text input screen (SSID)
  36. FlipLibraryViewTextInputPassword, // The text input screen (password)
  37. FlipLibraryViewTextInputQuery, // Query the user for information
  38. FlipLibraryViewWidgetResult, // The text box that displays the random fact
  39. } FlipLibraryView;
  40. // Each screen will have its own view
  41. typedef struct {
  42. ViewDispatcher* view_dispatcher; // Switches between our views
  43. View* view_loader; // The screen that loads data from internet
  44. Submenu* submenu_main; // The submenu for the main screen
  45. Submenu* submenu_random_facts; // The submenu for the random facts screen
  46. Widget* widget_about; // The widget for the about screen
  47. VariableItemList* variable_item_list_wifi; // The variable item list (WiFi settings)
  48. VariableItem* variable_item_ssid; // The variable item (SSID)
  49. VariableItem* variable_item_password; // The variable item (password)
  50. TextInput* uart_text_input_ssid; // The text input for the SSID
  51. TextInput* uart_text_input_password; // The text input for the password
  52. TextInput* uart_text_input_query; // The text input for querying information
  53. //
  54. Widget* widget_result; // The text box that displays the result
  55. char* uart_text_input_buffer_ssid; // Buffer for the text input (SSID)
  56. char* uart_text_input_temp_buffer_ssid; // Temporary buffer for the text input (SSID)
  57. uint32_t uart_text_input_buffer_size_ssid; // Size of the text input buffer (SSID)
  58. char* uart_text_input_buffer_password; // Buffer for the text input (password)
  59. char* uart_text_input_temp_buffer_password; // Temporary buffer for the text input (password)
  60. uint32_t uart_text_input_buffer_size_password; // Size of the text input buffer (password)
  61. char* uart_text_input_buffer_query; // Buffer for the text input (query)
  62. char* uart_text_input_temp_buffer_query; // Temporary buffer for the text input (query)
  63. uint32_t uart_text_input_buffer_size_query; // Size of the text input buffer (query)
  64. } FlipLibraryApp;
  65. // Function to free the resources used by FlipLibraryApp
  66. void flip_library_app_free(FlipLibraryApp* app);
  67. extern FlipLibraryApp* app_instance;
  68. #endif // FLIP_LIBRARY_E_H