Files
Momentum-Firmware/lib/momentum/momentum.h
HaxSam 2319475dd0 VGM/RPC: Rework custom colors, smoother config, better rainbow support (#53)
* first poc works

* rainbow mode now works over rpc

still not done refrash rate from flipper change and is slow so the rainbow mode doesnt look good

* transmit VgmMode

* use all the 32bit

* some config stuff

* sync apps

* Change protobuf repo

* Some lib naming changes and cleanup

* Format protobuf

* Update from RGB backlight if enabled

* Remove old expansion toggling

* Update settings UI

* Fix searching previous value

* VGM Tool: Add new RGB firmware

* Update changelog

* These are unused

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-06-02 08:41:47 +01:00

119 lines
2.7 KiB
C

#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>
#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;
#ifdef __cplusplus
}
#endif