Skip to content

Commit 189ae9e

Browse files
authored
Merge branch 'solosky:develop' into develop
2 parents e741037 + 8794d50 commit 189ae9e

24 files changed

+1401
-1349
lines changed

fw/application/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,7 @@ SRC_FILES += \
293293
$(PROJ_DIR)/app/settings/scene/settings_scene_oled_contrast.c \
294294
$(PROJ_DIR)/app/settings/scene/settings_scene_language.c \
295295
$(PROJ_DIR)/app/settings/scene/settings_scene_storage.c \
296+
$(PROJ_DIR)/app/settings/scene/settings_scene_about.c \
296297
$(PROJ_DIR)/i18n/en_US.c \
297298
$(PROJ_DIR)/i18n/zh_Hans.c \
298299
$(PROJ_DIR)/i18n/zh_TW.c \
@@ -729,6 +730,7 @@ full: settingsgen
729730
gen:
730731
python3 ../scripts/amiibo_db_gen.py
731732
python3 ../scripts/i18n_gen.py
733+
python3 ../scripts/font_data_gen.py
732734
python3 ../scripts/resource_gen.py
733735

734736
flash_ocd: default

fw/application/src/app/chameleon/port/tag_helper.c

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,19 @@ const static tag_specific_type_name_t tag_type_names[] = {
1515
{TAG_TYPE_MIFARE_2048, "MF 2K", "MiFare 2K", 128 * NFC_TAG_MF1_DATA_SIZE},
1616
{TAG_TYPE_MIFARE_4096, "MF 4K", "MiFare 4K", 256 * NFC_TAG_MF1_DATA_SIZE},
1717
// NTAG series
18-
{TAG_TYPE_NTAG_210, "N210", "NTAG 210", NTAG210_PAGES * NFC_TAG_NTAG_DATA_SIZE},
19-
{TAG_TYPE_NTAG_212, "N212", "NTAG 212", NTAG212_PAGES * NFC_TAG_NTAG_DATA_SIZE},
20-
{TAG_TYPE_NTAG_213, "N213", "NTAG 213", NTAG213_PAGES * NFC_TAG_NTAG_DATA_SIZE},
21-
{TAG_TYPE_NTAG_215, "N215", "NTAG 215", NTAG215_PAGES * NFC_TAG_NTAG_DATA_SIZE},
22-
{TAG_TYPE_NTAG_216, "N216", "NTAG 216", NTAG216_PAGES * NFC_TAG_NTAG_DATA_SIZE},
23-
24-
{TAG_TYPE_MF0ICU1, "ICU1", "MF0ICU1", MF0ICU1_PAGES * NFC_TAG_NTAG_DATA_SIZE},
25-
{TAG_TYPE_MF0ICU2, "ICU2", "MF0ICU2", MF0ICU2_PAGES * NFC_TAG_NTAG_DATA_SIZE},
26-
{TAG_TYPE_MF0UL11,"UL11", "MFOUL11", MF0UL11_PAGES * NFC_TAG_NTAG_DATA_SIZE},
27-
{TAG_TYPE_MF0UL21,"UL21", "MF0UL21", MF0UL21_PAGES * NFC_TAG_NTAG_DATA_SIZE},
18+
{TAG_TYPE_NTAG_210, "N210", "NTAG 210", NTAG210_PAGES *NFC_TAG_NTAG_DATA_SIZE},
19+
{TAG_TYPE_NTAG_212, "N212", "NTAG 212", NTAG212_PAGES *NFC_TAG_NTAG_DATA_SIZE},
20+
{TAG_TYPE_NTAG_213, "N213", "NTAG 213", NTAG213_PAGES *NFC_TAG_NTAG_DATA_SIZE},
21+
{TAG_TYPE_NTAG_215, "N215", "NTAG 215", NTAG215_PAGES *NFC_TAG_NTAG_DATA_SIZE},
22+
{TAG_TYPE_NTAG_216, "N216", "NTAG 216", NTAG216_PAGES *NFC_TAG_NTAG_DATA_SIZE},
23+
24+
{TAG_TYPE_MF0ICU1, "MFUL", "Mifare Ultralight", MF0ICU1_PAGES *NFC_TAG_NTAG_DATA_SIZE},
25+
{TAG_TYPE_MF0ICU2, "MFULC", "Mifare Ultralight C", MF0ICU2_PAGES *NFC_TAG_NTAG_DATA_SIZE},
26+
{TAG_TYPE_MF0UL11, "MFEV11", "Mifare Ultralight EV1 (640 bit)", MF0UL11_PAGES *NFC_TAG_NTAG_DATA_SIZE},
27+
{TAG_TYPE_MF0UL21, "MFEV21", "Mifare Ultralight EV1 (1312 bit)", MF0UL21_PAGES *NFC_TAG_NTAG_DATA_SIZE},
2828

2929
};
30+
3031
// typedef enum {
3132
// NFC_TAG_MF1_WRITE_NORMAL = 0u,
3233
// NFC_TAG_MF1_WRITE_DENIED = 1u,
@@ -45,15 +46,11 @@ const tag_specific_type_t hf_tag_specific_types[] = {
4546
// Specific and necessary signs do not exist
4647
TAG_TYPE_UNDEFINED,
4748
// MiFare series
48-
TAG_TYPE_MIFARE_Mini,
49-
TAG_TYPE_MIFARE_1024,
50-
TAG_TYPE_MIFARE_2048,
51-
TAG_TYPE_MIFARE_4096,
49+
TAG_TYPE_MIFARE_Mini, TAG_TYPE_MIFARE_1024, TAG_TYPE_MIFARE_2048, TAG_TYPE_MIFARE_4096,
5250
// NTAG series
53-
TAG_TYPE_NTAG_213,
54-
TAG_TYPE_NTAG_215,
55-
TAG_TYPE_NTAG_216,
56-
};
51+
TAG_TYPE_NTAG_210, TAG_TYPE_NTAG_212, TAG_TYPE_NTAG_213, TAG_TYPE_NTAG_215, TAG_TYPE_NTAG_216,
52+
53+
TAG_TYPE_MF0ICU1, TAG_TYPE_MF0ICU2, TAG_TYPE_MF0UL11, TAG_TYPE_MF0UL21};
5754

