diff options
Diffstat (limited to 'audio/ipc.h')
| -rw-r--r-- | audio/ipc.h | 74 | 
1 files changed, 63 insertions, 11 deletions
| diff --git a/audio/ipc.h b/audio/ipc.h index 119aa7b3..e6859a50 100644 --- a/audio/ipc.h +++ b/audio/ipc.h @@ -31,19 +31,71 @@  #define UNIX_PATH_MAX 108  #endif -struct ipc_hdr { -	uint16_t id; -	uint16_t type; -	uint16_t seqnum; -	uint16_t length; +/* Supported roles */ +#define PKT_ROLE_NONE		0 +#define PKT_ROLE_AUTO		1 +#define PKT_ROLE_VOICE		2 +#define PKT_ROLE_HIFI		3 + +/* Packet types */ +#define PKT_TYPE_CFG_REQ	0 +#define PKT_TYPE_CFG_RSP	1 +#define PKT_TYPE_STATUS_REQ	3 +#define PKT_TYPE_STATUS_RSP	4 +#define PKT_TYPE_CTL_REQ	5 +#define PKT_TYPE_CTL_RSP	6 + +/* Errors codes */ +#define PKT_ERROR_NONE		0 + +struct ipc_packet { +	uint8_t id;		/* Device id */ +	uint8_t role;		/* Audio role eg: voice, wifi, auto... */ +	uint8_t type;		/* Packet type */ +	uint8_t error;		/* Packet error code */ +	uint8_t length;		/* Payload length in bytes */ +	uint8_t data[0];	/* Packet payload */  } __attribute__ ((packed)); -struct ipc_connect_cmd { -	uint8_t src[6]; -	uint8_t dst[6]; -	uint16_t uuid; +/* File descriptor options */ +#define CFG_FD_OPT_READ		0 +#define CFG_FD_OPT_WRITE	1 +#define CFG_FD_OPT_READWRITE	2 + +struct ipc_data_cfg { +	int fd;			/* Stream file descriptor */ +	uint8_t fd_opt;		/* Stream file descriptor options: read, write or readwrite*/ +	uint8_t encoding;	/* Stream encoding */ +	uint8_t bitpool;	/* Encoding bitpool */ +	uint8_t channels;	/* Number of audio channel */ +	uint16_t rate;		/* Stream sample rate */  } __attribute__ ((packed)); -struct ipc_connect_evt { -	uint16_t id; +/* Device status */ +#define STATUS_DISCONNECTED	0 +#define STATUS_CONNECTING	1 +#define STATUS_CONNECTED	2 +#define STATUS_STREAMING	3 + +struct ipc_data_status { +	uint8_t status;		/* Stream status */  } __attribute__ ((packed)); + +/* Supported control operations */ +#define DATA_CTL_POWER		0x40 +#define DATA_CTL_VOL_UP		0x41 +#define DATA_CTL_VOL_DOWN	0x42 +#define DATA_CTL_MUTE		0x43 +#define DATA_CTL_PLAY		0x44 +#define DATA_CTL_STOP		0x45 +#define DATA_CTL_PAUSE		0x46 +#define DATA_CTL_RECORD		0x47 +#define DATA_CTL_REWIND		0x48 +#define DATA_CTL_FAST_FORWARD	0x49 +#define DATA_CTL_EJECT		0x4A +#define DATA_CTL_FORWARD	0x4B +#define DATA_CTL_BACKWARD	0x4C + +struct ipc_data_ctl { +	uint8_t operation;	/* Operation ID */ +}  __attribute__ ((packed)); | 
