applications.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. #pragma once
  2. #include "flipper.h"
  3. #ifdef APP_TEST
  4. void flipper_test_app(void* p);
  5. #endif
  6. void application_blink(void* p);
  7. void application_uart_write(void* p);
  8. void application_ipc_display(void* p);
  9. void application_ipc_widget(void* p);
  10. void application_input_dump(void* p);
  11. void display_u8g2(void* p);
  12. void u8g2_example(void* p);
  13. void input_task(void* p);
  14. void menu_task(void* p);
  15. void coreglitch_demo_0(void* p);
  16. void u8g2_qrcode(void* p);
  17. void fatfs_list(void* p);
  18. void gui_task(void* p);
  19. void backlight_control(void* p);
  20. void irda(void* p);
  21. void app_loader(void* p);
  22. void cc1101_workaround(void* p);
  23. void lf_rfid_workaround(void* p);
  24. void nfc_task(void* p);
  25. void irukagotchi_task(void* p);
  26. void power_task(void* p);
  27. void sd_card_test(void* p);
  28. void application_vibro(void* p);
  29. void app_gpio_test(void* p);
  30. void app_ibutton(void* p);
  31. void cli_task(void* p);
  32. void music_player(void* p);
  33. void sdnfc(void* p);
  34. void floopper_bloopper(void* p);
  35. const FlipperStartupApp FLIPPER_STARTUP[] = {
  36. #ifdef APP_DISPLAY
  37. {.app = display_u8g2, .name = "display_u8g2", .libs = {0}, .icon = A_Plugins_14},
  38. #endif
  39. #ifdef APP_CLI
  40. {.app = cli_task, .name = "cli_task", .libs = {0}, .icon = A_Plugins_14},
  41. #endif
  42. #ifdef APP_EXAMPLE_BLINK
  43. {.app = application_blink,
  44. .name = "blink",
  45. .libs = {1, FURI_LIB{"input_task"}},
  46. .icon = A_Plugins_14},
  47. #endif
  48. #ifdef APP_INPUT
  49. {.app = input_task, .name = "input_task", .libs = {0}, .icon = A_Plugins_14},
  50. #endif
  51. #ifdef APP_EXAMPLE_INPUT_DUMP
  52. {.app = application_input_dump,
  53. .name = "input dump",
  54. .libs = {1, FURI_LIB{"input_task"}},
  55. .icon = A_Plugins_14},
  56. #endif
  57. #ifdef APP_GUI
  58. {.app = backlight_control,
  59. .name = "backlight_control",
  60. .libs = {1, FURI_LIB{"input_task"}},
  61. .icon = A_Plugins_14},
  62. {.app = gui_task, .name = "gui_task", .libs = {0}, .icon = A_Plugins_14},
  63. #endif
  64. #ifdef APP_MENU
  65. {.app = menu_task,
  66. .name = "menu_task",
  67. .libs = {1, FURI_LIB{"gui_task"}},
  68. .icon = A_Plugins_14},
  69. {.app = app_loader,
  70. .name = "app_loader",
  71. .libs = {2, FURI_LIB{"menu_task", "cli_task"}},
  72. .icon = A_Plugins_14},
  73. #endif
  74. #ifdef APP_IRUKAGOTCHI
  75. {.app = irukagotchi_task,
  76. .name = "irukagotchi_task",
  77. .libs = {1, FURI_LIB{"menu_task"}},
  78. .icon = A_Plugins_14},
  79. #endif
  80. #ifdef APP_POWER
  81. {.app = power_task,
  82. .name = "power_task",
  83. .libs = {2, FURI_LIB{"cli_task", "gui_task"}},
  84. .icon = A_Plugins_14},
  85. #endif
  86. #ifdef APP_CC1101
  87. {.app = cc1101_workaround,
  88. .name = "cc1101 workaround",
  89. .libs = {1, FURI_LIB{"gui_task"}},
  90. .icon = A_Plugins_14},
  91. #endif
  92. #ifdef APP_LF_RFID
  93. {.app = lf_rfid_workaround,
  94. .name = "lf rfid workaround",
  95. .libs = {1, FURI_LIB{"gui_task"}},
  96. .icon = A_Plugins_14},
  97. #endif
  98. #ifdef APP_IRDA
  99. {.app = irda, .name = "irda", .libs = {1, FURI_LIB{"gui_task"}}, .icon = A_Plugins_14},
  100. #endif
  101. #ifdef APP_NFC
  102. {.app = nfc_task, .name = "nfc_task", .libs = {1, FURI_LIB{"menu_task"}}, .icon = A_Plugins_14},
  103. #endif
  104. #ifdef APP_TEST
  105. {.app = flipper_test_app, .name = "test app", .libs = {0}, .icon = A_Plugins_14},
  106. #endif
  107. #ifdef APP_EXAMPLE_IPC
  108. {.app = application_ipc_display, .name = "ipc display", .libs = {0}, .icon = A_Plugins_14},
  109. {.app = application_ipc_widget, .name = "ipc widget", .libs = {0}, .icon = A_Plugins_14},
  110. #endif
  111. #ifdef APP_EXAMPLE_QRCODE
  112. {.app = u8g2_qrcode,
  113. .name = "u8g2_qrcode",
  114. .libs = {1, FURI_LIB{"display_u8g2"}},
  115. .icon = A_Plugins_14},
  116. #endif
  117. #ifdef APP_EXAMPLE_FATFS
  118. {.app = fatfs_list,
  119. .name = "fatfs_list",
  120. .libs = {2, FURI_LIB{"display_u8g2", "input_task"}},
  121. .icon = A_Plugins_14},
  122. #endif
  123. #ifdef APP_EXAMPLE_DISPLAY
  124. {.app = u8g2_example,
  125. .name = "u8g2_example",
  126. .libs = {1, FURI_LIB{"display_u8g2"}},
  127. .icon = A_Plugins_14},
  128. #endif
  129. #ifdef APP_SPEAKER_DEMO
  130. {.app = coreglitch_demo_0, .name = "coreglitch_demo_0", .libs = {0}, .icon = A_Plugins_14},
  131. #endif
  132. #ifdef APP_SD_TEST
  133. {.app = sd_card_test,
  134. .name = "sd_card_test",
  135. .libs = {1, FURI_LIB{"gui_task"}},
  136. .icon = A_Plugins_14},
  137. #endif
  138. #ifdef APP_MUSIC_PLAYER
  139. {.app = music_player,
  140. .name = "music player",
  141. .libs = {1, FURI_LIB{"gui_task"}},
  142. .icon = A_Plugins_14},
  143. #endif
  144. #ifdef APP_IBUTTON
  145. {.app = app_ibutton,
  146. .name = "ibutton",
  147. .libs = {1, FURI_LIB{"gui_task"}},
  148. .icon = A_Plugins_14},
  149. #endif
  150. #ifdef APP_GPIO_DEMO
  151. {.app = app_gpio_test,
  152. .name = "gpio test",
  153. .libs = {1, FURI_LIB{"gui_task"}},
  154. .icon = A_Plugins_14},
  155. #endif
  156. #ifdef APP_FLOOPPER_BLOOPPER
  157. {.app = floopper_bloopper,
  158. .name = "Floopper Bloopper",
  159. .libs = {1, FURI_LIB{"gui_task"}},
  160. .icon = A_Games_14},
  161. #endif
  162. #ifdef APP_SDNFC
  163. {.app = sdnfc, .name = "sdnfc", .libs = {1, FURI_LIB{"gui_task"}}, .icon = A_Plugins_14},
  164. #endif
  165. };
  166. // Main menu APP
  167. const FlipperStartupApp FLIPPER_APPS[] = {
  168. #ifdef BUILD_CC1101
  169. {.app = cc1101_workaround,
  170. .name = "Sub-1 GHz",
  171. .libs = {1, FURI_LIB{"gui_task"}},
  172. .icon = A_Sub1ghz_14},
  173. #endif
  174. #ifdef BUILD_LF_RFID
  175. {.app = lf_rfid_workaround,
  176. .name = "125 kHz RFID",
  177. .libs = {1, FURI_LIB{"gui_task"}},
  178. .icon = A_125khz_14},
  179. #endif
  180. #ifdef BUILD_IRDA
  181. {.app = irda, .name = "Infrared", .libs = {1, FURI_LIB{"gui_task"}}, .icon = A_Infrared_14},
  182. #endif
  183. #ifdef BUILD_IBUTTON
  184. {.app = app_ibutton,
  185. .name = "iButton",
  186. .libs = {1, FURI_LIB{"gui_task"}},
  187. .icon = A_iButton_14},
  188. #endif
  189. {.app = NULL, .name = "Bluetooth", .libs = {0}, .icon = A_Bluetooth_14},
  190. #ifdef BUILD_GPIO_DEMO
  191. {.app = app_gpio_test, .name = "GPIO", .libs = {1, FURI_LIB{"gui_task"}}, .icon = A_GPIO_14},
  192. #endif
  193. };
  194. // Plugin menu
  195. const FlipperStartupApp FLIPPER_PLUGINS[] = {
  196. #ifdef BUILD_EXAMPLE_BLINK
  197. {.app = application_blink,
  198. .name = "blink",
  199. .libs = {1, FURI_LIB{"input_task"}},
  200. .icon = A_Plugins_14},
  201. #endif
  202. #ifdef BUILD_EXAMPLE_INPUT_DUMP
  203. {.app = application_input_dump,
  204. .name = "input dump",
  205. .libs = {1, FURI_LIB{"input_task"}},
  206. .icon = A_Plugins_14},
  207. #endif
  208. #ifdef BUILD_SPEAKER_DEMO
  209. {.app = coreglitch_demo_0, .name = "coreglitch_demo_0", .libs = {0}, .icon = A_Plugins_14},
  210. #endif
  211. #ifdef BUILD_SD_TEST
  212. {.app = sd_card_test,
  213. .name = "sd_card_test",
  214. .libs = {1, FURI_LIB{"gui_task"}},
  215. .icon = A_Plugins_14},
  216. #endif
  217. #ifdef BUILD_VIBRO_DEMO
  218. {.app = application_vibro,
  219. .name = "application_vibro",
  220. .libs = {1, FURI_LIB{"input_task"}},
  221. .icon = A_Plugins_14},
  222. #endif
  223. #ifdef BUILD_MUSIC_PLAYER
  224. {.app = music_player,
  225. .name = "music player",
  226. .libs = {1, FURI_LIB{"gui_task"}},
  227. .icon = A_Plugins_14},
  228. #endif
  229. #ifdef BUILD_FLOOPPER_BLOOPPER
  230. {.app = floopper_bloopper,
  231. .name = "Floopper Bloopper",
  232. .libs = {1, FURI_LIB{"gui_task"}},
  233. .icon = A_Games_14},
  234. #endif
  235. #ifdef BUILD_SDNFC
  236. {.app = sdnfc, .name = "sdnfc", .libs = {1, FURI_LIB{"gui_task"}}, .icon = A_Plugins_14},
  237. #endif
  238. };