diff --git a/applications/plugins/gpioreader/gpio_item.c b/applications/plugins/gpioreader/gpio_item.c index f516bd258..4d7f056ba 100644 --- a/applications/plugins/gpioreader/gpio_item.c +++ b/applications/plugins/gpioreader/gpio_item.c @@ -26,7 +26,7 @@ void gpio_item_configure_pin(uint8_t index, GpioMode mode, GpioPull pull) { void gpio_item_configure_all_pins(GpioMode mode) { GpioPull pull = GpioPullNo; - if(mode == GpioModeInput){ + if(mode == GpioModeInput) { pull = GpioPullDown; } for(uint8_t i = 0; i < GPIO_ITEM_COUNT; i++) { diff --git a/applications/plugins/gpioreader/scenes/gpio_scene_start.c b/applications/plugins/gpioreader/scenes/gpio_scene_start.c index 71ddd6593..57cab91a5 100644 --- a/applications/plugins/gpioreader/scenes/gpio_scene_start.c +++ b/applications/plugins/gpioreader/scenes/gpio_scene_start.c @@ -56,7 +56,7 @@ void gpio_scene_start_on_enter(void* context) { variable_item_list_add(var_item_list, "USB-UART Bridge", 0, NULL, NULL); variable_item_list_add(var_item_list, "GPIO Manual Control", 0, NULL, NULL); - + variable_item_list_add(var_item_list, "GPIO Manual Read", 0, NULL, NULL); item = variable_item_list_add( diff --git a/applications/plugins/gpioreader/views/gpio_reader.c b/applications/plugins/gpioreader/views/gpio_reader.c index 95a425fda..4b3a18f8e 100644 --- a/applications/plugins/gpioreader/views/gpio_reader.c +++ b/applications/plugins/gpioreader/views/gpio_reader.c @@ -26,32 +26,25 @@ static void gpio_reader_draw_callback(Canvas* canvas, void* _model) { canvas_set_font(canvas, FontSecondary); elements_multiline_text_aligned( canvas, 64, 16, AlignCenter, AlignTop, "A7 A6 A4 B3 B2 C3 C1 C0"); - elements_multiline_text_aligned( - canvas, 64, 40, AlignCenter, AlignTop, "Pull Up"); + elements_multiline_text_aligned(canvas, 64, 40, AlignCenter, AlignTop, "Pull Up"); int charOffset = 10; for(uint8_t i = 0; i < GPIO_ITEM_COUNT; i++) { bool high = gpio_item_get_pin(i); if(high) { - elements_multiline_text_aligned( - canvas, charOffset, 25, AlignCenter, AlignTop, "1"); + elements_multiline_text_aligned(canvas, charOffset, 25, AlignCenter, AlignTop, "1"); } else { - elements_multiline_text_aligned( - canvas, charOffset, 25, AlignCenter, AlignTop, "0"); - } - - if(model->pullUp[i]) { - elements_multiline_text_aligned( - canvas, charOffset, 50, AlignCenter, AlignTop, "1"); - } else { - elements_multiline_text_aligned( - canvas, charOffset, 50, AlignCenter, AlignTop, "0"); - } - if(i == model->pin_idx) { - elements_multiline_text_aligned( - canvas, charOffset, 53, AlignCenter, AlignTop, "_"); + elements_multiline_text_aligned(canvas, charOffset, 25, AlignCenter, AlignTop, "0"); + } + + if(model->pullUp[i]) { + elements_multiline_text_aligned(canvas, charOffset, 50, AlignCenter, AlignTop, "1"); + } else { + elements_multiline_text_aligned(canvas, charOffset, 50, AlignCenter, AlignTop, "0"); + } + if(i == model->pin_idx) { + elements_multiline_text_aligned(canvas, charOffset, 53, AlignCenter, AlignTop, "_"); } - charOffset += 16; } //~ free(charOffset); @@ -93,7 +86,7 @@ static bool gpio_reader_process_right(GpioReader* gpio_reader) { gpio_reader->view, GpioReaderModel * model, { - if(model->pin_idx < GPIO_ITEM_COUNT-1) { + if(model->pin_idx < GPIO_ITEM_COUNT - 1) { model->pin_idx++; } }, @@ -109,11 +102,11 @@ static bool gpio_reader_process_ok(GpioReader* gpio_reader, InputEvent* event) { GpioReaderModel * model, { if(event->type == InputTypePress) { - if(model->pullUp[model->pin_idx]){ + if(model->pullUp[model->pin_idx]) { gpio_item_configure_pin(model->pin_idx, GpioModeInput, GpioPullDown); model->pullUp[model->pin_idx] = 0; consumed = true; - }else{ + } else { gpio_item_configure_pin(model->pin_idx, GpioModeInput, GpioPullUp); model->pullUp[model->pin_idx] = 1; consumed = true; @@ -149,7 +142,10 @@ View* gpio_reader_get_view(GpioReader* gpio_reader) { return gpio_reader->view; } -void gpio_reader_set_ok_callback(GpioReader* gpio_reader, GpioReaderOkCallback callback, void* context) { +void gpio_reader_set_ok_callback( + GpioReader* gpio_reader, + GpioReaderOkCallback callback, + void* context) { furi_assert(gpio_reader); furi_assert(callback); with_view_model( diff --git a/applications/plugins/gpioreader/views/gpio_reader.h b/applications/plugins/gpioreader/views/gpio_reader.h index d027d0138..a59618d57 100644 --- a/applications/plugins/gpioreader/views/gpio_reader.h +++ b/applications/plugins/gpioreader/views/gpio_reader.h @@ -11,4 +11,7 @@ void gpio_reader_free(GpioReader* gpio_reader); View* gpio_reader_get_view(GpioReader* gpio_reader); -void gpio_reader_set_ok_callback(GpioReader* gpio_reader, GpioReaderOkCallback callback, void* context); +void gpio_reader_set_ok_callback( + GpioReader* gpio_reader, + GpioReaderOkCallback callback, + void* context); diff --git a/applications/plugins/timelapse/zeitraffer.c b/applications/plugins/timelapse/zeitraffer.c index d8d304486..d2a74b25e 100644 --- a/applications/plugins/timelapse/zeitraffer.c +++ b/applications/plugins/timelapse/zeitraffer.c @@ -39,34 +39,33 @@ typedef struct { static void draw_callback(Canvas* canvas, void* ctx) { UNUSED(ctx); - char temp_str[36]; + char temp_str[36]; canvas_clear(canvas); canvas_set_font(canvas, FontPrimary); - switch (Count) { - case -1: - snprintf(temp_str,sizeof(temp_str),"Set: BULB %li sec",Time); - break; - case 0: - snprintf(temp_str,sizeof(temp_str),"Set: infinite, %li sec",Time); - break; - default: - snprintf(temp_str,sizeof(temp_str),"Set: %li frames, %li sec",Count,Time); - } - canvas_draw_str(canvas, 3, 15, temp_str); - snprintf(temp_str,sizeof(temp_str),"Left: %li frames, %li sec",WorkCount,WorkTime); - canvas_draw_str(canvas, 3, 35, temp_str); - - switch (Backlight) { - case 1: - canvas_draw_str(canvas, 3, 55, "Backlight: ON"); - break; - case 2: - canvas_draw_str(canvas, 3, 55, "Backlight: OFF"); - break; - default: - canvas_draw_str(canvas, 3, 55, "Backlight: AUTO"); - } + switch(Count) { + case -1: + snprintf(temp_str, sizeof(temp_str), "Set: BULB %li sec", Time); + break; + case 0: + snprintf(temp_str, sizeof(temp_str), "Set: infinite, %li sec", Time); + break; + default: + snprintf(temp_str, sizeof(temp_str), "Set: %li frames, %li sec", Count, Time); + } + canvas_draw_str(canvas, 3, 15, temp_str); + snprintf(temp_str, sizeof(temp_str), "Left: %li frames, %li sec", WorkCount, WorkTime); + canvas_draw_str(canvas, 3, 35, temp_str); + switch(Backlight) { + case 1: + canvas_draw_str(canvas, 3, 55, "Backlight: ON"); + break; + case 2: + canvas_draw_str(canvas, 3, 55, "Backlight: OFF"); + break; + default: + canvas_draw_str(canvas, 3, 55, "Backlight: AUTO"); + } } static void input_callback(InputEvent* input_event, void* ctx) { @@ -88,7 +87,7 @@ static void timer_callback(FuriMessageQueue* event_queue) { int32_t zeitraffer_app(void* p) { UNUSED(p); - + // Текущее событие типа кастомного типа ZeitrafferEvent ZeitrafferEvent event; // Очередь событий на 8 элементов размера ZeitrafferEvent @@ -106,9 +105,9 @@ int32_t zeitraffer_app(void* p) { Gui* gui = furi_record_open(RECORD_GUI); // Подключаем view port к GUI в полноэкранном режиме gui_add_view_port(gui, view_port, GuiLayerFullscreen); - - // Конфигурим пины - gpio_item_configure_all_pins(GpioModeOutputPushPull); + + // Конфигурим пины + gpio_item_configure_all_pins(GpioModeOutputPushPull); // Создаем периодический таймер с коллбэком, куда в качестве // контекста будет передаваться наша очередь событий @@ -118,260 +117,276 @@ int32_t zeitraffer_app(void* p) { // Включаем нотификации NotificationApp* notifications = furi_record_open(RECORD_NOTIFICATION); - - - Storage* storage = furi_record_open(RECORD_STORAGE); - - // Загружаем настройки - FlipperFormat* load = flipper_format_file_alloc(storage); - - do { - if(!flipper_format_file_open_existing(load, CONFIG_FILE_PATH)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_read_int32(load, "Time", &Time, 1)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_read_int32(load, "Count", &Count, 1)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_read_int32(load, "Backlight", &Backlight, 1)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_read_int32(load, "Delay", &Delay, 1)) {notification_message(notifications, &sequence_error); break;} - notification_message(notifications, &sequence_success); - - } while(0); - - flipper_format_free(load); - + Storage* storage = furi_record_open(RECORD_STORAGE); + + // Загружаем настройки + FlipperFormat* load = flipper_format_file_alloc(storage); + + do { + if(!flipper_format_file_open_existing(load, CONFIG_FILE_PATH)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_read_int32(load, "Time", &Time, 1)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_read_int32(load, "Count", &Count, 1)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_read_int32(load, "Backlight", &Backlight, 1)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_read_int32(load, "Delay", &Delay, 1)) { + notification_message(notifications, &sequence_error); + break; + } + notification_message(notifications, &sequence_success); + + } while(0); + + flipper_format_free(load); + // Бесконечный цикл обработки очереди событий while(1) { // Выбираем событие из очереди в переменную event (ждем бесконечно долго, если очередь пуста) // и проверяем, что у нас получилось это сделать furi_check(furi_message_queue_get(event_queue, &event, FuriWaitForever) == FuriStatusOk); - // Наше событие — это нажатие кнопки - if(event.type == EventTypeInput) { - if(event.input.type == InputTypeShort) { // Короткие нажатия - - if(event.input.key == InputKeyBack) { - if(furi_timer_is_running(timer)) { // Если таймер запущен - нефиг мацать кнопки! - notification_message(notifications, &sequence_error); - } - else { - WorkCount = Count; - WorkTime = 3; - if (Count == 0) { - InfiniteShot = true; - WorkCount = 1; - } - else - InfiniteShot = false; - - notification_message(notifications, &sequence_success); - } - } - if(event.input.key == InputKeyRight) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Count++; - notification_message(notifications, &sequence_click); - } - } - if(event.input.key == InputKeyLeft) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Count--; - notification_message(notifications, &sequence_click); - } - } - if(event.input.key == InputKeyUp) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Time++; - notification_message(notifications, &sequence_click); - } - } - if(event.input.key == InputKeyDown) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Time--; - notification_message(notifications, &sequence_click); - } - } - if(event.input.key == InputKeyOk) { - - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_click); - furi_timer_stop(timer); - } - else { - furi_timer_start(timer, 1000); - - if (WorkCount == 0) - WorkCount = Count; - - if (WorkTime == 0) - WorkTime = Delay; - - if (Count == 0) { - InfiniteShot = true; - WorkCount = 1; - } - else - InfiniteShot = false; - - if (Count == -1) { - gpio_item_set_pin(4, true); - gpio_item_set_pin(5, true); - Bulb = true; - WorkCount = 1; - WorkTime = Time; - } - else - Bulb = false; - - notification_message(notifications, &sequence_success); - } - } - } - if(event.input.type == InputTypeLong) { // Длинные нажатия - // Если нажата кнопка "назад", то выходим из цикла, а следовательно и из приложения - if(event.input.key == InputKeyBack) { - if(furi_timer_is_running(timer)) { // А если работает таймер - не выходим :D - notification_message(notifications, &sequence_error); - } - else { - notification_message(notifications, &sequence_click); - gpio_item_set_all_pins(false); - furi_timer_stop(timer); - notification_message(notifications, &sequence_display_backlight_enforce_auto); - break; - } - } - if(event.input.key == InputKeyOk) { - // Нам ваша подсветка и нахой не нужна! Или нужна? - Backlight++; - if (Backlight > 2) Backlight = 0; - } + // Наше событие — это нажатие кнопки + if(event.type == EventTypeInput) { + if(event.input.type == InputTypeShort) { // Короткие нажатия - } + if(event.input.key == InputKeyBack) { + if(furi_timer_is_running( + timer)) { // Если таймер запущен - нефиг мацать кнопки! + notification_message(notifications, &sequence_error); + } else { + WorkCount = Count; + WorkTime = 3; + if(Count == 0) { + InfiniteShot = true; + WorkCount = 1; + } else + InfiniteShot = false; - if(event.input.type == InputTypeRepeat) { // Зажатые кнопки - if(event.input.key == InputKeyRight) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Count = Count+10; - } - } - if(event.input.key == InputKeyLeft) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Count = Count-10; - } - } - if(event.input.key == InputKeyUp) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Time = Time+10; - } - } - if(event.input.key == InputKeyDown) { - if(furi_timer_is_running(timer)) { - notification_message(notifications, &sequence_error); - } - else { - Time = Time-10; - } - } - } + notification_message(notifications, &sequence_success); + } + } + if(event.input.key == InputKeyRight) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Count++; + notification_message(notifications, &sequence_click); + } + } + if(event.input.key == InputKeyLeft) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Count--; + notification_message(notifications, &sequence_click); + } + } + if(event.input.key == InputKeyUp) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Time++; + notification_message(notifications, &sequence_click); + } + } + if(event.input.key == InputKeyDown) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Time--; + notification_message(notifications, &sequence_click); + } + } + if(event.input.key == InputKeyOk) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_click); + furi_timer_stop(timer); + } else { + furi_timer_start(timer, 1000); + + if(WorkCount == 0) WorkCount = Count; + + if(WorkTime == 0) WorkTime = Delay; + + if(Count == 0) { + InfiniteShot = true; + WorkCount = 1; + } else + InfiniteShot = false; + + if(Count == -1) { + gpio_item_set_pin(4, true); + gpio_item_set_pin(5, true); + Bulb = true; + WorkCount = 1; + WorkTime = Time; + } else + Bulb = false; + + notification_message(notifications, &sequence_success); + } + } + } + if(event.input.type == InputTypeLong) { // Длинные нажатия + // Если нажата кнопка "назад", то выходим из цикла, а следовательно и из приложения + if(event.input.key == InputKeyBack) { + if(furi_timer_is_running(timer)) { // А если работает таймер - не выходим :D + notification_message(notifications, &sequence_error); + } else { + notification_message(notifications, &sequence_click); + gpio_item_set_all_pins(false); + furi_timer_stop(timer); + notification_message( + notifications, &sequence_display_backlight_enforce_auto); + break; + } + } + if(event.input.key == InputKeyOk) { + // Нам ваша подсветка и нахой не нужна! Или нужна? + Backlight++; + if(Backlight > 2) Backlight = 0; + } + } + + if(event.input.type == InputTypeRepeat) { // Зажатые кнопки + if(event.input.key == InputKeyRight) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Count = Count + 10; + } + } + if(event.input.key == InputKeyLeft) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Count = Count - 10; + } + } + if(event.input.key == InputKeyUp) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Time = Time + 10; + } + } + if(event.input.key == InputKeyDown) { + if(furi_timer_is_running(timer)) { + notification_message(notifications, &sequence_error); + } else { + Time = Time - 10; + } + } + } } - + // Наше событие — это сработавший таймер - else if(event.type == EventTypeTick) { - - WorkTime--; - - if( WorkTime < 1 ) { // фоткаем - notification_message(notifications, &sequence_blink_white_100); - if (Bulb) { - gpio_item_set_all_pins(false); WorkCount = 0; - } - else { - WorkCount--; - view_port_update(view_port); - notification_message(notifications, &sequence_click); - // Дрыгаем ногами - //gpio_item_set_all_pins(true); - gpio_item_set_pin(4, true); - gpio_item_set_pin(5, true); - furi_delay_ms(400); // На короткие нажатия фотик плохо реагирует - gpio_item_set_pin(4, false); - gpio_item_set_pin(5, false); - //gpio_item_set_all_pins(false); + else if(event.type == EventTypeTick) { + WorkTime--; - if (InfiniteShot) WorkCount++; - - WorkTime = Time; - view_port_update(view_port); - } - } - else { - // Отправляем нотификацию мигания синим светодиодом - notification_message(notifications, &sequence_blink_blue_100); - } - - if( WorkCount < 1 ) { // закончили - gpio_item_set_all_pins(false); - furi_timer_stop(timer); - notification_message(notifications, &sequence_audiovisual_alert); - WorkTime = 3; - WorkCount = 0; - } - - switch (Backlight) { // чо по подсветке? - case 1: - notification_message(notifications, &sequence_display_backlight_on); - break; - case 2: - notification_message(notifications, &sequence_display_backlight_off); - break; - default: - notification_message(notifications, &sequence_display_backlight_enforce_auto); - } - + if(WorkTime < 1) { // фоткаем + notification_message(notifications, &sequence_blink_white_100); + if(Bulb) { + gpio_item_set_all_pins(false); + WorkCount = 0; + } else { + WorkCount--; + view_port_update(view_port); + notification_message(notifications, &sequence_click); + // Дрыгаем ногами + //gpio_item_set_all_pins(true); + gpio_item_set_pin(4, true); + gpio_item_set_pin(5, true); + furi_delay_ms(400); // На короткие нажатия фотик плохо реагирует + gpio_item_set_pin(4, false); + gpio_item_set_pin(5, false); + //gpio_item_set_all_pins(false); + + if(InfiniteShot) WorkCount++; + + WorkTime = Time; + view_port_update(view_port); + } + } else { + // Отправляем нотификацию мигания синим светодиодом + notification_message(notifications, &sequence_blink_blue_100); + } + + if(WorkCount < 1) { // закончили + gpio_item_set_all_pins(false); + furi_timer_stop(timer); + notification_message(notifications, &sequence_audiovisual_alert); + WorkTime = 3; + WorkCount = 0; + } + + switch(Backlight) { // чо по подсветке? + case 1: + notification_message(notifications, &sequence_display_backlight_on); + break; + case 2: + notification_message(notifications, &sequence_display_backlight_off); + break; + default: + notification_message(notifications, &sequence_display_backlight_enforce_auto); + } } - if (Time < 1) Time = 1; // Не даём открутить таймер меньше единицы - if (Count < -1) Count = 0; // А тут даём, бо 0 кадров это бесконечная съёмка, а -1 кадров - BULB - } + if(Time < 1) Time = 1; // Не даём открутить таймер меньше единицы + if(Count < -1) + Count = 0; // А тут даём, бо 0 кадров это бесконечная съёмка, а -1 кадров - BULB + } + // Схороняем настройки + FlipperFormat* save = flipper_format_file_alloc(storage); - // Схороняем настройки - FlipperFormat* save = flipper_format_file_alloc(storage); + do { + if(!flipper_format_file_open_always(save, CONFIG_FILE_PATH)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_write_header_cstr(save, "Zeitraffer", 1)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_write_comment_cstr( + save, + "Zeitraffer app settings: № of frames, interval time, backlight type, Delay")) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_write_int32(save, "Time", &Time, 1)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_write_int32(save, "Count", &Count, 1)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_write_int32(save, "Backlight", &Backlight, 1)) { + notification_message(notifications, &sequence_error); + break; + } + if(!flipper_format_write_int32(save, "Delay", &Delay, 1)) { + notification_message(notifications, &sequence_error); + break; + } - do { + } while(0); - if(!flipper_format_file_open_always(save, CONFIG_FILE_PATH)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_write_header_cstr(save, "Zeitraffer", 1)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_write_comment_cstr(save, "Zeitraffer app settings: № of frames, interval time, backlight type, Delay")) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_write_int32(save, "Time", &Time, 1)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_write_int32(save, "Count", &Count, 1)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_write_int32(save, "Backlight", &Backlight, 1)) {notification_message(notifications, &sequence_error); break;} - if(!flipper_format_write_int32(save, "Delay", &Delay, 1)) {notification_message(notifications, &sequence_error); break;} - - } while(0); + flipper_format_free(save); - flipper_format_free(save); - - furi_record_close(RECORD_STORAGE); + furi_record_close(RECORD_STORAGE); // Очищаем таймер furi_timer_free(timer); diff --git a/applications/plugins/usb_hid_autofire/usb_hid_autofire.c b/applications/plugins/usb_hid_autofire/usb_hid_autofire.c index 9d0bb0c78..97c9d4759 100644 --- a/applications/plugins/usb_hid_autofire/usb_hid_autofire.c +++ b/applications/plugins/usb_hid_autofire/usb_hid_autofire.c @@ -85,19 +85,19 @@ int32_t usb_hid_autofire_app(void* p) { } switch(event.input.key) { - case InputKeyOk: - btn_left_autofire = !btn_left_autofire; - break; - case InputKeyLeft: - if(autofire_delay > 0) { - autofire_delay -= 10; - } - break; - case InputKeyRight: - autofire_delay += 10; - break; - default: - break; + case InputKeyOk: + btn_left_autofire = !btn_left_autofire; + break; + case InputKeyLeft: + if(autofire_delay > 0) { + autofire_delay -= 10; + } + break; + case InputKeyRight: + autofire_delay += 10; + break; + default: + break; } } } diff --git a/applications/plugins/wifi_marauder_companion/scenes/wifi_marauder_scene_start.c b/applications/plugins/wifi_marauder_companion/scenes/wifi_marauder_scene_start.c index 136f66f80..029614c5d 100644 --- a/applications/plugins/wifi_marauder_companion/scenes/wifi_marauder_scene_start.c +++ b/applications/plugins/wifi_marauder_companion/scenes/wifi_marauder_scene_start.c @@ -60,7 +60,15 @@ const WifiMarauderItem items[NUM_MENU_ITEMS] = { {"Sniff", {"beacon", "deauth", "esp", "pmkid", "probe", "pwn", "raw", "bt", "skim"}, 9, - {"sniffbeacon", "sniffdeauth", "sniffesp", "sniffpmkid", "sniffprobe", "sniffpwn", "sniffraw", "sniffbt", "sniffskim"}, + {"sniffbeacon", + "sniffdeauth", + "sniffesp", + "sniffpmkid", + "sniffprobe", + "sniffpwn", + "sniffraw", + "sniffbt", + "sniffskim"}, NO_ARGS, FOCUS_CONSOLE_END, SHOW_STOPSCAN_TIP}, diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_0.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_0.png deleted file mode 100644 index 5273ad9f4..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_0.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_1.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_1.png deleted file mode 100644 index 57649b861..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_1.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_10.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_10.png deleted file mode 100644 index 37d18fd5a..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_10.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_2.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_2.png deleted file mode 100644 index df0ee8058..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_2.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_3.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_3.png deleted file mode 100644 index 5a2badb34..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_3.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_4.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_4.png deleted file mode 100644 index 86b3020a0..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_4.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_5.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_5.png deleted file mode 100644 index 57124a3fd..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_5.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_6.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_6.png deleted file mode 100644 index 91926bb94..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_6.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_7.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_7.png deleted file mode 100644 index a1146ced6..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_7.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_8.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_8.png deleted file mode 100644 index 1af0ce93b..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_8.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_9.png b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_9.png deleted file mode 100644 index b8ff0e6fa..000000000 Binary files a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_9.png and /dev/null differ diff --git a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/meta.txt b/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/meta.txt deleted file mode 100644 index b8a080c97..000000000 --- a/assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/meta.txt +++ /dev/null @@ -1,14 +0,0 @@ -Filetype: Flipper Animation -Version: 1 - -Width: 128 -Height: 64 -Passive frames: 11 -Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 -Active cycles: 0 -Frame rate: 7 -Duration: 3600 -Active cooldown: 0 - -Bubble slots: 0