1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * 4 * HDF is dual licensed: you can use it either under the terms of 5 * the GPL, or the BSD license, at your option. 6 * See the LICENSE file in the root of this repository for complete details. 7 */ 8 9 #include "audio_accessory_base.h" 10 #include "audio_device_log.h" 11 12 #define HDF_LOG_TAG audio_accessory_base 13 FormatToBitWidth(enum AudioFormat format,uint16_t * bitWidth)14int32_t FormatToBitWidth(enum AudioFormat format, uint16_t *bitWidth) 15 { 16 // current set default format(standard) for 16/24 bit 17 switch (format) { 18 case AUDIO_FORMAT_PCM_16_BIT: 19 *bitWidth = I2S_SAMPLE_FORMAT_REG_VAL_24; 20 break; 21 case AUDIO_FORMAT_PCM_24_BIT: 22 *bitWidth = I2S_SAMPLE_FORMAT_REG_VAL_24; 23 break; 24 default: 25 AUDIO_DEVICE_LOG_ERR("format: %d is not support.", format); 26 return HDF_ERR_NOT_SUPPORT; 27 } 28 return HDF_SUCCESS; 29 } 30 RateToFrequency(uint32_t rate,uint16_t * freq)31int32_t RateToFrequency(uint32_t rate, uint16_t *freq) 32 { 33 switch (rate) { 34 case I2S_SAMPLE_FREQUENCY_8000: 35 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_8000; 36 break; 37 case I2S_SAMPLE_FREQUENCY_11025: 38 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_11025; 39 break; 40 case I2S_SAMPLE_FREQUENCY_12000: 41 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_12000; 42 break; 43 case I2S_SAMPLE_FREQUENCY_16000: 44 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_16000; 45 break; 46 case I2S_SAMPLE_FREQUENCY_22050: 47 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_22050; 48 break; 49 case I2S_SAMPLE_FREQUENCY_24000: 50 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_24000; 51 break; 52 case I2S_SAMPLE_FREQUENCY_32000: 53 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_32000; 54 break; 55 case I2S_SAMPLE_FREQUENCY_44100: 56 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_44100; 57 break; 58 case I2S_SAMPLE_FREQUENCY_48000: 59 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_48000; 60 break; 61 case I2S_SAMPLE_FREQUENCY_64000: 62 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_64000; 63 break; 64 case I2S_SAMPLE_FREQUENCY_88200: 65 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_88200; 66 break; 67 case I2S_SAMPLE_FREQUENCY_96000: 68 *freq = I2S_SAMPLE_FREQUENCY_REG_VAL_96000; 69 break; 70 default: 71 AUDIO_DEVICE_LOG_ERR("rate: %d is not support.", rate); 72 return HDF_ERR_NOT_SUPPORT; 73 } 74 return HDF_SUCCESS; 75 } 76