Merge pull request #161 from matwork/ios

Minimal ios support
This commit is contained in:
tomaka 2017-10-11 09:31:16 +02:00 committed by GitHub
commit 35d9201b85
3 changed files with 12 additions and 5 deletions

View File

@ -21,5 +21,5 @@ kernel32-sys = "0.2"
[target.'cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd"))'.dependencies]
alsa-sys = { version = "0.1", path = "alsa-sys" }
[target.'cfg(target_os = "macos")'.dependencies]
coreaudio-rs = "0.6"
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]
coreaudio-rs = "0.7.0"

View File

@ -157,7 +157,14 @@ impl Voice {
}
}
let au_type = coreaudio::audio_unit::IOType::DefaultOutput;
let au_type = if cfg!(target_os = "ios") {
// The DefaultOutput unit isn't available in iOS unfortunately. RemoteIO is a sensible replacement.
// See
// https://developer.apple.com/library/content/documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/UsingSpecificAudioUnits/UsingSpecificAudioUnits.html
coreaudio::audio_unit::IOType::RemoteIO
} else {
coreaudio::audio_unit::IOType::DefaultOutput
};
let mut audio_unit = try!(AudioUnit::new(au_type).map_err(convert_error));
// TODO: iOS uses integer and fixed-point data

View File

@ -76,7 +76,7 @@ extern crate libc;
pub use samples_formats::{SampleFormat, Sample};
#[cfg(all(not(windows), not(target_os = "linux"), not(target_os = "freebsd"), not(target_os = "macos")))]
#[cfg(all(not(windows), not(target_os = "linux"), not(target_os = "freebsd"), not(target_os = "macos"), not(target_os = "ios")))]
use null as cpal_impl;
use std::fmt;
@ -97,7 +97,7 @@ mod cpal_impl;
#[path="wasapi/mod.rs"]
mod cpal_impl;
#[cfg(target_os = "macos")]
#[cfg(any(target_os = "macos", target_os = "ios"))]
#[path="coreaudio/mod.rs"]
mod cpal_impl;