mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 18:08:35 -07:00
BLE Spam refactor again to use scene manager
This commit is contained in:
2
applications/external/ble_spam/scenes/_scenes.h
vendored
Normal file
2
applications/external/ble_spam/scenes/_scenes.h
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
ADD_SCENE(main, Main)
|
||||
#include "../protocols/_scenes.h"
|
||||
30
applications/external/ble_spam/scenes/_setup.c
vendored
Normal file
30
applications/external/ble_spam/scenes/_setup.c
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
#include "_setup.h"
|
||||
|
||||
// Generate scene on_enter handlers array
|
||||
#define ADD_SCENE(name, id) scene_##name##_on_enter,
|
||||
void (*const scene_on_enter_handlers[])(void*) = {
|
||||
#include "_scenes.h"
|
||||
};
|
||||
#undef ADD_SCENE
|
||||
|
||||
// Generate scene on_event handlers array
|
||||
#define ADD_SCENE(name, id) scene_##name##_on_event,
|
||||
bool (*const scene_on_event_handlers[])(void*, SceneManagerEvent) = {
|
||||
#include "_scenes.h"
|
||||
};
|
||||
#undef ADD_SCENE
|
||||
|
||||
// Generate scene on_exit handlers array
|
||||
#define ADD_SCENE(name, id) scene_##name##_on_exit,
|
||||
void (*const scene_on_exit_handlers[])(void*) = {
|
||||
#include "_scenes.h"
|
||||
};
|
||||
#undef ADD_SCENE
|
||||
|
||||
// Initialize scene handlers configuration structure
|
||||
const SceneManagerHandlers scene_handlers = {
|
||||
.on_enter_handlers = scene_on_enter_handlers,
|
||||
.on_event_handlers = scene_on_event_handlers,
|
||||
.on_exit_handlers = scene_on_exit_handlers,
|
||||
.scene_num = SceneCount,
|
||||
};
|
||||
28
applications/external/ble_spam/scenes/_setup.h
vendored
Normal file
28
applications/external/ble_spam/scenes/_setup.h
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <gui/scene_manager.h>
|
||||
|
||||
// Generate scene id and total number
|
||||
#define ADD_SCENE(name, id) Scene##id,
|
||||
typedef enum {
|
||||
#include "_scenes.h"
|
||||
SceneCount,
|
||||
} Scene;
|
||||
#undef ADD_SCENE
|
||||
|
||||
extern const SceneManagerHandlers scene_handlers;
|
||||
|
||||
// Generate scene on_enter handlers declaration
|
||||
#define ADD_SCENE(name, id) void scene_##name##_on_enter(void*);
|
||||
#include "_scenes.h"
|
||||
#undef ADD_SCENE
|
||||
|
||||
// Generate scene on_event handlers declaration
|
||||
#define ADD_SCENE(name, id) bool scene_##name##_on_event(void*, SceneManagerEvent);
|
||||
#include "_scenes.h"
|
||||
#undef ADD_SCENE
|
||||
|
||||
// Generate scene on_exit handlers declaration
|
||||
#define ADD_SCENE(name, id) void scene_##name##_on_exit(void*);
|
||||
#include "_scenes.h"
|
||||
#undef ADD_SCENE
|
||||
16
applications/external/ble_spam/scenes/main.c
vendored
Normal file
16
applications/external/ble_spam/scenes/main.c
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
#include "../ble_spam.h"
|
||||
|
||||
void scene_main_on_enter(void* _ctx) {
|
||||
Ctx* ctx = _ctx;
|
||||
view_dispatcher_switch_to_view(ctx->view_dispatcher, ViewMain);
|
||||
}
|
||||
|
||||
bool scene_main_on_event(void* _ctx, SceneManagerEvent event) {
|
||||
UNUSED(_ctx);
|
||||
UNUSED(event);
|
||||
return false;
|
||||
}
|
||||
|
||||
void scene_main_on_exit(void* _ctx) {
|
||||
UNUSED(_ctx);
|
||||
}
|
||||
Reference in New Issue
Block a user