• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
[Solved] Re: 64 bit AU does not show up in AULab
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Solved] Re: 64 bit AU does not show up in AULab


  • Subject: [Solved] Re: 64 bit AU does not show up in AULab
  • From: Heinrich Fink <email@hidden>
  • Date: Wed, 5 Mar 2008 11:26:10 +0100

Fixing the AUResources.r did the thing, my AU is showing up and loading (though there are other 64 bit issues).
But the FilterDemo AU is working that way in 64bit as well. I have attached the new AUResources.r. Also I had to
to add "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64" to the "Other Rez Flags" section in Build settings.


Please let me know if my solution contains errors, or if I misunderstood the issue.

Heinrich

AUResources.r (modified):

#define UseExtendedThingResource 1

#include <CoreServices/CoreServices.r>

// this is a define used to indicate that a component has no static data that would mean
// that no more than one instance could be open at a time - never been true for AUs
#ifndef cmpThreadSafeOnMac
#define cmpThreadSafeOnMac 0x10000000
#endif


#undef  TARGET_REZ_MAC_PPC
#ifdef ppc_YES
	#define TARGET_REZ_MAC_PPC        1
#else
	#define TARGET_REZ_MAC_PPC        0
#endif

#undef  TARGET_REZ_MAC_X86
#ifdef i386_YES
	#define TARGET_REZ_MAC_X86        1
#else
	#define TARGET_REZ_MAC_X86        0
#endif

//HF
#undef  TARGET_REZ_MAC_X86_64
#ifdef x86_64_YES
	#define TARGET_REZ_MAC_X86_64        1
#else
	#define TARGET_REZ_MAC_X86_64        0
#endif

#undef  TARGET_REZ_MAC_PPC64
#ifdef ppc64_YES
	#define TARGET_REZ_MAC_PPC64        1
#else
	#define TARGET_REZ_MAC_PPC64        0
#endif

#if TARGET_OS_MAC

//for quad fat binaries
#ifdef TARGET_REZ_MAC_PPC && TARGET_REZ_MAC_X86 && TARGET_REZ_MAC_X86_64 && TARGET_REZ_MAC_PPC64
#define TARGET_REZ_FAT_COMPONENTS_4 1
#define Target_PlatformType platformPowerPCNativeEntryPoint
#define Target_SecondPlatformType platformIA32NativeEntryPoint
#define Target_ThirdPlatformType platformX86_64NativeEntryPoint
#define Target_FourthPlatformType platformPowerPC64NativeEntryPoint
//for double fat binaries
#elif TARGET_REZ_MAC_PPC && TARGET_REZ_MAC_X86
#define TARGET_REZ_FAT_COMPONENTS_2 1
#define Target_PlatformType platformPowerPCNativeEntryPoint
#define Target_SecondPlatformType platformIA32NativeEntryPoint
//for single arch binaries
#elif TARGET_REZ_MAC_X86
#define Target_PlatformType platformIA32NativeEntryPoint
#elif TARGET_REZ_MAC_X86_64
#define Target_PlatformType platformX86_64NativeEntryPoint
#elif TARGET_REZ_MAC_PPC64
#define Target_PlatformType platformPowerPC64NativeEntryPoint
#else
#define Target_PlatformType platformPowerPCNativeEntryPoint
#endif
#define Target_CodeResType 'dlle'
#define TARGET_REZ_USE_DLLE 1
#else
#error get a real platform type
#endif // not TARGET_OS_MAC


#ifndef TARGET_REZ_FAT_COMPONENTS_2
  #define TARGET_REZ_FAT_COMPONENTS_2			0
#endif

#ifndef TARGET_REZ_FAT_COMPONENTS_4
  #define TARGET_REZ_FAT_COMPONENTS_4			0
#endif

// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

resource 'STR ' (RES_ID, purgeable) {
	NAME
};

resource 'STR ' (RES_ID + 1, purgeable) {
	DESCRIPTION
};

resource 'dlle' (RES_ID) {
	ENTRY_POINT
};

// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

resource 'thng' (RES_ID, NAME) {
	COMP_TYPE,
	COMP_SUBTYPE,
	COMP_MANUF,
	0, 0, 0, 0,								//	no 68K
	'STR ',	RES_ID,
	'STR ',	RES_ID + 1,
	0,	0,			/* icon */
	VERSION,
	componentHasMultiplePlatforms | componentDoAutoVersion,
	0,
	{
		cmpThreadSafeOnMac,
		Target_CodeResType, RES_ID,
		Target_PlatformType,
#if TARGET_REZ_FAT_COMPONENTS_2
		cmpThreadSafeOnMac,
		Target_CodeResType, RES_ID,
		Target_SecondPlatformType,
#elif TARGET_REZ_FAT_COMPONENTS_4
		cmpThreadSafeOnMac,
		Target_CodeResType, RES_ID,
		Target_SecondPlatformType,
		cmpThreadSafeOnMac,
		Target_CodeResType, RES_ID,
		Target_ThirdPlatformType,
		cmpThreadSafeOnMac,
		Target_CodeResType, RES_ID,
		Target_FourthPlatformType,
#endif
	}
};

#undef RES_ID
#undef COMP_TYPE
#undef COMP_SUBTYPE
#undef COMP_MANUF
#undef VERSION
#undef NAME
#undef DESCRIPTION
#undef ENTRY_POINT
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: [Solved] Re: 64 bit AU does not show up in AULab
      • From: William Stewart <email@hidden>
References: 
 >64 bit AU does not show up in AULab (From: Heinrich Fink <email@hidden>)
 >Re: 64 bit AU does not show up in AULab (From: Michael Hopkins <email@hidden>)
 >Re: 64 bit AU does not show up in AULab (From: Heinrich Fink <email@hidden>)

  • Prev by Date: Re: Is a CoreAudio bug the cause of the annoying "overload" messages in Logic 8 ?
  • Next by Date: Re: Is a CoreAudio bug the cause of the annoying "overload" messages in Logic 8 ?
  • Previous by thread: Re: 64 bit AU does not show up in AULab
  • Next by thread: Re: [Solved] Re: 64 bit AU does not show up in AULab
  • Index(es):
    • Date
    • Thread