920b3c3dee
* Dolphin idle screen: Cleanup of debug views; Hold [down] to open debug view; Sequential input for unlocking; * Lock screen popup, WIP * Fix reverse modulus * Lock popup added * Dolphin: timer for handling UI animation sequences * Allow tick events to be discarded on queue overflow and prevent timer service from crash Co-authored-by: あく <alleteam@gmail.com>
77 lines
1.7 KiB
C
77 lines
1.7 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include <gui/canvas.h>
|
|
#include <input/input.h>
|
|
#include <furi.h>
|
|
|
|
#ifndef MAX
|
|
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
|
|
#endif
|
|
|
|
#ifndef MIN
|
|
#define MIN(x, y) (((x) < (y)) ? (x) : (y))
|
|
#endif
|
|
|
|
#ifndef CLAMP
|
|
#define CLAMP(x, upper, lower) (MIN(upper, MAX(x, lower)))
|
|
#endif
|
|
|
|
// Idle screen
|
|
typedef enum {
|
|
DolphinViewIdleMain,
|
|
DolphinViewFirstStart,
|
|
DolphinViewStats,
|
|
DolphinViewHwMismatch,
|
|
DolphinViewLockMenu,
|
|
} DolphinViewIdle;
|
|
|
|
// Debug info
|
|
typedef enum {
|
|
DolphinViewStatsFw,
|
|
DolphinViewStatsBoot,
|
|
DolphinViewStatsMeta,
|
|
DolphinViewStatsTotalCount,
|
|
} DolphinViewStatsScreens;
|
|
|
|
typedef struct {
|
|
uint32_t page;
|
|
} DolphinViewFirstStartModel;
|
|
|
|
void dolphin_view_first_start_draw(Canvas* canvas, void* model);
|
|
bool dolphin_view_first_start_input(InputEvent* event, void* context);
|
|
|
|
typedef struct {
|
|
uint32_t icounter;
|
|
uint32_t butthurt;
|
|
DolphinViewStatsScreens screen;
|
|
} DolphinViewStatsModel;
|
|
|
|
typedef struct {
|
|
uint8_t idx;
|
|
int8_t door_left_x;
|
|
int8_t door_right_x;
|
|
uint8_t exit_timeout;
|
|
bool locked;
|
|
} DolphinViewLockMenuModel;
|
|
|
|
typedef struct {
|
|
Icon* animation;
|
|
uint8_t scene_num;
|
|
uint8_t hint_timeout;
|
|
} DolphinViewMainModel;
|
|
|
|
void dolphin_view_idle_main_draw(Canvas* canvas, void* model);
|
|
bool dolphin_view_idle_main_input(InputEvent* event, void* context);
|
|
|
|
void dolphin_view_idle_up_draw(Canvas* canvas, void* model);
|
|
|
|
void dolphin_view_lockmenu_draw(Canvas* canvas, void* model);
|
|
|
|
void dolphin_view_idle_down_draw(Canvas* canvas, void* model);
|
|
|
|
void dolphin_view_hw_mismatch_draw(Canvas* canvas, void* model);
|
|
|
|
uint32_t dolphin_view_idle_back(void* context);
|