notification_messages.c 9.4 KB

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