PiScan/include/event.h

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_ */