diff --git a/ReadMe.md b/ReadMe.md index b1d48951f..6a9177677 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -20,9 +20,13 @@ Thank you to all the supporters! ## [BUILDS NOW AVAILABLE WITH STOCK, RM SELECT, RM SELECT + 18PLUS, RM MINIMAL (default) and RM 18PLUS ANIMATION SETS](https://www.patreon.com/RogueMaster/membership) -- Last Synced/Checked [Unleashed/xMasterX](https://github.com/DarkFlippers/unleashed-firmware), changes in [changelog](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/CHANGELOG.md) and in [commits](https://github.com/DarkFlippers/unleashed-firmware/commits/dev): `2022-12-23 10:44 EST` -- Last Synced/Checked [OFW](https://github.com/flipperdevices/flipperzero-firmware), changes in [commits](https://github.com/flipperdevices/flipperzero-firmware/commits/dev): `2022-12-23 10:44 EST` +- Last Synced/Checked [Unleashed/xMasterX](https://github.com/DarkFlippers/unleashed-firmware), changes in [changelog](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/CHANGELOG.md) and in [commits](https://github.com/DarkFlippers/unleashed-firmware/commits/dev): `2022-12-24 01:42 EST` +- Last Synced/Checked [OFW](https://github.com/flipperdevices/flipperzero-firmware), changes in [commits](https://github.com/flipperdevices/flipperzero-firmware/commits/dev): `2022-12-24 01:42 EST` - Updated: [WiFi (Marauder) v3.0 (By 0xchocolate)](https://github.com/0xchocolate/flipperzero-firmware-with-wifi-marauder-companion) `Req: ESP32 WITH MARAUDER FLASHED` +- Updated: [BPM Tapper (By panki27)](https://github.com/panki27/bpm-tapper) +- Updated: [Metronome (By panki27)](https://github.com/panki27/Metronome) +- Updated: [Minesweeper (By panki27)](https://github.com/panki27/minesweeper) +- Updated: [NRF24 Scanner v2.1 (By vad7)](https://github.com/vad7/nrf24scan) ## Install from Release FLASH STOCK FIRST BEFORE UPDATING TO CUSTOM FIRMWARE! diff --git a/applications/plugins/bpmtapper/README.md b/applications/plugins/bpmtapper/README.md index 8e88863ee..224d2cb5b 100644 --- a/applications/plugins/bpmtapper/README.md +++ b/applications/plugins/bpmtapper/README.md @@ -9,6 +9,6 @@ Hit any button other than back repeatedly. Calculates based on the average of th ## Compiling ``` -./fbt firmware_bpm_tapper +./fbt fap_bpm_tapper ``` diff --git a/applications/plugins/bpmtapper/application.fam b/applications/plugins/bpmtapper/application.fam index 93c4179c5..b6ad315b6 100644 --- a/applications/plugins/bpmtapper/application.fam +++ b/applications/plugins/bpmtapper/application.fam @@ -7,7 +7,7 @@ App( requires=["gui"], stack_size=2 * 1024, fap_icon="bpm_10px.png", - fap_category="Music", fap_icon_assets="icons", - order=15, + fap_category="Music", + order=35, ) diff --git a/applications/plugins/bpmtapper/bpm.c b/applications/plugins/bpmtapper/bpm.c index cee83a6a4..323a898a4 100644 --- a/applications/plugins/bpmtapper/bpm.c +++ b/applications/plugins/bpmtapper/bpm.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include "BPM_Tapper_icons.h" @@ -126,7 +127,7 @@ static void input_callback(InputEvent* input_event, FuriMessageQueue* event_queu } static void render_callback(Canvas* const canvas, void* ctx) { - FuriString* tempStr; + string_t tempStr; const BPMTapper* bpm_state = acquire_mutex((ValueMutex*)ctx, 25); if(bpm_state == NULL) { @@ -136,32 +137,30 @@ static void render_callback(Canvas* const canvas, void* ctx) { //canvas_draw_frame(canvas, 0, 0, 128, 64); canvas_set_font(canvas, FontPrimary); - tempStr = furi_string_alloc(); + string_init(tempStr); - furi_string_printf(tempStr, "Taps: %d", bpm_state->taps); - canvas_draw_str_aligned(canvas, 5, 10, AlignLeft, AlignBottom, furi_string_get_cstr(tempStr)); - furi_string_reset(tempStr); + string_printf(tempStr, "Taps: %d", bpm_state->taps); + canvas_draw_str_aligned(canvas, 5, 10, AlignLeft, AlignBottom, string_get_cstr(tempStr)); + string_reset(tempStr); - furi_string_printf(tempStr, "Queue: %d", bpm_state->tap_queue->size); - canvas_draw_str_aligned(canvas, 70, 10, AlignLeft, AlignBottom, furi_string_get_cstr(tempStr)); - furi_string_reset(tempStr); + string_printf(tempStr, "Queue: %d", bpm_state->tap_queue->size); + canvas_draw_str_aligned(canvas, 70, 10, AlignLeft, AlignBottom, string_get_cstr(tempStr)); + string_reset(tempStr); - furi_string_printf(tempStr, "Interval: %ldms", bpm_state->interval); - canvas_draw_str_aligned(canvas, 5, 20, AlignLeft, AlignBottom, furi_string_get_cstr(tempStr)); - furi_string_reset(tempStr); + string_printf(tempStr, "Interval: %dms", bpm_state->interval); + canvas_draw_str_aligned(canvas, 5, 20, AlignLeft, AlignBottom, string_get_cstr(tempStr)); + string_reset(tempStr); - furi_string_printf(tempStr, "x2 %.2f /2 %.2f", bpm_state->bpm * 2, bpm_state->bpm / 2); - canvas_draw_str_aligned( - canvas, 64, 60, AlignCenter, AlignCenter, furi_string_get_cstr(tempStr)); - furi_string_reset(tempStr); + string_printf(tempStr, "x2 %.2f /2 %.2f", bpm_state->bpm * 2, bpm_state->bpm / 2); + canvas_draw_str_aligned(canvas, 64, 60, AlignCenter, AlignCenter, string_get_cstr(tempStr)); + string_reset(tempStr); - furi_string_printf(tempStr, "%.2f", bpm_state->bpm); + string_printf(tempStr, "%.2f", bpm_state->bpm); canvas_set_font(canvas, FontBigNumbers); - canvas_draw_str_aligned( - canvas, 64, 40, AlignCenter, AlignCenter, furi_string_get_cstr(tempStr)); - furi_string_reset(tempStr); + canvas_draw_str_aligned(canvas, 64, 40, AlignCenter, AlignCenter, string_get_cstr(tempStr)); + string_reset(tempStr); - furi_string_free(tempStr); + string_clear(tempStr); release_mutex((ValueMutex*)ctx, bpm_state); } diff --git a/applications/plugins/metronome/README.md b/applications/plugins/metronome/README.md index 4b6cd3122..79134c350 100644 --- a/applications/plugins/metronome/README.md +++ b/applications/plugins/metronome/README.md @@ -1,7 +1,5 @@ # Metronome -[Original link](https://github.com/panki27/Metronome) - A metronome for the [Flipper Zero](https://flipperzero.one/) device. Goes along perfectly with my [BPM tapper](https://github.com/panki27/bpm-tapper). ![screenshot](img/screenshot.png) @@ -19,5 +17,5 @@ A metronome for the [Flipper Zero](https://flipperzero.one/) device. Goes along ## Compiling ``` -./fbt firmware_metronome +./fbt fap_metronome ``` diff --git a/applications/plugins/metronome/application.fam b/applications/plugins/metronome/application.fam index 32588d06e..b40809638 100644 --- a/applications/plugins/metronome/application.fam +++ b/applications/plugins/metronome/application.fam @@ -8,8 +8,8 @@ App( "gui", ], fap_icon="metronome_icon.png", + fap_icon_assets="icons", fap_category="Music", - fap_icon_assets="images", stack_size=2 * 1024, order=20, ) diff --git a/applications/plugins/metronome/gui_extensions.c b/applications/plugins/metronome/gui_extensions.c index 458eb137b..a7661ec28 100644 --- a/applications/plugins/metronome/gui_extensions.c +++ b/applications/plugins/metronome/gui_extensions.c @@ -1,6 +1,6 @@ #include #include -#include +#include "Metronome_icons.h" //lib can only do bottom left/right void elements_button_top_left(Canvas* canvas, const char* str) { diff --git a/applications/plugins/metronome/images/ButtonUp_7x4.png b/applications/plugins/metronome/images/ButtonUp_7x4.png deleted file mode 100644 index 1be79328b..000000000 Binary files a/applications/plugins/metronome/images/ButtonUp_7x4.png and /dev/null differ diff --git a/applications/plugins/metronome/metronome.c b/applications/plugins/metronome/metronome.c index 5c1105574..4c374aa75 100644 --- a/applications/plugins/metronome/metronome.c +++ b/applications/plugins/metronome/metronome.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -57,26 +58,23 @@ static void render_callback(Canvas* const canvas, void* ctx) { return; } - FuriString* tempStr; - tempStr = furi_string_alloc(); + string_t tempStr; + string_init(tempStr); canvas_draw_frame(canvas, 0, 0, 128, 64); canvas_set_font(canvas, FontPrimary); // draw bars/beat - furi_string_printf( - tempStr, "%d/%d", metronome_state->beats_per_bar, metronome_state->note_length); - canvas_draw_str_aligned( - canvas, 64, 8, AlignCenter, AlignCenter, furi_string_get_cstr(tempStr)); - furi_string_reset(tempStr); + string_printf(tempStr, "%d/%d", metronome_state->beats_per_bar, metronome_state->note_length); + canvas_draw_str_aligned(canvas, 64, 8, AlignCenter, AlignCenter, string_get_cstr(tempStr)); + string_reset(tempStr); // draw BPM value - furi_string_printf(tempStr, "%.2f", metronome_state->bpm); + string_printf(tempStr, "%.2f", metronome_state->bpm); canvas_set_font(canvas, FontBigNumbers); - canvas_draw_str_aligned( - canvas, 64, 24, AlignCenter, AlignCenter, furi_string_get_cstr(tempStr)); - furi_string_reset(tempStr); + canvas_draw_str_aligned(canvas, 64, 24, AlignCenter, AlignCenter, string_get_cstr(tempStr)); + string_reset(tempStr); // draw volume indicator // always draw first waves @@ -128,7 +126,7 @@ static void render_callback(Canvas* const canvas, void* ctx) { canvas, 8, 36, 112, (float)metronome_state->current_beat / metronome_state->beats_per_bar); // cleanup - furi_string_free(tempStr); + string_clear(tempStr); release_mutex((ValueMutex*)ctx, metronome_state); } @@ -160,8 +158,6 @@ static void timer_callback(void* ctx) { break; case Silent: break; - default: - break; } } else { // unpronounced beat @@ -177,8 +173,6 @@ static void timer_callback(void* ctx) { break; case Silent: break; - default: - break; } }; @@ -203,8 +197,6 @@ static void timer_callback(void* ctx) { break; case Silent: break; - default: - break; } notification_message(metronome_state->notifications, &sequence_reset_rgb); @@ -295,6 +287,7 @@ int32_t metronome_app() { metronome_state->timer = furi_timer_alloc(timer_callback, FuriTimerTypePeriodic, &state_mutex); // Open GUI and register view_port + // Gui* gui = furi_record_open("gui"); gui_add_view_port(gui, view_port, GuiLayerFullscreen); @@ -333,7 +326,7 @@ int32_t metronome_app() { case InputKeyBack: processing = false; break; - default: + case InputKeyMAX: break; } } else if(event.input.type == InputTypeLong) { @@ -355,7 +348,7 @@ int32_t metronome_app() { case InputKeyBack: processing = false; break; - default: + case InputKeyMAX: break; } } else if(event.input.type == InputTypeRepeat) { @@ -376,7 +369,7 @@ int32_t metronome_app() { case InputKeyBack: processing = false; break; - default: + case InputKeyMAX: break; } } diff --git a/applications/plugins/minesweeper/README.md b/applications/plugins/minesweeper/README.md index 28176bd5e..eb1ebcad2 100644 --- a/applications/plugins/minesweeper/README.md +++ b/applications/plugins/minesweeper/README.md @@ -1,7 +1,5 @@ # Minesweeper -[Original Link](https://github.com/panki27/minesweeper) - This is a Minesweeper implementation for the Flipper Zero device. ![screenshot](img/screenshot.png) diff --git a/applications/plugins/minesweeper/minesweeper.c b/applications/plugins/minesweeper/minesweeper.c index fa9fdcc78..75fb32e56 100644 --- a/applications/plugins/minesweeper/minesweeper.c +++ b/applications/plugins/minesweeper/minesweeper.c @@ -217,10 +217,6 @@ static bool game_lost(Minesweeper* minesweeper_state) { dialog_message_set_icon(message, NULL, 0, 10); - // Set cursor to initial position - minesweeper_state->cursor_x = 0; - minesweeper_state->cursor_y = 0; - NotificationApp* notifications = furi_record_open(RECORD_NOTIFICATION); notification_message(notifications, &sequence_set_vibro_on); furi_record_close(RECORD_NOTIFICATION); @@ -476,7 +472,7 @@ int32_t minesweeper_app(void* p) { // Exit the plugin processing = false; break; - default: + case InputKeyMAX: break; } } else if(event.input.type == InputTypeLong) { @@ -495,7 +491,7 @@ int32_t minesweeper_app(void* p) { case InputKeyBack: processing = false; break; - default: + case InputKeyMAX: break; } } diff --git a/applications/plugins/nrf24scan/nrf24scan.c b/applications/plugins/nrf24scan/nrf24scan.c index da0093e8d..d142d1479 100644 --- a/applications/plugins/nrf24scan/nrf24scan.c +++ b/applications/plugins/nrf24scan/nrf24scan.c @@ -212,8 +212,11 @@ void write_to_log_file(Storage* storage, bool f_settings) { if(fl) { FURI_LOG_D(TAG, "Save to %s", furi_string_get_cstr(str)); if(save_to_new_log || f_settings) { - //if(what_to_do == 1) furi_string_printf(str, "%s\n", SettingsFld_Sniff); else furi_string_reset(str); - furi_string_printf( + if(what_to_do == 1) + furi_string_printf(str, "%s\n", SettingsFld_Sniff); + else + furi_string_reset(str); + furi_string_cat_printf( str, "%s %d\n%s %d\n%s %d\n", SettingsFld_Rate, @@ -231,9 +234,11 @@ void write_to_log_file(Storage* storage, bool f_settings) { NRF_CRC, SettingsFld_Payload, what_to_do == 1 ? NRF_Payload_sniff_min : NRF_Payload); - furi_string_cat_printf(str, "P0: "); - add_to_furi_str_hex_bytes(str, (char*)addrs.addr_P0, addrs.addr_len); - furi_string_cat(str, "\n"); + if(addrs.addr_count > 0) { + furi_string_cat_printf(str, "P0: "); + add_to_furi_str_hex_bytes(str, (char*)addrs.addr_P0, addrs.addr_len); + furi_string_cat(str, "\n"); + } if(addrs.addr_count > 1) { furi_string_cat_printf(str, "P1: "); add_to_furi_str_hex_bytes(str, (char*)addrs.addr_P1, addrs.addr_len); @@ -428,13 +433,14 @@ static uint8_t load_settings_file(Stream* file_stream) { if(err == 0 && a) adr->addr_count = a - '0' + 1; } else if(line_len >= 3 * 2) { // data if(!log_loaded) { + log_loaded = true; clear_log(); what_to_do = 0; - log_loaded = true; } if(log_arr_idx < MAX_LOG_RECORDS - 1) { - ConvertHexToArray( - line_ptr, APP->log_arr + log_arr_idx * LOG_REC_SIZE, LOG_REC_SIZE); + if(ConvertHexToArray( + line_ptr, APP->log_arr + log_arr_idx * LOG_REC_SIZE, LOG_REC_SIZE) > 0) + err = 0; log_arr_idx++; } } @@ -1013,7 +1019,7 @@ static void render_callback(Canvas* const canvas, void* ctx) { if(log_arr_idx && (*p & 0x80)) { // +RAW snprintf(screen_buf, sizeof(screen_buf), "Start read: "); add_to_str_hex_bytes(screen_buf, (char*)p + 2, (*(p + 1) & 0b11) + 2); - if(what_to_do == 3) strcpy(screen_buf + strlen(screen_buf) - 2, "* "); + if(what_to_do == 2) strcpy(screen_buf + strlen(screen_buf) - 2, "* "); } else snprintf( screen_buf, diff --git a/assets/resources/apps_data/nrf24scan/addresses.txt b/assets/resources/apps_data/nrf24scan/addresses.txt index 1934efbf4..e5bd3ed32 100644 --- a/assets/resources/apps_data/nrf24scan/addresses.txt +++ b/assets/resources/apps_data/nrf24scan/addresses.txt @@ -3,6 +3,7 @@ Ch: 2 ESB: 1 DPL: 0 CRC: 2 +Payload: 4 P0: C8C8C0 P1: C8C8C1 P2: C2