Merge branch 'dev' of https://github.com/Flipper-XFW/Xtreme-Firmware into new-app-system

This commit is contained in:
Willy-JL
2023-11-14 23:34:50 +00:00
47 changed files with 241 additions and 1570 deletions

View File

@@ -23,15 +23,15 @@ void ibutton_scene_emulate_on_enter(void* context) {
furi_string_printf(
tmp,
"%s\n[%s]",
furi_string_empty(ibutton->file_path) ? "Unsaved Key" : ibutton->key_name,
ibutton_protocols_get_name(ibutton->protocols, ibutton_key_get_protocol_id(key)));
"[%s]\n%s",
ibutton_protocols_get_name(ibutton->protocols, ibutton_key_get_protocol_id(key)),
furi_string_empty(ibutton->file_path) ? "Unsaved Key" : ibutton->key_name);
widget_add_text_box_element(
widget, 52, 38, 75, 26, AlignCenter, AlignCenter, furi_string_get_cstr(tmp), true);
widget, 52, 30, 75, 40, AlignCenter, AlignCenter, furi_string_get_cstr(tmp), true);
widget_add_string_multiline_element(
widget, 88, 10, AlignCenter, AlignTop, FontPrimary, "iButton\nemulating");
widget, 88, 5, AlignCenter, AlignTop, FontPrimary, "iButton\nemulating");
ibutton_worker_emulate_set_callback(ibutton->worker, ibutton_scene_emulate_callback, ibutton);
ibutton_worker_emulate_start(ibutton->worker, key);

View File

@@ -11,12 +11,12 @@ void ibutton_scene_info_on_enter(void* context) {
furi_string_printf(
tmp,
"\e#%s [%s]\e#",
"\e#%s\n[%s]\e#",
ibutton->key_name,
ibutton_protocols_get_name(ibutton->protocols, protocol_id));
widget_add_text_box_element(
widget, 0, 2, 128, 12, AlignLeft, AlignTop, furi_string_get_cstr(tmp), true);
widget, 0, 2, 128, 40, AlignLeft, AlignTop, furi_string_get_cstr(tmp), true);
furi_string_reset(tmp);
ibutton_protocols_render_brief_data(ibutton->protocols, key, tmp);

View File

@@ -42,12 +42,12 @@ void ibutton_scene_write_on_enter(void* context) {
furi_string_printf(
tmp,
"%s\n[%s]",
ibutton->key_name,
ibutton_protocols_get_name(ibutton->protocols, protocol_id));
"[%s]\n%s",
ibutton_protocols_get_name(ibutton->protocols, protocol_id),
ibutton->key_name);
widget_add_text_box_element(
widget, 52, 38, 75, 26, AlignCenter, AlignCenter, furi_string_get_cstr(tmp), true);
widget, 52, 30, 75, 40, AlignCenter, AlignCenter, furi_string_get_cstr(tmp), true);
ibutton_worker_write_set_callback(worker, ibutton_scene_write_callback, ibutton);
@@ -63,7 +63,7 @@ void ibutton_scene_write_on_enter(void* context) {
}
widget_add_string_multiline_element(
widget, 88, 10, AlignCenter, AlignTop, FontPrimary, furi_string_get_cstr(tmp));
widget, 88, 5, AlignCenter, AlignTop, FontPrimary, furi_string_get_cstr(tmp));
ibutton_notification_message(ibutton, iButtonNotificationMessageEmulateStart);
view_dispatcher_switch_to_view(ibutton->view_dispatcher, iButtonViewWidget);

View File

