mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-17 04:34:44 -07:00
Asset Packs: Optimize icon loader (#164)
* Original pointer can be const * Back to const icons * Missed this one * Simpler string alloc * Single allocation and header struct for static icons * Shared allocation and meta struct for animated icons * Only try to load if dir exists * Restructure momentum lib * Use some internal headers * Swap icons at draw * Properly init and free, no more original in icon struct
This commit is contained in:
@@ -1,117 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <furi_hal_serial_types.h>
|
||||
#include <furi_hal_version.h>
|
||||
#include <toolbox/colors.h>
|
||||
#include <gui/canvas.h>
|
||||
// Keep momentum.h for backwards compatibility and for SDK header
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define MOMENTUM_SETTINGS_PATH CFG_PATH("momentum_settings.txt")
|
||||
#define ASSET_PACKS_PATH EXT_PATH("asset_packs")
|
||||
#define MAINMENU_APPS_PATH CFG_PATH("mainmenu_apps.txt")
|
||||
#define ASSET_PACKS_NAME_LEN 32
|
||||
|
||||
typedef enum {
|
||||
BatteryIconOff,
|
||||
BatteryIconBar,
|
||||
BatteryIconPercent,
|
||||
BatteryIconInvertedPercent,
|
||||
BatteryIconRetro3,
|
||||
BatteryIconRetro5,
|
||||
BatteryIconBarPercent,
|
||||
BatteryIconCount,
|
||||
} BatteryIcon;
|
||||
|
||||
typedef enum {
|
||||
MenuStyleList,
|
||||
MenuStyleWii,
|
||||
MenuStyleDsi,
|
||||
MenuStylePs4,
|
||||
MenuStyleVertical,
|
||||
MenuStyleC64,
|
||||
MenuStyleCompact,
|
||||
MenuStyleMNTM,
|
||||
MenuStyleCount,
|
||||
} MenuStyle;
|
||||
|
||||
typedef enum {
|
||||
SpiDefault, // cs on pa4
|
||||
SpiExtra, // cs on pc3
|
||||
SpiCount,
|
||||
} SpiHandle;
|
||||
|
||||
typedef enum {
|
||||
ScreenColorModeDefault,
|
||||
ScreenColorModeCustom,
|
||||
ScreenColorModeRainbow,
|
||||
ScreenColorModeRgbBacklight,
|
||||
ScreenColorModeCount,
|
||||
} ScreenColorMode;
|
||||
|
||||
typedef union __attribute__((packed)) {
|
||||
struct {
|
||||
ScreenColorMode mode;
|
||||
RgbColor rgb;
|
||||
};
|
||||
uint32_t value;
|
||||
} ScreenFrameColor;
|
||||
|
||||
typedef struct {
|
||||
char asset_pack[ASSET_PACKS_NAME_LEN];
|
||||
uint32_t anim_speed;
|
||||
int32_t cycle_anims;
|
||||
bool unlock_anims;
|
||||
MenuStyle menu_style;
|
||||
bool lock_on_boot;
|
||||
bool bad_pins_format;
|
||||
bool allow_locked_rpc_commands;
|
||||
bool lockscreen_poweroff;
|
||||
bool lockscreen_time;
|
||||
bool lockscreen_seconds;
|
||||
bool lockscreen_date;
|
||||
bool lockscreen_statusbar;
|
||||
bool lockscreen_prompt;
|
||||
bool lockscreen_transparent;
|
||||
BatteryIcon battery_icon;
|
||||
bool statusbar_clock;
|
||||
bool status_icons;
|
||||
bool bar_borders;
|
||||
bool bar_background;
|
||||
bool sort_dirs_first;
|
||||
bool show_hidden_files;
|
||||
bool show_internal_tab;
|
||||
uint32_t favorite_timeout;
|
||||
bool dark_mode;
|
||||
bool rgb_backlight;
|
||||
uint32_t butthurt_timer;
|
||||
uint32_t charge_cap;
|
||||
SpiHandle spi_cc1101_handle;
|
||||
SpiHandle spi_nrf24_handle;
|
||||
FuriHalSerialId uart_esp_channel;
|
||||
FuriHalSerialId uart_nmea_channel;
|
||||
bool file_naming_prefix_after;
|
||||
FuriHalVersionColor spoof_color;
|
||||
ScreenFrameColor rpc_color_fg;
|
||||
ScreenFrameColor rpc_color_bg;
|
||||
} MomentumSettings;
|
||||
|
||||
typedef struct {
|
||||
uint8_t* fonts[FontTotalNumber];
|
||||
CanvasFontParameters* font_params[FontTotalNumber];
|
||||
} AssetPacks;
|
||||
|
||||
void momentum_settings_load(void);
|
||||
void momentum_settings_save(void);
|
||||
extern MomentumSettings momentum_settings;
|
||||
|
||||
void asset_packs_init(void);
|
||||
void asset_packs_free(void);
|
||||
extern AssetPacks asset_packs;
|
||||
#include "asset_packs.h"
|
||||
#include "settings.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user