Skip to content

Commit a8de08f

Browse files
committed
freq plus/minus during record
1 parent 311da51 commit a8de08f

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

applications/main/subghz/helpers/subghz_custom_event.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ typedef enum {
6767
SubGhzCustomEventViewReadRAWSave,
6868
SubGhzCustomEventViewReadRAWTXRXStop,
6969
SubGhzCustomEventViewReadRAWMore,
70-
70+
SubGhzCustomEventViewReadRAWFreqMinus,
71+
SubGhzCustomEventViewReadRAWFreqPlus,
72+
7173
SubGhzCustomEventViewTransmitterBack,
7274
SubGhzCustomEventViewTransmitterSendStart,
7375
SubGhzCustomEventViewTransmitterSendStop,

applications/main/subghz/scenes/subghz_scene_read_raw.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,30 @@ bool subghz_scene_read_raw_on_event(void* context, SceneManagerEvent event) {
163163
consumed = true;
164164
break;
165165

166+
case SubGhzCustomEventViewReadRAWFreqMinus:
167+
{
168+
SubGhzRadioPreset preset = subghz_txrx_get_preset(subghz->txrx);
169+
subghz_txrx_set_preset(subghz->txrx, furi_string_get_cstr(preset.name), preset.frequency - 500, preset.data, preset.data_size);
170+
subghz_scene_read_raw_update_statusbar(subghz);
171+
subghz_txrx_rx_start(subghz->txrx);
172+
subghz->state_notifications = SubGhzNotificationStateRx;
173+
subghz_rx_key_state_set(subghz, SubGhzRxKeyStateAddKey);
174+
consumed = true;
175+
break;
176+
}
177+
178+
case SubGhzCustomEventViewReadRAWFreqPlus:
179+
{
180+
SubGhzRadioPreset preset = subghz_txrx_get_preset(subghz->txrx);
181+
subghz_txrx_set_preset(subghz->txrx, furi_string_get_cstr(preset.name), preset.frequency + 500, preset.data, preset.data_size);
182+
subghz_scene_read_raw_update_statusbar(subghz);
183+
subghz_txrx_rx_start(subghz->txrx);
184+
subghz->state_notifications = SubGhzNotificationStateRx;
185+
subghz_rx_key_state_set(subghz, SubGhzRxKeyStateAddKey);
186+
consumed = true;
187+
break;
188+
}
189+
166190
case SubGhzCustomEventViewReadRAWErase:
167191
if(subghz_rx_key_state_get(subghz) == SubGhzRxKeyStateAddKey) {
168192
if(subghz_scene_read_raw_update_filename(subghz)) {

applications/main/subghz/views/subghz_read_raw.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ void subghz_read_raw_draw(Canvas* canvas, SubGhzReadRAWModel* model) {
289289
canvas_set_color(canvas, ColorBlack);
290290
canvas_set_font(canvas, FontSecondary);
291291
canvas_draw_str(canvas, 0, 9, furi_string_get_cstr(model->frequency_str));
292-
canvas_draw_str(canvas, 35, 9, furi_string_get_cstr(model->preset_str));
292+
canvas_draw_str(canvas, 35, 9, furi_string_get_cstr(model->preset_str));
293293
canvas_draw_str_aligned(
294294
canvas, 106, 2, AlignRight, AlignTop, furi_string_get_cstr(model->sample_write));
295295

@@ -337,6 +337,12 @@ void subghz_read_raw_draw(Canvas* canvas, SubGhzReadRAWModel* model) {
337337
elements_button_center(canvas, "REC");
338338
break;
339339

340+
case SubGhzReadRAWStatusREC:
341+
elements_button_left(canvas, "Freq-");
342+
elements_button_center(canvas, "Stop");
343+
elements_button_right(canvas, "Freq+");
344+
break;
345+
340346
default:
341347
elements_button_center(canvas, "Stop");
342348
break;
@@ -451,6 +457,9 @@ bool subghz_read_raw_input(InputEvent* event, void* context) {
451457
if(model->status == SubGhzReadRAWStatusStart) {
452458
//Config
453459
instance->callback(SubGhzCustomEventViewReadRAWConfig, instance->context);
460+
} else if (model->status == SubGhzReadRAWStatusREC) {
461+
//Freq-
462+
instance->callback(SubGhzCustomEventViewReadRAWFreqMinus, instance->context);
454463
} else if(
455464
(model->status == SubGhzReadRAWStatusIDLE) ||
456465
(model->status == SubGhzReadRAWStatusLoadKeyIDLE)) {
@@ -472,6 +481,9 @@ bool subghz_read_raw_input(InputEvent* event, void* context) {
472481
if(model->status == SubGhzReadRAWStatusIDLE) {
473482
//Save
474483
instance->callback(SubGhzCustomEventViewReadRAWSave, instance->context);
484+
} else if (model->status == SubGhzReadRAWStatusREC) {
485+
//Freq+
486+
instance->callback(SubGhzCustomEventViewReadRAWFreqPlus, instance->context);
475487
} else if(model->status == SubGhzReadRAWStatusLoadKeyIDLE) {
476488
//More
477489
instance->callback(SubGhzCustomEventViewReadRAWMore, instance->context);

0 commit comments

Comments
 (0)