From fa1868cf3d3db919657d2d7b049d8a5f8aa76633 Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 13:55:16 -0500 Subject: [PATCH 1/8] Support for visionos --- .github/workflows/coreaudio-rs.yml | 33 +-- examples/apple/build_rust_deps.sh | 47 ++-- .../project.pbxproj | 258 ++++++++++++++---- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 164579 bytes .../xcschemes/coreaudio-ios-example.xcscheme | 12 +- .../xcschemes/coreaudio-tvos-example.xcscheme | 12 +- .../coreaudio-visionos-example.xcscheme | 78 ++++++ .../xcschemes/xcschememanagement.plist | 29 ++ .../coreaudio-ios-example copy-Info.plist | 49 ++++ src/audio_unit/mod.rs | 2 +- src/audio_unit/render_callback.rs | 2 +- src/audio_unit/types.rs | 2 +- 14 files changed, 420 insertions(+), 104 deletions(-) rename examples/apple/{coreaudio-ios-example.xcodeproj => coreaudio-example.xcodeproj}/project.pbxproj (71%) rename examples/apple/{coreaudio-ios-example.xcodeproj => coreaudio-example.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename examples/apple/{coreaudio-ios-example.xcodeproj => coreaudio-example.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) create mode 100644 examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/xcuserdata/simlay.xcuserdatad/UserInterfaceState.xcuserstate rename examples/apple/{coreaudio-ios-example.xcodeproj => coreaudio-example.xcodeproj}/xcshareddata/xcschemes/coreaudio-ios-example.xcscheme (85%) rename examples/apple/{coreaudio-ios-example.xcodeproj => coreaudio-example.xcodeproj}/xcshareddata/xcschemes/coreaudio-tvos-example.xcscheme (85%) create mode 100644 examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-visionos-example.xcscheme create mode 100644 examples/apple/coreaudio-example.xcodeproj/xcuserdata/simlay.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 examples/apple/coreaudio-ios-example copy-Info.plist diff --git a/.github/workflows/coreaudio-rs.yml b/.github/workflows/coreaudio-rs.yml index 15224a42e..e99b37d08 100644 --- a/.github/workflows/coreaudio-rs.yml +++ b/.github/workflows/coreaudio-rs.yml @@ -50,37 +50,22 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} - ios-build: - runs-on: macOS-latest - steps: - - uses: actions/checkout@v6 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: stable - - name: Add iOS targets - run: rustup target add aarch64-apple-ios aarch64-apple-ios-sim - - name: Build iphonesimulator feedback example - run: cd examples/apple && xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-ios-example -configuration Debug -derivedDataPath build -sdk iphonesimulator - - tvos-build: + xcode-builds: runs-on: macOS-latest + env: + ONLY_ACTIVE_ARCH: NO + ARCHS: arm64 steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@master with: toolchain: nightly components: rust-src - - name: Build for tvOS simulator - run: cd examples/apple && cargo +nightly build -Zbuild-std --target aarch64-apple-tvos-sim --release - - name: Build for tvOS device - run: cd examples/apple && cargo +nightly build -Zbuild-std --target aarch64-apple-tvos --release - - uses: dtolnay/rust-toolchain@master - with: - toolchain: stable - - name: Add iOS targets - run: rustup target add aarch64-apple-ios aarch64-apple-ios-sim - - name: Build appletvsimulator example - run: cd examples/apple && xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-tvos-example -configuration Debug -derivedDataPath build -sdk appletvsimulator + targets: "aarch64-apple-ios,aarch64-apple-ios-sim" + - run: cd examples/apple + - run: xcodebuild -scheme coreaudio-tvos-example -configuration Debug -derivedDataPath build -sdk appletvsimulator + - run: xcodebuild -scheme coreaudio-ios-example -configuration Debug -derivedDataPath build -sdk iphonesimulator + - run: xcodebuild -scheme coreaudio-visionos-example -configuration Debug -derivedDataPath build -sdk xrsimulator # Build the docs with all features to make sure docs.rs will work. macos-docs: diff --git a/examples/apple/build_rust_deps.sh b/examples/apple/build_rust_deps.sh index 8114d3b88..176af2a77 100755 --- a/examples/apple/build_rust_deps.sh +++ b/examples/apple/build_rust_deps.sh @@ -12,19 +12,34 @@ if [[ -n "${DEVELOPER_SDK_DIR:-}" ]]; then export LIBRARY_PATH="${DEVELOPER_SDK_DIR}/MacOSX.sdk/usr/lib:${LIBRARY_PATH:-}" fi -# Detect which platform we're building for based on SDKROOT -# SDKROOT is set by Xcode and contains the SDK path (e.g., iphoneos, iphonesimulator, appletvos, appletvsimulator) -case "${SDKROOT:-}" in - *appletvos*|*appletvsimulator*) - # Build for tvOS (requires nightly toolchain and -Zbuild-std since tvOS is a Tier 3 target) - cargo +nightly build -Zbuild-std --target aarch64-apple-tvos-sim --release - cargo +nightly build -Zbuild-std --target aarch64-apple-tvos --release - ;; - *) - # Default: Build for iOS (stable toolchain) - # Device (arm64) - cargo build --target aarch64-apple-ios --release - # Simulator (arm64) - cargo build --target aarch64-apple-ios-sim --release - ;; -esac +TARGET_DEVICE_PLATFORM_NAME=xrsimulator +echo $TARGET_DEVICE_PLATFORM_NAME +echo SDK ROOT IS: $SDKROOT +cargo +nightly build -Zbuild-std \ + --target aarch64-apple-tvos-sim \ + --target aarch64-apple-tvos \ + --target aarch64-apple-visionos \ + --target aarch64-apple-visionos-sim \ + --release + +cargo build --target aarch64-apple-ios --target aarch64-apple-ios-sim --release + +## Detect which platform we're building for based on SDKROOT +## SDKROOT is set by Xcode and contains the SDK path (e.g., iphoneos, iphonesimulator, appletvos, appletvsimulator) +#case "${TARGET_DEVICE_PLATFORM_NAME:-}" in +# *Appletvos*|*AppleTVSimulator*) +# # Build for tvOS (requires nightly toolchain and -Zbuild-std since tvOS is a Tier 3 target) +# cargo +nightly build -Zbuild-std --target aarch64-apple-tvos-sim --target aarch64-apple-tvos --release +# ;; +# *XROs*|*XRSimulator*|*xrsimulator*|*rxos*) +# # Build for tvOS (requires nightly toolchain and -Zbuild-std since tvOS is a Tier 3 target) +# cargo +nightly build -Zbuild-std --target aarch64-apple-visionos-sim --target aarch64-apple-visionos --release +# ;; +# *) +# # Default: Build for iOS (stable toolchain) +# # Device (arm64) +# cargo build --target aarch64-apple-ios --release +# # Simulator (arm64) +# cargo build --target aarch64-apple-ios-sim --release +# ;; +#esac diff --git a/examples/apple/coreaudio-ios-example.xcodeproj/project.pbxproj b/examples/apple/coreaudio-example.xcodeproj/project.pbxproj similarity index 71% rename from examples/apple/coreaudio-ios-example.xcodeproj/project.pbxproj rename to examples/apple/coreaudio-example.xcodeproj/project.pbxproj index 7b5bcaaff..3dd5032e8 100644 --- a/examples/apple/coreaudio-ios-example.xcodeproj/project.pbxproj +++ b/examples/apple/coreaudio-example.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -13,7 +13,12 @@ 57AB5B09252769700040DE8C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 57AB5B01252769700040DE8C /* Main.storyboard */; }; 57AB5B0A252769700040DE8C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AB5B03252769700040DE8C /* main.m */; }; 57AB5B0B252769700040DE8C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AB5B04252769700040DE8C /* AppDelegate.m */; }; - /* tvOS target build files */ + 968772A32EF5C86300CBB8F2 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AB5B03252769700040DE8C /* main.m */; }; + 968772A42EF5C86300CBB8F2 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AB5B04252769700040DE8C /* AppDelegate.m */; }; + 968772A52EF5C86300CBB8F2 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AB5AFE252769700040DE8C /* ViewController.m */; }; + 968772A72EF5C86300CBB8F2 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57AB5AF2252767460040DE8C /* AVFoundation.framework */; }; + 968772A92EF5C86300CBB8F2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 57AB5B01252769700040DE8C /* Main.storyboard */; }; + 968772AA2EF5C86300CBB8F2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 57AB5AFF252769700040DE8C /* LaunchScreen.storyboard */; }; TVOS0001252767460040DE8C /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57AB5AF2252767460040DE8C /* AVFoundation.framework */; }; TVOS0002252769700040DE8C /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AB5AFE252769700040DE8C /* ViewController.m */; }; TVOS0003252769700040DE8C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AB5B03252769700040DE8C /* main.m */; }; @@ -21,14 +26,21 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 57AB5AEE252766820040DE8C /* PBXContainerItemProxy */ = { + 968772B02EF5CD8600CBB8F2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 57AB5AC2252762C00040DE8C /* Project object */; proxyType = 1; remoteGlobalIDString = 57AB5AE9252766240040DE8C; remoteInfo = cargo_apple; }; - TVOS0010252766820040DE8C /* PBXContainerItemProxy */ = { + 968772B32EF5CECD00CBB8F2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 57AB5AC2252762C00040DE8C /* Project object */; + proxyType = 1; + remoteGlobalIDString = 57AB5AE9252766240040DE8C; + remoteInfo = cargo_apple; + }; + 968772B62EF5D15600CBB8F2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 57AB5AC2252762C00040DE8C /* Project object */; proxyType = 1; @@ -39,7 +51,6 @@ /* Begin PBXFileReference section */ 57AB5ACA252762C10040DE8C /* coreaudio-ios-example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "coreaudio-ios-example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - TVOS0020252762C10040DE8C /* coreaudio-tvos-example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "coreaudio-tvos-example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 57AB5AF2252767460040DE8C /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 57AB5AFD252769700040DE8C /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 57AB5AFE252769700040DE8C /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; @@ -48,8 +59,11 @@ 57AB5B03252769700040DE8C /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 57AB5B04252769700040DE8C /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 57AB5B05252769700040DE8C /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; - TVOS0030252769700040DE8C /* Info-tvOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-tvOS.plist"; sourceTree = ""; }; 57AB5B06252769700040DE8C /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 968772AE2EF5C86300CBB8F2 /* coreaudio-visionos-example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "coreaudio-visionos-example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 968772AF2EF5C86300CBB8F2 /* coreaudio-ios-example copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "coreaudio-ios-example copy-Info.plist"; path = "/Users/simlay/projects/rust-audio/coreaudio-rs/examples/apple/coreaudio-ios-example copy-Info.plist"; sourceTree = ""; }; + TVOS0020252762C10040DE8C /* coreaudio-tvos-example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "coreaudio-tvos-example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + TVOS0030252769700040DE8C /* Info-tvOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-tvOS.plist"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -61,6 +75,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 968772A62EF5C86300CBB8F2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 968772A72EF5C86300CBB8F2 /* AVFoundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; TVOS0040252762C10040DE8C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -78,6 +100,7 @@ 57AB5AFC252769700040DE8C /* apple-src */, 57AB5ACB252762C10040DE8C /* Products */, 57AB5AF1252767460040DE8C /* Frameworks */, + 968772AF2EF5C86300CBB8F2 /* coreaudio-ios-example copy-Info.plist */, ); sourceTree = ""; }; @@ -86,6 +109,7 @@ children = ( 57AB5ACA252762C10040DE8C /* coreaudio-ios-example.app */, TVOS0020252762C10040DE8C /* coreaudio-tvos-example.app */, + 968772AE2EF5C86300CBB8F2 /* coreaudio-visionos-example.app */, ); name = Products; sourceTree = ""; @@ -145,13 +169,31 @@ buildRules = ( ); dependencies = ( - 57AB5AEF252766820040DE8C /* PBXTargetDependency */, + 968772B72EF5D15600CBB8F2 /* PBXTargetDependency */, ); name = "coreaudio-ios-example"; productName = "coreaudio-ios-example"; productReference = 57AB5ACA252762C10040DE8C /* coreaudio-ios-example.app */; productType = "com.apple.product-type.application"; }; + 9687729F2EF5C86300CBB8F2 /* coreaudio-visionos-example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 968772AB2EF5C86300CBB8F2 /* Build configuration list for PBXNativeTarget "coreaudio-visionos-example" */; + buildPhases = ( + 968772A22EF5C86300CBB8F2 /* Sources */, + 968772A62EF5C86300CBB8F2 /* Frameworks */, + 968772A82EF5C86300CBB8F2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 968772B42EF5CECD00CBB8F2 /* PBXTargetDependency */, + ); + name = "coreaudio-visionos-example"; + productName = "coreaudio-ios-example"; + productReference = 968772AE2EF5C86300CBB8F2 /* coreaudio-visionos-example.app */; + productType = "com.apple.product-type.application"; + }; TVOS0050252762C10040DE8C /* coreaudio-tvos-example */ = { isa = PBXNativeTarget; buildConfigurationList = TVOS0060252762C30040DE8C /* Build configuration list for PBXNativeTarget "coreaudio-tvos-example" */; @@ -163,7 +205,7 @@ buildRules = ( ); dependencies = ( - TVOS0011252766820040DE8C /* PBXTargetDependency */, + 968772B12EF5CD8600CBB8F2 /* PBXTargetDependency */, ); name = "coreaudio-tvos-example"; productName = "coreaudio-tvos-example"; @@ -181,15 +223,15 @@ 57AB5AC9252762C10040DE8C = { CreatedOnToolsVersion = 12.0.1; }; - TVOS0050252762C10040DE8C = { + 57AB5AE9252766240040DE8C = { CreatedOnToolsVersion = 12.0.1; }; - 57AB5AE9252766240040DE8C = { + TVOS0050252762C10040DE8C = { CreatedOnToolsVersion = 12.0.1; }; }; }; - buildConfigurationList = 57AB5AC5252762C00040DE8C /* Build configuration list for PBXProject "coreaudio-ios-example" */; + buildConfigurationList = 57AB5AC5252762C00040DE8C /* Build configuration list for PBXProject "coreaudio-example" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; @@ -205,6 +247,7 @@ 57AB5AC9252762C10040DE8C /* coreaudio-ios-example */, TVOS0050252762C10040DE8C /* coreaudio-tvos-example */, 57AB5AE9252766240040DE8C /* cargo_apple */, + 9687729F2EF5C86300CBB8F2 /* coreaudio-visionos-example */, ); }; /* End PBXProject section */ @@ -219,6 +262,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 968772A82EF5C86300CBB8F2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 968772A92EF5C86300CBB8F2 /* Main.storyboard in Resources */, + 968772AA2EF5C86300CBB8F2 /* LaunchScreen.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; TVOS0080252762C10040DE8C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -239,6 +291,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 968772A22EF5C86300CBB8F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 968772A32EF5C86300CBB8F2 /* main.m in Sources */, + 968772A42EF5C86300CBB8F2 /* AppDelegate.m in Sources */, + 968772A52EF5C86300CBB8F2 /* ViewController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; TVOS0070252762C10040DE8C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -252,15 +314,21 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 57AB5AEF252766820040DE8C /* PBXTargetDependency */ = { + 968772B12EF5CD8600CBB8F2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 57AB5AE9252766240040DE8C /* cargo_apple */; + targetProxy = 968772B02EF5CD8600CBB8F2 /* PBXContainerItemProxy */; + }; + 968772B42EF5CECD00CBB8F2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 57AB5AE9252766240040DE8C /* cargo_apple */; - targetProxy = 57AB5AEE252766820040DE8C /* PBXContainerItemProxy */; + targetProxy = 968772B32EF5CECD00CBB8F2 /* PBXContainerItemProxy */; }; - TVOS0011252766820040DE8C /* PBXTargetDependency */ = { + 968772B72EF5D15600CBB8F2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; + platformFilter = ios; target = 57AB5AE9252766240040DE8C /* cargo_apple */; - targetProxy = TVOS0010252766820040DE8C /* PBXContainerItemProxy */; + targetProxy = 968772B62EF5D15600CBB8F2 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -340,6 +408,8 @@ MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + TVOS_DEPLOYMENT_TARGET = 15.6; + XROS_DEPLOYMENT_TARGET = 1.3; }; name = Debug; }; @@ -392,7 +462,9 @@ MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; + TVOS_DEPLOYMENT_TARGET = 15.6; VALIDATE_PRODUCT = YES; + XROS_DEPLOYMENT_TARGET = 1.3; }; name = Release; }; @@ -409,10 +481,16 @@ ); "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(SRCROOT)/target/aarch64-apple-ios/release"; "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = "$(SRCROOT)/target/aarch64-apple-ios-sim/release"; + "LIBRARY_SEARCH_PATHS[sdk=xros*]" = "$(SRCROOT)/target/aarch64-apple-visionos/release"; + "LIBRARY_SEARCH_PATHS[sdk=xrsimulator*]" = "$(SRCROOT)/target/aarch64-apple-visionos-sim/release"; OTHER_LDFLAGS = "-lcoreaudio_apple_example"; OTHER_LIBTOOLFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = "coreaudio-rs.coreaudio-ios-example"; PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -428,17 +506,115 @@ "$(inherited)", "@executable_path/Frameworks", ); + "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = ( + "$(SRCROOT)/target/aarch64-apple-ios/release", + "$(SRCROOT)/target/aarch64-apple-visionos/release", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "$(SRCROOT)/target/aarch64-apple-ios-sim/release", + "$(SRCROOT)/target/aarch64-apple-visionos-sim/release", + ); + "LIBRARY_SEARCH_PATHS[sdk=xros*]" = "$(SRCROOT)/target/aarch64-apple-visionos/release"; + "LIBRARY_SEARCH_PATHS[sdk=xrsimulator*]" = "$(SRCROOT)/target/aarch64-apple-visionos-sim/release"; + OTHER_LDFLAGS = "-lcoreaudio_apple_example"; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = "coreaudio-rs.coreaudio-ios-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 57AB5AEB252766240040DE8C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEBUGGING_SYMBOLS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 57AB5AEC252766240040DE8C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + 968772AC2EF5C86300CBB8F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "coreaudio-ios-example copy-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(SRCROOT)/target/aarch64-apple-ios/release"; "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = "$(SRCROOT)/target/aarch64-apple-ios-sim/release"; + "LIBRARY_SEARCH_PATHS[sdk=xros*]" = "$(SRCROOT)/target/aarch64-apple-visionos/release"; + "LIBRARY_SEARCH_PATHS[sdk=xrsimulator*]" = "$(SRCROOT)/target/aarch64-apple-visionos-sim/release"; OTHER_LDFLAGS = "-lcoreaudio_apple_example"; OTHER_LIBTOOLFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = "coreaudio-rs.coreaudio-ios-example"; PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = "1,2"; + SDKROOT = xros; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + TARGETED_DEVICE_FAMILY = 7; + }; + name = Debug; + }; + 968772AD2EF5C86300CBB8F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "coreaudio-ios-example copy-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = ( + "$(SRCROOT)/target/aarch64-apple-ios/release", + "$(SRCROOT)/target/aarch64-apple-visionos/release", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = ( + "$(SRCROOT)/target/aarch64-apple-ios-sim/release", + "$(SRCROOT)/target/aarch64-apple-visionos-sim/release", + ); + "LIBRARY_SEARCH_PATHS[sdk=xros*]" = "$(SRCROOT)/target/aarch64-apple-visionos/release"; + "LIBRARY_SEARCH_PATHS[sdk=xrsimulator*]" = "$(SRCROOT)/target/aarch64-apple-visionos-sim/release"; + OTHER_LDFLAGS = "-lcoreaudio_apple_example"; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = "coreaudio-rs.coreaudio-ios-example"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = xros; + SUPPORTED_PLATFORMS = "xros xrsimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + TARGETED_DEVICE_FAMILY = 7; }; name = Release; }; - /* tvOS target configurations */ TVOS0090252762C30040DE8C /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -483,35 +659,10 @@ }; name = Release; }; - 57AB5AEB252766240040DE8C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEBUGGING_SYMBOLS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 57AB5AEC252766240040DE8C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 57AB5AC5252762C00040DE8C /* Build configuration list for PBXProject "coreaudio-ios-example" */ = { + 57AB5AC5252762C00040DE8C /* Build configuration list for PBXProject "coreaudio-example" */ = { isa = XCConfigurationList; buildConfigurations = ( 57AB5AE1252762C30040DE8C /* Debug */, @@ -529,20 +680,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - TVOS0060252762C30040DE8C /* Build configuration list for PBXNativeTarget "coreaudio-tvos-example" */ = { + 57AB5AEA252766240040DE8C /* Build configuration list for PBXLegacyTarget "cargo_apple" */ = { isa = XCConfigurationList; buildConfigurations = ( - TVOS0090252762C30040DE8C /* Debug */, - TVOS0091252762C30040DE8C /* Release */, + 57AB5AEB252766240040DE8C /* Debug */, + 57AB5AEC252766240040DE8C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 57AB5AEA252766240040DE8C /* Build configuration list for PBXLegacyTarget "cargo_apple" */ = { + 968772AB2EF5C86300CBB8F2 /* Build configuration list for PBXNativeTarget "coreaudio-visionos-example" */ = { isa = XCConfigurationList; buildConfigurations = ( - 57AB5AEB252766240040DE8C /* Debug */, - 57AB5AEC252766240040DE8C /* Release */, + 968772AC2EF5C86300CBB8F2 /* Debug */, + 968772AD2EF5C86300CBB8F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + TVOS0060252762C30040DE8C /* Build configuration list for PBXNativeTarget "coreaudio-tvos-example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + TVOS0090252762C30040DE8C /* Debug */, + TVOS0091252762C30040DE8C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/examples/apple/coreaudio-ios-example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from examples/apple/coreaudio-ios-example.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/examples/apple/coreaudio-ios-example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from examples/apple/coreaudio-ios-example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/xcuserdata/simlay.xcuserdatad/UserInterfaceState.xcuserstate b/examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/xcuserdata/simlay.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..3535517e5d643d616534b9ad003e06a8210a385d GIT binary patch literal 164579 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

