mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 16:28:36 -07:00
SubGhz: remove direct reading subghz->lock
This commit is contained in:
@@ -159,7 +159,8 @@ void subghz_scene_decode_raw_on_enter(void* context) {
|
|||||||
FuriString* item_name = furi_string_alloc();
|
FuriString* item_name = furi_string_alloc();
|
||||||
FuriString* item_time = 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_mode(subghz->subghz_receiver, SubGhzViewReceiverModeFile);
|
||||||
subghz_view_receiver_set_callback(
|
subghz_view_receiver_set_callback(
|
||||||
subghz->subghz_receiver, subghz_scene_decode_raw_callback, subghz);
|
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;
|
consumed = true;
|
||||||
break;
|
break;
|
||||||
case SubGhzCustomEventViewReceiverUnlock:
|
case SubGhzCustomEventViewReceiverUnlock:
|
||||||
subghz->lock = SubGhzLockOff;
|
subghz_unlock(subghz); //TODO There is no such event in DecodeRAW
|
||||||
consumed = true;
|
consumed = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ void subghz_scene_receiver_on_enter(void* context) {
|
|||||||
subghz->txrx->rx_key_state = SubGhzRxKeyStateStart;
|
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);
|
subghz_view_receiver_set_mode(subghz->subghz_receiver, SubGhzViewReceiverModeLive);
|
||||||
|
|
||||||
//Load history to receiver
|
//Load history to receiver
|
||||||
@@ -262,7 +262,7 @@ bool subghz_scene_receiver_on_event(void* context, SceneManagerEvent event) {
|
|||||||
consumed = true;
|
consumed = true;
|
||||||
break;
|
break;
|
||||||
case SubGhzCustomEventViewReceiverUnlock:
|
case SubGhzCustomEventViewReceiverUnlock:
|
||||||
subghz->lock = SubGhzLockOff;
|
subghz_unlock(subghz);
|
||||||
consumed = true;
|
consumed = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -286,7 +286,7 @@ bool subghz_scene_receiver_on_event(void* context, SceneManagerEvent event) {
|
|||||||
notification_message(subghz->notifications, &sequence_blink_cyan_10);
|
notification_message(subghz->notifications, &sequence_blink_cyan_10);
|
||||||
break;
|
break;
|
||||||
case SubGhzNotificationStateRxDone:
|
case SubGhzNotificationStateRxDone:
|
||||||
if(subghz->lock != SubGhzLockOn) {
|
if(!subghz_is_locked(subghz)) {
|
||||||
notification_message(subghz->notifications, &subghz_sequence_rx);
|
notification_message(subghz->notifications, &subghz_sequence_rx);
|
||||||
} else {
|
} else {
|
||||||
notification_message(subghz->notifications, &subghz_sequence_rx_locked);
|
notification_message(subghz->notifications, &subghz_sequence_rx_locked);
|
||||||
|
|||||||
@@ -415,7 +415,7 @@ bool subghz_scene_receiver_config_on_event(void* context, SceneManagerEvent even
|
|||||||
|
|
||||||
if(event.type == SceneManagerEventTypeCustom) {
|
if(event.type == SceneManagerEventTypeCustom) {
|
||||||
if(event.event == SubGhzCustomEventSceneSettingLock) {
|
if(event.event == SubGhzCustomEventSceneSettingLock) {
|
||||||
subghz->lock = SubGhzLockOn;
|
subghz_lock(subghz);
|
||||||
scene_manager_previous_scene(subghz->scene_manager);
|
scene_manager_previous_scene(subghz->scene_manager);
|
||||||
consumed = true;
|
consumed = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ SubGhz* subghz_alloc(bool alloc_for_tx_only) {
|
|||||||
subghz->threshold_rssi = subghz_threshold_rssi_alloc();
|
subghz->threshold_rssi = subghz_threshold_rssi_alloc();
|
||||||
|
|
||||||
//init Worker & Protocol & History & KeyBoard
|
//init Worker & Protocol & History & KeyBoard
|
||||||
subghz->lock = SubGhzLockOff;
|
subghz_unlock(subghz);
|
||||||
subghz->txrx = malloc(sizeof(SubGhzTxRx));
|
subghz->txrx = malloc(sizeof(SubGhzTxRx));
|
||||||
subghz->txrx->preset = malloc(sizeof(SubGhzRadioPreset));
|
subghz->txrx->preset = malloc(sizeof(SubGhzRadioPreset));
|
||||||
subghz->txrx->preset->name = furi_string_alloc();
|
subghz->txrx->preset->name = furi_string_alloc();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -185,5 +185,9 @@ void subghz_hopper_set_state(SubGhz* subghz, SubGhzHopperState state);
|
|||||||
void subghz_hopper_remove_pause(SubGhz* subghz);
|
void subghz_hopper_remove_pause(SubGhz* subghz);
|
||||||
void subghz_subghz_hopper_set_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;
|
||||||
extern const NotificationSequence subghz_sequence_rx_locked;
|
extern const NotificationSequence subghz_sequence_rx_locked;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ typedef enum {
|
|||||||
} SubGhzViewReceiverBarShow;
|
} SubGhzViewReceiverBarShow;
|
||||||
|
|
||||||
struct SubGhzViewReceiver {
|
struct SubGhzViewReceiver {
|
||||||
SubGhzLock lock;
|
bool lock;
|
||||||
uint8_t lock_count;
|
uint8_t lock_count;
|
||||||
FuriTimer* timer;
|
FuriTimer* timer;
|
||||||
View* view;
|
View* view;
|
||||||
@@ -95,10 +95,10 @@ void subghz_receiver_rssi(SubGhzViewReceiver* instance, float rssi) {
|
|||||||
true);
|
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);
|
furi_assert(subghz_receiver);
|
||||||
subghz_receiver->lock_count = 0;
|
subghz_receiver->lock_count = 0;
|
||||||
if(lock == SubGhzLockOn) {
|
if(lock == true) {
|
||||||
subghz_receiver->lock = lock;
|
subghz_receiver->lock = lock;
|
||||||
with_view_model(
|
with_view_model(
|
||||||
subghz_receiver->view,
|
subghz_receiver->view,
|
||||||
@@ -394,7 +394,7 @@ static void subghz_view_receiver_timer_callback(void* context) {
|
|||||||
subghz_receiver->callback(
|
subghz_receiver->callback(
|
||||||
SubGhzCustomEventViewReceiverOffDisplay, subghz_receiver->context);
|
SubGhzCustomEventViewReceiverOffDisplay, subghz_receiver->context);
|
||||||
} else {
|
} else {
|
||||||
subghz_receiver->lock = SubGhzLockOff;
|
subghz_receiver->lock = false;
|
||||||
subghz_receiver->callback(SubGhzCustomEventViewReceiverUnlock, subghz_receiver->context);
|
subghz_receiver->callback(SubGhzCustomEventViewReceiverUnlock, subghz_receiver->context);
|
||||||
}
|
}
|
||||||
subghz_receiver->lock_count = 0;
|
subghz_receiver->lock_count = 0;
|
||||||
@@ -404,7 +404,7 @@ bool subghz_view_receiver_input(InputEvent* event, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzViewReceiver* subghz_receiver = context;
|
SubGhzViewReceiver* subghz_receiver = context;
|
||||||
|
|
||||||
if(subghz_receiver->lock == SubGhzLockOn) {
|
if(subghz_receiver->lock == true) {
|
||||||
with_view_model(
|
with_view_model(
|
||||||
subghz_receiver->view,
|
subghz_receiver->view,
|
||||||
SubGhzViewReceiverModel * model,
|
SubGhzViewReceiverModel * model,
|
||||||
@@ -424,7 +424,7 @@ bool subghz_view_receiver_input(InputEvent* event, void* context) {
|
|||||||
SubGhzViewReceiverModel * model,
|
SubGhzViewReceiverModel * model,
|
||||||
{ model->bar_show = SubGhzViewReceiverBarShowUnlock; },
|
{ model->bar_show = SubGhzViewReceiverBarShowUnlock; },
|
||||||
true);
|
true);
|
||||||
//subghz_receiver->lock = SubGhzLockOff;
|
//subghz_receiver->lock = false;
|
||||||
furi_timer_start(subghz_receiver->timer, pdMS_TO_TICKS(650));
|
furi_timer_start(subghz_receiver->timer, pdMS_TO_TICKS(650));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -549,7 +549,7 @@ SubGhzViewReceiver* subghz_view_receiver_alloc() {
|
|||||||
// View allocation and configuration
|
// View allocation and configuration
|
||||||
subghz_receiver->view = view_alloc();
|
subghz_receiver->view = view_alloc();
|
||||||
|
|
||||||
subghz_receiver->lock = SubGhzLockOff;
|
subghz_receiver->lock = false;
|
||||||
subghz_receiver->lock_count = 0;
|
subghz_receiver->lock_count = 0;
|
||||||
view_allocate_model(
|
view_allocate_model(
|
||||||
subghz_receiver->view, ViewModelTypeLocking, sizeof(SubGhzViewReceiverModel));
|
subghz_receiver->view, ViewModelTypeLocking, sizeof(SubGhzViewReceiverModel));
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ void subghz_view_receiver_set_mode(
|
|||||||
|
|
||||||
void subghz_receiver_rssi(SubGhzViewReceiver* instance, float rssi);
|
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(
|
void subghz_view_receiver_set_callback(
|
||||||
SubGhzViewReceiver* subghz_receiver,
|
SubGhzViewReceiver* subghz_receiver,
|
||||||
|
|||||||
Reference in New Issue
Block a user