This commit is contained in:
Willy-JL
2024-02-12 03:16:30 +00:00
37 changed files with 236 additions and 159 deletions
+4
View File
@@ -13,6 +13,10 @@ extern "C" {
#define FURI_WARN_UNUSED __attribute__((warn_unused_result))
#endif
#ifndef FURI_DEPRECATED
#define FURI_DEPRECATED __attribute__((deprecated))
#endif
#ifndef FURI_WEAK
#define FURI_WEAK __attribute__((weak))
#endif
+3 -3
View File
@@ -84,9 +84,9 @@ extern "C" {
#endif
#ifndef REVERSE_BYTES_U32
#define REVERSE_BYTES_U32(x) \
((((x)&0x000000FF) << 24) | (((x)&0x0000FF00) << 8) | (((x)&0x00FF0000) >> 8) | \
(((x)&0xFF000000) >> 24))
#define REVERSE_BYTES_U32(x) \
((((x) & 0x000000FF) << 24) | (((x) & 0x0000FF00) << 8) | (((x) & 0x00FF0000) >> 8) | \
(((x) & 0xFF000000) >> 24))
#endif
#ifndef FURI_BIT
+16 -15
View File
@@ -26,19 +26,20 @@
*tmp_x = y; \
*tmp_x; \
})
#define FURI_CONST_ASSIGN(x, y) \
_Generic((x), signed char \
: FURI_CONST_ASSIGN_(signed char, x, y), unsigned char \
: FURI_CONST_ASSIGN_(unsigned char, x, y), short \
: FURI_CONST_ASSIGN_(short, x, y), unsigned short \
: FURI_CONST_ASSIGN_(unsigned short, x, y), int \
: FURI_CONST_ASSIGN_(int, x, y), unsigned \
: FURI_CONST_ASSIGN_(unsigned, x, y), long \
: FURI_CONST_ASSIGN_(long, x, y), unsigned long \
: FURI_CONST_ASSIGN_(unsigned long, x, y), long long \
: FURI_CONST_ASSIGN_(long long, x, y), unsigned long long \
: FURI_CONST_ASSIGN_(unsigned long long, x, y), float \
: FURI_CONST_ASSIGN_(float, x, y), double \
: FURI_CONST_ASSIGN_(double, x, y), long double \
: FURI_CONST_ASSIGN_(long double, x, y))
#define FURI_CONST_ASSIGN(x, y) \
_Generic( \
(x), \
signed char: FURI_CONST_ASSIGN_(signed char, x, y), \
unsigned char: FURI_CONST_ASSIGN_(unsigned char, x, y), \
short: FURI_CONST_ASSIGN_(short, x, y), \
unsigned short: FURI_CONST_ASSIGN_(unsigned short, x, y), \
int: FURI_CONST_ASSIGN_(int, x, y), \
unsigned: FURI_CONST_ASSIGN_(unsigned, x, y), \
long: FURI_CONST_ASSIGN_(long, x, y), \
unsigned long: FURI_CONST_ASSIGN_(unsigned long, x, y), \
long long: FURI_CONST_ASSIGN_(long long, x, y), \
unsigned long long: FURI_CONST_ASSIGN_(unsigned long long, x, y), \
float: FURI_CONST_ASSIGN_(float, x, y), \
double: FURI_CONST_ASSIGN_(double, x, y), \
long double: FURI_CONST_ASSIGN_(long double, x, y))
#endif
+12 -8
View File
@@ -568,26 +568,30 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico
/**
* @brief Select for 1 argument
*/
#define FURI_STRING_SELECT1(func1, func2, a) \
_Generic((a), char* : func2, const char* : func2, FuriString* : func1, const FuriString* : func1)(a)
#define FURI_STRING_SELECT1(func1, func2, a) \
_Generic((a), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \
a)
/**
* @brief Select for 2 arguments
*/
#define FURI_STRING_SELECT2(func1, func2, a, b) \
_Generic((b), char* : func2, const char* : func2, FuriString* : func1, const FuriString* : func1)(a, b)
#define FURI_STRING_SELECT2(func1, func2, a, b) \
_Generic((b), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \
a, b)
/**
* @brief Select for 3 arguments
*/
#define FURI_STRING_SELECT3(func1, func2, a, b, c) \
_Generic((b), char* : func2, const char* : func2, FuriString* : func1, const FuriString* : func1)(a, b, c)
#define FURI_STRING_SELECT3(func1, func2, a, b, c) \
_Generic((b), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \
a, b, c)
/**
* @brief Select for 4 arguments
*/
#define FURI_STRING_SELECT4(func1, func2, a, b, c, d) \
_Generic((b), char* : func2, const char* : func2, FuriString* : func1, const FuriString* : func1)(a, b, c, d)
#define FURI_STRING_SELECT4(func1, func2, a, b, c, d) \
_Generic((b), char*: func2, const char*: func2, FuriString*: func1, const FuriString*: func1)( \
a, b, c, d)
/**
* @brief Allocate new FuriString and set it content to string (or C string).