From 2ab754d7f2bca81a1b1718d5cdac2c8d7fe96615 Mon Sep 17 00:00:00 2001 From: RogueMaster Date: Mon, 5 Dec 2022 22:39:08 -0500 Subject: [PATCH] fmt and upds --- applications/plugins/gpioreader/gpio_item.c | 2 +- .../gpioreader/scenes/gpio_scene_start.c | 2 +- .../plugins/gpioreader/views/gpio_reader.c | 42 +- .../plugins/gpioreader/views/gpio_reader.h | 5 +- applications/plugins/timelapse/zeitraffer.c | 545 +++++++++--------- .../usb_hid_autofire/usb_hid_autofire.c | 26 +- .../scenes/wifi_marauder_scene_start.c | 10 +- .../Sasquach_D1g1talRa1n_128x64/frame_0.png | Bin 3292 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_1.png | Bin 3306 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_10.png | Bin 3392 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_2.png | Bin 3295 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_3.png | Bin 3331 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_4.png | Bin 3315 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_5.png | Bin 3333 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_6.png | Bin 3341 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_7.png | Bin 3428 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_8.png | Bin 3348 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/frame_9.png | Bin 3354 -> 0 bytes .../Sasquach_D1g1talRa1n_128x64/meta.txt | 14 - 19 files changed, 327 insertions(+), 319 deletions(-) delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_0.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_1.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_10.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_2.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_3.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_4.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_5.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_6.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_7.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_8.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/frame_9.png delete mode 100644 assets/dolphin/external/Sasquach_D1g1talRa1n_128x64/meta.txt 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 5273ad9f49219d6e66a912e2f50031f81134936d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3292 zcmcInX;c&E8Xg3ZMbx4ot4xDv6+u<-h2P`w%T5jd1IDg_1^7)};u;_W0L{gUO9?n}QV#&;4hwwz<^Jpq zOav2Iz+8-jT11K@3M*i(ZKMQ7LQpx#LHPnPi!gGfmH-O4EP@}64Y4JTXt2OFT8er{ zd-x#HA&51XV7m@n8_C28M5r7FBSk{7j2X!yeB@=~YsG640sIJ&hp-6t3WuOS+Y@xe zq$p@*0TB@hqJVU33$hiJ%3!PkDG&uBL39!sB2p+!$cjm`1gC!l+?$lkV|qD#IqeI7 zViAJnatV_}iin7?h_JN4q@Pv^fVF`(B0VzV70kYZu3>ArH(K5MnIPPUy?_Uzj ze4->M$qSWXVNwKj4oAgu(-~)6WY$&^CKY~+l#7s1Au7UQGF%vW)|Dg}lVh@A>~G?j z-JXp`!gQ3PupE>6V3=^GP@Xd^AcbN9fnWFu#9S;wwo0LB+5mNee3_ zl3`^96UkJDC6NN*Y#a#U5orj*<5@#I8Xe`%ux*qI@RI`z|IDgT#l;!vR21Rx5Dt+- zN2o+ayAwGm4uyiWuon2(YqVm<-})0t>|WSu#^}Jgxwb)KwtE%NsR)hP=_x>6K6ber!x8j3~|n zi-0H^K@ro`Yr$V+_|syUvX2NxangTikSUl9z<(MLM3j`iQ2bMzkLxJqsCvjbHZIk(gt`77sp?3444tq-v~ z^V*<#MVD$xTAVq_fa7YmAyR*5MRP`_O_p?lC9UhtPq~?Ml!ZU`U&-SY#fZjrf7pq< z+wUZLuI;$#@YSn~J!U3@Z(lKO*H!WyzvneZnzg` zblcZYhisbbOv6n8pknw1v&NGgG}`k}@Az-$^3N!%06~J{M4Q?g*-de2sUcVOXwZQ+ zj@GidK->v-NqM<9HE%KO+@xRsOXTONYwiYbdaD#46kwH+7qjDjtS-}D9*|r8!*G*Q zP^zY1pl!85ky3unP5CG?I-;&?ALoCl$VOvM*Ee?TGV`=tG>>TPT<(%rwYEW56#$A@ zYCvxP79dwU@v^ReUVQ1?eMi16rHii_jy(&+I-XAqq=efvc`CbfdZdQ#2ww&PfYorN zC*QrDobi)VTK_BT(3um&TP2R&r%UD~gl2Gx&qto0x3pGeWYx0GTU!iwIGE=*yU|KH z1{AXmkHa@sr43MC+-uss_~!z>rm!{p8d^$DTmloT`DdH2#w7Ku@Xm~mC~OsPPkC|i zVZ5JS>8bK_8QLVv>pRnwo>=g@PKNCIw%MqMzPFkL`Nl5HZqdt~D|)wJbJ645YXdDZ ze%7YhJ+94p(8KTgBRxwO%rL(a+O1(~c$y}!JoQ9};YC3l=w0)hsYJZtf?zes)h zrsGV3ep+0bLx`xxNXK>FZELU1`k(29FUt;pnlySUDP5wWA7@Urc0#PdiPD-?YT*FT zBwxDE^-hztl=V&PFRRm6%X6!D`0?Iye|?kdzboD9=k%OD)fN^|eC>)**zS2!+fC~$ zd+%>lo^(IYJJ?&J1nzoiyb!D3J+Gp$OP_Vn-D=yRyF)4u`T2Dw+wb%QQ%!4QvM<(t=zIQmYGbw)YD#U&>Nl1%PpaDP)+twA?*XgQl}PW7!z;JPa#Br{ zK|x2uaaj(hF~R%jjdcB8U9_A5Ba7g`gvB1857>39zZf}HAD;sj z7G++oJe6z{leJb0(p@$o$u7r+{YFCBUq5)x8b08~b~0*|Zd0kV)cKHktL1@KFQp)^ zw!F$dO3<6&-7y)ww726LDop&NC@<--g;C}0f-ygG`0%^Qy11pkj7L9W+#86^A>7L) z!JL2%+>1VwQjJY1b3P2kwFdSUEQ-^-J`pqam9tB()8mbqJKqoW?BB8_p>~&H*$aos zLBn;uEnml1Ld2dR%Yc%KzDFL-lXFrMHNsMR^!9(aKcfAhwN5|LO#M>G4I2dGO!iEkMBA56-kFU~vJ=&iq}C9*Li ze!W2s*X^ut<%)&|iZ5L3TDabJ0HD2sq5nF$#PnQRyqt$=`n#VRTS zm8zf?S*#-XR5lT0IbpN7;I4?4ML`;DU9i510*zql3yDNBmdIZ~-kPWD(bkxV2I=>!rHPbM>oj!YT_J8|JqYYI@r4B)Ju zu!VlHaAK88#v~BbYPEx!;(#b32qXrBK_HR|WHKH_;FWPw6+ad)Ra#9la3G~n0n1b{ zBE{+$`2r+H#loRVKe`Yto1&E}C&GjVj1bG05l9Y1olBEIF880I(a}?ArOJIXYGp$2 zUlJ>MaWaSy04b3eg%EPz3`td1lg2>d)LvPPLh`{=P)L9zP&5itqQXd1retD7g($_y z-}o`LJmrmy$yPvo6{6rFh-5NR{*x?NGTDKMT^ zM&Xf3ObVSzqv45ECXx6N%0=q{A>_qj;ZRWyFbpz5 zfdCSSAS&L8N~Yk2AXSKG&=_<)iAERF=oEnyAEbZKh3@Ad!Wdonbo)P+Erk19Yt^@NpZdgCU}&{{}7F_OU84~5C( z3w7s#g%j!u0RnLo)9_zJ_|ts(NUIh@DCs{G$VZqG5vkOC1>_omX5)VrAmQ)CEBTxM zS^B3H$Ny3KL|BDlzBB?tn=1jQbB3U6Lm!hu`0spuSo>4UnuMc$P&b@v!05+R3x}jA zwE}I>?rW@S0bs^4FODluoKzN!NIrA_Y}>T;J*RI^J6PAe*P-9`$Fh*IZ@*mp$T+nA z&6QmTV8ro?{*9BfNC1zzcIkP;BkEw~0z!Vw&M!aiYLf}; z5_0~J3(1zl(x>em9rvXTBbpkz_Gyipg50mpHISve8o_i-FML@R-k27mdG_R&wwCb~ zX=ORTK3x&<+fhkF&B&6?FUG!3czvc+f8OYwbndVphEZ;L-Z;Xv@nF29`M|Y+a%ag; zjN-2p*pTAlMZJvGDL0(H@^F8?EI;}D+CopOHOsokR>|pIb16!FL~c=wv58J|zrL&d zRQ~T4&60;NFH`=-v8Cm|&ZRi-#kg&y*EPL+(9^RcDL6-4vNO0qk(Hj>u+MDv4_E;3 zk2w^-hN+#t#1MnTyhwH4Z=IkC>$f$($Q_7nxw6Wnt5&=21qDdyF*dddu`L_bXUnT( z*1y3xRlZ{#!4MMOBBrscP<<(^fmg)6+KG z9Po#vy)JiY9z&Hm$>%oO004Gt=hK>7m;-qiC6!^NS6Pm2qlHB!>Xk@wyLY|+?wMZ~ zdS7cuU*6r`*4VgXjs0=*P+8^SJp)%u+Vke^kKH4@4hVaz>mOcNZDjDnVB32;lFBUQ zW#~NX$|nlL^)+=SeqFb7m*cX-A9L6mdT<+5?~=Q2tw+|LHN``nT2fcM>+q$4h5N*} z9(DFC+`qmB@*Ug3-I$r2c*TQUmlV|+y6=8~Jw3ZGy@!`p*4Z17o}Sd#gLfDR;{sS1#GAt9&mrGl6Ck;kJ> ztt*?>dHcZjf@BNJVgNW3A2zt^{kge)bH?8~1=hbwUjCYOlieEUm+7iy4>36g2JdWv z#6HLD$_g`03g2z1UE@uCQ*rs2_4>e~pDAlKAnP%)yD&Qe`gwk~)w^uBjCF-pJ(>2_ zjAGwvQtWvw_KAI7=AgnXrTUx30r3`x8LH$|ey5hM=-X(OtZxvSclYJ3JNv&p8J{)d z=>45GK4F??Zz)&O%y=jD2W!;~6PGz1?RyOk#U=C-IZ54wH{a+sU@AOJ+-G;#9d^3z z+gi1Cn;ihyh3gGox?8a0!mOwV+w`aRKd8-Ha`Aix>$SPv&qfQ6Cci%DFr);~ zdh_R1K|EF2E;8GG=69t-qL8z$ue7fYhUUYw{HQq|f2U#(s2}0B z?d+!dz=r8#?ELau`F{kP!1Y3R7B_GOJWqO0=4SS=gJ3TmmHz?{Uh=PBkj|6mj~(gQ zaW20lZX>6E+r`IA+x6ehK)freX)^wx@azczUe#a?gx$6bD#bp z2jF#Wd#XJ3R%Mh9w%hDJ63$9l(?Rc;iaL6ImuZt723!c?s5PzGZmgNLw%cI5O<}sD0mTM(`cPZO;7OLC4Bd!yQ{h za^vHSq>|Q_pfcXI$ckM9S*!f+HjP+^q!)hAoe_EOH?uW!eR7GhGk>wW{;)joP1~F; zb{5Zlla+00LbJ{rdIgqzI-4|LY6*Ns>le&kd?R~YZPXoD*BfMPGa^gSSnQN^FL?0) zA2421I({iBV%}FHNm^fPnxTulH_?3TS^SR=E~o~EHq)$ 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 37d18fd5a21449d5b3768945fa005c0f9a098824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3392 zcmcIndpuNWA0I>rUD!%dr)hJmnK_0TX5=~}R5K|G744aG&M=rcV=mF4G*NB0w-i#? zO10%JO0+8_B&MX&Wm8Bh>VT}5GEL_FAc(>jOhe|c9+0EP!`Bp z%7if?8A31~N{$hV)w>7_U1P)$9D&LJ9vUhTITPO$UnK$p#F-dCa;MK}}P)dqn;jxWH% zBq%^9gCrOPsel86Y)iMdcXV6;P(dn40Uao|Ac;z4f^;U$4jB0nacdHU&s@P?G-3;% zITOQVGBJ}viH?pYN86DxNhrmZ!C+88DuqfV;Rup+gGdI&kVMkCqYP|R3QGiHnE(?3 zYDS2M$z{$&Tgmh!8AVYOPi@vH@j7GSr!fXN^iyr_9cu zYRj~9VA5zL(4Gl`U!fel4iHENeH$1<1pE!(0_AX+J|d|M62Yhs+nI=qA`1iv(~(Al zU_Kot(NNHlWJj|{NDK&sNC=H)M|EJ(sC+8*i!OXW8-wNQ@TvEIEn5VGagMPFF&U6O zjq1olNjwGulOTLXa^$JKWiU{jn}^!LwxevzBm(^8K#_lDRjWd9Mw-2&J%bMN@VMYN zK4Q-!K@1wMiqD|ZU_Qu0=ng~xfth?vB82cd5eT7Blp+>|5`jO|u&_u>!od(c=D5{A z-utjvz7mWth{PAzm<;fO1S0$_%~MxAt^oJcTOh^LyJ6%E`JquGqeubpr7)QgtUeFU zL|9!2C_)^0E%=KFf158~X`{nXob(?G_}25{068bEOc~&QR2C=xb6a|DCTdYkz84qj0Ij6J1e_%4cEWBlXIGCAF}{&^Ej zgACZgslt8J4XdXFrq=X8a}Fk@cm4GJ65ZJi&yh<-##Fr0K^hHVp&=vQ-tHuY8v| z+?JNsCBpkeKG>NOqP{bM$0EMbm^|NO3o~`~lmgw^3nTg4>x{4oWngq`>?pA6Q z=FkqTNulTTx+U})5eRvAs&}+%o}W+eSPJf$L7}?`KhMv#84o>oITx{R7!fy%4_XCw z_iP8-=e>(5Q=M1Ne^j#kij}C;wCb_oZqkt%tKK!w$Yy1gnk@XjKU-B65`1E_oeJF9 z+c&r*z46k`a}PYvyc1r?+AV4OsYvj?KTfIV*+)4-Z;O*;eW(nz5AN31fp>J|r#-r4 za3DD$@5$MH40gWuy{sA?^MK3Vs{J)(2U<z7%J$q ze-5k}hc*>yoYB7mx2J>kxutFytuJOf0*LCH=lOw&|@&Fym@Q2j(JP-4F=a*CvJNm_Q)!xH=#lUUhCwO z>K5oCJox5SX>aSo{=BVDiom3Y?OTuuyEZF>R@a`bcf6=4(5bb{B`>IWv0bw`{e5~P zzBor)#mLy`E1TwUqw`niP}c~rwPg^;>{YkJVKYK$2rHM{Uf+u-US*4}mShBLxXvV} z3Vqw}yr~r)d)%1V(`mu6$_>lC*CCiPH}s0d2B63E#Bzl=%p?3Q60HAG!%Z}Q$yu$& zHHWngf88(k7*{<38=j~onRYH&btTA73$a-~LH_RexpsqLRO`$stp11q$X^Or+)Gc5 z3eDB&QguPui)1$8d^bed`r*_g<*nT;gHJxQb<-o#k0kf5ZuS*YCu$lWf1X%wye5h} z@Lk$@UCfVwi<=HxJ90drx}rM z7dP}5f-K`5@@KXs3i-2=MDxn(O=Y_8u3wUbYa`z6dY~c}?!^kl*(Dh}5o|O-_lPQQ6Qm<7qe-)_4?unVV9nr{~0$F-t(by)}W=-)ZuA9Vq_(M_3jSun{$tLS)wDO=@uUWs_%ugG#7<$d*L`^=j zDQ(4qTQil<26O5dWd~&P+Y{Z&uZyYGI}?X5?vd8L)mnOYF?C%5VZiIo!YA@U9r@az zo~Igw?aGV+J4O1q_76?*J^bVrvuRJ9PG$tH&kbqY6ccXZWOHf@#Wr@<^t1L^#_`za Zi7!r`3?D!@y;T3l@$uxcb3J}g{s;R+YkdF! 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 df0ee805831216b68493a56356d9e12fe191a54d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3295 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 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 5a2badb349fa172697d0cf5635652bbbb98483d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3331 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 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 86b3020a007b0625635074643c32969efa46e56e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3315 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 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 a1146ced69aa49a729bc05b0170d872b828c5c56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3428 zcmcInX;c$e8y?(n1EmOpYlu`qnd~eHgvA6QNDw5-QbCf;1OiDWCXp?GXi+O71w;$7 zh{~p-Vv(S%MGhxpVJxpZ9r}`<|H{o*phb zQ|C+t06>T3%3O`!z-lj-h{p0{JOJ5aY}C#4r#U zjIqKIKt6#$!dO#rL@Nr##>N6eB9I7pf;FB<07)bo!HQ-{#*F^3s5KcRpsi-E7`25y z(Xk;4g_MTJM?^&6BFH#I7K|rSsZ>0HgeQ?e6amVkBnoaMD3LGv%D{x>e3?+H5F!$c zhLOudHY(^?ROuHN#L_WZiF`CnXu$B1Tq&N2BWPUu3S_hY9V!-&q2&taaMa4E-oGW5 zbE2d$el;vdHp=+0b2uzfEc$8;;*af>Zj^~WdkXRKum~2TFgYrWIA%&3f+!Gq2=Whp zj4h9OBc(B9Fjs-dI0z#8nkdh&EEp0AN5Gi*2qh2_Avf138r=XhxeAz$MYBc%H7O%= zNJJXhnr3MU5-2nR;R}?F)&ay-aK8Wt?L6QKbfRKPf25l&oHXxY{^9eAS2-y(f&$`h4OoYEt6F$xUFJ%iMe3WA>LNtLj zg+d{7tw0iwOaiTmC>syv@jwApz^8C|1c*fW;w8$qN+v{44p;P7R*fnMWh4?QFb^VF zfdWfD1>}<{mY@w4;(-(@Dv%0Ms65CLi-Gtw0U{G~(K-=|xxp}ADhbA7{-cJ0h!7bY zfzX%}|2ofNFg#_5Kqx{Nn1}-7!WBx;v-G{D;!y>tHdmn>O>flb8S;iVjE+P?%;&7!xghj1mqFxp)4SdBAyO&j`>6#ReZ>+{-QTGm%M+6Ohmu?CDjjJ0rB zf>O)S22FC_4+4Pp0v6MW6SBG74{@L6GHVmv*X;PTu)Cr6Z|^Q2azB$BZB#R(H4qog zdSj=bbxSIA!;b7eRLCna7f)H3*qq=$vV6`QN_k`96tC%QSB3$LrO)As!oYIgtesO$ zXKAI@ML0Ult9T{&bOkgWi9Hkbs^dylR@AGHR|>VZ+1gL)nQTzK_bt$z_Dt`f-Ks(( zzKP<|OW?ri%rlK;r_!&K_1su~xNOm-C8Y(60-2``7{(XL3r8?kdoV|sf|YW^kJ$#s z3DQGzz04b@t}$3~KXZ=1?!y{AhDS@b7yiQ9#GpEo9vkeQ9r`XdBlp;^C7XXSU0fwl zwWXvc@7QG3pl#lBVs{Cvz@SbK8+^Tc?Y92j3xn0Sr)6}!R-d%n;98(;|HK1><~_K$ zpq;+gA}OvBy6$uUWX;UH*}UAH+7n#Q%JyYtrECm zay~7$X~i3)I64BvDx=GccRNPd=H7H7x0VQ=I#k--%{Tn*m?D|GsqgN4{V=WSx$5YT zt=RL`icF$x*k$9BTUy3Bzdr6gXJXp=UK>8-UqY)XTlxKBAB(e$hwEFK+M;gu+&JGF zwOkc&=CWS>R_DSOpR`;u>Zdb(89yG;uh{(4JGhUhwSMhcnJVXrd0O%|ygFF4KB#7? z=#|JRDWaqBv25D8No6nO8`hXFbMElLJ=ngr;rB&Juk-RM@ORxe#dn|9bvyq4>TpV& zqD5r|0Maj}6G12H*Mn3X_eKESAe3 z4ZQ>yO(U@rGLr&!U$M#f^u6;?dcw`9--AR1s(-_MUcA-p!&|rswL=G?Ta(OozYKl8 z2Ie1&D;5F zuDCHcC2rT90@t)Dk&wlfo~1d&mqjrl9yT)#t`@!NAXGZB==s7Q3!)O1b~s<$bIhD_ z8vks+HUJE^-M?odpYI;ySaRRc&%JtKMdhxvWxnCDlTLNkfIBw!cO+Cfvy(ei>a@*0 zj~Wd3cexG?tf;c!G(R!ht|M~Hmgl&QUlSPRUlMuNZT#iZ-gLzaL$Ca6wK{6+{$PUE z@3?5~h9K#I%j1>IHCq;U_k?4Z>x_K5ecE*_i(}FPq@m$w3-S z*@91Xfp4ls)$(=fk8g>xnjcg<)Z2C6^vy0EK;QA2lsSESF5Bn#_5`j`v+oStTlU?Q zyqQaqX^EE{4iocLXS&K8En{Tw6Wosca-wu~O!Ct*8)s(1_%q%viL1AlrP%_&6Rh#} zDr#|7x<2)`iW6u&ZE!LFEjHa!>Tw_56`m@dJva2W>bv^4c}d9(3-*V5hdm8IGOo_M zUR8{obc2fauW8Snuaxa*Yn$wMw`C#vKKgURAhWh@;<9(9>Kax3Oq1~N@+0b^fB;v~ zPrmBTm%9KUr7FqIc9lex*P%zvJn_`+^6*IQKJ1K3^Fvkdde7p|na*sgzh+8o9+XZ8 zf^yWf+}=!|{iREvPFUBRv@>?P{S)#FRJo_WIwJx#6G@jn%7EVKl_RvB-m-G~;nV@;=7R(F z1icA)%iwGHzTp;!R!n-fUz@j~kJ7QV$f7tzhU-5%uBm9tz2gUa-o`#&d4(a4_Y}oa z-zCu7Bzx_N(j)u!ojQv4hgtbeOT|9*U0JVM2I63C58cAKCrEZCTVrav9NI-@=Jhs1 zDcEb3PI>rx*TX|usm8;XQg_}MCQ0TQ=ax#`vpE9Y3a`jdZ*g9-Ap+5aIn#Bct&%4(GP8c&>_ut O5X;$vd3<@$mOlY3W`IKg 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 1af0ce93b9468bf7eeae38dd149efbbb6de1dec7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3348 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 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 b8ff0e6fa32c32c0fa224c1c38cbd77708de0223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3354 zcmcIndpuNWA0LUtMpkw;)E*-?W$w3T7|Jb^NGL*b=FGulX3jJ-LN`)vWRq(btV>yq zTvlGUluC$Fi|8gPDP5FAN@9D@6yE*3pWS`?=RKd#Ip;ag^L@U*@9*;b<}{)}Ny{+6VANg;JiX=KF00uP zA|il%ga;GCMH1yMjFnBe1cX9hIlzO11Y!>E_1OzJK)~nVyyz|@7l|DlEO6Q;g*~>p zdP3VmAQm5IV+~k^vrz&OEC+#bkx(pShjVbBdD-Y#IZea?pCR%P4sM0gAmHud2G}7| z7+?@cc!)%z08AEv%%IVhEwcb9BnpX0ViL(DJcYt0G1zn}FnQrnYf^q7+uh!A(iZx~ z!3E3Z5;l<-78XVbqY@Bl5RuGcv4|uJkwU?v2)rypEC<8!VwuSlgFP&RqymXtfQSJl zBgjKSAjLrsqnL>e254OVG#z-SnMSb^N}!_xl+;O2G|~y!yFu%H40vtGO8zq z%%(EgbUL0yW0Oc86d=C zF_~067|5XF`7n)+2VoWoPh!$Q2;|Y=Wr4iUy3qah2o$OepK||~vgIQX$}t@wHVXo2 zbdXBNLkt!V4?{E%zl_DC<9XCT8cbu*co0mPVp}5>peF|u{+U&&ijOkVm@Ed9PlfQP zG6o)`(`fi*Folmt)$juuWF`obm*D_D#12HHA`q<;fd~wOi4t)T4)~86J4A>`T@XGR zbMl|(xpsDLQY26yL>KH4Ij|BGh|#lTs;qca0qUufK!&C_V)6`mz*{CqLILo(Fxeoa zJP#Zkq$~uOkDHtp{6&Pn&X+H=VZks;`VR&21tvoR|>?dn681)XW{R+?E-9;Oa)$>-)i_HAS)FOnXAGXfVf!yi5y?o%;%+r3a=rx-a ziL0_(9XrG4lw+6vAUr;zYM`2b*&yVGy`D{n0ne`Y`=q4N73uEZI{W(A=_i;e#&yj# zH2qIy*xJ0j|9kobwKDEJk%{zOKUYb8J<)gF68&9C81tEJg=nU{X*{87-82~dsdpCgUcBJoxUr-}bxW3_a`@Jq>Q*A53G6sF^OBnD;l$>dI~$x+32zM*j}-aN zp34tKFG}n>BT_#d>s?9@1$XqRcj4;y()5mBA@11K*6Pug@7A|r29AFq`s(>!?Y<9o zW4d#12H*czV&t8*25w2!1@ry2tBx8KQX_IMc#uCV*L)FBwViB8UV8N!DfIq>2U?_i z4cKISPoZH+wQcPu8QV^ul5~XS6?Di#lb7_GD5F*;k}<&+=i~VJj&iX zXKVC|;z!~d3NFUh*}o{5c~#B%&O{TGY(f=w>RmZ9vsuN?;4NrmE*}){e1B8)bgZHC z*TWOV*`u|9^=U?L!}X-nhdS5JKez?{7`ynQ!(lgj@LkvTgr&bbZd6>!_*TUr43K?? zGz6+%z&$N`ZGLj=`~kCD&(lQ9Z_;}wN#x%d>|QNMNi z*a#Ph{K4AXw6OE)j3^ydsz%qyaP`SGCmDc6N0*MVHO1$MG~N|nXYm@Y*zf7W*nqvb ztmisD}FKyVbHX7i{|Z z$>kQ=Th-d-!B){*7Y^lJSeqfFsK@YMzN6O{d~AwL7tY zlRuw)kGkgLx|U2wQjSq~?7qDCmp$jkq;7>h|N7SOl=q6-7mE7&1)dbnPHgPJl8S_K z<1=?U?Pg}BZ+jKHUv(tKBOaUG>T>B+auYT?BmbesQeApX-YVg)JjS5W#*SH>sNr)r zQh)Y-*I#g5_UjUt zbu?+mW6i5h16WFN?1Q|EhX=+#p6vdv|5?S#wARe4m^R0_$|G(?4M!He{Ke71EOJj= zCEG08BYSXtr}o_DA+wtbn!jyM@in8htlS|Z^WS7qy(bnuq#ZvO+&_<@qU+k>?G0?! zvFFa-H>kL@#M9R!-i*Sd?BiWuT{qD}dU<9eFdtChM4m7y>aHPk5j^DB>b9?PRH(FDr zF5dS^sO|A~ua>Hs3*8k}dn(E=ZB%INl@)yapoTk*W2JVqwG5dV?ZNd3%jLF2nQ&uT z`=O3TEp6dI+bP>s@#akIqbGhC-%ZYc+@@L9_%`OAH1Qdz-q*!_8?Js%o^`^Z`I+X> z7C4MHKM0yfXo%_K?qc)~F4Uona~AYJvbpg+*H88hm`%Og%gq{&v)(bFyHlJTtvy;% zX7%Qn9&KGlr)Tl(hvV}DB22Y3k62o`ws>V>Uh86Q&bslQa_op^?i*ujmN>N}23rDH zX>pRR6Ss#;m6OlMX>pVG+N_{N9%_#y4k;?furF3u#^v7Fm!kEoAf{->u@Bq?;G;<5 zTbrOT@ES?k6yX)LkeKUMxNz)F=L}qA_Jo)(&D@jqs;M+(zrSDSeA*vc&$)H1o`9lm z|KY7$E1qnVRSI&_cFnpiGTz>nW9%I9Q;JF6g76_K+-;QeN$cH${tqqEgE@yyF_;qL pYXPtFN0z$xzkhv=v_9#NS;K+@OQO1;UR3^j;X1h57uyCz{~LVqS*rj5 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