5855
tag_group_type_t tag_helper_get_tag_group_type(tag_specific_type_t tag_type) {
5956
if (tag_type == TAG_TYPE_MIFARE_Mini || tag_type == TAG_TYPE_MIFARE_1024 || tag_type == TAG_TYPE_MIFARE_2048 ||

fw/application/src/app/chameleon/port/tag_helper.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
#include "nfc_mf1.h"
77
#include "tag_base_type.h"
88

9-
#define TAG_TYPE_MAX 9
10-
#define TAG_TYPE_HF_MAX 8
9+
#define TAG_TYPE_HF_MAX 13
1110
#define SLOT_MAX 8
1211

1312
typedef struct {

fw/application/src/app/chameleon/scene/chameleon_scene_menu_card_type.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ void chameleon_scene_menu_card_type_on_enter(void *user_data) {
6666
app_chameleon_t *app = user_data;
6767

6868
// 0 is unkown...
69-
for (uint32_t i = 1; i < TAG_TYPE_HF_MAX; i++) {
69+
for (uint32_t i = 1; i < TAG_TYPE_HF_MAX + 1; i++) {
7070
const tag_specific_type_name_t *tag_name = tag_helper_get_tag_type_name(hf_tag_specific_types[i]);
7171
mui_list_view_add_item(app->p_list_view, ICON_FILE, tag_name->long_name, (void *)CHAMELEON_MENU_CARD_TYPE);
7272
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include "app_settings.h"
2+
#include "i18n/language.h"
3+
#include "mini_app_launcher.h"
4+
#include "nrf_pwr_mgmt.h"
5+
#include "settings.h"
6+
#include "settings_scene.h"
7+
#include "utils2.h"
8+
#include "version2.h"
9+
#include "mui_icons.h"
10+
11+
12+
static void settings_scene_about_list_view_on_selected(mui_list_view_event_t event, mui_list_view_t *p_list_view,
13+
mui_list_item_t *p_item) {
14+
app_settings_t *app = p_list_view->user_data;
15+
if(p_item->icon == ICON_BACK){
16+
mui_scene_dispatcher_previous_scene(app->p_scene_dispatcher);
17+
}
18+
}
19+
20+
void settings_scene_about_on_enter(void *user_data) {
21+
22+
app_settings_t *app = user_data;
23+
24+
mui_list_view_add_item(app->p_list_view, ICON_FILE, _T(APP_SET_ABOUT_OPEN_SOURCE_PROJECT), NULL_USER_DATA);
25+
mui_list_view_add_item(app->p_list_view, ICON_FILE, _T(APP_SET_ABOUT_LGPL_LICENSE), NULL_USER_DATA);
26+
mui_list_view_add_item(app->p_list_view, ICON_FILE, "github.com/solosky/pixl.js", NULL_USER_DATA);
27+
mui_list_view_add_item(app->p_list_view, ICON_BACK, getLangString(_L_BACK), NULL_USER_DATA);
28+
29+
mui_list_view_set_selected_cb(app->p_list_view, settings_scene_about_list_view_on_selected);
30+
mui_view_dispatcher_switch_to_view(app->p_view_dispatcher, SETTINGS_VIEW_ID_MAIN);
31+
}
32+
33+
void settings_scene_about_on_exit(void *user_data) {
34+
app_settings_t *app = user_data;
35+
mui_list_view_clear_items(app->p_list_view);
36+
mui_list_view_set_selected_cb(app->p_list_view, NULL);
37+
}

fw/application/src/app/settings/scene/settings_scene_config.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ ADD_SCENE(settings, lcd_backlight, LCD_BACKLIGHT)
88
ADD_SCENE(settings, oled_contrast, OLED_CONTRAST)
99
#endif
1010
ADD_SCENE(settings, language, LANGUAGE)
11-
ADD_SCENE(settings, storage, STORAGE)
11+
ADD_SCENE(settings, storage, STORAGE)
12+
ADD_SCENE(settings, about, ABOUT)

fw/application/src/app/settings/scene/settings_scene_main.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ enum settings_main_menu_t {
2222
SETTINGS_MAIN_MENU_DFU,
2323
SETTINGS_MAIN_MENU_REBOOT,
2424
SETTINGS_MAIN_MENU_RESET_DEFAULT,
25+
SETTINGS_MAIN_MENU_ABOUT,
2526
SETTINGS_MAIN_MENU_EXIT
2627
};
2728

@@ -128,9 +129,11 @@ static void settings_scene_main_list_view_on_selected(mui_list_view_event_t even
128129
mui_msg_box_set_event_cb(app->p_msg_box, settings_scene_main_msg_box_reset_settings_cb);
129130

130131
mui_view_dispatcher_switch_to_view(app->p_view_dispatcher, SETTINGS_VIEW_ID_MSG_BOX);
131-
}
132+
} break;
132133

133-
break;
134+
case SETTINGS_MAIN_MENU_ABOUT: {
135+
mui_scene_dispatcher_next_scene(app->p_scene_dispatcher, SETTINGS_SCENE_ABOUT);
136+
} break;
134137
}
135138
}
136139

@@ -207,6 +210,8 @@ static void settings_scene_main_reload(void *user_data) {
207210
mui_list_view_add_item(app->p_list_view, 0xe1ce, _T(APP_SET_RESET_DEFAULT),
208211
(void *)SETTINGS_MAIN_MENU_RESET_DEFAULT);
209212

213+
mui_list_view_add_item(app->p_list_view, 0xe1cf, _T(APP_SET_ABOUT), (void *)SETTINGS_MAIN_MENU_ABOUT);
214+
210215
mui_list_view_add_item(app->p_list_view, 0xe069, _T(BACK_TO_MAIN_MENU), (void *)SETTINGS_MAIN_MENU_EXIT);
211216

212217
mui_list_view_set_focus(app->p_list_view, foucs_index);

fw/application/src/i18n/de_DE.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ const char * const lang_de_DE[_L_COUNT] = {
3131
[_L_APP_SET_RESET_DEFAULT] = "Standardeinstellungen",
3232
[_L_APP_SET_RESET_DEFAULT_SUCCESS] = "Einstellungen zurückgesetzt!",
3333
[_L_APP_SET_RESET_DEFAULT_CONFIRM] = "Auf Standardeinstellungen zurücksetzen?",
34+
[_L_APP_SET_ABOUT] = "",
35+
[_L_APP_SET_ABOUT_OPEN_SOURCE_PROJECT] = "",
36+
[_L_APP_SET_ABOUT_LGPL_LICENSE] = "",
3437
[_L_15S] = "15 Sekunden",
3538
[_L_30S] = "30 Sekunden",
3639
[_L_45S] = "45 Sekunden",

fw/application/src/i18n/en_US.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ const char * const lang_en_US[_L_COUNT] = {
3131
[_L_APP_SET_RESET_DEFAULT] = "Reset Default Setting",
3232
[_L_APP_SET_RESET_DEFAULT_SUCCESS] = "Reset Success!",
3333
[_L_APP_SET_RESET_DEFAULT_CONFIRM] = "Confirm Reset Settings?",
34+
[_L_APP_SET_ABOUT] = "About Device",
35+
[_L_APP_SET_ABOUT_OPEN_SOURCE_PROJECT] = "Open Source Project",
36+
[_L_APP_SET_ABOUT_LGPL_LICENSE] = "GPL 2.0 License",
3437
[_L_15S] = "15 Seconds",
3538
[_L_30S] = "30 Seconds",
3639
[_L_45S] = "45 Seconds",

fw/application/src/i18n/es_ES.c

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,18 @@ const char * const lang_es_ES[_L_COUNT] = {
2222
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Brillo de fondo",
2323
[_L_APP_SET_ANIM] = "Animar menú",
2424
[_L_APP_SET_LIPO_BAT] = "Batería LiPO",
25-
[_L_APP_SET_SHOW_MEM_USAGE] = "Mem. usada",
25+
[_L_APP_SET_SHOW_MEM_USAGE] = "Estad. Mem.",
2626
[_L_APP_SET_HIBERNATE] = "Hibernar",
2727
[_L_APP_SET_SLEEP_TIMEOUT] = "Dormir en:",
2828
[_L_APP_SET_LANGUAGE] = "Idioma",
2929
[_L_APP_SET_DFU] = "Actualizar firmware",
3030
[_L_APP_SET_REBOOT] = "Reiniciar",
3131
[_L_APP_SET_RESET_DEFAULT] = "Restablecer config.",
3232
[_L_APP_SET_RESET_DEFAULT_SUCCESS] = "¡Configuración Restablecida!",
33-
[_L_APP_SET_RESET_DEFAULT_CONFIRM] = "",
33+
[_L_APP_SET_RESET_DEFAULT_CONFIRM] = "¿Confirma Restablecer\nConfig.?",
34+
[_L_APP_SET_ABOUT] = "Acerca del dispositivo",
35+
[_L_APP_SET_ABOUT_OPEN_SOURCE_PROJECT] = "Poyecto de código abierto",
36+
[_L_APP_SET_ABOUT_LGPL_LICENSE] = "Licencia GPL 2.0",
3437
[_L_15S] = "15 segundos",
3538
[_L_30S] = "30 segundos",
3639
[_L_45S] = "45 segundos",
@@ -44,7 +47,7 @@ const char * const lang_es_ES[_L_COUNT] = {
4447
[_L_AUTO_RANDOM_GENERATION] = "Serial alea. aut",
4548
[_L_SHOW_QRCODE] = "Mostrar QR",
4649
[_L_DELETE_TAG] = "Borrar amiibo...",
47-
[_L_DELETE_TAG_CONFIRM] = "¿\nBorrar %s\n?",
50+
[_L_DELETE_TAG_CONFIRM] = "¿Borrar %s?",
4851
[_L_BACK_TO_DETAILS] = "[Detalles amiibo]",
4952
[_L_BACK_TO_FILE_LIST] = "[Lista Archivos]",
5053
[_L_BACK_TO_MAIN_MENU] = "[Menú Principal]",
@@ -65,7 +68,7 @@ const char * const lang_es_ES[_L_COUNT] = {
6568
[_L_READ_FILE_FAILED] = "Error al leer archivo",
6669
[_L_INPUT_FOLDER_NAME] = "Nombre carpeta:",
6770
[_L_INPUT_AMIIBO_NAME] = "Nombre amiibo:",
68-
[_L_DELETE_FILE] = "¿Borrar el %s ?",
71+
[_L_DELETE_FILE] = "¿Borrar %s?",
6972
[_L_DELETE] = "Borrar...",
7073
[_L_TIPS] = "Confirmar",
7174
[_L_INPUT_NEW_NAME] = "Nuevo nombre:",
@@ -75,7 +78,7 @@ const char * const lang_es_ES[_L_COUNT] = {
7578
[_L_CREATE_NEW_TAG_BATCH] = "Crear amiibo en lote...",
7679
[_L_INPUT_TAG_NUM] = "¿Cuántos?",
7780
[_L_CREATE_TOO_MANY_NUM] = "Sólo se puede crear %d en lote",
78-
[_L_CREATING_TAG_BATCH] = "Creando",
81+
[_L_CREATING_TAG_BATCH] = "Creando...",
7982
[_L_CREATING_TAG_FAILED] = "¡Error al crear %s!",
8083
[_L_RENAME] = "Renombrar...",
8184
[_L_OPEN_FOLDER_FAILED] = "Fallo al abrir carpeta",
@@ -85,8 +88,8 @@ const char * const lang_es_ES[_L_COUNT] = {
8588
[_L_RANDOM_MODE_AUTO] = "Aleatorio (Auto.)",
8689
[_L_SEQUENCE_MODE] = "Modo Secuencial",
8790
[_L_READ_WRITE_MODE] = "Modo Lectura/Escrit.",
88-
[_L_AMIIBOLINK_V1] = "V1",
89-
[_L_AMIIBOLINK_V2] = "V2",
91+
[_L_AMIIBOLINK_V1] = "AmiiboLink V1",
92+
[_L_AMIIBOLINK_V2] = "AmiiboLink V2",
9093
[_L_AMILOOP] = "AmiLoop",
9194
[_L_MODE] = "Modo",
9295
[_L_AUTO_RANDOM] = "Aleat. autom.",
@@ -129,8 +132,8 @@ const char * const lang_es_ES[_L_COUNT] = {
129132
[_L_APP_AMIIDB_FAV_EMPTY_MSG] = "¿Vaciar Carp. Favoritos?",
130133
[_L_APP_AMIIDB_FAV_DELETE_MSG] = "¿Confirma borrado?",
131134
[_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Selec. carp. favoritos...",
132-
[_L_APP_AMIIDB_FAV_SUCCESS] = Favorito correcto!",
133-
[_L_APP_AMIIDB_FAV_FAILED] = Favorito fallido!",
135+
[_L_APP_AMIIDB_FAV_SUCCESS] = Adicionado a Favoritos!",
136+
[_L_APP_AMIIDB_FAV_FAILED] = Fallo al adicionar\na Favoritos!",
134137
[_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Asignación correcta",
135138
[_L_APP_AMIIDB_SLOT_SAVE_FAILED] = "¡Asignación fallida!",
136139
[_L_APP_CHAMELEON] = "Emular Etiqueta RFID",
@@ -156,14 +159,14 @@ const char * const lang_es_ES[_L_COUNT] = {
156159
[_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "¡Datos inicializados!",
157160
[_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Archivo no encontrado",
158161
[_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Tamaño archivo incorrecto",
159-
[_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED] = "Falla carga archivo",
162+
[_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED] = "Falla al cargar archivo",
160163
[_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS] = "Carga archivo correcta",
161164
[_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME] = "Nombre archivo:",
162165
[_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED] = "¡Error al guardar!",
163166
[_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS] = "Guardado correcto",
164167
[_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE] = "Modo personali.",
165168
[_L_APP_CHAMELEON_CARD_GEN1A_MODE] = "Gen1A habilitada",
166-
[_L_APP_CHAMELEON_CARD_GENERATE_UID] = "Generar nuevo UID",
169+
[_L_APP_CHAMELEON_CARD_GENERATE_UID] = "Generar UID aleat.",
167170
[_L_APP_CHAMELEON_CARD_GENERATE_UID_SUCCESS] = "UID generado",
168171
[_L_APP_CHAMELEON_CARD_GEN2_MODE] = "Gen2 habilitada",
169172
[_L_APP_CHAMELEON_CARD_WRITE_MODE] = "Modo escrit.",

0 commit comments

Comments
 (0)