@@ -167,16 +167,16 @@ static InfraredApp* infrared_alloc() {
view_dispatcher_add_view(
view_dispatcher, InfraredViewTextInput, text_input_get_view(infrared->text_input));
infrared->dialog_ex = dialog_ex_alloc();
view_dispatcher_add_view(
view_dispatcher, InfraredViewDialogEx, dialog_ex_get_view(infrared->dialog_ex));
infrared->variable_item_list = variable_item_list_alloc();
view_dispatcher_add_view(
infrared->view_dispatcher,
InfraredViewVariableItemList,
variable_item_list_get_view(infrared->variable_item_list));
infrared->dialog_ex = dialog_ex_alloc();
view_dispatcher_add_view(
view_dispatcher, InfraredViewDialogEx, dialog_ex_get_view(infrared->dialog_ex));
infrared->button_menu = button_menu_alloc();
view_dispatcher_add_view(
view_dispatcher, InfraredViewButtonMenu, button_menu_get_view(infrared->button_menu));
@@ -224,12 +224,12 @@ static void infrared_free(InfraredApp* infrared) {
view_dispatcher_remove_view(view_dispatcher, InfraredViewTextInput);
text_input_free(infrared->text_input);
view_dispatcher_remove_view(infrared->view_dispatcher, InfraredViewVariableItemList);
variable_item_list_free(infrared->variable_item_list);
view_dispatcher_remove_view(view_dispatcher, InfraredViewDialogEx);
dialog_ex_free(infrared->dialog_ex);
view_dispatcher_remove_view(infrared->view_dispatcher, InfraredViewVariableItemList);
variable_item_list_free(infrared->variable_item_list);
view_dispatcher_remove_view(view_dispatcher, InfraredViewButtonMenu);
button_menu_free(infrared->button_menu);
@@ -271,11 +271,6 @@ static void infrared_free(InfraredApp* infrared) {
furi_string_free(infrared->file_path);
furi_string_free(infrared->button_name);
// Disable 5v power if was enabled for external module
if(furi_hal_power_is_otg_enabled()) {
furi_hal_power_disable_otg();
}
free(infrared);
}

View File

@@ -15,10 +15,10 @@
#include <gui/modules/loading.h>
#include <gui/modules/submenu.h>
#include <gui/modules/dialog_ex.h>
#include <gui/modules/variable_item_list.h>
#include <gui/modules/text_input.h>
#include <gui/modules/button_menu.h>
#include <gui/modules/button_panel.h>
#include <gui/modules/variable_item_list.h>
#include <storage/storage.h>
#include <dialogs/dialogs.h>
@@ -109,10 +109,10 @@ struct InfraredApp {
Submenu* submenu; /**< Standard view for displaying application menus. */
TextInput* text_input; /**< Standard view for receiving user text input. */
VariableItemList* variable_item_list; /**< Standard view for displaying option menus. */
DialogEx* dialog_ex; /**< Standard view for displaying dialogs. */
ButtonMenu* button_menu; /**< Custom view for interacting with IR remotes. */
Popup* popup; /**< Standard view for displaying messages. */
VariableItemList* variable_item_list;
ViewStack* view_stack; /**< Standard view for displaying stacked interfaces. */
InfraredDebugView* debug_view; /**< Custom view for displaying debug information. */
@@ -137,13 +137,13 @@ struct InfraredApp {
typedef enum {
InfraredViewSubmenu,
InfraredViewTextInput,
InfraredViewVariableItemList,
InfraredViewDialogEx,
InfraredViewButtonMenu,
InfraredViewPopup,
InfraredViewStack,
InfraredViewDebugView,
InfraredViewMove,
InfraredViewVariableItemList,
} InfraredView;
/**

View File

@@ -1,7 +1,7 @@
Filetype: IR library file
Version: 1
# Last Updated 1st Oct, 2023
# Last Checked 1st Oct, 2023
# Last Updated 29th Oct, 2023
# Last Checked 29th Oct, 2023
#
name: Power
type: parsed
@@ -2393,3 +2393,69 @@ type: parsed
protocol: NECext
address: 69 69 00 00
command: 0E F1 00 00
#
name: Power
type: parsed
protocol: NECext
address: 01 3E 00 00
command: 0A F5 00 00
#
name: Mute
type: parsed
protocol: NECext
address: 01 3E 00 00
command: 0B F4 00 00
#
name: Vol_up
type: parsed
protocol: NECext
address: 01 3E 00 00
command: 1E E1 00 00
#
name: Vol_dn
type: parsed
protocol: NECext
address: 01 3E 00 00
command: 5F A0 00 00
#
name: Ch_next
type: parsed
protocol: NECext
address: 01 3E 00 00
command: 1F E0 00 00
#
name: Ch_prev
type: parsed
protocol: NECext
address: 01 3E 00 00
command: 5C A3 00 00
#
name: Power
type: parsed
protocol: NEC
address: 38 00 00 00
command: 01 00 00 00
#
name: Vol_up
type: parsed
protocol: NEC
address: 38 00 00 00
command: 0C 00 00 00
#
name: Vol_dn
type: parsed
protocol: NEC
address: 38 00 00 00
command: 10 00 00 00
#
name: Ch_next
type: parsed
protocol: NEC
address: 38 00 00 00
command: 18 00 00 00
#
name: Ch_prev
type: parsed
protocol: NEC
address: 38 00 00 00
command: 1C 00 00 00

View File

@@ -4012,3 +4012,96 @@ AA4DDA458EBB
CA80E51FA52B
C2A0105EB028
67B1B3A4E497
##############################################
# STB - keys from Bucharest Public Transport
# Found with FlipperNestedRecovery by Z3r0L1nk
330075000850
2FA9B556A4F6
91B1B62402D5
9AE05868233F
6D2BF79566A8
60D53F070572
09F4EC8D7A66
D017A84BB582
1719EB5DAC66
96AECCC0F7EB
A64536FAC799
7BF0BE85080F
E9B376925A00
44B61F116125
E861FDE1B59F
5CD02DAD8ADE
5FA28B8E8BA4
C497C3BE8273
B1EEAA640EF6
1E13EFF32CE2
D6818C29ED9B
050BF33DC217
41CD3CD99DD5
02DB253DC0C7
25467EB0212F
DF7C4EC20B50
5703815494EF
9F14D35BAC08
F697E87E759D
D9762D114AE5
AC935925A876
5AD3FC074A4C
19BA6776233F
EEF144866688
C34FAA1931CA
8A0DFD9B7AEA
D3AEB15D410B
251BDBF1C71D
286A8893AC6F
6A86C1895A21
D7142E0F6D0D
B0A3212D47A5
1581C317B073
8EF0AA6432FA
AD00EFD353E4
439FB891279F
141DF3B1C017
58DBC850A4D5
14CD299DC0C7
B48D7E4E508F
32774E46C64F
61152534ACEF
280FD37AD407
C789E4568B99
122F595302AA
84A3FD4BA0C6
B0D58BF147B7
15B35D0BF715
##############################################
# Metrorex - keys from Subway Bucharest Public Transport
# Found with FlipperNestedRecovery by Z3r0L1nk
7246FCE86427
1415FFFED68D
8C524B535E1D
0FC4B1D2EBBA
280713CBA260
EDC9CC9109A2
DCD003CF0EA3
DD30A13519C3
8A35039F6CD6
538BF58687EB
E3007FA4F781
F654D6C7004F
7C20975C6EC9
C992F85B2DDD
156EED7C5F9D
16785FD65BA7
A2D5D7469472
585462E190F2
FA4D2B3BAFEA
251780F9FBE6
EA4987F8D096
48B390984150
EA19E58DD046
1C000EB0752F
96227EDADBCF
3F41891454EE
7EDAE7923287
11DDA4862A1C
##############################################

View File

@@ -93,8 +93,9 @@ static void updater_main_draw_callback(Canvas* canvas, void* _model) {
canvas_draw_icon(canvas, 7, 54, &I_Ok_btn_9x9);
canvas_draw_icon(canvas, 75, 55, &I_Pin_back_arrow_10x8);
} else {
canvas_draw_str_aligned(canvas, 55, 14, AlignLeft, AlignTop, "UPDATING");
canvas_draw_str_aligned(canvas, 82, 16, AlignCenter, AlignTop, "Xtreme FW");
canvas_set_font(canvas, FontSecondary);
canvas_draw_str_aligned(canvas, 82, 6, AlignCenter, AlignTop, "Installing");
canvas_draw_str_aligned(
canvas, 64, 51, AlignCenter, AlignTop, furi_string_get_cstr(model->status));
canvas_draw_icon(canvas, 4, 5, &I_Updating_32x40);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -31,7 +31,7 @@ bool subghz_protocol_secplus_v2_create_data(
* @param flipper_format Pointer to a FlipperFormat instance
* @param serial Serial number, 28 bit
* @param btn Button number, 4 bit
* @param cnt Container value, 16 bit
* @param cnt Counter value, 16 bit
* @param manufacture_name Name of manufacturer's key
* @param preset Modulation, SubGhzRadioPreset
* @return true On success
@@ -107,6 +107,22 @@ bool subghz_protocol_alutech_at_4n_create_data(
uint16_t cnt,
SubGhzRadioPreset* preset);
/**
* Key generation from simple data.
* @param context Pointer to a SubGhzProtocolEncoderCameAtomo instance
* @param flipper_format Pointer to a FlipperFormat instance
* @param serial Serial number, 24 bit
* @param cnt Counter value, 16 bit
* @param preset Modulation, SubGhzRadioPreset
* @return true On success
*/
bool subghz_protocol_came_atomo_create_data(
void* context,
FlipperFormat* flipper_format,
uint32_t serial,
uint16_t cnt,
SubGhzRadioPreset* preset);
/**
* New remote generation.
* @param context Pointer to a SubGhzProtocolEncoderNiceFlorS instance
@@ -129,18 +145,22 @@ bool subghz_protocol_nice_flor_s_create_data(
/**
* Key generation from simple data.
* @param context Pointer to a SubGhzProtocolEncoderCameAtomo instance
* @param context Pointer to a SubGhzProtocolEncoderStarLine instance
* @param flipper_format Pointer to a FlipperFormat instance
* @param serial Serial number, 24 bit
* @param btn Button number, 8 bit
* @param cnt Counter value, 16 bit
* @param manufacture_name Name of manufacturer's key
* @param preset Modulation, SubGhzRadioPreset
* @return true On success
*/
bool subghz_protocol_came_atomo_create_data(
bool subghz_protocol_star_line_create_data(
void* context,
FlipperFormat* flipper_format,
uint32_t serial,
uint8_t btn,
uint16_t cnt,
const char* manufacture_name,
SubGhzRadioPreset* preset);
/**
@@ -161,6 +181,24 @@ bool subghz_protocol_somfy_telis_create_data(
uint16_t cnt,
SubGhzRadioPreset* preset);
/**
* Key generation from simple data.
* @param context Pointer to a SubGhzProtocolEncoderSomfyKeytis instance
* @param flipper_format Pointer to a FlipperFormat instance
* @param serial Serial number, 24 bit
* @param btn Button number, 8 bit
* @param cnt Counter value, 16 bit
* @param preset Modulation, SubGhzRadioPreset
* @return true On success
*/
bool subghz_protocol_somfy_keytis_create_data(
void* context,
FlipperFormat* flipper_format,
uint32_t serial,
uint8_t btn,
uint16_t cnt,
SubGhzRadioPreset* preset);
typedef struct SubGhzProtocolDecoderBinRAW SubGhzProtocolDecoderBinRAW;
void subghz_protocol_decoder_bin_raw_data_input_rssi(

View File

@@ -24,24 +24,6 @@ void* subghz_protocol_encoder_somfy_keytis_alloc(SubGhzEnvironment* environment)
*/
void subghz_protocol_encoder_somfy_keytis_free(void* context);
/**
* Key generation from simple data.
* @param context Pointer to a SubGhzProtocolEncoderSomfyKeytis instance
* @param flipper_format Pointer to a FlipperFormat instance
* @param serial Serial number, 24 bit
* @param btn Button number, 8 bit
* @param cnt Counter value, 16 bit
* @param preset Modulation, SubGhzRadioPreset
* @return true On success
*/
bool subghz_protocol_somfy_keytis_create_data(
void* context,
FlipperFormat* flipper_format,
uint32_t serial,
uint8_t btn,
uint16_t cnt,
SubGhzRadioPreset* preset);
/**
* Deserialize and generating an upload to send.
* @param context Pointer to a SubGhzProtocolEncoderSomfyKeytis instance

View File

@@ -24,26 +24,6 @@ void* subghz_protocol_encoder_star_line_alloc(SubGhzEnvironment* environment);
*/
void subghz_protocol_encoder_star_line_free(void* context);
/**
* Key generation from simple data.
* @param context Pointer to a SubGhzProtocolEncoderStarLine instance
* @param flipper_format Pointer to a FlipperFormat instance
* @param serial Serial number, 24 bit
* @param btn Button number, 8 bit
* @param cnt Counter value, 16 bit
* @param manufacture_name Name of manufacturer's key
* @param preset Modulation, SubGhzRadioPreset
* @return true On success
*/
bool subghz_protocol_star_line_create_data(
void* context,
FlipperFormat* flipper_format,
uint32_t serial,
uint8_t btn,
uint16_t cnt,
const char* manufacture_name,
SubGhzRadioPreset* preset);
/**
* Deserialize and generating an upload to send.
* @param context Pointer to a SubGhzProtocolEncoderStarLine instance

View File

@@ -296,8 +296,17 @@ def _validate_app_imports(target, source, env):
(
"totp_",
"app_api_accumulator_",
"token_info_",
"memset_s",
)
)
and any(
prefix in source[0].path
for prefix in [
"advanced_plugin",
"totp_",
]
)
]
for sym in ignore_syms:
unresolved_syms.remove(sym)

View File

@@ -24,7 +24,9 @@ def __generate_resources_dist_entries(env):
)
# Deploy apps' resources too
for app in env["APPBUILD"].apps:
resources_apps = env["APPBUILD"].apps.copy()
resources_apps.extend(x.app for x in env["FW_EXTAPPS"].application_map.values())
for app in resources_apps:
if not app.resources:
continue
apps_resource_dir = app._appdir.Dir(app.resources)

View File

@@ -2999,7 +2999,9 @@ Function,+,subghz_protocol_registry_get_by_index,const SubGhzProtocol*,"const Su
Function,+,subghz_protocol_registry_get_by_name,const SubGhzProtocol*,"const SubGhzProtocolRegistry*, const char*"
Function,+,subghz_protocol_secplus_v1_check_fixed,_Bool,uint32_t
Function,+,subghz_protocol_secplus_v2_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint32_t, SubGhzRadioPreset*"
Function,+,subghz_protocol_somfy_keytis_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*"
Function,+,subghz_protocol_somfy_telis_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*"
Function,+,subghz_protocol_star_line_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, const char*, SubGhzRadioPreset*"
Function,+,subghz_receiver_alloc_init,SubGhzReceiver*,SubGhzEnvironment*
Function,+,subghz_receiver_decode,void,"SubGhzReceiver*, _Bool, uint32_t"
Function,+,subghz_receiver_free,void,SubGhzReceiver*
1 entry status name type params
2999 Function + subghz_protocol_registry_get_by_name const SubGhzProtocol* const SubGhzProtocolRegistry*, const char*
3000 Function + subghz_protocol_secplus_v1_check_fixed _Bool uint32_t
3001 Function + subghz_protocol_secplus_v2_create_data _Bool void*, FlipperFormat*, uint32_t, uint8_t, uint32_t, SubGhzRadioPreset*
3002 Function + subghz_protocol_somfy_keytis_create_data _Bool void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*
3003 Function + subghz_protocol_somfy_telis_create_data _Bool void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*
3004 Function + subghz_protocol_star_line_create_data _Bool void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, const char*, SubGhzRadioPreset*
3005 Function + subghz_receiver_alloc_init SubGhzReceiver* SubGhzEnvironment*
3006 Function + subghz_receiver_decode void SubGhzReceiver*, _Bool, uint32_t
3007 Function + subghz_receiver_free void SubGhzReceiver*

View File

@@ -1,3 +1,3 @@
#pragma once
void furi_hal_subghz_set_extended_frequency(bool state_i);
void furi_hal_subghz_set_extended_frequency(bool state_i);