blob: 8224d87c285ee31c89db8e1182c297bb7bc81d82 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
use crate::dispatch::*;
use coreaudio_sys::*;
// See https://opensource.apple.com/source/WebCore/WebCore-7604.5.6/platform/spi/cf/CoreAudioSPI.h.auto.html
// Per https://github.com/WebKit/WebKit/commit/7c4c851bc80f14b4cf907f76d65baee013a45eea,
// this first appeared in MacOS 10.13 and iOS 11.0.
extern "C" {
fn AudioDeviceDuck(
inDevice: AudioDeviceID,
inDuckedLevel: f32,
inStartTime: *const AudioTimeStamp,
inRampDuration: f32,
) -> OSStatus;
}
pub fn audio_device_duck(
in_device: AudioDeviceID,
in_ducked_level: f32,
in_start_time: *const AudioTimeStamp,
in_ramp_duration: f32,
) -> OSStatus {
debug_assert_running_serially();
unsafe { AudioDeviceDuck(in_device, in_ducked_level, in_start_time, in_ramp_duration) }
}
|