BLE Spam add led indicator blink (v3.2)

This commit is contained in:
Willy-JL
2023-10-21 08:27:01 +01:00
parent c73c487cfe
commit f514efd951
4 changed files with 48 additions and 10 deletions

View File

@@ -2,10 +2,15 @@
#include "protocols/_protocols.h"
static void random_mac_changed(VariableItem* item) {
Ctx* ctx = variable_item_get_context(item);
ctx->attack->payload.random_mac = variable_item_get_current_value_index(item);
variable_item_set_current_value_text(item, ctx->attack->payload.random_mac ? "ON" : "OFF");
static void _config_bool(VariableItem* item) {
bool* value = variable_item_get_context(item);
*value = variable_item_get_current_value_index(item);
variable_item_set_current_value_text(item, *value ? "ON" : "OFF");
}
static void config_bool(VariableItemList* list, const char* name, bool* value) {
VariableItem* item = variable_item_list_add(list, name, 2, _config_bool, value);
variable_item_set_current_value_index(item, *value);
variable_item_set_current_value_text(item, *value ? "ON" : "OFF");
}
static void config_callback(void* _ctx, uint32_t index) {
@@ -19,21 +24,20 @@ static void config_callback(void* _ctx, uint32_t index) {
switch(index) {
case ConfigRandomMac:
break;
case ConfigLedIndicator:
break;
default:
break;
}
}
void scene_config_on_enter(void* _ctx) {
Ctx* ctx = _ctx;
VariableItem* item;
VariableItemList* list = ctx->variable_item_list;
variable_item_list_reset(list);
variable_item_list_set_header(list, ctx->attack->title);
item = variable_item_list_add(list, "Random MAC", 2, random_mac_changed, ctx);
variable_item_set_current_value_index(item, ctx->attack->payload.random_mac);
variable_item_set_current_value_text(item, ctx->attack->payload.random_mac ? "ON" : "OFF");
config_bool(list, "Random MAC", &ctx->attack->payload.random_mac);
variable_item_list_set_enter_callback(list, config_callback, ctx);
if(!ctx->attack->protocol) {
@@ -43,6 +47,8 @@ void scene_config_on_enter(void* _ctx) {
ctx->attack->protocol->extra_config(ctx);
}
config_bool(list, "LED Indicator", &ctx->led_indicator);
variable_item_list_set_selected_item(
list, scene_manager_get_scene_state(ctx->scene_manager, SceneConfig));