mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 04:34:43 +04:00
formatting
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
#include <gui/elements.h>
|
#include <gui/elements.h>
|
||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
|
|
||||||
#define LOW_CHARGE_THRESHOLD 10
|
#define LOW_CHARGE_THRESHOLD 10
|
||||||
#define HIGH_DRAIN_CURRENT_THRESHOLD 100
|
#define HIGH_DRAIN_CURRENT_THRESHOLD 100
|
||||||
|
|
||||||
struct BatteryInfo {
|
struct BatteryInfo {
|
||||||
@@ -17,7 +17,7 @@ static void draw_stat(Canvas* canvas, int x, int y, const Icon* icon, char* val)
|
|||||||
canvas_draw_box(canvas, x - 4, y + 16, 24, 6);
|
canvas_draw_box(canvas, x - 4, y + 16, 24, 6);
|
||||||
canvas_set_color(canvas, ColorBlack);
|
canvas_set_color(canvas, ColorBlack);
|
||||||
canvas_draw_str_aligned(canvas, x + 8, y + 22, AlignCenter, AlignBottom, val);
|
canvas_draw_str_aligned(canvas, x + 8, y + 22, AlignCenter, AlignBottom, val);
|
||||||
};
|
}
|
||||||
|
|
||||||
static void draw_battery(Canvas* canvas, BatteryInfoModel* data, int x, int y) {
|
static void draw_battery(Canvas* canvas, BatteryInfoModel* data, int x, int y) {
|
||||||
char emote[20] = {};
|
char emote[20] = {};
|
||||||
@@ -85,7 +85,7 @@ static void draw_battery(Canvas* canvas, BatteryInfoModel* data, int x, int y) {
|
|||||||
canvas_draw_str_aligned(canvas, 92, y + 3, AlignCenter, AlignCenter, emote);
|
canvas_draw_str_aligned(canvas, 92, y + 3, AlignCenter, AlignCenter, emote);
|
||||||
canvas_draw_str_aligned(canvas, 92, y + 15, AlignCenter, AlignCenter, header);
|
canvas_draw_str_aligned(canvas, 92, y + 15, AlignCenter, AlignCenter, header);
|
||||||
canvas_draw_str_aligned(canvas, 92, y + 27, AlignCenter, AlignCenter, value);
|
canvas_draw_str_aligned(canvas, 92, y + 27, AlignCenter, AlignCenter, value);
|
||||||
};
|
}
|
||||||
|
|
||||||
static void battery_info_draw_callback(Canvas* canvas, void* context) {
|
static void battery_info_draw_callback(Canvas* canvas, void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ typedef struct {
|
|||||||
} BtTestModel;
|
} BtTestModel;
|
||||||
|
|
||||||
#define BT_TEST_START_MESSAGE "Ok - Start"
|
#define BT_TEST_START_MESSAGE "Ok - Start"
|
||||||
#define BT_TEST_STOP_MESSAGE "Ok - Stop"
|
#define BT_TEST_STOP_MESSAGE "Ok - Stop"
|
||||||
|
|
||||||
static void bt_test_process_up(BtTest* bt_test);
|
static void bt_test_process_up(BtTest* bt_test);
|
||||||
static void bt_test_process_down(BtTest* bt_test);
|
static void bt_test_process_down(BtTest* bt_test);
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
#define ISO7816_RESPONSE_OK 0x9000
|
#define ISO7816_RESPONSE_OK 0x9000
|
||||||
|
|
||||||
#define ISO7816_RESPONSE_WRONG_LENGTH 0x6700
|
#define ISO7816_RESPONSE_WRONG_LENGTH 0x6700
|
||||||
#define ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2 0x6A00
|
#define ISO7816_RESPONSE_WRONG_PARAMETERS_P1_P2 0x6A00
|
||||||
#define ISO7816_RESPONSE_WRONG_LE 0x6C00
|
#define ISO7816_RESPONSE_WRONG_LE 0x6C00
|
||||||
#define ISO7816_RESPONSE_INSTRUCTION_NOT_SUPPORTED 0x6D00
|
#define ISO7816_RESPONSE_INSTRUCTION_NOT_SUPPORTED 0x6D00
|
||||||
#define ISO7816_RESPONSE_CLASS_NOT_SUPPORTED 0x6E00
|
#define ISO7816_RESPONSE_CLASS_NOT_SUPPORTED 0x6E00
|
||||||
#define ISO7816_RESPONSE_INTERNAL_EXCEPTION 0x6F00
|
#define ISO7816_RESPONSE_INTERNAL_EXCEPTION 0x6F00
|
||||||
|
|
||||||
void iso7816_set_response(ISO7816_Response_APDU* responseAPDU, uint16_t responseCode);
|
void iso7816_set_response(ISO7816_Response_APDU* responseAPDU, uint16_t responseCode);
|
||||||
@@ -4,8 +4,8 @@
|
|||||||
#include "iso7816_atr.h"
|
#include "iso7816_atr.h"
|
||||||
#include "core/common_defines.h"
|
#include "core/common_defines.h"
|
||||||
|
|
||||||
#define ISO7816_READ_COMMAND_APDU_OK 0
|
#define ISO7816_READ_COMMAND_APDU_OK 0
|
||||||
#define ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LE 1
|
#define ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LE 1
|
||||||
#define ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LENGTH 2
|
#define ISO7816_READ_COMMAND_APDU_ERROR_WRONG_LENGTH 2
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -40,11 +40,11 @@
|
|||||||
|
|
||||||
#define TAG "ExpansionTest"
|
#define TAG "ExpansionTest"
|
||||||
|
|
||||||
#define TEST_DIR_PATH EXT_PATH(TAG)
|
#define TEST_DIR_PATH EXT_PATH(TAG)
|
||||||
#define TEST_FILE_NAME "test.txt"
|
#define TEST_FILE_NAME "test.txt"
|
||||||
#define TEST_FILE_PATH EXT_PATH(TAG "/" TEST_FILE_NAME)
|
#define TEST_FILE_PATH EXT_PATH(TAG "/" TEST_FILE_NAME)
|
||||||
|
|
||||||
#define HOST_SERIAL_ID (FuriHalSerialIdLpuart)
|
#define HOST_SERIAL_ID (FuriHalSerialIdLpuart)
|
||||||
#define MODULE_SERIAL_ID (FuriHalSerialIdUsart)
|
#define MODULE_SERIAL_ID (FuriHalSerialIdUsart)
|
||||||
|
|
||||||
#define RECEIVE_BUFFER_SIZE (sizeof(ExpansionFrame) + sizeof(ExpansionFrameChecksum))
|
#define RECEIVE_BUFFER_SIZE (sizeof(ExpansionFrame) + sizeof(ExpansionFrameChecksum))
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#include <furi.h>
|
#include <furi.h>
|
||||||
|
|
||||||
#define DEFAULT_PATH "/"
|
#define DEFAULT_PATH "/"
|
||||||
#define EXTENSION "*"
|
#define EXTENSION "*"
|
||||||
|
|
||||||
bool file_browser_scene_browser_on_event(void* context, SceneManagerEvent event) {
|
bool file_browser_scene_browser_on_event(void* context, SceneManagerEvent event) {
|
||||||
UNUSED(context);
|
UNUSED(context);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#include <cli/cli.h>
|
#include <cli/cli.h>
|
||||||
#include <toolbox/args.h>
|
#include <toolbox/args.h>
|
||||||
|
|
||||||
#define TAG "SpeakerDebug"
|
#define TAG "SpeakerDebug"
|
||||||
#define CLI_COMMAND "speaker_debug"
|
#define CLI_COMMAND "speaker_debug"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
#include <furi_hal.h>
|
#include <furi_hal.h>
|
||||||
|
|
||||||
#define SUBGHZ_TEST_VERSION_APP "0.1"
|
#define SUBGHZ_TEST_VERSION_APP "0.1"
|
||||||
#define SUBGHZ_TEST_DEVELOPED "SkorP"
|
#define SUBGHZ_TEST_DEVELOPED "SkorP"
|
||||||
#define SUBGHZ_TEST_GITHUB "https://github.com/flipperdevices/flipperzero-firmware"
|
#define SUBGHZ_TEST_GITHUB "https://github.com/flipperdevices/flipperzero-firmware"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SubGhzTestViewVariableItemList,
|
SubGhzTestViewVariableItemList,
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
(value) &= ~(_one << (bit)); \
|
(value) &= ~(_one << (bit)); \
|
||||||
})
|
})
|
||||||
#define bit_write(value, bit, bitvalue) (bitvalue ? bit_set(value, bit) : bit_clear(value, bit))
|
#define bit_write(value, bit, bitvalue) (bitvalue ? bit_set(value, bit) : bit_clear(value, bit))
|
||||||
#define DURATION_DIFF(x, y) (((x) < (y)) ? ((y) - (x)) : ((x) - (y)))
|
#define DURATION_DIFF(x, y) (((x) < (y)) ? ((y) - (x)) : ((x) - (y)))
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|||||||
@@ -9,13 +9,13 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define SUBGHZ_PT_SHORT 300
|
#define SUBGHZ_PT_SHORT 300
|
||||||
#define SUBGHZ_PT_LONG (SUBGHZ_PT_SHORT * 3)
|
#define SUBGHZ_PT_LONG (SUBGHZ_PT_SHORT * 3)
|
||||||
#define SUBGHZ_PT_GUARD (SUBGHZ_PT_SHORT * 30)
|
#define SUBGHZ_PT_GUARD (SUBGHZ_PT_SHORT * 30)
|
||||||
#define SUBGHZ_PT_COUNT_KEY_433 9
|
#define SUBGHZ_PT_COUNT_KEY_433 9
|
||||||
#define SUBGHZ_PT_TIMEOUT_433 900
|
#define SUBGHZ_PT_TIMEOUT_433 900
|
||||||
#define SUBGHZ_PT_COUNT_KEY_868 9
|
#define SUBGHZ_PT_COUNT_KEY_868 9
|
||||||
#define SUBGHZ_PT_TIMEOUT_868 14000
|
#define SUBGHZ_PT_TIMEOUT_868 14000
|
||||||
|
|
||||||
#define TAG "SubGhzProtocolPrinceton"
|
#define TAG "SubGhzProtocolPrinceton"
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
#include <notification/notification.h>
|
#include <notification/notification.h>
|
||||||
#include <notification/notification_messages.h>
|
#include <notification/notification_messages.h>
|
||||||
|
|
||||||
#define LINES_ON_SCREEN 6
|
#define LINES_ON_SCREEN 6
|
||||||
#define COLUMNS_ON_SCREEN 21
|
#define COLUMNS_ON_SCREEN 21
|
||||||
#define TAG "UartEcho"
|
#define TAG "UartEcho"
|
||||||
#define DEFAULT_BAUD_RATE 230400
|
#define DEFAULT_BAUD_RATE 230400
|
||||||
|
|
||||||
typedef struct UartDumpModel UartDumpModel;
|
typedef struct UartDumpModel UartDumpModel;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ void test_runner_free(TestRunner* instance) {
|
|||||||
free(instance);
|
free(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TEST_RUNNER_TMP_DIR EXT_PATH(".tmp")
|
#define TEST_RUNNER_TMP_DIR EXT_PATH(".tmp")
|
||||||
#define TEST_RUNNER_TMP_UNIT_TESTS_DIR TEST_RUNNER_TMP_DIR "/unit_tests"
|
#define TEST_RUNNER_TMP_UNIT_TESTS_DIR TEST_RUNNER_TMP_DIR "/unit_tests"
|
||||||
|
|
||||||
static bool test_runner_run_plugin(TestRunner* instance, const char* path) {
|
static bool test_runner_run_plugin(TestRunner* instance, const char* path) {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
|
|
||||||
#define BT_TEST_KEY_STORAGE_FILE_PATH EXT_PATH("unit_tests/bt_test.keys")
|
#define BT_TEST_KEY_STORAGE_FILE_PATH EXT_PATH("unit_tests/bt_test.keys")
|
||||||
#define BT_TEST_NVM_RAM_BUFF_SIZE (507 * 4) // The same as in ble NVM storage
|
#define BT_TEST_NVM_RAM_BUFF_SIZE (507 * 4) // The same as in ble NVM storage
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
Storage* storage;
|
Storage* storage;
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ It was compressed with heatshrink using the following command:
|
|||||||
`python3 -m heatshrink2 compress -w 9 -l 4 hsstream.out.bin hsstream.in.bin`
|
`python3 -m heatshrink2 compress -w 9 -l 4 hsstream.out.bin hsstream.in.bin`
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define HSSTREAM_IN COMPRESS_UNIT_TESTS_PATH("hsstream.in.bin")
|
#define HSSTREAM_IN COMPRESS_UNIT_TESTS_PATH("hsstream.in.bin")
|
||||||
#define HSSTREAM_OUT COMPRESS_UNIT_TESTS_PATH("hsstream.out.bin")
|
#define HSSTREAM_OUT COMPRESS_UNIT_TESTS_PATH("hsstream.out.bin")
|
||||||
|
|
||||||
static void compress_test_heatshrink_stream() {
|
static void compress_test_heatshrink_stream() {
|
||||||
@@ -239,7 +239,7 @@ static void compress_test_heatshrink_stream() {
|
|||||||
furi_record_close(RECORD_STORAGE);
|
furi_record_close(RECORD_STORAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define HS_TAR_PATH COMPRESS_UNIT_TESTS_PATH("test.ths")
|
#define HS_TAR_PATH COMPRESS_UNIT_TESTS_PATH("test.ths")
|
||||||
#define HS_TAR_EXTRACT_PATH COMPRESS_UNIT_TESTS_PATH("tar_out")
|
#define HS_TAR_EXTRACT_PATH COMPRESS_UNIT_TESTS_PATH("tar_out")
|
||||||
|
|
||||||
static bool file_counter(const char* name, bool is_dir, void* context) {
|
static bool file_counter(const char* name, bool is_dir, void* context) {
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
#include <expansion/expansion_protocol.h>
|
#include <expansion/expansion_protocol.h>
|
||||||
|
|
||||||
#define EXPANSION_TEST_GARBAGE_MAGIC (0xB19AF)
|
#define EXPANSION_TEST_GARBAGE_MAGIC (0xB19AF)
|
||||||
#define EXPANSION_TEST_GARBAGE_BUF_SIZE (0x100U)
|
#define EXPANSION_TEST_GARBAGE_BUF_SIZE (0x100U)
|
||||||
#define EXPANSION_TEST_GARBAGE_ITERATIONS (100U)
|
#define EXPANSION_TEST_GARBAGE_ITERATIONS (100U)
|
||||||
|
|
||||||
MU_TEST(test_expansion_encoded_size) {
|
MU_TEST(test_expansion_encoded_size) {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include "../test.h" // IWYU pragma: keep
|
#include "../test.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#define TEST_DIR_NAME EXT_PATH(".tmp/unit_tests/ff")
|
#define TEST_DIR_NAME EXT_PATH(".tmp/unit_tests/ff")
|
||||||
#define TEST_DIR TEST_DIR_NAME "/"
|
#define TEST_DIR TEST_DIR_NAME "/"
|
||||||
|
|
||||||
static const char* test_filetype = "Flipper File test";
|
static const char* test_filetype = "Flipper File test";
|
||||||
static const uint32_t test_version = 666;
|
static const uint32_t test_version = 666;
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
#include <lp5562_reg.h>
|
#include <lp5562_reg.h>
|
||||||
#include "../test.h" // IWYU pragma: keep
|
#include "../test.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#define DATA_SIZE 4
|
#define DATA_SIZE 4
|
||||||
#define EEPROM_ADDRESS 0b10101000
|
#define EEPROM_ADDRESS 0b10101000
|
||||||
#define EEPROM_ADDRESS_HIGH (EEPROM_ADDRESS | 0b10)
|
#define EEPROM_ADDRESS_HIGH (EEPROM_ADDRESS | 0b10)
|
||||||
#define EEPROM_SIZE 512
|
#define EEPROM_SIZE 512
|
||||||
#define EEPROM_PAGE_SIZE 16
|
#define EEPROM_PAGE_SIZE 16
|
||||||
#define EEPROM_WRITE_DELAY_MS 6
|
#define EEPROM_WRITE_DELAY_MS 6
|
||||||
|
|
||||||
static void furi_hal_i2c_int_setup(void) {
|
static void furi_hal_i2c_int_setup(void) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#include <common/infrared_common_i.h>
|
#include <common/infrared_common_i.h>
|
||||||
#include "../test.h" // IWYU pragma: keep
|
#include "../test.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#define IR_TEST_FILES_DIR EXT_PATH("unit_tests/infrared/")
|
#define IR_TEST_FILES_DIR EXT_PATH("unit_tests/infrared/")
|
||||||
#define IR_TEST_FILE_PREFIX "test_"
|
#define IR_TEST_FILE_PREFIX "test_"
|
||||||
#define IR_TEST_FILE_SUFFIX ".irtest"
|
#define IR_TEST_FILE_SUFFIX ".irtest"
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
#define LF_RFID_READ_TIMING_MULTIPLIER 8
|
#define LF_RFID_READ_TIMING_MULTIPLIER 8
|
||||||
|
|
||||||
#define EM_TEST_DATA {0x58, 0x00, 0x85, 0x64, 0x02}
|
#define EM_TEST_DATA {0x58, 0x00, 0x85, 0x64, 0x02}
|
||||||
#define EM_TEST_DATA_SIZE 5
|
#define EM_TEST_DATA_SIZE 5
|
||||||
#define EM_TEST_EMULATION_TIMINGS_COUNT (64 * 2)
|
#define EM_TEST_EMULATION_TIMINGS_COUNT (64 * 2)
|
||||||
|
|
||||||
const int8_t em_test_timings[EM_TEST_EMULATION_TIMINGS_COUNT] = {
|
const int8_t em_test_timings[EM_TEST_EMULATION_TIMINGS_COUNT] = {
|
||||||
@@ -20,8 +20,8 @@ const int8_t em_test_timings[EM_TEST_EMULATION_TIMINGS_COUNT] = {
|
|||||||
-32, 32, 32, -32, -32, 32, -32, 32, -32, 32, -32, 32, -32, 32,
|
-32, 32, 32, -32, -32, 32, -32, 32, -32, 32, -32, 32, -32, 32,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define HID10301_TEST_DATA {0x8D, 0x48, 0xA8}
|
#define HID10301_TEST_DATA {0x8D, 0x48, 0xA8}
|
||||||
#define HID10301_TEST_DATA_SIZE 3
|
#define HID10301_TEST_DATA_SIZE 3
|
||||||
#define HID10301_TEST_EMULATION_TIMINGS_COUNT (541 * 2)
|
#define HID10301_TEST_EMULATION_TIMINGS_COUNT (541 * 2)
|
||||||
|
|
||||||
const int8_t hid10301_test_timings[HID10301_TEST_EMULATION_TIMINGS_COUNT] = {
|
const int8_t hid10301_test_timings[HID10301_TEST_EMULATION_TIMINGS_COUNT] = {
|
||||||
@@ -69,8 +69,8 @@ const int8_t hid10301_test_timings[HID10301_TEST_EMULATION_TIMINGS_COUNT] = {
|
|||||||
5, -5, 4, -4, 4, -4, 4, -4, 4, -4, 4, -4, 4, -4, 4, -4,
|
5, -5, 4, -4, 4, -4, 4, -4, 4, -4, 4, -4, 4, -4, 4, -4,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define IOPROX_XSF_TEST_DATA {0x65, 0x01, 0x05, 0x39}
|
#define IOPROX_XSF_TEST_DATA {0x65, 0x01, 0x05, 0x39}
|
||||||
#define IOPROX_XSF_TEST_DATA_SIZE 4
|
#define IOPROX_XSF_TEST_DATA_SIZE 4
|
||||||
#define IOPROX_XSF_TEST_EMULATION_TIMINGS_COUNT (468 * 2)
|
#define IOPROX_XSF_TEST_EMULATION_TIMINGS_COUNT (468 * 2)
|
||||||
|
|
||||||
const int8_t ioprox_xsf_test_timings[IOPROX_XSF_TEST_EMULATION_TIMINGS_COUNT] = {
|
const int8_t ioprox_xsf_test_timings[IOPROX_XSF_TEST_EMULATION_TIMINGS_COUNT] = {
|
||||||
@@ -113,8 +113,8 @@ const int8_t ioprox_xsf_test_timings[IOPROX_XSF_TEST_EMULATION_TIMINGS_COUNT] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define INDALA26_EMULATION_TIMINGS_COUNT (1024 * 2)
|
#define INDALA26_EMULATION_TIMINGS_COUNT (1024 * 2)
|
||||||
#define INDALA26_TEST_DATA {0x3B, 0x73, 0x64, 0xA8}
|
#define INDALA26_TEST_DATA {0x3B, 0x73, 0x64, 0xA8}
|
||||||
#define INDALA26_TEST_DATA_SIZE 4
|
#define INDALA26_TEST_DATA_SIZE 4
|
||||||
|
|
||||||
const int8_t indala26_test_timings[INDALA26_EMULATION_TIMINGS_COUNT] = {
|
const int8_t indala26_test_timings[INDALA26_EMULATION_TIMINGS_COUNT] = {
|
||||||
1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1,
|
1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1,
|
||||||
@@ -205,8 +205,8 @@ const int8_t indala26_test_timings[INDALA26_EMULATION_TIMINGS_COUNT] = {
|
|||||||
-1, 1, -1, 1, -1, 1, -1, 1,
|
-1, 1, -1, 1, -1, 1, -1, 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FDXB_TEST_DATA {0x44, 0x88, 0x23, 0xF2, 0x5A, 0x6F, 0x00, 0x01, 0x00, 0x00, 0x00}
|
#define FDXB_TEST_DATA {0x44, 0x88, 0x23, 0xF2, 0x5A, 0x6F, 0x00, 0x01, 0x00, 0x00, 0x00}
|
||||||
#define FDXB_TEST_DATA_SIZE 11
|
#define FDXB_TEST_DATA_SIZE 11
|
||||||
#define FDXB_TEST_EMULATION_TIMINGS_COUNT (206)
|
#define FDXB_TEST_EMULATION_TIMINGS_COUNT (206)
|
||||||
|
|
||||||
const int8_t fdxb_test_timings[FDXB_TEST_EMULATION_TIMINGS_COUNT] = {
|
const int8_t fdxb_test_timings[FDXB_TEST_EMULATION_TIMINGS_COUNT] = {
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ extern "C" {
|
|||||||
/* Maximum length of last message */
|
/* Maximum length of last message */
|
||||||
#define MINUNIT_MESSAGE_LEN 1024
|
#define MINUNIT_MESSAGE_LEN 1024
|
||||||
/* Accuracy with which floats are compared */
|
/* Accuracy with which floats are compared */
|
||||||
#define MINUNIT_EPSILON 1E-12
|
#define MINUNIT_EPSILON 1E-12
|
||||||
|
|
||||||
#include "minunit_vars_ex.h"
|
#include "minunit_vars_ex.h"
|
||||||
|
|
||||||
@@ -84,9 +84,9 @@ void minunit_print_fail(const char* error);
|
|||||||
void minunit_printf_warning(const char* format, ...);
|
void minunit_printf_warning(const char* format, ...);
|
||||||
|
|
||||||
/* Definitions */
|
/* Definitions */
|
||||||
#define MU_TEST(method_name) static void method_name(void)
|
#define MU_TEST(method_name) static void method_name(void)
|
||||||
#define MU_TEST_1(method_name, arg_1) static void method_name(arg_1)
|
#define MU_TEST_1(method_name, arg_1) static void method_name(arg_1)
|
||||||
#define MU_TEST_SUITE(suite_name) static void suite_name(void)
|
#define MU_TEST_SUITE(suite_name) static void suite_name(void)
|
||||||
|
|
||||||
#define MU__SAFE_BLOCK(block) \
|
#define MU__SAFE_BLOCK(block) \
|
||||||
do { \
|
do { \
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
#define TAG "NfcTest"
|
#define TAG "NfcTest"
|
||||||
|
|
||||||
#define NFC_TEST_NFC_DEV_PATH EXT_PATH("unit_tests/nfc/nfc_device_test.nfc")
|
#define NFC_TEST_NFC_DEV_PATH EXT_PATH("unit_tests/nfc/nfc_device_test.nfc")
|
||||||
#define NFC_APP_MF_CLASSIC_DICT_UNIT_TEST_PATH EXT_PATH("unit_tests/mf_dict.nfc")
|
#define NFC_APP_MF_CLASSIC_DICT_UNIT_TEST_PATH EXT_PATH("unit_tests/mf_dict.nfc")
|
||||||
|
|
||||||
#define NFC_TEST_FLAG_WORKER_DONE (1)
|
#define NFC_TEST_FLAG_WORKER_DONE (1)
|
||||||
|
|||||||
@@ -42,15 +42,15 @@ typedef struct {
|
|||||||
|
|
||||||
static RpcSessionContext rpc_session[TEST_RPC_SESSIONS];
|
static RpcSessionContext rpc_session[TEST_RPC_SESSIONS];
|
||||||
|
|
||||||
#define TAG "UnitTestsRpc"
|
#define TAG "UnitTestsRpc"
|
||||||
#define MAX_RECEIVE_OUTPUT_TIMEOUT 3000
|
#define MAX_RECEIVE_OUTPUT_TIMEOUT 3000
|
||||||
#define MAX_NAME_LENGTH 255
|
#define MAX_NAME_LENGTH 255
|
||||||
#define MAX_DATA_SIZE 512u // have to be exact as in rpc_storage.c
|
#define MAX_DATA_SIZE 512u // have to be exact as in rpc_storage.c
|
||||||
#define TEST_DIR_NAME EXT_PATH(".tmp/unit_tests/rpc")
|
#define TEST_DIR_NAME EXT_PATH(".tmp/unit_tests/rpc")
|
||||||
#define TEST_DIR TEST_DIR_NAME "/"
|
#define TEST_DIR TEST_DIR_NAME "/"
|
||||||
#define MD5SUM_SIZE 16
|
#define MD5SUM_SIZE 16
|
||||||
|
|
||||||
#define PING_REQUEST 0
|
#define PING_REQUEST 0
|
||||||
#define PING_RESPONSE 1
|
#define PING_RESPONSE 1
|
||||||
#define WRITE_REQUEST 0
|
#define WRITE_REQUEST 0
|
||||||
#define READ_RESPONSE 1
|
#define READ_RESPONSE 1
|
||||||
@@ -971,7 +971,7 @@ MU_TEST(test_storage_info) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define TEST_DIR_STAT_NAME TEST_DIR "stat_dir"
|
#define TEST_DIR_STAT_NAME TEST_DIR "stat_dir"
|
||||||
#define TEST_DIR_STAT TEST_DIR_STAT_NAME "/"
|
#define TEST_DIR_STAT TEST_DIR_STAT_NAME "/"
|
||||||
MU_TEST(test_storage_stat) {
|
MU_TEST(test_storage_stat) {
|
||||||
test_create_dir(TEST_DIR_STAT_NAME);
|
test_create_dir(TEST_DIR_STAT_NAME);
|
||||||
test_create_file(TEST_DIR_STAT "empty.txt", 0);
|
test_create_file(TEST_DIR_STAT "empty.txt", 0);
|
||||||
@@ -1212,7 +1212,7 @@ static void test_storage_delete_run(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define TEST_DIR_RMRF_NAME TEST_DIR "rmrf_test"
|
#define TEST_DIR_RMRF_NAME TEST_DIR "rmrf_test"
|
||||||
#define TEST_DIR_RMRF TEST_DIR_RMRF_NAME "/"
|
#define TEST_DIR_RMRF TEST_DIR_RMRF_NAME "/"
|
||||||
MU_TEST(test_storage_delete_recursive) {
|
MU_TEST(test_storage_delete_recursive) {
|
||||||
test_create_dir(TEST_DIR_RMRF_NAME);
|
test_create_dir(TEST_DIR_RMRF_NAME);
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#define UNIT_TESTS_PATH(path) EXT_PATH("unit_tests/" path)
|
#define UNIT_TESTS_PATH(path) EXT_PATH("unit_tests/" path)
|
||||||
|
|
||||||
#define STORAGE_LOCKED_FILE EXT_PATH("locked_file.test")
|
#define STORAGE_LOCKED_FILE EXT_PATH("locked_file.test")
|
||||||
#define STORAGE_LOCKED_DIR STORAGE_INT_PATH_PREFIX
|
#define STORAGE_LOCKED_DIR STORAGE_INT_PATH_PREFIX
|
||||||
|
|
||||||
#define STORAGE_TEST_DIR UNIT_TESTS_PATH("test_dir")
|
#define STORAGE_TEST_DIR UNIT_TESTS_PATH("test_dir")
|
||||||
|
|
||||||
|
|||||||
@@ -10,14 +10,14 @@
|
|||||||
#include <lib/subghz/devices/devices.h>
|
#include <lib/subghz/devices/devices.h>
|
||||||
#include <lib/subghz/devices/cc1101_configs.h>
|
#include <lib/subghz/devices/cc1101_configs.h>
|
||||||
|
|
||||||
#define TAG "SubGhzTest"
|
#define TAG "SubGhzTest"
|
||||||
#define KEYSTORE_DIR_NAME EXT_PATH("subghz/assets/keeloq_mfcodes")
|
#define KEYSTORE_DIR_NAME EXT_PATH("subghz/assets/keeloq_mfcodes")
|
||||||
#define CAME_ATOMO_DIR_NAME EXT_PATH("subghz/assets/came_atomo")
|
#define CAME_ATOMO_DIR_NAME EXT_PATH("subghz/assets/came_atomo")
|
||||||
#define NICE_FLOR_S_DIR_NAME EXT_PATH("subghz/assets/nice_flor_s")
|
#define NICE_FLOR_S_DIR_NAME EXT_PATH("subghz/assets/nice_flor_s")
|
||||||
#define ALUTECH_AT_4N_DIR_NAME EXT_PATH("subghz/assets/alutech_at_4n")
|
#define ALUTECH_AT_4N_DIR_NAME EXT_PATH("subghz/assets/alutech_at_4n")
|
||||||
#define TEST_RANDOM_DIR_NAME EXT_PATH("unit_tests/subghz/test_random_raw.sub")
|
#define TEST_RANDOM_DIR_NAME EXT_PATH("unit_tests/subghz/test_random_raw.sub")
|
||||||
#define TEST_RANDOM_COUNT_PARSE 329
|
#define TEST_RANDOM_COUNT_PARSE 329
|
||||||
#define TEST_TIMEOUT 10000
|
#define TEST_TIMEOUT 10000
|
||||||
|
|
||||||
static SubGhzEnvironment* environment_handler;
|
static SubGhzEnvironment* environment_handler;
|
||||||
static SubGhzReceiver* receiver_handler;
|
static SubGhzReceiver* receiver_handler;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include <flipper_application/flipper_application.h>
|
#include <flipper_application/flipper_application.h>
|
||||||
|
|
||||||
#define APPID "UnitTest"
|
#define APPID "UnitTest"
|
||||||
#define API_VERSION (0u)
|
#define API_VERSION (0u)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#include <input/input.h>
|
#include <input/input.h>
|
||||||
|
|
||||||
#define MOUSE_MOVE_SHORT 5
|
#define MOUSE_MOVE_SHORT 5
|
||||||
#define MOUSE_MOVE_LONG 20
|
#define MOUSE_MOVE_LONG 20
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EventTypeInput,
|
EventTypeInput,
|
||||||
|
|||||||
@@ -17,18 +17,18 @@
|
|||||||
|
|
||||||
#define TAG "SubGhzDeviceCc1101Ext"
|
#define TAG "SubGhzDeviceCc1101Ext"
|
||||||
|
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_TX_GPIO (&gpio_ext_pb2)
|
#define SUBGHZ_DEVICE_CC1101_EXT_TX_GPIO (&gpio_ext_pb2)
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_E07_AMP_GPIO &gpio_ext_pc3
|
#define SUBGHZ_DEVICE_CC1101_EXT_E07_AMP_GPIO &gpio_ext_pc3
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_FORCE_DANGEROUS_RANGE false
|
#define SUBGHZ_DEVICE_CC1101_EXT_FORCE_DANGEROUS_RANGE false
|
||||||
|
|
||||||
#define SUBGHZ_DEVICE_CC1101_CONFIG_VER 1
|
#define SUBGHZ_DEVICE_CC1101_CONFIG_VER 1
|
||||||
|
|
||||||
/* DMA Channels definition */
|
/* DMA Channels definition */
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_DMA (DMA2)
|
#define SUBGHZ_DEVICE_CC1101_EXT_DMA (DMA2)
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_CHANNEL (LL_DMA_CHANNEL_3)
|
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_CHANNEL (LL_DMA_CHANNEL_3)
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH4_CHANNEL (LL_DMA_CHANNEL_4)
|
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH4_CHANNEL (LL_DMA_CHANNEL_4)
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH5_CHANNEL (LL_DMA_CHANNEL_5)
|
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH5_CHANNEL (LL_DMA_CHANNEL_5)
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_IRQ (FuriHalInterruptIdDma2Ch3)
|
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_IRQ (FuriHalInterruptIdDma2Ch3)
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_DEF \
|
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_DEF \
|
||||||
SUBGHZ_DEVICE_CC1101_EXT_DMA, SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_CHANNEL
|
SUBGHZ_DEVICE_CC1101_EXT_DMA, SUBGHZ_DEVICE_CC1101_EXT_DMA_CH3_CHANNEL
|
||||||
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH4_DEF \
|
#define SUBGHZ_DEVICE_CC1101_EXT_DMA_CH4_DEF \
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define PLUGIN_APP_ID "example_plugins"
|
#define PLUGIN_APP_ID "example_plugins"
|
||||||
#define PLUGIN_API_VERSION 1
|
#define PLUGIN_API_VERSION 1
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define PLUGIN_APP_ID "example_plugins_advanced"
|
#define PLUGIN_APP_ID "example_plugins_advanced"
|
||||||
#define PLUGIN_API_VERSION 1
|
#define PLUGIN_API_VERSION 1
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -25,15 +25,15 @@
|
|||||||
#include <furi_hal_power.h>
|
#include <furi_hal_power.h>
|
||||||
|
|
||||||
#define UPDATE_PERIOD_MS 1000UL
|
#define UPDATE_PERIOD_MS 1000UL
|
||||||
#define TEXT_STORE_SIZE 64U
|
#define TEXT_STORE_SIZE 64U
|
||||||
|
|
||||||
#define DS18B20_CMD_SKIP_ROM 0xccU
|
#define DS18B20_CMD_SKIP_ROM 0xccU
|
||||||
#define DS18B20_CMD_CONVERT 0x44U
|
#define DS18B20_CMD_CONVERT 0x44U
|
||||||
#define DS18B20_CMD_READ_SCRATCHPAD 0xbeU
|
#define DS18B20_CMD_READ_SCRATCHPAD 0xbeU
|
||||||
|
|
||||||
#define DS18B20_CFG_RESOLUTION_POS 5U
|
#define DS18B20_CFG_RESOLUTION_POS 5U
|
||||||
#define DS18B20_CFG_RESOLUTION_MASK 0x03U
|
#define DS18B20_CFG_RESOLUTION_MASK 0x03U
|
||||||
#define DS18B20_DECIMAL_PART_MASK 0x0fU
|
#define DS18B20_DECIMAL_PART_MASK 0x0fU
|
||||||
|
|
||||||
#define DS18B20_SIGN_MASK 0xf0U
|
#define DS18B20_SIGN_MASK 0xf0U
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
#include "../archive_i.h"
|
#include "../archive_i.h"
|
||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
|
|
||||||
#define TAB_LEFT InputKeyLeft // Default tab switch direction
|
#define TAB_LEFT InputKeyLeft // Default tab switch direction
|
||||||
#define TAB_DEFAULT ArchiveTabFavorites // Start tab
|
#define TAB_DEFAULT ArchiveTabFavorites // Start tab
|
||||||
#define FILE_LIST_BUF_LEN 50
|
#define FILE_LIST_BUF_LEN 50
|
||||||
|
|
||||||
static const char* tab_default_paths[] = {
|
static const char* tab_default_paths[] = {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
|
|
||||||
#define ARCHIVE_FAV_PATH ANY_PATH("favorites.txt")
|
#define ARCHIVE_FAV_PATH ANY_PATH("favorites.txt")
|
||||||
#define ARCHIVE_FAV_TEMP_PATH ANY_PATH("favorites.tmp")
|
#define ARCHIVE_FAV_TEMP_PATH ANY_PATH("favorites.tmp")
|
||||||
|
|
||||||
uint16_t archive_favorites_count(void* context);
|
uint16_t archive_favorites_count(void* context);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#define TAG "ArchiveSceneBrowser"
|
#define TAG "ArchiveSceneBrowser"
|
||||||
|
|
||||||
#define SCENE_STATE_DEFAULT (0)
|
#define SCENE_STATE_DEFAULT (0)
|
||||||
#define SCENE_STATE_NEED_REFRESH (1)
|
#define SCENE_STATE_NEED_REFRESH (1)
|
||||||
|
|
||||||
static const char* archive_get_flipper_app_name(ArchiveFileTypeEnum file_type) {
|
static const char* archive_get_flipper_app_name(ArchiveFileTypeEnum file_type) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include "../helpers/archive_browser.h"
|
#include "../helpers/archive_browser.h"
|
||||||
|
|
||||||
#define SCENE_DELETE_CUSTOM_EVENT (0UL)
|
#define SCENE_DELETE_CUSTOM_EVENT (0UL)
|
||||||
#define MAX_TEXT_INPUT_LEN 22
|
#define MAX_TEXT_INPUT_LEN 22
|
||||||
|
|
||||||
void archive_scene_delete_widget_callback(GuiButtonType result, InputType type, void* context) {
|
void archive_scene_delete_widget_callback(GuiButtonType result, InputType type, void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#define TAG "Archive"
|
#define TAG "Archive"
|
||||||
|
|
||||||
#define SCENE_RENAME_CUSTOM_EVENT (0UL)
|
#define SCENE_RENAME_CUSTOM_EVENT (0UL)
|
||||||
#define MAX_TEXT_INPUT_LEN 22
|
#define MAX_TEXT_INPUT_LEN 22
|
||||||
|
|
||||||
void archive_scene_rename_text_input_callback(void* context) {
|
void archive_scene_rename_text_input_callback(void* context) {
|
||||||
ArchiveApp* archive = (ArchiveApp*)context;
|
ArchiveApp* archive = (ArchiveApp*)context;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#include "archive_browser_view.h"
|
#include "archive_browser_view.h"
|
||||||
#include "../helpers/archive_browser.h"
|
#include "../helpers/archive_browser.h"
|
||||||
|
|
||||||
#define TAG "Archive"
|
#define TAG "Archive"
|
||||||
#define SCROLL_INTERVAL (333)
|
#define SCROLL_INTERVAL (333)
|
||||||
#define SCROLL_DELAY (2)
|
#define SCROLL_DELAY (2)
|
||||||
|
|
||||||
static const char* ArchiveTabNames[] = {
|
static const char* ArchiveTabNames[] = {
|
||||||
[ArchiveTabFavorites] = "Favorites",
|
[ArchiveTabFavorites] = "Favorites",
|
||||||
|
|||||||
@@ -14,15 +14,15 @@
|
|||||||
#include "../helpers/archive_favorites.h"
|
#include "../helpers/archive_favorites.h"
|
||||||
#include "gui/modules/file_browser_worker.h"
|
#include "gui/modules/file_browser_worker.h"
|
||||||
|
|
||||||
#define MAX_LEN_PX 110
|
#define MAX_LEN_PX 110
|
||||||
#define MAX_NAME_LEN 255
|
#define MAX_NAME_LEN 255
|
||||||
#define MAX_EXT_LEN 6
|
#define MAX_EXT_LEN 6
|
||||||
#define FRAME_HEIGHT 12
|
#define FRAME_HEIGHT 12
|
||||||
#define MENU_ITEMS 5u
|
#define MENU_ITEMS 5u
|
||||||
#define MOVE_OFFSET 5u
|
#define MOVE_OFFSET 5u
|
||||||
|
|
||||||
#define CLIPBOARD_MODE_OFF (0U)
|
#define CLIPBOARD_MODE_OFF (0U)
|
||||||
#define CLIPBOARD_MODE_CUT (1U)
|
#define CLIPBOARD_MODE_CUT (1U)
|
||||||
#define CLIPBOARD_MODE_COPY (2U)
|
#define CLIPBOARD_MODE_COPY (2U)
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
#include <lib/toolbox/path.h>
|
#include <lib/toolbox/path.h>
|
||||||
#include <flipper_format/flipper_format.h>
|
#include <flipper_format/flipper_format.h>
|
||||||
|
|
||||||
#define BAD_USB_SETTINGS_PATH BAD_USB_APP_BASE_FOLDER "/.badusb.settings"
|
#define BAD_USB_SETTINGS_PATH BAD_USB_APP_BASE_FOLDER "/.badusb.settings"
|
||||||
#define BAD_USB_SETTINGS_FILE_TYPE "Flipper BadUSB Settings File"
|
#define BAD_USB_SETTINGS_FILE_TYPE "Flipper BadUSB Settings File"
|
||||||
#define BAD_USB_SETTINGS_VERSION 1
|
#define BAD_USB_SETTINGS_VERSION 1
|
||||||
#define BAD_USB_SETTINGS_DEFAULT_LAYOUT BAD_USB_APP_PATH_LAYOUT_FOLDER "/en-US.kl"
|
#define BAD_USB_SETTINGS_DEFAULT_LAYOUT BAD_USB_APP_PATH_LAYOUT_FOLDER "/en-US.kl"
|
||||||
|
|
||||||
static bool bad_usb_app_custom_event_callback(void* context, uint32_t event) {
|
static bool bad_usb_app_custom_event_callback(void* context, uint32_t event) {
|
||||||
|
|||||||
@@ -16,10 +16,10 @@
|
|||||||
#include "views/bad_usb_view.h"
|
#include "views/bad_usb_view.h"
|
||||||
#include <furi_hal_usb.h>
|
#include <furi_hal_usb.h>
|
||||||
|
|
||||||
#define BAD_USB_APP_BASE_FOLDER EXT_PATH("badusb")
|
#define BAD_USB_APP_BASE_FOLDER EXT_PATH("badusb")
|
||||||
#define BAD_USB_APP_PATH_LAYOUT_FOLDER BAD_USB_APP_BASE_FOLDER "/assets/layouts"
|
#define BAD_USB_APP_PATH_LAYOUT_FOLDER BAD_USB_APP_BASE_FOLDER "/assets/layouts"
|
||||||
#define BAD_USB_APP_SCRIPT_EXTENSION ".txt"
|
#define BAD_USB_APP_SCRIPT_EXTENSION ".txt"
|
||||||
#define BAD_USB_APP_LAYOUT_EXTENSION ".kl"
|
#define BAD_USB_APP_LAYOUT_EXTENSION ".kl"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BadUsbAppErrorNoFiles,
|
BadUsbAppErrorNoFiles,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "ducky_script_i.h"
|
#include "ducky_script_i.h"
|
||||||
#include <dolphin/dolphin.h>
|
#include <dolphin/dolphin.h>
|
||||||
|
|
||||||
#define TAG "BadUsb"
|
#define TAG "BadUsb"
|
||||||
#define WORKER_TAG TAG "Worker"
|
#define WORKER_TAG TAG "Worker"
|
||||||
|
|
||||||
#define BADUSB_ASCII_TO_KEY(script, x) \
|
#define BADUSB_ASCII_TO_KEY(script, x) \
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ static const DuckyCmd ducky_commands[] = {
|
|||||||
{"GLOBE", ducky_fnc_globe, -1},
|
{"GLOBE", ducky_fnc_globe, -1},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TAG "BadUsb"
|
#define TAG "BadUsb"
|
||||||
#define WORKER_TAG TAG "Worker"
|
#define WORKER_TAG TAG "Worker"
|
||||||
|
|
||||||
int32_t ducky_execute_cmd(BadUsbScript* bad_usb, const char* line) {
|
int32_t ducky_execute_cmd(BadUsbScript* bad_usb, const char* line) {
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ extern "C" {
|
|||||||
#include "ducky_script.h"
|
#include "ducky_script.h"
|
||||||
#include "bad_usb_hid.h"
|
#include "bad_usb_hid.h"
|
||||||
|
|
||||||
#define SCRIPT_STATE_ERROR (-1)
|
#define SCRIPT_STATE_ERROR (-1)
|
||||||
#define SCRIPT_STATE_END (-2)
|
#define SCRIPT_STATE_END (-2)
|
||||||
#define SCRIPT_STATE_NEXT_LINE (-3)
|
#define SCRIPT_STATE_NEXT_LINE (-3)
|
||||||
#define SCRIPT_STATE_CMD_UNKNOWN (-4)
|
#define SCRIPT_STATE_CMD_UNKNOWN (-4)
|
||||||
#define SCRIPT_STATE_STRING_START (-5)
|
#define SCRIPT_STATE_STRING_START (-5)
|
||||||
#define SCRIPT_STATE_WAIT_FOR_BTN (-6)
|
#define SCRIPT_STATE_WAIT_FOR_BTN (-6)
|
||||||
|
|
||||||
|
|||||||
@@ -7,14 +7,14 @@
|
|||||||
|
|
||||||
#define CLOCK_ISO_DATE_FORMAT "%.4d-%.2d-%.2d"
|
#define CLOCK_ISO_DATE_FORMAT "%.4d-%.2d-%.2d"
|
||||||
#define CLOCK_RFC_DATE_FORMAT "%.2d-%.2d-%.4d"
|
#define CLOCK_RFC_DATE_FORMAT "%.2d-%.2d-%.4d"
|
||||||
#define CLOCK_TIME_FORMAT "%.2d:%.2d:%.2d"
|
#define CLOCK_TIME_FORMAT "%.2d:%.2d:%.2d"
|
||||||
|
|
||||||
#define MERIDIAN_FORMAT "%s"
|
#define MERIDIAN_FORMAT "%s"
|
||||||
#define MERIDIAN_STRING_AM "AM"
|
#define MERIDIAN_STRING_AM "AM"
|
||||||
#define MERIDIAN_STRING_PM "PM"
|
#define MERIDIAN_STRING_PM "PM"
|
||||||
|
|
||||||
#define TIME_LEN 12
|
#define TIME_LEN 12
|
||||||
#define DATE_LEN 14
|
#define DATE_LEN 14
|
||||||
#define MERIDIAN_LEN 3
|
#define MERIDIAN_LEN 3
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|||||||
@@ -10,11 +10,11 @@
|
|||||||
#include <stm32wbxx_ll_lpuart.h>
|
#include <stm32wbxx_ll_lpuart.h>
|
||||||
#include <stm32wbxx_ll_usart.h>
|
#include <stm32wbxx_ll_usart.h>
|
||||||
|
|
||||||
#define USB_CDC_PKT_LEN CDC_DATA_SZ
|
#define USB_CDC_PKT_LEN CDC_DATA_SZ
|
||||||
#define USB_UART_RX_BUF_SIZE (USB_CDC_PKT_LEN * 5)
|
#define USB_UART_RX_BUF_SIZE (USB_CDC_PKT_LEN * 5)
|
||||||
|
|
||||||
#define USB_CDC_BIT_DTR (1 << 0)
|
#define USB_CDC_BIT_DTR (1 << 0)
|
||||||
#define USB_CDC_BIT_RTS (1 << 1)
|
#define USB_CDC_BIT_RTS (1 << 1)
|
||||||
#define USB_USART_DE_RE_PIN &gpio_ext_pa4
|
#define USB_USART_DE_RE_PIN &gpio_ext_pa4
|
||||||
|
|
||||||
static const GpioPin* flow_pins[][2] = {
|
static const GpioPin* flow_pins[][2] = {
|
||||||
|
|||||||
@@ -28,8 +28,8 @@
|
|||||||
#include "ibutton_custom_event.h"
|
#include "ibutton_custom_event.h"
|
||||||
#include "scenes/ibutton_scene.h"
|
#include "scenes/ibutton_scene.h"
|
||||||
|
|
||||||
#define IBUTTON_APP_FOLDER ANY_PATH("ibutton")
|
#define IBUTTON_APP_FOLDER ANY_PATH("ibutton")
|
||||||
#define IBUTTON_APP_FILENAME_PREFIX "iBtn"
|
#define IBUTTON_APP_FILENAME_PREFIX "iBtn"
|
||||||
#define IBUTTON_APP_FILENAME_EXTENSION ".ibtn"
|
#define IBUTTON_APP_FILENAME_EXTENSION ".ibtn"
|
||||||
|
|
||||||
#define IBUTTON_KEY_NAME_SIZE 22
|
#define IBUTTON_KEY_NAME_SIZE 22
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#define TAG "InfraredApp"
|
#define TAG "InfraredApp"
|
||||||
|
|
||||||
#define INFRARED_TX_MIN_INTERVAL_MS (50U)
|
#define INFRARED_TX_MIN_INTERVAL_MS (50U)
|
||||||
#define INFRARED_TASK_STACK_SIZE (2048UL)
|
#define INFRARED_TASK_STACK_SIZE (2048UL)
|
||||||
|
|
||||||
static const NotificationSequence*
|
static const NotificationSequence*
|
||||||
infrared_notification_sequences[InfraredNotificationMessageCount] = {
|
infrared_notification_sequences[InfraredNotificationMessageCount] = {
|
||||||
|
|||||||
@@ -17,9 +17,9 @@ typedef struct InfraredApp InfraredApp;
|
|||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
#include <furi_hal_infrared.h>
|
#include <furi_hal_infrared.h>
|
||||||
|
|
||||||
#define INFRARED_SETTINGS_PATH EXT_PATH("infrared/.infrared.settings")
|
#define INFRARED_SETTINGS_PATH EXT_PATH("infrared/.infrared.settings")
|
||||||
#define INFRARED_SETTINGS_VERSION (1)
|
#define INFRARED_SETTINGS_VERSION (1)
|
||||||
#define INFRARED_SETTINGS_MAGIC (0x1F)
|
#define INFRARED_SETTINGS_MAGIC (0x1F)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
FuriHalInfraredTxPin tx_pin;
|
FuriHalInfraredTxPin tx_pin;
|
||||||
|
|||||||
@@ -39,18 +39,18 @@
|
|||||||
#include "views/infrared_debug_view.h"
|
#include "views/infrared_debug_view.h"
|
||||||
#include "views/infrared_move_view.h"
|
#include "views/infrared_move_view.h"
|
||||||
|
|
||||||
#define INFRARED_FILE_NAME_SIZE 100
|
#define INFRARED_FILE_NAME_SIZE 100
|
||||||
#define INFRARED_TEXT_STORE_NUM 2
|
#define INFRARED_TEXT_STORE_NUM 2
|
||||||
#define INFRARED_TEXT_STORE_SIZE 128
|
#define INFRARED_TEXT_STORE_SIZE 128
|
||||||
|
|
||||||
#define INFRARED_MAX_BUTTON_NAME_LENGTH 22
|
#define INFRARED_MAX_BUTTON_NAME_LENGTH 22
|
||||||
#define INFRARED_MAX_REMOTE_NAME_LENGTH 22
|
#define INFRARED_MAX_REMOTE_NAME_LENGTH 22
|
||||||
|
|
||||||
#define INFRARED_APP_FOLDER ANY_PATH("infrared")
|
#define INFRARED_APP_FOLDER ANY_PATH("infrared")
|
||||||
#define INFRARED_APP_EXTENSION ".ir"
|
#define INFRARED_APP_EXTENSION ".ir"
|
||||||
|
|
||||||
#define INFRARED_DEFAULT_REMOTE_NAME "Remote"
|
#define INFRARED_DEFAULT_REMOTE_NAME "Remote"
|
||||||
#define INFRARED_LOG_TAG "InfraredApp"
|
#define INFRARED_LOG_TAG "InfraredApp"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enumeration of invalid remote button indices.
|
* @brief Enumeration of invalid remote button indices.
|
||||||
@@ -86,7 +86,7 @@ typedef struct {
|
|||||||
bool is_transmitting; /**< Whether a signal is currently being transmitted. */
|
bool is_transmitting; /**< Whether a signal is currently being transmitted. */
|
||||||
bool is_otg_enabled; /**< Whether OTG power (external 5V) is enabled. */
|
bool is_otg_enabled; /**< Whether OTG power (external 5V) is enabled. */
|
||||||
InfraredEditTarget edit_target : 8; /**< Selected editing target (a remote or a button). */
|
InfraredEditTarget edit_target : 8; /**< Selected editing target (a remote or a button). */
|
||||||
InfraredEditMode edit_mode : 8; /**< Selected editing operation (rename or delete). */
|
InfraredEditMode edit_mode : 8; /**< Selected editing operation (rename or delete). */
|
||||||
int32_t current_button_index; /**< Selected button index (move destination). */
|
int32_t current_button_index; /**< Selected button index (move destination). */
|
||||||
int32_t prev_button_index; /**< Previous button index (move source). */
|
int32_t prev_button_index; /**< Previous button index (move source). */
|
||||||
uint32_t last_transmit_time; /**< Lat time a signal was transmitted. */
|
uint32_t last_transmit_time; /**< Lat time a signal was transmitted. */
|
||||||
|
|||||||
@@ -10,10 +10,10 @@
|
|||||||
#include "infrared_signal.h"
|
#include "infrared_signal.h"
|
||||||
#include "infrared_brute_force.h"
|
#include "infrared_brute_force.h"
|
||||||
|
|
||||||
#define INFRARED_CLI_BUF_SIZE (10U)
|
#define INFRARED_CLI_BUF_SIZE (10U)
|
||||||
#define INFRARED_CLI_FILE_NAME_SIZE (256U)
|
#define INFRARED_CLI_FILE_NAME_SIZE (256U)
|
||||||
#define INFRARED_FILE_EXTENSION ".ir"
|
#define INFRARED_FILE_EXTENSION ".ir"
|
||||||
#define INFRARED_ASSETS_FOLDER EXT_PATH("infrared/assets")
|
#define INFRARED_ASSETS_FOLDER EXT_PATH("infrared/assets")
|
||||||
#define INFRARED_BRUTE_FORCE_DUMMY_INDEX 0
|
#define INFRARED_BRUTE_FORCE_DUMMY_INDEX 0
|
||||||
|
|
||||||
DICT_DEF2(dict_signals, FuriString*, FURI_STRING_OPLIST, int, M_DEFAULT_OPLIST)
|
DICT_DEF2(dict_signals, FuriString*, FURI_STRING_OPLIST, int, M_DEFAULT_OPLIST)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#define TAG "InfraredRemote"
|
#define TAG "InfraredRemote"
|
||||||
|
|
||||||
#define INFRARED_FILE_HEADER "IR signals file"
|
#define INFRARED_FILE_HEADER "IR signals file"
|
||||||
#define INFRARED_FILE_VERSION (1)
|
#define INFRARED_FILE_VERSION (1)
|
||||||
|
|
||||||
ARRAY_DEF(StringArray, const char*, M_CSTR_DUP_OPLIST); //-V575
|
ARRAY_DEF(StringArray, const char*, M_CSTR_DUP_OPLIST); //-V575
|
||||||
|
|||||||
@@ -13,18 +13,18 @@
|
|||||||
#define INFRARED_SIGNAL_TYPE_KEY "type"
|
#define INFRARED_SIGNAL_TYPE_KEY "type"
|
||||||
|
|
||||||
// Type key values
|
// Type key values
|
||||||
#define INFRARED_SIGNAL_TYPE_RAW "raw"
|
#define INFRARED_SIGNAL_TYPE_RAW "raw"
|
||||||
#define INFRARED_SIGNAL_TYPE_PARSED "parsed"
|
#define INFRARED_SIGNAL_TYPE_PARSED "parsed"
|
||||||
|
|
||||||
// Raw signal keys
|
// Raw signal keys
|
||||||
#define INFRARED_SIGNAL_DATA_KEY "data"
|
#define INFRARED_SIGNAL_DATA_KEY "data"
|
||||||
#define INFRARED_SIGNAL_FREQUENCY_KEY "frequency"
|
#define INFRARED_SIGNAL_FREQUENCY_KEY "frequency"
|
||||||
#define INFRARED_SIGNAL_DUTY_CYCLE_KEY "duty_cycle"
|
#define INFRARED_SIGNAL_DUTY_CYCLE_KEY "duty_cycle"
|
||||||
|
|
||||||
// Parsed signal keys
|
// Parsed signal keys
|
||||||
#define INFRARED_SIGNAL_PROTOCOL_KEY "protocol"
|
#define INFRARED_SIGNAL_PROTOCOL_KEY "protocol"
|
||||||
#define INFRARED_SIGNAL_ADDRESS_KEY "address"
|
#define INFRARED_SIGNAL_ADDRESS_KEY "address"
|
||||||
#define INFRARED_SIGNAL_COMMAND_KEY "command"
|
#define INFRARED_SIGNAL_COMMAND_KEY "command"
|
||||||
|
|
||||||
struct InfraredSignal {
|
struct InfraredSignal {
|
||||||
bool is_raw;
|
bool is_raw;
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
#include <toolbox/m_cstr_dup.h>
|
#include <toolbox/m_cstr_dup.h>
|
||||||
|
|
||||||
#define LIST_ITEMS 4U
|
#define LIST_ITEMS 4U
|
||||||
#define LIST_LINE_H 13U
|
#define LIST_LINE_H 13U
|
||||||
#define HEADER_H 12U
|
#define HEADER_H 12U
|
||||||
#define MOVE_X_OFFSET 5U
|
#define MOVE_X_OFFSET 5U
|
||||||
|
|
||||||
struct InfraredMoveView {
|
struct InfraredMoveView {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ static void lfrfid_cli_print_usage(void) {
|
|||||||
"rfid raw_emulate <filename> - emulate raw data (not very useful, but helps debug protocols)\r\n");
|
"rfid raw_emulate <filename> - emulate raw data (not very useful, but helps debug protocols)\r\n");
|
||||||
printf(
|
printf(
|
||||||
"rfid raw_analyze <filename> - outputs raw data to the cli and tries to decode it (useful for protocol development)\r\n");
|
"rfid raw_analyze <filename> - outputs raw data to the cli and tries to decode it (useful for protocol development)\r\n");
|
||||||
};
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
ProtocolId protocol;
|
ProtocolId protocol;
|
||||||
|
|||||||
@@ -35,13 +35,13 @@
|
|||||||
|
|
||||||
#include <lfrfid/scenes/lfrfid_scene.h>
|
#include <lfrfid/scenes/lfrfid_scene.h>
|
||||||
|
|
||||||
#define LFRFID_KEY_NAME_SIZE 22
|
#define LFRFID_KEY_NAME_SIZE 22
|
||||||
#define LFRFID_TEXT_STORE_SIZE 40
|
#define LFRFID_TEXT_STORE_SIZE 40
|
||||||
|
|
||||||
#define LFRFID_APP_FOLDER ANY_PATH("lfrfid")
|
#define LFRFID_APP_FOLDER ANY_PATH("lfrfid")
|
||||||
#define LFRFID_SD_FOLDER EXT_PATH("lfrfid")
|
#define LFRFID_SD_FOLDER EXT_PATH("lfrfid")
|
||||||
#define LFRFID_APP_FILENAME_PREFIX "RFID"
|
#define LFRFID_APP_FILENAME_PREFIX "RFID"
|
||||||
#define LFRFID_APP_FILENAME_EXTENSION ".rfid"
|
#define LFRFID_APP_FILENAME_EXTENSION ".rfid"
|
||||||
#define LFRFID_APP_SHADOW_FILENAME_EXTENSION ".shd"
|
#define LFRFID_APP_SHADOW_FILENAME_EXTENSION ".shd"
|
||||||
|
|
||||||
#define LFRFID_APP_RAW_ASK_EXTENSION ".ask.raw"
|
#define LFRFID_APP_RAW_ASK_EXTENSION ".ask.raw"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <furi/furi.h>
|
#include <furi/furi.h>
|
||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
|
|
||||||
#define NFC_APP_KEYS_EXTENSION ".keys"
|
#define NFC_APP_KEYS_EXTENSION ".keys"
|
||||||
#define NFC_APP_KEY_CACHE_FOLDER "/ext/nfc/.cache"
|
#define NFC_APP_KEY_CACHE_FOLDER "/ext/nfc/.cache"
|
||||||
|
|
||||||
static const char* mf_classic_key_cache_file_header = "Flipper NFC keys";
|
static const char* mf_classic_key_cache_file_header = "Flipper NFC keys";
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#include <nfc/protocols/mf_classic/mf_classic.h>
|
#include <nfc/protocols/mf_classic/mf_classic.h>
|
||||||
#include <furi/furi.h>
|
#include <furi/furi.h>
|
||||||
|
|
||||||
#define NFC_APP_FOLDER ANY_PATH("nfc")
|
#define NFC_APP_FOLDER ANY_PATH("nfc")
|
||||||
#define NFC_APP_MF_CLASSIC_DICT_USER_PATH (NFC_APP_FOLDER "/assets/mf_classic_dict_user.nfc")
|
#define NFC_APP_MF_CLASSIC_DICT_USER_PATH (NFC_APP_FOLDER "/assets/mf_classic_dict_user.nfc")
|
||||||
|
|
||||||
struct MfUserDict {
|
struct MfUserDict {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
#define TAG "NfcSupportedCards"
|
#define TAG "NfcSupportedCards"
|
||||||
|
|
||||||
#define NFC_SUPPORTED_CARDS_PLUGINS_PATH APP_DATA_PATH("plugins")
|
#define NFC_SUPPORTED_CARDS_PLUGINS_PATH APP_DATA_PATH("plugins")
|
||||||
#define NFC_SUPPORTED_CARDS_PLUGIN_SUFFIX "_parser.fal"
|
#define NFC_SUPPORTED_CARDS_PLUGIN_SUFFIX "_parser.fal"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|||||||
@@ -62,19 +62,19 @@
|
|||||||
#include <toolbox/name_generator.h>
|
#include <toolbox/name_generator.h>
|
||||||
#include <dolphin/dolphin.h>
|
#include <dolphin/dolphin.h>
|
||||||
|
|
||||||
#define NFC_NAME_SIZE 22
|
#define NFC_NAME_SIZE 22
|
||||||
#define NFC_TEXT_STORE_SIZE 128
|
#define NFC_TEXT_STORE_SIZE 128
|
||||||
#define NFC_BYTE_INPUT_STORE_SIZE 10
|
#define NFC_BYTE_INPUT_STORE_SIZE 10
|
||||||
#define NFC_LOG_SIZE_MAX (1024)
|
#define NFC_LOG_SIZE_MAX (1024)
|
||||||
#define NFC_APP_FOLDER ANY_PATH("nfc")
|
#define NFC_APP_FOLDER ANY_PATH("nfc")
|
||||||
#define NFC_APP_EXTENSION ".nfc"
|
#define NFC_APP_EXTENSION ".nfc"
|
||||||
#define NFC_APP_SHADOW_EXTENSION ".shd"
|
#define NFC_APP_SHADOW_EXTENSION ".shd"
|
||||||
#define NFC_APP_FILENAME_PREFIX "NFC"
|
#define NFC_APP_FILENAME_PREFIX "NFC"
|
||||||
|
|
||||||
#define NFC_APP_MFKEY32_LOGS_FILE_NAME ".mfkey32.log"
|
#define NFC_APP_MFKEY32_LOGS_FILE_NAME ".mfkey32.log"
|
||||||
#define NFC_APP_MFKEY32_LOGS_FILE_PATH (NFC_APP_FOLDER "/" NFC_APP_MFKEY32_LOGS_FILE_NAME)
|
#define NFC_APP_MFKEY32_LOGS_FILE_PATH (NFC_APP_FOLDER "/" NFC_APP_MFKEY32_LOGS_FILE_NAME)
|
||||||
|
|
||||||
#define NFC_APP_MF_CLASSIC_DICT_USER_PATH (NFC_APP_FOLDER "/assets/mf_classic_dict_user.nfc")
|
#define NFC_APP_MF_CLASSIC_DICT_USER_PATH (NFC_APP_FOLDER "/assets/mf_classic_dict_user.nfc")
|
||||||
#define NFC_APP_MF_CLASSIC_DICT_SYSTEM_PATH (NFC_APP_FOLDER "/assets/mf_classic_dict.nfc")
|
#define NFC_APP_MF_CLASSIC_DICT_SYSTEM_PATH (NFC_APP_FOLDER "/assets/mf_classic_dict.nfc")
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|||||||
@@ -9,11 +9,11 @@
|
|||||||
|
|
||||||
#define TAG "Bip"
|
#define TAG "Bip"
|
||||||
|
|
||||||
#define BIP_CARD_ID_SECTOR_NUMBER (0)
|
#define BIP_CARD_ID_SECTOR_NUMBER (0)
|
||||||
#define BIP_BALANCE_SECTOR_NUMBER (8)
|
#define BIP_BALANCE_SECTOR_NUMBER (8)
|
||||||
#define BIP_TRIP_TIME_WINDOW_SECTOR_NUMBER (5)
|
#define BIP_TRIP_TIME_WINDOW_SECTOR_NUMBER (5)
|
||||||
#define BIP_LAST_TOP_UPS_SECTOR_NUMBER (10)
|
#define BIP_LAST_TOP_UPS_SECTOR_NUMBER (10)
|
||||||
#define BIP_TRIPS_INFO_SECTOR_NUMBER (11)
|
#define BIP_TRIPS_INFO_SECTOR_NUMBER (11)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
DateTime datetime;
|
DateTime datetime;
|
||||||
|
|||||||
@@ -92,10 +92,10 @@
|
|||||||
0, 0, 0, 1, 1, 2003, 4 \
|
0, 0, 0, 1, 1, 2003, 4 \
|
||||||
}
|
}
|
||||||
// timestep is one minute
|
// timestep is one minute
|
||||||
#define CHARLIE_TIME_DELTA_SECS 60
|
#define CHARLIE_TIME_DELTA_SECS 60
|
||||||
#define CHARLIE_END_VALID_DELTA_SECS 60 * 8
|
#define CHARLIE_END_VALID_DELTA_SECS 60 * 8
|
||||||
#define CHARLIE_N_TRANSACTION_HISTORY 10
|
#define CHARLIE_N_TRANSACTION_HISTORY 10
|
||||||
#define CHARLIE_N_PASSES 4
|
#define CHARLIE_N_PASSES 4
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint64_t a;
|
uint64_t a;
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
|
|
||||||
#include <bit_lib.h>
|
#include <bit_lib.h>
|
||||||
|
|
||||||
#define TAG "HI!"
|
#define TAG "HI!"
|
||||||
#define KEY_LENGTH 6
|
#define KEY_LENGTH 6
|
||||||
#define HI_KEY_TO_GEN 5
|
#define HI_KEY_TO_GEN 5
|
||||||
#define UID_LENGTH 7
|
#define UID_LENGTH 7
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint64_t a;
|
uint64_t a;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include <bit_lib.h>
|
#include <bit_lib.h>
|
||||||
|
|
||||||
#define TAG "Microel"
|
#define TAG "Microel"
|
||||||
#define KEY_LENGTH 6
|
#define KEY_LENGTH 6
|
||||||
#define UID_LENGTH 4
|
#define UID_LENGTH 4
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
|
|
||||||
#include <bit_lib.h>
|
#include <bit_lib.h>
|
||||||
|
|
||||||
#define TAG "MiZIP"
|
#define TAG "MiZIP"
|
||||||
#define KEY_LENGTH 6
|
#define KEY_LENGTH 6
|
||||||
#define MIZIP_KEY_TO_GEN 5
|
#define MIZIP_KEY_TO_GEN 5
|
||||||
#define UID_LENGTH 4
|
#define UID_LENGTH 4
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint64_t a;
|
uint64_t a;
|
||||||
|
|||||||
@@ -148,16 +148,16 @@ static void parse_ndef_vcard(FuriString* str, const uint8_t* payload, uint32_t p
|
|||||||
|
|
||||||
static void parse_ndef_wifi(FuriString* str, const uint8_t* payload, uint32_t payload_len) {
|
static void parse_ndef_wifi(FuriString* str, const uint8_t* payload, uint32_t payload_len) {
|
||||||
// https://android.googlesource.com/platform/packages/apps/Nfc/+/refs/heads/main/src/com/android/nfc/NfcWifiProtectedSetup.java
|
// https://android.googlesource.com/platform/packages/apps/Nfc/+/refs/heads/main/src/com/android/nfc/NfcWifiProtectedSetup.java
|
||||||
#define CREDENTIAL_FIELD_ID (0x100E)
|
#define CREDENTIAL_FIELD_ID (0x100E)
|
||||||
#define SSID_FIELD_ID (0x1045)
|
#define SSID_FIELD_ID (0x1045)
|
||||||
#define NETWORK_KEY_FIELD_ID (0x1027)
|
#define NETWORK_KEY_FIELD_ID (0x1027)
|
||||||
#define AUTH_TYPE_FIELD_ID (0x1003)
|
#define AUTH_TYPE_FIELD_ID (0x1003)
|
||||||
#define AUTH_TYPE_EXPECTED_SIZE (2)
|
#define AUTH_TYPE_EXPECTED_SIZE (2)
|
||||||
#define AUTH_TYPE_OPEN (0x0001)
|
#define AUTH_TYPE_OPEN (0x0001)
|
||||||
#define AUTH_TYPE_WPA_PSK (0x0002)
|
#define AUTH_TYPE_WPA_PSK (0x0002)
|
||||||
#define AUTH_TYPE_WPA_EAP (0x0008)
|
#define AUTH_TYPE_WPA_EAP (0x0008)
|
||||||
#define AUTH_TYPE_WPA2_EAP (0x0010)
|
#define AUTH_TYPE_WPA2_EAP (0x0010)
|
||||||
#define AUTH_TYPE_WPA2_PSK (0x0020)
|
#define AUTH_TYPE_WPA2_PSK (0x0020)
|
||||||
#define AUTH_TYPE_WPA_AND_WPA2_PSK (0x0022)
|
#define AUTH_TYPE_WPA_AND_WPA2_PSK (0x0022)
|
||||||
#define MAX_NETWORK_KEY_SIZE_BYTES (64)
|
#define MAX_NETWORK_KEY_SIZE_BYTES (64)
|
||||||
|
|
||||||
|
|||||||
@@ -62,18 +62,18 @@ static const char* opal_usages[14] = {
|
|||||||
|
|
||||||
// Opal file 0x7 structure. Assumes a little-endian CPU.
|
// Opal file 0x7 structure. Assumes a little-endian CPU.
|
||||||
typedef struct FURI_PACKED {
|
typedef struct FURI_PACKED {
|
||||||
uint32_t serial : 32;
|
uint32_t serial : 32;
|
||||||
uint8_t check_digit : 4;
|
uint8_t check_digit : 4;
|
||||||
bool blocked : 1;
|
bool blocked : 1;
|
||||||
uint16_t txn_number : 16;
|
uint16_t txn_number : 16;
|
||||||
int32_t balance : 21;
|
int32_t balance : 21;
|
||||||
uint16_t days : 15;
|
uint16_t days : 15;
|
||||||
uint16_t minutes : 11;
|
uint16_t minutes : 11;
|
||||||
uint8_t mode : 3;
|
uint8_t mode : 3;
|
||||||
uint16_t usage : 4;
|
uint16_t usage : 4;
|
||||||
bool auto_topup : 1;
|
bool auto_topup : 1;
|
||||||
uint8_t weekly_journeys : 4;
|
uint8_t weekly_journeys : 4;
|
||||||
uint16_t checksum : 16;
|
uint16_t checksum : 16;
|
||||||
} OpalFile;
|
} OpalFile;
|
||||||
|
|
||||||
static_assert(sizeof(OpalFile) == 16, "OpalFile");
|
static_assert(sizeof(OpalFile) == 16, "OpalFile");
|
||||||
|
|||||||
@@ -9,11 +9,11 @@
|
|||||||
|
|
||||||
#include <bit_lib.h>
|
#include <bit_lib.h>
|
||||||
|
|
||||||
#define TAG "Saflok"
|
#define TAG "Saflok"
|
||||||
#define MAGIC_TABLE_SIZE 192
|
#define MAGIC_TABLE_SIZE 192
|
||||||
#define KEY_LENGTH 6
|
#define KEY_LENGTH 6
|
||||||
#define UID_LENGTH 4
|
#define UID_LENGTH 4
|
||||||
#define CHECK_SECTOR 1
|
#define CHECK_SECTOR 1
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint64_t a;
|
uint64_t a;
|
||||||
|
|||||||
@@ -29,9 +29,9 @@
|
|||||||
|
|
||||||
#define TAG "Zolotaya Korona"
|
#define TAG "Zolotaya Korona"
|
||||||
|
|
||||||
#define TRIP_SECTOR_NUM (4)
|
#define TRIP_SECTOR_NUM (4)
|
||||||
#define PURSE_SECTOR_NUM (6)
|
#define PURSE_SECTOR_NUM (6)
|
||||||
#define INFO_SECTOR_NUM (15)
|
#define INFO_SECTOR_NUM (15)
|
||||||
|
|
||||||
// Sector 15 data. Byte [11] contains the mistake. If byte [11] was 0xEF, bytes [1-18] means "ЗАО Золотая Корона"
|
// Sector 15 data. Byte [11] contains the mistake. If byte [11] was 0xEF, bytes [1-18] means "ЗАО Золотая Корона"
|
||||||
static const uint8_t info_sector_signature[] = {0xE2, 0x87, 0x80, 0x8E, 0x20, 0x87, 0xAE,
|
static const uint8_t info_sector_signature[] = {0xE2, 0x87, 0x80, 0x8E, 0x20, 0x87, 0xAE,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#define NXP_MANUFACTURER_ID (0x04)
|
#define NXP_MANUFACTURER_ID (0x04)
|
||||||
|
|
||||||
#define NFC_SCENE_DETECT_READER_PAIR_NONCES_MAX (10U)
|
#define NFC_SCENE_DETECT_READER_PAIR_NONCES_MAX (10U)
|
||||||
#define NFC_SCENE_DETECT_READER_WAIT_NONCES_TIMEOUT_MS (1000)
|
#define NFC_SCENE_DETECT_READER_WAIT_NONCES_TIMEOUT_MS (1000)
|
||||||
|
|
||||||
static const NotificationSequence sequence_detect_reader = {
|
static const NotificationSequence sequence_detect_reader = {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "subghz_chat.h"
|
#include "subghz_chat.h"
|
||||||
#include <lib/subghz/subghz_tx_rx_worker.h>
|
#include <lib/subghz/subghz_tx_rx_worker.h>
|
||||||
|
|
||||||
#define TAG "SubGhzChat"
|
#define TAG "SubGhzChat"
|
||||||
#define SUBGHZ_CHAT_WORKER_TIMEOUT_BETWEEN_MESSAGES 500
|
#define SUBGHZ_CHAT_WORKER_TIMEOUT_BETWEEN_MESSAGES 500
|
||||||
|
|
||||||
struct SubGhzChatWorker {
|
struct SubGhzChatWorker {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#include <float_tools.h>
|
#include <float_tools.h>
|
||||||
#include "../subghz_i.h"
|
#include "../subghz_i.h"
|
||||||
|
|
||||||
#define TAG "SubGhzThresholdRssi"
|
#define TAG "SubGhzThresholdRssi"
|
||||||
#define THRESHOLD_RSSI_LOW_COUNT 10
|
#define THRESHOLD_RSSI_LOW_COUNT 10
|
||||||
|
|
||||||
struct SubGhzThresholdRssi {
|
struct SubGhzThresholdRssi {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../subghz_i.h"
|
#include "../subghz_i.h"
|
||||||
|
|
||||||
#define TAG "SubGhzDecodeRaw"
|
#define TAG "SubGhzDecodeRaw"
|
||||||
#define SAMPLES_TO_READ_PER_TICK 400
|
#define SAMPLES_TO_READ_PER_TICK 400
|
||||||
|
|
||||||
static void subghz_scene_receiver_update_statusbar(void* context) {
|
static void subghz_scene_receiver_update_statusbar(void* context) {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include <toolbox/path.h>
|
#include <toolbox/path.h>
|
||||||
|
|
||||||
#define RAW_FILE_NAME "RAW_"
|
#define RAW_FILE_NAME "RAW_"
|
||||||
#define TAG "SubGhzSceneReadRAW"
|
#define TAG "SubGhzSceneReadRAW"
|
||||||
|
|
||||||
bool subghz_scene_read_raw_update_filename(SubGhz* subghz) {
|
bool subghz_scene_read_raw_update_filename(SubGhz* subghz) {
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
|
|
||||||
#include <furi.h>
|
#include <furi.h>
|
||||||
|
|
||||||
#define SUBGHZ_HISTORY_MAX 55
|
#define SUBGHZ_HISTORY_MAX 55
|
||||||
#define SUBGHZ_HISTORY_FREE_HEAP 20480
|
#define SUBGHZ_HISTORY_FREE_HEAP 20480
|
||||||
#define TAG "SubGhzHistory"
|
#define TAG "SubGhzHistory"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
FuriString* item_str;
|
FuriString* item_str;
|
||||||
|
|||||||
@@ -40,10 +40,10 @@
|
|||||||
|
|
||||||
#include "helpers/subghz_txrx.h"
|
#include "helpers/subghz_txrx.h"
|
||||||
|
|
||||||
#define SUBGHZ_MAX_LEN_NAME 64
|
#define SUBGHZ_MAX_LEN_NAME 64
|
||||||
#define SUBGHZ_EXT_PRESET_NAME true
|
#define SUBGHZ_EXT_PRESET_NAME true
|
||||||
#define SUBGHZ_RAW_THRESHOLD_MIN (-90.0f)
|
#define SUBGHZ_RAW_THRESHOLD_MIN (-90.0f)
|
||||||
#define SUBGHZ_MEASURE_LOADING false
|
#define SUBGHZ_MEASURE_LOADING false
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t fix[4];
|
uint8_t fix[4];
|
||||||
|
|||||||
@@ -3,21 +3,21 @@
|
|||||||
|
|
||||||
#define TAG "SubGhzLastSettings"
|
#define TAG "SubGhzLastSettings"
|
||||||
|
|
||||||
#define SUBGHZ_LAST_SETTING_FILE_TYPE "Flipper SubGhz Last Setting File"
|
#define SUBGHZ_LAST_SETTING_FILE_TYPE "Flipper SubGhz Last Setting File"
|
||||||
#define SUBGHZ_LAST_SETTING_FILE_VERSION 3
|
#define SUBGHZ_LAST_SETTING_FILE_VERSION 3
|
||||||
#define SUBGHZ_LAST_SETTINGS_PATH EXT_PATH("subghz/assets/last_subghz.settings")
|
#define SUBGHZ_LAST_SETTINGS_PATH EXT_PATH("subghz/assets/last_subghz.settings")
|
||||||
|
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_FREQUENCY "Frequency"
|
#define SUBGHZ_LAST_SETTING_FIELD_FREQUENCY "Frequency"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_PRESET "Preset" // AKA Modulation
|
#define SUBGHZ_LAST_SETTING_FIELD_PRESET "Preset" // AKA Modulation
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_FREQUENCY_ANALYZER_FEEDBACK_LEVEL "FeedbackLevel"
|
#define SUBGHZ_LAST_SETTING_FIELD_FREQUENCY_ANALYZER_FEEDBACK_LEVEL "FeedbackLevel"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_FREQUENCY_ANALYZER_TRIGGER "FATrigger"
|
#define SUBGHZ_LAST_SETTING_FIELD_FREQUENCY_ANALYZER_TRIGGER "FATrigger"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_PROTOCOL_FILE_NAMES "ProtocolNames"
|
#define SUBGHZ_LAST_SETTING_FIELD_PROTOCOL_FILE_NAMES "ProtocolNames"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_HOPPING_ENABLE "Hopping"
|
#define SUBGHZ_LAST_SETTING_FIELD_HOPPING_ENABLE "Hopping"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_IGNORE_FILTER "IgnoreFilter"
|
#define SUBGHZ_LAST_SETTING_FIELD_IGNORE_FILTER "IgnoreFilter"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_FILTER "Filter"
|
#define SUBGHZ_LAST_SETTING_FIELD_FILTER "Filter"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_RSSI_THRESHOLD "RSSI"
|
#define SUBGHZ_LAST_SETTING_FIELD_RSSI_THRESHOLD "RSSI"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_DELETE_OLD "DelOldSignals"
|
#define SUBGHZ_LAST_SETTING_FIELD_DELETE_OLD "DelOldSignals"
|
||||||
#define SUBGHZ_LAST_SETTING_FIELD_HOPPING_THRESHOLD "HoppingThreshold"
|
#define SUBGHZ_LAST_SETTING_FIELD_HOPPING_THRESHOLD "HoppingThreshold"
|
||||||
|
|
||||||
SubGhzLastSettings* subghz_last_settings_alloc(void) {
|
SubGhzLastSettings* subghz_last_settings_alloc(void) {
|
||||||
SubGhzLastSettings* instance = malloc(sizeof(SubGhzLastSettings));
|
SubGhzLastSettings* instance = malloc(sizeof(SubGhzLastSettings));
|
||||||
|
|||||||
@@ -6,11 +6,11 @@
|
|||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
#include <lib/subghz/types.h>
|
#include <lib/subghz/types.h>
|
||||||
|
|
||||||
#define SUBGHZ_LAST_SETTING_FREQUENCY_ANALYZER_TRIGGER (-93.0f)
|
#define SUBGHZ_LAST_SETTING_FREQUENCY_ANALYZER_TRIGGER (-93.0f)
|
||||||
// 1 = "AM650"
|
// 1 = "AM650"
|
||||||
// "AM270", "AM650", "FM238", "FM476",
|
// "AM270", "AM650", "FM238", "FM476",
|
||||||
#define SUBGHZ_LAST_SETTING_DEFAULT_PRESET 1
|
#define SUBGHZ_LAST_SETTING_DEFAULT_PRESET 1
|
||||||
#define SUBGHZ_LAST_SETTING_DEFAULT_FREQUENCY 433920000
|
#define SUBGHZ_LAST_SETTING_DEFAULT_FREQUENCY 433920000
|
||||||
#define SUBGHZ_LAST_SETTING_FREQUENCY_ANALYZER_FEEDBACK_LEVEL 2
|
#define SUBGHZ_LAST_SETTING_FREQUENCY_ANALYZER_FEEDBACK_LEVEL 2
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
#include <m-array.h>
|
#include <m-array.h>
|
||||||
|
|
||||||
#define FRAME_HEIGHT 12
|
#define FRAME_HEIGHT 12
|
||||||
#define MAX_LEN_PX 111
|
#define MAX_LEN_PX 111
|
||||||
#define MENU_ITEMS 4u
|
#define MENU_ITEMS 4u
|
||||||
#define UNLOCK_CNT 3
|
#define UNLOCK_CNT 3
|
||||||
|
|
||||||
// #define SUBGHZ_RAW_THRESHOLD_MIN (-90.0f)
|
// #define SUBGHZ_RAW_THRESHOLD_MIN (-90.0f)
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,11 @@
|
|||||||
|
|
||||||
#define TAG "frequency_analyzer"
|
#define TAG "frequency_analyzer"
|
||||||
|
|
||||||
#define RSSI_MIN -97
|
#define RSSI_MIN -97
|
||||||
#define RSSI_MAX -60
|
#define RSSI_MAX -60
|
||||||
#define RSSI_SCALE 2.3
|
#define RSSI_SCALE 2.3
|
||||||
#define TRIGGER_STEP 1
|
#define TRIGGER_STEP 1
|
||||||
#define MAX_HISTORY 4
|
#define MAX_HISTORY 4
|
||||||
|
|
||||||
static const uint32_t subghz_frequency_list[] = {
|
static const uint32_t subghz_frequency_list[] = {
|
||||||
300000000, 302757000, 303875000, 303900000, 304250000, 307000000, 307500000, 307800000,
|
300000000, 302757000, 303875000, 303900000, 304250000, 307000000, 307500000, 307800000,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
#define SUBGHZ_READ_RAW_RSSI_HISTORY_SIZE 100
|
#define SUBGHZ_READ_RAW_RSSI_HISTORY_SIZE 100
|
||||||
#define TAG "SubGhzReadRaw"
|
#define TAG "SubGhzReadRaw"
|
||||||
|
|
||||||
struct SubGhzReadRAW {
|
struct SubGhzReadRAW {
|
||||||
View* view;
|
View* view;
|
||||||
|
|||||||
Submodule applications/main/subghz_remote updated: 73ca3f2ac0...6ba386c09e
@@ -11,14 +11,14 @@
|
|||||||
#include <mbedtls/ecdsa.h>
|
#include <mbedtls/ecdsa.h>
|
||||||
#include <mbedtls/error.h>
|
#include <mbedtls/error.h>
|
||||||
|
|
||||||
#define TAG "U2f"
|
#define TAG "U2f"
|
||||||
#define WORKER_TAG TAG "Worker"
|
#define WORKER_TAG TAG "Worker"
|
||||||
|
|
||||||
#define MCHECK(expr) furi_check((expr) == 0)
|
#define MCHECK(expr) furi_check((expr) == 0)
|
||||||
|
|
||||||
#define U2F_CMD_REGISTER 0x01
|
#define U2F_CMD_REGISTER 0x01
|
||||||
#define U2F_CMD_AUTHENTICATE 0x02
|
#define U2F_CMD_AUTHENTICATE 0x02
|
||||||
#define U2F_CMD_VERSION 0x03
|
#define U2F_CMD_VERSION 0x03
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
U2fCheckOnly = 0x07, // "check-only" - only check key handle, don't send auth response
|
U2fCheckOnly = 0x07, // "check-only" - only check key handle, don't send auth response
|
||||||
@@ -28,14 +28,14 @@ typedef enum {
|
|||||||
0x08, // "dont-enforce-user-presence-and-sign" - send auth response even if user is missing
|
0x08, // "dont-enforce-user-presence-and-sign" - send auth response even if user is missing
|
||||||
} U2fAuthMode;
|
} U2fAuthMode;
|
||||||
|
|
||||||
#define U2F_HASH_SIZE 32
|
#define U2F_HASH_SIZE 32
|
||||||
#define U2F_NONCE_SIZE 32
|
#define U2F_NONCE_SIZE 32
|
||||||
#define U2F_CHALLENGE_SIZE 32
|
#define U2F_CHALLENGE_SIZE 32
|
||||||
#define U2F_APP_ID_SIZE 32
|
#define U2F_APP_ID_SIZE 32
|
||||||
|
|
||||||
#define U2F_EC_KEY_SIZE 32
|
#define U2F_EC_KEY_SIZE 32
|
||||||
#define U2F_EC_BIGNUM_SIZE 32
|
#define U2F_EC_BIGNUM_SIZE 32
|
||||||
#define U2F_EC_POINT_SIZE 65
|
#define U2F_EC_POINT_SIZE 65
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t format;
|
uint8_t format;
|
||||||
|
|||||||
@@ -7,28 +7,28 @@
|
|||||||
|
|
||||||
#define TAG "U2f"
|
#define TAG "U2f"
|
||||||
|
|
||||||
#define U2F_DATA_FOLDER EXT_PATH("u2f/")
|
#define U2F_DATA_FOLDER EXT_PATH("u2f/")
|
||||||
#define U2F_CERT_FILE U2F_DATA_FOLDER "assets/cert.der"
|
#define U2F_CERT_FILE U2F_DATA_FOLDER "assets/cert.der"
|
||||||
#define U2F_CERT_KEY_FILE U2F_DATA_FOLDER "assets/cert_key.u2f"
|
#define U2F_CERT_KEY_FILE U2F_DATA_FOLDER "assets/cert_key.u2f"
|
||||||
#define U2F_KEY_FILE U2F_DATA_FOLDER "key.u2f"
|
#define U2F_KEY_FILE U2F_DATA_FOLDER "key.u2f"
|
||||||
#define U2F_CNT_FILE U2F_DATA_FOLDER "cnt.u2f"
|
#define U2F_CNT_FILE U2F_DATA_FOLDER "cnt.u2f"
|
||||||
|
|
||||||
#define U2F_DATA_FILE_ENCRYPTION_KEY_SLOT_FACTORY 2
|
#define U2F_DATA_FILE_ENCRYPTION_KEY_SLOT_FACTORY 2
|
||||||
#define U2F_DATA_FILE_ENCRYPTION_KEY_SLOT_UNIQUE FURI_HAL_CRYPTO_ENCLAVE_UNIQUE_KEY_SLOT
|
#define U2F_DATA_FILE_ENCRYPTION_KEY_SLOT_UNIQUE FURI_HAL_CRYPTO_ENCLAVE_UNIQUE_KEY_SLOT
|
||||||
|
|
||||||
#define U2F_CERT_STOCK 0 // Stock certificate, private key is encrypted with factory key
|
#define U2F_CERT_STOCK 0 // Stock certificate, private key is encrypted with factory key
|
||||||
#define U2F_CERT_USER 1 // User certificate, private key is encrypted with unique key
|
#define U2F_CERT_USER 1 // User certificate, private key is encrypted with unique key
|
||||||
#define U2F_CERT_USER_UNENCRYPTED \
|
#define U2F_CERT_USER_UNENCRYPTED \
|
||||||
2 // Unencrypted user certificate, will be encrypted after first load
|
2 // Unencrypted user certificate, will be encrypted after first load
|
||||||
|
|
||||||
#define U2F_CERT_KEY_FILE_TYPE "Flipper U2F Certificate Key File"
|
#define U2F_CERT_KEY_FILE_TYPE "Flipper U2F Certificate Key File"
|
||||||
#define U2F_CERT_KEY_VERSION 1
|
#define U2F_CERT_KEY_VERSION 1
|
||||||
|
|
||||||
#define U2F_DEVICE_KEY_FILE_TYPE "Flipper U2F Device Key File"
|
#define U2F_DEVICE_KEY_FILE_TYPE "Flipper U2F Device Key File"
|
||||||
#define U2F_DEVICE_KEY_VERSION 1
|
#define U2F_DEVICE_KEY_VERSION 1
|
||||||
|
|
||||||
#define U2F_COUNTER_FILE_TYPE "Flipper U2F Counter File"
|
#define U2F_COUNTER_FILE_TYPE "Flipper U2F Counter File"
|
||||||
#define U2F_COUNTER_VERSION 2
|
#define U2F_COUNTER_VERSION 2
|
||||||
#define U2F_COUNTER_VERSION_OLD 1
|
#define U2F_COUNTER_VERSION_OLD 1
|
||||||
|
|
||||||
#define U2F_COUNTER_CONTROL_VAL 0xAA5500FF
|
#define U2F_COUNTER_CONTROL_VAL 0xAA5500FF
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include <furi_hal_usb_hid_u2f.h>
|
#include <furi_hal_usb_hid_u2f.h>
|
||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
|
|
||||||
#define TAG "U2fHid"
|
#define TAG "U2fHid"
|
||||||
#define WORKER_TAG TAG "Worker"
|
#define WORKER_TAG TAG "Worker"
|
||||||
|
|
||||||
#define U2F_HID_MAX_PAYLOAD_LEN ((HID_U2F_PACKET_LEN - 7) + 128 * (HID_U2F_PACKET_LEN - 5))
|
#define U2F_HID_MAX_PAYLOAD_LEN ((HID_U2F_PACKET_LEN - 7) + 128 * (HID_U2F_PACKET_LEN - 5))
|
||||||
@@ -17,23 +17,23 @@
|
|||||||
#define U2F_HID_TYPE_INIT 0x80 // Initial frame identifier
|
#define U2F_HID_TYPE_INIT 0x80 // Initial frame identifier
|
||||||
#define U2F_HID_TYPE_CONT 0x00 // Continuation frame identifier
|
#define U2F_HID_TYPE_CONT 0x00 // Continuation frame identifier
|
||||||
|
|
||||||
#define U2F_HID_PING (U2F_HID_TYPE_INIT | 0x01) // Echo data through local processor only
|
#define U2F_HID_PING (U2F_HID_TYPE_INIT | 0x01) // Echo data through local processor only
|
||||||
#define U2F_HID_MSG (U2F_HID_TYPE_INIT | 0x03) // Send U2F message frame
|
#define U2F_HID_MSG (U2F_HID_TYPE_INIT | 0x03) // Send U2F message frame
|
||||||
#define U2F_HID_LOCK (U2F_HID_TYPE_INIT | 0x04) // Send lock channel command
|
#define U2F_HID_LOCK (U2F_HID_TYPE_INIT | 0x04) // Send lock channel command
|
||||||
#define U2F_HID_INIT (U2F_HID_TYPE_INIT | 0x06) // Channel initialization
|
#define U2F_HID_INIT (U2F_HID_TYPE_INIT | 0x06) // Channel initialization
|
||||||
#define U2F_HID_WINK (U2F_HID_TYPE_INIT | 0x08) // Send device identification wink
|
#define U2F_HID_WINK (U2F_HID_TYPE_INIT | 0x08) // Send device identification wink
|
||||||
#define U2F_HID_ERROR (U2F_HID_TYPE_INIT | 0x3f) // Error response
|
#define U2F_HID_ERROR (U2F_HID_TYPE_INIT | 0x3f) // Error response
|
||||||
|
|
||||||
#define U2F_HID_ERR_NONE 0x00 // No error
|
#define U2F_HID_ERR_NONE 0x00 // No error
|
||||||
#define U2F_HID_ERR_INVALID_CMD 0x01 // Invalid command
|
#define U2F_HID_ERR_INVALID_CMD 0x01 // Invalid command
|
||||||
#define U2F_HID_ERR_INVALID_PAR 0x02 // Invalid parameter
|
#define U2F_HID_ERR_INVALID_PAR 0x02 // Invalid parameter
|
||||||
#define U2F_HID_ERR_INVALID_LEN 0x03 // Invalid message length
|
#define U2F_HID_ERR_INVALID_LEN 0x03 // Invalid message length
|
||||||
#define U2F_HID_ERR_INVALID_SEQ 0x04 // Invalid message sequencing
|
#define U2F_HID_ERR_INVALID_SEQ 0x04 // Invalid message sequencing
|
||||||
#define U2F_HID_ERR_MSG_TIMEOUT 0x05 // Message has timed out
|
#define U2F_HID_ERR_MSG_TIMEOUT 0x05 // Message has timed out
|
||||||
#define U2F_HID_ERR_CHANNEL_BUSY 0x06 // Channel busy
|
#define U2F_HID_ERR_CHANNEL_BUSY 0x06 // Channel busy
|
||||||
#define U2F_HID_ERR_LOCK_REQUIRED 0x0a // Command requires channel lock
|
#define U2F_HID_ERR_LOCK_REQUIRED 0x0a // Command requires channel lock
|
||||||
#define U2F_HID_ERR_SYNC_FAIL 0x0b // SYNC command failed
|
#define U2F_HID_ERR_SYNC_FAIL 0x0b // SYNC command failed
|
||||||
#define U2F_HID_ERR_OTHER 0x7f // Other unspecified error
|
#define U2F_HID_ERR_OTHER 0x7f // Other unspecified error
|
||||||
|
|
||||||
#define U2F_HID_BROADCAST_CID 0xFFFFFFFF
|
#define U2F_HID_BROADCAST_CID 0xFFFFFFFF
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,9 @@
|
|||||||
|
|
||||||
#define TAG "BtSrv"
|
#define TAG "BtSrv"
|
||||||
|
|
||||||
#define BT_RPC_EVENT_BUFF_SENT (1UL << 0)
|
#define BT_RPC_EVENT_BUFF_SENT (1UL << 0)
|
||||||
#define BT_RPC_EVENT_DISCONNECTED (1UL << 1)
|
#define BT_RPC_EVENT_DISCONNECTED (1UL << 1)
|
||||||
#define BT_RPC_EVENT_ALL (BT_RPC_EVENT_BUFF_SENT | BT_RPC_EVENT_DISCONNECTED)
|
#define BT_RPC_EVENT_ALL (BT_RPC_EVENT_BUFF_SENT | BT_RPC_EVENT_DISCONNECTED)
|
||||||
|
|
||||||
#define ICON_SPACER 2
|
#define ICON_SPACER 2
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
|
|
||||||
#define BT_KEYS_STORAGE_VERSION (0)
|
#define BT_KEYS_STORAGE_VERSION (0)
|
||||||
#define BT_KEYS_STORAGE_MAGIC (0x18)
|
#define BT_KEYS_STORAGE_MAGIC (0x18)
|
||||||
|
|
||||||
#define TAG "BtKeyStorage"
|
#define TAG "BtKeyStorage"
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
#include <lib/toolbox/saved_struct.h>
|
#include <lib/toolbox/saved_struct.h>
|
||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
|
|
||||||
#define BT_SETTINGS_PATH INT_PATH(BT_SETTINGS_FILE_NAME)
|
#define BT_SETTINGS_PATH INT_PATH(BT_SETTINGS_FILE_NAME)
|
||||||
#define BT_SETTINGS_VERSION (0)
|
#define BT_SETTINGS_VERSION (0)
|
||||||
#define BT_SETTINGS_MAGIC (0x19)
|
#define BT_SETTINGS_MAGIC (0x19)
|
||||||
|
|
||||||
bool bt_settings_load(BtSettings* bt_settings) {
|
bool bt_settings_load(BtSettings* bt_settings) {
|
||||||
furi_assert(bt_settings);
|
furi_assert(bt_settings);
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ void cli_command_src(Cli* cli, FuriString* args, void* context) {
|
|||||||
printf("https://github.com/DarkFlippers/unleashed-firmware");
|
printf("https://github.com/DarkFlippers/unleashed-firmware");
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CLI_COMMAND_LOG_RING_SIZE 2048
|
#define CLI_COMMAND_LOG_RING_SIZE 2048
|
||||||
#define CLI_COMMAND_LOG_BUFFER_SIZE 64
|
#define CLI_COMMAND_LOG_BUFFER_SIZE 64
|
||||||
|
|
||||||
void cli_command_log_tx_callback(const uint8_t* buffer, size_t size, void* context) {
|
void cli_command_log_tx_callback(const uint8_t* buffer, size_t size, void* context) {
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ void cli_stdout_callback(void* _cookie, const char* data, size_t size);
|
|||||||
// Wraps CLI commands to load from plugin file
|
// Wraps CLI commands to load from plugin file
|
||||||
// Must call from CLI context, like dummy CLI command callback
|
// Must call from CLI context, like dummy CLI command callback
|
||||||
// You need to setup the plugin to compile correctly separately
|
// You need to setup the plugin to compile correctly separately
|
||||||
#define CLI_PLUGIN_APP_ID "cli"
|
#define CLI_PLUGIN_APP_ID "cli"
|
||||||
#define CLI_PLUGIN_API_VERSION 1
|
#define CLI_PLUGIN_API_VERSION 1
|
||||||
void cli_plugin_wrapper(const char* name, Cli* cli, FuriString* args, void* context);
|
void cli_plugin_wrapper(const char* name, Cli* cli, FuriString* args, void* context);
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ void crypto_cli_print_usage(void) {
|
|||||||
printf("\thas_key <key_slot:int>\t - Check if secure enclave has key in slot\r\n");
|
printf("\thas_key <key_slot:int>\t - Check if secure enclave has key in slot\r\n");
|
||||||
printf(
|
printf(
|
||||||
"\tstore_key <key_slot:int> <key_type:str> <key_size:int> <key_data:hex>\t - Store key in secure enclave. !!! NON-REVERSIBLE OPERATION - READ MANUAL FIRST !!!\r\n");
|
"\tstore_key <key_slot:int> <key_type:str> <key_size:int> <key_data:hex>\t - Store key in secure enclave. !!! NON-REVERSIBLE OPERATION - READ MANUAL FIRST !!!\r\n");
|
||||||
};
|
}
|
||||||
|
|
||||||
void crypto_cli_encrypt(Cli* cli, FuriString* args) {
|
void crypto_cli_encrypt(Cli* cli, FuriString* args) {
|
||||||
int key_slot = 0;
|
int key_slot = 0;
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
#define TAG "AnimationManager"
|
#define TAG "AnimationManager"
|
||||||
|
|
||||||
#define HARDCODED_ANIMATION_NAME "L1_Tv_128x47"
|
#define HARDCODED_ANIMATION_NAME "L1_Tv_128x47"
|
||||||
#define NO_SD_ANIMATION_NAME "L1_NoSd_128x49"
|
#define NO_SD_ANIMATION_NAME "L1_NoSd_128x49"
|
||||||
#define BAD_BATTERY_ANIMATION_NAME "L1_BadBattery_128x47"
|
#define BAD_BATTERY_ANIMATION_NAME "L1_BadBattery_128x47"
|
||||||
|
|
||||||
#define NO_DB_ANIMATION_NAME "L0_NoDb_128x51"
|
#define NO_DB_ANIMATION_NAME "L0_NoDb_128x51"
|
||||||
#define BAD_SD_ANIMATION_NAME "L0_SdBad_128x51"
|
#define BAD_SD_ANIMATION_NAME "L0_SdBad_128x51"
|
||||||
#define SD_OK_ANIMATION_NAME "L0_SdOk_128x51"
|
#define SD_OK_ANIMATION_NAME "L0_SdOk_128x51"
|
||||||
#define URL_ANIMATION_NAME "L0_Url_128x51"
|
#define URL_ANIMATION_NAME "L0_Url_128x51"
|
||||||
#define NEW_MAIL_ANIMATION_NAME "L0_NewMail_128x51"
|
#define NEW_MAIL_ANIMATION_NAME "L0_NewMail_128x51"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -47,13 +47,13 @@ struct AnimationManager {
|
|||||||
int32_t freezed_animation_time_left;
|
int32_t freezed_animation_time_left;
|
||||||
ViewStack* view_stack;
|
ViewStack* view_stack;
|
||||||
|
|
||||||
bool dummy_mode : 1;
|
bool dummy_mode : 1;
|
||||||
bool blocking_shown_url : 1;
|
bool blocking_shown_url : 1;
|
||||||
bool blocking_shown_sd_bad : 1;
|
bool blocking_shown_sd_bad : 1;
|
||||||
bool blocking_shown_no_db : 1;
|
bool blocking_shown_no_db : 1;
|
||||||
bool blocking_shown_sd_ok : 1;
|
bool blocking_shown_sd_ok : 1;
|
||||||
bool levelup_pending : 1;
|
bool levelup_pending : 1;
|
||||||
bool levelup_active : 1;
|
bool levelup_active : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
static StorageAnimation*
|
static StorageAnimation*
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
#include <assets_dolphin_internal.h>
|
#include <assets_dolphin_internal.h>
|
||||||
#include <assets_dolphin_blocking.h>
|
#include <assets_dolphin_blocking.h>
|
||||||
|
|
||||||
#define ANIMATION_META_FILE "meta.txt"
|
#define ANIMATION_META_FILE "meta.txt"
|
||||||
#define ANIMATION_DIR EXT_PATH("dolphin")
|
#define ANIMATION_DIR EXT_PATH("dolphin")
|
||||||
#define ANIMATION_MANIFEST_FILE ANIMATION_DIR "/manifest.txt"
|
#define ANIMATION_MANIFEST_FILE ANIMATION_DIR "/manifest.txt"
|
||||||
#define TAG "AnimationStorage"
|
#define TAG "AnimationStorage"
|
||||||
|
|
||||||
static void animation_storage_free_bubbles(BubbleAnimation* animation);
|
static void animation_storage_free_bubbles(BubbleAnimation* animation);
|
||||||
static void animation_storage_free_frames(BubbleAnimation* animation);
|
static void animation_storage_free_frames(BubbleAnimation* animation);
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ struct Desktop {
|
|||||||
DesktopClock clock;
|
DesktopClock clock;
|
||||||
|
|
||||||
bool in_transition : 1;
|
bool in_transition : 1;
|
||||||
bool locked : 1;
|
bool locked : 1;
|
||||||
|
|
||||||
FuriSemaphore* animation_semaphore;
|
FuriSemaphore* animation_semaphore;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
|
|
||||||
#define DESKTOP_SETTINGS_VER (13)
|
#define DESKTOP_SETTINGS_VER (13)
|
||||||
|
|
||||||
#define DESKTOP_SETTINGS_PATH INT_PATH(DESKTOP_SETTINGS_FILE_NAME)
|
#define DESKTOP_SETTINGS_PATH INT_PATH(DESKTOP_SETTINGS_FILE_NAME)
|
||||||
#define DESKTOP_SETTINGS_MAGIC (0x17)
|
#define DESKTOP_SETTINGS_MAGIC (0x17)
|
||||||
#define PIN_MAX_LENGTH 12
|
#define PIN_MAX_LENGTH 12
|
||||||
|
|
||||||
#define DESKTOP_SETTINGS_RUN_PIN_SETUP_ARG "run_pin_setup"
|
#define DESKTOP_SETTINGS_RUN_PIN_SETUP_ARG "run_pin_setup"
|
||||||
|
|
||||||
@@ -32,16 +32,16 @@
|
|||||||
DESKTOP_SETTINGS_MAGIC, \
|
DESKTOP_SETTINGS_MAGIC, \
|
||||||
DESKTOP_SETTINGS_VER)
|
DESKTOP_SETTINGS_VER)
|
||||||
|
|
||||||
#define MAX_PIN_SIZE 10
|
#define MAX_PIN_SIZE 10
|
||||||
#define MIN_PIN_SIZE 4
|
#define MIN_PIN_SIZE 4
|
||||||
#define MAX_APP_LENGTH 128
|
#define MAX_APP_LENGTH 128
|
||||||
|
|
||||||
#define DISPLAY_BATTERY_BAR 0
|
#define DISPLAY_BATTERY_BAR 0
|
||||||
#define DISPLAY_BATTERY_PERCENT 1
|
#define DISPLAY_BATTERY_PERCENT 1
|
||||||
#define DISPLAY_BATTERY_INVERTED_PERCENT 2
|
#define DISPLAY_BATTERY_INVERTED_PERCENT 2
|
||||||
#define DISPLAY_BATTERY_RETRO_3 3
|
#define DISPLAY_BATTERY_RETRO_3 3
|
||||||
#define DISPLAY_BATTERY_RETRO_5 4
|
#define DISPLAY_BATTERY_RETRO_5 4
|
||||||
#define DISPLAY_BATTERY_BAR_PERCENT 5
|
#define DISPLAY_BATTERY_BAR_PERCENT 5
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
FavoriteAppLeftShort = 0,
|
FavoriteAppLeftShort = 0,
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include <gui/icon_i.h>
|
#include <gui/icon_i.h>
|
||||||
#include <core/dangerous_defines.h>
|
#include <core/dangerous_defines.h>
|
||||||
|
|
||||||
#define SLIDESHOW_MAGIC 0x72676468
|
#define SLIDESHOW_MAGIC 0x72676468
|
||||||
#define SLIDESHOW_MAX_SUPPORTED_VERSION 1
|
#define SLIDESHOW_MAX_SUPPORTED_VERSION 1
|
||||||
|
|
||||||
struct Slideshow {
|
struct Slideshow {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define SCENE_LOCKED_FIRST_ENTER 0
|
#define SCENE_LOCKED_FIRST_ENTER 0
|
||||||
#define SCENE_LOCKED_REPEAT_ENTER 1
|
#define SCENE_LOCKED_REPEAT_ENTER 1
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "desktop_scene_i.h"
|
#include "desktop_scene_i.h"
|
||||||
|
|
||||||
#define WRONG_PIN_HEADER_TIMEOUT 3000
|
#define WRONG_PIN_HEADER_TIMEOUT 3000
|
||||||
#define INPUT_PIN_VIEW_TIMEOUT 15000
|
#define INPUT_PIN_VIEW_TIMEOUT 15000
|
||||||
|
|
||||||
static void desktop_scene_locked_callback(DesktopEvent event, void* context) {
|
static void desktop_scene_locked_callback(DesktopEvent event, void* context) {
|
||||||
Desktop* desktop = (Desktop*)context;
|
Desktop* desktop = (Desktop*)context;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "desktop_scene.h"
|
#include "desktop_scene.h"
|
||||||
|
|
||||||
#define WRONG_PIN_HEADER_TIMEOUT 3000
|
#define WRONG_PIN_HEADER_TIMEOUT 3000
|
||||||
#define INPUT_PIN_VIEW_TIMEOUT 15000
|
#define INPUT_PIN_VIEW_TIMEOUT 15000
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
FuriTimer* timer;
|
FuriTimer* timer;
|
||||||
|
|||||||
@@ -10,17 +10,17 @@
|
|||||||
#include "../desktop_i.h"
|
#include "../desktop_i.h"
|
||||||
#include "desktop_view_locked.h"
|
#include "desktop_view_locked.h"
|
||||||
|
|
||||||
#define DOOR_MOVING_INTERVAL_MS (1000 / 16)
|
#define DOOR_MOVING_INTERVAL_MS (1000 / 16)
|
||||||
#define LOCKED_HINT_TIMEOUT_MS (1000)
|
#define LOCKED_HINT_TIMEOUT_MS (1000)
|
||||||
#define UNLOCKED_HINT_TIMEOUT_MS (2000)
|
#define UNLOCKED_HINT_TIMEOUT_MS (2000)
|
||||||
|
|
||||||
#define DOOR_OFFSET_START (-55)
|
#define DOOR_OFFSET_START (-55)
|
||||||
#define DOOR_OFFSET_END (0)
|
#define DOOR_OFFSET_END (0)
|
||||||
|
|
||||||
#define DOOR_L_FINAL_POS (0)
|
#define DOOR_L_FINAL_POS (0)
|
||||||
#define DOOR_R_FINAL_POS (60)
|
#define DOOR_R_FINAL_POS (60)
|
||||||
|
|
||||||
#define UNLOCK_CNT (3)
|
#define UNLOCK_CNT (3)
|
||||||
#define UNLOCK_RST_TIMEOUT (600)
|
#define UNLOCK_RST_TIMEOUT (600)
|
||||||
|
|
||||||
struct DesktopViewLocked {
|
struct DesktopViewLocked {
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
#define NO_ACTIVITY_TIMEOUT 15000
|
#define NO_ACTIVITY_TIMEOUT 15000
|
||||||
|
|
||||||
#define PIN_CELL_WIDTH 13
|
#define PIN_CELL_WIDTH 13
|
||||||
#define DEFAULT_PIN_X 64
|
#define DEFAULT_PIN_X 64
|
||||||
#define DEFAULT_PIN_Y 32
|
#define DEFAULT_PIN_Y 32
|
||||||
|
|
||||||
struct DesktopViewPinInput {
|
struct DesktopViewPinInput {
|
||||||
View* view;
|
View* view;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include "../helpers/slideshow.h"
|
#include "../helpers/slideshow.h"
|
||||||
|
|
||||||
#define DESKTOP_SLIDESHOW_POWEROFF_SHORT 5000
|
#define DESKTOP_SLIDESHOW_POWEROFF_SHORT 5000
|
||||||
#define DESKTOP_SLIDESHOW_POWEROFF_LONG (60 * 60 * 1000)
|
#define DESKTOP_SLIDESHOW_POWEROFF_LONG (60 * 60 * 1000)
|
||||||
|
|
||||||
struct DesktopSlideshowView {
|
struct DesktopSlideshowView {
|
||||||
View* view;
|
View* view;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user