Funny, does not work for me. The underlying rawValue I get is an actual 
address, not 0x0. Naturally, AudioUnitGetProperty returns -50. I am on iOS. 
Perhaps the API yields different results for different OS?


> Am 19.10.2016 um 17:53 schrieb Matt Grippaldi <[email protected]>:
> 
> This worked for me calling MusicTrackGetProperty
> This is a hack as far as I am concerned
> 
> let nullPtr:UnsafeMutableRawPointer = UnsafeMutableRawPointer.allocate(bytes: 
> 0, alignedTo: 0)
>         
> status = MusicTrackGetProperty(tempoTrack!, 
> kSequenceTrackProperty_TimeResolution, nullPtr, &propertyLength);
> 
> The values returned for propertyLength  was correct and the subsequent call 
> to get the time resolution was also had the correct result.
> 
> Matt Grippaldi
> 
> 
>> On Oct 19, 2016, at 10:09 AM, Vieira Damiani, Luis F <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> How about something like this:
>> 
>> let outputData: UnsafeMutableRawPointer
>>          if let bOData = bO.mData { // Might be a nil?
>>             outputData = bOData
>>          } else {
>>             outputData = inputData
>>             bO.mData = inputData
>>             assert(false)
>>          }
>> 
>> This came from vgorloff's Swift 3 implementation of a host and audiounit -- 
>> you can find it on Github.
>> 
>> Sent from my iPhone
>> 
>> On Oct 19, 2016, at 9:49 AM, Benjamin Federer <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>>> Thanks, Matt
>>> 
>>> Unfortunately this does not work. Since the line creates an explicitly 
>>> unwrapped optional containing nil, AudioUnitGetProperty fails at runtime, 
>>> just as passing in nil directly would (if the compiler would allow it):
>>> 
>>> fatal error: unexpectedly found nil while unwrapping an Optional value
>>> 
>>> For what it’s worth I am currently querying the maximum property size using 
>>> AudioUnitGetPropertyInfo, then getting the property data using 
>>> AudioUnitGetProperty and finally slicing off the portion of relevant data 
>>> reported by the ioDataSize out value.
>>> 
>>> Benjamin
>>> 
>>> 
>>>> Am 19.10.2016 um 15:21 schrieb Matt Grippaldi <[email protected] 
>>>> <mailto:[email protected]>>:
>>>> 
>>>> Try this…
>>>> 
>>>>         let nullPtr:UnsafeMutableRawPointer! = nil
>>>> 
>>>> Matt Grippaldi
>>>> [email protected] <mailto:[email protected]>
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> On Oct 19, 2016, at 7:13 AM, Benjamin Federer <[email protected] 
>>>>> <mailto:[email protected]>> wrote:
>>>>> 
>>>>> Hi there, especially the Core Audio team,
>>>>> 
>>>>> The documentation for AudioUnitGetProperty() says:
>>>>> 
>>>>> public func AudioUnitGetProperty(_ inUnit: AudioUnit, _ inID: 
>>>>> AudioUnitPropertyID, _ inScope: AudioUnitScope, _ inElement: 
>>>>> AudioUnitElement, _ outData: UnsafeMutableRawPointer, _ ioDataSize: 
>>>>> UnsafeMutablePointer<UInt32>) -> OSStatus
>>>>> 
>>>>>> outData: … Set this parameter to NULL when calling this function if you 
>>>>>> only want to determine how much memory to allocate for a variable size 
>>>>>> property.
>>>>> 
>>>>> 
>>>>> I cannot, for the life of me, get Swift 3 to create a NULL pointer. With 
>>>>> Swift 2 it seems this was possible. With Swift 3 I am supposed to pass in 
>>>>> nil instead. But since outData is a non-optional I am not allowed to do 
>>>>> that.
>>>>> 
>>>>> Interestingly, AudioUnitGetPropertyInfo() also works with passing NULL 
>>>>> for its inOut parameters, which are optionals:
>>>>> 
>>>>> public func AudioUnitGetPropertyInfo(_ inUnit: AudioUnit, _ inID: 
>>>>> AudioUnitPropertyID, _ inScope: AudioUnitScope, _ inElement: 
>>>>> AudioUnitElement, _ outDataSize: UnsafeMutablePointer<UInt32>?, _ 
>>>>> outWritable: UnsafeMutablePointer<DarwinBoolean>?) -> OSStatus
>>>>> 
>>>>> Is outData being a non-optional intentional and, if so, how should I pass 
>>>>> in NULL?
>>>>> 
>>>>> Thanks,
>>>>> Benjamin
>>>>> _______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Coreaudio-api mailing list      ([email protected] 
>>>>> <mailto:[email protected]>)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/coreaudio-api/mattg%40kinematicsystems.com
>>>>>  
>>>>> <https://lists.apple.com/mailman/options/coreaudio-api/mattg%40kinematicsystems.com>
>>>>> 
>>>>> This email sent to [email protected] 
>>>>> <mailto:[email protected]>
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Coreaudio-api mailing list      ([email protected] 
>>> <mailto:[email protected]>)
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/coreaudio-api/damiani%40ufl.edu 
>>> <https://lists.apple.com/mailman/options/coreaudio-api/damiani%40ufl.edu>
>>> 
>>> This email sent to [email protected] 
>>> <mailto:[email protected]>_______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Coreaudio-api mailing list      ([email protected] 
>> <mailto:[email protected]>)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/coreaudio-api/mattg%40kinematicsystems.com
>>  
>> <https://lists.apple.com/mailman/options/coreaudio-api/mattg%40kinematicsystems.com>
>> 
>> This email sent to [email protected]
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to