48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
|
/**
|
||
|
* @file infrared_app_event.h
|
||
|
* Infrared: Scene events description
|
||
|
*/
|
||
|
#pragma once
|
||
|
#include <infrared.h>
|
||
|
#include <gui/modules/dialog_ex.h>
|
||
|
|
||
|
/** Infrared events class */
|
||
|
class InfraredAppEvent {
|
||
|
public:
|
||
|
/** Type of event enum */
|
||
|
enum class Type : uint8_t {
|
||
|
/** Tick event come after no other events came in 100 ms */
|
||
|
Tick,
|
||
|
/** Exit application event */
|
||
|
Exit,
|
||
|
/** Back event */
|
||
|
Back,
|
||
|
/** Menu selected event type. Provided with payload value. */
|
||
|
MenuSelected,
|
||
|
/** Button press event. Need for continuous signal sending. */
|
||
|
MenuSelectedPress,
|
||
|
/** Button release event. Need for continuous signal sending. */
|
||
|
MenuSelectedRelease,
|
||
|
/** Events from DialogEx view module */
|
||
|
DialogExSelected,
|
||
|
/** Infrared signal received event */
|
||
|
InfraredMessageReceived,
|
||
|
/** Text edit done event */
|
||
|
TextEditDone,
|
||
|
/** Popup timer finished event */
|
||
|
PopupTimer,
|
||
|
/** Button panel pressed event */
|
||
|
ButtonPanelPressed,
|
||
|
};
|
||
|
|
||
|
union {
|
||
|
/** Menu selected event type payload. Selected index. */
|
||
|
int32_t menu_index;
|
||
|
/** DialogEx view module event type payload */
|
||
|
DialogExResult dialog_ex_result;
|
||
|
} payload;
|
||
|
|
||
|
/** Type of event */
|
||
|
Type type;
|
||
|
};
|