[FL-2675] /int space reservation (#1448)

* storage: added global #defines for /int, /ext & /any
* storage: introduced PATH_EXT, PATH_INT& PATH_ANY macros
* core apps: moved hardcoded config files names to separate headers; prefixed them with "."; updater: added file name migration to new naming convention on backup extraction
* storage: fixed storage_merge_recursive handling of complex directory structures; storage_move_to_sd: changed data migration logic to all non-dot files & all folders
* core: added macro aliases for core record names
* Bumped protobuf commit pointer
* storage: reserved 5 pages in /int; denying write&creation of non-dot files when running out of free space

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
hedger
2022-07-26 15:21:51 +03:00
committed by GitHub
parent 52a83fc929
commit 056446dfed
171 changed files with 1111 additions and 910 deletions

View File

@@ -1,15 +1,18 @@
#include "assets_icons.h"
#include "m-string.h"
#include "music_player_worker.h"
#include <furi.h>
#include <furi_hal.h>
#include <assets_icons.h>
#include <gui/gui.h>
#include <dialogs/dialogs.h>
#include "music_player_worker.h"
#include <storage/storage.h>
#include <m-string.h>
#define TAG "MusicPlayer"
#define MUSIC_PLAYER_APP_PATH_FOLDER "/any/music_player"
#define MUSIC_PLAYER_APP_PATH_FOLDER ANY_PATH("music_player")
#define MUSIC_PLAYER_APP_EXTENSION "*"
#define MUSIC_PLAYER_SEMITONE_HISTORY_SIZE 4
@@ -269,7 +272,7 @@ MusicPlayer* music_player_alloc() {
view_port_input_callback_set(instance->view_port, input_callback, instance);
// Open GUI and register view_port
instance->gui = furi_record_open("gui");
instance->gui = furi_record_open(RECORD_GUI);
gui_add_view_port(instance->gui, instance->view_port, GuiLayerFullscreen);
return instance;
@@ -277,7 +280,7 @@ MusicPlayer* music_player_alloc() {
void music_player_free(MusicPlayer* instance) {
gui_remove_view_port(instance->gui, instance->view_port);
furi_record_close("gui");
furi_record_close(RECORD_GUI);
view_port_free(instance->view_port);
music_player_worker_free(instance->worker);
@@ -302,7 +305,7 @@ int32_t music_player_app(void* p) {
} else {
string_set_str(file_path, MUSIC_PLAYER_APP_PATH_FOLDER);
DialogsApp* dialogs = furi_record_open("dialogs");
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
bool res = dialog_file_browser_show(
dialogs,
file_path,
@@ -312,7 +315,7 @@ int32_t music_player_app(void* p) {
&I_music_10px,
false);
furi_record_close("dialogs");
furi_record_close(RECORD_DIALOGS);
if(!res) {
FURI_LOG_E(TAG, "No file selected");
break;

View File

@@ -6,7 +6,7 @@
static void music_player_cli(Cli* cli, string_t args, void* context) {
UNUSED(context);
MusicPlayerWorker* music_player_worker = music_player_worker_alloc();
Storage* storage = furi_record_open("storage");
Storage* storage = furi_record_open(RECORD_STORAGE);
do {
if(storage_common_stat(storage, string_get_cstr(args), NULL) == FSE_OK) {
@@ -31,17 +31,17 @@ static void music_player_cli(Cli* cli, string_t args, void* context) {
music_player_worker_stop(music_player_worker);
} while(0);
furi_record_close("storage");
furi_record_close(RECORD_STORAGE);
music_player_worker_free(music_player_worker);
}
void music_player_on_system_start() {
#ifdef SRV_CLI
Cli* cli = furi_record_open("cli");
Cli* cli = furi_record_open(RECORD_CLI);
cli_add_command(cli, "music_player", CliCommandFlagDefault, music_player_cli, NULL);
furi_record_close("cli");
furi_record_close(RECORD_CLI);
#else
UNUSED(music_player_cli);
#endif

View File

@@ -329,7 +329,7 @@ bool music_player_worker_load_fmf_from_file(MusicPlayerWorker* instance, const c
string_t temp_str;
string_init(temp_str);
Storage* storage = furi_record_open("storage");
Storage* storage = furi_record_open(RECORD_STORAGE);
FlipperFormat* file = flipper_format_file_alloc(storage);
do {
@@ -367,7 +367,7 @@ bool music_player_worker_load_fmf_from_file(MusicPlayerWorker* instance, const c
result = true;
} while(false);
furi_record_close("storage");
furi_record_close(RECORD_STORAGE);
flipper_format_free(file);
string_clear(temp_str);
@@ -381,7 +381,7 @@ bool music_player_worker_load_rtttl_from_file(MusicPlayerWorker* instance, const
bool result = false;
string_t content;
string_init(content);
Storage* storage = furi_record_open("storage");
Storage* storage = furi_record_open(RECORD_STORAGE);
File* file = storage_file_alloc(storage);
do {
@@ -414,7 +414,7 @@ bool music_player_worker_load_rtttl_from_file(MusicPlayerWorker* instance, const
} while(0);
storage_file_free(file);
furi_record_close("storage");
furi_record_close(RECORD_STORAGE);
string_clear(content);
return result;