• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 #ifndef OHOS_DAUDIO_AUDIO_PARAM_H
17 #define OHOS_DAUDIO_AUDIO_PARAM_H
18 
19 #include <string>
20 
21 namespace OHOS {
22 namespace DistributedHardware {
23 typedef enum {
24     SAMPLE_RATE_8000 = 8000,
25     SAMPLE_RATE_11025 = 11025,
26     SAMPLE_RATE_12000 = 12000,
27     SAMPLE_RATE_16000 = 16000,
28     SAMPLE_RATE_22050 = 22050,
29     SAMPLE_RATE_24000 = 24000,
30     SAMPLE_RATE_32000 = 32000,
31     SAMPLE_RATE_44100 = 44100,
32     SAMPLE_RATE_48000 = 48000,
33     SAMPLE_RATE_64000 = 64000,
34     SAMPLE_RATE_96000 = 96000
35 } AudioSampleRate;
36 
37 typedef enum {
38     SOURCE_TYPE_INVALID = -1,
39     SOURCE_TYPE_MIC,
40     SOURCE_TYPE_VOICE_CALL
41 } SourceType;
42 
43 typedef enum {
44     MONO = 1,
45     STEREO = 2
46 } AudioChannel;
47 
48 typedef enum {
49     SAMPLE_U8 = 0,
50     SAMPLE_S16LE = 1,
51     SAMPLE_S24LE = 2,
52     SAMPLE_S32LE = 3,
53     SAMPLE_F32LE = 4,
54     INVALID_WIDTH = -1
55 } AudioSampleFormat;
56 
57 typedef enum {
58     AUDIO_CODEC_AAC = 0,
59     AUDIO_CODEC_FLAC = 1
60 } AudioCodecType;
61 
62 typedef enum {
63     CONTENT_TYPE_UNKNOWN = 0,
64     CONTENT_TYPE_SPEECH = 1,
65     CONTENT_TYPE_MUSIC = 2,
66     CONTENT_TYPE_MOVIE = 3,
67     CONTENT_TYPE_SONIFICATION = 4,
68     CONTENT_TYPE_RINGTONE = 5
69 } ContentType;
70 
71 typedef enum {
72     STREAM_USAGE_UNKNOWN = 0,
73     STREAM_USAGE_MEDIA = 1,
74     STREAM_USAGE_VOICE_COMMUNICATION = 2,
75     STREAM_USAGE_VOICE_ASSISTANT = 4,
76     STREAM_USAGE_MMAP = 5,
77     STREAM_USAGE_NOTIFICATION_RINGTONE = 6
78 } StreamUsage;
79 
80 typedef enum {
81     NORMAL_MODE = 0,
82     MMAP_MODE = 1,
83 } PortOperationMode;
84 
85 typedef struct AudioCommonParam {
86     AudioSampleRate sampleRate = SAMPLE_RATE_8000;
87     AudioChannel channelMask = MONO;
88     AudioSampleFormat bitFormat = SAMPLE_U8;
89     AudioCodecType codecType = AUDIO_CODEC_AAC;
90     uint32_t frameSize = 0;
91 } AudioCommonParam;
92 
93 typedef struct AudioCaptureOptions {
94     SourceType sourceType = SOURCE_TYPE_INVALID;
95     PortOperationMode capturerFlags = NORMAL_MODE;
96 } AudioCaptureOptions;
97 
98 typedef struct AudioRenderOptions {
99     ContentType contentType = CONTENT_TYPE_UNKNOWN;
100     StreamUsage streamUsage = STREAM_USAGE_UNKNOWN;
101     PortOperationMode renderFlags = NORMAL_MODE;
102 } AudioRenderOptions;
103 
104 typedef struct AudioParamHDF {
105     AudioSampleRate sampleRate = SAMPLE_RATE_8000;
106     AudioChannel channelMask = MONO;
107     AudioSampleFormat bitFormat = SAMPLE_U8;
108     StreamUsage streamUsage = STREAM_USAGE_UNKNOWN;
109     uint32_t frameSize = 0;
110     uint32_t period = 0;
111     PortOperationMode renderFlags = NORMAL_MODE;
112     PortOperationMode capturerFlags = NORMAL_MODE;
113     std::string ext;
114 } AudioParamHDF;
115 
116 typedef struct {
117     AudioCommonParam comParam;
118     AudioCaptureOptions captureOpts;
119     AudioRenderOptions renderOpts;
120 } AudioParam;
121 
122 typedef enum {
123     STATE_UNKNOWN = -1,
124     STATE_CHANNEL_OPEN = 0,
125     STATE_CHANNEL_CLOSE = 1
126 } STATE;
127 
128 typedef enum {
129     CAP_UNKNOWN = 0,
130     CAP_SPK = 1,
131     CAP_MIC = 2,
132 } PortCapType;
133 
134 typedef struct {
135     int64_t tvSec;
136     int64_t tvNSec;
137 } CurrentTimeHDF;
138 } // namespace DistributedHardware
139 } // namespace OHOS
140 #endif // OHOS_DAUDIO_AUDIO_PARAM_H
141