Files
TAIXIN/sdk/include/lib/common/sysevt.h

145 lines
5.3 KiB
C
Raw Normal View History

#ifndef _SDK_SYSEVT_H_
#define _SDK_SYSEVT_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
SYSEVT_CONTINUE = 0,
SYSEVT_CONSUMED = 1,
} sysevt_hdl_res;
typedef sysevt_hdl_res(*sysevt_hdl)(uint32 event_id, uint32 data, uint32 priv);
int32 sys_event_init(uint16 evt_max_cnt);
int32 sys_event_new(uint32 event_id, uint32 data);
int32 sys_event_take(uint32 event_id, sysevt_hdl hdl, uint32 priv);
void sys_event_untake(uint32 event_id, sysevt_hdl hdl);
#define SYS_EVENT(main, sub) ((main)<<16|(sub&0xffff))
enum SYSEVT_MAINID { /* uint16 */
SYS_EVENT_NETWORK = 1,
SYS_EVENT_WIFI,
SYS_EVENT_LMAC,
SYS_EVENT_SYSTEM,
SYS_EVENT_BLE,
SYS_EVENT_LTE,
SYS_EVENT_MEDIA,
SYS_EVENT_USB,
////////////////////////////////////
SYSEVT_MAINID_ID,
};
//////////////////////////////////////////
enum SYSEVT_SYSTEM_SUBEVT { /* uint16 */
SYSEVT_SYSTEM_RESUME = 1,
SYSEVT_SYSTEM_SD_MOUNT,
SYSEVT_SYSTEM_SD_UNMOUNT,
SYSEVT_TASK_DELETE,
};
#define SYSEVT_NEW_SYSTEM_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_SYSTEM, subevt), data)
//////////////////////////////////////////
enum SYSEVT_LMAC_SUBEVT { /* uint16 */
SYSEVT_LMAC_ACS_DONE = 1,
SYSEVT_LMAC_TX_STATUS = 2,
SYSEVT_LMAC_APP_HBDATA_DETECT = 3, //检测到应用心跳包
};
#define SYSEVT_NEW_LMAC_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_LMAC, subevt), data)
//////////////////////////////////////////
enum SYSEVT_WIFI_SUBEVT { /* uint16 */
SYSEVT_WIFI_CONNECT_START = 1, //STA start connect, event data: 0
SYSEVT_WIFI_CONNECTTED, //STA connect success, event data: my AID.
SYSEVT_WIFI_CONNECT_FAIL, //STA connect fail, event data: status code.
SYSEVT_WIFI_DISCONNECT, //unused.
SYSEVT_WIFI_SCAN_START, //Start Scanning, event data: 0
SYSEVT_WIFI_SCAN_DONE, //Scan done, event data: 0
SYSEVT_WIFI_STA_DISCONNECT, //STA disconnect, event data: STA's AID.
SYSEVT_WIFI_STA_CONNECTTED, //STA connected, event data: STA's AID.
SYSEVT_WIFI_STA_PS_START, //STA enter ps mode, event data: STA's AID.
SYSEVT_WIFI_STA_PS_END, //STA exit ps mode, event data: STA's AID.
SYSEVT_WIFI_PAIR_DONE, //pair done, event data: 1:success, 0:fail.
SYSEVT_WIFI_TX_SUCCESS, //wifi tx success, event data: data tag setted by ieee80211_conf_set_datatag.
SYSEVT_WIFI_TX_FAIL, //wifi tx fail, event data: data tag setted by ieee80211_conf_set_datatag.
SYSEVT_WIFI_UNPAIR, //unpaired, event data:0
SYSEVT_WIFI_WRONG_KEY, //wifi password is wrong. event data:0
SYSEVT_WIFI_P2P_DONE, //p2p wsc done. update wifi syscfg
};
#define SYSEVT_NEW_WIFI_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_WIFI, subevt), data)
//////////////////////////////////////////
enum SYSEVT_NETWORK_SUBEVT { /* uint16 */
SYSEVT_GMAC_LINK_UP = 1,
SYSEVT_GMAC_LINK_DOWN,
SYSEVT_LWIP_DHCPC_START,
SYSEVT_LWIP_DHCPC_DONE,
SYSEVT_WIFI_DHCPC_START,
SYSEVT_WIFI_DHCPC_DONE,
SYSEVT_DHCPD_NEW_IP,
SYSEVT_DHCPD_IPPOOL_FULL,
SYSEVT_NTP_UPDATE,
};
#define SYSEVT_NEW_NETWORK_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_NETWORK, subevt), data)
//////////////////////////////////////////
enum SYSEVT_BLE_SUBEVT { /* uint16 */
SYSEVT_BLE_CONNECTED = 1,
SYSEVT_BLE_DISCONNECT,
SYSEVT_BLE_NETWORK_CONFIGURED,
SYSEVT_BLE_EXCHANGE_MTU,
};
#define SYSEVT_NEW_BLE_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_BLE, subevt), data)
//////////////////////////////////////////
enum SYSEVT_LTE_SUBEVT { /* uint16 */
SYSEVT_LTE_CONNECTED = 1,
SYSEVT_LTE_DISCONNECT,
SYSEVT_LTE_NETWORK_CONFIGURED,
SYSEVT_LTE_OVERLAP_WIFI,
};
#define SYSEVT_NEW_LTE_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_LTE, subevt), data)
//////////////////////////////////////////
enum SYSEVT_MEDIA_SUBEVT { /* uint16 */
SYSEVT_MEDIA_PLAY_START = 1, //启动播放
SYSEVT_MEDIA_PLAY_STOP, //停止播放
SYSEVT_MEDIA_PLAYING, //进入播放状态
SYSEVT_MEDIA_PLAY_PAUSE, //暂停播放
SYSEVT_MEDIA_PLAY_SPEED, //播放速度改变
SYSEVT_MEDIA_PLAY_SEEK_ERR, //播放跳转失败
SYSEVT_MEDIA_PLAY_CLOSE, //播放器关闭
SYSEVT_MEDIA_OPEN_SUCCESS, //数据流打开成功
SYSEVT_MEDIA_OPEN_FAIL, //数据流打开失败
SYSEVT_MEDIA_READ_EOF, //数据流读取完成
SYSEVT_MEDIA_READ_ERROR, //数据流读取出错
SYSEVT_MEDIA_BUFFERING_DATA, //数据流缓冲等待
SYSEVT_MEDIA_UNKNOWN_CONTAINER, //未支持的container类型
SYSEVT_MEDIA_UNKNOWN_DECODER, //未支持的decoder类型
SYSEVT_MEDIA_DECODER_MATCH, //decoder成功匹配
SYSEVT_MEDIA_DECODER_ERROR, //decoder解码异常
SYSEVT_MEDIA_CONTAINER_MATCH, //container成功匹配
SYSEVT_MEDIA_CONTAINER_OPEN_ERROR, //container打开失败
SYSEVT_MEDIA_CONTAINER_DEMUX_ERROR, //container解码异常
};
#define SYSEVT_NEW_MEDIA_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_MEDIA, subevt), data)
//////////////////////////////////////////
enum SYSEVT_USB_SUBEVT { /* uint16 */
SYSEVT_USB_DEVICE_CONNECT = 1, //USB设备连接
SYSEVT_USB_DEVICE_DISCONNECT, //USB设备断开
};
#define SYSEVT_NEW_USB_EVT(subevt, data) sys_event_new(SYS_EVENT(SYS_EVENT_USB, subevt), data)
#ifdef __cplusplus
}
#endif
#endif