77 lines
1.5 KiB
C
77 lines
1.5 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 OUTPUT_EVENT_INDEX 100 + SCANNER_EVENT_INDEX
|
|
#define INPUT_EVENT_INDEX 100 + OUTPUT_EVENT_INDEX
|
|
#define AUDIO_EVENT_INDEX 100 + INPUT_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,
|
|
|
|
/* Output events */
|
|
OUTPUT_EVT = OUTPUT_EVENT_INDEX,
|
|
OUTPUT_SET_MODE_MENU,
|
|
OUTPUT_SET_MODE_SCAN,
|
|
OUTPUT_SET_MODE_PAUSED,
|
|
OUTPUT_UPDATE_INFO,
|
|
OUTPUT_UPDATE_DISPLAY,
|
|
|
|
/* Input events */
|
|
INPUT_EVT = INPUT_EVENT_INDEX,
|
|
INPUT_BUTTON_PRESSED,
|
|
INPUT_SERIAL_DATA_AVAILABLE,
|
|
|
|
/* 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;
|
|
|
|
int push_event(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 output_event_handler(EVENT *event);
|
|
extern void input_event_handler(EVENT *event);
|
|
extern void audio_event_handler(EVENT *event);
|
|
|
|
|
|
#endif /* SRC_EVENT_H_ */
|