diff --git a/audio/v1_0/AudioAdapter.idl b/audio/v1_0/AudioAdapter.idl index 8a13cb86fcd9997b2fe51fdfa67f5c30bac0d079..27cfa1f6eccd9939e58257ce3c581980fd23c64e 100644 --- a/audio/v1_0/AudioAdapter.idl +++ b/audio/v1_0/AudioAdapter.idl @@ -28,4 +28,13 @@ interface AudioAdapter { GetPortCapability([in] struct AudioPort port, [out] struct AudioPortCapability capability); SetPassthroughMode([in] struct AudioPort port, [in] enum AudioPortPassthroughMode mode); GetPassthroughMode([in] struct AudioPort port, [out] enum AudioPortPassthroughMode mode); + GetDeviceStatus([out] struct AudioDeviceStatus status); + UpdateAudioRoute([in] struct AudioRoute route, [out] int routeHandle); + ReleaseAudioRoute([in] int routeHandle); + SetMicMute([in] boolean mute); + GetMicMute([out] boolean mute); + SetVoiceVolume([in] float volume); + SetExtraParams([in] enum AudioExtParamKey key, [in] String condition, [in] String value); + GetExtraParams([in] enum AudioExtParamKey key, [in] String condition, [out] String value); + RegExtraParamObserver([in] AudioCallback audioCallback, [in] byte cookie); } diff --git a/audio/v1_0/AudioCallback.idl b/audio/v1_0/AudioCallback.idl index 3fd8e4b7252fbc21c7657a14f9f41d85320301c7..4f77094abb433cc7e6738c5a458678d7e6903c44 100644 --- a/audio/v1_0/AudioCallback.idl +++ b/audio/v1_0/AudioCallback.idl @@ -42,4 +42,5 @@ import ohos.hdi.audio.v1_0.AudioTypes; */ [callback] interface AudioCallback { RenderCallback([in] enum AudioCallbackType type, [out] byte reserved, [out] byte cookie); + ParamCallback([in] enum AudioExtParamKey key, [in] byte condition, [in] byte value, [out] byte reserved, [out] byte cookie); } diff --git a/audio/v1_0/AudioCapture.idl b/audio/v1_0/AudioCapture.idl index d2f7bd40d398fc0d62af9a5cdad7cb350852bd9a..2bda2bc52ce004e15e040caf610ff4adce7ec838 100644 --- a/audio/v1_0/AudioCapture.idl +++ b/audio/v1_0/AudioCapture.idl @@ -38,6 +38,9 @@ interface AudioCapture { GetExtraParams([out] String keyValueList); ReqMmapBuffer([in] int reqSize, [in] struct AudioMmapBufferDescripter desc); GetMmapPosition([out] unsigned long frames, [out] struct AudioTimeStamp time); + AddAudioEffect([in] unsigned long effectid); + RemoveAudioEffect([in] unsigned long effectid); + GetFrameBufferSize([out] unsigned long bufferSize); Start(); Stop(); Pause(); @@ -45,4 +48,5 @@ interface AudioCapture { Flush(); TurnStandbyMode(); AudioDevDump([in] int range, [in] int fd); + IsSupportsPauseAndResume([out] boolean supportPause, [out] boolean supportResume); } diff --git a/audio/v1_0/AudioRender.idl b/audio/v1_0/AudioRender.idl index 37ae47594efbd2c2ddd20408a10a15f53ac1607a..7ce4279f6a5ebe788e9582602f504a2a74efb9ab 100644 --- a/audio/v1_0/AudioRender.idl +++ b/audio/v1_0/AudioRender.idl @@ -28,6 +28,7 @@ interface AudioRender { GetChannelMode([out] enum AudioChannelMode mode); RegCallback([in] AudioCallback audioCallback, [in] byte cookie); DrainBuffer([out] enum AudioDrainNotifyType type); + IsSupportsDrain([out] boolean support); CheckSceneCapability([in] struct AudioSceneDescriptor scene, [out] boolean supported); SelectScene([in] struct AudioSceneDescriptor scene); SetMute([in] boolean mute); @@ -46,6 +47,9 @@ interface AudioRender { GetExtraParams([out] String keyValueList); ReqMmapBuffer([in] int reqSize, [in] struct AudioMmapBufferDescripter desc); GetMmapPosition([out] unsigned long frames, [out] struct AudioTimeStamp time); + AddAudioEffect([in] unsigned long effectid); + RemoveAudioEffect([in] unsigned long effectid); + GetFrameBufferSize([out] unsigned long bufferSize); Start(); Stop(); Pause(); @@ -53,4 +57,5 @@ interface AudioRender { Flush(); TurnStandbyMode(); AudioDevDump([in] int range, [in] int fd); + IsSupportsPauseAndResume([out] boolean supportPause, [out] boolean supportResume); } diff --git a/audio/v1_0/AudioTypes.idl b/audio/v1_0/AudioTypes.idl index 9578bfe3de1b26b82564dbc132178a0d46606b6b..8a586106cee3fa6423db5d92b2d3748f53498611 100644 --- a/audio/v1_0/AudioTypes.idl +++ b/audio/v1_0/AudioTypes.idl @@ -59,18 +59,18 @@ enum AudioChannelMask { AUDIO_CHANNEL_STEREO = 3, /**< Stereo channel, consisting of front left and front right channels */ }; enum AudioSampleRatesMask { - AUDIO_SAMPLE_RATE_MASK_8000 = 1, /**< 8 kHz */ - AUDIO_SAMPLE_RATE_MASK_12000 = 2, /**< 12 kHz */ - AUDIO_SAMPLE_RATE_MASK_11025 = 4, /**< 11.025 kHz */ - AUDIO_SAMPLE_RATE_MASK_16000 = 8, /**< 16 kHz */ - AUDIO_SAMPLE_RATE_MASK_22050 = 16, /**< 22.050 kHz */ - AUDIO_SAMPLE_RATE_MASK_24000 = 32, /**< 24 kHz */ - AUDIO_SAMPLE_RATE_MASK_32000 = 64, /**< 32 kHz */ - AUDIO_SAMPLE_RATE_MASK_44100 = 128, /**< 44.1 kHz */ - AUDIO_SAMPLE_RATE_MASK_48000 = 256, /**< 48 kHz */ - AUDIO_SAMPLE_RATE_MASK_64000 = 512, /**< 64 kHz */ - AUDIO_SAMPLE_RATE_MASK_96000 = 1024, /**< 96 kHz */ - AUDIO_SAMPLE_RATE_MASK_INVALID = 4294967295, /**< Invalid sampling rate */ + AUDIO_SAMPLE_RATE_MASK_8000 = 1 << 0, /**< 8 kHz */ + AUDIO_SAMPLE_RATE_MASK_12000 = 1 << 1, /**< 12 kHz */ + AUDIO_SAMPLE_RATE_MASK_11025 = 1 << 2, /**< 11.025 kHz */ + AUDIO_SAMPLE_RATE_MASK_16000 = 1 << 3, /**< 16 kHz */ + AUDIO_SAMPLE_RATE_MASK_22050 = 1 << 4, /**< 22.050 kHz */ + AUDIO_SAMPLE_RATE_MASK_24000 = 1 << 5, /**< 24 kHz */ + AUDIO_SAMPLE_RATE_MASK_32000 = 1 << 6, /**< 32 kHz */ + AUDIO_SAMPLE_RATE_MASK_44100 = 1 << 7, /**< 44.1 kHz */ + AUDIO_SAMPLE_RATE_MASK_48000 = 1 << 8, /**< 48 kHz */ + AUDIO_SAMPLE_RATE_MASK_64000 = 1 << 9, /**< 64 kHz */ + AUDIO_SAMPLE_RATE_MASK_96000 = 1 << 10, /**< 96 kHz */ + AUDIO_SAMPLE_RATE_MASK_INVALID = 4294967295, /**< Invalid sampling rate */ }; enum AudioPortPassthroughMode { PORT_PASSTHROUGH_LPCM = 1, @@ -142,6 +142,42 @@ enum AudioSessionType { AUDIO_ALLOCATE_SESSION = 2, AUDIO_INVALID_SESSION = 3, }; +enum AudioDeviceType { + AUDIO_LINEOUT = 1 << 0, + AUDIO_HEADPHONE = 1 << 1, + AUDIO_HEADSET = 1 << 2, + AUDIO_USB_HEADSET = 1 << 3, + AUDIO_USB_HEADPHONE = 1 << 4, + AUDIO_USBA_HEADSET = 1 << 5, + AUDIO_USBA_HEADPHONE = 1 << 6, + AUDIO_PRIMARY_DEVICE = 1 << 7, + AUDIO_USB_DEVICE = 1 << 8, + AUDIO_A2DP_DEVICE = 1 << 9, + AUDIO_DEVICE_UNKOWN, +}; +enum AudioEventType { + AUDIO_DEVICE_ADD = 1, + AUDIO_DEVICE_REMOVE = 2, + AUDIO_LOAD_SUCCESS = 3, + AUDIO_LOAD_FAILURE = 4, + AUDIO_UNLOAD = 5, + AUDIO_SERVICE_VALID = 7, + AUDIO_SERVICE_INVALID = 8, + AUDIO_CAPTURE_THRESHOLD = 9, + AUDIO_EVENT_UNKOWN = 10, +}; +enum AudioExtParamKey { + AUDIO_EXT_PARAM_KEY_NONE = 0, /**< Distributed audio extra param key none */ + AUDIO_EXT_PARAM_KEY_VOLUME = 1, /**< Distributed audio extra param key volume event */ + AUDIO_EXT_PARAM_KEY_FOCUS = 2, /**< Distributed audio extra param key focus event */ + AUDIO_EXT_PARAM_KEY_BUTTON = 3, /**< Distributed audio extra param key media button event */ + AUDIO_EXT_PARAM_KEY_EFFECT = 4, /**< Distributed audio extra param key audio effect event */ + AUDIO_EXT_PARAM_KEY_STATUS = 5, /**< Distributed audio extra param key device status event */ + AUDIO_EXT_PARAM_KEY_LOWPOWER = 1000, /**< Low power event type */ +}; +struct AudioDeviceStatus { + unsigned int pnpStatus; +}; union SceneDesc { unsigned int id; }; @@ -235,3 +271,7 @@ struct AudioRoute { struct AudioRouteNode[] sources; struct AudioRouteNode[] sinks; }; +struct AudioEvent { + unsigned int eventType; /**< @link enum AudioEventType */ + unsigned int deviceType; /**< @link enum AudioDeviceType */ +}; \ No newline at end of file