1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-13 05:06:30 +04:00

Change custom btn sending logic

This commit is contained in:
gid9798
2023-05-14 01:34:43 +03:00
parent 71f48ea39e
commit d87df3e6c2
4 changed files with 52 additions and 40 deletions

View File

@@ -156,43 +156,46 @@ bool subghz_view_transmitter_input(InputEvent* event, void* context) {
return true; return true;
} // Finish "OK" key processing } // Finish "OK" key processing
uint8_t temp_btn_id; if(subghz_custom_btn_is_allowed()) {
if(event->key == InputKeyUp) { uint8_t temp_btn_id;
temp_btn_id = SUBGHZ_CUSTOM_BTN_UP; if(event->key == InputKeyUp) {
} else if(event->key == InputKeyDown) { temp_btn_id = SUBGHZ_CUSTOM_BTN_UP;
temp_btn_id = SUBGHZ_CUSTOM_BTN_DOWN; } else if(event->key == InputKeyDown) {
} else if(event->key == InputKeyLeft) { temp_btn_id = SUBGHZ_CUSTOM_BTN_DOWN;
temp_btn_id = SUBGHZ_CUSTOM_BTN_LEFT; } else if(event->key == InputKeyLeft) {
} else if(event->key == InputKeyRight) { temp_btn_id = SUBGHZ_CUSTOM_BTN_LEFT;
temp_btn_id = SUBGHZ_CUSTOM_BTN_RIGHT; } else if(event->key == InputKeyRight) {
} else { temp_btn_id = SUBGHZ_CUSTOM_BTN_RIGHT;
// Finish processing if the button is different } else {
return true; // Finish processing if the button is different
} return true;
}
if(event->type == InputTypePress) { if(event->type == InputTypePress) {
subghz_custom_btn_set(temp_btn_id); with_view_model(
with_view_model( subghz_transmitter->view,
subghz_transmitter->view, SubGhzViewTransmitterModel * model,
SubGhzViewTransmitterModel * model, {
{ furi_string_reset(model->temp_button_id);
furi_string_reset(model->temp_button_id); if(subghz_custom_btn_get_original() != 0) {
if(subghz_custom_btn_get_original() != 0) { if(subghz_custom_btn_set(temp_btn_id)) {
if(subghz_custom_btn_get() == temp_btn_id) { furi_string_printf(
furi_string_printf( model->temp_button_id,
model->temp_button_id, "%01X", subghz_custom_btn_get_original()); "%01X",
model->draw_temp_button = true; subghz_custom_btn_get_original());
model->draw_temp_button = true;
}
} }
} },
}, true);
true); subghz_transmitter->callback(
subghz_transmitter->callback( SubGhzCustomEventViewTransmitterSendStart, subghz_transmitter->context);
SubGhzCustomEventViewTransmitterSendStart, subghz_transmitter->context); return true;
return true; } else if(event->type == InputTypeRelease) {
} else if(event->type == InputTypeRelease) { subghz_transmitter->callback(
subghz_transmitter->callback( SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context);
SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context); return true;
return true; }
} }
} }

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params entry,status,name,type,params
Version,+,26.2,, Version,+,26.3,,
Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,, Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,, Header,+,applications/services/cli/cli_vcp.h,,
@@ -2703,7 +2703,8 @@ Function,+,subghz_block_generic_get_preset_name,void,"const char*, FuriString*"
Function,+,subghz_block_generic_serialize,SubGhzProtocolStatus,"SubGhzBlockGeneric*, FlipperFormat*, SubGhzRadioPreset*" Function,+,subghz_block_generic_serialize,SubGhzProtocolStatus,"SubGhzBlockGeneric*, FlipperFormat*, SubGhzRadioPreset*"
Function,-,subghz_custom_btn_get,uint8_t, Function,-,subghz_custom_btn_get,uint8_t,
Function,-,subghz_custom_btn_get_original,uint8_t, Function,-,subghz_custom_btn_get_original,uint8_t,
Function,-,subghz_custom_btn_set,void,uint8_t Function,-,subghz_custom_btn_is_allowed,_Bool,
Function,-,subghz_custom_btn_set,_Bool,uint8_t
Function,-,subghz_custom_btn_set_max,void,uint8_t Function,-,subghz_custom_btn_set_max,void,uint8_t
Function,-,subghz_custom_btn_set_original,void,uint8_t Function,-,subghz_custom_btn_set_original,void,uint8_t
Function,-,subghz_custom_btns_reset,void, Function,-,subghz_custom_btns_reset,void,
1 entry status name type params
2 Version + 26.2 26.3
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
2703 Function + subghz_block_generic_serialize SubGhzProtocolStatus SubGhzBlockGeneric*, FlipperFormat*, SubGhzRadioPreset*
2704 Function - subghz_custom_btn_get uint8_t
2705 Function - subghz_custom_btn_get_original uint8_t
2706 Function - subghz_custom_btn_set subghz_custom_btn_is_allowed void _Bool uint8_t
2707 Function - subghz_custom_btn_set _Bool uint8_t
2708 Function - subghz_custom_btn_set_max void uint8_t
2709 Function - subghz_custom_btn_set_original void uint8_t
2710 Function - subghz_custom_btns_reset void

View File

@@ -4,11 +4,13 @@ static uint8_t custom_btn_id = SUBGHZ_CUSTOM_BTN_OK;
static uint8_t custom_btn_original = 0; static uint8_t custom_btn_original = 0;
static uint8_t custom_btn_max_btns = 0; static uint8_t custom_btn_max_btns = 0;
void subghz_custom_btn_set(uint8_t btn_id) { bool subghz_custom_btn_set(uint8_t btn_id) {
if(btn_id > custom_btn_max_btns) { if(btn_id > custom_btn_max_btns) {
custom_btn_id = SUBGHZ_CUSTOM_BTN_OK; custom_btn_id = SUBGHZ_CUSTOM_BTN_OK;
return false;
} else { } else {
custom_btn_id = btn_id; custom_btn_id = btn_id;
return true;
} }
} }
@@ -31,4 +33,8 @@ void subghz_custom_btn_set_max(uint8_t b) {
void subghz_custom_btns_reset() { void subghz_custom_btns_reset() {
custom_btn_original = 0; custom_btn_original = 0;
custom_btn_max_btns = 0; custom_btn_max_btns = 0;
}
bool subghz_custom_btn_is_allowed() {
return custom_btn_max_btns != 0;
} }

View File

@@ -11,7 +11,7 @@
#define SUBGHZ_CUSTOM_BTN_LEFT (3U) #define SUBGHZ_CUSTOM_BTN_LEFT (3U)
#define SUBGHZ_CUSTOM_BTN_RIGHT (4U) #define SUBGHZ_CUSTOM_BTN_RIGHT (4U)
void subghz_custom_btn_set(uint8_t btn_id); bool subghz_custom_btn_set(uint8_t btn_id);
uint8_t subghz_custom_btn_get(); uint8_t subghz_custom_btn_get();
@@ -21,4 +21,6 @@ uint8_t subghz_custom_btn_get_original();
void subghz_custom_btn_set_max(uint8_t b); void subghz_custom_btn_set_max(uint8_t b);
void subghz_custom_btns_reset(); void subghz_custom_btns_reset();
bool subghz_custom_btn_is_allowed();