1/*
2 * Copyright (c) 2022-2023 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_CONSTANTS_H
17#define OHOS_DAUDIO_CONSTANTS_H
18
19#include <cstdint>
20#include <string>
21#include <unistd.h>
22
23namespace OHOS {
24namespace DistributedHardware {
25/* Audio package name */
26const std::string PKG_NAME = "ohos.dhardware.daudio";
27/* Audio data session name */
28const std::string DATA_SPEAKER_SESSION_NAME = "ohos.dhardware.daudio.speakerdata";
29const std::string DATA_MIC_SESSION_NAME = "ohos.dhardware.daudio.micdata";
30/* Audio ctrl session name */
31const std::string CTRL_SESSION_NAME = "ohos.dhardware.daudio.ctrl";
32
33constexpr int32_t DEFAULT_AUDIO_DATA_SIZE = 4096;
34
35constexpr int32_t DELETE_POINT_POS = 4;
36constexpr int32_t DELETE_CPP_LEN = 4;
37constexpr int32_t CHANNEL_WAIT_SECONDS = 5;
38constexpr int32_t LOG_MAX_LEN = 4096;
39constexpr int32_t DISTRIBUTED_HARDWARE_AUDIO_SOURCE_SA_ID = 4805;
40constexpr int32_t DISTRIBUTED_HARDWARE_AUDIO_SINK_SA_ID = 4806;
41constexpr int32_t AUDIO_LOADSA_TIMEOUT_MS = 10000;
42constexpr int32_t AUDIO_SET_HISTREAMER_BIT_RATE = 1536000;
43
44constexpr int32_t AUDIO_DEVICE_TYPE_UNKNOWN = 0;
45constexpr int32_t AUDIO_DEVICE_TYPE_SPEAKER = 1;
46constexpr int32_t AUDIO_DEVICE_TYPE_MIC = 2;
47
48constexpr int32_t PIN_OUT_SPEAKER = 1;
49constexpr int32_t PIN_OUT_DAUDIO_DEFAULT = 1 << 7;
50constexpr int32_t PIN_IN_DAUDIO_DEFAULT = 1 << 27 | 1 << 5;
51constexpr int32_t PIN_IN_MIC = 1 << 27 | 1 << 0;
52
53constexpr int32_t NONE_ITEM = 0;
54constexpr int32_t SINGLE_ITEM = 1;
55constexpr int32_t MAX_EVENT_TYPE_NUM = 100;
56
57constexpr uint32_t SAMPLE_RATE_DEFAULT = 48000;
58constexpr uint32_t CHANNEL_COUNT_DEFAULT = 2;
59constexpr uint32_t SAMPLE_FORMAT_DEFAULT = 1;
60
61constexpr uint32_t STR_TERM_LEN = 1;
62constexpr uint32_t DAUDIO_MAX_SESSION_NAME_LEN = 50;
63constexpr uint32_t DAUDIO_MAX_DEVICE_ID_LEN = 100;
64constexpr uint32_t DAUDIO_MAX_TASKQUEUE_LEN = 100;
65constexpr uint32_t DAUDIO_MAX_RECV_DATA_LEN = 104857600;
66constexpr uint32_t DAUDIO_MAX_JSON_LEN = 1024;
67
68static constexpr int64_t AUDIO_OFFSET_FRAME_NUM = 10;
69static constexpr int64_t LOW_LATENCY_CLIENT_INTERVAL_NS = 20000000;
70static constexpr int64_t MAX_TIME_INTERVAL_US = 23000;
71
72static constexpr int32_t LOW_LATENCY_RENDER_ID = 1 << 1 | 1 << 0;
73static constexpr int32_t DEFAULT_RENDER_ID = 1;
74static constexpr int32_t DEFAULT_CAPTURE_ID = 1 << 27 | 1 << 0;
75
76const std::string DAUDIO_LOG_TITLE_TAG = "DAUDIO";
77const std::string DAUDIO_PREFIX = "DISTRIBUTED_AUDIO";
78const std::string AUDIO_PREFIX = "AUDIO";
79const std::string SEPERATOR = "#";
80const std::string SUPPORTED_SAMPLE_RATE = "supportedSampleRate";
81const std::string SUPPORTED_FORMATS = "supportedFormats";
82const std::string SUPPORTED_CHANNEL_MAX = "supportedChannelMax";
83const std::string SUPPORTED_CHANNEL_MIN = "supportedChannelMin";
84const std::string SUPPORTED_BITRATE_MAX = "supportedBirteMax";
85const std::string SUPPORTED_BITRATE_MIN = "supportedBirteMin";
86const std::string MINE_TYPE = "mineType";
87const std::string AVENC_AAC = "avenc_aac";
88const std::string NAME = "name";
89const std::string KEY_CODECTYPE = "codecType";
90const std::string KEY_DEVICE_TYPE = "deviceType";
91
92const std::string KEY_HISTREAMER_AUDIO_ENCODER = "histmAudEnc";
93const std::string KEY_HISTREAMER_AUDIO_DECODER = "histmAudDec";
94
95const std::string HDF_EVENT_RESULT_SUCCESS = "DH_SUCCESS";
96const std::string HDF_EVENT_INIT_ENGINE_FAILED = "ERR_DH_AUDIO_INIT_ENGINE_FAILED";
97const std::string HDF_EVENT_NOTIFY_SINK_FAILED = "ERR_DH_AUDIO_NOTIFY_SINK_FAILED";
98const std::string HDF_EVENT_TRANS_SETUP_FAILED = "ERR_DH_AUDIO_TRANS_SETUP_FAILED";
99const std::string HDF_EVENT_TRANS_START_FAILED = "ERR_DH_AUDIO_TRANS_START_FAILED";
100const std::string HDF_EVENT_RESULT_FAILED = "DH_FAILED";
101
102const std::string STREAM_MUTE_STATUS = "STREAM_MUTE_STATUS";
103const std::string AUDIO_VOLUME_TYPE = "AUDIO_VOLUME_TYPE";
104const std::string VOLUME_LEVEL = "VOLUME_LEVEL";
105
106const std::string AUDIO_EVENT_RESTART = "restart";
107const std::string AUDIO_EVENT_PAUSE = "pause";
108
109const std::string AUDIO_ENGINE_FLAG = "persist.distributedhardware.distributedaudio.engine.enable";
110const std::string KEY_TYPE_META = "meta";
111const std::string KEY_TYPE_FULL = "full";
112
113constexpr const char *KEY_TYPE = "type";
114constexpr const char *KEY_CHANGE_TYPE = "ChangeType";
115constexpr const char *KEY_EVENT_CONTENT = "content";
116constexpr const char *KEY_DH_ID = "dhId";
117constexpr const char *KEY_DEV_ID = "devId";
118constexpr const char *KEY_VERSION = "version";
119constexpr const char *KEY_REQID = "reqId";
120constexpr const char *KEY_RESULT = "result";
121constexpr const char *KEY_EVENT_TYPE = "eventType";
122constexpr const char *KEY_AUDIO_PARAM = "audioParam";
123constexpr const char *KEY_ATTRS = "attrs";
124constexpr const char *KEY_RANDOM_TASK_CODE = "randomTaskCode";
125
126constexpr const char *KEY_SAMPLING_RATE = "samplingRate";
127constexpr const char *KEY_CHANNELS = "channels";
128constexpr const char *KEY_FORMAT = "format";
129constexpr const char *KEY_FRAMESIZE = "frameSize";
130constexpr const char *KEY_SOURCE_TYPE = "sourceType";
131constexpr const char *KEY_CONTENT_TYPE = "contentType";
132constexpr const char *KEY_STREAM_USAGE = "streamUsage";
133constexpr const char *KEY_RENDER_FLAGS = "renderFlags";
134constexpr const char *KEY_CAPTURE_FLAGS = "capturerFlags";
135
136constexpr const char *AUDIO_STREAM_TYPE = "AUDIO_STREAM_TYPE";
137constexpr const char *IS_UPDATEUI = "IS_UPDATEUI";
138constexpr const char *VOLUME_CHANAGE = "VOLUME_CHANAGE";
139constexpr const char *FIRST_VOLUME_CHANAGE = "FIRST_VOLUME_CHANAGE";
140constexpr const char *INTERRUPT_EVENT = "INTERRUPT_EVENT";
141constexpr const char *FORCE_TYPE = "FORCE_TYPE";
142constexpr const char *HINT_TYPE = "HINT_TYPE";
143constexpr const char *RENDER_STATE_CHANGE_EVENT = "RENDER_STATE_CHANGE_EVENT";
144constexpr const char *KEY_STATE = "STATE";
145constexpr const char *MAX_VOLUME_LEVEL = "MAX_VOLUME_LEVEL";
146constexpr const char *MIN_VOLUME_LEVEL = "MIN_VOLUME_LEVEL";
147constexpr const char *VOLUME_GROUP_ID = "VOLUME_GROUP_ID";
148constexpr const char *VOLUME_EVENT_TYPE = "EVENT_TYPE";
149constexpr const char *KEY_DATATYPE = "dataType";
150constexpr const char *INTERRUPT_GROUP_ID = "INTERRUPT_GROUP_ID";
151
152const std::string DUMP_FILE_PATH = "/data/data/daudio";
153const std::string AUDIO_PERMISSION_NAME = "ohos.permission.ENABLE_DISTRIBUTED_HARDWARE";
154} // namespace DistributedHardware
155} // namespace OHOS
156#endif // OHOS_DAUDIO_CONSTANTS_H
157