malveke_gb_photo.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <gui/gui.h>
  5. #include <input/input.h>
  6. #include <stdlib.h>
  7. #include <malveke_gb_photo_icons.h>
  8. #include <dialogs/dialogs.h>
  9. #include <notification/notification_messages.h>
  10. #include <gui/view_dispatcher.h>
  11. #include <gui/modules/submenu.h>
  12. #include <gui/scene_manager.h>
  13. #include <gui/modules/variable_item_list.h>
  14. #include <gui/modules/dialog_ex.h>
  15. #include <storage/storage.h>
  16. #include "scenes/boilerplate_scene.h"
  17. #include "views/boilerplate_startscreen.h"
  18. #include "views/boilerplate_scene_1.h"
  19. #include "views/boilerplate_scene_2.h"
  20. #include <string.h>
  21. #define TAG "GBPHOTO"
  22. #define MALVEKE_APP_RAM_EXTENSION ".sav"
  23. #define MALVEKE_APP_FOLDER_USER "apps_data/malveke"
  24. #define MALVEKE_APP_FOLDER EXT_PATH(MALVEKE_APP_FOLDER_USER)
  25. #define MALVEKE_APP_FOLDER_RAMS MALVEKE_APP_FOLDER "/rams"
  26. #define MALVEKE_APP_FOLDER_PHOTOS MALVEKE_APP_FOLDER "/photos"
  27. typedef struct {
  28. Gui* gui;
  29. NotificationApp* notification;
  30. Storage* storage;
  31. ViewDispatcher* view_dispatcher;
  32. Submenu* submenu;
  33. SceneManager* scene_manager;
  34. VariableItemList* variable_item_list;
  35. BoilerplateStartscreen* boilerplate_startscreen;
  36. BoilerplateScene1* boilerplate_scene_1;
  37. BoilerplateScene2* boilerplate_scene_2;
  38. DialogsApp* dialogs; // File Browser
  39. FuriString* file_path; // File Browser
  40. uint32_t palette;
  41. uint32_t info;
  42. File* camera_ram_sav;
  43. int page;
  44. int pos_x;
  45. int pos_y;
  46. bool show_instructions;
  47. uint8_t tile_data[16];
  48. unsigned long palette_color_hex_a;
  49. unsigned long palette_color_hex_b;
  50. unsigned long palette_color_hex_c;
  51. unsigned long palette_color_hex_d;
  52. } Boilerplate;
  53. typedef enum {
  54. WorkerEvtStop = (1 << 0),
  55. WorkerEvtRxDone = (1 << 1),
  56. } WorkerEvtFlags;
  57. typedef enum {
  58. BoilerplateViewIdStartscreen,
  59. BoilerplateViewIdMenu,
  60. BoilerplateViewIdScene1,
  61. BoilerplateViewIdScene2,
  62. BoilerplateViewIdSettings,
  63. } BoilerplateViewId;
  64. typedef enum {
  65. BoilerplatePaletteBlackAndWhite,
  66. BoilerplatePaletteOriginal,
  67. BoilerplatePaletteSplashUp,
  68. BoilerplatePaletteGBLight,
  69. BoilerplatePalettePocket,
  70. BoilerplatePaletteAudiQuattroPikesPeak,
  71. BoilerplatePaletteAzureClouds,
  72. BoilerplatePaletteTheresalwaysmoney,
  73. BoilerplatePaletteBGBEmulator,
  74. BoilerplatePaletteGameBoyBlackZeropalette,
  75. BoilerplatePaletteCandyCottonTowerRaid,
  76. BoilerplatePaletteCaramelFudgeParanoia,
  77. BoilerplatePaletteCGAPaletteCrush1,
  78. BoilerplatePaletteCGAPaletteCrush2,
  79. BoilerplatePaletteChildhoodinGreenland,
  80. BoilerplatePaletteCMYKeystone,
  81. BoilerplatePaletteCyanideBlues,
  82. BoilerplatePaletteDune2000remastered,
  83. BoilerplatePaletteDrowningatnight,
  84. BoilerplatePaletteDeepHazeGreen,
  85. BoilerplatePaletteDiesistmeineWassermelone,
  86. BoilerplatePaletteFlowerfeldstrabe,
  87. BoilerplatePaletteFloydSteinberginLove,
  88. BoilerplatePaletteGameBoyColorSplashDown,
  89. BoilerplatePaletteGameBoyColorSplashDownA,
  90. BoilerplatePaletteGameBoyColorSplashDownB,
  91. BoilerplatePaletteGameBoyColorSplashRightAGameBoyCamera,
  92. BoilerplatePaletteGameBoyColorSplashLeft,
  93. BoilerplatePaletteGameBoyColorSplashLeftA,
  94. BoilerplatePaletteGameBoyColorSplashLeftB,
  95. BoilerplatePaletteGameBoyColorSplashRight,
  96. BoilerplatePaletteGameBoyColorSplashRightB,
  97. BoilerplatePaletteGameBoyColorSplashUpA,
  98. BoilerplatePaletteGameBoyColorSplashUpB,
  99. BoilerplatePaletteGoldenElephantCurry,
  100. BoilerplatePaletteGlowingMountains,
  101. BoilerplatePaletteGrafixkidGray,
  102. BoilerplatePaletteGrafixkidGreen,
  103. BoilerplatePaletteArtisticCaffeinatedLactose,
  104. BoilerplatePaletteKneeDeepintheWood,
  105. BoilerplatePaletteLinkslateAwakening,
  106. BoilerplatePaletteMetroidAranremixed,
  107. BoilerplatePaletteNortoriousComandante,
  108. BoilerplatePalettePurpleRain,
  109. BoilerplatePaletteRustedCitySign,
  110. BoilerplatePaletteRomerosGarden,
  111. BoilerplatePaletteSunflowerHolidays,
  112. BoilerplatePaletteSuperHyperMegaGameboy,
  113. BoilerplatePaletteSpaceHazeOverload,
  114. BoilerplatePaletteStarlitMemories,
  115. BoilerplatePaletteMyFriendfromBavaria,
  116. BoilerplatePaletteThedeathofYungColumbus,
  117. BoilerplatePaletteTramontoalParcodegliAcquedotti,
  118. BoilerplatePaletteThestarryknight,
  119. BoilerplatePaletteVirtualBoy1985,
  120. BoilerplatePaletteWaterfrontPlaza,
  121. BoilerplatePaletteYouthIkarusreloaded
  122. } BoilerplatePaletteState;
  123. typedef enum {
  124. BoilerplateInfoOff,
  125. BoilerplateInfoOn,
  126. } BoilerplateInfoState;