+!{ 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 literal 0 HcmV?d00001 diff --git a/examples/apple/coreaudio-ios-example.xcodeproj/xcshareddata/xcschemes/coreaudio-ios-example.xcscheme b/examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-ios-example.xcscheme similarity index 85% rename from examples/apple/coreaudio-ios-example.xcodeproj/xcshareddata/xcschemes/coreaudio-ios-example.xcscheme rename to examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-ios-example.xcscheme index 71bb8e421..663ce32c4 100644 --- a/examples/apple/coreaudio-ios-example.xcodeproj/xcshareddata/xcschemes/coreaudio-ios-example.xcscheme +++ b/examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-ios-example.xcscheme @@ -14,10 +14,10 @@ buildForAnalyzing = "YES"> + ReferencedContainer = "container:coreaudio-example.xcodeproj"> @@ -43,10 +43,10 @@ runnableDebuggingMode = "0"> + ReferencedContainer = "container:coreaudio-example.xcodeproj"> @@ -60,10 +60,10 @@ runnableDebuggingMode = "0"> + ReferencedContainer = "container:coreaudio-example.xcodeproj"> diff --git a/examples/apple/coreaudio-ios-example.xcodeproj/xcshareddata/xcschemes/coreaudio-tvos-example.xcscheme b/examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-tvos-example.xcscheme similarity index 85% rename from examples/apple/coreaudio-ios-example.xcodeproj/xcshareddata/xcschemes/coreaudio-tvos-example.xcscheme rename to examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-tvos-example.xcscheme index bd887e778..8fe3ccb96 100644 --- a/examples/apple/coreaudio-ios-example.xcodeproj/xcshareddata/xcschemes/coreaudio-tvos-example.xcscheme +++ b/examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-tvos-example.xcscheme @@ -14,10 +14,10 @@ buildForAnalyzing = "YES"> + ReferencedContainer = "container:coreaudio-example.xcodeproj"> @@ -43,10 +43,10 @@ runnableDebuggingMode = "0"> + ReferencedContainer = "container:coreaudio-example.xcodeproj"> @@ -60,10 +60,10 @@ runnableDebuggingMode = "0"> + ReferencedContainer = "container:coreaudio-example.xcodeproj"> diff --git a/examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-visionos-example.xcscheme b/examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-visionos-example.xcscheme new file mode 100644 index 000000000..4094458f4 --- /dev/null +++ b/examples/apple/coreaudio-example.xcodeproj/xcshareddata/xcschemes/coreaudio-visionos-example.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/apple/coreaudio-example.xcodeproj/xcuserdata/simlay.xcuserdatad/xcschemes/xcschememanagement.plist b/examples/apple/coreaudio-example.xcodeproj/xcuserdata/simlay.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..9f46ea030 --- /dev/null +++ b/examples/apple/coreaudio-example.xcodeproj/xcuserdata/simlay.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,29 @@ + + + + + SchemeUserState + + cargo_apple.xcscheme_^#shared#^_ + + orderHint + 3 + + coreaudio-ios-example.xcscheme_^#shared#^_ + + orderHint + 0 + + coreaudio-tvos-example.xcscheme_^#shared#^_ + + orderHint + 1 + + coreaudio-visionos-example.xcscheme_^#shared#^_ + + orderHint + 2 + + + + diff --git a/examples/apple/coreaudio-ios-example copy-Info.plist b/examples/apple/coreaudio-ios-example copy-Info.plist new file mode 100644 index 000000000..462567911 --- /dev/null +++ b/examples/apple/coreaudio-ios-example copy-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSupportsIndirectInputEvents + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + NSMicrophoneUsageDescription + coreaudio-rs feedback demo + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/src/audio_unit/mod.rs b/src/audio_unit/mod.rs index 6809d7c69..5f1c207d4 100644 --- a/src/audio_unit/mod.rs +++ b/src/audio_unit/mod.rs @@ -449,7 +449,7 @@ pub unsafe fn get_property( /// ---------- /// /// - **id**: The identifier of the property. -#[cfg(any(target_os = "ios", target_os = "tvos"))] +#[cfg(any(target_os = "ios", target_os = "tvos", target_os = "visionos"))] pub fn audio_session_get_property(id: u32) -> Result { let mut size = ::std::mem::size_of::() as u32; #[allow(deprecated)] diff --git a/src/audio_unit/render_callback.rs b/src/audio_unit/render_callback.rs index e6a767b21..07193bccd 100644 --- a/src/audio_unit/render_callback.rs +++ b/src/audio_unit/render_callback.rs @@ -571,7 +571,7 @@ impl AudioUnit { let buffer_frame_size: u32 = self.get_property(id, Scope::Global, Element::Output)?; buffer_frame_size }; - #[cfg(any(target_os = "ios", target_os = "tvos"))] + #[cfg(any(target_os = "ios", target_os = "tvos", target_os = "visionos"))] let mut buffer_frame_size: u32 = { let id = objc2_audio_toolbox::kAudioSessionProperty_CurrentHardwareIOBufferDuration; let seconds: f32 = super::audio_session_get_property(id)?; diff --git a/src/audio_unit/types.rs b/src/audio_unit/types.rs index 915f81da6..facbfda30 100644 --- a/src/audio_unit/types.rs +++ b/src/audio_unit/types.rs @@ -468,6 +468,6 @@ pub enum IOType { /// /// See /// **Available** in iOS 2.0 and later, and tvOS 9.0 and later. - #[cfg(any(target_os = "ios", target_os = "tvos"))] + #[cfg(any(target_os = "ios", target_os = "tvos", target_os = "visionos"))] RemoteIO = 1919512419, // kAudioUnitSubType_RemoteIO, only available in the iOS/tvOS SDK } From 75fb53c71e5c7a8e534e5c62dd18e04fcf43cc3e Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 14:01:25 -0500 Subject: [PATCH 2/8] Maybe fix ci --- .github/workflows/coreaudio-rs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/coreaudio-rs.yml b/.github/workflows/coreaudio-rs.yml index e99b37d08..1b35e5c63 100644 --- a/.github/workflows/coreaudio-rs.yml +++ b/.github/workflows/coreaudio-rs.yml @@ -62,10 +62,12 @@ jobs: toolchain: nightly components: rust-src targets: "aarch64-apple-ios,aarch64-apple-ios-sim" - - run: cd examples/apple - run: xcodebuild -scheme coreaudio-tvos-example -configuration Debug -derivedDataPath build -sdk appletvsimulator + working-directory: examples/apple - run: xcodebuild -scheme coreaudio-ios-example -configuration Debug -derivedDataPath build -sdk iphonesimulator + working-directory: examples/apple - run: xcodebuild -scheme coreaudio-visionos-example -configuration Debug -derivedDataPath build -sdk xrsimulator + working-directory: examples/apple # Build the docs with all features to make sure docs.rs will work. macos-docs: From ea619771c1faf0728db4426202e646c1eb472e3d Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 14:10:14 -0500 Subject: [PATCH 3/8] Maybe fix ci --- .github/workflows/coreaudio-rs.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/coreaudio-rs.yml b/.github/workflows/coreaudio-rs.yml index 1b35e5c63..037fc6338 100644 --- a/.github/workflows/coreaudio-rs.yml +++ b/.github/workflows/coreaudio-rs.yml @@ -52,9 +52,7 @@ jobs: xcode-builds: runs-on: macOS-latest - env: - ONLY_ACTIVE_ARCH: NO - ARCHS: arm64 + working-directory: examples/apple steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@master @@ -62,12 +60,9 @@ jobs: toolchain: nightly components: rust-src targets: "aarch64-apple-ios,aarch64-apple-ios-sim" - - run: xcodebuild -scheme coreaudio-tvos-example -configuration Debug -derivedDataPath build -sdk appletvsimulator - working-directory: examples/apple - - run: xcodebuild -scheme coreaudio-ios-example -configuration Debug -derivedDataPath build -sdk iphonesimulator - working-directory: examples/apple - - run: xcodebuild -scheme coreaudio-visionos-example -configuration Debug -derivedDataPath build -sdk xrsimulator - working-directory: examples/apple + - run: xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-tvos-example -configuration Debug -derivedDataPath build -sdk appletvsimulator + - run: xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-ios-example -configuration Debug -derivedDataPath build -sdk iphonesimulator + - run: xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-visionos-example -configuration Debug -derivedDataPath build -sdk xrsimulator # Build the docs with all features to make sure docs.rs will work. macos-docs: From 0ba8cfe8d1e40c48795ac17264af615bc43f9abc Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 14:11:23 -0500 Subject: [PATCH 4/8] maybe fix ci --- .github/workflows/coreaudio-rs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/coreaudio-rs.yml b/.github/workflows/coreaudio-rs.yml index 037fc6338..9b32d9280 100644 --- a/.github/workflows/coreaudio-rs.yml +++ b/.github/workflows/coreaudio-rs.yml @@ -52,7 +52,6 @@ jobs: xcode-builds: runs-on: macOS-latest - working-directory: examples/apple steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@master @@ -61,8 +60,11 @@ jobs: components: rust-src targets: "aarch64-apple-ios,aarch64-apple-ios-sim" - run: xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-tvos-example -configuration Debug -derivedDataPath build -sdk appletvsimulator + working-directory: examples/apple - run: xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-ios-example -configuration Debug -derivedDataPath build -sdk iphonesimulator + working-directory: examples/apple - run: xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-visionos-example -configuration Debug -derivedDataPath build -sdk xrsimulator + working-directory: examples/apple # Build the docs with all features to make sure docs.rs will work. macos-docs: From ef0ebf52d0ae038d39b497b27cdfd7506771a833 Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 16:43:19 -0500 Subject: [PATCH 5/8] Make sinewave example work with cargo dinghy --- Cargo.toml | 5 ++- .../UserInterfaceState.xcuserstate | Bin 164579 -> 106691 bytes examples/sine.rs | 29 +++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dbe20208d..a20acb18e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,10 +32,11 @@ audio_unit = ["audio_toolbox"] # Unsupported open_al = [] +[target.'cfg(target_os = "macos")'.dependencies] +libc = "0.2" [dependencies] bitflags = "2.10" -libc = "0.2" objc2-core-foundation = { version = "0.3", optional = true, default-features = false, features = [ "std", "CFString", @@ -67,6 +68,8 @@ objc2-core-audio-types = { version = "0.3", optional = true, default-features = "bitflags", "CoreAudioBaseTypes", ] } +[dev-dependencies] +objc2-avf-audio = "0.3.2" [package.metadata.docs.rs] all-features = true diff --git a/examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/xcuserdata/simlay.xcuserdatad/UserInterfaceState.xcuserstate b/examples/apple/coreaudio-example.xcodeproj/project.xcworkspace/xcuserdata/simlay.xcuserdatad/UserInterfaceState.xcuserstate index 3535517e5d643d616534b9ad003e06a8210a385d..3a8c342f23f869d3e26dccaeb395df17cd73387b 100644 GIT binary patch literal 106691 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

+!{ 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 diff --git a/examples/sine.rs b/examples/sine.rs index 2fb5a00e4..7cb0c61ad 100644 --- a/examples/sine.rs +++ b/examples/sine.rs @@ -34,13 +34,36 @@ impl Iterator for SineWaveGenerator { } fn main() -> Result<(), coreaudio::Error> { + #[cfg(any(target_os = "ios", target_os = "visionos", target_os = "tvos"))] + unsafe { + let session = objc2_avf_audio::AVAudioSession::sharedInstance(); + + #[cfg(target_os = "tvos")] + let _ = session.setCategory_error( + objc2_avf_audio::AVAudioSessionCategoryPlayback.expect("Failed to get option") + ); + #[cfg(any(target_os = "ios", target_os = "tvos"))] + let _ = session.setCategory_withOptions_error( + objc2_avf_audio::AVAudioSessionCategoryPlayAndRecord.expect("Failed to get options"), + objc2_avf_audio::AVAudioSessionCategoryOptions::DefaultToSpeaker, + ); + + } let frequency_hz = 440.; let volume = 0.15; let mut samples = SineWaveGenerator::new(frequency_hz, volume); // Construct an Output audio unit that delivers audio to the default output device. + #[cfg(target_os = "macos")] let mut audio_unit = AudioUnit::new(IOType::DefaultOutput)?; + #[cfg(any(target_os = "ios", target_os = "visionos", target_os = "tvos"))] + let mut audio_unit = AudioUnit::new(coreaudio::audio_unit::IOType::RemoteIO)?; + + // iOS/tvOS/visionOS don't let you reconfigure an "initialized" audio unit, so uninitialize it + #[cfg(any(target_os = "ios", target_os = "visionos", target_os = "tvos"))] + audio_unit.uninitialize()?; + // Read the input format. This is counterintuitive, but it's the format used when sending // audio data to the AudioUnit representing the output device. This is separate from the // format the AudioUnit later uses to send the data to the hardware device. @@ -65,9 +88,13 @@ fn main() -> Result<(), coreaudio::Error> { } Ok(()) })?; + #[cfg(any(target_os = "ios", target_os = "visionos", target_os = "tvos"))] + audio_unit.initialize()?; + audio_unit.start()?; + println!("Audio started - playing 440Hz sine wave"); - std::thread::sleep(std::time::Duration::from_millis(3000)); + std::thread::sleep(std::time::Duration::from_millis(10_000)); Ok(()) } From 59f5e8f334a504bd4d30ccba7c4f4d59896dfb38 Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 16:49:10 -0500 Subject: [PATCH 6/8] Fix ci --- examples/apple/build_rust_deps.sh | 25 +------------------------ examples/apple/rust-toolchain.toml | 4 ++++ examples/sine.rs | 3 +-- 3 files changed, 6 insertions(+), 26 deletions(-) create mode 100644 examples/apple/rust-toolchain.toml diff --git a/examples/apple/build_rust_deps.sh b/examples/apple/build_rust_deps.sh index 176af2a77..30c6675aa 100755 --- a/examples/apple/build_rust_deps.sh +++ b/examples/apple/build_rust_deps.sh @@ -12,10 +12,7 @@ if [[ -n "${DEVELOPER_SDK_DIR:-}" ]]; then export LIBRARY_PATH="${DEVELOPER_SDK_DIR}/MacOSX.sdk/usr/lib:${LIBRARY_PATH:-}" fi -TARGET_DEVICE_PLATFORM_NAME=xrsimulator -echo $TARGET_DEVICE_PLATFORM_NAME -echo SDK ROOT IS: $SDKROOT -cargo +nightly build -Zbuild-std \ +cargo build -Zbuild-std \ --target aarch64-apple-tvos-sim \ --target aarch64-apple-tvos \ --target aarch64-apple-visionos \ @@ -23,23 +20,3 @@ cargo +nightly build -Zbuild-std \ --release cargo build --target aarch64-apple-ios --target aarch64-apple-ios-sim --release - -## Detect which platform we're building for based on SDKROOT -## SDKROOT is set by Xcode and contains the SDK path (e.g., iphoneos, iphonesimulator, appletvos, appletvsimulator) -#case "${TARGET_DEVICE_PLATFORM_NAME:-}" in -# *Appletvos*|*AppleTVSimulator*) -# # Build for tvOS (requires nightly toolchain and -Zbuild-std since tvOS is a Tier 3 target) -# cargo +nightly build -Zbuild-std --target aarch64-apple-tvos-sim --target aarch64-apple-tvos --release -# ;; -# *XROs*|*XRSimulator*|*xrsimulator*|*rxos*) -# # Build for tvOS (requires nightly toolchain and -Zbuild-std since tvOS is a Tier 3 target) -# cargo +nightly build -Zbuild-std --target aarch64-apple-visionos-sim --target aarch64-apple-visionos --release -# ;; -# *) -# # Default: Build for iOS (stable toolchain) -# # Device (arm64) -# cargo build --target aarch64-apple-ios --release -# # Simulator (arm64) -# cargo build --target aarch64-apple-ios-sim --release -# ;; -#esac diff --git a/examples/apple/rust-toolchain.toml b/examples/apple/rust-toolchain.toml new file mode 100644 index 000000000..c91614166 --- /dev/null +++ b/examples/apple/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "nightly" +targets = ["aarch64-apple-ios-sim", "aarch64-apple-ios"] +components = ["rust-src"] diff --git a/examples/sine.rs b/examples/sine.rs index 7cb0c61ad..82b654197 100644 --- a/examples/sine.rs +++ b/examples/sine.rs @@ -40,14 +40,13 @@ fn main() -> Result<(), coreaudio::Error> { #[cfg(target_os = "tvos")] let _ = session.setCategory_error( - objc2_avf_audio::AVAudioSessionCategoryPlayback.expect("Failed to get option") + objc2_avf_audio::AVAudioSessionCategoryPlayback.expect("Failed to get option"), ); #[cfg(any(target_os = "ios", target_os = "tvos"))] let _ = session.setCategory_withOptions_error( objc2_avf_audio::AVAudioSessionCategoryPlayAndRecord.expect("Failed to get options"), objc2_avf_audio::AVAudioSessionCategoryOptions::DefaultToSpeaker, ); - } let frequency_hz = 440.; let volume = 0.15; From 311e0abeded00ddd9ede7a3247beaadb64fd200f Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 18:52:18 -0500 Subject: [PATCH 7/8] Add some simple checks for tvos, visionos and ios --- .github/workflows/coreaudio-rs.yml | 13 +++++++++++++ Cargo.toml | 1 + 2 files changed, 14 insertions(+) diff --git a/.github/workflows/coreaudio-rs.yml b/.github/workflows/coreaudio-rs.yml index 9b32d9280..71c9e1a1c 100644 --- a/.github/workflows/coreaudio-rs.yml +++ b/.github/workflows/coreaudio-rs.yml @@ -66,6 +66,19 @@ jobs: - run: xcodebuild ONLY_ACTIVE_ARCH=NO ARCHS=arm64 -scheme coreaudio-visionos-example -configuration Debug -derivedDataPath build -sdk xrsimulator working-directory: examples/apple + check-examples: + runs-on: macOS-latest + strategy: + matrix: + rust-target: [aarch64-apple-ios-sim, aarch64-apple-tvos-sim, aarch64-apple-visionos-sim] + steps: + - uses: actions/checkout@v6 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: nightly + components: rust-src + - run: cargo +nightly build --all --target ${{ matrix.rust-target }} + # Build the docs with all features to make sure docs.rs will work. macos-docs: runs-on: macOS-latest diff --git a/Cargo.toml b/Cargo.toml index a20acb18e..0dc111f24 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,6 +69,7 @@ objc2-core-audio-types = { version = "0.3", optional = true, default-features = "CoreAudioBaseTypes", ] } [dev-dependencies] +[target.'cfg(any(target_os = "ios", target_os = "tvos", target_os = "visionos"))'.dev-dependencies] objc2-avf-audio = "0.3.2" [package.metadata.docs.rs] From 72f2be537e7fca01b762c5d7dfaef18343081829 Mon Sep 17 00:00:00 2001 From: Sebastian Imlay Date: Fri, 19 Dec 2025 19:07:08 -0500 Subject: [PATCH 8/8] fix ci --- .github/workflows/coreaudio-rs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coreaudio-rs.yml b/.github/workflows/coreaudio-rs.yml index 71c9e1a1c..766ca0521 100644 --- a/.github/workflows/coreaudio-rs.yml +++ b/.github/workflows/coreaudio-rs.yml @@ -77,7 +77,7 @@ jobs: with: toolchain: nightly components: rust-src - - run: cargo +nightly build --all --target ${{ matrix.rust-target }} + - run: cargo +nightly build -Zbuild-std --all --target ${{ matrix.rust-target }} # Build the docs with all features to make sure docs.rs will work. macos-docs: