17777dab0Sopenharmony_ci/*
27777dab0Sopenharmony_ci * Copyright (C) 2023 Huawei Device Co., Ltd.
37777dab0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47777dab0Sopenharmony_ci * you may not use this file except in compliance with the License.
57777dab0Sopenharmony_ci * You may obtain a copy of the License at
67777dab0Sopenharmony_ci *
77777dab0Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87777dab0Sopenharmony_ci *
97777dab0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107777dab0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117777dab0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127777dab0Sopenharmony_ci * See the License for the specific language governing permissions and
137777dab0Sopenharmony_ci * limitations under the License.
147777dab0Sopenharmony_ci */
157777dab0Sopenharmony_ci
167777dab0Sopenharmony_ci/**
177777dab0Sopenharmony_ci * @addtogroup MediaFoundation
187777dab0Sopenharmony_ci * @{
197777dab0Sopenharmony_ci *
207777dab0Sopenharmony_ci * @brief Provides APIs for media foundation.
217777dab0Sopenharmony_ci *
227777dab0Sopenharmony_ci * @since 11
237777dab0Sopenharmony_ci */
247777dab0Sopenharmony_ci
257777dab0Sopenharmony_ci/**
267777dab0Sopenharmony_ci * @file native_audio_channel_layout.h
277777dab0Sopenharmony_ci *
287777dab0Sopenharmony_ci * @brief The channel layout indicates the appearance and order of the speakers for recording or playback.
297777dab0Sopenharmony_ci *
307777dab0Sopenharmony_ci * @kit AVCodecKit
317777dab0Sopenharmony_ci * @library NA
327777dab0Sopenharmony_ci * @syscap SystemCapability.Multimedia.Media.Core
337777dab0Sopenharmony_ci * @since 11
347777dab0Sopenharmony_ci */
357777dab0Sopenharmony_ci
367777dab0Sopenharmony_ci#ifndef NATIVE_AUDIO_CHANNEL_LAYOUT_H
377777dab0Sopenharmony_ci#define NATIVE_AUDIO_CHANNEL_LAYOUT_H
387777dab0Sopenharmony_ci
397777dab0Sopenharmony_ci#include <stdint.h>
407777dab0Sopenharmony_ci
417777dab0Sopenharmony_ci#ifdef __cplusplus
427777dab0Sopenharmony_ciextern "C" {
437777dab0Sopenharmony_ci#endif
447777dab0Sopenharmony_ci
457777dab0Sopenharmony_ci/**
467777dab0Sopenharmony_ci * @brief Audio Channel Set
477777dab0Sopenharmony_ci *
487777dab0Sopenharmony_ci * A 64-bit integer with bits set for each channel.
497777dab0Sopenharmony_ci * @syscap SystemCapability.Multimedia.Media.Core
507777dab0Sopenharmony_ci * @since 11
517777dab0Sopenharmony_ci */
527777dab0Sopenharmony_citypedef enum OH_AudioChannelSet {
537777dab0Sopenharmony_ci    /** Channel set For FRONT-LEFT position */
547777dab0Sopenharmony_ci    CH_SET_FRONT_LEFT = 1ULL << 0U,
557777dab0Sopenharmony_ci
567777dab0Sopenharmony_ci    /** Channel set For FRONT_RIGHT position */
577777dab0Sopenharmony_ci    CH_SET_FRONT_RIGHT = 1ULL << 1U,
587777dab0Sopenharmony_ci
597777dab0Sopenharmony_ci    /** Channel set For FRONT_CENTER position */
607777dab0Sopenharmony_ci    CH_SET_FRONT_CENTER = 1ULL << 2U,
617777dab0Sopenharmony_ci
627777dab0Sopenharmony_ci    /** Channel set For LOW_FREQUENCY position */
637777dab0Sopenharmony_ci    CH_SET_LOW_FREQUENCY = 1ULL << 3U,
647777dab0Sopenharmony_ci
657777dab0Sopenharmony_ci    /** Channel set For BACK_LEFT position */
667777dab0Sopenharmony_ci    CH_SET_BACK_LEFT = 1ULL << 4U,
677777dab0Sopenharmony_ci
687777dab0Sopenharmony_ci    /** Channel set For BACK_RIGHT position */
697777dab0Sopenharmony_ci    CH_SET_BACK_RIGHT = 1ULL << 5U,
707777dab0Sopenharmony_ci
717777dab0Sopenharmony_ci    /** Channel set For FRONT_LEFT_OF_CENTER position */
727777dab0Sopenharmony_ci    CH_SET_FRONT_LEFT_OF_CENTER = 1ULL << 6U,
737777dab0Sopenharmony_ci
747777dab0Sopenharmony_ci    /** Channel set For FRONT_RIGHT_OF_CENTER position */
757777dab0Sopenharmony_ci    CH_SET_FRONT_RIGHT_OF_CENTER = 1ULL << 7U,
767777dab0Sopenharmony_ci
777777dab0Sopenharmony_ci    /** Channel set For BACK_CENTER position */
787777dab0Sopenharmony_ci    CH_SET_BACK_CENTER = 1ULL << 8U,
797777dab0Sopenharmony_ci
807777dab0Sopenharmony_ci    /** Channel set For SIDE_LEFT position */
817777dab0Sopenharmony_ci    CH_SET_SIDE_LEFT = 1ULL << 9U,
827777dab0Sopenharmony_ci
837777dab0Sopenharmony_ci    /** Channel set For SIDE_RIGHT position */
847777dab0Sopenharmony_ci    CH_SET_SIDE_RIGHT = 1ULL << 10U,
857777dab0Sopenharmony_ci
867777dab0Sopenharmony_ci    /** Channel set For TOP_CENTER position */
877777dab0Sopenharmony_ci    CH_SET_TOP_CENTER = 1ULL << 11U,
887777dab0Sopenharmony_ci
897777dab0Sopenharmony_ci    /** Channel set For TOP_FRONT_LEFT position */
907777dab0Sopenharmony_ci    CH_SET_TOP_FRONT_LEFT = 1ULL << 12U,
917777dab0Sopenharmony_ci
927777dab0Sopenharmony_ci    /** Channel set For TOP_FRONT_CENTER position */
937777dab0Sopenharmony_ci    CH_SET_TOP_FRONT_CENTER = 1ULL << 13U,
947777dab0Sopenharmony_ci
957777dab0Sopenharmony_ci    /** Channel set For TOP_FRONT_RIGHT position */
967777dab0Sopenharmony_ci    CH_SET_TOP_FRONT_RIGHT = 1ULL << 14U,
977777dab0Sopenharmony_ci
987777dab0Sopenharmony_ci    /** Channel set For TOP_BACK_LEFT position */
997777dab0Sopenharmony_ci    CH_SET_TOP_BACK_LEFT = 1ULL << 15U,
1007777dab0Sopenharmony_ci
1017777dab0Sopenharmony_ci    /** Channel set For TOP_BACK_CENTER position */
1027777dab0Sopenharmony_ci    CH_SET_TOP_BACK_CENTER = 1ULL << 16U,
1037777dab0Sopenharmony_ci
1047777dab0Sopenharmony_ci    /** Channel set For TOP_BACK_RIGHT position */
1057777dab0Sopenharmony_ci    CH_SET_TOP_BACK_RIGHT = 1ULL << 17U,
1067777dab0Sopenharmony_ci
1077777dab0Sopenharmony_ci    /** Channel set For STEREO_LEFT position */
1087777dab0Sopenharmony_ci    CH_SET_STEREO_LEFT = 1ULL << 29U,
1097777dab0Sopenharmony_ci
1107777dab0Sopenharmony_ci    /** Channel set For STEREO_RIGHT position */
1117777dab0Sopenharmony_ci    CH_SET_STEREO_RIGHT = 1ULL << 30U,
1127777dab0Sopenharmony_ci
1137777dab0Sopenharmony_ci    /** Channel set For WIDE_LEFT position */
1147777dab0Sopenharmony_ci    CH_SET_WIDE_LEFT = 1ULL << 31U,
1157777dab0Sopenharmony_ci
1167777dab0Sopenharmony_ci    /** Channel set For WIDE_RIGHT position */
1177777dab0Sopenharmony_ci    CH_SET_WIDE_RIGHT = 1ULL << 32U,
1187777dab0Sopenharmony_ci
1197777dab0Sopenharmony_ci    /** Channel set For SURROUND_DIRECT_LEFT position */
1207777dab0Sopenharmony_ci    CH_SET_SURROUND_DIRECT_LEFT = 1ULL << 33U,
1217777dab0Sopenharmony_ci
1227777dab0Sopenharmony_ci    /** Channel set For SURROUND_DIRECT_RIGHT position */
1237777dab0Sopenharmony_ci    CH_SET_SURROUND_DIRECT_RIGHT = 1ULL << 34U,
1247777dab0Sopenharmony_ci
1257777dab0Sopenharmony_ci    /** Channel set For LOW_FREQUENCY_2 position */
1267777dab0Sopenharmony_ci    CH_SET_LOW_FREQUENCY_2 = 1ULL << 35U,
1277777dab0Sopenharmony_ci
1287777dab0Sopenharmony_ci    /** Channel set For TOP_SIDE_LEFT position */
1297777dab0Sopenharmony_ci    CH_SET_TOP_SIDE_LEFT = 1ULL << 36U,
1307777dab0Sopenharmony_ci
1317777dab0Sopenharmony_ci    /** Channel set For TOP_SIDE_RIGHT position */
1327777dab0Sopenharmony_ci    CH_SET_TOP_SIDE_RIGHT = 1ULL << 37U,
1337777dab0Sopenharmony_ci
1347777dab0Sopenharmony_ci    /** Channel set For BOTTOM_FRONT_CENTER position */
1357777dab0Sopenharmony_ci    CH_SET_BOTTOM_FRONT_CENTER = 1ULL << 38U,
1367777dab0Sopenharmony_ci
1377777dab0Sopenharmony_ci    /** Channel set For BOTTOM_FRONT_LEFT position */
1387777dab0Sopenharmony_ci    CH_SET_BOTTOM_FRONT_LEFT = 1ULL << 39U,
1397777dab0Sopenharmony_ci
1407777dab0Sopenharmony_ci    /** Channel set For BOTTOM_FRONT_RIGHT position */
1417777dab0Sopenharmony_ci    CH_SET_BOTTOM_FRONT_RIGHT = 1ULL << 40U
1427777dab0Sopenharmony_ci} OH_AudioChannelSet;
1437777dab0Sopenharmony_ci
1447777dab0Sopenharmony_ci/**
1457777dab0Sopenharmony_ci * @brief Ambisonic attribute set.
1467777dab0Sopenharmony_ci *
1477777dab0Sopenharmony_ci * A set of 64-bit integers indicate the ambisonic attributes.
1487777dab0Sopenharmony_ci * @syscap SystemCapability.Multimedia.Media.Core
1497777dab0Sopenharmony_ci * @since 11
1507777dab0Sopenharmony_ci */
1517777dab0Sopenharmony_citypedef enum OH_AmbAttributeSet {
1527777dab0Sopenharmony_ci    /** Ambisonic attribute: order 1 */
1537777dab0Sopenharmony_ci    AMB_ORD_1 = 1ULL << 0U,
1547777dab0Sopenharmony_ci
1557777dab0Sopenharmony_ci    /** Ambisonic attribute: order 2 */
1567777dab0Sopenharmony_ci    AMB_ORD_2 = 2ULL << 0U,
1577777dab0Sopenharmony_ci
1587777dab0Sopenharmony_ci    /** Ambisonic attribute: order 3 */
1597777dab0Sopenharmony_ci    AMB_ORD_3 = 3ULL << 0U,
1607777dab0Sopenharmony_ci
1617777dab0Sopenharmony_ci    /** Ambisonic attribute: ACN Component Ordering */
1627777dab0Sopenharmony_ci    AMB_COM_ACN = 0ULL << 8U,
1637777dab0Sopenharmony_ci
1647777dab0Sopenharmony_ci    /** Ambisonic attribute: FUMA Component Ordering */
1657777dab0Sopenharmony_ci    AMB_COM_FUMA = 1ULL << 8U,
1667777dab0Sopenharmony_ci
1677777dab0Sopenharmony_ci    /** Ambisonic attribute: N3D Normalization */
1687777dab0Sopenharmony_ci    AMB_NOR_N3D = 0ULL << 12U,
1697777dab0Sopenharmony_ci
1707777dab0Sopenharmony_ci    /** Ambisonic attribute: SN3D Normalization */
1717777dab0Sopenharmony_ci    AMB_NOR_SN3D = 1ULL << 12U,
1727777dab0Sopenharmony_ci
1737777dab0Sopenharmony_ci    /** Channel layout: Ambisonic mode */
1747777dab0Sopenharmony_ci    AMB_MODE = 1ULL << 44U
1757777dab0Sopenharmony_ci} OH_AmbAttributeSet;
1767777dab0Sopenharmony_ci
1777777dab0Sopenharmony_ci/**
1787777dab0Sopenharmony_ci * @brief Audio Channel Layout
1797777dab0Sopenharmony_ci *
1807777dab0Sopenharmony_ci * A 64-bit integer indicates that the appearance and order of the speakers for recording or playback.
1817777dab0Sopenharmony_ci * @syscap SystemCapability.Multimedia.Media.Core
1827777dab0Sopenharmony_ci * @since 11
1837777dab0Sopenharmony_ci */
1847777dab0Sopenharmony_citypedef enum OH_AudioChannelLayout {
1857777dab0Sopenharmony_ci    /** Unknown Channel Layout */
1867777dab0Sopenharmony_ci    CH_LAYOUT_UNKNOWN = 0ULL,
1877777dab0Sopenharmony_ci
1887777dab0Sopenharmony_ci    /** Channel Layout For Mono, 1 channel in total */
1897777dab0Sopenharmony_ci    CH_LAYOUT_MONO = CH_SET_FRONT_CENTER,
1907777dab0Sopenharmony_ci
1917777dab0Sopenharmony_ci    /** Channel Layout For Stereo, 2 channels in total */
1927777dab0Sopenharmony_ci    CH_LAYOUT_STEREO = CH_SET_FRONT_LEFT | CH_SET_FRONT_RIGHT,
1937777dab0Sopenharmony_ci
1947777dab0Sopenharmony_ci    /** Channel Layout For Stereo-Downmix, 2 channels in total */
1957777dab0Sopenharmony_ci    CH_LAYOUT_STEREO_DOWNMIX = CH_SET_STEREO_LEFT | CH_SET_STEREO_RIGHT,
1967777dab0Sopenharmony_ci
1977777dab0Sopenharmony_ci    /** Channel Layout For 2.1, 3 channels in total */
1987777dab0Sopenharmony_ci    CH_LAYOUT_2POINT1 = CH_LAYOUT_STEREO | CH_SET_LOW_FREQUENCY,
1997777dab0Sopenharmony_ci
2007777dab0Sopenharmony_ci    /** Channel Layout For 3.0, 3 channels in total */
2017777dab0Sopenharmony_ci    CH_LAYOUT_3POINT0 = CH_LAYOUT_STEREO | CH_SET_BACK_CENTER,
2027777dab0Sopenharmony_ci
2037777dab0Sopenharmony_ci    /** Channel Layout For Surround, 3 channels in total */
2047777dab0Sopenharmony_ci    CH_LAYOUT_SURROUND = CH_LAYOUT_STEREO | CH_SET_FRONT_CENTER,
2057777dab0Sopenharmony_ci
2067777dab0Sopenharmony_ci    /** Channel Layout For 3.1, 4 channels in total */
2077777dab0Sopenharmony_ci    CH_LAYOUT_3POINT1 = CH_LAYOUT_SURROUND | CH_SET_LOW_FREQUENCY,
2087777dab0Sopenharmony_ci
2097777dab0Sopenharmony_ci    /** Channel Layout For 4.0, 4 channels in total */
2107777dab0Sopenharmony_ci    CH_LAYOUT_4POINT0 = CH_LAYOUT_SURROUND | CH_SET_BACK_CENTER,
2117777dab0Sopenharmony_ci
2127777dab0Sopenharmony_ci    /** Channel Layout For Quad-Side, 4 channels in total */
2137777dab0Sopenharmony_ci    CH_LAYOUT_QUAD_SIDE = CH_LAYOUT_STEREO | CH_SET_SIDE_LEFT | CH_SET_SIDE_RIGHT,
2147777dab0Sopenharmony_ci
2157777dab0Sopenharmony_ci    /** Channel Layout For Quad, 4 channels in total */
2167777dab0Sopenharmony_ci    CH_LAYOUT_QUAD = CH_LAYOUT_STEREO | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
2177777dab0Sopenharmony_ci
2187777dab0Sopenharmony_ci    /** Channel Layout For 2.0.2, 4 channels in total */
2197777dab0Sopenharmony_ci    CH_LAYOUT_2POINT0POINT2 = CH_LAYOUT_STEREO | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
2207777dab0Sopenharmony_ci
2217777dab0Sopenharmony_ci    /** Channel Layout For ORDER1-ACN-N3D First Order Ambisonic(FOA), 4 channels in total */
2227777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER1_ACN_N3D = AMB_MODE | AMB_ORD_1 | AMB_COM_ACN | AMB_NOR_N3D,
2237777dab0Sopenharmony_ci
2247777dab0Sopenharmony_ci    /** Channel Layout For ORDER1-ACN-SN3D FOA, 4 channels in total */
2257777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER1_ACN_SN3D = AMB_MODE | AMB_ORD_1 | AMB_COM_ACN | AMB_NOR_SN3D,
2267777dab0Sopenharmony_ci
2277777dab0Sopenharmony_ci    /** Channel Layout For ORDER1-FUMA FOA, 4 channels in total */
2287777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER1_FUMA = AMB_MODE | AMB_ORD_1 | AMB_COM_FUMA,
2297777dab0Sopenharmony_ci
2307777dab0Sopenharmony_ci    /** Channel Layout For 4.1, 5 channels in total */
2317777dab0Sopenharmony_ci    CH_LAYOUT_4POINT1 = CH_LAYOUT_4POINT0 | CH_SET_LOW_FREQUENCY,
2327777dab0Sopenharmony_ci
2337777dab0Sopenharmony_ci    /** Channel Layout For 5.0, 5 channels in total */
2347777dab0Sopenharmony_ci    CH_LAYOUT_5POINT0 = CH_LAYOUT_SURROUND | CH_SET_SIDE_LEFT | CH_SET_SIDE_RIGHT,
2357777dab0Sopenharmony_ci
2367777dab0Sopenharmony_ci    /** Channel Layout For 5.0-Back, 5 channels in total */
2377777dab0Sopenharmony_ci    CH_LAYOUT_5POINT0_BACK = CH_LAYOUT_SURROUND | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
2387777dab0Sopenharmony_ci
2397777dab0Sopenharmony_ci    /** Channel Layout For 2.1.2, 5 channels in total */
2407777dab0Sopenharmony_ci    CH_LAYOUT_2POINT1POINT2 = CH_LAYOUT_2POINT0POINT2 | CH_SET_LOW_FREQUENCY,
2417777dab0Sopenharmony_ci
2427777dab0Sopenharmony_ci    /** Channel Layout For 3.0.2, 5 channels in total */
2437777dab0Sopenharmony_ci    CH_LAYOUT_3POINT0POINT2 = CH_LAYOUT_2POINT0POINT2 | CH_SET_FRONT_CENTER,
2447777dab0Sopenharmony_ci
2457777dab0Sopenharmony_ci    /** Channel Layout For 5.1, 6 channels in total */
2467777dab0Sopenharmony_ci    CH_LAYOUT_5POINT1 = CH_LAYOUT_5POINT0 | CH_SET_LOW_FREQUENCY,
2477777dab0Sopenharmony_ci
2487777dab0Sopenharmony_ci    /** Channel Layout For 5.1-Back, 6 channels in total */
2497777dab0Sopenharmony_ci    CH_LAYOUT_5POINT1_BACK = CH_LAYOUT_5POINT0_BACK | CH_SET_LOW_FREQUENCY,
2507777dab0Sopenharmony_ci
2517777dab0Sopenharmony_ci    /** Channel Layout For 6.0, 6 channels in total */
2527777dab0Sopenharmony_ci    CH_LAYOUT_6POINT0 = CH_LAYOUT_5POINT0 | CH_SET_BACK_CENTER,
2537777dab0Sopenharmony_ci
2547777dab0Sopenharmony_ci    /** Channel Layout For 3.1.2, 6 channels in total */
2557777dab0Sopenharmony_ci    CH_LAYOUT_3POINT1POINT2 = CH_LAYOUT_3POINT1 | CH_SET_TOP_FRONT_LEFT | CH_SET_TOP_FRONT_RIGHT,
2567777dab0Sopenharmony_ci
2577777dab0Sopenharmony_ci    /** Channel Layout For 6.0-Front, 6 channels in total */
2587777dab0Sopenharmony_ci    CH_LAYOUT_6POINT0_FRONT = CH_LAYOUT_QUAD_SIDE | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
2597777dab0Sopenharmony_ci
2607777dab0Sopenharmony_ci    /** Channel Layout For Hexagonal, 6 channels in total */
2617777dab0Sopenharmony_ci    CH_LAYOUT_HEXAGONAL = CH_LAYOUT_5POINT0_BACK | CH_SET_BACK_CENTER,
2627777dab0Sopenharmony_ci
2637777dab0Sopenharmony_ci    /** Channel Layout For 6.1, 7 channels in total */
2647777dab0Sopenharmony_ci    CH_LAYOUT_6POINT1 = CH_LAYOUT_5POINT1 | CH_SET_BACK_CENTER,
2657777dab0Sopenharmony_ci
2667777dab0Sopenharmony_ci    /** Channel Layout For 6.1-Back, 7 channels in total */
2677777dab0Sopenharmony_ci    CH_LAYOUT_6POINT1_BACK = CH_LAYOUT_5POINT1_BACK | CH_SET_BACK_CENTER,
2687777dab0Sopenharmony_ci
2697777dab0Sopenharmony_ci    /** Channel Layout For 6.1-Front, 7 channels in total */
2707777dab0Sopenharmony_ci    CH_LAYOUT_6POINT1_FRONT = CH_LAYOUT_6POINT0_FRONT | CH_SET_LOW_FREQUENCY,
2717777dab0Sopenharmony_ci
2727777dab0Sopenharmony_ci    /** Channel Layout For 7.0, 7 channels in total */
2737777dab0Sopenharmony_ci    CH_LAYOUT_7POINT0 = CH_LAYOUT_5POINT0 | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
2747777dab0Sopenharmony_ci
2757777dab0Sopenharmony_ci    /** Channel Layout For 7.0-Front, 7 channels in total */
2767777dab0Sopenharmony_ci    CH_LAYOUT_7POINT0_FRONT = CH_LAYOUT_5POINT0 | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
2777777dab0Sopenharmony_ci
2787777dab0Sopenharmony_ci    /** Channel Layout For 7.1, 8 channels in total */
2797777dab0Sopenharmony_ci    CH_LAYOUT_7POINT1 = CH_LAYOUT_5POINT1 | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT,
2807777dab0Sopenharmony_ci
2817777dab0Sopenharmony_ci    /** Channel Layout For Octagonal, 8 channels in total */
2827777dab0Sopenharmony_ci    CH_LAYOUT_OCTAGONAL = CH_LAYOUT_5POINT0 | CH_SET_BACK_LEFT | CH_SET_BACK_CENTER | CH_SET_BACK_RIGHT,
2837777dab0Sopenharmony_ci
2847777dab0Sopenharmony_ci    /** Channel Layout For 5.1.2, 8 channels in total */
2857777dab0Sopenharmony_ci    CH_LAYOUT_5POINT1POINT2 = CH_LAYOUT_5POINT1 | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
2867777dab0Sopenharmony_ci
2877777dab0Sopenharmony_ci    /** Channel Layout For 7.1-Wide, 8 channels in total */
2887777dab0Sopenharmony_ci    CH_LAYOUT_7POINT1_WIDE = CH_LAYOUT_5POINT1 | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
2897777dab0Sopenharmony_ci
2907777dab0Sopenharmony_ci    /** Channel Layout For 7.1-Wide-Back, 8 channels in total */
2917777dab0Sopenharmony_ci    CH_LAYOUT_7POINT1_WIDE_BACK = CH_LAYOUT_5POINT1_BACK | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER,
2927777dab0Sopenharmony_ci
2937777dab0Sopenharmony_ci    /** Channel Layout For ORDER2-ACN-N3D Higher Order Ambisonics(HOA), 9 channels in total */
2947777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER2_ACN_N3D = AMB_MODE | AMB_ORD_2 | AMB_COM_ACN | AMB_NOR_N3D,
2957777dab0Sopenharmony_ci
2967777dab0Sopenharmony_ci    /** Channel Layout For ORDER2-ACN-SN3D HOA, 9 channels in total */
2977777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER2_ACN_SN3D = AMB_MODE | AMB_ORD_2 | AMB_COM_ACN | AMB_NOR_SN3D,
2987777dab0Sopenharmony_ci
2997777dab0Sopenharmony_ci    /** Channel Layout For ORDER2-FUMA HOA, 9 channels in total */
3007777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER2_FUMA = AMB_MODE | AMB_ORD_2 | AMB_COM_FUMA,
3017777dab0Sopenharmony_ci
3027777dab0Sopenharmony_ci    /** Channel Layout For 5.1.4, 10 channels in total */
3037777dab0Sopenharmony_ci    CH_LAYOUT_5POINT1POINT4 = CH_LAYOUT_5POINT1 | CH_SET_TOP_FRONT_LEFT | CH_SET_TOP_FRONT_RIGHT |
3047777dab0Sopenharmony_ci                              CH_SET_TOP_BACK_LEFT | CH_SET_TOP_BACK_RIGHT,
3057777dab0Sopenharmony_ci
3067777dab0Sopenharmony_ci    /** Channel Layout For 7.1.2, 10 channels in total */
3077777dab0Sopenharmony_ci    CH_LAYOUT_7POINT1POINT2 = CH_LAYOUT_7POINT1 | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
3087777dab0Sopenharmony_ci
3097777dab0Sopenharmony_ci    /** Channel Layout For 7.1.4, 12 channels in total */
3107777dab0Sopenharmony_ci    CH_LAYOUT_7POINT1POINT4 = CH_LAYOUT_7POINT1 | CH_SET_TOP_FRONT_LEFT | CH_SET_TOP_FRONT_RIGHT |
3117777dab0Sopenharmony_ci                              CH_SET_TOP_BACK_LEFT | CH_SET_TOP_BACK_RIGHT,
3127777dab0Sopenharmony_ci
3137777dab0Sopenharmony_ci    /** Channel Layout For 10.2, 12 channels in total */
3147777dab0Sopenharmony_ci    CH_LAYOUT_10POINT2 = CH_SET_FRONT_LEFT | CH_SET_FRONT_RIGHT | CH_SET_FRONT_CENTER | CH_SET_TOP_FRONT_LEFT |
3157777dab0Sopenharmony_ci                         CH_SET_TOP_FRONT_RIGHT | CH_SET_BACK_LEFT | CH_SET_BACK_RIGHT | CH_SET_BACK_CENTER |
3167777dab0Sopenharmony_ci                         CH_SET_SIDE_LEFT | CH_SET_SIDE_RIGHT | CH_SET_WIDE_LEFT | CH_SET_WIDE_RIGHT,
3177777dab0Sopenharmony_ci
3187777dab0Sopenharmony_ci    /** Channel Layout For 9.1.4, 14 channels in total */
3197777dab0Sopenharmony_ci    CH_LAYOUT_9POINT1POINT4 = CH_LAYOUT_7POINT1POINT4 | CH_SET_WIDE_LEFT | CH_SET_WIDE_RIGHT,
3207777dab0Sopenharmony_ci
3217777dab0Sopenharmony_ci    /** Channel Layout For 9.1.6, 16 channels in total */
3227777dab0Sopenharmony_ci    CH_LAYOUT_9POINT1POINT6 = CH_LAYOUT_9POINT1POINT4 | CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT,
3237777dab0Sopenharmony_ci
3247777dab0Sopenharmony_ci    /** Channel Layout For Hexadecagonal, 16 channels in total */
3257777dab0Sopenharmony_ci    CH_LAYOUT_HEXADECAGONAL = CH_LAYOUT_OCTAGONAL | CH_SET_WIDE_LEFT | CH_SET_WIDE_RIGHT | CH_SET_TOP_BACK_LEFT |
3267777dab0Sopenharmony_ci                              CH_SET_TOP_BACK_RIGHT | CH_SET_TOP_BACK_CENTER | CH_SET_TOP_FRONT_CENTER |
3277777dab0Sopenharmony_ci                              CH_SET_TOP_FRONT_LEFT | CH_SET_TOP_FRONT_RIGHT,
3287777dab0Sopenharmony_ci
3297777dab0Sopenharmony_ci    /** Channel Layout For ORDER3-ACN-N3D HOA, 16 channels in total */
3307777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER3_ACN_N3D = AMB_MODE | AMB_ORD_3 | AMB_COM_ACN | AMB_NOR_N3D,
3317777dab0Sopenharmony_ci
3327777dab0Sopenharmony_ci    /** Channel Layout For ORDER3-ACN-SN3D HOA, 16 channels in total */
3337777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER3_ACN_SN3D = AMB_MODE | AMB_ORD_3 | AMB_COM_ACN | AMB_NOR_SN3D,
3347777dab0Sopenharmony_ci
3357777dab0Sopenharmony_ci    /** Channel Layout For ORDER3-FUMA HOA, 16 channels in total */
3367777dab0Sopenharmony_ci    CH_LAYOUT_AMB_ORDER3_FUMA = AMB_MODE | AMB_ORD_3 | AMB_COM_FUMA,
3377777dab0Sopenharmony_ci
3387777dab0Sopenharmony_ci    /** Channel Layout For 22.2, 24 channels in total */
3397777dab0Sopenharmony_ci    CH_LAYOUT_22POINT2 = CH_LAYOUT_7POINT1POINT4 | CH_SET_FRONT_LEFT_OF_CENTER | CH_SET_FRONT_RIGHT_OF_CENTER |
3407777dab0Sopenharmony_ci                         CH_SET_BACK_CENTER | CH_SET_TOP_CENTER | CH_SET_TOP_FRONT_CENTER | CH_SET_TOP_BACK_CENTER |
3417777dab0Sopenharmony_ci                         CH_SET_TOP_SIDE_LEFT | CH_SET_TOP_SIDE_RIGHT | CH_SET_BOTTOM_FRONT_LEFT |
3427777dab0Sopenharmony_ci                         CH_SET_BOTTOM_FRONT_RIGHT | CH_SET_BOTTOM_FRONT_CENTER | CH_SET_LOW_FREQUENCY_2
3437777dab0Sopenharmony_ci} OH_AudioChannelLayout;
3447777dab0Sopenharmony_ci
3457777dab0Sopenharmony_ci#ifdef __cplusplus
3467777dab0Sopenharmony_ci}
3477777dab0Sopenharmony_ci#endif
3487777dab0Sopenharmony_ci
3497777dab0Sopenharmony_ci#endif // NATIVE_AUDIO_CHANNEL_LAYOUT_H
3507777dab0Sopenharmony_ci
3517777dab0Sopenharmony_ci/** @} */