-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wrapper for AURenderEvent? #52
Comments
Ah so Perhaps I could pull Line 50 in 5837e3a
|
How about this? |
Did you just hand-write the header file instead of generating it because it's an ObjC header? I believe @simlay had made changes to bindgen to allow generating ObjC headers as well. I remember that enabling it seems to change a few things in the generated code which if I remember right was not a big deal (but needed fixing). One problem was that by adding in ObjC generation, coreaudio-sys as a dependency takes wayyy longer to compile which doesn't seem ideal to have on by default. Maybe there's a path forward where ObjC headers can be generated via an opt-in feature? I haven't used Rust since the work I did for adding iOS support, so perhaps with what I have mentioned above we can figure out a path forward? @simlay are you able to elaborate on the ObjC support? I did some digging and found this https://rust-lang.github.io/rust-bindgen/objc.html and this https://github.com/simlay/uikit-sys/blob/master/build.rs#L55 I also found the thread where I mentioned disabling the ObjC support in some PR #33 (comment) So those would be the flags needed to re-enable it I think unless bindgen has changed a lot. While adding your one header file manually would not make things any slower and would be faster than enabling ObjC support, it's my understanding that this goes against the point of the library which is to generate the headers? |
@MichaelHills I copy-pasted the code from the apple header. I didn't know bindgen had any ObjC support. In this case, I don't think it's too bad because Apple can't change AURenderEvent without breaking existing binaries. What do you think? The library is still generating the bindings from headers. |
Yeah! I added a lot of the Objective-c support last year. I'll admit that it's definitely not perfect. It's missing rust-lang/rust-bindgen#1784.
I mean, I think they can? I don't follow the SDK release notes well enough to know how often this happens. |
Personally I don't think it makes sense to manually cut/paste code from ObjC headers one file at a time as different people want them. The whole point of the library is to automatically (and completely?) generate bindings for different subsets of the coreaudio functionality. I think adding in ObjC support would be the better approach, but as @simlay pointed out whatever is currently in bindgen is not perfect. I'll at least try re-activating the ObjC support and see what happens, and see if AURenderEvent comes out with it. Perhaps will also see if ObjC generation can be an opt-in flag if it's as slow as I remember it being. It's probably just slower because there's just so much more code to generate, but if I was using the library and it got 2x slower overnight with no way of turning it off I'd probably call that a performance regression. |
AURenderEvent does appear when objc support is enabled, see #55 but it's not quite working yet due to compile errors. |
I'd like to use
AURenderEvent
from Rust.https://developer.apple.com/documentation/audiotoolbox/aurenderevent
It's in the Audio Toolbox framework. When I enable the
audio_toolbox
feature, I don't seeAURenderEvent
in the generatedcoreaudio.rs
.How can I add a wrapper for it?
thanks!
The text was updated successfully, but these errors were encountered: