Who tf wrote this, and why? | Biggest stability update ever
Bro, what the fuck is this bullshit? I swear imma go cry if I see more shit like that...
@@ -3,28 +3,19 @@ App(
|
|||||||
name="Basic applications for main menu",
|
name="Basic applications for main menu",
|
||||||
apptype=FlipperAppType.METAPACKAGE,
|
apptype=FlipperAppType.METAPACKAGE,
|
||||||
provides=[
|
provides=[
|
||||||
"clock_loader",
|
"gpio",
|
||||||
# "gpio",
|
"ibutton",
|
||||||
"gpio_loader",
|
"infrared",
|
||||||
# "ibutton",
|
|
||||||
"ibutton_loader",
|
|
||||||
# "infrared",
|
|
||||||
"infrared_loader",
|
|
||||||
"lfrfid",
|
"lfrfid",
|
||||||
# "lfrfid_loader",
|
|
||||||
"nfc",
|
"nfc",
|
||||||
"subghz",
|
"subghz",
|
||||||
"sub_playlist_loader",
|
"bad_usb",
|
||||||
#"bad_usb",
|
"u2f",
|
||||||
"bad_usb_loader",
|
|
||||||
# "u2f",
|
|
||||||
"u2f_loader",
|
|
||||||
"fap_loader",
|
"fap_loader",
|
||||||
|
"sub_playlist",
|
||||||
"archive",
|
"archive",
|
||||||
# "Clock",
|
"clock",
|
||||||
#"SubGHz_Remote",
|
"unirfremix",
|
||||||
"SubGHz_Remote_loader",
|
|
||||||
# "Spectrum_Analyzer",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -45,55 +45,10 @@ static void archive_run_in_app(ArchiveBrowserView* browser, ArchiveFile_t* selec
|
|||||||
if(param != NULL) {
|
if(param != NULL) {
|
||||||
param++;
|
param++;
|
||||||
}
|
}
|
||||||
|
status = loader_start(loader, flipper_app_name[selected->type], param);
|
||||||
if(strcmp(flipper_app_name[selected->type], "U2F") == 0) {
|
|
||||||
char* tmpType = "/ext/apps/Main/U2F.fap¯";
|
|
||||||
char* result =
|
|
||||||
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
|
|
||||||
|
|
||||||
strcpy(result, tmpType);
|
|
||||||
strcat(result, furi_string_get_cstr(selected->path));
|
|
||||||
status = loader_start(loader, "Applications", result);
|
|
||||||
} else {
|
|
||||||
status = loader_start(loader, flipper_app_name[selected->type], param);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if(strcmp(flipper_app_name[selected->type], "iButton") == 0) {
|
status = loader_start(
|
||||||
char* tmpType = "/ext/apps/Main/ibutton.fap¯";
|
loader, flipper_app_name[selected->type], furi_string_get_cstr(selected->path));
|
||||||
char* result =
|
|
||||||
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
|
|
||||||
|
|
||||||
strcpy(result, tmpType);
|
|
||||||
strcat(result, furi_string_get_cstr(selected->path));
|
|
||||||
status = loader_start(loader, "Applications", result);
|
|
||||||
} else if(strcmp(flipper_app_name[selected->type], "Bad USB") == 0) {
|
|
||||||
char* tmpType = "/ext/apps/Main/bad_usb.fap¯";
|
|
||||||
char* result =
|
|
||||||
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
|
|
||||||
|
|
||||||
strcpy(result, tmpType);
|
|
||||||
strcat(result, furi_string_get_cstr(selected->path));
|
|
||||||
status = loader_start(loader, "Applications", result);
|
|
||||||
// } else if(strcmp(flipper_app_name[selected->type], "125 kHz RFID") == 0) {
|
|
||||||
// char* tmpType = "/ext/apps/Main/lfrfid.fap¯";
|
|
||||||
// char* result =
|
|
||||||
// malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
|
|
||||||
|
|
||||||
// strcpy(result, tmpType);
|
|
||||||
// strcat(result, furi_string_get_cstr(selected->path));
|
|
||||||
// status = loader_start(loader, "Applications", result);
|
|
||||||
} else if(strcmp(flipper_app_name[selected->type], "Infrared") == 0) {
|
|
||||||
char* tmpType = "/ext/apps/Main/infrared.fap¯";
|
|
||||||
char* result =
|
|
||||||
malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1);
|
|
||||||
|
|
||||||
strcpy(result, tmpType);
|
|
||||||
strcat(result, furi_string_get_cstr(selected->path));
|
|
||||||
status = loader_start(loader, "Applications", result);
|
|
||||||
} else {
|
|
||||||
status = loader_start(
|
|
||||||
loader, flipper_app_name[selected->type], furi_string_get_cstr(selected->path));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status != LoaderStatusOk) {
|
if(status != LoaderStatusOk) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
App(
|
App(
|
||||||
appid="bad_usb",
|
appid="bad_usb",
|
||||||
name="Bad USB",
|
name="Bad USB",
|
||||||
apptype=FlipperAppType.EXTERNAL,
|
apptype=FlipperAppType.APP,
|
||||||
entry_point="bad_usb_app",
|
entry_point="bad_usb_app",
|
||||||
cdefines=["APP_BAD_USB"],
|
cdefines=["APP_BAD_USB"],
|
||||||
requires=[
|
requires=[
|
||||||
@@ -9,10 +9,7 @@ App(
|
|||||||
"dialogs",
|
"dialogs",
|
||||||
],
|
],
|
||||||
stack_size=2 * 1024,
|
stack_size=2 * 1024,
|
||||||
# icon="A_BadUsb_14",
|
icon="A_BadUsb_14",
|
||||||
order=70,
|
order=70,
|
||||||
fap_category="Main",
|
|
||||||
fap_icon="badusb_10px.png",
|
|
||||||
fap_icon_assets="images",
|
|
||||||
fap_libs=["assets"],
|
fap_libs=["assets"],
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include "bad_usb_script.h"
|
#include "bad_usb_script.h"
|
||||||
|
|
||||||
#include <gui/gui.h>
|
#include <gui/gui.h>
|
||||||
#include <bad_usb_icons.h>
|
#include <assets_icons.h>
|
||||||
#include <gui/view_dispatcher.h>
|
#include <gui/view_dispatcher.h>
|
||||||
#include <gui/scene_manager.h>
|
#include <gui/scene_manager.h>
|
||||||
#include <gui/modules/submenu.h>
|
#include <gui/modules/submenu.h>
|
||||||
|
|||||||
@@ -462,14 +462,7 @@ static int32_t ducky_script_execute_next(BadUsbScript* bad_usb, File* script_fil
|
|||||||
return 0;
|
return 0;
|
||||||
} else if(delay_val < 0) {
|
} else if(delay_val < 0) {
|
||||||
bad_usb->st.error_line = bad_usb->st.line_cur;
|
bad_usb->st.error_line = bad_usb->st.line_cur;
|
||||||
if(delay_val == SCRIPT_STATE_NEXT_LINE) {
|
FURI_LOG_E(WORKER_TAG, "Unknown command at line %u", bad_usb->st.line_cur);
|
||||||
snprintf(
|
|
||||||
bad_usb->st.error, sizeof(bad_usb->st.error), "Forbidden empty line");
|
|
||||||
FURI_LOG_E(
|
|
||||||
WORKER_TAG, "Forbidden empty line at line %u", bad_usb->st.line_cur);
|
|
||||||
} else {
|
|
||||||
FURI_LOG_E(WORKER_TAG, "Unknown command at line %u", bad_usb->st.line_cur);
|
|
||||||
}
|
|
||||||
return SCRIPT_STATE_ERROR;
|
return SCRIPT_STATE_ERROR;
|
||||||
} else {
|
} else {
|
||||||
return (delay_val + bad_usb->defdelay);
|
return (delay_val + bad_usb->defdelay);
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 576 B |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 576 B |
|
Before Width: | Height: | Size: 147 B |
@@ -49,4 +49,4 @@ bool bad_usb_scene_file_select_on_event(void* context, SceneManagerEvent event)
|
|||||||
void bad_usb_scene_file_select_on_exit(void* context) {
|
void bad_usb_scene_file_select_on_exit(void* context) {
|
||||||
UNUSED(context);
|
UNUSED(context);
|
||||||
// BadUsbApp* bad_usb = context;
|
// BadUsbApp* bad_usb = context;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#include "../bad_usb_script.h"
|
#include "../bad_usb_script.h"
|
||||||
#include <toolbox/path.h>
|
#include <toolbox/path.h>
|
||||||
#include <gui/elements.h>
|
#include <gui/elements.h>
|
||||||
#include <bad_usb_icons.h>
|
#include <assets_icons.h>
|
||||||
#include "../../../settings/desktop_settings/desktop_settings_app.h"
|
#include "../../../settings/desktop_settings/desktop_settings_app.h"
|
||||||
|
|
||||||
#define MAX_NAME_LEN 64
|
#define MAX_NAME_LEN 64
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
App(
|
|
||||||
appid="bad_usb_loader",
|
|
||||||
name="Bad USB",
|
|
||||||
apptype=FlipperAppType.APP,
|
|
||||||
entry_point="bad_usb_loader_app",
|
|
||||||
requires=[
|
|
||||||
"gui",
|
|
||||||
"dialogs",
|
|
||||||
],
|
|
||||||
stack_size=int(2 * 1024),
|
|
||||||
icon="A_BadUsb_14",
|
|
||||||
order=70,
|
|
||||||
link="/ext/apps/Main/bad_usb.fap",
|
|
||||||
)
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#include <applications/services/loader/loader_i.h>
|
|
||||||
|
|
||||||
#define TAG "bad_usb_loader_app"
|
|
||||||
|
|
||||||
int32_t bad_usb_loader_app(void* p) {
|
|
||||||
UNUSED(p);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,14 +0,0 @@
|
|||||||
App(
|
|
||||||
appid="Clock",
|
|
||||||
name="Clock",
|
|
||||||
apptype=FlipperAppType.EXTERNAL,
|
|
||||||
entry_point="clock_app",
|
|
||||||
cdefines=["APP_CLOCK"],
|
|
||||||
requires=["gui"],
|
|
||||||
# icon="A_Clock_14",
|
|
||||||
stack_size=2 * 1024,
|
|
||||||
order=9,
|
|
||||||
fap_icon="ClockIcon.png",
|
|
||||||
fap_category="Main",
|
|
||||||
fap_icon_assets="icons",
|
|
||||||
)
|
|
||||||
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 633 B |
|
Before Width: | Height: | Size: 113 B |
|
Before Width: | Height: | Size: 116 B |
|
Before Width: | Height: | Size: 116 B |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
12
applications/main/clock_app/application.fam
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
App(
|
||||||
|
appid="clock",
|
||||||
|
name="Clock",
|
||||||
|
apptype=FlipperAppType.APP,
|
||||||
|
entry_point="clock_app",
|
||||||
|
cdefines=["APP_CLOCK"],
|
||||||
|
requires=["gui"],
|
||||||
|
icon="A_Clock_14",
|
||||||
|
stack_size=2 * 1024,
|
||||||
|
order=81,
|
||||||
|
)
|
||||||
|
|
||||||
@@ -36,4 +36,4 @@ typedef struct {
|
|||||||
uint32_t timer_start_timestamp;
|
uint32_t timer_start_timestamp;
|
||||||
uint32_t timer_stopped_seconds;
|
uint32_t timer_stopped_seconds;
|
||||||
bool timer_running;
|
bool timer_running;
|
||||||
} ClockState;
|
} ClockState;
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
App(
|
|
||||||
appid="clock_loader",
|
|
||||||
name="Clock",
|
|
||||||
apptype=FlipperAppType.APP,
|
|
||||||
entry_point="clock_loader_app",
|
|
||||||
requires=["gui"],
|
|
||||||
stack_size=int(1.5 * 1024),
|
|
||||||
icon="A_Clock_14",
|
|
||||||
order=9,
|
|
||||||
link="/ext/apps/Main/Clock.fap",
|
|
||||||
)
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#include <applications/services/loader/loader_i.h>
|
|
||||||
|
|
||||||
#define TAG "clock_loader_app"
|
|
||||||
|
|
||||||
int32_t clock_loader_app(void* p) {
|
|
||||||
UNUSED(p);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -17,7 +17,6 @@ struct FapLoader {
|
|||||||
DialogsApp* dialogs;
|
DialogsApp* dialogs;
|
||||||
Gui* gui;
|
Gui* gui;
|
||||||
FuriString* fap_path;
|
FuriString* fap_path;
|
||||||
FuriString* fap_args;
|
|
||||||
ViewDispatcher* view_dispatcher;
|
ViewDispatcher* view_dispatcher;
|
||||||
Loading* loading;
|
Loading* loading;
|
||||||
};
|
};
|
||||||
@@ -105,26 +104,14 @@ static bool fap_loader_run_selected_app(FapLoader* loader) {
|
|||||||
FURI_LOG_I(TAG, "Loaded in %ums", (size_t)(furi_get_tick() - start));
|
FURI_LOG_I(TAG, "Loaded in %ums", (size_t)(furi_get_tick() - start));
|
||||||
FURI_LOG_I(TAG, "FAP Loader is starting app");
|
FURI_LOG_I(TAG, "FAP Loader is starting app");
|
||||||
|
|
||||||
if(strcmp(furi_string_get_cstr(loader->fap_args), "false") == 0) {
|
FuriThread* thread = flipper_application_spawn(loader->app, NULL);
|
||||||
FuriThread* thread = flipper_application_spawn(loader->app, NULL);
|
furi_thread_start(thread);
|
||||||
furi_thread_start(thread);
|
furi_thread_join(thread);
|
||||||
furi_thread_join(thread);
|
|
||||||
|
|
||||||
show_error = false;
|
show_error = false;
|
||||||
int ret = furi_thread_get_return_code(thread);
|
int ret = furi_thread_get_return_code(thread);
|
||||||
|
|
||||||
FURI_LOG_I(TAG, "FAP app returned: %i", ret);
|
FURI_LOG_I(TAG, "FAP app returned: %i", ret);
|
||||||
} else {
|
|
||||||
FuriThread* thread = flipper_application_spawn(
|
|
||||||
loader->app, (void*)furi_string_get_cstr(loader->fap_args));
|
|
||||||
furi_thread_start(thread);
|
|
||||||
furi_thread_join(thread);
|
|
||||||
|
|
||||||
show_error = false;
|
|
||||||
int ret = furi_thread_get_return_code(thread);
|
|
||||||
|
|
||||||
FURI_LOG_I(TAG, "FAP app returned: %i", ret);
|
|
||||||
}
|
|
||||||
} while(0);
|
} while(0);
|
||||||
|
|
||||||
if(show_error) {
|
if(show_error) {
|
||||||
@@ -169,28 +156,8 @@ static bool fap_loader_select_app(FapLoader* loader) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static FapLoader* fap_loader_alloc(const char* path) {
|
static FapLoader* fap_loader_alloc(const char* path) {
|
||||||
FapLoader* loader = malloc(sizeof(FapLoader)); //-V773
|
FapLoader* loader = malloc(sizeof(FapLoader)); //-V799
|
||||||
|
loader->fap_path = furi_string_alloc_set(path);
|
||||||
char* tmp = malloc(strlen(path) + 1);
|
|
||||||
strcpy(tmp, path);
|
|
||||||
char* new_path;
|
|
||||||
|
|
||||||
new_path = strtok(tmp, "¯");
|
|
||||||
|
|
||||||
if(new_path) {
|
|
||||||
loader->fap_path = furi_string_alloc_set(new_path);
|
|
||||||
} else {
|
|
||||||
loader->fap_path = furi_string_alloc_set(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
new_path = strtok(NULL, "¯");
|
|
||||||
|
|
||||||
if(new_path) {
|
|
||||||
loader->fap_args = furi_string_alloc_set(new_path);
|
|
||||||
} else {
|
|
||||||
loader->fap_args = furi_string_alloc_set("false");
|
|
||||||
}
|
|
||||||
|
|
||||||
loader->storage = furi_record_open(RECORD_STORAGE);
|
loader->storage = furi_record_open(RECORD_STORAGE);
|
||||||
loader->dialogs = furi_record_open(RECORD_DIALOGS);
|
loader->dialogs = furi_record_open(RECORD_DIALOGS);
|
||||||
loader->gui = furi_record_open(RECORD_GUI);
|
loader->gui = furi_record_open(RECORD_GUI);
|
||||||
@@ -207,7 +174,6 @@ static void fap_loader_free(FapLoader* loader) {
|
|||||||
loading_free(loader->loading);
|
loading_free(loader->loading);
|
||||||
view_dispatcher_free(loader->view_dispatcher);
|
view_dispatcher_free(loader->view_dispatcher);
|
||||||
furi_string_free(loader->fap_path);
|
furi_string_free(loader->fap_path);
|
||||||
furi_string_free(loader->fap_args);
|
|
||||||
furi_record_close(RECORD_GUI);
|
furi_record_close(RECORD_GUI);
|
||||||
furi_record_close(RECORD_DIALOGS);
|
furi_record_close(RECORD_DIALOGS);
|
||||||
furi_record_close(RECORD_STORAGE);
|
furi_record_close(RECORD_STORAGE);
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
App(
|
App(
|
||||||
appid="gpio",
|
appid="gpio",
|
||||||
name="GPIO",
|
name="GPIO",
|
||||||
apptype=FlipperAppType.EXTERNAL,
|
apptype=FlipperAppType.APP,
|
||||||
entry_point="gpio_app",
|
entry_point="gpio_app",
|
||||||
cdefines=["APP_GPIO"],
|
cdefines=["APP_GPIO"],
|
||||||
requires=["gui"],
|
requires=["gui"],
|
||||||
stack_size=1 * 1024,
|
stack_size=1 * 1024,
|
||||||
# icon="A_GPIO_14",
|
icon="A_GPIO_14",
|
||||||
order=50,
|
order=50,
|
||||||
fap_icon="gpioIcon.png",
|
|
||||||
fap_category="Main",
|
|
||||||
fap_icon_assets="images",
|
|
||||||
fap_libs=["assets"],
|
fap_libs=["assets"],
|
||||||
)
|
)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -17,7 +17,7 @@
|
|||||||
#include "views/gpio_usb_uart.h"
|
#include "views/gpio_usb_uart.h"
|
||||||
#include "views/gpio_i2c_scanner.h"
|
#include "views/gpio_i2c_scanner.h"
|
||||||
#include "views/gpio_i2c_sfp.h"
|
#include "views/gpio_i2c_sfp.h"
|
||||||
#include <gpio_icons.h>
|
#include <assets_icons.h>
|
||||||
|
|
||||||
struct GpioApp {
|
struct GpioApp {
|
||||||
Gui* gui;
|
Gui* gui;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 654 B |
|
Before Width: | Height: | Size: 669 B |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,14 +0,0 @@
|
|||||||
App(
|
|
||||||
appid="gpio_loader",
|
|
||||||
name="GPIO",
|
|
||||||
apptype=FlipperAppType.APP,
|
|
||||||
entry_point="gpio_loader_app",
|
|
||||||
requires=[
|
|
||||||
"gui",
|
|
||||||
"storage",
|
|
||||||
],
|
|
||||||
stack_size=int(1.5 * 1024),
|
|
||||||
icon="A_GPIO_14",
|
|
||||||
order=50,
|
|
||||||
link="/ext/apps/Main/gpio.fap",
|
|
||||||
)
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#include <applications/services/loader/loader_i.h>
|
|
||||||
|
|
||||||
#define TAG "gpio_loader_app"
|
|
||||||
|
|
||||||
int32_t gpio_loader_app(void* p) {
|
|
||||||
UNUSED(p);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1,18 +1,24 @@
|
|||||||
App(
|
App(
|
||||||
appid="ibutton",
|
appid="ibutton",
|
||||||
name="iButton",
|
name="iButton",
|
||||||
apptype=FlipperAppType.EXTERNAL,
|
apptype=FlipperAppType.APP,
|
||||||
entry_point="ibutton_app",
|
entry_point="ibutton_app",
|
||||||
cdefines=["APP_IBUTTON"],
|
cdefines=["APP_IBUTTON"],
|
||||||
requires=[
|
requires=[
|
||||||
"gui",
|
"gui",
|
||||||
"dialogs",
|
"dialogs",
|
||||||
],
|
],
|
||||||
# icon="A_iButton_14",
|
provides=["ibutton_start"],
|
||||||
|
icon="A_iButton_14",
|
||||||
stack_size=2 * 1024,
|
stack_size=2 * 1024,
|
||||||
order=60,
|
order=60,
|
||||||
fap_icon="iBIcon.png",
|
|
||||||
fap_category="Main",
|
|
||||||
fap_icon_assets="images",
|
|
||||||
fap_libs=["assets"],
|
fap_libs=["assets"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
App(
|
||||||
|
appid="ibutton_start",
|
||||||
|
apptype=FlipperAppType.STARTUP,
|
||||||
|
entry_point="ibutton_on_system_start",
|
||||||
|
requires=["ibutton"],
|
||||||
|
order=60,
|
||||||
|
)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,4 +1,5 @@
|
|||||||
#include "ibutton.h"
|
#include "ibutton.h"
|
||||||
|
#include "assets_icons.h"
|
||||||
#include "ibutton_i.h"
|
#include "ibutton_i.h"
|
||||||
#include "ibutton/scenes/ibutton_scene.h"
|
#include "ibutton/scenes/ibutton_scene.h"
|
||||||
#include <toolbox/path.h>
|
#include <toolbox/path.h>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#include <gui/gui.h>
|
#include <gui/gui.h>
|
||||||
#include <gui/view.h>
|
#include <gui/view.h>
|
||||||
#include "ibutton_icons.h"
|
#include <assets_icons.h>
|
||||||
#include <gui/view_dispatcher.h>
|
#include <gui/view_dispatcher.h>
|
||||||
#include <gui/scene_manager.h>
|
#include <gui/scene_manager.h>
|
||||||
#include <notification/notification_messages.h>
|
#include <notification/notification_messages.h>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 304 B |
@@ -1,14 +0,0 @@
|
|||||||
App(
|
|
||||||
appid="ibutton_loader",
|
|
||||||
name="iButton",
|
|
||||||
apptype=FlipperAppType.APP,
|
|
||||||
entry_point="ibutton_loader_app",
|
|
||||||
requires=[
|
|
||||||
"gui",
|
|
||||||
"storage",
|
|
||||||
],
|
|
||||||
stack_size=int(1.5 * 1024),
|
|
||||||
icon="A_iButton_14",
|
|
||||||
order=60,
|
|
||||||
link="/ext/apps/Main/ibutton.fap",
|
|
||||||
)
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#include <applications/services/loader/loader_i.h>
|
|
||||||
|
|
||||||
#define TAG "ibutton_loader_app"
|
|
||||||
|
|
||||||
int32_t ibutton_loader_app(void* p) {
|
|
||||||
UNUSED(p);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1,19 +1,24 @@
|
|||||||
App(
|
App(
|
||||||
appid="infrared",
|
appid="infrared",
|
||||||
name="Infrared",
|
name="Infrared",
|
||||||
apptype=FlipperAppType.EXTERNAL,
|
apptype=FlipperAppType.APP,
|
||||||
entry_point="infrared_app",
|
entry_point="infrared_app",
|
||||||
cdefines=["APP_INFRARED"],
|
cdefines=["APP_INFRARED"],
|
||||||
requires=[
|
requires=[
|
||||||
"gui",
|
"gui",
|
||||||
"dialogs",
|
"dialogs",
|
||||||
],
|
],
|
||||||
# provides=["infrared_start"],
|
provides=["infrared_start"],
|
||||||
# icon="A_Infrared_14",
|
icon="A_Infrared_14",
|
||||||
stack_size=3 * 1024,
|
stack_size=3 * 1024,
|
||||||
order=40,
|
order=40,
|
||||||
fap_category="Main",
|
|
||||||
fap_icon="ir_10px.png",
|
|
||||||
fap_icon_assets="images",
|
|
||||||
fap_libs=["assets"],
|
fap_libs=["assets"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
App(
|
||||||
|
appid="infrared_start",
|
||||||
|
apptype=FlipperAppType.STARTUP,
|
||||||
|
entry_point="infrared_on_system_start",
|
||||||
|
requires=["infrared"],
|
||||||
|
order=20,
|
||||||
|
)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 250 B |
|
Before Width: | Height: | Size: 237 B |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 313 B |
|
Before Width: | Height: | Size: 306 B |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |