Skip to content

Commit dc85dbb

Browse files
committed
Remove re-exported sys module
Users should import the types they need from the objc2-* crates instead. This should lower compile-times, since we need to compile a lot less.
1 parent 71f8741 commit dc85dbb

12 files changed

+170
-199
lines changed

Cargo.toml

Lines changed: 10 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,14 @@ name = "coreaudio"
1818

1919
[features]
2020
default = ["audio_toolbox", "core_audio"]
21-
audio_toolbox = ["dep:objc2-audio-toolbox", "dep:objc2-core-foundation"]
21+
audio_toolbox = [
22+
"dep:objc2-audio-toolbox",
23+
"dep:objc2-core-foundation",
24+
"dep:objc2-core-audio",
25+
"dep:objc2-core-audio-types",
26+
]
2227
core_audio = ["dep:objc2-core-audio", "dep:objc2-core-audio-types"]
23-
core_midi = ["dep:objc2-core-midi"]
28+
core_midi = []
2429

2530
# Deprecated
2631
audio_unit = ["audio_toolbox"]
@@ -33,80 +38,32 @@ bitflags = "1.0"
3338
libc = "0.2"
3439
objc2-core-foundation = { version = "0.3", optional = true, default-features = false, features = [
3540
"std",
36-
"CFBase",
3741
"CFString",
3842
] }
3943
objc2-audio-toolbox = { version = "0.3", optional = true, default-features = false, features = [
4044
"std",
4145
"bitflags",
4246
"libc",
4347
"objc2-core-foundation",
44-
"AUAudioUnit",
45-
"AUAudioUnitImplementation",
46-
"AUCocoaUIView",
48+
"objc2-core-audio",
49+
"objc2-core-audio-types",
4750
"AUComponent",
48-
"AUGraph",
49-
"AUParameters",
50-
"AudioCodec",
5151
"AudioComponent",
52-
"AudioConverter",
53-
"AudioFile",
54-
"AudioFileStream",
55-
"AudioFormat",
5652
"AudioOutputUnit",
57-
"AudioQueue",
58-
"AudioServices",
59-
"AudioSession",
60-
"AudioUnit",
61-
"AudioUnitCarbonView",
62-
"AudioUnitParameters",
6353
"AudioUnitProperties",
64-
"AudioUnitUtilities",
65-
"AudioWorkInterval",
66-
"CAFFile",
67-
"CAShow",
68-
"DefaultAudioOutput",
69-
"ExtendedAudioFile",
70-
"MusicDevice",
71-
"MusicPlayer",
72-
"objc2-core-audio",
73-
"objc2-core-audio-types",
54+
"AudioSession",
7455
] }
7556
objc2-core-audio = { version = "0.3", optional = true, default-features = false, features = [
7657
"std",
7758
"objc2-core-audio-types",
7859
"AudioHardware",
7960
"AudioHardwareDeprecated",
80-
"AudioServerPlugIn",
81-
"HostTime",
8261
] }
8362
objc2-core-audio-types = { version = "0.3", optional = true, default-features = false, features = [
8463
"std",
8564
"bitflags",
86-
"AudioSessionTypes",
8765
"CoreAudioBaseTypes",
8866
] }
89-
objc2-core-midi = { version = "0.3", optional = true, default-features = false, features = [
90-
"std",
91-
"objc2-core-foundation",
92-
"MIDIBluetoothConnection",
93-
"MIDICIDevice",
94-
"MIDICIDeviceManager",
95-
"MIDICapabilityInquiry",
96-
"MIDIDriver",
97-
"MIDIMessages",
98-
"MIDINetworkSession",
99-
"MIDIServices",
100-
"MIDISetup",
101-
"MIDIThruConnection",
102-
"MIDIUMPCI",
103-
"MIDIUMPCIProfile",
104-
"MIDIUMPEndpoint",
105-
"MIDIUMPEndpointManager",
106-
"MIDIUMPFunctionBlock",
107-
"MIDIUMPMutableEndpoint",
108-
"MIDIUMPMutableFunctionBlock",
109-
] }
11067

11168
[package.metadata.docs.rs]
11269
all-features = true

examples/feedback.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use coreaudio::audio_unit::audio_format::LinearPcmFlags;
99
use coreaudio::audio_unit::macos_helpers::{audio_unit_from_device_id, get_default_device_id};
1010
use coreaudio::audio_unit::render_callback::{self, data};
1111
use coreaudio::audio_unit::{Element, SampleFormat, Scope, StreamFormat};
12-
use coreaudio::sys::*;
12+
use objc2_audio_toolbox::kAudioUnitProperty_StreamFormat;
1313

1414
const SAMPLE_RATE: f64 = 44100.0;
1515

examples/feedback_interleaved.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use coreaudio::audio_unit::macos_helpers::{
1111
};
1212
use coreaudio::audio_unit::render_callback::{self, data};
1313
use coreaudio::audio_unit::{Element, SampleFormat, Scope, StreamFormat};
14-
use coreaudio::sys::*;
14+
use objc2_audio_toolbox::kAudioUnitProperty_StreamFormat;
1515

1616
const SAMPLE_RATE: f64 = 44100.0;
1717

examples/ios/Cargo.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,11 @@ crate-type = ["staticlib"]
1212

1313
[dependencies]
1414
coreaudio-rs = { path = "../.." }
15-
15+
objc2-audio-toolbox = { version = "0.3", default-features = false, features = [
16+
"std",
17+
"AudioUnitProperties",
18+
] }
19+
objc2-core-audio-types = { version = "0.3", default-features = false, features = [
20+
"std",
21+
"CoreAudioBaseTypes",
22+
] }

