ohaudio_sys/audio_stream_manager/audio_stream_manager_ffi.rs
1// automatically generated by rust-bindgen 0.71.1
2
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6use crate::audio_common::OH_AudioCommon_Result;
7use crate::audiostream_base::{
8 OH_AudioStreamInfo, OH_AudioStream_DirectPlaybackMode, OH_AudioStream_SourceType,
9 OH_AudioStream_Usage,
10};
11
12/// Declare the audio stream manager.
13/// Audio stream manager provides many functions about audio streams, like monitoring audio streams status,
14/// getting different stream types supported information and so on.
15///
16///
17/// Available since API-level: 19
18#[cfg(feature = "api-19")]
19#[cfg_attr(docsrs, doc(cfg(feature = "api-19")))]
20#[repr(C)]
21pub struct OH_AudioStreamManager {
22 _unused: [u8; 0],
23}
24extern "C" {
25 /// Fetch the audio streammanager handle, which is a singleton.
26 ///
27 /// # Arguments
28 ///
29 /// * `streamManager` - output parameter to get the [`#OH_AudioStreamManager`].
30 ///
31 /// # Returns
32 ///
33 /// * [`#AUDIOCOMMON_RESULT_SUCCESS`] if execution succeeds
34 /// [`#AUDIOCOMMON_RESULT_ERROR_SYSTEM`] if system state error
35 ///
36 /// Available since API-level: 19
37 #[cfg(feature = "api-19")]
38 #[cfg_attr(docsrs, doc(cfg(feature = "api-19")))]
39 pub fn OH_AudioManager_GetAudioStreamManager(
40 streamManager: *mut *mut OH_AudioStreamManager,
41 ) -> OH_AudioCommon_Result;
42 /// Gets the mode of direct playback available for a given audio format with current active device.
43 ///
44 /// # Arguments
45 ///
46 /// * `audioStreamManager` - the [`OH_AudioStreamManager`] handle provided by
47 /// [`OH_AudioManager_GetAudioStreamManager`].
48 ///
49 /// * `streamInfo` - the [`OH_AudioStreamInfo`].
50 ///
51 /// * `usage` - the [`OH_AudioStream_Usage`].
52 ///
53 /// * `directPlaybackMode` - the [`OH_AudioStream_DirectPlaybackMode`] pointer to a variable which receives the
54 /// result.
55 ///
56 /// # Returns
57 ///
58 /// * Function result code:
59 /// [`AUDIOCOMMON_RESULT_SUCCESS`] If the execution is successful.
60 /// [`AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`]:
61 /// 1.The param of audioStreamManager is nullptr;
62 /// 2.The param of streamInfo is nullptr;
63 /// 3.The param of usage invalid;
64 /// 4.The param of directPlaybackMode is nullptr.
65 ///
66 /// Available since API-level: 19
67 #[cfg(feature = "api-19")]
68 #[cfg_attr(docsrs, doc(cfg(feature = "api-19")))]
69 pub fn OH_AudioStreamManager_GetDirectPlaybackSupport(
70 audioStreamManager: *mut OH_AudioStreamManager,
71 streamInfo: *mut OH_AudioStreamInfo,
72 usage: OH_AudioStream_Usage,
73 directPlaybackMode: *mut OH_AudioStream_DirectPlaybackMode,
74 ) -> OH_AudioCommon_Result;
75 /// Query whether acoustic echo canceler is supported by input source.
76 ///
77 /// # Arguments
78 ///
79 /// * `streamManager` - The [`OH_AudioStreamManager`] handle provided
80 /// by [`OH_AudioManager_GetAudioStreamManager`].
81 ///
82 /// * `sourceType` - Related source type.
83 ///
84 /// * `supported` - Pointer to get the result.
85 ///
86 /// # Returns
87 ///
88 /// * Function result code:
89 /// [`AUDIOCOMMON_RESULT_SUCCESS`] If the execution is successful.
90 /// [`AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM`]:
91 /// 1.The input param streamManager is nullptr;
92 /// 2.Source type is invalid.
93 /// 3.The input param supported is nullptr.
94 ///
95 /// Available since API-level: 20
96 #[cfg(feature = "api-20")]
97 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
98 pub fn OH_AudioStreamManager_IsAcousticEchoCancelerSupported(
99 streamManager: *mut OH_AudioStreamManager,
100 sourceType: OH_AudioStream_SourceType,
101 supported: *mut bool,
102 ) -> OH_AudioCommon_Result;
103 /// Return if fast playback is supported for the specific audio stream info and usage type
104 /// in current device situation.
105 ///
106 /// # Arguments
107 ///
108 /// * `streamManager` - [`OH_AudioStreamManager`] handle
109 /// provided by [`OH_AudioManager_GetAudioStreamManager`].
110 ///
111 /// * `streamInfo` - reference of stream info structure to describe basic audio format.
112 ///
113 /// * `usage` - stream usage type used to decide the audio device and pipe type selection result.
114 ///
115 /// # Returns
116 ///
117 /// * `true` if fast playback is supported in this situation.
118 ///
119 /// Available since API-level: 20
120 #[cfg(feature = "api-20")]
121 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
122 pub fn OH_AudioStreamManager_IsFastPlaybackSupported(
123 streamManager: *mut OH_AudioStreamManager,
124 streamInfo: *mut OH_AudioStreamInfo,
125 usage: OH_AudioStream_Usage,
126 ) -> bool;
127 /// Return if fast recording is supported for the specific audio stream info and source type
128 /// in current device situation.
129 ///
130 /// # Arguments
131 ///
132 /// * `streamManager` - [`OH_AudioStreamManager`] handle
133 /// provided by [`OH_AudioManager_GetAudioStreamManager`].
134 ///
135 /// * `streamInfo` - reference of stream info structure to describe basic audio format.
136 ///
137 /// * `source` - stream source type used to decide the audio device and pipe type selection result.
138 ///
139 /// # Returns
140 ///
141 /// * `true` if fast recording is supported in this situation.
142 ///
143 /// Available since API-level: 20
144 #[cfg(feature = "api-20")]
145 #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
146 pub fn OH_AudioStreamManager_IsFastRecordingSupported(
147 streamManager: *mut OH_AudioStreamManager,
148 streamInfo: *mut OH_AudioStreamInfo,
149 source: OH_AudioStream_SourceType,
150 ) -> bool;
151 /// Return if the system recording enables intelligent noise reduction for current device.
152 ///
153 /// # Arguments
154 ///
155 /// * `streamManager` - [`OH_AudioStreamManager`] handle
156 /// provided by [`OH_AudioManager_GetAudioStreamManager`].
157 ///
158 /// * `source` - stream source type used to decide the audio device and pipe type selection result.
159 ///
160 /// # Returns
161 ///
162 /// * `true` if the system recording enables intelligent noise reduction for current device.
163 ///
164 /// Available since API-level: 21
165 #[cfg(feature = "api-21")]
166 #[cfg_attr(docsrs, doc(cfg(feature = "api-21")))]
167 pub fn OH_AudioStreamManager_IsIntelligentNoiseReductionEnabledForCurrentDevice(
168 streamManager: *mut OH_AudioStreamManager,
169 source: OH_AudioStream_SourceType,
170 ) -> bool;
171}