81 lines
1.7 KiB
C
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_ */
|