diff --git a/.pvsoptions b/.pvsoptions index 6b22aed76..ecb333dec 100644 --- a/.pvsoptions +++ b/.pvsoptions @@ -1 +1 @@ ---ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/littlefs -e lib/mbedtls -e lib/micro-ecc -e lib/microtar -e lib/mlib -e lib/qrcode -e lib/ST25RFAL002 -e lib/STM32CubeWB -e lib/u8g2 -e lib/nanopb -e */arm-none-eabi/* -e applications/external/dap_link/lib/free-dap +--ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/littlefs -e lib/mbedtls -e lib/micro-ecc -e lib/microtar -e lib/mlib -e lib/qrcode -e lib/ST25RFAL002 -e lib/STM32CubeWB -e lib/u8g2 -e lib/xtreme -e lib/nanopb -e */arm-none-eabi/* -e applications/external/dap_link/lib/free-dap diff --git a/applications/main/archive/helpers/archive_files.h b/applications/main/archive/helpers/archive_files.h index e4bed3a63..7680bbd57 100644 --- a/applications/main/archive/helpers/archive_files.h +++ b/applications/main/archive/helpers/archive_files.h @@ -5,7 +5,7 @@ #include #include #include "toolbox/path.h" -#include "xtreme/settings.h" +#include #define FAP_MANIFEST_MAX_ICON_SIZE 32 diff --git a/applications/main/bad_kb/bad_kb_app.c b/applications/main/bad_kb/bad_kb_app.c index d1215d628..13a9f867c 100644 --- a/applications/main/bad_kb/bad_kb_app.c +++ b/applications/main/bad_kb/bad_kb_app.c @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include diff --git a/applications/main/bad_kb/scenes/bad_kb_scene_config.c b/applications/main/bad_kb/scenes/bad_kb_scene_config.c index 872b99d35..dbf62e96e 100644 --- a/applications/main/bad_kb/scenes/bad_kb_scene_config.c +++ b/applications/main/bad_kb/scenes/bad_kb_scene_config.c @@ -1,7 +1,7 @@ #include "../bad_kb_app.h" #include "furi_hal_power.h" #include "furi_hal_usb.h" -#include +#include enum VarItemListIndex { VarItemListIndexKeyboardLayout, diff --git a/applications/main/bad_kb/scenes/bad_kb_scene_error.c b/applications/main/bad_kb/scenes/bad_kb_scene_error.c index f9bdc46d4..3d29467ae 100644 --- a/applications/main/bad_kb/scenes/bad_kb_scene_error.c +++ b/applications/main/bad_kb/scenes/bad_kb_scene_error.c @@ -1,5 +1,5 @@ #include "../bad_kb_app.h" -#include "xtreme/assets.h" +#include static void bad_kb_scene_error_event_callback(GuiButtonType result, InputType type, void* context) { diff --git a/applications/main/bad_kb/views/bad_kb_view.c b/applications/main/bad_kb/views/bad_kb_view.c index 4cba891f1..a05cbb282 100644 --- a/applications/main/bad_kb/views/bad_kb_view.c +++ b/applications/main/bad_kb/views/bad_kb_view.c @@ -4,7 +4,7 @@ #include #include #include -#include "xtreme/assets.h" +#include #define MAX_NAME_LEN 64 diff --git a/applications/main/ibutton/scenes/ibutton_scene_delete_success.c b/applications/main/ibutton/scenes/ibutton_scene_delete_success.c index e2b7e3837..639ddbc16 100644 --- a/applications/main/ibutton/scenes/ibutton_scene_delete_success.c +++ b/applications/main/ibutton/scenes/ibutton_scene_delete_success.c @@ -1,5 +1,5 @@ #include "../ibutton_i.h" -#include "xtreme/assets.h" +#include static void ibutton_scene_delete_success_popup_callback(void* context) { iButton* ibutton = context; diff --git a/applications/main/ibutton/scenes/ibutton_scene_read.c b/applications/main/ibutton/scenes/ibutton_scene_read.c index a2b3b53e4..069ce6ae1 100644 --- a/applications/main/ibutton/scenes/ibutton_scene_read.c +++ b/applications/main/ibutton/scenes/ibutton_scene_read.c @@ -1,6 +1,6 @@ #include "../ibutton_i.h" #include -#include "xtreme/assets.h" +#include static void ibutton_scene_read_callback(void* context) { iButton* ibutton = context; diff --git a/applications/main/ibutton/scenes/ibutton_scene_save_success.c b/applications/main/ibutton/scenes/ibutton_scene_save_success.c index 03e88e047..81ae03059 100644 --- a/applications/main/ibutton/scenes/ibutton_scene_save_success.c +++ b/applications/main/ibutton/scenes/ibutton_scene_save_success.c @@ -1,5 +1,5 @@ #include "../ibutton_i.h" -#include "xtreme/assets.h" +#include static void ibutton_scene_save_success_popup_callback(void* context) { iButton* ibutton = context; diff --git a/applications/main/ibutton/scenes/ibutton_scene_write_success.c b/applications/main/ibutton/scenes/ibutton_scene_write_success.c index 3f565e274..cef700fe7 100644 --- a/applications/main/ibutton/scenes/ibutton_scene_write_success.c +++ b/applications/main/ibutton/scenes/ibutton_scene_write_success.c @@ -1,5 +1,5 @@ #include "../ibutton_i.h" -#include "xtreme/assets.h" +#include static void ibutton_scene_write_success_popup_callback(void* context) { iButton* ibutton = context; diff --git a/applications/main/infrared/scenes/infrared_scene_edit_rename_done.c b/applications/main/infrared/scenes/infrared_scene_edit_rename_done.c index 36224f418..76e555c7d 100644 --- a/applications/main/infrared/scenes/infrared_scene_edit_rename_done.c +++ b/applications/main/infrared/scenes/infrared_scene_edit_rename_done.c @@ -1,5 +1,5 @@ #include "../infrared_i.h" -#include "xtreme/assets.h" +#include void infrared_scene_edit_rename_done_on_enter(void* context) { Infrared* infrared = context; diff --git a/applications/main/infrared/scenes/infrared_scene_learn_done.c b/applications/main/infrared/scenes/infrared_scene_learn_done.c index 0d2522946..97caa20db 100644 --- a/applications/main/infrared/scenes/infrared_scene_learn_done.c +++ b/applications/main/infrared/scenes/infrared_scene_learn_done.c @@ -1,5 +1,5 @@ #include "../infrared_i.h" -#include "xtreme/assets.h" +#include void infrared_scene_learn_done_on_enter(void* context) { Infrared* infrared = context; diff --git a/applications/main/infrared/scenes/infrared_scene_learn_success.c b/applications/main/infrared/scenes/infrared_scene_learn_success.c index bbc84ba3b..e646e7677 100644 --- a/applications/main/infrared/scenes/infrared_scene_learn_success.c +++ b/applications/main/infrared/scenes/infrared_scene_learn_success.c @@ -1,5 +1,5 @@ #include "../infrared_i.h" -#include "xtreme/assets.h" +#include static void infrared_scene_learn_success_dialog_result_callback(DialogExResult result, void* context) { diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_clear_t5577.c b/applications/main/lfrfid/scenes/lfrfid_scene_clear_t5577.c index 8cb1d5310..6d960f331 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_clear_t5577.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_clear_t5577.c @@ -1,6 +1,6 @@ #include "../lfrfid_i.h" #include "../helpers/rfid_writer.h" -#include "xtreme/assets.h" +#include static void writer_initialize(T55xxTiming* t55xxtiming) { t55xxtiming->wait_time = 400; diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_delete_success.c b/applications/main/lfrfid/scenes/lfrfid_scene_delete_success.c index 991748515..d3952c08c 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_delete_success.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_delete_success.c @@ -1,5 +1,5 @@ #include "../lfrfid_i.h" -#include "xtreme/assets.h" +#include void lfrfid_scene_delete_success_on_enter(void* context) { LfRfid* app = context; diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_emulate.c b/applications/main/lfrfid/scenes/lfrfid_scene_emulate.c index eff92dc37..b2a8be4b8 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_emulate.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_emulate.c @@ -1,5 +1,5 @@ #include "../lfrfid_i.h" -#include "xtreme/assets.h" +#include void lfrfid_scene_emulate_on_enter(void* context) { LfRfid* app = context; diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_raw_read.c b/applications/main/lfrfid/scenes/lfrfid_scene_raw_read.c index 3213297d7..b9615f39c 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_raw_read.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_raw_read.c @@ -1,5 +1,5 @@ #include "../lfrfid_i.h" -#include "xtreme/assets.h" +#include #define RAW_READ_TIME 5000 diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_rpc.c b/applications/main/lfrfid/scenes/lfrfid_scene_rpc.c index 181346e9d..1555154fb 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_rpc.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_rpc.c @@ -1,5 +1,5 @@ #include "../lfrfid_i.h" -#include "xtreme/assets.h" +#include void lfrfid_scene_rpc_on_enter(void* context) { LfRfid* app = context; diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_save_success.c b/applications/main/lfrfid/scenes/lfrfid_scene_save_success.c index 738e90bfd..612445125 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_save_success.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_save_success.c @@ -1,5 +1,5 @@ #include "../lfrfid_i.h" -#include "xtreme/assets.h" +#include void lfrfid_scene_save_success_on_enter(void* context) { LfRfid* app = context; diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_write.c b/applications/main/lfrfid/scenes/lfrfid_scene_write.c index 0f74ece45..61e92ac4f 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_write.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_write.c @@ -1,5 +1,5 @@ #include "../lfrfid_i.h" -#include "xtreme/assets.h" +#include static void lfrfid_write_callback(LFRFIDWorkerWriteResult result, void* context) { LfRfid* app = context; diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_write_success.c b/applications/main/lfrfid/scenes/lfrfid_scene_write_success.c index 5eeb88616..a5b90ec38 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_write_success.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_write_success.c @@ -1,5 +1,5 @@ #include "../lfrfid_i.h" -#include "xtreme/assets.h" +#include void lfrfid_scene_write_success_on_enter(void* context) { LfRfid* app = context; diff --git a/applications/main/nfc/scenes/nfc_scene_delete_success.c b/applications/main/nfc/scenes/nfc_scene_delete_success.c index d8e2652a9..07b637eb4 100644 --- a/applications/main/nfc/scenes/nfc_scene_delete_success.c +++ b/applications/main/nfc/scenes/nfc_scene_delete_success.c @@ -1,5 +1,5 @@ #include "../nfc_i.h" -#include "xtreme/assets.h" +#include void nfc_scene_delete_success_popup_callback(void* context) { Nfc* nfc = context; diff --git a/applications/main/nfc/scenes/nfc_scene_emulate_uid.c b/applications/main/nfc/scenes/nfc_scene_emulate_uid.c index 7c016ceda..c46a2a075 100644 --- a/applications/main/nfc/scenes/nfc_scene_emulate_uid.c +++ b/applications/main/nfc/scenes/nfc_scene_emulate_uid.c @@ -1,5 +1,5 @@ #include "../nfc_i.h" -#include "xtreme/assets.h" +#include #define NFC_SCENE_EMULATE_UID_LOG_SIZE_MAX (200) diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c index 7f5cac406..9caf0390b 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c @@ -1,5 +1,5 @@ #include "../nfc_i.h" -#include "xtreme/assets.h" +#include #define NFC_MF_CLASSIC_DATA_NOT_CHANGED (0UL) #define NFC_MF_CLASSIC_DATA_CHANGED (1UL) diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c index 9544721b6..79256525f 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c @@ -1,6 +1,6 @@ #include "../nfc_i.h" #include -#include "xtreme/assets.h" +#include void nfc_scene_mf_classic_update_success_popup_callback(void* context) { Nfc* nfc = context; diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c index e82dedeaf..97dc50167 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c @@ -1,6 +1,6 @@ #include "../nfc_i.h" #include -#include "xtreme/assets.h" +#include void nfc_scene_mf_classic_write_success_popup_callback(void* context) { Nfc* nfc = context; diff --git a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c index f90d177e2..b13e169e4 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c @@ -1,5 +1,5 @@ #include "../nfc_i.h" -#include "xtreme/assets.h" +#include #define NFC_MF_UL_DATA_NOT_CHANGED (0UL) #define NFC_MF_UL_DATA_CHANGED (1UL) diff --git a/applications/main/nfc/scenes/nfc_scene_restore_original.c b/applications/main/nfc/scenes/nfc_scene_restore_original.c index 409785e26..198c54e85 100644 --- a/applications/main/nfc/scenes/nfc_scene_restore_original.c +++ b/applications/main/nfc/scenes/nfc_scene_restore_original.c @@ -1,5 +1,5 @@ #include "../nfc_i.h" -#include "xtreme/assets.h" +#include void nfc_scene_restore_original_popup_callback(void* context) { Nfc* nfc = context; diff --git a/applications/main/nfc/scenes/nfc_scene_rpc.c b/applications/main/nfc/scenes/nfc_scene_rpc.c index 6adacfda5..b57dfed37 100644 --- a/applications/main/nfc/scenes/nfc_scene_rpc.c +++ b/applications/main/nfc/scenes/nfc_scene_rpc.c @@ -1,5 +1,5 @@ #include "../nfc_i.h" -#include "xtreme/assets.h" +#include void nfc_scene_rpc_on_enter(void* context) { Nfc* nfc = context; diff --git a/applications/main/nfc/scenes/nfc_scene_save_success.c b/applications/main/nfc/scenes/nfc_scene_save_success.c index d3e31fdc3..deef64524 100644 --- a/applications/main/nfc/scenes/nfc_scene_save_success.c +++ b/applications/main/nfc/scenes/nfc_scene_save_success.c @@ -1,5 +1,5 @@ #include "../nfc_i.h" -#include "xtreme/assets.h" +#include void nfc_scene_save_success_popup_callback(void* context) { Nfc* nfc = context; diff --git a/applications/main/subghz/scenes/subghz_scene_delete_success.c b/applications/main/subghz/scenes/subghz_scene_delete_success.c index 8e3ca5c78..252736f2d 100644 --- a/applications/main/subghz/scenes/subghz_scene_delete_success.c +++ b/applications/main/subghz/scenes/subghz_scene_delete_success.c @@ -1,6 +1,6 @@ #include "../subghz_i.h" #include "../helpers/subghz_custom_event.h" -#include "xtreme/assets.h" +#include void subghz_scene_delete_success_popup_callback(void* context) { SubGhz* subghz = context; diff --git a/applications/main/subghz/scenes/subghz_scene_rpc.c b/applications/main/subghz/scenes/subghz_scene_rpc.c index e313ab3c2..82ab184d1 100644 --- a/applications/main/subghz/scenes/subghz_scene_rpc.c +++ b/applications/main/subghz/scenes/subghz_scene_rpc.c @@ -4,7 +4,7 @@ #include -#include "xtreme/assets.h" +#include typedef enum { SubGhzRpcStateIdle, diff --git a/applications/main/subghz/scenes/subghz_scene_save_success.c b/applications/main/subghz/scenes/subghz_scene_save_success.c index 48804fe54..107dc7b7d 100644 --- a/applications/main/subghz/scenes/subghz_scene_save_success.c +++ b/applications/main/subghz/scenes/subghz_scene_save_success.c @@ -1,6 +1,6 @@ #include "../subghz_i.h" #include "../helpers/subghz_custom_event.h" -#include "xtreme/assets.h" +#include void subghz_scene_save_success_popup_callback(void* context) { SubGhz* subghz = context; diff --git a/applications/main/subghz/views/receiver.c b/applications/main/subghz/views/receiver.c index 4e2a1e6e6..0d38503da 100644 --- a/applications/main/subghz/views/receiver.c +++ b/applications/main/subghz/views/receiver.c @@ -7,7 +7,7 @@ #include #include -#include "xtreme/assets.h" +#include #define FRAME_HEIGHT 12 #define MAX_LEN_PX 111 diff --git a/applications/main/u2f/scenes/u2f_scene_error.c b/applications/main/u2f/scenes/u2f_scene_error.c index d87b13063..f77f3d731 100644 --- a/applications/main/u2f/scenes/u2f_scene_error.c +++ b/applications/main/u2f/scenes/u2f_scene_error.c @@ -1,5 +1,5 @@ #include "../u2f_app_i.h" -#include "xtreme/assets.h" +#include static void u2f_scene_error_event_callback(GuiButtonType result, InputType type, void* context) { furi_assert(context); diff --git a/applications/main/u2f/views/u2f_view.c b/applications/main/u2f/views/u2f_view.c index 7bd2cf94f..4b76c2187 100644 --- a/applications/main/u2f/views/u2f_view.c +++ b/applications/main/u2f/views/u2f_view.c @@ -1,7 +1,7 @@ #include "u2f_view.h" #include #include -#include "xtreme/assets.h" +#include struct U2fView { View* view; diff --git a/applications/main/xtreme_app/application.fam b/applications/main/xtreme_app/application.fam index 38623386e..ce39a8739 100644 --- a/applications/main/xtreme_app/application.fam +++ b/applications/main/xtreme_app/application.fam @@ -7,7 +7,6 @@ App( requires=[ "gui", "dolphin", - "xtreme", ], stack_size=2 * 1024, icon="A_Xtreme_14", diff --git a/applications/main/xtreme_app/xtreme_app.h b/applications/main/xtreme_app/xtreme_app.h index a352d86ee..15cd71ce9 100644 --- a/applications/main/xtreme_app/xtreme_app.h +++ b/applications/main/xtreme_app/xtreme_app.h @@ -23,8 +23,7 @@ #include #include #include -#include "xtreme/settings.h" -#include "xtreme/assets.h" +#include #define XTREME_SUBGHZ_FREQ_BUFFER_SIZE 6 diff --git a/applications/services/application.fam b/applications/services/application.fam index 62aec990d..af02ef1a1 100644 --- a/applications/services/application.fam +++ b/applications/services/application.fam @@ -6,7 +6,6 @@ App( "crypto_start", "rpc_start", "bt", - "xtreme", "desktop", "loader", "power", diff --git a/applications/services/bt/bt_service/bt.c b/applications/services/bt/bt_service/bt.c index 22c62eff1..b4a6b25a4 100644 --- a/applications/services/bt/bt_service/bt.c +++ b/applications/services/bt/bt_service/bt.c @@ -5,7 +5,7 @@ #include #include #include -#include "xtreme/assets.h" +#include #define TAG "BtSrv" diff --git a/applications/services/desktop/animations/animation_manager.c b/applications/services/desktop/animations/animation_manager.c index f4bf320ff..394ffee30 100644 --- a/applications/services/desktop/animations/animation_manager.c +++ b/applications/services/desktop/animations/animation_manager.c @@ -14,7 +14,7 @@ #include "animation_storage.h" #include "animation_manager.h" -#include "xtreme/assets.h" +#include #define TAG "AnimationManager" diff --git a/applications/services/desktop/animations/animation_storage.c b/applications/services/desktop/animations/animation_storage.c index 30fa0c014..674c67a91 100644 --- a/applications/services/desktop/animations/animation_storage.c +++ b/applications/services/desktop/animations/animation_storage.c @@ -11,7 +11,7 @@ #include "animation_storage_i.h" #include #include -#include "xtreme/assets.h" +#include #define ANIMATION_META_FILE "meta.txt" #define BASE_ANIMATION_DIR EXT_PATH("dolphin") #define TAG "AnimationStorage" @@ -20,7 +20,7 @@ #define ANIMATION_MANIFEST_FILE ANIMATION_DIR "/manifest.txt" */ -// 59 Max length = strlen("/ext/dolphin_custom//Anims") + MAX_PACK_NAME_LEN + 1 (Null terminator) +// 59 Max length = strlen("/ext/dolphin_custom//Anims") + XTREME_ASSETS_PACK_NAME_LEN + 1 (Null terminator) char ANIMATION_DIR[59]; // 72 Max length = ANIMATION_DIR + strlen("/manifest.txt") char ANIMATION_MANIFEST_FILE[72]; @@ -36,7 +36,7 @@ void animation_handler_select_manifest(bool force_stock) { FuriString* manifest = furi_string_alloc(); bool use_asset_pack = !force_stock && xtreme_settings->asset_pack[0] != '\0'; if(use_asset_pack) { - furi_string_printf(anim_dir, "%s/%s/Anims", PACKS_DIR, xtreme_settings->asset_pack); + furi_string_printf(anim_dir, "%s/%s/Anims", XTREME_ASSETS_PATH, xtreme_settings->asset_pack); furi_string_printf(manifest, "%s/manifest.txt", furi_string_get_cstr(anim_dir)); Storage* storage = furi_record_open(RECORD_STORAGE); if(storage_common_stat(storage, furi_string_get_cstr(manifest), NULL) == FSE_OK) { diff --git a/applications/services/desktop/desktop.c b/applications/services/desktop/desktop.c index dfed41dbb..d0d61ee1c 100644 --- a/applications/services/desktop/desktop.c +++ b/applications/services/desktop/desktop.c @@ -15,6 +15,7 @@ #include "desktop/views/desktop_view_pin_timeout.h" #include "desktop_i.h" #include "helpers/pin_lock.h" +#include #define TAG "Desktop" @@ -347,6 +348,10 @@ int32_t desktop_srv(void* p) { furi_hal_rtc_reset_flag(FuriHalRtcFlagResetPin); } + // furi_delay_ms(1000); + XTREME_SETTINGS_LOAD(); + XTREME_ASSETS_LOAD(); + Desktop* desktop = desktop_alloc(); bool loaded = DESKTOP_SETTINGS_LOAD(&desktop->settings); diff --git a/applications/services/desktop/helpers/pin_lock.c b/applications/services/desktop/helpers/pin_lock.c index 73e688bf5..2439a4ebc 100644 --- a/applications/services/desktop/helpers/pin_lock.c +++ b/applications/services/desktop/helpers/pin_lock.c @@ -10,7 +10,7 @@ #include "../desktop_i.h" #include #include -#include +#include static const NotificationSequence sequence_pin_fail = { &message_display_backlight_on, diff --git a/applications/services/desktop/scenes/desktop_scene_fault.c b/applications/services/desktop/scenes/desktop_scene_fault.c index b3801d78d..2b2dce50c 100644 --- a/applications/services/desktop/scenes/desktop_scene_fault.c +++ b/applications/services/desktop/scenes/desktop_scene_fault.c @@ -1,7 +1,7 @@ #include #include "../desktop_i.h" -#include "xtreme/assets.h" +#include #define DesktopFaultEventExit 0x00FF00FF diff --git a/applications/services/desktop/scenes/desktop_scene_lock_menu.c b/applications/services/desktop/scenes/desktop_scene_lock_menu.c index ac529b779..e68d28076 100644 --- a/applications/services/desktop/scenes/desktop_scene_lock_menu.c +++ b/applications/services/desktop/scenes/desktop_scene_lock_menu.c @@ -5,7 +5,7 @@ #include #include // #include -#include +#include #include "../desktop_i.h" #include diff --git a/applications/services/desktop/views/desktop_view_lock_menu.c b/applications/services/desktop/views/desktop_view_lock_menu.c index 334cf9376..204dd2cfd 100644 --- a/applications/services/desktop/views/desktop_view_lock_menu.c +++ b/applications/services/desktop/views/desktop_view_lock_menu.c @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include "../desktop_i.h" diff --git a/applications/services/desktop/views/desktop_view_locked.c b/applications/services/desktop/views/desktop_view_locked.c index 6d3aeb819..dc081e88d 100644 --- a/applications/services/desktop/views/desktop_view_locked.c +++ b/applications/services/desktop/views/desktop_view_locked.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include "../desktop_i.h" diff --git a/applications/services/dolphin/dolphin.c b/applications/services/dolphin/dolphin.c index df34abe78..5e5ff07d3 100644 --- a/applications/services/dolphin/dolphin.c +++ b/applications/services/dolphin/dolphin.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #define DOLPHIN_LOCK_EVENT_FLAG (0x1) #define TAG "Dolphin" diff --git a/applications/services/gui/application.fam b/applications/services/gui/application.fam index 7981a4fcb..193b9dfd3 100644 --- a/applications/services/gui/application.fam +++ b/applications/services/gui/application.fam @@ -7,7 +7,6 @@ App( requires=[ "input", "notification", - "xtreme", ], stack_size=2 * 1024, order=70, diff --git a/applications/services/gui/canvas.c b/applications/services/gui/canvas.c index 98fd96e8c..e4ddfb21e 100644 --- a/applications/services/gui/canvas.c +++ b/applications/services/gui/canvas.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include const CanvasFontParameters canvas_font_params[FontTotalNumber] = { [FontPrimary] = {.leading_default = 12, .leading_min = 11, .height = 8, .descender = 2}, diff --git a/applications/services/gui/gui.c b/applications/services/gui/gui.c index dd1291890..e914e807f 100644 --- a/applications/services/gui/gui.c +++ b/applications/services/gui/gui.c @@ -1,4 +1,4 @@ -#include "xtreme/settings.h" +#include #include "gui_i.h" #include diff --git a/applications/services/gui/modules/file_browser.c b/applications/services/gui/modules/file_browser.c index 8affe8330..4f11ffe8d 100644 --- a/applications/services/gui/modules/file_browser.c +++ b/applications/services/gui/modules/file_browser.c @@ -13,7 +13,7 @@ #include #include "m-algo.h" #include -#include "xtreme/settings.h" +#include #define LIST_ITEMS 5u #define MAX_LEN_PX 110 diff --git a/applications/services/gui/modules/menu.c b/applications/services/gui/modules/menu.c index 5c0da9c8f..cf42524af 100644 --- a/applications/services/gui/modules/menu.c +++ b/applications/services/gui/modules/menu.c @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include struct Menu { diff --git a/applications/services/loader/loader.c b/applications/services/loader/loader.c index f915cda1d..7e40ae54e 100644 --- a/applications/services/loader/loader.c +++ b/applications/services/loader/loader.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #define TAG "LoaderSrv" diff --git a/applications/services/power/power_service/power.c b/applications/services/power/power_service/power.c index 9b9a2356f..b6f8d98a9 100644 --- a/applications/services/power/power_service/power.c +++ b/applications/services/power/power_service/power.c @@ -2,7 +2,7 @@ #include #include -#include "xtreme/settings.h" +#include #define POWER_OFF_TIMEOUT 90 #define TAG "Power" diff --git a/applications/services/xtreme/application.fam b/applications/services/xtreme/application.fam deleted file mode 100644 index beb19e437..000000000 --- a/applications/services/xtreme/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="xtreme", - name="Xtreme", - apptype=FlipperAppType.SERVICE, - entry_point="xtreme_srv", - cdefines=["SRV_XTREME"], - requires=["storage"], - stack_size=2 * 1024, - order=46, - sdk_headers=[ - "settings.h", - "assets.h", - ], -) diff --git a/applications/services/xtreme/settings.c b/applications/services/xtreme/settings.c deleted file mode 100644 index 21c8080e8..000000000 --- a/applications/services/xtreme/settings.c +++ /dev/null @@ -1,145 +0,0 @@ -#include "settings.h" - -#include - -#define TAG "XtremeSettings" - -XtremeSettings* xtreme_settings = NULL; - -XtremeSettings* XTREME_SETTINGS() { - if(xtreme_settings == NULL) { - XTREME_SETTINGS_LOAD(); - } - return xtreme_settings; -} - -void XTREME_SETTINGS_LOAD() { - if(xtreme_settings == NULL) { - xtreme_settings = malloc(sizeof(XtremeSettings)); - - // Set default values - memset(xtreme_settings, 0, sizeof(XtremeSettings)); - strlcpy(xtreme_settings->asset_pack, "", MAX_PACK_NAME_LEN); // SFW - xtreme_settings->anim_speed = 100; // 100% - xtreme_settings->cycle_anims = 0; // Meta.txt - xtreme_settings->unlock_anims = false; // OFF - xtreme_settings->fallback_anim = true; // ON - xtreme_settings->wii_menu = true; // ON - xtreme_settings->bad_pins_format = false; // OFF - xtreme_settings->lockscreen_time = true; // ON - xtreme_settings->lockscreen_seconds = false; // OFF - xtreme_settings->lockscreen_date = true; // ON - xtreme_settings->lockscreen_statusbar = true; // ON - xtreme_settings->lockscreen_prompt = true; // ON - xtreme_settings->battery_icon = BatteryIconBarPercent; // Bar % - xtreme_settings->status_icons = true; // ON - xtreme_settings->bar_borders = true; // ON - xtreme_settings->bar_background = false; // OFF - xtreme_settings->sort_dirs_first = true; // ON - xtreme_settings->dark_mode = false; // OFF - xtreme_settings->bad_bt = false; // USB - xtreme_settings->bad_bt_remember = false; // OFF - xtreme_settings->butthurt_timer = 43200; // 12 H - xtreme_settings->rgb_backlight = false; // OFF - - if(!furi_hal_is_normal_boot()) { - FURI_LOG_W(TAG, "Load skipped. Device is in special startup mode."); - return; - } - - XtremeSettings* x = xtreme_settings; - Storage* storage = furi_record_open(RECORD_STORAGE); - FlipperFormat* file = flipper_format_file_alloc(storage); - if(flipper_format_file_open_existing(file, XTREME_SETTINGS_PATH)) { - FuriString* string = furi_string_alloc(); - if(flipper_format_read_string(file, "asset_pack", string)) { - strlcpy(x->asset_pack, furi_string_get_cstr(string), MAX_PACK_NAME_LEN); - } - furi_string_free(string); - flipper_format_rewind(file); - flipper_format_read_uint32(file, "anim_speed", &x->anim_speed, 1); - flipper_format_rewind(file); - flipper_format_read_int32(file, "cycle_anims", &x->cycle_anims, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "unlock_anims", &x->unlock_anims, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "fallback_anim", &x->fallback_anim, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "wii_menu", &x->wii_menu, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "bad_pins_format", &x->bad_pins_format, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "lockscreen_time", &x->lockscreen_time, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "lockscreen_seconds", &x->lockscreen_seconds, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "lockscreen_date", &x->lockscreen_date, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "lockscreen_statusbar", &x->lockscreen_statusbar, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "lockscreen_prompt", &x->lockscreen_prompt, 1); - flipper_format_rewind(file); - flipper_format_read_uint32(file, "battery_icon", (uint32_t*)&x->battery_icon, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "status_icons", &x->status_icons, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "bar_borders", &x->bar_borders, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "bar_background", &x->bar_background, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "sort_dirs_first", &x->sort_dirs_first, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "dark_mode", &x->dark_mode, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "bad_bt", &x->bad_bt, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "bad_bt_remember", &x->bad_bt_remember, 1); - flipper_format_rewind(file); - flipper_format_read_int32(file, "butthurt_timer", &x->butthurt_timer, 1); - flipper_format_rewind(file); - flipper_format_read_bool(file, "rgb_backlight", &x->rgb_backlight, 1); - } - flipper_format_free(file); - furi_record_close(RECORD_STORAGE); - } -} - -void XTREME_SETTINGS_SAVE() { - if(xtreme_settings == NULL) { - XTREME_SETTINGS_LOAD(); - } - - if(!furi_hal_is_normal_boot()) { - return; - } - - XtremeSettings* x = xtreme_settings; - Storage* storage = furi_record_open(RECORD_STORAGE); - FlipperFormat* file = flipper_format_file_alloc(storage); - if(flipper_format_file_open_always(file, XTREME_SETTINGS_PATH)) { - flipper_format_write_string_cstr(file, "asset_pack", x->asset_pack); - flipper_format_write_uint32(file, "anim_speed", &x->anim_speed, 1); - flipper_format_write_int32(file, "cycle_anims", &x->cycle_anims, 1); - flipper_format_write_bool(file, "unlock_anims", &x->unlock_anims, 1); - flipper_format_write_bool(file, "fallback_anim", &x->fallback_anim, 1); - flipper_format_write_bool(file, "wii_menu", &x->wii_menu, 1); - flipper_format_write_bool(file, "bad_pins_format", &x->bad_pins_format, 1); - flipper_format_write_bool(file, "lockscreen_time", &x->lockscreen_time, 1); - flipper_format_write_bool(file, "lockscreen_seconds", &x->lockscreen_seconds, 1); - flipper_format_write_bool(file, "lockscreen_date", &x->lockscreen_date, 1); - flipper_format_write_bool(file, "lockscreen_statusbar", &x->lockscreen_statusbar, 1); - flipper_format_write_bool(file, "lockscreen_prompt", &x->lockscreen_prompt, 1); - flipper_format_write_uint32(file, "battery_icon", (uint32_t*)&x->battery_icon, 1); - flipper_format_write_bool(file, "status_icons", &x->status_icons, 1); - flipper_format_write_bool(file, "bar_borders", &x->bar_borders, 1); - flipper_format_write_bool(file, "bar_background", &x->bar_background, 1); - flipper_format_write_bool(file, "sort_dirs_first", &x->sort_dirs_first, 1); - flipper_format_write_bool(file, "dark_mode", &x->dark_mode, 1); - flipper_format_write_bool(file, "bad_bt", &x->bad_bt, 1); - flipper_format_write_bool(file, "bad_bt_remember", &x->bad_bt_remember, 1); - flipper_format_write_int32(file, "butthurt_timer", &x->butthurt_timer, 1); - flipper_format_write_bool(file, "rgb_backlight", &x->rgb_backlight, 1); - } - flipper_format_free(file); - furi_record_close(RECORD_STORAGE); -} diff --git a/applications/services/xtreme/settings.h b/applications/services/xtreme/settings.h deleted file mode 100644 index 87fb44f75..000000000 --- a/applications/services/xtreme/settings.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define MAX_PACK_NAME_LEN 32 - -#define XTREME_SETTINGS_PATH CFG_PATH("xtreme_settings.txt") - -#define XTREME_APPS_PATH CFG_PATH("xtreme_apps.txt") - -typedef struct { - char asset_pack[MAX_PACK_NAME_LEN]; - uint32_t anim_speed; - int32_t cycle_anims; - bool unlock_anims; - bool fallback_anim; - bool wii_menu; - bool bad_pins_format; - bool lockscreen_time; - bool lockscreen_seconds; - bool lockscreen_date; - bool lockscreen_statusbar; - bool lockscreen_prompt; - BatteryIcon battery_icon; - bool status_icons; - bool bar_borders; - bool bar_background; - bool sort_dirs_first; - bool dark_mode; - bool bad_bt; - bool bad_bt_remember; - int32_t butthurt_timer; - bool rgb_backlight; -} XtremeSettings; - -XtremeSettings* XTREME_SETTINGS(); - -void XTREME_SETTINGS_LOAD(); - -void XTREME_SETTINGS_SAVE(); - -#ifdef __cplusplus -} -#endif diff --git a/applications/services/xtreme/xtreme_srv.c b/applications/services/xtreme/xtreme_srv.c deleted file mode 100644 index fa6fb97f2..000000000 --- a/applications/services/xtreme/xtreme_srv.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "settings.h" -#include "assets.h" - -int32_t xtreme_srv(void* p) { - UNUSED(p); - - XTREME_SETTINGS_LOAD(); - XTREME_ASSETS_LOAD(); - - return 0; -} diff --git a/applications/settings/bt_settings_app/scenes/bt_settings_scene_forget_dev_success.c b/applications/settings/bt_settings_app/scenes/bt_settings_scene_forget_dev_success.c index c9e4b17d4..e8aed9b45 100644 --- a/applications/settings/bt_settings_app/scenes/bt_settings_scene_forget_dev_success.c +++ b/applications/settings/bt_settings_app/scenes/bt_settings_scene_forget_dev_success.c @@ -1,5 +1,5 @@ #include "../bt_settings_app.h" -#include "xtreme/assets.h" +#include #include void bt_settings_app_scene_forget_dev_success_popup_callback(void* context) { diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c index cad5f43f4..0ae92062a 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_pin_disable.c @@ -6,7 +6,7 @@ #include "../desktop_settings_app.h" #include #include "desktop_settings_scene.h" -#include "xtreme/assets.h" +#include #define SCENE_EVENT_EXIT (0U) diff --git a/applications/settings/dolphin_passport/passport.c b/applications/settings/dolphin_passport/passport.c index d6474b4cf..dc7f754eb 100644 --- a/applications/settings/dolphin_passport/passport.c +++ b/applications/settings/dolphin_passport/passport.c @@ -6,7 +6,7 @@ #include #include #include "dolphin/dolphin.h" -#include "xtreme/assets.h" +#include #include "math.h" typedef struct { diff --git a/applications/settings/power_settings_app/scenes/power_settings_scene_power_off.c b/applications/settings/power_settings_app/scenes/power_settings_scene_power_off.c index afcc6f950..9b35e9eb6 100644 --- a/applications/settings/power_settings_app/scenes/power_settings_scene_power_off.c +++ b/applications/settings/power_settings_app/scenes/power_settings_scene_power_off.c @@ -1,5 +1,5 @@ #include "../power_settings_app.h" -#include "xtreme/assets.h" +#include void power_settings_scene_power_off_dialog_callback(DialogExResult result, void* context) { furi_assert(context); diff --git a/applications/settings/storage_settings/scenes/storage_settings_scene_unmounted.c b/applications/settings/storage_settings/scenes/storage_settings_scene_unmounted.c index 13f53acd1..dca53b60a 100644 --- a/applications/settings/storage_settings/scenes/storage_settings_scene_unmounted.c +++ b/applications/settings/storage_settings/scenes/storage_settings_scene_unmounted.c @@ -1,5 +1,5 @@ #include "../storage_settings.h" -#include "xtreme/assets.h" +#include static void storage_settings_scene_unmounted_dialog_callback(DialogExResult result, void* context) { diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index 6e1781f75..b78883d85 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -40,8 +40,6 @@ Header,+,applications/services/power/power_service/power.h,, Header,+,applications/services/rgb_backlight/rgb_backlight.h,, Header,+,applications/services/rpc/rpc_app.h,, Header,+,applications/services/storage/storage.h,, -Header,+,applications/services/xtreme/assets.h,, -Header,+,applications/services/xtreme/settings.h,, Header,+,firmware/targets/f7/furi_hal/furi_hal_clock.h,, Header,+,firmware/targets/f7/furi_hal/furi_hal_console.h,, Header,+,firmware/targets/f7/furi_hal/furi_hal_flash.h,, @@ -218,6 +216,7 @@ Header,+,lib/toolbox/tar/tar_archive.h,, Header,+,lib/toolbox/value_index.h,, Header,+,lib/toolbox/version.h,, Header,+,lib/u8g2/u8g2.h,, +Header,+,lib/xtreme/xtreme.h,, Function,-,LL_ADC_CommonDeInit,ErrorStatus,ADC_Common_TypeDef* Function,-,LL_ADC_CommonInit,ErrorStatus,"ADC_Common_TypeDef*, LL_ADC_CommonInitTypeDef*" Function,-,LL_ADC_CommonStructInit,void,LL_ADC_CommonInitTypeDef* @@ -322,9 +321,7 @@ Function,-,SK6805_update,void, Function,-,SystemCoreClockUpdate,void, Function,-,SystemInit,void, Function,+,XTREME_ASSETS,XtremeAssets*, -Function,-,XTREME_ASSETS_LOAD,void, Function,+,XTREME_SETTINGS,XtremeSettings*, -Function,-,XTREME_SETTINGS_LOAD,void, Function,+,XTREME_SETTINGS_SAVE,void, Function,-,_Exit,void,int Function,-,__assert,void,"const char*, int, const char*" diff --git a/firmware/targets/f7/furi_hal/furi_hal_light.c b/firmware/targets/f7/furi_hal/furi_hal_light.c index 7d303cfaa..5ce624d1e 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_light.c +++ b/firmware/targets/f7/furi_hal/furi_hal_light.c @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #define LED_CURRENT_RED 50 diff --git a/lib/SConscript b/lib/SConscript index 9742d81a3..28a508471 100644 --- a/lib/SConscript +++ b/lib/SConscript @@ -45,6 +45,7 @@ env.Append( ) ), File("u8g2/u8g2.h"), + File("xtreme/xtreme.h"), ], CPPDEFINES=[ '"M_MEMORY_FULL(x)=abort()"', diff --git a/lib/misc.scons b/lib/misc.scons index a68f9d47d..63681f2f2 100644 --- a/lib/misc.scons +++ b/lib/misc.scons @@ -11,6 +11,7 @@ env.Append( "#/lib/micro-ecc", "#/lib/nanopb", "#/lib/u8g2", + "#/lib/xtreme", ], CPPDEFINES=[ "PB_ENABLE_MALLOC", @@ -32,6 +33,7 @@ libs_recurse = [ "micro-ecc", "u8g2", "update_util", + "xtreme", ] for lib in libs_recurse: diff --git a/applications/services/xtreme/assets.c b/lib/xtreme/assets.c similarity index 71% rename from applications/services/xtreme/assets.c rename to lib/xtreme/assets.c index 574e932ce..3c27f838c 100644 --- a/applications/services/xtreme/assets.c +++ b/lib/xtreme/assets.c @@ -1,12 +1,40 @@ -#include "assets.h" +#include "xtreme.h" +#include "private.h" #include +#include #include #define TAG "XtremeAssets" -#define ICONS_FMT PACKS_DIR "/%s/Icons/%s" +#define ICONS_FMT XTREME_ASSETS_PATH "/%s/Icons/%s" -XtremeAssets* xtreme_assets = NULL; +XtremeAssets xtreme_assets = { + .A_Levelup_128x64 = &A_Levelup_128x64, + .I_BLE_Pairing_128x64 = &I_BLE_Pairing_128x64, + .I_DolphinCommon_56x48 = &I_DolphinCommon_56x48, + .I_DolphinMafia_115x62 = &I_DolphinMafia_115x62, + .I_DolphinNice_96x59 = &I_DolphinNice_96x59, + .I_DolphinWait_61x59 = &I_DolphinWait_61x59, + .I_iButtonDolphinVerySuccess_108x52 = &I_iButtonDolphinVerySuccess_108x52, + .I_DolphinReadingSuccess_59x63 = &I_DolphinReadingSuccess_59x63, + .I_Lockscreen = &I_Lockscreen, + .I_WarningDolphin_45x42 = &I_WarningDolphin_45x42, + .I_NFC_dolphin_emulation_47x61 = &I_NFC_dolphin_emulation_47x61, + .I_passport_bad_46x49 = &I_passport_bad_46x49, + .I_passport_DB = &I_passport_DB, + .I_passport_happy_46x49 = &I_passport_happy_46x49, + .I_passport_okay_46x49 = &I_passport_okay_46x49, + .I_RFIDDolphinReceive_97x61 = &I_RFIDDolphinReceive_97x61, + .I_RFIDDolphinSend_97x61 = &I_RFIDDolphinSend_97x61, + .I_RFIDDolphinSuccess_108x57 = &I_RFIDDolphinSuccess_108x57, + .I_Cry_dolph_55x52 = &I_Cry_dolph_55x52, + .I_Fishing_123x52 = &I_Fishing_123x52, + .I_Scanning_123x52 = &I_Scanning_123x52, + .I_Auth_62x31 = &I_Auth_62x31, + .I_Connect_me_62x31 = &I_Connect_me_62x31, + .I_Connected_62x31 = &I_Connected_62x31, + .I_Error_62x31 = &I_Error_62x31, +}; void anim(const Icon** replace, const char* name, FuriString* path, File* file) { do { @@ -113,44 +141,9 @@ void swap(XtremeAssets* x, FuriString* p, File* f) { } void XTREME_ASSETS_LOAD() { - if(xtreme_assets != NULL) return; - - xtreme_assets = malloc(sizeof(XtremeAssets)); - - xtreme_assets->A_Levelup_128x64 = &A_Levelup_128x64; - xtreme_assets->I_BLE_Pairing_128x64 = &I_BLE_Pairing_128x64; - xtreme_assets->I_DolphinCommon_56x48 = &I_DolphinCommon_56x48; - xtreme_assets->I_DolphinMafia_115x62 = &I_DolphinMafia_115x62; - xtreme_assets->I_DolphinNice_96x59 = &I_DolphinNice_96x59; - xtreme_assets->I_DolphinWait_61x59 = &I_DolphinWait_61x59; - xtreme_assets->I_iButtonDolphinVerySuccess_108x52 = &I_iButtonDolphinVerySuccess_108x52; - xtreme_assets->I_DolphinReadingSuccess_59x63 = &I_DolphinReadingSuccess_59x63; - xtreme_assets->I_Lockscreen = &I_Lockscreen; - xtreme_assets->I_WarningDolphin_45x42 = &I_WarningDolphin_45x42; - xtreme_assets->I_NFC_dolphin_emulation_47x61 = &I_NFC_dolphin_emulation_47x61; - xtreme_assets->I_passport_bad_46x49 = &I_passport_bad_46x49; - xtreme_assets->I_passport_DB = &I_passport_DB; - xtreme_assets->I_passport_happy_46x49 = &I_passport_happy_46x49; - xtreme_assets->I_passport_okay_46x49 = &I_passport_okay_46x49; - xtreme_assets->I_RFIDDolphinReceive_97x61 = &I_RFIDDolphinReceive_97x61; - xtreme_assets->I_RFIDDolphinSend_97x61 = &I_RFIDDolphinSend_97x61; - xtreme_assets->I_RFIDDolphinSuccess_108x57 = &I_RFIDDolphinSuccess_108x57; - xtreme_assets->I_Cry_dolph_55x52 = &I_Cry_dolph_55x52; - xtreme_assets->I_Fishing_123x52 = &I_Fishing_123x52; - xtreme_assets->I_Scanning_123x52 = &I_Scanning_123x52; - xtreme_assets->I_Auth_62x31 = &I_Auth_62x31; - xtreme_assets->I_Connect_me_62x31 = &I_Connect_me_62x31; - xtreme_assets->I_Connected_62x31 = &I_Connected_62x31; - xtreme_assets->I_Error_62x31 = &I_Error_62x31; - - if(!furi_hal_is_normal_boot()) { - FURI_LOG_W(TAG, "Load skipped. Device is in special startup mode."); - return; - } - XtremeSettings* xtreme_settings = XTREME_SETTINGS(); if(xtreme_settings->asset_pack[0] == '\0') return; - xtreme_assets->is_nsfw = strncmp(xtreme_settings->asset_pack, "NSFW", strlen("NSFW")) == 0; + xtreme_assets.is_nsfw = strncmp(xtreme_settings->asset_pack, "NSFW", strlen("NSFW")) == 0; Storage* storage = furi_record_open(RECORD_STORAGE); int32_t timeout = 5000; @@ -162,11 +155,11 @@ void XTREME_ASSETS_LOAD() { FileInfo info; FuriString* path = furi_string_alloc(); - furi_string_printf(path, PACKS_DIR "/%s", xtreme_settings->asset_pack); + furi_string_printf(path, XTREME_ASSETS_PATH "/%s", xtreme_settings->asset_pack); if(storage_common_stat(storage, furi_string_get_cstr(path), &info) == FSE_OK && info.flags & FSF_DIRECTORY) { File* file = storage_file_alloc(storage); - swap(xtreme_assets, path, file); + swap(&xtreme_assets, path, file); storage_file_free(file); } furi_string_free(path); @@ -174,8 +167,5 @@ void XTREME_ASSETS_LOAD() { } XtremeAssets* XTREME_ASSETS() { - if(xtreme_assets == NULL) { - XTREME_ASSETS_LOAD(); - } - return xtreme_assets; + return &xtreme_assets; } diff --git a/lib/xtreme/private.h b/lib/xtreme/private.h new file mode 100644 index 000000000..8b220f586 --- /dev/null +++ b/lib/xtreme/private.h @@ -0,0 +1,4 @@ +#pragma once + +void XTREME_ASSETS_LOAD(); +void XTREME_SETTINGS_LOAD(); diff --git a/lib/xtreme/settings.c b/lib/xtreme/settings.c new file mode 100644 index 000000000..1cafa6f59 --- /dev/null +++ b/lib/xtreme/settings.c @@ -0,0 +1,126 @@ +#include "xtreme.h" +#include "private.h" +#include +#include + +#define TAG "XtremeSettings" + +XtremeSettings xtreme_settings = { + .asset_pack = "", + .anim_speed = 100, // 100% + .cycle_anims = 0, // Meta.txt + .unlock_anims = false, // OFF + .fallback_anim = true, // ON + .wii_menu = true, // ON + .bad_pins_format = false, // OFF + .lockscreen_time = true, // ON + .lockscreen_seconds = false, // OFF + .lockscreen_date = true, // ON + .lockscreen_statusbar = true, // ON + .lockscreen_prompt = true, // ON + .battery_icon = BatteryIconBarPercent, // Bar % + .status_icons = true, // ON + .bar_borders = true, // ON + .bar_background = false, // OFF + .sort_dirs_first = true, // ON + .dark_mode = false, // OFF + .bad_bt = false, // USB + .bad_bt_remember = false, // OFF + .butthurt_timer = 43200, // 12 H + .rgb_backlight = false, // OFF +}; + +void XTREME_SETTINGS_LOAD() { + XtremeSettings* x = &xtreme_settings; + Storage* storage = furi_record_open(RECORD_STORAGE); + FlipperFormat* file = flipper_format_file_alloc(storage); + if(flipper_format_file_open_existing(file, XTREME_SETTINGS_PATH)) { + FuriString* string = furi_string_alloc(); + if(flipper_format_read_string(file, "asset_pack", string)) { + strlcpy(x->asset_pack, furi_string_get_cstr(string), XTREME_ASSETS_PACK_NAME_LEN); + } + furi_string_free(string); + flipper_format_rewind(file); + flipper_format_read_uint32(file, "anim_speed", &x->anim_speed, 1); + flipper_format_rewind(file); + flipper_format_read_int32(file, "cycle_anims", &x->cycle_anims, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "unlock_anims", &x->unlock_anims, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "fallback_anim", &x->fallback_anim, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "wii_menu", &x->wii_menu, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "bad_pins_format", &x->bad_pins_format, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "lockscreen_time", &x->lockscreen_time, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "lockscreen_seconds", &x->lockscreen_seconds, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "lockscreen_date", &x->lockscreen_date, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "lockscreen_statusbar", &x->lockscreen_statusbar, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "lockscreen_prompt", &x->lockscreen_prompt, 1); + flipper_format_rewind(file); + flipper_format_read_uint32(file, "battery_icon", (uint32_t*)&x->battery_icon, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "status_icons", &x->status_icons, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "bar_borders", &x->bar_borders, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "bar_background", &x->bar_background, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "sort_dirs_first", &x->sort_dirs_first, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "dark_mode", &x->dark_mode, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "bad_bt", &x->bad_bt, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "bad_bt_remember", &x->bad_bt_remember, 1); + flipper_format_rewind(file); + flipper_format_read_int32(file, "butthurt_timer", &x->butthurt_timer, 1); + flipper_format_rewind(file); + flipper_format_read_bool(file, "rgb_backlight", &x->rgb_backlight, 1); + } + flipper_format_free(file); + furi_record_close(RECORD_STORAGE); +} + +void XTREME_SETTINGS_SAVE() { + if(!furi_hal_is_normal_boot()) return; + + XtremeSettings* x = &xtreme_settings; + Storage* storage = furi_record_open(RECORD_STORAGE); + FlipperFormat* file = flipper_format_file_alloc(storage); + if(flipper_format_file_open_always(file, XTREME_SETTINGS_PATH)) { + flipper_format_write_string_cstr(file, "asset_pack", x->asset_pack); + flipper_format_write_uint32(file, "anim_speed", &x->anim_speed, 1); + flipper_format_write_int32(file, "cycle_anims", &x->cycle_anims, 1); + flipper_format_write_bool(file, "unlock_anims", &x->unlock_anims, 1); + flipper_format_write_bool(file, "fallback_anim", &x->fallback_anim, 1); + flipper_format_write_bool(file, "wii_menu", &x->wii_menu, 1); + flipper_format_write_bool(file, "bad_pins_format", &x->bad_pins_format, 1); + flipper_format_write_bool(file, "lockscreen_time", &x->lockscreen_time, 1); + flipper_format_write_bool(file, "lockscreen_seconds", &x->lockscreen_seconds, 1); + flipper_format_write_bool(file, "lockscreen_date", &x->lockscreen_date, 1); + flipper_format_write_bool(file, "lockscreen_statusbar", &x->lockscreen_statusbar, 1); + flipper_format_write_bool(file, "lockscreen_prompt", &x->lockscreen_prompt, 1); + flipper_format_write_uint32(file, "battery_icon", (uint32_t*)&x->battery_icon, 1); + flipper_format_write_bool(file, "status_icons", &x->status_icons, 1); + flipper_format_write_bool(file, "bar_borders", &x->bar_borders, 1); + flipper_format_write_bool(file, "bar_background", &x->bar_background, 1); + flipper_format_write_bool(file, "sort_dirs_first", &x->sort_dirs_first, 1); + flipper_format_write_bool(file, "dark_mode", &x->dark_mode, 1); + flipper_format_write_bool(file, "bad_bt", &x->bad_bt, 1); + flipper_format_write_bool(file, "bad_bt_remember", &x->bad_bt_remember, 1); + flipper_format_write_int32(file, "butthurt_timer", &x->butthurt_timer, 1); + flipper_format_write_bool(file, "rgb_backlight", &x->rgb_backlight, 1); + } + flipper_format_free(file); + furi_record_close(RECORD_STORAGE); +} + +XtremeSettings* XTREME_SETTINGS() { + return &xtreme_settings; +} diff --git a/applications/services/xtreme/assets.h b/lib/xtreme/xtreme.h similarity index 55% rename from applications/services/xtreme/assets.h rename to lib/xtreme/xtreme.h index a4995fd04..63f457c27 100644 --- a/applications/services/xtreme/assets.h +++ b/lib/xtreme/xtreme.h @@ -1,14 +1,44 @@ #pragma once -#include "settings.h" #include -#include +#include #ifdef __cplusplus extern "C" { #endif -#define PACKS_DIR EXT_PATH("dolphin_custom") +#define XTREME_SETTINGS_PATH CFG_PATH("xtreme_settings.txt") +#define XTREME_ASSETS_PATH EXT_PATH("dolphin_custom") +#define XTREME_APPS_PATH CFG_PATH("xtreme_apps.txt") +#define XTREME_ASSETS_PACK_NAME_LEN 32 + +typedef struct { + char asset_pack[XTREME_ASSETS_PACK_NAME_LEN]; + uint32_t anim_speed; + int32_t cycle_anims; + bool unlock_anims; + bool fallback_anim; + bool wii_menu; + bool bad_pins_format; + bool lockscreen_time; + bool lockscreen_seconds; + bool lockscreen_date; + bool lockscreen_statusbar; + bool lockscreen_prompt; + BatteryIcon battery_icon; + bool status_icons; + bool bar_borders; + bool bar_background; + bool sort_dirs_first; + bool dark_mode; + bool bad_bt; + bool bad_bt_remember; + int32_t butthurt_timer; + bool rgb_backlight; +} XtremeSettings; + +XtremeSettings* XTREME_SETTINGS(); +void XTREME_SETTINGS_SAVE(); typedef struct { bool is_nsfw; @@ -39,8 +69,6 @@ typedef struct { const Icon* I_Error_62x31; } XtremeAssets; -void XTREME_ASSETS_LOAD(); - XtremeAssets* XTREME_ASSETS(); #ifdef __cplusplus