Skip to main content

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}