From 9fa3375b0a4da44f3916fe27dd109c2e66eec5c3 Mon Sep 17 00:00:00 2001 From: hedger Date: Thu, 20 Jul 2023 01:07:18 +0400 Subject: [PATCH 01/10] faploader: always create app dir, even if it doesn't have subdirs --- lib/flipper_application/application_assets.c | 25 ++++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/flipper_application/application_assets.c b/lib/flipper_application/application_assets.c index 1262870d5..083c3ca19 100644 --- a/lib/flipper_application/application_assets.c +++ b/lib/flipper_application/application_assets.c @@ -157,14 +157,6 @@ static bool flipper_application_assets_process_dirs( FuriString* full_path = flipper_application_assets_alloc_app_full_path(app_name); do { - if(!storage_simply_mkdir(storage, APPS_ASSETS_PATH)) { - break; - } - - if(!storage_simply_mkdir(storage, furi_string_get_cstr(full_path))) { - break; - } - FuriString* dir_path = furi_string_alloc(); char* path = NULL; @@ -279,6 +271,8 @@ bool flipper_application_assets_load(File* file, const char* elf_path, size_t of FURI_LOG_D(TAG, "Loading assets for %s", furi_string_get_cstr(app_name)); + FuriString* full_path = flipper_application_assets_alloc_app_full_path(app_name); + do { if(!storage_file_seek(file, offset, true)) { break; @@ -319,13 +313,23 @@ bool flipper_application_assets_load(File* file, const char* elf_path, size_t of FURI_LOG_D(TAG, "Assets removed"); } + if(!storage_simply_mkdir(storage, APPS_ASSETS_PATH)) { + break; + } + + if(!storage_simply_mkdir(storage, furi_string_get_cstr(full_path))) { + break; + } + // process directories - if(!flipper_application_assets_process_dirs(storage, file, app_name, header.dirs_count)) { + if(header.dirs_count && + !flipper_application_assets_process_dirs(storage, file, app_name, header.dirs_count)) { break; } // process files - if(!flipper_application_assets_process_files(storage, file, app_name, header.files_count)) { + if(header.files_count && !flipper_application_assets_process_files( + storage, file, app_name, header.files_count)) { break; } @@ -353,6 +357,7 @@ bool flipper_application_assets_load(File* file, const char* elf_path, size_t of } furi_record_close(RECORD_STORAGE); + furi_string_free(full_path); furi_string_free(app_name); FURI_LOG_D(TAG, "Assets loading %s", result ? "success" : "failed"); From 92b280291db16f9e8ee9619c73395f755c95b44e Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 20 Jul 2023 00:13:49 +0300 Subject: [PATCH 02/10] barcode gen, embed files --- applications/external/barcode_gen/application.fam | 4 ++-- applications/external/barcode_gen/barcode_app.h | 11 ++++------- .../barcode_encoding_files}/codabar_encodings.txt | 0 .../barcode_encoding_files}/code128_encodings.txt | 0 .../barcode_encoding_files}/code128c_encodings.txt | 0 .../barcode_encoding_files}/code39_encodings.txt | 0 6 files changed, 6 insertions(+), 9 deletions(-) rename {assets/resources/apps_data/barcode_data => applications/external/barcode_gen/barcode_encoding_files}/codabar_encodings.txt (100%) rename {assets/resources/apps_data/barcode_data => applications/external/barcode_gen/barcode_encoding_files}/code128_encodings.txt (100%) rename {assets/resources/apps_data/barcode_data => applications/external/barcode_gen/barcode_encoding_files}/code128c_encodings.txt (100%) rename {assets/resources/apps_data/barcode_data => applications/external/barcode_gen/barcode_encoding_files}/code39_encodings.txt (100%) diff --git a/applications/external/barcode_gen/application.fam b/applications/external/barcode_gen/application.fam index 371e52c04..0564b785a 100644 --- a/applications/external/barcode_gen/application.fam +++ b/applications/external/barcode_gen/application.fam @@ -8,9 +8,9 @@ App( fap_category="Tools", fap_icon="images/barcode_10.png", fap_icon_assets="images", - fap_icon_assets_symbol="barcode_app", + fap_file_assets="barcode_encoding_files", fap_author="@Kingal1337", fap_weburl="https://github.com/Kingal1337/flipper-barcode-generator", - fap_version="1.0", + fap_version="1.1", fap_description="App allows you to display various barcodes on flipper screen", ) diff --git a/applications/external/barcode_gen/barcode_app.h b/applications/external/barcode_gen/barcode_app.h index 3150bff1f..bddc82235 100644 --- a/applications/external/barcode_gen/barcode_app.h +++ b/applications/external/barcode_gen/barcode_app.h @@ -23,20 +23,17 @@ #define BARCODE_HEIGHT 50 #define BARCODE_Y_START 3 -//the folder where the encodings are located -#define BARCODE_DATA_FILE_DIR_PATH EXT_PATH("apps_data/barcode_data") - //the folder where the codabar encoding table is located -#define CODABAR_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/codabar_encodings.txt" +#define CODABAR_DICT_FILE_PATH APP_ASSETS_PATH("codabar_encodings.txt") //the folder where the code 39 encoding table is located -#define CODE39_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code39_encodings.txt" +#define CODE39_DICT_FILE_PATH APP_ASSETS_PATH("code39_encodings.txt") //the folder where the code 128 encoding table is located -#define CODE128_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code128_encodings.txt" +#define CODE128_DICT_FILE_PATH APP_ASSETS_PATH("code128_encodings.txt") //the folder where the code 128 C encoding table is located -#define CODE128C_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code128c_encodings.txt" +#define CODE128C_DICT_FILE_PATH APP_ASSETS_PATH("code128c_encodings.txt") //the folder where the user stores their barcodes #define DEFAULT_USER_BARCODES EXT_PATH("apps_data/barcodes") diff --git a/assets/resources/apps_data/barcode_data/codabar_encodings.txt b/applications/external/barcode_gen/barcode_encoding_files/codabar_encodings.txt similarity index 100% rename from assets/resources/apps_data/barcode_data/codabar_encodings.txt rename to applications/external/barcode_gen/barcode_encoding_files/codabar_encodings.txt diff --git a/assets/resources/apps_data/barcode_data/code128_encodings.txt b/applications/external/barcode_gen/barcode_encoding_files/code128_encodings.txt similarity index 100% rename from assets/resources/apps_data/barcode_data/code128_encodings.txt rename to applications/external/barcode_gen/barcode_encoding_files/code128_encodings.txt diff --git a/assets/resources/apps_data/barcode_data/code128c_encodings.txt b/applications/external/barcode_gen/barcode_encoding_files/code128c_encodings.txt similarity index 100% rename from assets/resources/apps_data/barcode_data/code128c_encodings.txt rename to applications/external/barcode_gen/barcode_encoding_files/code128c_encodings.txt diff --git a/assets/resources/apps_data/barcode_data/code39_encodings.txt b/applications/external/barcode_gen/barcode_encoding_files/code39_encodings.txt similarity index 100% rename from assets/resources/apps_data/barcode_data/code39_encodings.txt rename to applications/external/barcode_gen/barcode_encoding_files/code39_encodings.txt From 0b29fb4ffaa07173e0046082994d0a5dd1110151 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 20 Jul 2023 00:22:29 +0300 Subject: [PATCH 03/10] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd5dadf38..502434035 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ * Apps: After merge fixes (by @gid9798 | PR #537) * Docs: Update docs for debug build and update vscode example, please remove `debug_pack` target if you had it in your workflow * Infrared: Updated universal remote assets (by @amec0e | PR #544 #546) +* Plugins: Barcode app - embed assets (encoding tables) in plugin * Plugins: NRF24 plugins -> Updates by @Sil333033 with some changes by @xMasterX -> furi_hal_speaker direct calls was removed and replaced with notification service to avoid bypassing of user set silent mode -> What was changed - NRF24 connection check added, app folders was moved (uses migrate, all done automatically), and mousejacker now uses badusb folder for badusb scripts * Plugins: Added Camera Suite GPIO application for the ESP32-CAM module. [(by CodyTolene)](https://github.com/CodyTolene/Flipper-Zero-Camera-Suite) (PR #541) * Plugins: Updated ESP32: WiFi Marauder companion plugin [(by 0xchocolate)](https://github.com/0xchocolate/flipperzero-wifi-marauder) @@ -22,6 +23,7 @@ * Plugins: Updated **Mifare Nested** [(by AloneLiberty)](https://github.com/AloneLiberty/FlipperNested) * Plugins: Updated Lightmeter [(by oleksiikutuzov)](https://github.com/oleksiikutuzov/flipperzero-lightmeter) * Plugins: Updated **Multi (RFID/iButton) Fuzzer** [(by @gid9798)](https://github.com/DarkFlippers/Multi_Fuzzer) +* OFW PR: faploader: always create app dir, even if it doesn't have subdirs (by @hedger) * OFW: Gauge initialization routine refactoring, new DataMemory layout, configuration update * OFW: fbt: `build` target for faps * OFW: IButton: on delete scene key name not fully display if so long From 0bb1e8902ecd3a0dfcd77bd9176c134c5441d079 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 20 Jul 2023 01:32:01 +0300 Subject: [PATCH 04/10] replace fm15k with am_q modulation --- CHANGELOG.md | 1 + applications/main/subghz/subghz.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 502434035..e2e524171 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - The settings will be reset after returning to the main menu ``` * SubGHz Remote: Merged SubGHz Remote and Remote maker in one app, **use back button to access remote maker** (by @gid9798 | PR #545) +* SubGHz: Replace FM15k with AM_Q in default modulations * SubGHz: Port latest OFW external radio driver, fix issues (now you can make drivers for other radio chips) (by @gid9798 | PR #539 #536 #535 #534) * GUI module: SubMenu fix vertical orientation (by @gid9798 | PR #543) * Apps: After merge fixes (by @gid9798 | PR #537) diff --git a/applications/main/subghz/subghz.c b/applications/main/subghz/subghz.c index 2af334db6..b44f9d635 100644 --- a/applications/main/subghz/subghz.c +++ b/applications/main/subghz/subghz.c @@ -58,9 +58,9 @@ static void subghz_load_custom_presets(SubGhzSetting* setting) { {"FM95", "02 0D 0B 06 08 32 07 04 14 00 13 02 12 04 11 83 10 67 15 24 18 18 19 16 1D 91 1C 00 1B 07 20 FB 22 10 21 56 00 00 C0 00 00 00 00 00 00 00"}, - // #2-FSK 200khz BW / 135kHz Filter/ 15.86Khz Deviation + Ramping - {"FM15k", - "02 0D 03 47 08 32 0B 06 15 32 14 00 13 00 12 00 11 32 10 A7 18 18 19 1D 1D 92 1C 00 1B 04 20 FB 22 17 21 B6 00 00 00 12 0E 34 60 C5 C1 C0"}, + // AM_Q + {"AM_Q", + "02 0D 03 07 08 32 0B 06 14 00 13 00 12 30 11 22 10 1C 18 18 19 18 1D 91 1C 00 1B 07 20 FB 22 11 21 B6 00 00 00 C0 00 00 00 00 00 00"}, // Pagers {"Pagers", From 676c59cd314c3ab9446d07d7a666b2d3a66348ca Mon Sep 17 00:00:00 2001 From: ALEEF02 Date: Wed, 19 Jul 2023 21:55:36 -0400 Subject: [PATCH 05/10] Add a Precise mode --- .../spectrum_analyzer/spectrum_analyzer.c | 99 ++++++++++++------- .../spectrum_analyzer/spectrum_analyzer.h | 53 +++++----- 2 files changed, 93 insertions(+), 59 deletions(-) diff --git a/applications/external/spectrum_analyzer/spectrum_analyzer.c b/applications/external/spectrum_analyzer/spectrum_analyzer.c index 26e41f0ce..07e855371 100644 --- a/applications/external/spectrum_analyzer/spectrum_analyzer.c +++ b/applications/external/spectrum_analyzer/spectrum_analyzer.c @@ -52,39 +52,55 @@ void spectrum_analyzer_draw_scale(Canvas* canvas, const SpectrumAnalyzerModel* m } // Draw scale tags - uint16_t tag_left; - uint16_t tag_center; - uint16_t tag_right; + uint32_t tag_left = 0; + uint32_t tag_center = 0; + uint32_t tag_right = 0; char temp_str[18]; tag_center = model->center_freq; switch(model->width) { case NARROW: - tag_left = model->center_freq - 2; - tag_right = model->center_freq + 2; + tag_left = model->center_freq - 2000; + tag_right = model->center_freq + 2000; break; case ULTRANARROW: - tag_left = model->center_freq - 1; - tag_right = model->center_freq + 1; + tag_left = model->center_freq - 1000; + tag_right = model->center_freq + 1000; + break; + case PRECISE: + tag_left = model->center_freq - 200; + tag_right = model->center_freq + 200; break; case ULTRAWIDE: - tag_left = model->center_freq - 40; - tag_right = model->center_freq + 40; + tag_left = model->center_freq - 40000; + tag_right = model->center_freq + 40000; break; default: - tag_left = model->center_freq - 10; - tag_right = model->center_freq + 10; + tag_left = model->center_freq - 10000; + tag_right = model->center_freq + 10000; } canvas_set_font(canvas, FontSecondary); - snprintf(temp_str, 18, "%u", tag_left); - canvas_draw_str_aligned(canvas, FREQ_START_X, 63, AlignCenter, AlignBottom, temp_str); - snprintf(temp_str, 18, "%u", tag_center); - canvas_draw_str_aligned(canvas, 128 / 2, 63, AlignCenter, AlignBottom, temp_str); - snprintf(temp_str, 18, "%u", tag_right); - canvas_draw_str_aligned( - canvas, FREQ_START_X + FREQ_LENGTH_X - 1, 63, AlignCenter, AlignBottom, temp_str); + switch(model->width) { + case PRECISE: + snprintf(temp_str, 18, "%.1f", ((double)tag_left)/1000); + canvas_draw_str_aligned(canvas, FREQ_START_X, 63, AlignCenter, AlignBottom, temp_str); + snprintf(temp_str, 18, "%.1f", ((double)tag_center)/1000); + canvas_draw_str_aligned(canvas, 128 / 2, 63, AlignCenter, AlignBottom, temp_str); + snprintf(temp_str, 18, "%.1f", ((double)tag_right)/1000); + canvas_draw_str_aligned( + canvas, FREQ_START_X + FREQ_LENGTH_X - 1, 63, AlignCenter, AlignBottom, temp_str); + break; + default: + snprintf(temp_str, 18, "%lu", tag_left/1000); + canvas_draw_str_aligned(canvas, FREQ_START_X, 63, AlignCenter, AlignBottom, temp_str); + snprintf(temp_str, 18, "%lu", tag_center/1000); + canvas_draw_str_aligned(canvas, 128 / 2, 63, AlignCenter, AlignBottom, temp_str); + snprintf(temp_str, 18, "%lu", tag_right/1000); + canvas_draw_str_aligned( + canvas, FREQ_START_X + FREQ_LENGTH_X - 1, 63, AlignCenter, AlignBottom, temp_str); + } } static void spectrum_analyzer_render_callback(Canvas* const canvas, void* ctx) { @@ -114,6 +130,9 @@ static void spectrum_analyzer_render_callback(Canvas* const canvas, void* ctx) { case ULTRANARROW: strncpy(temp_mode_str, "ULTRANARROW", 12); break; + case PRECISE: + strncpy(temp_mode_str, "PRECISE", 12); + break; case ULTRAWIDE: strncpy(temp_mode_str, "ULTRAWIDE", 12); break; @@ -206,12 +225,12 @@ void spectrum_analyzer_calculate_frequencies(SpectrumAnalyzerModel* model) { uint8_t new_band; uint32_t min_hz; uint32_t max_hz; - uint8_t margin; - uint8_t step; - uint16_t upper_limit; - uint16_t lower_limit; - uint16_t next_up; - uint16_t next_down; + uint32_t margin; + uint32_t step; + uint32_t upper_limit; + uint32_t lower_limit; + uint32_t next_up; + uint32_t next_down; uint8_t next_band_up; uint8_t next_band_down; @@ -226,19 +245,24 @@ void spectrum_analyzer_calculate_frequencies(SpectrumAnalyzerModel* model) { step = ULTRANARROW_STEP; model->spacing = ULTRANARROW_SPACING; break; + case PRECISE: + margin = PRECISE_MARGIN; + step = PRECISE_STEP; + model->spacing = PRECISE_SPACING; + break; case ULTRAWIDE: margin = ULTRAWIDE_MARGIN; step = ULTRAWIDE_STEP; model->spacing = ULTRAWIDE_SPACING; /* nearest 20 MHz step */ - model->center_freq = ((model->center_freq + 10) / 20) * 20; + model->center_freq = ((model->center_freq + 10000) / 20000) * 20000; break; default: margin = WIDE_MARGIN; step = WIDE_STEP; model->spacing = WIDE_SPACING; /* nearest 5 MHz step */ - model->center_freq = ((model->center_freq + 2) / 5) * 5; + model->center_freq = ((model->center_freq + 2000) / 5000) * 5000; break; } @@ -287,21 +311,21 @@ void spectrum_analyzer_calculate_frequencies(SpectrumAnalyzerModel* model) { /* doing everything in Hz from here on */ switch(model->band) { case BAND_400: - min_hz = MIN_400 * 1000000; - max_hz = MAX_400 * 1000000; + min_hz = MIN_400 * 1000; + max_hz = MAX_400 * 1000; break; case BAND_300: - min_hz = MIN_300 * 1000000; - max_hz = MAX_300 * 1000000; + min_hz = MIN_300 * 1000; + max_hz = MAX_300 * 1000; break; default: - min_hz = MIN_900 * 1000000; - max_hz = MAX_900 * 1000000; + min_hz = MIN_900 * 1000; + max_hz = MAX_900 * 1000; break; } model->channel0_frequency = - model->center_freq * 1000000 - (model->spacing * ((NUM_CHANNELS / 2) + 1)); + model->center_freq * 1000 - (model->spacing * ((NUM_CHANNELS / 2) + 1)); // /* calibrate upper channels */ // hz = model->center_freq * 1000000; @@ -327,7 +351,7 @@ void spectrum_analyzer_calculate_frequencies(SpectrumAnalyzerModel* model) { model->max_rssi_dec = 0; FURI_LOG_D("Spectrum", "setup_frequencies - max_hz: %lu - min_hz: %lu", max_hz, min_hz); - FURI_LOG_D("Spectrum", "center_freq: %u", model->center_freq); + FURI_LOG_D("Spectrum", "center_freq: %lu", model->center_freq); FURI_LOG_D( "Spectrum", "ch[0]: %lu - ch[%u]: %lu", @@ -464,7 +488,7 @@ int32_t spectrum_analyzer_app(void* p) { break; case InputKeyRight: model->center_freq += hstep; - FURI_LOG_D("Spectrum", "center_freq: %u", model->center_freq); + FURI_LOG_D("Spectrum", "center_freq: %lu", model->center_freq); spectrum_analyzer_calculate_frequencies(model); spectrum_analyzer_worker_set_frequencies( spectrum_analyzer->worker, model->channel0_frequency, model->spacing, model->width); @@ -474,7 +498,7 @@ int32_t spectrum_analyzer_app(void* p) { spectrum_analyzer_calculate_frequencies(model); spectrum_analyzer_worker_set_frequencies( spectrum_analyzer->worker, model->channel0_frequency, model->spacing, model->width); - FURI_LOG_D("Spectrum", "center_freq: %u", model->center_freq); + FURI_LOG_D("Spectrum", "center_freq: %lu", model->center_freq); break; case InputKeyOk: { switch(model->width) { @@ -485,6 +509,9 @@ int32_t spectrum_analyzer_app(void* p) { model->width = ULTRANARROW; break; case ULTRANARROW: + model->width = PRECISE; + break; + case PRECISE: model->width = ULTRAWIDE; break; case ULTRAWIDE: diff --git a/applications/external/spectrum_analyzer/spectrum_analyzer.h b/applications/external/spectrum_analyzer/spectrum_analyzer.h index b5cd6d8fe..c4bb4c33c 100644 --- a/applications/external/spectrum_analyzer/spectrum_analyzer.h +++ b/applications/external/spectrum_analyzer/spectrum_analyzer.h @@ -15,17 +15,20 @@ * wide mode (default): 20 MHz on screen, 196 kHz per channel * narrow mode: 4 MHz on screen, 39 kHz per channel * ultranarrow mode: 2 MHz on screen, 19 kHz per channel + * pricse mode: 400 KHz on screen, 3.92 kHz per channel */ #define WIDE 0 #define NARROW 1 #define ULTRAWIDE 2 #define ULTRANARROW 3 +#define PRECISE 4 /* channel spacing in Hz */ #define WIDE_SPACING 196078 #define NARROW_SPACING 39215 #define ULTRAWIDE_SPACING 784313 #define ULTRANARROW_SPACING 19607 +#define PRECISE_SPACING 3921 /* vertical scrolling */ #define VERTICAL_SHORT_STEP 16 @@ -33,36 +36,40 @@ #define MIN_VSCROLL 0 #define DEFAULT_VSCROLL 48 -/* frequencies in MHz */ -#define DEFAULT_FREQ 440 -#define WIDE_STEP 5 -#define NARROW_STEP 1 -#define ULTRAWIDE_STEP 20 -#define ULTRANARROW_STEP 1 -#define WIDE_MARGIN 13 -#define NARROW_MARGIN 3 -#define ULTRAWIDE_MARGIN 42 -#define ULTRANARROW_MARGIN 1 +/* frequencies in KHz */ +#define DEFAULT_FREQ 440000 +#define WIDE_STEP 5000 +#define NARROW_STEP 1000 +#define ULTRAWIDE_STEP 20000 +#define ULTRANARROW_STEP 1000 +#define PRECISE_STEP 100 + +/* margin in KHz */ +#define WIDE_MARGIN 13000 +#define NARROW_MARGIN 3000 +#define ULTRAWIDE_MARGIN 42000 +#define ULTRANARROW_MARGIN 1000 +#define PRECISE_MARGIN 200 /* frequency bands supported by device */ #define BAND_300 0 #define BAND_400 1 #define BAND_900 2 -/* band limits in MHz */ -#define MIN_300 281 -#define CEN_300 315 -#define MAX_300 361 -#define MIN_400 378 -#define CEN_400 435 -#define MAX_400 481 -#define MIN_900 749 -#define CEN_900 855 -#define MAX_900 962 +/* band limits in KHz */ +#define MIN_300 281000 +#define CEN_300 315000 +#define MAX_300 361000 +#define MIN_400 378000 +#define CEN_400 435000 +#define MAX_400 481000 +#define MIN_900 749000 +#define CEN_900 855000 +#define MAX_900 962000 -/* band transition points in MHz */ -#define EDGE_400 369 -#define EDGE_900 615 +/* band transition points in KHz */ +#define EDGE_400 369000 +#define EDGE_900 615000 /* VCO transition points in Hz */ #define MID_300 318000000 From 99d81640659816b98408d8072c9a5f53993ffcd1 Mon Sep 17 00:00:00 2001 From: gid9798 <30450294+gid9798@users.noreply.github.com> Date: Thu, 20 Jul 2023 20:47:29 +0300 Subject: [PATCH 06/10] HID app: KB assets --- .../external/hid_app/assets/KB_key_Alt_17x10.png | Bin 0 -> 162 bytes .../external/hid_app/assets/KB_key_Cmd_17x10.png | Bin 0 -> 163 bytes .../external/hid_app/assets/KB_key_Ctl_17x10.png | Bin 0 -> 161 bytes .../external/hid_app/assets/KB_key_Del_17x10.png | Bin 0 -> 165 bytes .../external/hid_app/assets/KB_key_Esc_17x10.png | Bin 0 -> 164 bytes .../external/hid_app/assets/KB_key_Tab_17x10.png | Bin 0 -> 163 bytes .../external/hid_app/views/hid_keyboard.c | 12 ++++++------ 7 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 applications/external/hid_app/assets/KB_key_Alt_17x10.png create mode 100644 applications/external/hid_app/assets/KB_key_Cmd_17x10.png create mode 100644 applications/external/hid_app/assets/KB_key_Ctl_17x10.png create mode 100644 applications/external/hid_app/assets/KB_key_Del_17x10.png create mode 100644 applications/external/hid_app/assets/KB_key_Esc_17x10.png create mode 100644 applications/external/hid_app/assets/KB_key_Tab_17x10.png diff --git a/applications/external/hid_app/assets/KB_key_Alt_17x10.png b/applications/external/hid_app/assets/KB_key_Alt_17x10.png new file mode 100644 index 0000000000000000000000000000000000000000..26c4f73152d43767d528a0ee9275f10bd586fb89 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^fNn{1`*#dk*T!Hle|NocXoPQU{;wb|fr6@@E{-7*my>_| z-{1IfZz=QPue}a?b~h%P3z$2Nn{1`*#dk*T!Hle|NocXoPQU{;wb|fr4tDE{-7*my>_| z-{1J~&wjSHw+?%bFKSH8mte_feY9DSH{s|1|I!Q-gM^QtySldxsDr`N)z4*}Q$iB} DVGlC} literal 0 HcmV?d00001 diff --git a/applications/external/hid_app/assets/KB_key_Ctl_17x10.png b/applications/external/hid_app/assets/KB_key_Ctl_17x10.png new file mode 100644 index 0000000000000000000000000000000000000000..01f3157c98e45f418180364635a40bf014e8efba GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^fNn{1`*#dk*T!Hle|NocXoPQU{;wb|fr2WYE{-7*my>_| z-{1JKB9-~D-fgzFzgs!>NO$y~&tN$H|NngkhN=_7wb$6Q1%T=qJYD@<);T3K0RYu< BFsc9m literal 0 HcmV?d00001 diff --git a/applications/external/hid_app/assets/KB_key_Del_17x10.png b/applications/external/hid_app/assets/KB_key_Del_17x10.png new file mode 100644 index 0000000000000000000000000000000000000000..62bad18b5456eac36a6688692705799776f5a79f GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^fNn{1`*#dk*T!Hle|NocXoPQU{;wb|fr1*IE{-7*my>_| z-`}|KZ#whgcl#Z5ZXek2T36sRli`H>=Poi#`~QDGBSYUW;r+ep?vg+~44$rjF6*2U FngHj)G%)}G literal 0 HcmV?d00001 diff --git a/applications/external/hid_app/assets/KB_key_Esc_17x10.png b/applications/external/hid_app/assets/KB_key_Esc_17x10.png new file mode 100644 index 0000000000000000000000000000000000000000..7a9fdda225b3c1bcaee0a54a5f6714d01f0f7827 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^fNn{1`*#dk*T!Hle|NocXoPQU{;wb|fr9FuE{-7*my>_| z-`}`Uvg3R6h7@M!+vWNn{1`*#dk*T!Hle|NocXoPQU{;wb|fr4tDE{-7*my>_| z-`}|KXEpQTYK1!W8wWmolM?Y~{=_VO;M4#A=0IbGMHhM9^2!0~VDNPHb6Mw<&;$TC CXfa0s literal 0 HcmV?d00001 diff --git a/applications/external/hid_app/views/hid_keyboard.c b/applications/external/hid_app/views/hid_keyboard.c index 9d29ccf5e..1ce0285b2 100644 --- a/applications/external/hid_app/views/hid_keyboard.c +++ b/applications/external/hid_app/views/hid_keyboard.c @@ -140,17 +140,17 @@ const HidKeyboardKey hid_keyboard_keyset[ROW_COUNT][COLUMN_COUNT] = { {.width = 1, .icon = &I_ButtonRight_4x7, .value = HID_KEYBOARD_RIGHT_ARROW}, }, { - {.width = 2, .icon = NULL, .key = "Ctl", .value = HID_KEYBOARD_L_CTRL}, + {.width = 2, .icon = &I_KB_key_Ctl_17x10, .value = HID_KEYBOARD_L_CTRL}, {.width = 0, .icon = NULL, .value = HID_KEYBOARD_L_CTRL}, - {.width = 2, .icon = NULL, .key = "Alt", .value = HID_KEYBOARD_L_ALT}, + {.width = 2, .icon = &I_KB_key_Alt_17x10, .value = HID_KEYBOARD_L_ALT}, {.width = 0, .icon = NULL, .value = HID_KEYBOARD_L_ALT}, - {.width = 2, .icon = NULL, .key = "Cmd", .value = HID_KEYBOARD_L_GUI}, + {.width = 2, .icon = &I_KB_key_Cmd_17x10, .value = HID_KEYBOARD_L_GUI}, {.width = 0, .icon = NULL, .value = HID_KEYBOARD_L_GUI}, - {.width = 2, .icon = NULL, .key = "Tab", .value = HID_KEYBOARD_TAB}, + {.width = 2, .icon = &I_KB_key_Tab_17x10, .value = HID_KEYBOARD_TAB}, {.width = 0, .icon = NULL, .value = HID_KEYBOARD_TAB}, - {.width = 2, .icon = NULL, .key = "Esc", .value = HID_KEYBOARD_ESCAPE}, + {.width = 2, .icon = &I_KB_key_Esc_17x10, .value = HID_KEYBOARD_ESCAPE}, {.width = 0, .icon = NULL, .value = HID_KEYBOARD_ESCAPE}, - {.width = 2, .icon = NULL, .key = "Del", .value = HID_KEYBOARD_DELETE_FORWARD}, + {.width = 2, .icon = &I_KB_key_Del_17x10, .value = HID_KEYBOARD_DELETE_FORWARD}, {.width = 0, .icon = NULL, .value = HID_KEYBOARD_DELETE_FORWARD}, }, }; From 2ab75481756da915218a867d2735afb4acc9b980 Mon Sep 17 00:00:00 2001 From: gid9798 <30450294+gid9798@users.noreply.github.com> Date: Thu, 20 Jul 2023 20:54:32 +0300 Subject: [PATCH 07/10] HID app: rename assets --- .../assets/{OutCircles.png => OutCircles_70x51.png} | Bin .../hid_app/assets/{S_DOWN.png => S_DOWN_31x15.png} | Bin .../hid_app/assets/{S_LEFT.png => S_LEFT_15x31.png} | Bin .../assets/{S_RIGHT.png => S_RIGHT_15x31.png} | Bin .../hid_app/assets/{S_UP.png => S_UP_31x15.png} | Bin applications/external/hid_app/views/hid_media.c | 10 +++++----- applications/external/hid_app/views/hid_mouse.c | 10 +++++----- applications/external/hid_app/views/hid_tikshorts.c | 10 +++++----- 8 files changed, 15 insertions(+), 15 deletions(-) rename applications/external/hid_app/assets/{OutCircles.png => OutCircles_70x51.png} (100%) rename applications/external/hid_app/assets/{S_DOWN.png => S_DOWN_31x15.png} (100%) rename applications/external/hid_app/assets/{S_LEFT.png => S_LEFT_15x31.png} (100%) rename applications/external/hid_app/assets/{S_RIGHT.png => S_RIGHT_15x31.png} (100%) rename applications/external/hid_app/assets/{S_UP.png => S_UP_31x15.png} (100%) diff --git a/applications/external/hid_app/assets/OutCircles.png b/applications/external/hid_app/assets/OutCircles_70x51.png similarity index 100% rename from applications/external/hid_app/assets/OutCircles.png rename to applications/external/hid_app/assets/OutCircles_70x51.png diff --git a/applications/external/hid_app/assets/S_DOWN.png b/applications/external/hid_app/assets/S_DOWN_31x15.png similarity index 100% rename from applications/external/hid_app/assets/S_DOWN.png rename to applications/external/hid_app/assets/S_DOWN_31x15.png diff --git a/applications/external/hid_app/assets/S_LEFT.png b/applications/external/hid_app/assets/S_LEFT_15x31.png similarity index 100% rename from applications/external/hid_app/assets/S_LEFT.png rename to applications/external/hid_app/assets/S_LEFT_15x31.png diff --git a/applications/external/hid_app/assets/S_RIGHT.png b/applications/external/hid_app/assets/S_RIGHT_15x31.png similarity index 100% rename from applications/external/hid_app/assets/S_RIGHT.png rename to applications/external/hid_app/assets/S_RIGHT_15x31.png diff --git a/applications/external/hid_app/assets/S_UP.png b/applications/external/hid_app/assets/S_UP_31x15.png similarity index 100% rename from applications/external/hid_app/assets/S_UP.png rename to applications/external/hid_app/assets/S_UP_31x15.png diff --git a/applications/external/hid_app/views/hid_media.c b/applications/external/hid_app/views/hid_media.c index 0028ac596..8df9716c5 100644 --- a/applications/external/hid_app/views/hid_media.c +++ b/applications/external/hid_app/views/hid_media.c @@ -56,12 +56,12 @@ static void hid_media_draw_callback(Canvas* canvas, void* context) { canvas_set_font(canvas, FontSecondary); // Keypad circles - canvas_draw_icon(canvas, 58, 3, &I_OutCircles); + canvas_draw_icon(canvas, 58, 3, &I_OutCircles_70x51); // Up if(model->up_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 68, 6, &I_S_UP); + canvas_draw_icon(canvas, 68, 6, &I_S_UP_31x15); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -71,7 +71,7 @@ static void hid_media_draw_callback(Canvas* canvas, void* context) { // Down if(model->down_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 68, 36, &I_S_DOWN); + canvas_draw_icon(canvas, 68, 36, &I_S_DOWN_31x15); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -81,7 +81,7 @@ static void hid_media_draw_callback(Canvas* canvas, void* context) { // Left if(model->left_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 61, 13, &I_S_LEFT); + canvas_draw_icon(canvas, 61, 13, &I_S_LEFT_15x31); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -92,7 +92,7 @@ static void hid_media_draw_callback(Canvas* canvas, void* context) { // Right if(model->right_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 91, 13, &I_S_RIGHT); + canvas_draw_icon(canvas, 91, 13, &I_S_RIGHT_15x31); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } diff --git a/applications/external/hid_app/views/hid_mouse.c b/applications/external/hid_app/views/hid_mouse.c index 75df53dd1..f7de93d63 100644 --- a/applications/external/hid_app/views/hid_mouse.c +++ b/applications/external/hid_app/views/hid_mouse.c @@ -49,12 +49,12 @@ static void hid_mouse_draw_callback(Canvas* canvas, void* context) { } // Keypad circles - canvas_draw_icon(canvas, 58, 3, &I_OutCircles); + canvas_draw_icon(canvas, 58, 3, &I_OutCircles_70x51); // Up if(model->up_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 68, 6, &I_S_UP); + canvas_draw_icon(canvas, 68, 6, &I_S_UP_31x15); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -64,7 +64,7 @@ static void hid_mouse_draw_callback(Canvas* canvas, void* context) { // Down if(model->down_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 68, 36, &I_S_DOWN); + canvas_draw_icon(canvas, 68, 36, &I_S_DOWN_31x15); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -74,7 +74,7 @@ static void hid_mouse_draw_callback(Canvas* canvas, void* context) { // Left if(model->left_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 61, 13, &I_S_LEFT); + canvas_draw_icon(canvas, 61, 13, &I_S_LEFT_15x31); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -84,7 +84,7 @@ static void hid_mouse_draw_callback(Canvas* canvas, void* context) { // Right if(model->right_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 91, 13, &I_S_RIGHT); + canvas_draw_icon(canvas, 91, 13, &I_S_RIGHT_15x31); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } diff --git a/applications/external/hid_app/views/hid_tikshorts.c b/applications/external/hid_app/views/hid_tikshorts.c index 0e156fdf0..6965c1331 100644 --- a/applications/external/hid_app/views/hid_tikshorts.c +++ b/applications/external/hid_app/views/hid_tikshorts.c @@ -42,7 +42,7 @@ static void hid_tikshorts_draw_callback(Canvas* canvas, void* context) { canvas_set_font(canvas, FontSecondary); // Keypad circles - canvas_draw_icon(canvas, 58, 3, &I_OutCircles); + canvas_draw_icon(canvas, 58, 3, &I_OutCircles_70x51); // Pause if(model->back_mouse_pressed) { @@ -57,7 +57,7 @@ static void hid_tikshorts_draw_callback(Canvas* canvas, void* context) { // Up if(model->up_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 68, 6, &I_S_UP); + canvas_draw_icon(canvas, 68, 6, &I_S_UP_31x15); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -67,7 +67,7 @@ static void hid_tikshorts_draw_callback(Canvas* canvas, void* context) { // Down if(model->down_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 68, 36, &I_S_DOWN); + canvas_draw_icon(canvas, 68, 36, &I_S_DOWN_31x15); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -77,7 +77,7 @@ static void hid_tikshorts_draw_callback(Canvas* canvas, void* context) { // Left if(model->left_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 61, 13, &I_S_LEFT); + canvas_draw_icon(canvas, 61, 13, &I_S_LEFT_15x31); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } @@ -87,7 +87,7 @@ static void hid_tikshorts_draw_callback(Canvas* canvas, void* context) { // Right if(model->right_pressed) { canvas_set_bitmap_mode(canvas, 1); - canvas_draw_icon(canvas, 91, 13, &I_S_RIGHT); + canvas_draw_icon(canvas, 91, 13, &I_S_RIGHT_15x31); canvas_set_bitmap_mode(canvas, 0); canvas_set_color(canvas, ColorWhite); } From 9ec25a2681045eac3a2ce168b96df4d8722eded2 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 20 Jul 2023 21:53:02 +0300 Subject: [PATCH 08/10] fix issue #551 --- applications/external/mousejacker/mousejacker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/external/mousejacker/mousejacker.c b/applications/external/mousejacker/mousejacker.c index 6c5ec8c7f..55e45ce57 100644 --- a/applications/external/mousejacker/mousejacker.c +++ b/applications/external/mousejacker/mousejacker.c @@ -15,7 +15,7 @@ #define TAG "mousejacker" #define LOGITECH_MAX_CHANNEL 85 -#define NRFSNIFF_APP_PATH_FOLDER_ADDRESSES EXT_PATH("apps_data/nrf24sniff/addresses.txt") +#define NRFSNIFF_APP_PATH_FOLDER_ADDRESSES EXT_PATH("apps_data/nrf24_sniffer/addresses.txt") #define LOCAL_BADUSB_FOLDER EXT_PATH("badusb") #define MOUSEJACKER_APP_PATH_EXTENSION ".txt" #define MAX_ADDRS 100 From 3f08d861e97dccd752c0d02a783b2b21856576e1 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 20 Jul 2023 21:54:36 +0300 Subject: [PATCH 09/10] fbt format --- .../external/spectrum_analyzer/spectrum_analyzer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/applications/external/spectrum_analyzer/spectrum_analyzer.c b/applications/external/spectrum_analyzer/spectrum_analyzer.c index 573972891..ac6951da0 100644 --- a/applications/external/spectrum_analyzer/spectrum_analyzer.c +++ b/applications/external/spectrum_analyzer/spectrum_analyzer.c @@ -84,20 +84,20 @@ void spectrum_analyzer_draw_scale(Canvas* canvas, const SpectrumAnalyzerModel* m canvas_set_font(canvas, FontSecondary); switch(model->width) { case PRECISE: - snprintf(temp_str, 18, "%.1f", ((double)tag_left)/1000); + snprintf(temp_str, 18, "%.1f", ((double)tag_left) / 1000); canvas_draw_str_aligned(canvas, FREQ_START_X, 63, AlignCenter, AlignBottom, temp_str); - snprintf(temp_str, 18, "%.1f", ((double)tag_center)/1000); + snprintf(temp_str, 18, "%.1f", ((double)tag_center) / 1000); canvas_draw_str_aligned(canvas, 128 / 2, 63, AlignCenter, AlignBottom, temp_str); - snprintf(temp_str, 18, "%.1f", ((double)tag_right)/1000); + snprintf(temp_str, 18, "%.1f", ((double)tag_right) / 1000); canvas_draw_str_aligned( canvas, FREQ_START_X + FREQ_LENGTH_X - 1, 63, AlignCenter, AlignBottom, temp_str); break; default: - snprintf(temp_str, 18, "%lu", tag_left/1000); + snprintf(temp_str, 18, "%lu", tag_left / 1000); canvas_draw_str_aligned(canvas, FREQ_START_X, 63, AlignCenter, AlignBottom, temp_str); - snprintf(temp_str, 18, "%lu", tag_center/1000); + snprintf(temp_str, 18, "%lu", tag_center / 1000); canvas_draw_str_aligned(canvas, 128 / 2, 63, AlignCenter, AlignBottom, temp_str); - snprintf(temp_str, 18, "%lu", tag_right/1000); + snprintf(temp_str, 18, "%lu", tag_right / 1000); canvas_draw_str_aligned( canvas, FREQ_START_X + FREQ_LENGTH_X - 1, 63, AlignCenter, AlignBottom, temp_str); } From 906de7d9e7011bef9d08cc240b3515bfbfadd7e6 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 20 Jul 2023 22:00:49 +0300 Subject: [PATCH 10/10] fix PR #550 --- applications/external/spectrum_analyzer/spectrum_analyzer.c | 4 ++-- applications/external/spectrum_analyzer/spectrum_analyzer.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/applications/external/spectrum_analyzer/spectrum_analyzer.c b/applications/external/spectrum_analyzer/spectrum_analyzer.c index ac6951da0..ab69cac4f 100644 --- a/applications/external/spectrum_analyzer/spectrum_analyzer.c +++ b/applications/external/spectrum_analyzer/spectrum_analyzer.c @@ -10,7 +10,7 @@ #include "spectrum_analyzer_worker.h" typedef struct { - uint16_t center_freq; + uint32_t center_freq; uint8_t width; uint8_t band; uint8_t vscroll; @@ -447,7 +447,7 @@ int32_t spectrum_analyzer_app(void* p) { SpectrumAnalyzerModel* model = spectrum_analyzer->model; uint8_t vstep = VERTICAL_SHORT_STEP; - uint8_t hstep; + uint32_t hstep; bool exit_loop = false; diff --git a/applications/external/spectrum_analyzer/spectrum_analyzer.h b/applications/external/spectrum_analyzer/spectrum_analyzer.h index c4bb4c33c..7595f625c 100644 --- a/applications/external/spectrum_analyzer/spectrum_analyzer.h +++ b/applications/external/spectrum_analyzer/spectrum_analyzer.h @@ -41,7 +41,7 @@ #define WIDE_STEP 5000 #define NARROW_STEP 1000 #define ULTRAWIDE_STEP 20000 -#define ULTRANARROW_STEP 1000 +#define ULTRANARROW_STEP 500 #define PRECISE_STEP 100 /* margin in KHz */