PiScan/cpp/include/event.h

81 lines
1.7 KiB
C

/*
* event.h
*
* Created on: Jun 17, 2018
* Author: kidsr
*/
#ifndef SRC_EVENT_H_
#define SRC_EVENT_H_
#define EVT_HANDLER_TAG "Event handler"
#define GLOBAL_EVENT_INDEX 0
#define SCANNER_EVENT_INDEX 100 + GLOBAL_EVENT_INDEX
#define INTERFACE_EVENT_INDEX 100 + SCANNER_EVENT_INDEX
#define AUDIO_EVENT_INDEX 100 + INTERFACE_EVENT_INDEX
#define MAX_EVENT_INDEX 100 + AUDIO_EVENT_INDEX
typedef enum {
/* Global events */
GLOBAL_EVT = GLOBAL_EVENT_INDEX,
GLOBAL_READY,
GLOBAL_SHUTDOWN,
GLOBAL_RESTART_PROGRAM,
GLOBAL_RELOAD_CONFIG,
GLOBAL_RELOAD_SCAN_PROFILE,
GLOBAL_CRITICAL_ERROR,
GLOBAL_WARNING,
GLOBAL_INFO,
/* Scanner events */
SCANNER_EVT = SCANNER_EVENT_INDEX,
SCANNER_SCAN,
SCANNER_PAUSE,
SCANNER_RESUME,
SCANNER_LOCKOUT_ENTRY,
SCANNER_SET_PATTERN,
/* Interface events */
INTERFACE_EVT = INTERFACE_EVENT_INDEX,
INTERFACE_SET_STATE_MENU,
INTERFACE_SET_STATE_SCAN,
INTERFACE_SET_STATE_PAUSED,
INTERFACE_SET_STATE_STEALTH,
INTERFACE_EXIT_STATE_STEALTH,
INTERFACE_UPDATE_INFO,
INTERFACE_UPDATE_DISPLAY,
INTERFACE_SET_SYSTEM,
INTERFACE_SET_ENTRY,
/* Audio events */
AUDIO_EVT = AUDIO_EVENT_INDEX,
AUDIO_OPEN_SQUELCH,
AUDIO_CLOSE_SQUELCH,
AUDIO_BEEP,
}EVENT_ID;
typedef struct {
EVENT_ID id;
void *data;
}EVENT;
void (*evt_global_handler)(EVENT*);
void (*evt_scanner_handler)(EVENT*);
void (*evt_interface_handler)(EVENT*);
void (*evt_audio_handler)(EVENT*);
void event_set_default_handlers();
int event_broadcast(EVENT_ID evid, void *data);
void global_event_listener_thread(void);
void global_event_handler(EVENT *event);
extern void scanner_event_handler(EVENT *event);
extern void interface_event_handler(EVENT *event);
extern void audio_event_handler(EVENT *event);
#endif /* SRC_EVENT_H_ */