Removed duplicate code in transmitter.c

This commit is contained in:
gid9798 2023-05-13 16:55:35 +03:00
parent 23a24c42c1
commit a74461d903

View file

@ -124,7 +124,7 @@ bool subghz_view_transmitter_input(InputEvent* event, void* context) {
}, },
false); false);
return false; return false;
} } // Finish "Back" key processing
with_view_model( with_view_model(
subghz_transmitter->view, subghz_transmitter->view,
@ -136,124 +136,64 @@ bool subghz_view_transmitter_input(InputEvent* event, void* context) {
}, },
true); true);
if(can_be_sent && event->key == InputKeyOk && event->type == InputTypePress) { if(can_be_sent) {
subghz_custom_btn_set(SUBGHZ_CUSTOM_BTN_OK); if(event->key == InputKeyOk && event->type == InputTypePress) {
with_view_model( subghz_custom_btn_set(SUBGHZ_CUSTOM_BTN_OK);
subghz_transmitter->view, with_view_model(
SubGhzViewTransmitterModel * model, subghz_transmitter->view,
{ SubGhzViewTransmitterModel * model,
furi_string_reset(model->temp_button_id); {
model->draw_temp_button = false; furi_string_reset(model->temp_button_id);
}, model->draw_temp_button = false;
true); },
subghz_transmitter->callback( true);
SubGhzCustomEventViewTransmitterSendStart, subghz_transmitter->context); subghz_transmitter->callback(
return true; SubGhzCustomEventViewTransmitterSendStart, subghz_transmitter->context);
} else if(can_be_sent && event->key == InputKeyOk && event->type == InputTypeRelease) { return true;
subghz_transmitter->callback( } else if(event->key == InputKeyOk && event->type == InputTypeRelease) {
SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context); subghz_transmitter->callback(
return true; SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context);
} return true;
} // Finish "OK" key processing
// Temp Buttons (UP) uint8_t temp_btn_id;
if(can_be_sent && event->key == InputKeyUp && event->type == InputTypePress) { if(event->key == InputKeyUp) {
subghz_custom_btn_set(SUBGHZ_CUSTOM_BTN_UP); temp_btn_id = SUBGHZ_CUSTOM_BTN_UP;
with_view_model( } else if(event->key == InputKeyDown) {
subghz_transmitter->view, temp_btn_id = SUBGHZ_CUSTOM_BTN_DOWN;
SubGhzViewTransmitterModel * model, } else if(event->key == InputKeyLeft) {
{ temp_btn_id = SUBGHZ_CUSTOM_BTN_LEFT;
furi_string_reset(model->temp_button_id); } else if(event->key == InputKeyRight) {
if(subghz_custom_btn_get_original() != 0) { temp_btn_id = SUBGHZ_CUSTOM_BTN_RIGHT;
if(subghz_custom_btn_get() == SUBGHZ_CUSTOM_BTN_UP) { } else {
furi_string_printf( // Finish processing if the button is different
model->temp_button_id, "%01X", subghz_custom_btn_get_original()); return true;
model->draw_temp_button = true; }
if(event->type == InputTypePress) {
subghz_custom_btn_set(temp_btn_id);
with_view_model(
subghz_transmitter->view,
SubGhzViewTransmitterModel * model,
{
furi_string_reset(model->temp_button_id);
if(subghz_custom_btn_get_original() != 0) {
if(subghz_custom_btn_get() == temp_btn_id) {
furi_string_printf(
model->temp_button_id, "%01X", 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(can_be_sent && event->key == InputKeyUp && event->type == InputTypeRelease) { subghz_transmitter->callback(
subghz_transmitter->callback( SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context);
SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context); return true;
return true; }
}
// Down
if(can_be_sent && event->key == InputKeyDown && event->type == InputTypePress) {
subghz_custom_btn_set(SUBGHZ_CUSTOM_BTN_DOWN);
with_view_model(
subghz_transmitter->view,
SubGhzViewTransmitterModel * model,
{
furi_string_reset(model->temp_button_id);
if(subghz_custom_btn_get_original() != 0) {
if(subghz_custom_btn_get() == SUBGHZ_CUSTOM_BTN_DOWN) {
furi_string_printf(
model->temp_button_id, "%01X", subghz_custom_btn_get_original());
model->draw_temp_button = true;
}
}
},
true);
subghz_transmitter->callback(
SubGhzCustomEventViewTransmitterSendStart, subghz_transmitter->context);
return true;
} else if(can_be_sent && event->key == InputKeyDown && event->type == InputTypeRelease) {
subghz_transmitter->callback(
SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context);
return true;
}
// Left
if(can_be_sent && event->key == InputKeyLeft && event->type == InputTypePress) {
subghz_custom_btn_set(SUBGHZ_CUSTOM_BTN_LEFT);
with_view_model(
subghz_transmitter->view,
SubGhzViewTransmitterModel * model,
{
furi_string_reset(model->temp_button_id);
if(subghz_custom_btn_get_original() != 0) {
if(subghz_custom_btn_get() == SUBGHZ_CUSTOM_BTN_LEFT) {
furi_string_printf(
model->temp_button_id, "%01X", subghz_custom_btn_get_original());
model->draw_temp_button = true;
}
}
},
true);
subghz_transmitter->callback(
SubGhzCustomEventViewTransmitterSendStart, subghz_transmitter->context);
return true;
} else if(can_be_sent && event->key == InputKeyLeft && event->type == InputTypeRelease) {
subghz_transmitter->callback(
SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context);
return true;
}
// Right
if(can_be_sent && event->key == InputKeyRight && event->type == InputTypePress) {
subghz_custom_btn_set(SUBGHZ_CUSTOM_BTN_RIGHT);
with_view_model(
subghz_transmitter->view,
SubGhzViewTransmitterModel * model,
{
furi_string_reset(model->temp_button_id);
if(subghz_custom_btn_get_original() != 0) {
if(subghz_custom_btn_get() == SUBGHZ_CUSTOM_BTN_RIGHT) {
furi_string_printf(
model->temp_button_id, "%01X", subghz_custom_btn_get_original());
model->draw_temp_button = true;
}
}
},
true);
subghz_transmitter->callback(
SubGhzCustomEventViewTransmitterSendStart, subghz_transmitter->context);
return true;
} else if(can_be_sent && event->key == InputKeyRight && event->type == InputTypeRelease) {
subghz_transmitter->callback(
SubGhzCustomEventViewTransmitterSendStop, subghz_transmitter->context);
return true;
} }
return true; return true;