COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 08-25-2010, 03:43 AM   #41
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

I have it all merged with my code and working - looks good!

The only problem I found was that the IText control seems to only display a single line on the Mac. In windows, my Mac one and IIRC the original IPlug Mac one it can display multiple lines.
cc_ is offline   Reply With Quote
Old 08-25-2010, 04:36 AM   #42
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Well, I have only added your GetText() method and a new GetIText() method to ITextControl, so I don't know... ITextControl:: Draw() simply calls pGraphics->DrawIText(), so I guess the GraphicsMac:: DrawIText() is the one to blame on the Mac. I haven't made any changes to that medthod, so perhaps that is the problem?
Tale is offline   Reply With Quote
Old 08-25-2010, 04:55 AM   #43
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

Yeah, I couldn't see anything you had changed. I'll take a look DrawIText.
cc_ is offline   Reply With Quote
Old 08-25-2010, 07:06 AM   #44
l0calh05t
Human being with feelings
 
l0calh05t's Avatar
 
Join Date: Nov 2008
Location: Darmstadt, Germany
Posts: 673
Default

Dunno if this will work, but I added some simple CMake files (iplug and requirements only, only tested on windows, as i don't have a mac), based on tales repo from today.

http://www.carolander.net/joe/WDL.git/

EDIT: BTW, what's up with the (unused) VSTHosts.cpp?
__________________
Raw data for raw nerves | 1.05946309...
My Blog | My free VST plugins | WDL-OL CMake fork

Last edited by l0calh05t; 08-25-2010 at 07:13 AM.
l0calh05t is offline   Reply With Quote
Old 08-25-2010, 07:16 AM   #45
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by l0calh05t View Post
I can't fetch your repository. When I try I get this error:

fatal: http://www.carolander.net/joe/WDL.git/info/refs not found: did you run git update-server-info on the server?
Tale is offline   Reply With Quote
Old 08-25-2010, 07:23 AM   #46
l0calh05t
Human being with feelings
 
l0calh05t's Avatar
 
Join Date: Nov 2008
Location: Darmstadt, Germany
Posts: 673
Default

Quote:
Originally Posted by Tale View Post
I can't fetch your repository. When I try I get this error:

fatal: http://www.carolander.net/joe/WDL.git/info/refs not found: did you run git update-server-info on the server?
can't run anything on the server, as it's just webspace. any way i can prepare my local repository to upload it?

EDIT: ran that command locally and uploaded the generated info/refs, could you try if it works now?
__________________
Raw data for raw nerves | 1.05946309...
My Blog | My free VST plugins | WDL-OL CMake fork
l0calh05t is offline   Reply With Quote
Old 08-25-2010, 07:29 AM   #47
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,749
Default

There does not seem to be a way to simply copy a git repository from a web server that does not have git enabled (though if I have this wrong I'd be glad to know). As far as I can tell, you can't spoof it by generating stuff locally and uploading. The server has to actually be able to do stuff.

Seems like the options are: use a free git hosting service (there are a bunch listed here), or post a git patch file instead of a repository.

[edit] It looks like I have this wrong, according to Tale's next post.

Last edited by schwa; 08-25-2010 at 07:37 AM.
schwa is offline   Reply With Quote
Old 08-25-2010, 07:34 AM   #48
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by schwa View Post
FWIW, there does not seem to be a way to simply copy a git repository from a web server that does not have git enabled (though if I have this wrong I'd be glad to know).
Well, this is what I do at the moment:

1. git gc
2. git clone --bare . WDL.git
3. cd WDL.git
4. git --bare update-server-info
4. Move (or upload) the WDL.git folder to your webserver

This does seem to work, eventhough I don't have git installed on my webserver.
Tale is offline   Reply With Quote
Old 08-25-2010, 07:36 AM   #49
l0calh05t
Human being with feelings
 
l0calh05t's Avatar
 
Join Date: Nov 2008
Location: Darmstadt, Germany
Posts: 673
Default

hrm, how annoying. anyways here's the patch which hopefully works... http://www.carolander.net/joe/0002-s...ly-so-fa.patch
__________________
Raw data for raw nerves | 1.05946309...
My Blog | My free VST plugins | WDL-OL CMake fork
l0calh05t is offline   Reply With Quote
Old 08-25-2010, 07:36 AM   #50
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,749
Default

Tale, if that works, excellent! I couldn't find any specific answer to the question online. l0calh05t, do you want to try that?
schwa is offline   Reply With Quote
Old 08-25-2010, 07:42 AM   #51
l0calh05t
Human being with feelings
 
l0calh05t's Avatar
 
Join Date: Nov 2008
Location: Darmstadt, Germany
Posts: 673
Default

done according to tale's description
__________________
Raw data for raw nerves | 1.05946309...
My Blog | My free VST plugins | WDL-OL CMake fork
l0calh05t is offline   Reply With Quote
Old 08-25-2010, 07:47 AM   #52
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 15,749
Default

That seemed to work, great!
schwa is offline   Reply With Quote
Old 08-25-2010, 01:03 PM   #53
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by Tale View Post
I have fetched the Cockos next branch, made a few changes (SerializePresets, Win SDK 7 makefile), and cloned it to my website (also in a next branch). BTW, you certainly will not want to merge in my "567d9fe Added IPLUG_NO_JPEG_SUPPORT to IPlug Xcode project".
Actually you won't want the SerializePresets() thing either, and in fact for now you will want to revert my whole SerializeState() commit (8da3756), because it is no good (yet).
Tale is offline   Reply With Quote
Old 08-27-2010, 08:01 AM   #54
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

I have updated my git thingamajig. I reverted all my OSX prompt for user input stuff and anything else that conflicted with tale's stuff, then I added in tale's latest stuff from his next branch. I also removed all my changes to the IPlugExample, sometime soon I'll put together a separate example for my additions.

To get it:

git clone http://evenharmonic.com/WDL.git .

The commit history is a bit of a mess what with all the reversions, but I'm not sure if there's any better way to do things.
cc_ is offline   Reply With Quote
Old 08-30-2010, 12:44 AM   #55
bvesco
Human being with feelings
 
bvesco's Avatar
 
Join Date: Jun 2007
Posts: 125
Default

I'd love to join the git party and start sharing back some of my own tweaks and changes. Here's what I've done so far:

git clone http://www-dev.cockos.com/wdl/WDL.git
git remote add cc http://evenharmonic.com/WDL.git
git remote add l0cal http://www.carolander.net/joe/WDL.git/
git remote add tale http://www.taletn.com/WDL.git
git fetch cc
git fetch l0cal
git fetch tale

Now I think I'm at a point where I can see everyone else's changes. I'm thinking of getting my own branch going and using github to store it all, but have I used the correct set of commands to get set up to do that? Was cloning the core cockos repo the right thing to do? Should I be creating a branch and working from there? How do I cherry-pick changes from others? I could do all this stuff pretty easy in SVN or CVS, but the git way of thinking is quite new to me.
__________________
Audio tutorials and articles: http://www.benvesco.com/tonemonster/
My VST plugins: http://www.vescofx.com/
bvesco is offline   Reply With Quote
Old 08-30-2010, 12:58 AM   #56
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

That looks similar to what I've done, I don't think there's any reason to make a branch unless you need it for something particular - like keeping a master for your plugin and some other for testing stuff out.

I don't think "fetch" is enough though. I have been using "pull" which does a "fetch" and a "merge", so either you will have to do the merge now, or go back and do it again with pull instead of fetch.

Also if you will want to specify tale's "next" branch when you grab his stuff:

git pull http://www.taletn.com/WDL.git next
cc_ is offline   Reply With Quote
Old 08-30-2010, 01:09 AM   #57
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

First I would try to "publish" your own repository to a temporary local directory:

Code:
git clone --bare . WDL_temp.git
cd WDL_temp.git
git --bare update-server-info
cd ..
You can then test your temporary repository by cloning it to another temporary directory:

Code:
md foobar
cd foobar
git init
git remote add tempwdl ../WDL_temp.git
git pull tempwdl master

I don't know (yet) how to push your repository to GitHub, but I assume GitHub has some sort of how-to document for this.
Tale is offline   Reply With Quote
Old 08-30-2010, 01:23 AM   #58
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

So what's the advantage of doing init, then pull? I started doing it that way, but at some point I switched to just using clone and everything seems to be working fine:

Code:
mkdir foobar
cd foobar
git clone ../previous_clone
I'm worried something will bite me later though!
cc_ is offline   Reply With Quote
Old 08-30-2010, 01:35 AM   #59
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Well, I'm still a Git dummy, but I think clone doesn't merge, which is why it it better to add a remote and then fetch/pull it.
Tale is offline   Reply With Quote
Old 08-30-2010, 01:49 AM   #60
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

Those commands don't need a merge, I just clone in an empty directory (I never do git init).

I too have not much idea what's going on. it's all very scary
cc_ is offline   Reply With Quote
Old 08-30-2010, 02:01 AM   #61
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

The same here, but fortunately for us Git seems to be pretty dummy-proof.

The git init is not required when doing git clone, as it already does the init for you. However, it is required when doing git remote add, because else you might add the remote to a git repository higher up the directory tree.
Tale is offline   Reply With Quote
Old 08-30-2010, 02:58 AM   #62
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

Yes, it does seem very dummy proof! I don't think I have managed to actually break anything in all my messing about. Or maybe dummies just can't tell when they've broken things

So far I haven't been using the remote stuff at all. I've only pulled from repos listed on the command line. I guess I should try and figure that out.
cc_ is offline   Reply With Quote
Old 08-31-2010, 12:08 AM   #63
bvesco
Human being with feelings
 
bvesco's Avatar
 
Join Date: Jun 2007
Posts: 125
Default

Thanks to the help on this forum and a git-savvy coworker I am now online with my own thing.

git@github.com:b-vesco/vfx-wdl.git

Since I'm on github the repo is technically "public" which means anyone can write to it. So I can only ask that you not write to the master and cause me a bunch of headaches of learning how to clean it up back to my own personal version If you want to push code to me, at least create a branch for it.

Unfortunately there doesn't seem to be a clean way to do complex merging while keeping a nice revision graph. For instance, if you cherry pick a revision from another branch and later merge that other branch you now have two different unconnected nodes on your revision graph that both point to the same commit. Confusing and cluttered.
__________________
Audio tutorials and articles: http://www.benvesco.com/tonemonster/
My VST plugins: http://www.vescofx.com/
bvesco is offline   Reply With Quote
Old 08-31-2010, 12:21 AM   #64
cc_
Human being with feelings
 
Join Date: Mar 2009
Posts: 256
Default

Quote:
Originally Posted by bvesco View Post
Unfortunately there doesn't seem to be a clean way to do complex merging while keeping a nice revision graph. For instance, if you cherry pick a revision from another branch and later merge that other branch you now have two different unconnected nodes on your revision graph that both point to the same commit. Confusing and cluttered.
I think this is the result of the cherry picking which as far as I understand produces a commit unrelated to the original commit. This thread seems interesting:

http://stackoverflow.com/questions/1...merge-workflow

reading this an other stuff makes me think cherry picking should be used very carefully.
cc_ is offline   Reply With Quote
Old 09-01-2010, 01:13 AM   #65
bvesco
Human being with feelings
 
bvesco's Avatar
 
Join Date: Jun 2007
Posts: 125
Default

That's a great overview you linked. However, I have not yet figured out how to "git merge" a single commit from the "middle" of some other branch.
__________________
Audio tutorials and articles: http://www.benvesco.com/tonemonster/
My VST plugins: http://www.vescofx.com/
bvesco is offline   Reply With Quote
Old 10-18-2010, 07:07 AM   #66
l0calh05t
Human being with feelings
 
l0calh05t's Avatar
 
Join Date: Nov 2008
Location: Darmstadt, Germany
Posts: 673
Default

this guy here collected a few Iplug enhancements/changes:

http://www.plugindeveloper.com/tag/iplug
__________________
Raw data for raw nerves | 1.05946309...
My Blog | My free VST plugins | WDL-OL CMake fork
l0calh05t is offline   Reply With Quote
Old 10-20-2010, 08:07 PM   #67
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

I've just updated our offical WDL branches (master and next) with 52 commits from our own trees. These are all in LICE, SWELL, and basic functions, and hopefully should only be beneficial (nothing too drastic or anything). I've done the update in git only, if anybody really wants a snapshot that can probably be arranged.
Justin is offline   Reply With Quote
Old 10-20-2010, 09:03 PM   #68
junioreq
Human being with feelings
 
junioreq's Avatar
 
Join Date: Aug 2008
Location: Buffalo NY
Posts: 1,091
Default

Thanks Justin....


~Rob.
junioreq is offline   Reply With Quote
Old 10-27-2010, 12:27 PM   #69
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Thanks for the update. I have just pulled the changes into my own WDL edition, and built the latest version (v1.0.4 RC) of my ComboV project with it.
Tale is offline   Reply With Quote
Old 10-29-2010, 04:23 PM   #70
sstillwell
Human being with feelings
 
Join Date: Jul 2006
Location: Cowtown
Posts: 1,562
Default

Okay, for the love of Pete...has anybody here SUCCESSFULLY built IPlug AND an AU using it in 32/64 bit Universal Binary and actually TESTED it? Carbon (or at least the most of the UI portions of Carbon) don't exist in 64-bit, and this seems to cause much anguish.

I can get IPlug to compile cleanly by excluding IGraphicsCarbon.cpp from the 64-bit build and with judicious use of #ifndef __LP64__ / #endif elsewhere to exclude naughty Carbon bits from IGraphicsMac, but I get link errors in the example plugin pointing back to IGraphicsCarbon members even when there shouldn't BE any references left.

I hate to throw it out there guys, but...help?

Scott
__________________
https://www.stillwellaudio.com/
sstillwell is offline   Reply With Quote
Old 10-29-2010, 11:30 PM   #71
sstillwell
Human being with feelings
 
Join Date: Jul 2006
Location: Cowtown
Posts: 1,562
Default

Hmm...clean compile except that now it says it can't find _AUEventListenerNotify at link time (reference coming from four locations in IPlugAU

*sigh*

Sometimes I swear it's just my Mac that is broken.

Scott
__________________
https://www.stillwellaudio.com/
sstillwell is offline   Reply With Quote
Old 10-29-2010, 11:48 PM   #72
asenet
Human being with feelings
 
Join Date: Jun 2010
Posts: 9
Default

I made it to compile clean (#ifdef all Carbon stuff), but when running in AULab it crashes due to differences in the AU structures (32<->64 bit pointers).

I have put this on my list of todos and it should hopefully happen anytime soon.
asenet is offline   Reply With Quote
Old 11-01-2010, 07:34 AM   #73
sstillwell
Human being with feelings
 
Join Date: Jul 2006
Location: Cowtown
Posts: 1,562
Default

Okay, clean compile and link now...had been a bit overzealous in removing what I thought were unused frameworks from the project.

Doesn't WORK, but it compiles and links...back to digging...

Scott
__________________
https://www.stillwellaudio.com/
sstillwell is offline   Reply With Quote
Old 11-01-2010, 08:36 AM   #74
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

I have tried building a 64 bit binary a while ago, compiling and linking wasn't much of a problem. However, I couldn't test it, because I don't have a 64 bit Mac...
Tale is offline   Reply With Quote
Old 11-01-2010, 08:47 PM   #75
sstillwell
Human being with feelings
 
Join Date: Jul 2006
Location: Cowtown
Posts: 1,562
Default

Core Solo or Duo (not Core 2)Mac Mini? Those are the only halfway-recent machines I know of that won't run a 64-bit capable Mac OS (Leopard, Snow Leopard)

I have a Core 2 Duo Mac Mini running Snow Leopard and an old 'Sawtooth' (AGP Graphics) G4 running Tiger. I finally turned off the G4 and unplugged it earlier this year. Got a lot of good use out of it, though!

Scott
__________________
https://www.stillwellaudio.com/
sstillwell is offline   Reply With Quote
Old 11-02-2010, 11:22 AM   #76
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by sstillwell View Post
Core Solo or Duo (not Core 2)Mac Mini? Those are the only halfway-recent machines I know of that won't run a 64-bit capable Mac OS (Leopard, Snow Leopard)
Oh, I see. Well, in that case I stand corrected: I have a fairly modern Core 2 Duo MacBook Pro, so it sure is 64 bit. This just shows what a MacExpert I am... (not!)
Anyway, I have retried building a 64 bit AU, but indeed it won't run. It doesn't even get listed as a valid AU.
Tale is offline   Reply With Quote
Old 11-02-2010, 03:03 PM   #77
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

After reading this I think the problem might be that there is no x86_64 entry point defined in IPlugAU.r. I don't (yet) know how to fix this though.
Tale is offline   Reply With Quote
Old 11-02-2010, 08:39 PM   #78
sstillwell
Human being with feelings
 
Join Date: Jul 2006
Location: Cowtown
Posts: 1,562
Default

Quote:
Originally Posted by Tale View Post
Oh, I see. Well, in that case I stand corrected: I have a fairly modern Core 2 Duo MacBook Pro, so it sure is 64 bit. This just shows what a MacExpert I am... (not!)
Anyway, I have retried building a 64 bit AU, but indeed it won't run. It doesn't even get listed as a valid AU.
Yeah...the MacBook Pros can't run the x64 KERNEL...can't boot x64. They CAN run x64 code on a 32-bit kernel (as do most other Intel Macs). The MacBook Pro is one of the few machines that can NOT boot x64 (most Mac Minis except for maybe the most recent ones are another). The Mac Pro and, I think, recent iMacs can be made to boot the 64-bit kernel, but boot 32-bit by default. The XServe is the only one that boots 64-bit by default.

They ALL run 64-bit code, though, with the exception of the Core Solo and Core Duo Minis, which had processors that were not 64-bit capable.

TMI, I know.

Scott
__________________
https://www.stillwellaudio.com/
sstillwell is offline   Reply With Quote
Old 11-02-2010, 09:42 PM   #79
sstillwell
Human being with feelings
 
Join Date: Jul 2006
Location: Cowtown
Posts: 1,562
Default

Progress made!

You were exactly right...we have to define the resources to tell OS X that there is 64-bit code to be loaded.

Pardon the code dump...my GIT isn't accessible outside at the moment.

IPlugAU.r
Code:
#include "resource.h"   // This is your plugin's resource.h.
#include <AudioUnit/AudioUnit.r>

#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

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

#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

#if TARGET_OS_MAC
// 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
// dual 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
// single-architecture 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

// ----------------

//#ifdef _DEBUG
//  #define PLUG_PUBLIC_NAME PLUG_NAME "_DEBUG"
//#else
#define PLUG_PUBLIC_NAME PLUG_NAME
//#endif

#define RES_ID 1000
#define RES_NAME PLUG_MFR ": " PLUG_PUBLIC_NAME

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

resource 'STR ' (RES_ID + 1, purgeable) {
	PLUG_PUBLIC_NAME " AU"
};

resource 'dlle' (RES_ID) {
	PLUG_ENTRY_STR
};

resource 'thng' (RES_ID, RES_NAME) {
#if PLUG_IS_INST
  kAudioUnitType_MusicDevice,
#else
  kAudioUnitType_Effect,
#endif
	PLUG_UNIQUE_ID,
	PLUG_MFR_ID,
	0, 0, 0, 0,								//	no 68K
	'STR ',	RES_ID,
	'STR ',	RES_ID + 1,
	0,	0,			// icon 
	PLUG_VER,
	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
#define RES_ID 2000
#undef RES_NAME
#define RES_NAME PLUG_MFR ": " PLUG_PUBLIC_NAME " Carbon View"

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

resource 'STR ' (RES_ID + 1, purgeable) {
	PLUG_PUBLIC_NAME " AU Carbon View"
};

resource 'dlle' (RES_ID) {
	PLUG_VIEW_ENTRY_STR
};

resource 'thng' (RES_ID, RES_NAME) {
	kAudioUnitCarbonViewComponentType,
	PLUG_UNIQUE_ID,
	PLUG_MFR_ID,
	0, 0, 0, 0,								//	no 68K
	'STR ',	RES_ID,
	'STR ',	RES_ID + 1,
	0,	0,			// icon 
	PLUG_VER,
	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,
#endif
	}
};

#undef RES_ID
Note that the CarbonView resources are only defined for PPC and IA32, even when a quad-fat binary is specified...they don't exist on 64-bit. Don't know if that's correct or not, but there y'go.

AULab recognizes the 64-bit plugin when launched in 64-bit mode (if you don't know how that works...do a "Get Info" on the application and uncheck the box "Launch in 32-bit mode", then launch it). It crashes when AudioUnitGetPropertyInfo calls down into the IPlugAUEntry, so there's something else busted...but this is progress!

Crashes thus:

Code:
Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000810000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   ...chwa.audiounit.IPlugExample	0x0000000113db1db8 IPlugAU::IPlugAUEntry(ComponentParameters*, void*) + 392
1   ...apple.audio.units.AudioUnit	0x00007fff8115dfbf AudioUnitGetPropertyInfo + 59
2   com.apple.audio.aulab         	0x0000000100002d99 0x100000000 + 11673
3   com.apple.audio.aulab         	0x000000010005002d 0x100000000 + 327725
4   com.apple.audio.aulab         	0x000000010004d928 0x100000000 + 317736
5   com.apple.audio.aulab         	0x000000010004e62e 0x100000000 + 321070
6   com.apple.audio.aulab         	0x000000010004de9d 0x100000000 + 319133
7   com.apple.audio.aulab         	0x000000010003d5d8 0x100000000 + 251352
8   com.apple.audio.aulab         	0x000000010006ebb5 0x100000000 + 453557
9   com.apple.AppKit              	0x00007fff82b40ae9 -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1515
10  com.apple.AppKit              	0x00007fff82b3ecd9 loadNib + 226
11  com.apple.AppKit              	0x00007fff82b3e3ec +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 763
12  com.apple.AppKit              	0x00007fff82b3e021 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 326
13  com.apple.AppKit              	0x00007fff82b3b5a3 NSApplicationMain + 279
14  com.apple.audio.aulab         	0x000000010000147c 0x100000000 + 5244
Scott
__________________
https://www.stillwellaudio.com/
sstillwell is offline   Reply With Quote
Old 11-03-2010, 08:05 AM   #80
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Using your IPlugAU.r my plug-in now also crashes, so at least it gets recognized.

EDIT: My 64-bit plug-in crashes in IPlugAU::IPlugAUEntry(), case kAudioUnitGetPropertyInfoSelect, when it tries to execute *pWriteable = false.

Last edited by Tale; 11-03-2010 at 10:17 AM.
Tale is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 07:20 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.