Part 1
26
ReadMe.md
@@ -5,7 +5,11 @@
|
||||
|
||||
This Firmware is a modified version of RM with some of my own Ideas added to it and some ignored stuff from the official one brought into it as well. Probably more bleeding edge than RM, but will always remove things that crash the flipper
|
||||
|
||||
This might have some NSFW content, but since its a super tiny display dont expect too much.
|
||||
-----
|
||||
|
||||
Note:
|
||||
|
||||
I'm currently working on getting my own custom animation style done. This is going to be nsfw, as that suits me quite well. If you wanna help, lmk!
|
||||
|
||||
-----
|
||||
|
||||
@@ -14,14 +18,32 @@ This might have some NSFW content, but since its a super tiny display dont expec
|
||||
```txt
|
||||
- Removed broken apps (bad apple, chess, etc.)
|
||||
|
||||
- Updated Compiler to now handle all non-compiled faps during build
|
||||
- Updated Compiler to accept WIP SDK
|
||||
- Updated Compiler to just stfu about non-fatal problems
|
||||
- Updated some NFC stuff
|
||||
- Updated Weather App
|
||||
- Updated
|
||||
|
||||
- Added multiple Animation profiles to fit your style
|
||||
- Added new API Routes for Locale settings
|
||||
- Added Applications to new Locale setting
|
||||
- Added scrolling view for long file names in browser
|
||||
```
|
||||
|
||||
## Build
|
||||
----
|
||||
|
||||
## Known Bugs:
|
||||
|
||||
```txt
|
||||
- Clock not yet synced with locale
|
||||
- Wii EC can crash due to Null Pointer
|
||||
- subghz brutemap not working
|
||||
```
|
||||
|
||||
----
|
||||
|
||||
## Build it yourself:
|
||||
|
||||
```bash
|
||||
$ git clone --recursive https://github.com/ClaraCrazy/Flipper-Xtreme.git
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
App(
|
||||
appid="clock",
|
||||
name="Clock",
|
||||
apptype=FlipperAppType.EXTERNAL,
|
||||
entry_point="clock_app",
|
||||
requires=["gui"],
|
||||
stack_size=2 * 1024,
|
||||
fap_icon="clock.png",
|
||||
fap_category="Tools",
|
||||
)
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,136 +0,0 @@
|
||||
#include <furi.h>
|
||||
#include <furi_hal.h>
|
||||
|
||||
#include <gui/gui.h>
|
||||
#include <locale/locale.h>
|
||||
|
||||
typedef enum {
|
||||
ClockEventTypeTick,
|
||||
ClockEventTypeKey,
|
||||
} ClockEventType;
|
||||
|
||||
typedef struct {
|
||||
ClockEventType type;
|
||||
InputEvent input;
|
||||
} ClockEvent;
|
||||
|
||||
typedef struct {
|
||||
FuriString* buffer;
|
||||
FuriHalRtcDateTime datetime;
|
||||
LocaleTimeFormat timeformat;
|
||||
LocaleDateFormat dateformat;
|
||||
} ClockData;
|
||||
|
||||
typedef struct {
|
||||
FuriMutex* mutex;
|
||||
FuriMessageQueue* queue;
|
||||
ClockData* data;
|
||||
} Clock;
|
||||
|
||||
static void clock_input_callback(InputEvent* input_event, FuriMessageQueue* queue) {
|
||||
furi_assert(queue);
|
||||
ClockEvent event = {.type = ClockEventTypeKey, .input = *input_event};
|
||||
furi_message_queue_put(queue, &event, FuriWaitForever);
|
||||
}
|
||||
|
||||
static void clock_render_callback(Canvas* canvas, void* ctx) {
|
||||
Clock* clock = ctx;
|
||||
if(furi_mutex_acquire(clock->mutex, 200) != FuriStatusOk) {
|
||||
return;
|
||||
}
|
||||
|
||||
ClockData* data = clock->data;
|
||||
|
||||
canvas_set_font(canvas, FontBigNumbers);
|
||||
locale_format_time(data->buffer, &data->datetime, data->timeformat, true);
|
||||
canvas_draw_str_aligned(
|
||||
canvas, 64, 28, AlignCenter, AlignCenter, furi_string_get_cstr(data->buffer));
|
||||
|
||||
// Special case to cover missing glyphs in FontBigNumbers
|
||||
if(data->timeformat == LocaleTimeFormat12h) {
|
||||
size_t time_width = canvas_string_width(canvas, furi_string_get_cstr(data->buffer));
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str_aligned(
|
||||
canvas,
|
||||
64 + (time_width / 2) - 10,
|
||||
31,
|
||||
AlignLeft,
|
||||
AlignCenter,
|
||||
(data->datetime.hour > 12) ? "AM" : "PM");
|
||||
}
|
||||
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
locale_format_date(data->buffer, &data->datetime, data->dateformat, "/");
|
||||
canvas_draw_str_aligned(
|
||||
canvas, 64, 42, AlignCenter, AlignTop, furi_string_get_cstr(data->buffer));
|
||||
|
||||
furi_mutex_release(clock->mutex);
|
||||
}
|
||||
|
||||
static void clock_tick(void* ctx) {
|
||||
furi_assert(ctx);
|
||||
FuriMessageQueue* queue = ctx;
|
||||
ClockEvent event = {.type = ClockEventTypeTick};
|
||||
// It's OK to loose this event if system overloaded
|
||||
furi_message_queue_put(queue, &event, 0);
|
||||
}
|
||||
|
||||
int32_t clock_app(void* p) {
|
||||
UNUSED(p);
|
||||
Clock* clock = malloc(sizeof(Clock));
|
||||
clock->data = malloc(sizeof(ClockData));
|
||||
clock->data->buffer = furi_string_alloc();
|
||||
|
||||
clock->queue = furi_message_queue_alloc(8, sizeof(ClockEvent));
|
||||
clock->mutex = furi_mutex_alloc(FuriMutexTypeNormal);
|
||||
|
||||
furi_hal_rtc_get_datetime(&clock->data->datetime);
|
||||
clock->data->timeformat = locale_get_time_format();
|
||||
clock->data->dateformat = locale_get_date_format();
|
||||
|
||||
// Set ViewPort callbacks
|
||||
ViewPort* view_port = view_port_alloc();
|
||||
view_port_draw_callback_set(view_port, clock_render_callback, clock);
|
||||
view_port_input_callback_set(view_port, clock_input_callback, clock->queue);
|
||||
|
||||
FuriTimer* timer = furi_timer_alloc(clock_tick, FuriTimerTypePeriodic, clock->queue);
|
||||
|
||||
// Open GUI and register view_port
|
||||
Gui* gui = furi_record_open(RECORD_GUI);
|
||||
gui_add_view_port(gui, view_port, GuiLayerFullscreen);
|
||||
|
||||
furi_timer_start(timer, 100);
|
||||
|
||||
// Main loop
|
||||
ClockEvent event;
|
||||
for(bool processing = true; processing;) {
|
||||
furi_check(furi_message_queue_get(clock->queue, &event, FuriWaitForever) == FuriStatusOk);
|
||||
furi_mutex_acquire(clock->mutex, FuriWaitForever);
|
||||
if(event.type == ClockEventTypeKey) {
|
||||
if(event.input.type == InputTypeShort && event.input.key == InputKeyBack) {
|
||||
processing = false;
|
||||
}
|
||||
} else if(event.type == ClockEventTypeTick) {
|
||||
furi_hal_rtc_get_datetime(&clock->data->datetime);
|
||||
}
|
||||
|
||||
furi_mutex_release(clock->mutex);
|
||||
view_port_update(view_port);
|
||||
}
|
||||
|
||||
furi_timer_free(timer);
|
||||
view_port_enabled_set(view_port, false);
|
||||
gui_remove_view_port(gui, view_port);
|
||||
view_port_free(view_port);
|
||||
furi_record_close(RECORD_GUI);
|
||||
|
||||
furi_message_queue_free(clock->queue);
|
||||
furi_mutex_free(clock->mutex);
|
||||
|
||||
furi_string_free(clock->data->buffer);
|
||||
|
||||
free(clock->data);
|
||||
free(clock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
BIN
assets/dolphin/external/lvl_1/frame_0.png
vendored
Normal file
|
After Width: | Height: | Size: 421 B |
BIN
assets/dolphin/external/lvl_1/frame_1.png
vendored
Normal file
|
After Width: | Height: | Size: 378 B |
BIN
assets/dolphin/external/lvl_1/frame_10.png
vendored
Normal file
|
After Width: | Height: | Size: 414 B |
BIN
assets/dolphin/external/lvl_1/frame_11.png
vendored
Normal file
|
After Width: | Height: | Size: 387 B |
BIN
assets/dolphin/external/lvl_1/frame_12.png
vendored
Normal file
|
After Width: | Height: | Size: 383 B |
BIN
assets/dolphin/external/lvl_1/frame_13.png
vendored
Normal file
|
After Width: | Height: | Size: 365 B |
BIN
assets/dolphin/external/lvl_1/frame_14.png
vendored
Normal file
|
After Width: | Height: | Size: 383 B |
BIN
assets/dolphin/external/lvl_1/frame_15.png
vendored
Normal file
|
After Width: | Height: | Size: 401 B |
BIN
assets/dolphin/external/lvl_1/frame_16.png
vendored
Normal file
|
After Width: | Height: | Size: 411 B |
BIN
assets/dolphin/external/lvl_1/frame_17.png
vendored
Normal file
|
After Width: | Height: | Size: 396 B |
BIN
assets/dolphin/external/lvl_1/frame_18.png
vendored
Normal file
|
After Width: | Height: | Size: 391 B |
BIN
assets/dolphin/external/lvl_1/frame_19.png
vendored
Normal file
|
After Width: | Height: | Size: 397 B |
BIN
assets/dolphin/external/lvl_1/frame_2.png
vendored
Normal file
|
After Width: | Height: | Size: 382 B |
BIN
assets/dolphin/external/lvl_1/frame_20.png
vendored
Normal file
|
After Width: | Height: | Size: 384 B |
BIN
assets/dolphin/external/lvl_1/frame_21.png
vendored
Normal file
|
After Width: | Height: | Size: 394 B |
BIN
assets/dolphin/external/lvl_1/frame_22.png
vendored
Normal file
|
After Width: | Height: | Size: 399 B |
BIN
assets/dolphin/external/lvl_1/frame_23.png
vendored
Normal file
|
After Width: | Height: | Size: 369 B |
BIN
assets/dolphin/external/lvl_1/frame_24.png
vendored
Normal file
|
After Width: | Height: | Size: 404 B |
BIN
assets/dolphin/external/lvl_1/frame_25.png
vendored
Normal file
|
After Width: | Height: | Size: 419 B |
BIN
assets/dolphin/external/lvl_1/frame_26.png
vendored
Normal file
|
After Width: | Height: | Size: 471 B |
BIN
assets/dolphin/external/lvl_1/frame_27.png
vendored
Normal file
|
After Width: | Height: | Size: 477 B |
BIN
assets/dolphin/external/lvl_1/frame_28.png
vendored
Normal file
|
After Width: | Height: | Size: 466 B |
BIN
assets/dolphin/external/lvl_1/frame_29.png
vendored
Normal file
|
After Width: | Height: | Size: 432 B |
BIN
assets/dolphin/external/lvl_1/frame_3.png
vendored
Normal file
|
After Width: | Height: | Size: 367 B |
BIN
assets/dolphin/external/lvl_1/frame_30.png
vendored
Normal file
|
After Width: | Height: | Size: 406 B |
BIN
assets/dolphin/external/lvl_1/frame_4.png
vendored
Normal file
|
After Width: | Height: | Size: 359 B |
BIN
assets/dolphin/external/lvl_1/frame_5.png
vendored
Normal file
|
After Width: | Height: | Size: 365 B |
BIN
assets/dolphin/external/lvl_1/frame_6.png
vendored
Normal file
|
After Width: | Height: | Size: 379 B |
BIN
assets/dolphin/external/lvl_1/frame_7.png
vendored
Normal file
|
After Width: | Height: | Size: 397 B |
BIN
assets/dolphin/external/lvl_1/frame_8.png
vendored
Normal file
|
After Width: | Height: | Size: 427 B |
BIN
assets/dolphin/external/lvl_1/frame_9.png
vendored
Normal file
|
After Width: | Height: | Size: 422 B |
14
assets/dolphin/external/lvl_1/meta.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Filetype: Flipper Animation
|
||||
Version: 1
|
||||
|
||||
Width: 128
|
||||
Height: 64
|
||||
Passive frames: 31
|
||||
Active frames: 0
|
||||
Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
||||
Active cycles: 0
|
||||
Frame rate: 6
|
||||
Duration: 3600
|
||||
Active cooldown: 0
|
||||
|
||||
Bubble slots: 0
|
||||
BIN
assets/dolphin/external/lvl_10/frame_0.png
vendored
Normal file
|
After Width: | Height: | Size: 767 B |
BIN
assets/dolphin/external/lvl_10/frame_1.png
vendored
Normal file
|
After Width: | Height: | Size: 726 B |
BIN
assets/dolphin/external/lvl_10/frame_2.png
vendored
Normal file
|
After Width: | Height: | Size: 726 B |
BIN
assets/dolphin/external/lvl_10/frame_3.png
vendored
Normal file
|
After Width: | Height: | Size: 726 B |
BIN
assets/dolphin/external/lvl_10/frame_4.png
vendored
Normal file
|
After Width: | Height: | Size: 716 B |
BIN
assets/dolphin/external/lvl_10/frame_5.png
vendored
Normal file
|
After Width: | Height: | Size: 713 B |
BIN
assets/dolphin/external/lvl_10/frame_6.png
vendored
Normal file
|
After Width: | Height: | Size: 715 B |
BIN
assets/dolphin/external/lvl_10/frame_7.png
vendored
Normal file
|
After Width: | Height: | Size: 720 B |
14
assets/dolphin/external/lvl_10/meta.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Filetype: Flipper Animation
|
||||
Version: 1
|
||||
|
||||
Width: 128
|
||||
Height: 64
|
||||
Passive frames: 8
|
||||
Active frames: 0
|
||||
Frames order: 0 1 2 3 4 5 6 7
|
||||
Active cycles: 0
|
||||
Frame rate: 6
|
||||
Duration: 3600
|
||||
Active cooldown: 0
|
||||
|
||||
Bubble slots: 0
|
||||
BIN
assets/dolphin/external/lvl_11/frame_0.png
vendored
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/dolphin/external/lvl_11/frame_1.png
vendored
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/dolphin/external/lvl_11/frame_10.png
vendored
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/dolphin/external/lvl_11/frame_11.png
vendored
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/dolphin/external/lvl_11/frame_12.png
vendored
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/dolphin/external/lvl_11/frame_13.png
vendored
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/dolphin/external/lvl_11/frame_14.png
vendored
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/dolphin/external/lvl_11/frame_15.png
vendored
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/dolphin/external/lvl_11/frame_16.png
vendored
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/dolphin/external/lvl_11/frame_17.png
vendored
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/dolphin/external/lvl_11/frame_18.png
vendored
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
assets/dolphin/external/lvl_11/frame_19.png
vendored
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
assets/dolphin/external/lvl_11/frame_2.png
vendored
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
assets/dolphin/external/lvl_11/frame_20.png
vendored
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
assets/dolphin/external/lvl_11/frame_21.png
vendored
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
assets/dolphin/external/lvl_11/frame_22.png
vendored
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
assets/dolphin/external/lvl_11/frame_3.png
vendored
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
assets/dolphin/external/lvl_11/frame_4.png
vendored
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
assets/dolphin/external/lvl_11/frame_5.png
vendored
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
assets/dolphin/external/lvl_11/frame_6.png
vendored
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/dolphin/external/lvl_11/frame_7.png
vendored
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
assets/dolphin/external/lvl_11/frame_8.png
vendored
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/dolphin/external/lvl_11/frame_9.png
vendored
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
14
assets/dolphin/external/lvl_11/meta.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Filetype: Flipper Animation
|
||||
Version: 1
|
||||
|
||||
Width: 128
|
||||
Height: 64
|
||||
Passive frames: 23
|
||||
Active frames: 0
|
||||
Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
||||
Active cycles: 0
|
||||
Frame rate: 6
|
||||
Duration: 3600
|
||||
Active cooldown: 0
|
||||
|
||||
Bubble slots: 0
|
||||
BIN
assets/dolphin/external/lvl_12/frame_0.png
vendored
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/dolphin/external/lvl_12/frame_1.png
vendored
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/dolphin/external/lvl_12/frame_10.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/dolphin/external/lvl_12/frame_11.png
vendored
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/dolphin/external/lvl_12/frame_12.png
vendored
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/dolphin/external/lvl_12/frame_13.png
vendored
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/dolphin/external/lvl_12/frame_14.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/dolphin/external/lvl_12/frame_15.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/dolphin/external/lvl_12/frame_2.png
vendored
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
assets/dolphin/external/lvl_12/frame_3.png
vendored
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
assets/dolphin/external/lvl_12/frame_4.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/dolphin/external/lvl_12/frame_5.png
vendored
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
assets/dolphin/external/lvl_12/frame_6.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/dolphin/external/lvl_12/frame_7.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/dolphin/external/lvl_12/frame_8.png
vendored
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
assets/dolphin/external/lvl_12/frame_9.png
vendored
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
14
assets/dolphin/external/lvl_12/meta.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Filetype: Flipper Animation
|
||||
Version: 1
|
||||
|
||||
Width: 128
|
||||
Height: 64
|
||||
Passive frames: 16
|
||||
Active frames: 0
|
||||
Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
Active cycles: 0
|
||||
Frame rate: 6
|
||||
Duration: 3600
|
||||
Active cooldown: 0
|
||||
|
||||
Bubble slots: 0
|
||||
BIN
assets/dolphin/external/lvl_13/frame_0.png
vendored
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
assets/dolphin/external/lvl_13/frame_1.png
vendored
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
assets/dolphin/external/lvl_13/frame_10.png
vendored
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/dolphin/external/lvl_13/frame_11.png
vendored
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
assets/dolphin/external/lvl_13/frame_12.png
vendored
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
assets/dolphin/external/lvl_13/frame_13.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
assets/dolphin/external/lvl_13/frame_14.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
assets/dolphin/external/lvl_13/frame_15.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
assets/dolphin/external/lvl_13/frame_16.png
vendored
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/dolphin/external/lvl_13/frame_17.png
vendored
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/dolphin/external/lvl_13/frame_2.png
vendored
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
assets/dolphin/external/lvl_13/frame_3.png
vendored
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
assets/dolphin/external/lvl_13/frame_4.png
vendored
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
assets/dolphin/external/lvl_13/frame_5.png
vendored
Normal file
|
After Width: | Height: | Size: 3.6 KiB |