150a07fd2Sopenharmony_ci/* 250a07fd2Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 350a07fd2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 450a07fd2Sopenharmony_ci * you may not use this file except in compliance with the License. 550a07fd2Sopenharmony_ci * You may obtain a copy of the License at 650a07fd2Sopenharmony_ci * 750a07fd2Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 850a07fd2Sopenharmony_ci * 950a07fd2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1050a07fd2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1150a07fd2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1250a07fd2Sopenharmony_ci * See the License for the specific language governing permissions and 1350a07fd2Sopenharmony_ci * limitations under the License. 1450a07fd2Sopenharmony_ci */ 1550a07fd2Sopenharmony_ci 1650a07fd2Sopenharmony_ci#ifndef OHOS_DAUDIO_AUDIO_PARAM_H 1750a07fd2Sopenharmony_ci#define OHOS_DAUDIO_AUDIO_PARAM_H 1850a07fd2Sopenharmony_ci 1950a07fd2Sopenharmony_ci#include <string> 2050a07fd2Sopenharmony_ci 2150a07fd2Sopenharmony_cinamespace OHOS { 2250a07fd2Sopenharmony_cinamespace DistributedHardware { 2350a07fd2Sopenharmony_citypedef enum { 2450a07fd2Sopenharmony_ci SAMPLE_RATE_8000 = 8000, 2550a07fd2Sopenharmony_ci SAMPLE_RATE_11025 = 11025, 2650a07fd2Sopenharmony_ci SAMPLE_RATE_12000 = 12000, 2750a07fd2Sopenharmony_ci SAMPLE_RATE_16000 = 16000, 2850a07fd2Sopenharmony_ci SAMPLE_RATE_22050 = 22050, 2950a07fd2Sopenharmony_ci SAMPLE_RATE_24000 = 24000, 3050a07fd2Sopenharmony_ci SAMPLE_RATE_32000 = 32000, 3150a07fd2Sopenharmony_ci SAMPLE_RATE_44100 = 44100, 3250a07fd2Sopenharmony_ci SAMPLE_RATE_48000 = 48000, 3350a07fd2Sopenharmony_ci SAMPLE_RATE_64000 = 64000, 3450a07fd2Sopenharmony_ci SAMPLE_RATE_96000 = 96000 3550a07fd2Sopenharmony_ci} AudioSampleRate; 3650a07fd2Sopenharmony_ci 3750a07fd2Sopenharmony_citypedef enum { 3850a07fd2Sopenharmony_ci SOURCE_TYPE_INVALID = -1, 3950a07fd2Sopenharmony_ci SOURCE_TYPE_MIC, 4050a07fd2Sopenharmony_ci SOURCE_TYPE_VOICE_CALL = 4, 4150a07fd2Sopenharmony_ci SOURCE_TYPE_VOICE_COMMUNICATION = 7 4250a07fd2Sopenharmony_ci} SourceType; 4350a07fd2Sopenharmony_ci 4450a07fd2Sopenharmony_citypedef enum { 4550a07fd2Sopenharmony_ci MONO = 1, 4650a07fd2Sopenharmony_ci STEREO = 2 4750a07fd2Sopenharmony_ci} AudioChannel; 4850a07fd2Sopenharmony_ci 4950a07fd2Sopenharmony_citypedef enum { 5050a07fd2Sopenharmony_ci SAMPLE_U8 = 0, 5150a07fd2Sopenharmony_ci SAMPLE_S16LE = 1, 5250a07fd2Sopenharmony_ci SAMPLE_S24LE = 2, 5350a07fd2Sopenharmony_ci SAMPLE_S32LE = 3, 5450a07fd2Sopenharmony_ci SAMPLE_F32LE = 4, 5550a07fd2Sopenharmony_ci INVALID_WIDTH = -1 5650a07fd2Sopenharmony_ci} AudioSampleFormat; 5750a07fd2Sopenharmony_ci 5850a07fd2Sopenharmony_citypedef enum { 5950a07fd2Sopenharmony_ci AUDIO_CODEC_AAC = 0, 6050a07fd2Sopenharmony_ci AUDIO_CODEC_FLAC = 1 6150a07fd2Sopenharmony_ci} AudioCodecType; 6250a07fd2Sopenharmony_ci 6350a07fd2Sopenharmony_citypedef enum { 6450a07fd2Sopenharmony_ci CONTENT_TYPE_UNKNOWN = 0, 6550a07fd2Sopenharmony_ci CONTENT_TYPE_SPEECH = 1, 6650a07fd2Sopenharmony_ci CONTENT_TYPE_MUSIC = 2, 6750a07fd2Sopenharmony_ci CONTENT_TYPE_MOVIE = 3, 6850a07fd2Sopenharmony_ci CONTENT_TYPE_SONIFICATION = 4, 6950a07fd2Sopenharmony_ci CONTENT_TYPE_RINGTONE = 5 7050a07fd2Sopenharmony_ci} ContentType; 7150a07fd2Sopenharmony_ci 7250a07fd2Sopenharmony_citypedef enum { 7350a07fd2Sopenharmony_ci STREAM_USAGE_UNKNOWN = 0, 7450a07fd2Sopenharmony_ci STREAM_USAGE_MEDIA = 1, 7550a07fd2Sopenharmony_ci STREAM_USAGE_VOICE_COMMUNICATION = 2, 7650a07fd2Sopenharmony_ci STREAM_USAGE_VOICE_ASSISTANT = 4, 7750a07fd2Sopenharmony_ci STREAM_USAGE_MMAP = 5, 7850a07fd2Sopenharmony_ci STREAM_USAGE_NOTIFICATION_RINGTONE = 6 7950a07fd2Sopenharmony_ci} StreamUsage; 8050a07fd2Sopenharmony_ci 8150a07fd2Sopenharmony_citypedef enum { 8250a07fd2Sopenharmony_ci NORMAL_MODE = 0, 8350a07fd2Sopenharmony_ci MMAP_MODE = 1, 8450a07fd2Sopenharmony_ci} PortOperationMode; 8550a07fd2Sopenharmony_ci 8650a07fd2Sopenharmony_citypedef struct AudioCommonParam { 8750a07fd2Sopenharmony_ci AudioSampleRate sampleRate = SAMPLE_RATE_8000; 8850a07fd2Sopenharmony_ci AudioChannel channelMask = MONO; 8950a07fd2Sopenharmony_ci AudioSampleFormat bitFormat = SAMPLE_U8; 9050a07fd2Sopenharmony_ci AudioCodecType codecType = AUDIO_CODEC_AAC; 9150a07fd2Sopenharmony_ci uint32_t frameSize = 0; 9250a07fd2Sopenharmony_ci} AudioCommonParam; 9350a07fd2Sopenharmony_ci 9450a07fd2Sopenharmony_citypedef struct AudioCaptureOptions { 9550a07fd2Sopenharmony_ci SourceType sourceType = SOURCE_TYPE_INVALID; 9650a07fd2Sopenharmony_ci PortOperationMode capturerFlags = NORMAL_MODE; 9750a07fd2Sopenharmony_ci} AudioCaptureOptions; 9850a07fd2Sopenharmony_ci 9950a07fd2Sopenharmony_citypedef struct AudioRenderOptions { 10050a07fd2Sopenharmony_ci ContentType contentType = CONTENT_TYPE_UNKNOWN; 10150a07fd2Sopenharmony_ci StreamUsage streamUsage = STREAM_USAGE_UNKNOWN; 10250a07fd2Sopenharmony_ci PortOperationMode renderFlags = NORMAL_MODE; 10350a07fd2Sopenharmony_ci} AudioRenderOptions; 10450a07fd2Sopenharmony_ci 10550a07fd2Sopenharmony_citypedef struct AudioParamHDF { 10650a07fd2Sopenharmony_ci AudioSampleRate sampleRate = SAMPLE_RATE_8000; 10750a07fd2Sopenharmony_ci AudioChannel channelMask = MONO; 10850a07fd2Sopenharmony_ci AudioSampleFormat bitFormat = SAMPLE_U8; 10950a07fd2Sopenharmony_ci StreamUsage streamUsage = STREAM_USAGE_UNKNOWN; 11050a07fd2Sopenharmony_ci uint32_t frameSize = 0; 11150a07fd2Sopenharmony_ci uint32_t period = 0; 11250a07fd2Sopenharmony_ci PortOperationMode renderFlags = NORMAL_MODE; 11350a07fd2Sopenharmony_ci PortOperationMode capturerFlags = NORMAL_MODE; 11450a07fd2Sopenharmony_ci std::string ext; 11550a07fd2Sopenharmony_ci} AudioParamHDF; 11650a07fd2Sopenharmony_ci 11750a07fd2Sopenharmony_citypedef struct { 11850a07fd2Sopenharmony_ci AudioCommonParam comParam; 11950a07fd2Sopenharmony_ci AudioCaptureOptions captureOpts; 12050a07fd2Sopenharmony_ci AudioRenderOptions renderOpts; 12150a07fd2Sopenharmony_ci} AudioParam; 12250a07fd2Sopenharmony_ci 12350a07fd2Sopenharmony_citypedef enum { 12450a07fd2Sopenharmony_ci STATE_UNKNOWN = -1, 12550a07fd2Sopenharmony_ci STATE_CHANNEL_OPEN = 0, 12650a07fd2Sopenharmony_ci STATE_CHANNEL_CLOSE = 1 12750a07fd2Sopenharmony_ci} STATE; 12850a07fd2Sopenharmony_ci 12950a07fd2Sopenharmony_citypedef enum { 13050a07fd2Sopenharmony_ci CAP_UNKNOWN = 0, 13150a07fd2Sopenharmony_ci CAP_SPK = 1, 13250a07fd2Sopenharmony_ci CAP_MIC = 2, 13350a07fd2Sopenharmony_ci} PortCapType; 13450a07fd2Sopenharmony_ci 13550a07fd2Sopenharmony_citypedef struct { 13650a07fd2Sopenharmony_ci int64_t tvSec; 13750a07fd2Sopenharmony_ci int64_t tvNSec; 13850a07fd2Sopenharmony_ci} CurrentTimeHDF; 13950a07fd2Sopenharmony_ci 14050a07fd2Sopenharmony_citypedef enum { 14150a07fd2Sopenharmony_ci REF, 14250a07fd2Sopenharmony_ci MIC1, 14350a07fd2Sopenharmony_ci} StreamType; 14450a07fd2Sopenharmony_ci} // namespace DistributedHardware 14550a07fd2Sopenharmony_ci} // namespace OHOS 14650a07fd2Sopenharmony_ci#endif // OHOS_DAUDIO_AUDIO_PARAM_H 147