camera_suite_scene_app_settings.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #include "../camera_suite.h"
  2. #include <lib/toolbox/value_index.h>
  3. const char* const haptic_text[2] = {
  4. "OFF",
  5. "ON",
  6. };
  7. const uint32_t haptic_value[2] = {
  8. CameraSuiteHapticOff,
  9. CameraSuiteHapticOn,
  10. };
  11. const char* const speaker_text[2] = {
  12. "OFF",
  13. "ON",
  14. };
  15. const uint32_t speaker_value[2] = {
  16. CameraSuiteSpeakerOff,
  17. CameraSuiteSpeakerOn,
  18. };
  19. const char* const led_text[2] = {
  20. "OFF",
  21. "ON",
  22. };
  23. const uint32_t led_value[2] = {
  24. CameraSuiteLedOff,
  25. CameraSuiteLedOn,
  26. };
  27. static void camera_suite_scene_app_settings_set_haptic(VariableItem* item) {
  28. CameraSuite* app = variable_item_get_context(item);
  29. uint8_t index = variable_item_get_current_value_index(item);
  30. variable_item_set_current_value_text(item, haptic_text[index]);
  31. app->haptic = haptic_value[index];
  32. }
  33. static void camera_suite_scene_app_settings_set_speaker(VariableItem* item) {
  34. CameraSuite* app = variable_item_get_context(item);
  35. uint8_t index = variable_item_get_current_value_index(item);
  36. variable_item_set_current_value_text(item, speaker_text[index]);
  37. app->speaker = speaker_value[index];
  38. }
  39. static void camera_suite_scene_app_settings_set_led(VariableItem* item) {
  40. CameraSuite* app = variable_item_get_context(item);
  41. uint8_t index = variable_item_get_current_value_index(item);
  42. variable_item_set_current_value_text(item, led_text[index]);
  43. app->led = led_value[index];
  44. }
  45. void camera_suite_scene_app_settings_submenu_callback(void* context, uint32_t index) {
  46. CameraSuite* app = context;
  47. view_dispatcher_send_custom_event(app->view_dispatcher, index);
  48. }
  49. void camera_suite_scene_app_settings_on_enter(void* context) {
  50. CameraSuite* app = context;
  51. VariableItem* item;
  52. uint8_t value_index;
  53. // Haptic Effects ON/OFF
  54. item = variable_item_list_add(
  55. app->variable_item_list,
  56. "Haptic Effects:",
  57. 2,
  58. camera_suite_scene_app_settings_set_haptic,
  59. app);
  60. value_index = value_index_uint32(app->haptic, haptic_value, 2);
  61. variable_item_set_current_value_index(item, value_index);
  62. variable_item_set_current_value_text(item, haptic_text[value_index]);
  63. // Sound Effects ON/OFF
  64. item = variable_item_list_add(
  65. app->variable_item_list,
  66. "Sound Effects:",
  67. 2,
  68. camera_suite_scene_app_settings_set_speaker,
  69. app);
  70. value_index = value_index_uint32(app->speaker, speaker_value, 2);
  71. variable_item_set_current_value_index(item, value_index);
  72. variable_item_set_current_value_text(item, speaker_text[value_index]);
  73. // LED Effects ON/OFF
  74. item = variable_item_list_add(
  75. app->variable_item_list, "LED Effects:", 2, camera_suite_scene_app_settings_set_led, app);
  76. value_index = value_index_uint32(app->led, led_value, 2);
  77. variable_item_set_current_value_index(item, value_index);
  78. variable_item_set_current_value_text(item, led_text[value_index]);
  79. view_dispatcher_switch_to_view(app->view_dispatcher, CameraSuiteViewIdAppSettings);
  80. }
  81. bool camera_suite_scene_app_settings_on_event(void* context, SceneManagerEvent event) {
  82. CameraSuite* app = context;
  83. UNUSED(app);
  84. bool consumed = false;
  85. if(event.type == SceneManagerEventTypeCustom) {
  86. }
  87. return consumed;
  88. }
  89. void camera_suite_scene_app_settings_on_exit(void* context) {
  90. CameraSuite* app = context;
  91. variable_item_list_set_selected_item(app->variable_item_list, 0);
  92. variable_item_list_reset(app->variable_item_list);
  93. }