notification_messages.c 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511
  1. #include "furi_hal_resources.h"
  2. #include "notification.h"
  3. #include "notification_messages_notes.h"
  4. #include <stddef.h>
  5. /*********************************** Messages **********************************/
  6. /** Display: backlight wakeup */
  7. const NotificationMessage message_display_backlight_on = {
  8. .type = NotificationMessageTypeLedDisplayBacklight,
  9. .data.led.value = 0xFF,
  10. };
  11. /** Display: backlight force off */
  12. const NotificationMessage message_display_backlight_off = {
  13. .type = NotificationMessageTypeLedDisplayBacklight,
  14. .data.led.value = 0x00,
  15. };
  16. /** Display: backlight always on */
  17. const NotificationMessage message_display_backlight_enforce_on = {
  18. .type = NotificationMessageTypeLedDisplayBacklightEnforceOn,
  19. .data.led.value = 0xFF,
  20. };
  21. /** Display: automatic backlight management, with configured timeout */
  22. const NotificationMessage message_display_backlight_enforce_auto = {
  23. .type = NotificationMessageTypeLedDisplayBacklightEnforceAuto,
  24. .data.led.value = 0x00,
  25. };
  26. // Led ON
  27. const NotificationMessage message_red_255 = {
  28. .type = NotificationMessageTypeLedRed,
  29. .data.led.value = 0xFF,
  30. };
  31. const NotificationMessage message_green_255 = {
  32. .type = NotificationMessageTypeLedGreen,
  33. .data.led.value = 0xFF,
  34. };
  35. const NotificationMessage message_blue_255 = {
  36. .type = NotificationMessageTypeLedBlue,
  37. .data.led.value = 0xFF,
  38. };
  39. // Led OFF
  40. const NotificationMessage message_red_0 = {
  41. .type = NotificationMessageTypeLedRed,
  42. .data.led.value = 0x00,
  43. };
  44. const NotificationMessage message_green_0 = {
  45. .type = NotificationMessageTypeLedGreen,
  46. .data.led.value = 0x00,
  47. };
  48. const NotificationMessage message_blue_0 = {
  49. .type = NotificationMessageTypeLedBlue,
  50. .data.led.value = 0x00,
  51. };
  52. const NotificationMessage message_blink_start_10 = {
  53. .type = NotificationMessageTypeLedBlinkStart,
  54. .data.led_blink.color = 0,
  55. .data.led_blink.on_time = 10,
  56. .data.led_blink.period = 100,
  57. };
  58. const NotificationMessage message_blink_start_100 = {
  59. .type = NotificationMessageTypeLedBlinkStart,
  60. .data.led_blink.color = 0,
  61. .data.led_blink.on_time = 100,
  62. .data.led_blink.period = 1000,
  63. };
  64. const NotificationMessage message_blink_stop = {
  65. .type = NotificationMessageTypeLedBlinkStop,
  66. };
  67. const NotificationMessage message_blink_set_color_red = {
  68. .type = NotificationMessageTypeLedBlinkColor,
  69. .data.led_blink.color = LightRed,
  70. };
  71. const NotificationMessage message_blink_set_color_green = {
  72. .type = NotificationMessageTypeLedBlinkColor,
  73. .data.led_blink.color = LightGreen,
  74. };
  75. const NotificationMessage message_blink_set_color_blue = {
  76. .type = NotificationMessageTypeLedBlinkColor,
  77. .data.led_blink.color = LightBlue,
  78. };
  79. const NotificationMessage message_blink_set_color_cyan = {
  80. .type = NotificationMessageTypeLedBlinkColor,
  81. .data.led_blink.color = LightBlue | LightGreen,
  82. };
  83. const NotificationMessage message_blink_set_color_magenta = {
  84. .type = NotificationMessageTypeLedBlinkColor,
  85. .data.led_blink.color = LightBlue | LightRed,
  86. };
  87. const NotificationMessage message_blink_set_color_yellow = {
  88. .type = NotificationMessageTypeLedBlinkColor,
  89. .data.led_blink.color = LightGreen | LightRed,
  90. };
  91. const NotificationMessage message_blink_set_color_white = {
  92. .type = NotificationMessageTypeLedBlinkColor,
  93. .data.led_blink.color = LightRed | LightGreen | LightBlue,
  94. };
  95. // Delay
  96. const NotificationMessage message_delay_1 = {
  97. .type = NotificationMessageTypeDelay,
  98. .data.delay.length = 1,
  99. };
  100. const NotificationMessage message_delay_10 = {
  101. .type = NotificationMessageTypeDelay,
  102. .data.delay.length = 10,
  103. };
  104. const NotificationMessage message_delay_25 = {
  105. .type = NotificationMessageTypeDelay,
  106. .data.delay.length = 25,
  107. };
  108. const NotificationMessage message_delay_50 = {
  109. .type = NotificationMessageTypeDelay,
  110. .data.delay.length = 50,
  111. };
  112. const NotificationMessage message_delay_100 = {
  113. .type = NotificationMessageTypeDelay,
  114. .data.delay.length = 100,
  115. };
  116. const NotificationMessage message_delay_250 = {
  117. .type = NotificationMessageTypeDelay,
  118. .data.delay.length = 250,
  119. };
  120. const NotificationMessage message_delay_500 = {
  121. .type = NotificationMessageTypeDelay,
  122. .data.delay.length = 500,
  123. };
  124. const NotificationMessage message_delay_1000 = {
  125. .type = NotificationMessageTypeDelay,
  126. .data.delay.length = 1000,
  127. };
  128. // Sound
  129. const NotificationMessage message_sound_off = {
  130. .type = NotificationMessageTypeSoundOff,
  131. };
  132. // Vibro
  133. const NotificationMessage message_vibro_on = {
  134. .type = NotificationMessageTypeVibro,
  135. .data.vibro.on = true,
  136. };
  137. const NotificationMessage message_vibro_off = {
  138. .type = NotificationMessageTypeVibro,
  139. .data.vibro.on = false,
  140. };
  141. // Reset
  142. const NotificationMessage message_do_not_reset = {
  143. .type = NotificationMessageTypeDoNotReset,
  144. };
  145. // Override user settings
  146. const NotificationMessage message_force_speaker_volume_setting_1f = {
  147. .type = NotificationMessageTypeForceSpeakerVolumeSetting,
  148. .data.forced_settings.speaker_volume = 1.0f,
  149. };
  150. const NotificationMessage message_force_vibro_setting_on = {
  151. .type = NotificationMessageTypeForceVibroSetting,
  152. .data.forced_settings.vibro = true,
  153. };
  154. const NotificationMessage message_force_vibro_setting_off = {
  155. .type = NotificationMessageTypeForceVibroSetting,
  156. .data.forced_settings.vibro = false,
  157. };
  158. const NotificationMessage message_force_display_brightness_setting_1f = {
  159. .type = NotificationMessageTypeForceDisplayBrightnessSetting,
  160. .data.forced_settings.display_brightness = 1.0f,
  161. };
  162. /****************************** Message sequences ******************************/
  163. // Reset
  164. const NotificationSequence sequence_reset_red = {
  165. &message_red_0,
  166. NULL,
  167. };
  168. const NotificationSequence sequence_reset_green = {
  169. &message_green_0,
  170. NULL,
  171. };
  172. const NotificationSequence sequence_reset_blue = {
  173. &message_blue_0,
  174. NULL,
  175. };
  176. const NotificationSequence sequence_reset_rgb = {
  177. &message_red_0,
  178. &message_blue_0,
  179. &message_green_0,
  180. NULL,
  181. };
  182. const NotificationSequence sequence_reset_display = {
  183. &message_display_backlight_off,
  184. NULL,
  185. };
  186. const NotificationSequence sequence_reset_sound = {
  187. &message_sound_off,
  188. NULL,
  189. };
  190. const NotificationSequence sequence_reset_vibro = {
  191. &message_vibro_off,
  192. NULL,
  193. };
  194. // Vibro
  195. const NotificationSequence sequence_set_vibro_on = {
  196. &message_vibro_on,
  197. &message_do_not_reset,
  198. NULL,
  199. };
  200. // Display
  201. const NotificationSequence sequence_display_backlight_on = {
  202. &message_display_backlight_on,
  203. NULL,
  204. };
  205. const NotificationSequence sequence_display_backlight_off = {
  206. &message_display_backlight_off,
  207. NULL,
  208. };
  209. /** Display: backlight always on lock */
  210. const NotificationSequence sequence_display_backlight_enforce_on = {
  211. &message_display_backlight_enforce_on,
  212. NULL,
  213. };
  214. /** Display: backlight always on unlock */
  215. const NotificationSequence sequence_display_backlight_enforce_auto = {
  216. &message_display_backlight_enforce_auto,
  217. NULL,
  218. };
  219. const NotificationSequence sequence_display_backlight_off_delay_1000 = {
  220. &message_delay_1000,
  221. &message_display_backlight_off,
  222. NULL,
  223. };
  224. // Charging
  225. const NotificationSequence sequence_charging = {
  226. &message_red_255,
  227. &message_green_0,
  228. NULL,
  229. };
  230. const NotificationSequence sequence_charged = {
  231. &message_green_255,
  232. &message_red_0,
  233. NULL,
  234. };
  235. const NotificationSequence sequence_not_charging = {
  236. &message_red_0,
  237. &message_green_0,
  238. NULL,
  239. };
  240. // Light up
  241. const NotificationSequence sequence_set_only_red_255 = {
  242. &message_red_255,
  243. &message_green_0,
  244. &message_blue_0,
  245. &message_do_not_reset,
  246. NULL,
  247. };
  248. const NotificationSequence sequence_set_only_green_255 = {
  249. &message_red_0,
  250. &message_green_255,
  251. &message_blue_0,
  252. &message_do_not_reset,
  253. NULL,
  254. };
  255. const NotificationSequence sequence_set_only_blue_255 = {
  256. &message_red_0,
  257. &message_green_0,
  258. &message_blue_255,
  259. &message_do_not_reset,
  260. NULL,
  261. };
  262. const NotificationSequence sequence_set_red_255 = {
  263. &message_red_255,
  264. &message_do_not_reset,
  265. NULL,
  266. };
  267. const NotificationSequence sequence_set_green_255 = {
  268. &message_green_255,
  269. &message_do_not_reset,
  270. NULL,
  271. };
  272. const NotificationSequence sequence_set_blue_255 = {
  273. &message_blue_255,
  274. &message_do_not_reset,
  275. NULL,
  276. };
  277. // Blink
  278. const NotificationSequence sequence_blink_blue_10 = {
  279. &message_blue_255,
  280. &message_delay_10,
  281. NULL,
  282. };
  283. const NotificationSequence sequence_blink_red_10 = {
  284. &message_red_255,
  285. &message_delay_10,
  286. NULL,
  287. };
  288. const NotificationSequence sequence_blink_green_10 = {
  289. &message_green_255,
  290. &message_delay_10,
  291. NULL,
  292. };
  293. const NotificationSequence sequence_blink_yellow_10 = {
  294. &message_red_255,
  295. &message_green_255,
  296. &message_delay_10,
  297. NULL,
  298. };
  299. const NotificationSequence sequence_blink_cyan_10 = {
  300. &message_green_255,
  301. &message_blue_255,
  302. &message_delay_10,
  303. NULL,
  304. };
  305. const NotificationSequence sequence_blink_magenta_10 = {
  306. &message_red_255,
  307. &message_blue_255,
  308. &message_delay_10,
  309. NULL,
  310. };
  311. const NotificationSequence sequence_blink_red_100 = {
  312. &message_red_255,
  313. &message_delay_100,
  314. NULL,
  315. };
  316. const NotificationSequence sequence_blink_green_100 = {
  317. &message_green_255,
  318. &message_delay_100,
  319. NULL,
  320. };
  321. const NotificationSequence sequence_blink_blue_100 = {
  322. &message_blue_255,
  323. &message_delay_100,
  324. NULL,
  325. };
  326. const NotificationSequence sequence_blink_yellow_100 = {
  327. &message_red_255,
  328. &message_green_255,
  329. &message_delay_100,
  330. NULL,
  331. };
  332. const NotificationSequence sequence_blink_cyan_100 = {
  333. &message_green_255,
  334. &message_blue_255,
  335. &message_delay_100,
  336. NULL,
  337. };
  338. const NotificationSequence sequence_blink_magenta_100 = {
  339. &message_red_255,
  340. &message_blue_255,
  341. &message_delay_100,
  342. NULL,
  343. };
  344. const NotificationSequence sequence_blink_white_100 = {
  345. &message_red_255,
  346. &message_green_255,
  347. &message_blue_255,
  348. &message_delay_100,
  349. NULL,
  350. };
  351. //General
  352. const NotificationSequence sequence_single_vibro = {
  353. &message_vibro_on,
  354. &message_delay_100,
  355. &message_vibro_off,
  356. NULL,
  357. };
  358. const NotificationSequence sequence_double_vibro = {
  359. &message_vibro_on,
  360. &message_delay_100,
  361. &message_vibro_off,
  362. &message_delay_100,
  363. &message_vibro_on,
  364. &message_delay_100,
  365. &message_vibro_off,
  366. NULL,
  367. };
  368. const NotificationSequence sequence_success = {
  369. &message_display_backlight_on,
  370. &message_green_255,
  371. &message_vibro_on,
  372. &message_note_c5,
  373. &message_delay_50,
  374. &message_vibro_off,
  375. &message_note_e5,
  376. &message_delay_50,
  377. &message_note_g5,
  378. &message_delay_50,
  379. &message_note_c6,
  380. &message_delay_50,
  381. &message_sound_off,
  382. NULL,
  383. };
  384. const NotificationSequence sequence_error = {
  385. &message_display_backlight_on,
  386. &message_red_255,
  387. &message_vibro_on,
  388. &message_note_c5,
  389. &message_delay_100,
  390. &message_vibro_off,
  391. &message_sound_off,
  392. &message_delay_100,
  393. &message_vibro_on,
  394. &message_note_c5,
  395. &message_delay_100,
  396. &message_vibro_off,
  397. &message_sound_off,
  398. NULL,
  399. };
  400. const NotificationSequence sequence_audiovisual_alert = {
  401. &message_force_speaker_volume_setting_1f,
  402. &message_force_vibro_setting_on,
  403. &message_force_display_brightness_setting_1f,
  404. &message_vibro_on,
  405. &message_display_backlight_on,
  406. &message_note_c7,
  407. &message_delay_250,
  408. &message_display_backlight_off,
  409. &message_note_c4,
  410. &message_delay_250,
  411. &message_display_backlight_on,
  412. &message_note_c7,
  413. &message_delay_250,
  414. &message_display_backlight_off,
  415. &message_note_c4,
  416. &message_delay_250,
  417. &message_display_backlight_on,
  418. &message_note_c7,
  419. &message_delay_250,
  420. &message_display_backlight_off,
  421. &message_note_c4,
  422. &message_delay_250,
  423. &message_sound_off,
  424. &message_vibro_off,
  425. NULL,
  426. };