blob: d03ee024ae918f60cf276febb85cb46d08cac015 [file] [log] [blame]
#ifndef QDSP5AUDRECCMDI_H
#define QDSP5AUDRECCMDI_H
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
A U D I O R E C O R D I N T E R N A L C O M M A N D S
GENERAL DESCRIPTION
This file contains defintions of format blocks of commands
that are accepted by AUDREC Task
REFERENCES
None
EXTERNALIZED FUNCTIONS
None
Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated.
This software is licensed under the terms of the GNU General Public
License version 2, as published by the Free Software Foundation, and
may be copied, distributed, and modified under those terms.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
/*===========================================================================
EDIT HISTORY FOR FILE
This section contains comments describing changes made to this file.
Notice that changes are listed in reverse chronological order.
$Header: //source/qcom/qct/multimedia2/Audio/drivers/QDSP5Driver/QDSP5Interface/main/latest/qdsp5audreccmdi.h#3 $
============================================================================*/
/*
* AUDRECTASK COMMANDS
* ARM uses 2 queues to communicate with the AUDRECTASK
* 1.uPAudRecCmdQueue
* Location :MEMC
* Buffer Size : 8
* No of Buffers in a queue : 3
* 2.audRecUpBitStreamQueue
* Location : MEMC
* Buffer Size : 4
* No of buffers in a queue : 2
*/
/*
* Commands on uPAudRecCmdQueue
*/
/*
* Command to initiate and terminate the audio recording section
*/
#define AUDREC_CMD_CFG 0x0000
#define AUDREC_CMD_CFG_LEN sizeof(audrec_cmd_cfg)
#define AUDREC_CMD_TYPE_0_INDEX_WAV 0x0000
#define AUDREC_CMD_TYPE_0_INDEX_AAC 0x0001
#define AUDREC_CMD_TYPE_0_ENA 0x4000
#define AUDREC_CMD_TYPE_0_DIS 0x0000
#define AUDREC_CMD_TYPE_0_NOUPDATE 0x0000
#define AUDREC_CMD_TYPE_0_UPDATE 0x8000
#define AUDREC_CMD_TYPE_1_INDEX_SBC 0x0002
#define AUDREC_CMD_TYPE_1_ENA 0x4000
#define AUDREC_CMD_TYPE_1_DIS 0x0000
#define AUDREC_CMD_TYPE_1_NOUPDATE 0x0000
#define AUDREC_CMD_TYPE_1_UPDATE 0x8000
typedef struct {
unsigned short cmd_id;
unsigned short type_0;
unsigned short type_1;
} __attribute__((packed)) audrec_cmd_cfg;
/*
* Command to configure the recording parameters for RecType0(AAC/WAV) encoder
*/
#define AUDREC_CMD_AREC0PARAM_CFG 0x0001
#define AUDREC_CMD_AREC0PARAM_CFG_LEN \
sizeof(audrec_cmd_arec0param_cfg)
#define AUDREC_CMD_SAMP_RATE_INDX_8000 0x000B
#define AUDREC_CMD_SAMP_RATE_INDX_11025 0x000A
#define AUDREC_CMD_SAMP_RATE_INDX_12000 0x0009
#define AUDREC_CMD_SAMP_RATE_INDX_16000 0x0008
#define AUDREC_CMD_SAMP_RATE_INDX_22050 0x0007
#define AUDREC_CMD_SAMP_RATE_INDX_24000 0x0006
#define AUDREC_CMD_SAMP_RATE_INDX_32000 0x0005
#define AUDREC_CMD_SAMP_RATE_INDX_44100 0x0004
#define AUDREC_CMD_SAMP_RATE_INDX_48000 0x0003
#define AUDREC_CMD_STEREO_MODE_MONO 0x0000
#define AUDREC_CMD_STEREO_MODE_STEREO 0x0001
typedef struct {
unsigned short cmd_id;
unsigned short ptr_to_extpkt_buffer_msw;
unsigned short ptr_to_extpkt_buffer_lsw;
unsigned short buf_len;
unsigned short samp_rate_index;
unsigned short stereo_mode;
unsigned short rec_quality;
} __attribute__((packed)) audrec_cmd_arec0param_cfg;
/*
* Command to configure the recording parameters for RecType1(SBC) encoder
*/
#define AUDREC_CMD_AREC1PARAM_CFG 0x0002
#define AUDREC_CMD_AREC1PARAM_CFG_LEN \
sizeof(audrec_cmd_arec1param_cfg)
#define AUDREC_CMD_PARAM_BUF_BLOCKS_4 0x0000
#define AUDREC_CMD_PARAM_BUF_BLOCKS_8 0x0001
#define AUDREC_CMD_PARAM_BUF_BLOCKS_12 0x0002
#define AUDREC_CMD_PARAM_BUF_BLOCKS_16 0x0003
#define AUDREC_CMD_PARAM_BUF_SUB_BANDS_8 0x0010
#define AUDREC_CMD_PARAM_BUF_MODE_MONO 0x0000
#define AUDREC_CMD_PARAM_BUF_MODE_DUAL 0x0040
#define AUDREC_CMD_PARAM_BUF_MODE_STEREO 0x0050
#define AUDREC_CMD_PARAM_BUF_MODE_JSTEREO 0x0060
#define AUDREC_CMD_PARAM_BUF_LOUDNESS 0x0000
#define AUDREC_CMD_PARAM_BUF_SNR 0x0100
#define AUDREC_CMD_PARAM_BUF_BASIC_VER 0x0000
typedef struct {
unsigned short cmd_id;
unsigned short ptr_to_extpkt_buffer_msw;
unsigned short ptr_to_extpkt_buffer_lsw;
unsigned short buf_len;
unsigned short param_buf;
unsigned short bit_rate_0;
unsigned short bit_rate_1;
} __attribute__((packed)) audrec_cmd_arec1param_cfg;
/*
* Commands on audRecUpBitStreamQueue
*/
/*
* Command to indicate the current packet read count
*/
#define AUDREC_CMD_PACKET_EXT_PTR 0x0000
#define AUDREC_CMD_PACKET_EXT_PTR_LEN \
sizeof(audrec_cmd_packet_ext_ptr)
#define AUDREC_CMD_TYPE_0 0x0000
#define AUDREC_CMD_TYPE_1 0x0001
typedef struct {
unsigned short cmd_id;
unsigned short type;
unsigned short curr_rec_count_msw;
unsigned short curr_rec_count_lsw;
} __attribute__((packed)) audrec_cmd_packet_ext_ptr;
#endif