• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "audio_common_test.h"
17 #include "audio_internal.h"
18 
19 namespace comfun {
InitPort(struct AudioPort & portIndex)20 int32_t InitPort(struct AudioPort &portIndex)
21 {
22     portIndex.dir = PORT_OUT;
23     portIndex.portId = 1;
24     portIndex.portName = "usb";
25     return HDF_SUCCESS;
26 }
27 
InitHwRender(struct AudioHwRender & hwRender,const struct AudioDeviceDescriptor & desc,const struct AudioSampleAttributes & attrs)28 int32_t InitHwRender(struct AudioHwRender &hwRender,
29     const struct AudioDeviceDescriptor &desc, const struct AudioSampleAttributes &attrs)
30 {
31     hwRender.renderParam.renderMode.hwInfo.deviceDescript = desc;
32     hwRender.renderParam.frameRenderMode.attrs = attrs;
33     hwRender.renderParam.renderMode.ctlParam.audioGain.gainMax = 15; // gainMax 15
34     hwRender.renderParam.renderMode.ctlParam.audioGain.gainMin = 0;
35     hwRender.renderParam.frameRenderMode.frames = 0;
36     hwRender.renderParam.frameRenderMode.time.tvNSec = 0;
37     hwRender.renderParam.frameRenderMode.time.tvSec = 0;
38     hwRender.renderParam.frameRenderMode.byteRate = DEFAULT_RENDER_SAMPLING_RATE;
39     hwRender.renderParam.frameRenderMode.periodSize = DEEP_BUFFER_RENDER_PERIOD_SIZE;
40     hwRender.renderParam.frameRenderMode.periodCount = DEEP_BUFFER_RENDER_PERIOD_COUNT;
41     hwRender.renderParam.frameRenderMode.attrs.period = attrs.period;
42     hwRender.renderParam.frameRenderMode.attrs.frameSize = attrs.frameSize;
43     hwRender.renderParam.frameRenderMode.attrs.startThreshold = attrs.startThreshold;
44     hwRender.renderParam.frameRenderMode.attrs.stopThreshold = attrs.stopThreshold;
45     hwRender.renderParam.frameRenderMode.attrs.silenceThreshold = attrs.silenceThreshold;
46     hwRender.renderParam.frameRenderMode.attrs.isBigEndian = attrs.isBigEndian;
47     hwRender.renderParam.frameRenderMode.attrs.isSignedData = attrs.isSignedData;
48     return HDF_SUCCESS;
49 }
50 
InitHwCapture(struct AudioHwCapture & hwCapture,const struct AudioDeviceDescriptor & desc,const struct AudioSampleAttributes & attrs)51 int32_t InitHwCapture(struct AudioHwCapture &hwCapture, const struct AudioDeviceDescriptor &desc,
52     const struct AudioSampleAttributes &attrs)
53 {
54     hwCapture.captureParam.captureMode.hwInfo.deviceDescript = desc;
55     hwCapture.captureParam.frameCaptureMode.attrs = attrs;
56     hwCapture.captureParam.captureMode.ctlParam.audioGain.gainMax = 15; // gainMax 15
57     hwCapture.captureParam.captureMode.ctlParam.audioGain.gainMin = 0;
58     hwCapture.captureParam.frameCaptureMode.frames = 0;
59     hwCapture.captureParam.frameCaptureMode.time.tvNSec = 0;
60     hwCapture.captureParam.frameCaptureMode.time.tvSec = 0;
61     hwCapture.captureParam.frameCaptureMode.byteRate = DEFAULT_RENDER_SAMPLING_RATE;
62     hwCapture.captureParam.frameCaptureMode.periodSize = DEEP_BUFFER_RENDER_PERIOD_SIZE;
63     hwCapture.captureParam.frameCaptureMode.periodCount = DEEP_BUFFER_RENDER_PERIOD_COUNT;
64     hwCapture.captureParam.frameCaptureMode.attrs.period = attrs.period;
65     hwCapture.captureParam.frameCaptureMode.attrs.frameSize = attrs.frameSize;
66     hwCapture.captureParam.frameCaptureMode.attrs.startThreshold = attrs.startThreshold;
67     hwCapture.captureParam.frameCaptureMode.attrs.stopThreshold = attrs.stopThreshold;
68     hwCapture.captureParam.frameCaptureMode.attrs.silenceThreshold = attrs.silenceThreshold;
69     hwCapture.captureParam.frameCaptureMode.attrs.isBigEndian = attrs.isBigEndian;
70     hwCapture.captureParam.frameCaptureMode.attrs.isSignedData = attrs.isSignedData;
71     return HDF_SUCCESS;
72 }
73 
InitAttrsCommon(struct AudioSampleAttributes & attrs)74 void InitAttrsCommon(struct AudioSampleAttributes &attrs)
75 {
76     /* Initialization of audio parameters for playback */
77     attrs.format = AUDIO_FORMAT_PCM_16_BIT;
78     attrs.channelCount = AUDIO_CHANNELCOUNT;
79     attrs.sampleRate = AUDIO_SAMPLE_RATE_48K;
80     attrs.interleaved = 0;
81     attrs.type = AUDIO_IN_MEDIA;
82     attrs.period = DEEP_BUFFER_RENDER_PERIOD_SIZE;
83     /* PERIOD_SIZE * 16 * attrs.channelCount / 8 */
84     attrs.frameSize = 16 * attrs.channelCount / 8;
85     attrs.isBigEndian = false;
86     attrs.isSignedData = true;
87     /* DEEP_BUFFER_RENDER_PERIOD_SIZE / (16 * attrs->channelCount / 8) */
88     attrs.startThreshold = DEEP_BUFFER_RENDER_PERIOD_SIZE / (16 * attrs.channelCount / 8);
89     attrs.stopThreshold = INT_32_MAX;
90 }
91 
InitAttrs(struct AudioSampleAttributes & attrs)92 int32_t InitAttrs(struct AudioSampleAttributes &attrs)
93 {
94     InitAttrsCommon(attrs);
95     attrs.silenceThreshold = 0;
96     return HDF_SUCCESS;
97 }
98 
InitDevDesc(struct AudioDeviceDescriptor & devDesc)99 int32_t InitDevDesc(struct AudioDeviceDescriptor &devDesc)
100 {
101     /* Initialization of audio parameters for playback */
102     devDesc.portId = 0;
103     devDesc.pins = PIN_OUT_SPEAKER;
104     devDesc.desc = NULL;
105     return HDF_SUCCESS;
106 }
107 
InitAttrsCapture(struct AudioSampleAttributes & attrs)108 int32_t InitAttrsCapture(struct AudioSampleAttributes &attrs)
109 {
110     InitAttrsCommon(attrs);
111     /* 16 * 1024 */
112     attrs.silenceThreshold = 16 * 1024;
113     return HDF_SUCCESS;
114 }
115 
InitDevDescCapture(struct AudioDeviceDescriptor & devDesc)116 int32_t InitDevDescCapture(struct AudioDeviceDescriptor &devDesc)
117 {
118     /* Initialization of audio parameters for playback */
119     devDesc.portId = 0;
120     devDesc.pins = PIN_IN_MIC;
121     devDesc.desc = NULL;
122     return HDF_SUCCESS;
123 }
124 
AudioRenderCallbackUtTest(enum AudioCallbackType type,void * reserved,void * cookie)125 int32_t AudioRenderCallbackUtTest(enum AudioCallbackType type, void *reserved, void *cookie)
126 {
127     (void)reserved;
128     (void)cookie;
129     switch (type) {
130         case AUDIO_NONBLOCK_WRITE_COMPELETED:
131             return HDF_SUCCESS;
132         case AUDIO_RENDER_FULL:
133             return HDF_SUCCESS;
134         case AUDIO_FLUSH_COMPLETED:
135             return HDF_SUCCESS;
136         case AUDIO_ERROR_OCCUR:
137             return HDF_FAILURE;
138         case AUDIO_DRAIN_COMPELETED:
139             return HDF_FAILURE;
140         default:
141             return HDF_FAILURE;
142     }
143     return HDF_FAILURE;
144 }
145 }