notification_messages.c 8.8 KB

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