Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AU version hex format



Blast from the distant past. I've finally gotten to the point where I need to use a two-digit minor version number for my AU's. My last release was version 4.9.0, and the next one is going to be 4.10.0. I recalled some discussion long ago that the component version should be in BCD:

At 5:58 PM -0700 10/10/03, William Stewart wrote:
After some further discussions we decided to use BCD for numbers greater than 9. Thus, 10.3.1 would be:
0x100301


2.3.1 would of course be the same in either case:
0x20301

Sorry for the confusion

Well, I changed my version number to 0x00040A00, because I forgot about the BCD conversion, and lo and behold auval reports:


Component Version: 4.10.0 (0x40A00)
Component's Bundle Version: 0.0.0

So a few questions:

- Are we in fact supposed to be using BCD format? If so, what auval is reporting is wrong. My version number should be 0x00041000. auval should report that the "A" in the version is not legal. Or, if we're not using BCD, then it's reporting the right thing and I leave my version alone. BTW, Logic also reports the AU version as 4.10.0 in their AU Manager if I use a version number of 0x00040A00. If I change the version number to the "correct" 0x00041000, then auval and Logic both report the component version to be 4.16.0. Honestly, if the version numbers are just being treated as raw hex instead of BCD, that's fine with me. It makes it easier to programmatically generate, and we don't have to wait for hosts to update their version display code while our users wonder why the wrong version is getting reported. But I do need to know which way it's going to be.

- Why is the "Bundle Version" now all 0's? At first I thought this was because I changed my version number, but now if I change it back to 0x00040900, the Bundle Version is still showing up as 0.0.0. Do I need to do some magic incantation to rebuild some cache somewhere? All I'm doing is copying the AU to the /Library/Audio/Plug-Ins/Components folder. If I reboot and re-run auval, it's now still reporting the version as 0.0.0. Weird.

- Where is the "Bundle Version" coming from? Is it the CFBundleVersion in the component's Info.plist, or is it the component version in the 'thng' resource? The CFBundleVersion is a string, but the version in the 'thng' resource is a long formatted as above.

Here's the rest of the original thread for reference:

On 10/10/2003, at 12:55 PM, William Stewart wrote:

We're using straight Hex: Thus 2.3.1 would be:
0x20301

The Validation tool will try to print out the version in this format - and checks that the number returned from the component resource is the same as the number returned from the GetComponentVersion API call (but it doesn't do any pass/fail logic on the format of these numbers)

Bill

On 09/10/2003, at 11:49 PM, Jim Wintermyre wrote:

Reviewing some earlier discussion on this, I came across the following response from Bill to Marc:

 > I was wondering, is it explained anywhere what exactly the format  for
 > Audio Unit version values should be?  I mean the value in the  'thng'
 > resource and returned by the Version component selector.  For some
 > reason,
 > I was under the impression that the format was like this:
 >
 > 0xMMMMmmbb

This is the format that we are using

I have a question. Is this similar to the old 'vers' format where the M/m/b numbers are actually in *BCD*? Should our component version numbers be BCD or straight hex?


Thanks,
Jim
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/coreaudio-api/email@hidden

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.