Quote:
Originally Posted by Tale
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.
|
Look at this snippet from AUDispatch.cpp...part of Apple's AU class hierarchy...
Code:
#if __LP64__
// comp instance, parameters in forward order
#define PARAM(_typ, _name, _index, _nparams) \
_typ _name = *(_typ *)¶ms->params[_index + 1];
#else
// parameters in reverse order, then comp instance
#define PARAM(_typ, _name, _index, _nparams) \
_typ _name = *(_typ *)¶ms->params[_nparams - 1 - _index];
#endif
And then look at the definition of GET_COMP_PARAM in IPlugAU.cpp. Why on earth would they reverse the order of everything on 64-bit platforms? It's not (or shouldn't be) an endian thing...
I suspect this is a good part of why it's crashing...but I could of course be wrong.
My brain hurts.
Scott