* Gui: move rotation logic to ViewPort, replace delayed View switch in ViewDispatcher with event filtering and redirection to previous view. * SubGhz: add function description * Gui, Input: add event id to input events. * SubGhz: fix "crashing on ?" * SubGhz: add icon scanning * SubGhz: updated interface read scene, updated interface config scene * Assets: update subghz assets * SubGhz: replaced the picture in the read scene, changed the paths to additional files * SubGhz: fix deadlock in timer callback * SubGhz: fix icon read scene * SubGhz: fix icon read scene * SubGhz: fix duble text transmitter scene * SubGhz: correct spelling. Gui: bigger queue for ViewDispatcher. * SubGhz: fix creation and transmission of dynamic code without the presence of a manufactory key * SubGhz: fix keelog, setting a name in the absence of a manufactory key * SubGhz: fix load bad keelog key * Format sources * Furi: remove garbage from core. GpioTester: fix memory leak and cleanup * Accessor: remove obsolete notification code * MusicPlayer: remove input event injection * Input: rename id to sequence Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "../subghz_i.h"
 | 
						|
#include "../views/subghz_receiver.h"
 | 
						|
 | 
						|
void subghz_scene_receiver_callback(SubghzReceverEvent event, void* context) {
 | 
						|
    furi_assert(context);
 | 
						|
    SubGhz* subghz = context;
 | 
						|
    view_dispatcher_send_custom_event(subghz->view_dispatcher, event);
 | 
						|
}
 | 
						|
 | 
						|
const void subghz_scene_receiver_on_enter(void* context) {
 | 
						|
    SubGhz* subghz = context;
 | 
						|
    SubghzReceiver* subghz_receiver = subghz->subghz_receiver;
 | 
						|
 | 
						|
    subghz_receiver_set_callback(subghz_receiver, subghz_scene_receiver_callback, subghz);
 | 
						|
 | 
						|
    subghz_receiver_set_protocol(subghz_receiver, subghz->protocol_result, subghz->protocol);
 | 
						|
    subghz_receiver_set_worker(subghz_receiver, subghz->worker);
 | 
						|
    subghz->state_notifications = NOTIFICATION_RX_STATE;
 | 
						|
    view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewReceiver);
 | 
						|
}
 | 
						|
 | 
						|
const bool subghz_scene_receiver_on_event(void* context, SceneManagerEvent event) {
 | 
						|
    SubGhz* subghz = context;
 | 
						|
 | 
						|
    if(event.type == SceneManagerEventTypeCustom) {
 | 
						|
        switch(event.event) {
 | 
						|
        case SubghzReceverEventSave:
 | 
						|
            subghz->state_notifications = NOTIFICATION_IDLE_STATE;
 | 
						|
            subghz->frequency = subghz_receiver_get_frequency(subghz->subghz_receiver);
 | 
						|
            subghz->preset = subghz_receiver_get_preset(subghz->subghz_receiver);
 | 
						|
            subghz->protocol_result = subghz_receiver_get_protocol(subghz->subghz_receiver);
 | 
						|
            scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName);
 | 
						|
            return true;
 | 
						|
            break;
 | 
						|
        case SubghzReceverEventBack:
 | 
						|
            scene_manager_previous_scene(subghz->scene_manager);
 | 
						|
            return true;
 | 
						|
            break;
 | 
						|
        case SubghzReceverEventSendStart:
 | 
						|
            subghz->state_notifications = NOTIFICATION_TX_STATE;
 | 
						|
            subghz->frequency = subghz_receiver_get_frequency(subghz->subghz_receiver);
 | 
						|
            subghz->preset = subghz_receiver_get_preset(subghz->subghz_receiver);
 | 
						|
            subghz->protocol_result = subghz_receiver_get_protocol(subghz->subghz_receiver);
 | 
						|
            subghz_transmitter_tx_start(subghz);
 | 
						|
            return true;
 | 
						|
            break;
 | 
						|
        case SubghzReceverEventSendStop:
 | 
						|
            subghz->state_notifications = NOTIFICATION_IDLE_STATE;
 | 
						|
            subghz_transmitter_tx_stop(subghz);
 | 
						|
            return true;
 | 
						|
            break;
 | 
						|
        case SubghzReceverEventMain:
 | 
						|
            subghz->state_notifications = NOTIFICATION_RX_STATE;
 | 
						|
            return true;
 | 
						|
            break;
 | 
						|
        case SubghzReceverEventConfig:
 | 
						|
            subghz->state_notifications = NOTIFICATION_IDLE_STATE;
 | 
						|
            return true;
 | 
						|
            break;
 | 
						|
        case SubghzReceverEventSendHistoryFull:
 | 
						|
            subghz->state_notifications = NOTIFICATION_IDLE_STATE;
 | 
						|
            return true;
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            break;
 | 
						|
        }
 | 
						|
    } else if(event.type == SceneManagerEventTypeTick) {
 | 
						|
        switch(subghz->state_notifications) {
 | 
						|
        case NOTIFICATION_TX_STATE:
 | 
						|
            notification_message(subghz->notifications, &sequence_blink_red_10);
 | 
						|
            break;
 | 
						|
        case NOTIFICATION_RX_STATE:
 | 
						|
            notification_message(subghz->notifications, &sequence_blink_blue_10);
 | 
						|
            break;
 | 
						|
        default:
 | 
						|
            break;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return false;
 | 
						|
}
 | 
						|
 | 
						|
const void subghz_scene_receiver_on_exit(void* context) {
 | 
						|
    // SubGhz* subghz = context;
 | 
						|
}
 |