Audio HW Control/audio_hw_control_chipset_api.h
changeset 5 ef85d0a8d402
parent 3 89965ac1daf8
equal deleted inserted replaced
4:acd095fadba0 5:ef85d0a8d402
   113     /* to have here extra status information that can be returned for e.g. multi-read/write commands */
   113     /* to have here extra status information that can be returned for e.g. multi-read/write commands */
   114     OMX_AUDIO_NOT_SUPPORTED = 0xFFFF     
   114     OMX_AUDIO_NOT_SUPPORTED = 0xFFFF     
   115 } OMX_AUDIO_HWCTRL_STATUSTYPE;
   115 } OMX_AUDIO_HWCTRL_STATUSTYPE;
   116 
   116 
   117 typedef enum OMX_AUDIO_HWOPERATIONTYPE { 
   117 typedef enum OMX_AUDIO_HWOPERATIONTYPE { 
   118     OMX_AUDIO_NOOP = 0,
   118      OMX_AUDIO_NOOP = 0,
   119     OMX_AUDIO_16BIT_SINGLE_READ,
   119      OMX_AUDIO_8BIT_SINGLE_READ,
   120     OMX_AUDIO_16BIT_SINGLE_WRITE,
   120      OMX_AUDIO_8BIT_SINGLE_WRITE,
   121     OMX_AUDIO_32BIT_SINGLE_READ,
   121      OMX_AUDIO_16BIT_SINGLE_READ,
   122     OMX_AUDIO_32BIT_SINGLE_WRITE,
   122      OMX_AUDIO_16BIT_SINGLE_WRITE,
   123     OMX_AUDIO_16BIT_MULTI_READ,
   123      OMX_AUDIO_32BIT_SINGLE_READ,
   124     OMX_AUDIO_16BIT_MULTI_WRITE,
   124      OMX_AUDIO_32BIT_SINGLE_WRITE,
   125     OMX_AUDIO_32BIT_MULTI_READ,
   125      OMX_AUDIO_8BIT_MULTI_READ,
   126     OMX_AUDIO_32BIT_MULTI_WRITE,
   126      OMX_AUDIO_8BIT_MULTI_WRITE,
   127     OMX_AUDIO_16BIT_BURST_MULTI_READ,
   127      OMX_AUDIO_16BIT_MULTI_READ,
   128     OMX_AUDIO_16BIT_BURST_MULTI_WRITE,
   128      OMX_AUDIO_16BIT_MULTI_WRITE,
   129     OMX_AUDIO_32BIT_BURST_MULTI_READ,
   129      OMX_AUDIO_32BIT_MULTI_READ,
   130     OMX_AUDIO_32BIT_BURST_MULTI_WRITE = 0xFFFF     
   130      OMX_AUDIO_32BIT_MULTI_WRITE,
       
   131      OMX_AUDIO_8BIT_BURST_MULTI_READ,
       
   132      OMX_AUDIO_8BIT_BURST_MULTI_WRITE,
       
   133      OMX_AUDIO_16BIT_BURST_MULTI_READ,
       
   134      OMX_AUDIO_16BIT_BURST_MULTI_WRITE,
       
   135      OMX_AUDIO_32BIT_BURST_MULTI_READ,
       
   136      OMX_AUDIO_32BIT_BURST_MULTI_WRITE = 0xFFFF     
   131 } OMX_AUDIO_HWOPERATIONTYPE;
   137 } OMX_AUDIO_HWOPERATIONTYPE;
   132 
   138 
   133 /** Custom audio HW control.
   139 /** Custom audio HW control.
   134 */
   140 */
   135 typedef struct OMX_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE  { 
   141 typedef struct OMX_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE  { 
   138     OMX_U32 nPortIndex;   
   144     OMX_U32 nPortIndex;   
   139     OMX_AUDIO_HWCTRL_STATUSTYPE eStatus;
   145     OMX_AUDIO_HWCTRL_STATUSTYPE eStatus;
   140     OMX_AUDIO_HWOPERATIONTYPE eHwOperation;
   146     OMX_AUDIO_HWOPERATIONTYPE eHwOperation;
   141     OMX_AUDIO_HWREGISTERTYPE eRegisterType;
   147     OMX_AUDIO_HWREGISTERTYPE eRegisterType;
   142     OMX_U16 nDataCount;
   148     OMX_U16 nDataCount;
   143     OMX_U32 nLogicalAddress;
   149     OMX_U8 nAddressDataSequence[];      
   144     OMX_U16 nData;     
       
   145 } OMX_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE;
   150 } OMX_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE;
   146 
   151 
   147 
   152 
   148 typedef enum OMX_AUDIO_HWLOOPSTYPE { 
   153 typedef enum OMX_AUDIO_HWLOOPSTYPE { 
   149     OMX_AUDIO_NOLOOP = 0,
   154     OMX_AUDIO_NOLOOP = 0,
   178 /** Non-OpenMAX API layers */
   183 /** Non-OpenMAX API layers */
   179 /***************************/
   184 /***************************/
   180 
   185 
   181 /* channel ID denoting special case of all channels being selected where possible */       
   186 /* channel ID denoting special case of all channels being selected where possible */       
   182 #define AUDIO_COMMON_CHANNEL_ALL	0x7FFFFFFF
   187 #define AUDIO_COMMON_CHANNEL_ALL	0x7FFFFFFF
       
   188 
       
   189 /** 8 bit unsigned quantity that is byte aligned */
       
   190 typedef unsigned char uint8;
       
   191 
       
   192 /** 8 bit signed quantity that is byte aligned */
       
   193 typedef signed char int8;
   183 
   194 
   184 /** 16 bit unsigned quantity that is 16 bit word aligned */
   195 /** 16 bit unsigned quantity that is 16 bit word aligned */
   185 typedef unsigned short uint16;
   196 typedef unsigned short uint16;
   186 
   197 
   187 /** 16 bit signed quantity that is 16 bit word aligned */
   198 /** 16 bit signed quantity that is 16 bit word aligned */
   213      
   224      
   214 } AUDIO_HAL_HW_LOOPS;
   225 } AUDIO_HAL_HW_LOOPS;
   215         
   226         
   216 typedef enum AUDIO_HAL_HW_OPERATION{ 
   227 typedef enum AUDIO_HAL_HW_OPERATION{ 
   217      AUDIO_HAL_NOOP = 0,
   228      AUDIO_HAL_NOOP = 0,
       
   229      AUDIO_HAL_8BIT_SINGLE_READ,
       
   230      AUDIO_HAL_8BIT_SINGLE_WRITE,
   218      AUDIO_HAL_16BIT_SINGLE_READ,
   231      AUDIO_HAL_16BIT_SINGLE_READ,
   219      AUDIO_HAL_16BIT_SINGLE_WRITE,
   232      AUDIO_HAL_16BIT_SINGLE_WRITE,
   220      AUDIO_HAL_32BIT_SINGLE_READ,
   233      AUDIO_HAL_32BIT_SINGLE_READ,
   221      AUDIO_HAL_32BIT_SINGLE_WRITE,
   234      AUDIO_HAL_32BIT_SINGLE_WRITE,
       
   235      AUDIO_HAL_8BIT_MULTI_READ,
       
   236      AUDIO_HAL_8BIT_MULTI_WRITE,
   222      AUDIO_HAL_16BIT_MULTI_READ,
   237      AUDIO_HAL_16BIT_MULTI_READ,
   223      AUDIO_HAL_16BIT_MULTI_WRITE,
   238      AUDIO_HAL_16BIT_MULTI_WRITE,
   224      AUDIO_HAL_32BIT_MULTI_READ,
   239      AUDIO_HAL_32BIT_MULTI_READ,
   225      AUDIO_HAL_32BIT_MULTI_WRITE,
   240      AUDIO_HAL_32BIT_MULTI_WRITE, 
       
   241      AUDIO_HAL_8BIT_BURST_MULTI_READ,
       
   242      AUDIO_HAL_8BIT_BURST_MULTI_WRITE,
   226      AUDIO_HAL_16BIT_BURST_MULTI_READ,
   243      AUDIO_HAL_16BIT_BURST_MULTI_READ,
   227      AUDIO_HAL_16BIT_BURST_MULTI_WRITE,
   244      AUDIO_HAL_16BIT_BURST_MULTI_WRITE,
   228      AUDIO_HAL_32BIT_BURST_MULTI_READ,
   245      AUDIO_HAL_32BIT_BURST_MULTI_READ,
   229      AUDIO_HAL_32BIT_BURST_MULTI_WRITE = 0xFFFF     
   246      AUDIO_HAL_32BIT_BURST_MULTI_WRITE = 0xFFFF     
   230 } AUDIO_HAL_HW_OPERATION;
   247 } AUDIO_HAL_HW_OPERATION;
   316 
   333 
   317 void audio_hal_regbank_descriptors_query(AUDIO_HAL_REGBANK_DESCRIPTOR* register_banks);
   334 void audio_hal_regbank_descriptors_query(AUDIO_HAL_REGBANK_DESCRIPTOR* register_banks);
   318 
   335 
   319 void audio_hal_custom_hw_control (void (*call_back_fn_ptr)(AUDIO_COMMON_STATUS status, uint32 extra_status_info), 
   336 void audio_hal_custom_hw_control (void (*call_back_fn_ptr)(AUDIO_COMMON_STATUS status, uint32 extra_status_info), 
   320                                  AUDIO_HAL_HW_OPERATION hw_operation, AUDIO_HAL_HW_REGISTER_TYPE register_type,
   337                                  AUDIO_HAL_HW_OPERATION hw_operation, AUDIO_HAL_HW_REGISTER_TYPE register_type,
   321                                  uint16 num_data, uint32* address_data_sequence);
   338                                  uint16 num_data, uint8* address_data_sequence);
   322 
   339 
   323                                  
   340                                  
   324 /* Sequencer layer */
   341 /* Sequencer layer */
   325 void audio_sequencer_mute_control(void (*call_back_fn_ptr)(AUDIO_COMMON_STATUS status, uint32 channel_index, uint32 extra_status_info), 
   342 void audio_sequencer_mute_control(void (*call_back_fn_ptr)(AUDIO_COMMON_STATUS status, uint32 channel_index, uint32 extra_status_info), 
   326                                   uint32 channel_index, AUDIO_COMMON_SWITCH mute_control);
   343                                   uint32 channel_index, AUDIO_COMMON_SWITCH mute_control);