319 lines
9.1 KiB
C
319 lines
9.1 KiB
C
|
#ifndef QDSP5AUDPPMSG_H
|
||
|
#define QDSP5AUDPPMSG_H
|
||
|
|
||
|
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
|
||
|
|
||
|
Q D S P 5 A U D I O P O S T P R O C E S S I N G M S G
|
||
|
|
||
|
GENERAL DESCRIPTION
|
||
|
Messages sent by AUDPPTASK to ARM
|
||
|
|
||
|
REFERENCES
|
||
|
None
|
||
|
|
||
|
EXTERNALIZED FUNCTIONS
|
||
|
None
|
||
|
|
||
|
Copyright(c) 1992 - 2009 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/qdsp5audppmsg.h#4 $
|
||
|
|
||
|
===========================================================================*/
|
||
|
|
||
|
/*
|
||
|
* AUDPPTASK uses audPPuPRlist to send messages to the ARM
|
||
|
* Location : MEMA
|
||
|
* Buffer Size : 45
|
||
|
* No of Buffers in a queue : 5 for gaming audio and 1 for other images
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* MSG to Informs the ARM os Success/Failure of bringing up the decoder
|
||
|
*/
|
||
|
|
||
|
#define AUDPP_MSG_STATUS_MSG 0x0001
|
||
|
#define AUDPP_MSG_STATUS_MSG_LEN \
|
||
|
sizeof(audpp_msg_status_msg)
|
||
|
|
||
|
#define AUDPP_MSG_STATUS_SLEEP 0x0000
|
||
|
#define AUDPP_MSG__STATUS_INIT 0x0001
|
||
|
#define AUDPP_MSG_MSG_STATUS_CFG 0x0002
|
||
|
#define AUDPP_MSG_STATUS_PLAY 0x0003
|
||
|
|
||
|
#define AUDPP_MSG_REASON_MIPS 0x0000
|
||
|
#define AUDPP_MSG_REASON_MEM 0x0001
|
||
|
|
||
|
typedef struct{
|
||
|
unsigned short dec_id;
|
||
|
unsigned short status;
|
||
|
unsigned short reason;
|
||
|
} __attribute__((packed)) audpp_msg_status_msg;
|
||
|
|
||
|
/*
|
||
|
* MSG to communicate the spectrum analyzer output bands to the ARM
|
||
|
*/
|
||
|
#define AUDPP_MSG_SPA_BANDS 0x0002
|
||
|
#define AUDPP_MSG_SPA_BANDS_LEN \
|
||
|
sizeof(audpp_msg_spa_bands)
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short current_object;
|
||
|
unsigned short spa_band_1;
|
||
|
unsigned short spa_band_2;
|
||
|
unsigned short spa_band_3;
|
||
|
unsigned short spa_band_4;
|
||
|
unsigned short spa_band_5;
|
||
|
unsigned short spa_band_6;
|
||
|
unsigned short spa_band_7;
|
||
|
unsigned short spa_band_8;
|
||
|
unsigned short spa_band_9;
|
||
|
unsigned short spa_band_10;
|
||
|
unsigned short spa_band_11;
|
||
|
unsigned short spa_band_12;
|
||
|
unsigned short spa_band_13;
|
||
|
unsigned short spa_band_14;
|
||
|
unsigned short spa_band_15;
|
||
|
unsigned short spa_band_16;
|
||
|
unsigned short spa_band_17;
|
||
|
unsigned short spa_band_18;
|
||
|
unsigned short spa_band_19;
|
||
|
unsigned short spa_band_20;
|
||
|
unsigned short spa_band_21;
|
||
|
unsigned short spa_band_22;
|
||
|
unsigned short spa_band_23;
|
||
|
unsigned short spa_band_24;
|
||
|
unsigned short spa_band_25;
|
||
|
unsigned short spa_band_26;
|
||
|
unsigned short spa_band_27;
|
||
|
unsigned short spa_band_28;
|
||
|
unsigned short spa_band_29;
|
||
|
unsigned short spa_band_30;
|
||
|
unsigned short spa_band_31;
|
||
|
unsigned short spa_band_32;
|
||
|
} __attribute__((packed)) audpp_msg_spa_bands;
|
||
|
|
||
|
/*
|
||
|
* MSG to communicate the PCM I/O buffer status to ARM
|
||
|
*/
|
||
|
#define AUDPP_MSG_HOST_PCM_INTF_MSG 0x0003
|
||
|
#define AUDPP_MSG_HOST_PCM_INTF_MSG_LEN \
|
||
|
sizeof(audpp_msg_host_pcm_intf_msg)
|
||
|
|
||
|
#define AUDPP_MSG_HOSTPCM_ID_TX_ARM 0x0000
|
||
|
#define AUDPP_MSG_HOSTPCM_ID_ARM_TX 0x0001
|
||
|
#define AUDPP_MSG_HOSTPCM_ID_RX_ARM 0x0002
|
||
|
#define AUDPP_MSG_HOSTPCM_ID_ARM_RX 0x0003
|
||
|
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_96000 0x0000
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_88200 0x0001
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_64000 0x0002
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_48000 0x0003
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_44100 0x0004
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_32000 0x0005
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_24000 0x0006
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_22050 0x0007
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_16000 0x0008
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_12000 0x0009
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_11025 0x000A
|
||
|
#define AUDPP_MSG_SAMP_FREQ_INDX_8000 0x000B
|
||
|
|
||
|
#define AUDPP_MSG_CHANNEL_MODE_MONO 0x0001
|
||
|
#define AUDPP_MSG_CHANNEL_MODE_STEREO 0x0002
|
||
|
|
||
|
typedef struct{
|
||
|
unsigned short obj_num;
|
||
|
unsigned short numbers_of_samples;
|
||
|
unsigned short host_pcm_id;
|
||
|
unsigned short buf_indx;
|
||
|
unsigned short samp_freq_indx;
|
||
|
unsigned short channel_mode;
|
||
|
} __attribute__((packed)) audpp_msg_host_pcm_intf_msg;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* MSG to communicate 3D position of the source and listener , source volume
|
||
|
* source rolloff, source orientation
|
||
|
*/
|
||
|
|
||
|
#define AUDPP_MSG_QAFX_POS 0x0004
|
||
|
#define AUDPP_MSG_QAFX_POS_LEN \
|
||
|
sizeof(audpp_msg_qafx_pos)
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short current_object;
|
||
|
unsigned short x_pos_lis_msw;
|
||
|
unsigned short x_pos_lis_lsw;
|
||
|
unsigned short y_pos_lis_msw;
|
||
|
unsigned short y_pos_lis_lsw;
|
||
|
unsigned short z_pos_lis_msw;
|
||
|
unsigned short z_pos_lis_lsw;
|
||
|
unsigned short x_fwd_msw;
|
||
|
unsigned short x_fwd_lsw;
|
||
|
unsigned short y_fwd_msw;
|
||
|
unsigned short y_fwd_lsw;
|
||
|
unsigned short z_fwd_msw;
|
||
|
unsigned short z_fwd_lsw;
|
||
|
unsigned short x_up_msw;
|
||
|
unsigned short x_up_lsw;
|
||
|
unsigned short y_up_msw;
|
||
|
unsigned short y_up_lsw;
|
||
|
unsigned short z_up_msw;
|
||
|
unsigned short z_up_lsw;
|
||
|
unsigned short x_vel_lis_msw;
|
||
|
unsigned short x_vel_lis_lsw;
|
||
|
unsigned short y_vel_lis_msw;
|
||
|
unsigned short y_vel_lis_lsw;
|
||
|
unsigned short z_vel_lis_msw;
|
||
|
unsigned short z_vel_lis_lsw;
|
||
|
unsigned short threed_enable_flag;
|
||
|
unsigned short volume;
|
||
|
unsigned short x_pos_source_msw;
|
||
|
unsigned short x_pos_source_lsw;
|
||
|
unsigned short y_pos_source_msw;
|
||
|
unsigned short y_pos_source_lsw;
|
||
|
unsigned short z_pos_source_msw;
|
||
|
unsigned short z_pos_source_lsw;
|
||
|
unsigned short max_dist_0_msw;
|
||
|
unsigned short max_dist_0_lsw;
|
||
|
unsigned short min_dist_0_msw;
|
||
|
unsigned short min_dist_0_lsw;
|
||
|
unsigned short roll_off_factor;
|
||
|
unsigned short mute_after_max_flag;
|
||
|
unsigned short x_vel_source_msw;
|
||
|
unsigned short x_vel_source_lsw;
|
||
|
unsigned short y_vel_source_msw;
|
||
|
unsigned short y_vel_source_lsw;
|
||
|
unsigned short z_vel_source_msw;
|
||
|
unsigned short z_vel_source_lsw;
|
||
|
} __attribute__((packed)) audpp_msg_qafx_pos;
|
||
|
|
||
|
/*
|
||
|
* MSG to provide AVSYNC feedback from DSP to ARM
|
||
|
*/
|
||
|
|
||
|
#define AUDPP_MSG_AVSYNC_MSG 0x0005
|
||
|
#define AUDPP_MSG_AVSYNC_MSG_LEN \
|
||
|
sizeof(audpp_msg_avsync_msg)
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short active_flag;
|
||
|
unsigned short num_samples_counter0_HSW;
|
||
|
unsigned short num_samples_counter0_MSW;
|
||
|
unsigned short num_samples_counter0_LSW;
|
||
|
unsigned short num_bytes_counter0_HSW;
|
||
|
unsigned short num_bytes_counter0_MSW;
|
||
|
unsigned short num_bytes_counter0_LSW;
|
||
|
unsigned short samp_freq_obj_0;
|
||
|
unsigned short samp_freq_obj_1;
|
||
|
unsigned short samp_freq_obj_2;
|
||
|
unsigned short samp_freq_obj_3;
|
||
|
unsigned short samp_freq_obj_4;
|
||
|
unsigned short samp_freq_obj_5;
|
||
|
unsigned short samp_freq_obj_6;
|
||
|
unsigned short samp_freq_obj_7;
|
||
|
unsigned short samp_freq_obj_8;
|
||
|
unsigned short samp_freq_obj_9;
|
||
|
unsigned short samp_freq_obj_10;
|
||
|
unsigned short samp_freq_obj_11;
|
||
|
unsigned short samp_freq_obj_12;
|
||
|
unsigned short samp_freq_obj_13;
|
||
|
unsigned short samp_freq_obj_14;
|
||
|
unsigned short samp_freq_obj_15;
|
||
|
unsigned short num_samples_counter4_HSW;
|
||
|
unsigned short num_samples_counter4_MSW;
|
||
|
unsigned short num_samples_counter4_LSW;
|
||
|
unsigned short num_bytes_counter4_HSW;
|
||
|
unsigned short num_bytes_counter4_MSW;
|
||
|
unsigned short num_bytes_counter4_LSW;
|
||
|
} __attribute__((packed)) audpp_msg_avsync_msg;
|
||
|
|
||
|
/*
|
||
|
* MSG to provide PCM DMA Missed feedback from the DSP to ARM
|
||
|
*/
|
||
|
|
||
|
#define AUDPP_MSG_PCMDMAMISSED 0x0006
|
||
|
#define AUDPP_MSG_PCMDMAMISSED_LEN \
|
||
|
sizeof(audpp_msg_pcmdmamissed);
|
||
|
|
||
|
typedef struct{
|
||
|
/*
|
||
|
** Bit 0 0 = PCM DMA not missed for object 0
|
||
|
** 1 = PCM DMA missed for object0
|
||
|
** Bit 1 0 = PCM DMA not missed for object 1
|
||
|
** 1 = PCM DMA missed for object1
|
||
|
** Bit 2 0 = PCM DMA not missed for object 2
|
||
|
** 1 = PCM DMA missed for object2
|
||
|
** Bit 3 0 = PCM DMA not missed for object 3
|
||
|
** 1 = PCM DMA missed for object3
|
||
|
** Bit 4 0 = PCM DMA not missed for object 4
|
||
|
** 1 = PCM DMA missed for object4
|
||
|
*/
|
||
|
unsigned short pcmdmamissed;
|
||
|
} __attribute__((packed)) audpp_msg_pcmdmamissed;
|
||
|
|
||
|
/*
|
||
|
* MSG to AUDPP enable or disable feedback form DSP to ARM
|
||
|
*/
|
||
|
|
||
|
#define AUDPP_MSG_CFG_MSG 0x0007
|
||
|
#define AUDPP_MSG_CFG_MSG_LEN \
|
||
|
sizeof(audpp_msg_cfg_msg)
|
||
|
|
||
|
#define AUDPP_MSG_ENA_ENA 0xFFFF
|
||
|
#define AUDPP_MSG_ENA_DIS 0x0000
|
||
|
|
||
|
typedef struct{
|
||
|
/* Enabled - 0xffff
|
||
|
** Disabled - 0
|
||
|
*/
|
||
|
unsigned short enabled;
|
||
|
} __attribute__((packed)) audpp_msg_cfg_msg;
|
||
|
|
||
|
/*
|
||
|
* MSG to communicate the reverb per object volume
|
||
|
*/
|
||
|
|
||
|
#define AUDPP_MSG_QREVERB_VOLUME 0x0008
|
||
|
#define AUDPP_MSG_QREVERB_VOLUME_LEN \
|
||
|
sizeof(audpp_msg_qreverb_volume)
|
||
|
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned short obj_0_gain;
|
||
|
unsigned short obj_1_gain;
|
||
|
unsigned short obj_2_gain;
|
||
|
unsigned short obj_3_gain;
|
||
|
unsigned short obj_4_gain;
|
||
|
unsigned short hpcm_obj_volume;
|
||
|
} __attribute__((packed)) audpp_msg_qreverb_volume;
|
||
|
|
||
|
#define AUDPP_MSG_ROUTING_ACK 0x0009
|
||
|
#define AUDPP_MSG_ROUTING_ACK_LEN \
|
||
|
sizeof(struct audpp_msg_routing_ack)
|
||
|
|
||
|
struct audpp_msg_routing_ack {
|
||
|
unsigned short dec_id;
|
||
|
unsigned short routing_mode;
|
||
|
} __attribute__((packed));
|
||
|
|
||
|
#define AUDPP_MSG_FLUSH_ACK 0x000A
|
||
|
|
||
|
#endif /* QDSP5AUDPPMSG_H */
|