subbrute_scene_setup_extra.c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "../subbrute_i.h"
  2. #include "subbrute_scene.h"
  3. #define TAG "SubBruteSceneLoadFile"
  4. void setup_extra_widget_callback(GuiButtonType result, InputType type, void* context);
  5. static void setup_extra_widget_draw(void* context) {
  6. furi_assert(context);
  7. SubBruteState* instance = context;
  8. Widget* widget = instance->widget;
  9. widget_add_button_element(
  10. widget, GuiButtonTypeLeft, "-TD", setup_extra_widget_callback, instance);
  11. widget_add_button_element(
  12. widget, GuiButtonTypeRight, "TD+", setup_extra_widget_callback, instance);
  13. char str[20];
  14. snprintf(&str[0], 20, "%d", subbrute_worker_get_timeout(instance->worker));
  15. widget_add_string_element(
  16. instance->widget, 64, 15, AlignCenter, AlignCenter, FontPrimary, "Time Delay");
  17. widget_add_string_element(
  18. instance->widget, 64, 32, AlignCenter, AlignCenter, FontBigNumbers, &str[0]);
  19. }
  20. void setup_extra_widget_callback(GuiButtonType result, InputType type, void* context) {
  21. furi_assert(context);
  22. SubBruteState* instance = context;
  23. if((result == GuiButtonTypeLeft) && ((type == InputTypeShort) || (type == InputTypeRepeat))) {
  24. widget_reset(instance->widget);
  25. subbrute_worker_timeout_dec(instance->worker);
  26. setup_extra_widget_draw(instance);
  27. } else if(
  28. (result == GuiButtonTypeRight) &&
  29. ((type == InputTypeShort) || (type == InputTypeRepeat))) {
  30. widget_reset(instance->widget);
  31. subbrute_worker_timeout_inc(instance->worker);
  32. setup_extra_widget_draw(instance);
  33. }
  34. }
  35. void subbrute_scene_setup_extra_on_enter(void* context) {
  36. furi_assert(context);
  37. SubBruteState* instance = context;
  38. setup_extra_widget_draw(instance);
  39. view_dispatcher_switch_to_view(instance->view_dispatcher, SubBruteViewWidget);
  40. }
  41. void subbrute_scene_setup_extra_on_exit(void* context) {
  42. furi_assert(context);
  43. SubBruteState* instance = context;
  44. widget_reset(instance->widget);
  45. }
  46. bool subbrute_scene_setup_extra_on_event(void* context, SceneManagerEvent event) {
  47. UNUSED(context);
  48. UNUSED(event);
  49. return false;
  50. }