notification_messages.c 10 KB

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