examples/ios/src/feedback.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ use std::sync::{Arc, Mutex};
88
use coreaudio::audio_unit::audio_format::LinearPcmFlags;
99
use coreaudio::audio_unit::render_callback::{self, data};
1010
use coreaudio::audio_unit::{AudioUnit, Element, SampleFormat, Scope, StreamFormat};
11-
use coreaudio::sys::*;
11+
use objc2_audio_toolbox::{kAudioOutputUnitProperty_EnableIO, kAudioUnitProperty_StreamFormat};
12+
use objc2_core_audio_types::AudioStreamBasicDescription;
1213

1314
type S = f32;
1415
const SAMPLE_FORMAT: SampleFormat = SampleFormat::F32;
@@ -36,8 +37,10 @@ pub fn run_example() -> Result<(), coreaudio::Error> {
3637
SampleFormat::F32 => LinearPcmFlags::IS_FLOAT,
3738
SampleFormat::I32 | SampleFormat::I16 | SampleFormat::I8 => {
3839
LinearPcmFlags::IS_SIGNED_INTEGER
39-
},
40-
SampleFormat::I24 => { unimplemented!("Not implemented for I24")},
40+
}
41+
SampleFormat::I24 => {
42+
unimplemented!("Not implemented for I24")
43+
}
4144
};
4245

4346
// Using IS_NON_INTERLEAVED everywhere because data::Interleaved is commented out / not implemented

examples/sine_advanced.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use coreaudio::audio_unit::macos_helpers::{
1111
};
1212
use coreaudio::audio_unit::render_callback::{self, data};
1313
use coreaudio::audio_unit::{Element, SampleFormat, Scope, StreamFormat};
14-
use coreaudio::sys::kAudioUnitProperty_StreamFormat;
14+
use objc2_audio_toolbox::kAudioUnitProperty_StreamFormat;
1515
use std::f64::consts::PI;
1616
use std::process;
1717

src/audio_unit/macos_helpers.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ use std::sync::Mutex;
1010
use std::time::Duration;
1111
use std::{mem, thread};
1212

13-
use crate::sys::{
13+
use libc::pid_t;
14+
use objc2_audio_toolbox::{
15+
kAudioOutputUnitProperty_CurrentDevice, kAudioOutputUnitProperty_EnableIO,
16+
};
17+
use objc2_core_audio::{
1418
kAudioDevicePropertyAvailableNominalSampleRates, kAudioDevicePropertyDeviceIsAlive,
1519
kAudioDevicePropertyDeviceNameCFString, kAudioDevicePropertyHogMode,
1620
kAudioDevicePropertyNominalSampleRate, kAudioDevicePropertyScopeOutput,
@@ -19,22 +23,20 @@ use crate::sys::{
1923
kAudioHardwarePropertyDevices, kAudioObjectPropertyElementMaster,
2024
kAudioObjectPropertyElementWildcard, kAudioObjectPropertyScopeGlobal,
2125
kAudioObjectPropertyScopeInput, kAudioObjectPropertyScopeOutput, kAudioObjectSystemObject,
22-
kAudioOutputUnitProperty_CurrentDevice, kAudioOutputUnitProperty_EnableIO,
2326
kAudioStreamPropertyAvailablePhysicalFormats, kAudioStreamPropertyPhysicalFormat,
2427
AudioDeviceID, AudioObjectAddPropertyListener, AudioObjectGetPropertyData,
2528
AudioObjectGetPropertyDataSize, AudioObjectID, AudioObjectPropertyAddress,
26-
AudioObjectPropertyScope, AudioObjectRemovePropertyListener, AudioObjectSetPropertyData,
27-
AudioStreamBasicDescription, AudioStreamRangedDescription, AudioValueRange, OSStatus,
29+
AudioObjectPropertyListenerProc, AudioObjectPropertyScope, AudioObjectRemovePropertyListener,
30+
AudioObjectSetPropertyData, AudioStreamRangedDescription,
2831
};
29-
use libc::pid_t;
30-
use objc2_core_audio::AudioObjectPropertyListenerProc;
32+
use objc2_core_audio_types::{AudioBufferList, AudioStreamBasicDescription, AudioValueRange};
3133
use objc2_core_foundation::CFString;
3234

3335
use crate::audio_unit::audio_format::{AudioFormat, LinearPcmFlags};
3436
use crate::audio_unit::sample_format::SampleFormat;
3537
use crate::audio_unit::stream_format::StreamFormat;
3638
use crate::audio_unit::{AudioUnit, Element, IOType, Scope};
37-
use crate::sys;
39+
use crate::OSStatus;
3840

3941
/// Helper function to get the device id of the default input or output device.
4042
pub fn get_default_device_id(input: bool) -> Option<AudioDeviceID> {
@@ -236,7 +238,7 @@ pub fn get_audio_device_supports_scope(devid: AudioDeviceID, scope: Scope) -> Re
236238
try_status_or_return!(status);
237239

238240
let mut bfrs: Vec<u8> = Vec::with_capacity(data_size as usize);
239-
let buffers = bfrs.as_mut_ptr() as *mut sys::AudioBufferList;
241+
let buffers = bfrs.as_mut_ptr() as *mut AudioBufferList;
240242
unsafe {
241243
let status = AudioObjectGetPropertyData(
242244
devid,

0 commit comments

Comments
 (0)