Skip to content

cpal uses macOS specific APIs not supported on iOS #224

Closed
@Moxinilian

Description

@Moxinilian

While the README argues iOS is supported, it currently is not as a large part of the CoreAudio logic depends on macOS-specific APIs.

Here is a list of the missing bindings:

error[E0432]: unresolved import `self::coreaudio::sys::AudioDeviceID`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:31:5
   |
31 |     AudioDeviceID,
   |     ^^^^^^^^^^^^^ no `AudioDeviceID` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectAddPropertyListener`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:32:5
   |
32 |     AudioObjectAddPropertyListener,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectAddPropertyListener` in `sys`. Did you mean to use `AudioUnitAddPropertyListener`?

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectGetPropertyData`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:33:5
   |
33 |     AudioObjectGetPropertyData,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectGetPropertyData` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectGetPropertyDataSize`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:34:5
   |
34 |     AudioObjectGetPropertyDataSize,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectGetPropertyDataSize` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectID`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:35:5
   |
35 |     AudioObjectID,
   |     ^^^^^^^^^^^^^ no `AudioObjectID` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectPropertyAddress`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:36:5
   |
36 |     AudioObjectPropertyAddress,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectPropertyAddress` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectPropertyScope`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:37:5
   |
37 |     AudioObjectPropertyScope,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectPropertyScope` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectRemovePropertyListener`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:38:5
   |
38 |     AudioObjectRemovePropertyListener,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectRemovePropertyListener` in `sys`. Did you mean to use `AudioUnitRemovePropertyListenerProc`?

error[E0432]: unresolved import `self::coreaudio::sys::AudioObjectSetPropertyData`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:39:5
   |
39 |     AudioObjectSetPropertyData,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectSetPropertyData` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioDevicePropertyAvailableNominalSampleRates`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:42:5
   |
42 |     kAudioDevicePropertyAvailableNominalSampleRates,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioDevicePropertyAvailableNominalSampleRates` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioDevicePropertyDeviceNameCFString`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:43:5
   |
43 |     kAudioDevicePropertyDeviceNameCFString,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioDevicePropertyDeviceNameCFString` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioDevicePropertyNominalSampleRate`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:44:5
   |
44 |     kAudioDevicePropertyNominalSampleRate,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioDevicePropertyNominalSampleRate` in `sys`. Did you mean to use `kAudioUnitProperty_SampleRate`?

error[E0432]: unresolved import `self::coreaudio::sys::kAudioObjectPropertyScopeInput`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:45:5
   |
45 |     kAudioObjectPropertyScopeInput,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioObjectPropertyScopeInput` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioObjectPropertyScopeGlobal`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:46:5
   |
46 |     kAudioObjectPropertyScopeGlobal,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioObjectPropertyScopeGlobal` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioDevicePropertyScopeOutput`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:47:5
   |
47 |     kAudioDevicePropertyScopeOutput,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioDevicePropertyScopeOutput` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioDevicePropertyStreamConfiguration`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:48:5
   |
48 |     kAudioDevicePropertyStreamConfiguration,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioDevicePropertyStreamConfiguration` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioDevicePropertyStreamFormat`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:49:5
   |
49 |     kAudioDevicePropertyStreamFormat,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioDevicePropertyStreamFormat` in `sys`. Did you mean to use `kAudioUnitProperty_StreamFormat`?

error[E0432]: unresolved import `self::coreaudio::sys::kAudioHardwareNoError`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:53:5
   |
53 |     kAudioHardwareNoError,
   |     ^^^^^^^^^^^^^^^^^^^^^ no `kAudioHardwareNoError` in `sys`

error[E0432]: unresolved import `self::coreaudio::sys::kAudioObjectPropertyElementMaster`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:54:5
   |
54 |     kAudioObjectPropertyElementMaster,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioObjectPropertyElementMaster` in `sys`. Did you mean to use `kAudioUnitProperty_ElementName`?

error[E0432]: unresolved import `self::coreaudio::sys::kAudioObjectPropertyScopeOutput`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/mod.rs:55:5
   |
55 |     kAudioObjectPropertyScopeOutput,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioObjectPropertyScopeOutput` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::AudioDeviceID`
 --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:6:5
  |
6 |     AudioDeviceID,
  |     ^^^^^^^^^^^^^ no `AudioDeviceID` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::AudioObjectPropertyAddress`
 --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:7:5
  |
7 |     AudioObjectPropertyAddress,
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectPropertyAddress` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::AudioObjectGetPropertyData`
 --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:8:5
  |
8 |     AudioObjectGetPropertyData,
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectGetPropertyData` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::AudioObjectGetPropertyDataSize`
 --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:9:5
  |
9 |     AudioObjectGetPropertyDataSize,
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `AudioObjectGetPropertyDataSize` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::kAudioHardwareNoError`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:10:5
   |
10 |     kAudioHardwareNoError,
   |     ^^^^^^^^^^^^^^^^^^^^^ no `kAudioHardwareNoError` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::kAudioHardwarePropertyDefaultInputDevice`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:11:5
   |
11 |     kAudioHardwarePropertyDefaultInputDevice,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioHardwarePropertyDefaultInputDevice` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::kAudioHardwarePropertyDefaultOutputDevice`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:12:5
   |
12 |     kAudioHardwarePropertyDefaultOutputDevice,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioHardwarePropertyDefaultOutputDevice` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::kAudioHardwarePropertyDevices`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:13:5
   |
13 |     kAudioHardwarePropertyDevices,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioHardwarePropertyDevices` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::kAudioObjectPropertyElementMaster`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:14:5
   |
14 |     kAudioObjectPropertyElementMaster,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioObjectPropertyElementMaster` in `sys`. Did you mean to use `kAudioUnitProperty_ElementName`?

error[E0432]: unresolved import `super::coreaudio::sys::kAudioObjectPropertyScopeGlobal`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:15:5
   |
15 |     kAudioObjectPropertyScopeGlobal,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioObjectPropertyScopeGlobal` in `sys`

error[E0432]: unresolved import `super::coreaudio::sys::kAudioObjectSystemObject`
  --> /Users/theodegioanni/.cargo/registry/src/github.com-1ecc6299db9ec823/cpal-0.8.1/src/coreaudio/enumerate.rs:16:5
   |
16 |     kAudioObjectSystemObject,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^ no `kAudioObjectSystemObject` in `sys`

This breaks compatibility for iOS and therefore breaks all iOS projects depending on cpal.
I am currently working on iOS support for the Amethyst game engine, so I assume I will have to look into that myself. However, I do not have the necessary experience nor time to fix all those issues to bring back iOS support.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions