#ifdef USE_CAP_SUPPORT | |
#include "message.h" | |
#define VOICEIPC_OK 0 | |
#define VOICEIPC_ERROR -1 | |
#define VOICE_WAIT_MSG_FROM_CAP -2 //waitting msg from cap | |
#define VOICE_IPC_CONTROL_CHANNEL "/dev/rpmsg6" | |
//#define VOICE_IPC_CONTROL_CHANNEL_SIZE 256 | |
#define VOICE_IPC_CONTROL_CHANNEL_SIZE (8 * 1024 + 256) //À©´óÒԱ㴫Êävoice_nvrw.bin | |
#define VOICE_HEAD_LEN (2 * sizeof(int)) | |
#define VOICE_CONTROL_MAX_LEN 32 | |
#define VOICE_NVRW_MAX_LEN (8 * 1024) | |
enum voice_ipc_func_type{ | |
IPC_SET_VOICE_DEVICE_MODE = 0, | |
IPC_GET_VOICE_DEVICE_MODE = 1, | |
IPC_SET_RX_VOICE_VOL = 2, | |
IPC_GET_RX_VOICE_VOL = 3, | |
IPC_SET_TX_VOICE_VOL = 4, | |
IPC_GET_TX_VOICE_VOL = 5, | |
IPC_SET_TX_VOICE_MUTE_STATE = 6, | |
IPC_GET_TX_VOICE_MUTE_STATE = 7, | |
IPC_SET_RX_VOICE_MUTE_STATE = 8, | |
IPC_GET_RX_VOICE_MUTE_STATE = 9, | |
IPC_SET_LOOPBACK_ENABLE_STATE = 10, | |
IPC_GET_LOOPBACK_ENABLE_STATE = 11, | |
IPC_AP_ALSA_VOICE_OPEN = 12, | |
IPC_AP_ALSA_VOICE_CLOSE = 13, | |
IPC_CAP_ALSA_VOICE_OPEN = 14, | |
IPC_CAP_ALSA_VOICE_CLOSE = 15, | |
IPC_UPDATE_VOICE_NVRW = 16, | |
IPC_VOICE_FUNC_MAX | |
}; | |
enum voice_msg_cmd{ | |
MSG_CMD_CAP_VALSA_OPEN = MSG_CMD_VOICE_BASE + 0x0, //37070 | |
MSG_CMD_CAP_VALSA_CLOSE | |
}; | |
typedef struct{ | |
int func_id; | |
int param_len; | |
unsigned char param[VOICE_CONTROL_MAX_LEN]; | |
}voice_ipc_control_msg; | |
//msg | |
int cap_alsa_voice_open(int vmode); | |
int cap_alsa_voice_close(int vmode); | |
int recv_msg_proc(MSG_BUF msg); | |
void recv_cap_voice_alsa(void); | |
//voice ipc interface | |
int voice_ipc_init(void); | |
int Voice_Ctrl_Rpmsg_Send(int func_id, int *msg); | |
void Voice_Ctrl_Rpmsg_Recv(void); | |
void voice_ipc_recv_proc(voice_ipc_control_msg msg); | |
//send message to cap | |
int ipc_cap_alsa_voice_open(int vmode); | |
int ipc_cap_alsa_voice_close(int vmode); | |
//receive message from cap | |
void ipc_set_voice_device_mode_rcv(voice_ipc_control_msg msg); | |
void ipc_get_voice_device_mode_rcv(voice_ipc_control_msg msg); | |
void ipc_set_rx_voice_vol_rcv(voice_ipc_control_msg msg); | |
void ipc_get_rx_voice_vol_rcv(voice_ipc_control_msg msg); | |
void ipc_set_tx_voice_vol_rcv(voice_ipc_control_msg msg); | |
void ipc_get_tx_voice_vol_rcv(voice_ipc_control_msg msg); | |
void ipc_set_tx_voice_mute_state_rcv(voice_ipc_control_msg msg); | |
void ipc_get_tx_voice_mute_state_rcv(voice_ipc_control_msg msg); | |
void ipc_set_rx_voice_mute_state_rcv(voice_ipc_control_msg msg); | |
void ipc_get_rx_voice_mute_state_rcv(voice_ipc_control_msg msg); | |
void ipc_set_loopback_enable_state_rcv(voice_ipc_control_msg msg); | |
void ipc_get_loopback_enable_state_rcv(voice_ipc_control_msg msg); | |
#ifdef _USE_VOICE_ALSA | |
void ipc_ap_alsa_voice_open_rcv(voice_ipc_control_msg msg); | |
void ipc_ap_alsa_voice_close_rcv(voice_ipc_control_msg msg); | |
#endif | |
#endif |