#ifndef __DOORBELL_COMM_H__ #define __DOORBELL_COMM_H__ #define UDP_SDP_LOCAL_PORT (10000) #define UDP_SDP_REMOTE_PORT (52110) #define BK_GENIE_CMD_PORT (7100) #define BK_GENIE_UDP_IMG_PORT (7180) #define BK_GENIE_UDP_AUD_PORT (7170) #define BK_GENIE_TCP_IMG_PORT (7150) #define BK_GENIE_TCP_AUD_PORT (7140) #define BK_GENIE_UDP_NETWORK_MAX_SIZE (1472) #define BK_GENIE_NETWORK_MAX_SIZE (1024) #define TRANSMISSION_BIG_ENDIAN (BK_FALSE) #if TRANSMISSION_BIG_ENDIAN == BK_TRUE #define CHECK_ENDIAN_UINT32(var) htonl(var) #define CHECK_ENDIAN_UINT16(var) htons(var) #define STREAM_TO_UINT16(u16, p) {u16 = (((uint16_t)(*((p) + 1))) + (((uint16_t)(*((p)))) << 8)); (p) += 2;} #define STREAM_TO_UINT32(u32, p) {u32 = ((((uint32_t)(*((p) + 3)))) + ((((uint32_t)(*((p) + 2)))) << 8) + ((((uint32_t)(*((p) + 1)))) << 16) + ((((uint32_t)(*((p))))) << 24)); (p) += 4;} #else #define CHECK_ENDIAN_UINT32 #define CHECK_ENDIAN_UINT16 #define STREAM_TO_UINT16(u16, p) {u16 = ((uint16_t)(*(p)) + (((uint16_t)(*((p) + 1))) << 8)); (p) += 2;} #define STREAM_TO_UINT32(u32, p) {u32 = (((uint32_t)(*(p))) + ((((uint32_t)(*((p) + 1)))) << 8) + ((((uint32_t)(*((p) + 2)))) << 16) + ((((uint32_t)(*((p) + 3)))) << 24)); (p) += 4;} #endif #define STREAM_TO_UINT8(u8, p) {u8 = (uint8_t)(*(p)); (p) += 1;} typedef enum { DBEVT_WIFI_STATION_CONNECT, DBEVT_WIFI_STATION_CONNECTED, DBEVT_WIFI_STATION_DISCONNECTED, DBEVT_P2P_CS2_SERVICE_START_REQUEST, DBEVT_P2P_CS2_SERVICE_START_RESPONSE, DBEVT_LAN_UDP_SERVICE_START_REQUEST, DBEVT_LAN_UDP_SERVICE_START_RESPONSE, DBEVT_LAN_TCP_SERVICE_START_REQUEST, DBEVT_LAN_TCP_SERVICE_START_RESPONSE, DBEVT_WIFI_SOFT_AP_TURNING_ON, DBEVT_REMOTE_DEVICE_CONNECTED, DBEVT_REMOTE_DEVICE_DISCONNECTED, DBEVT_START_WIFI_STATION, DBEVT_START_AGORA_AGENT_START, DBEVT_START_AGORA_AGENT_RSP, DBEVT_START_AGORA_AGENT_ON_DEV, DBEVT_START_TCP_SERVICE, DBEVT_START_BOARDING_EVENT, DBEVT_BLE_DISABLE, DBEVT_SDP, DBEVT_EXIT, DBEVT_IMAGE_TCP_SERVICE_DISCONNECTED, DBEVT_NET_PAN_REQUEST, } dbevt_t; typedef enum { DOORBELL_SERVICE_NONE = 0, DOORBELL_SERVICE_P2P_CS2 = 1, DOORBELL_SERVICE_LAN_UDP = 2, DOORBELL_SERVICE_LAN_TCP = 3 } bk_genie_service_t; typedef struct { uint32_t event; uint32_t param; } bk_genie_msg_t; typedef enum { DB_TURN_OFF, DB_TURN_ON, } bk_genie_state_t; bk_err_t bk_genie_send_msg(bk_genie_msg_t *msg); void bk_genie_core_init(void); typedef struct { int (*init)(void *param); void (*deinit)(void); int (*camera_state_changed)(bk_genie_state_t state); int (*audio_state_changed)(bk_genie_state_t state); const void *camera_transfer_cb; const void *audio_transfer_cb; } bk_genie_service_interface_t; #endif