• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)14 int32_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)31 int32_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