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

SubGhz: remove direct reading subghz->lock

This commit is contained in:
gid9798
2023-05-06 17:19:02 +03:00
parent c98e76f31e
commit d8631d1489
8 changed files with 35 additions and 15 deletions

View File

@@ -159,7 +159,8 @@ void subghz_scene_decode_raw_on_enter(void* context) {
FuriString* item_name = furi_string_alloc();
FuriString* item_time = furi_string_alloc();
subghz_view_receiver_set_lock(subghz->subghz_receiver, subghz->lock);
subghz_view_receiver_set_lock(
subghz->subghz_receiver, subghz_is_locked(subghz)); //TODO Doesn't matter in DecodeRAW
subghz_view_receiver_set_mode(subghz->subghz_receiver, SubGhzViewReceiverModeFile);
subghz_view_receiver_set_callback(
subghz->subghz_receiver, subghz_scene_decode_raw_callback, subghz);
@@ -242,7 +243,7 @@ bool subghz_scene_decode_raw_on_event(void* context, SceneManagerEvent event) {
consumed = true;
break;
case SubGhzCustomEventViewReceiverUnlock:
subghz->lock = SubGhzLockOff;
subghz_unlock(subghz); //TODO There is no such event in DecodeRAW
consumed = true;
break;
default:

View File

@@ -127,7 +127,7 @@ void subghz_scene_receiver_on_enter(void* context) {
subghz->txrx->rx_key_state = SubGhzRxKeyStateStart;
}
subghz_view_receiver_set_lock(subghz->subghz_receiver, subghz->lock);
subghz_view_receiver_set_lock(subghz->subghz_receiver, subghz_is_locked(subghz));
subghz_view_receiver_set_mode(subghz->subghz_receiver, SubGhzViewReceiverModeLive);
//Load history to receiver
@@ -262,7 +262,7 @@ bool subghz_scene_receiver_on_event(void* context, SceneManagerEvent event) {
consumed = true;
break;
case SubGhzCustomEventViewReceiverUnlock:
subghz->lock = SubGhzLockOff;
subghz_unlock(subghz);
consumed = true;
break;
default:
@@ -286,7 +286,7 @@ bool subghz_scene_receiver_on_event(void* context, SceneManagerEvent event) {
notification_message(subghz->notifications, &sequence_blink_cyan_10);
break;
case SubGhzNotificationStateRxDone:
if(subghz->lock != SubGhzLockOn) {
if(!subghz_is_locked(subghz)) {
notification_message(subghz->notifications, &subghz_sequence_rx);
} else {
notification_message(subghz->notifications, &subghz_sequence_rx_locked);

View File

@@ -415,7 +415,7 @@ bool subghz_scene_receiver_config_on_event(void* context, SceneManagerEvent even
if(event.type == SceneManagerEventTypeCustom) {
if(event.event == SubGhzCustomEventSceneSettingLock) {
subghz->lock = SubGhzLockOn;
subghz_lock(subghz);
scene_manager_previous_scene(subghz->scene_manager);
consumed = true;
}

View File

@@ -260,7 +260,7 @@ SubGhz* subghz_alloc(bool alloc_for_tx_only) {
subghz->threshold_rssi = subghz_threshold_rssi_alloc();
//init Worker & Protocol & History & KeyBoard
subghz->lock = SubGhzLockOff;
subghz_unlock(subghz);
subghz->txrx = malloc(sizeof(SubGhzTxRx));
subghz->txrx->preset = malloc(sizeof(SubGhzRadioPreset));
subghz->txrx->preset->name = furi_string_alloc();

View File

@@ -710,3 +710,18 @@ void subghz_speaker_unmute(SubGhz* subghz) {
}
}
}
void subghz_lock(SubGhz* subghz) {
furi_assert(subghz);
subghz->lock = SubGhzLockOn;
}
void subghz_unlock(SubGhz* subghz) {
furi_assert(subghz);
subghz->lock = SubGhzLockOff;
}
bool subghz_is_locked(SubGhz* subghz) {
furi_assert(subghz);
return (subghz->lock == SubGhzLockOn);
}

View File

@@ -185,5 +185,9 @@ void subghz_hopper_set_state(SubGhz* subghz, SubGhzHopperState state);
void subghz_hopper_remove_pause(SubGhz* subghz);
void subghz_subghz_hopper_set_pause(SubGhz* subghz);
void subghz_lock(SubGhz* subghz);
void subghz_unlock(SubGhz* subghz);
bool subghz_is_locked(SubGhz* subghz);
extern const NotificationSequence subghz_sequence_rx;
extern const NotificationSequence subghz_sequence_rx_locked;

View File

@@ -49,7 +49,7 @@ typedef enum {
} SubGhzViewReceiverBarShow;
struct SubGhzViewReceiver {
SubGhzLock lock;
bool lock;
uint8_t lock_count;
FuriTimer* timer;
View* view;
@@ -95,10 +95,10 @@ void subghz_receiver_rssi(SubGhzViewReceiver* instance, float rssi) {
true);
}
void subghz_view_receiver_set_lock(SubGhzViewReceiver* subghz_receiver, SubGhzLock lock) {
void subghz_view_receiver_set_lock(SubGhzViewReceiver* subghz_receiver, bool lock) {
furi_assert(subghz_receiver);
subghz_receiver->lock_count = 0;
if(lock == SubGhzLockOn) {
if(lock == true) {
subghz_receiver->lock = lock;
with_view_model(
subghz_receiver->view,
@@ -394,7 +394,7 @@ static void subghz_view_receiver_timer_callback(void* context) {
subghz_receiver->callback(
SubGhzCustomEventViewReceiverOffDisplay, subghz_receiver->context);
} else {
subghz_receiver->lock = SubGhzLockOff;
subghz_receiver->lock = false;
subghz_receiver->callback(SubGhzCustomEventViewReceiverUnlock, subghz_receiver->context);
}
subghz_receiver->lock_count = 0;
@@ -404,7 +404,7 @@ bool subghz_view_receiver_input(InputEvent* event, void* context) {
furi_assert(context);
SubGhzViewReceiver* subghz_receiver = context;
if(subghz_receiver->lock == SubGhzLockOn) {
if(subghz_receiver->lock == true) {
with_view_model(
subghz_receiver->view,
SubGhzViewReceiverModel * model,
@@ -424,7 +424,7 @@ bool subghz_view_receiver_input(InputEvent* event, void* context) {
SubGhzViewReceiverModel * model,
{ model->bar_show = SubGhzViewReceiverBarShowUnlock; },
true);
//subghz_receiver->lock = SubGhzLockOff;
//subghz_receiver->lock = false;
furi_timer_start(subghz_receiver->timer, pdMS_TO_TICKS(650));
}
@@ -549,7 +549,7 @@ SubGhzViewReceiver* subghz_view_receiver_alloc() {
// View allocation and configuration
subghz_receiver->view = view_alloc();
subghz_receiver->lock = SubGhzLockOff;
subghz_receiver->lock = false;
subghz_receiver->lock_count = 0;
view_allocate_model(
subghz_receiver->view, ViewModelTypeLocking, sizeof(SubGhzViewReceiverModel));

View File

@@ -14,7 +14,7 @@ void subghz_view_receiver_set_mode(
void subghz_receiver_rssi(SubGhzViewReceiver* instance, float rssi);
void subghz_view_receiver_set_lock(SubGhzViewReceiver* subghz_receiver, SubGhzLock keyboard);
void subghz_view_receiver_set_lock(SubGhzViewReceiver* subghz_receiver, bool keyboard);
void subghz_view_receiver_set_callback(
SubGhzViewReceiver* subghz_receiver,