| @@ -52,9 +52,9 @@ namespace juce | |||||
| #endif | #endif | ||||
| #if AU_LOGGING | #if AU_LOGGING | ||||
| #define log(a) Logger::writeToLog(a); | |||||
| #define JUCE_AU_LOG(a) Logger::writeToLog(a); | |||||
| #else | #else | ||||
| #define log(a) | |||||
| #define JUCE_AU_LOG(a) | |||||
| #endif | #endif | ||||
| namespace AudioUnitFormatHelpers | namespace AudioUnitFormatHelpers | ||||
| @@ -85,7 +85,7 @@ namespace AudioUnitFormatHelpers | |||||
| static const char* auIdentifierPrefix = "AudioUnit:"; | static const char* auIdentifierPrefix = "AudioUnit:"; | ||||
| String createAUPluginIdentifier (const ComponentDescription& desc) | |||||
| String createPluginIdentifier (const AudioComponentDescription& desc) | |||||
| { | { | ||||
| jassert (osTypeToString ('abcd') == "abcd"); // agh, must have got the endianness wrong.. | jassert (osTypeToString ('abcd') == "abcd"); // agh, must have got the endianness wrong.. | ||||
| jassert (stringToOSType ("abcd") == (OSType) 'abcd'); // ditto | jassert (stringToOSType ("abcd") == (OSType) 'abcd'); // ditto | ||||
| @@ -109,48 +109,31 @@ namespace AudioUnitFormatHelpers | |||||
| return s; | return s; | ||||
| } | } | ||||
| void getAUDetails (ComponentRecord* comp, String& name, String& manufacturer) | |||||
| void getNameAndManufacturer (AudioComponent comp, String& name, String& manufacturer) | |||||
| { | { | ||||
| Handle componentNameHandle = NewHandle (sizeof (void*)); | |||||
| Handle componentInfoHandle = NewHandle (sizeof (void*)); | |||||
| if (componentNameHandle != 0 && componentInfoHandle != 0) | |||||
| CFStringRef cfName; | |||||
| if (AudioComponentCopyName (comp, &cfName) == noErr) | |||||
| { | { | ||||
| ComponentDescription desc; | |||||
| if (GetComponentInfo (comp, &desc, componentNameHandle, componentInfoHandle, 0) == noErr) | |||||
| { | |||||
| ConstStr255Param nameString = (ConstStr255Param) (*componentNameHandle); | |||||
| ConstStr255Param infoString = (ConstStr255Param) (*componentInfoHandle); | |||||
| if (nameString != 0 && nameString[0] != 0) | |||||
| { | |||||
| const String all ((const char*) nameString + 1, nameString[0]); | |||||
| DBG ("name: " + all); | |||||
| manufacturer = all.upToFirstOccurrenceOf (":", false, false).trim(); | |||||
| name = all.fromFirstOccurrenceOf (":", false, false).trim(); | |||||
| } | |||||
| if (infoString != 0 && infoString[0] != 0) | |||||
| { | |||||
| DBG ("info: " + String ((const char*) infoString + 1, infoString[0])); | |||||
| } | |||||
| name = String::fromCFString (cfName); | |||||
| CFRelease (cfName); | |||||
| if (name.isEmpty()) | |||||
| name = "<Unknown>"; | |||||
| } | |||||
| DBG ("AU name: " + name); | |||||
| } | |||||
| DisposeHandle (componentNameHandle); | |||||
| DisposeHandle (componentInfoHandle); | |||||
| if (name.isNotEmpty()) | |||||
| { | |||||
| manufacturer = name.upToFirstOccurrenceOf (":", false, false).trim(); | |||||
| name = name.fromFirstOccurrenceOf (":", false, false).trim(); | |||||
| } | |||||
| else | |||||
| { | |||||
| name = "<Unknown>"; | |||||
| } | } | ||||
| } | } | ||||
| bool getComponentDescFromIdentifier (const String& fileOrIdentifier, ComponentDescription& desc, | |||||
| bool getComponentDescFromIdentifier (const String& fileOrIdentifier, AudioComponentDescription& desc, | |||||
| String& name, String& version, String& manufacturer) | String& name, String& version, String& manufacturer) | ||||
| { | { | ||||
| zerostruct (desc); | |||||
| if (fileOrIdentifier.startsWithIgnoreCase (auIdentifierPrefix)) | if (fileOrIdentifier.startsWithIgnoreCase (auIdentifierPrefix)) | ||||
| { | { | ||||
| String s (fileOrIdentifier.substring (jmax (fileOrIdentifier.lastIndexOfChar (':'), | String s (fileOrIdentifier.substring (jmax (fileOrIdentifier.lastIndexOfChar (':'), | ||||
| @@ -162,13 +145,14 @@ namespace AudioUnitFormatHelpers | |||||
| if (tokens.size() == 3) | if (tokens.size() == 3) | ||||
| { | { | ||||
| zerostruct (desc); | |||||
| desc.componentType = stringToOSType (tokens[0]); | desc.componentType = stringToOSType (tokens[0]); | ||||
| desc.componentSubType = stringToOSType (tokens[1]); | desc.componentSubType = stringToOSType (tokens[1]); | ||||
| desc.componentManufacturer = stringToOSType (tokens[2]); | desc.componentManufacturer = stringToOSType (tokens[2]); | ||||
| if (ComponentRecord* comp = FindNextComponent (0, &desc)) | |||||
| if (AudioComponent comp = AudioComponentFindNext (0, &desc)) | |||||
| { | { | ||||
| getAUDetails (comp, name, manufacturer); | |||||
| getNameAndManufacturer (comp, name, manufacturer); | |||||
| return true; | return true; | ||||
| } | } | ||||
| } | } | ||||
| @@ -177,14 +161,11 @@ namespace AudioUnitFormatHelpers | |||||
| return false; | return false; | ||||
| } | } | ||||
| bool getComponentDescFromFile (const String& fileOrIdentifier, ComponentDescription& desc, | |||||
| bool getComponentDescFromFile (const String& fileOrIdentifier, AudioComponentDescription& desc, | |||||
| String& name, String& version, String& manufacturer) | String& name, String& version, String& manufacturer) | ||||
| { | { | ||||
| zerostruct (desc); | zerostruct (desc); | ||||
| if (getComponentDescFromIdentifier (fileOrIdentifier, desc, name, version, manufacturer)) | |||||
| return true; | |||||
| const File file (fileOrIdentifier); | const File file (fileOrIdentifier); | ||||
| if (! file.hasFileExtension (".component")) | if (! file.hasFileExtension (".component")) | ||||
| return false; | return false; | ||||
| @@ -287,7 +268,7 @@ public: | |||||
| numOutputBusChannels (0), | numOutputBusChannels (0), | ||||
| numInputBusses (0), | numInputBusses (0), | ||||
| numOutputBusses (0), | numOutputBusses (0), | ||||
| audioUnit (0), | |||||
| audioUnit (nullptr), | |||||
| parameterListenerRef (0), | parameterListenerRef (0), | ||||
| midiConcatenator (2048) | midiConcatenator (2048) | ||||
| { | { | ||||
| @@ -297,13 +278,14 @@ public: | |||||
| { | { | ||||
| ++insideCallback; | ++insideCallback; | ||||
| log ("Opening AU: " + fileOrIdentifier); | |||||
| JUCE_AU_LOG ("Opening AU: " + fileOrIdentifier); | |||||
| if (getComponentDescFromFile (fileOrIdentifier, componentDesc, pluginName, version, manufacturer)) | |||||
| if (getComponentDescFromIdentifier (fileOrIdentifier, componentDesc, pluginName, version, manufacturer) | |||||
| || getComponentDescFromFile (fileOrIdentifier, componentDesc, pluginName, version, manufacturer)) | |||||
| { | { | ||||
| if (ComponentRecord* const comp = FindNextComponent (0, &componentDesc)) | |||||
| if (AudioComponent comp = AudioComponentFindNext (0, &componentDesc)) | |||||
| { | { | ||||
| audioUnit = (AudioUnit) OpenComponent (comp); | |||||
| AudioComponentInstanceNew (comp, &audioUnit); | |||||
| wantsMidiMessages = componentDesc.componentType == kAudioUnitType_MusicDevice | wantsMidiMessages = componentDesc.componentType == kAudioUnitType_MusicDevice | ||||
| || componentDesc.componentType == kAudioUnitType_MusicEffect; | || componentDesc.componentType == kAudioUnitType_MusicEffect; | ||||
| @@ -330,13 +312,13 @@ public: | |||||
| parameterListenerRef = 0; | parameterListenerRef = 0; | ||||
| } | } | ||||
| if (audioUnit != 0) | |||||
| if (audioUnit != nullptr) | |||||
| { | { | ||||
| if (prepared) | if (prepared) | ||||
| releaseResources(); | releaseResources(); | ||||
| CloseComponent (audioUnit); | |||||
| audioUnit = 0; | |||||
| AudioComponentInstanceDispose (audioUnit); | |||||
| audioUnit = nullptr; | |||||
| } | } | ||||
| } | } | ||||
| @@ -358,7 +340,7 @@ public: | |||||
| { | { | ||||
| desc.name = pluginName; | desc.name = pluginName; | ||||
| desc.descriptiveName = pluginName; | desc.descriptiveName = pluginName; | ||||
| desc.fileOrIdentifier = AudioUnitFormatHelpers::createAUPluginIdentifier (componentDesc); | |||||
| desc.fileOrIdentifier = AudioUnitFormatHelpers::createPluginIdentifier (componentDesc); | |||||
| desc.uid = ((int) componentDesc.componentType) | desc.uid = ((int) componentDesc.componentType) | ||||
| ^ ((int) componentDesc.componentSubType) | ^ ((int) componentDesc.componentSubType) | ||||
| ^ ((int) componentDesc.componentManufacturer); | ^ ((int) componentDesc.componentManufacturer); | ||||
| @@ -385,7 +367,7 @@ public: | |||||
| Float64 tail = 0; | Float64 tail = 0; | ||||
| UInt32 tailSize = sizeof (tail); | UInt32 tailSize = sizeof (tail); | ||||
| if (audioUnit != 0) | |||||
| if (audioUnit != nullptr) | |||||
| AudioUnitGetProperty (audioUnit, kAudioUnitProperty_TailTime, kAudioUnitScope_Global, | AudioUnitGetProperty (audioUnit, kAudioUnitProperty_TailTime, kAudioUnitScope_Global, | ||||
| 0, &tail, &tailSize); | 0, &tail, &tailSize); | ||||
| @@ -398,16 +380,16 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| // AudioProcessor methods: | // AudioProcessor methods: | ||||
| void prepareToPlay (double sampleRate_, int estimatedSamplesPerBlock) | |||||
| void prepareToPlay (double newSampleRate, int estimatedSamplesPerBlock) | |||||
| { | { | ||||
| if (audioUnit != 0) | |||||
| if (audioUnit != nullptr) | |||||
| { | { | ||||
| releaseResources(); | releaseResources(); | ||||
| updateNumChannels(); | updateNumChannels(); | ||||
| Float64 sampleRateIn = 0, sampleRateOut = 0; | Float64 sampleRateIn = 0, sampleRateOut = 0; | ||||
| UInt32 sampleRateSize = sizeof (sampleRateIn); | UInt32 sampleRateSize = sizeof (sampleRateIn); | ||||
| const Float64 sr = sampleRate_; | |||||
| const Float64 sr = newSampleRate; | |||||
| for (int i = 0; i < numInputBusses; ++i) | for (int i = 0; i < numInputBusses; ++i) | ||||
| { | { | ||||
| @@ -431,24 +413,19 @@ public: | |||||
| setPlayConfigDetails (numInputBusChannels * numInputBusses, | setPlayConfigDetails (numInputBusChannels * numInputBusses, | ||||
| numOutputBusChannels * numOutputBusses, | numOutputBusChannels * numOutputBusses, | ||||
| sampleRate_, estimatedSamplesPerBlock); | |||||
| newSampleRate, estimatedSamplesPerBlock); | |||||
| Float64 latencySecs = 0.0; | Float64 latencySecs = 0.0; | ||||
| UInt32 latencySize = sizeof (latencySecs); | UInt32 latencySize = sizeof (latencySecs); | ||||
| AudioUnitGetProperty (audioUnit, kAudioUnitProperty_Latency, kAudioUnitScope_Global, | AudioUnitGetProperty (audioUnit, kAudioUnitProperty_Latency, kAudioUnitScope_Global, | ||||
| 0, &latencySecs, &latencySize); | 0, &latencySecs, &latencySize); | ||||
| setLatencySamples (roundToInt (latencySecs * sampleRate_)); | |||||
| for (int i = 0; i < numInputBusses; ++i) AudioUnitReset (audioUnit, kAudioUnitScope_Input, i); | |||||
| for (int i = 0; i < numOutputBusses; ++i) AudioUnitReset (audioUnit, kAudioUnitScope_Output, i); | |||||
| AudioUnitReset (audioUnit, kAudioUnitScope_Global, 0); | |||||
| setLatencySamples (roundToInt (latencySecs * newSampleRate)); | |||||
| { | { | ||||
| AudioStreamBasicDescription stream; | AudioStreamBasicDescription stream; | ||||
| zerostruct (stream); // (can't use "= { 0 }" on this object because it's typedef'ed as a C struct) | zerostruct (stream); // (can't use "= { 0 }" on this object because it's typedef'ed as a C struct) | ||||
| stream.mSampleRate = sampleRate_; | |||||
| stream.mSampleRate = sr; | |||||
| stream.mFormatID = kAudioFormatLinearPCM; | stream.mFormatID = kAudioFormatLinearPCM; | ||||
| stream.mFormatFlags = kAudioFormatFlagsNativeFloatPacked | kAudioFormatFlagIsNonInterleaved | kAudioFormatFlagsNativeEndian; | stream.mFormatFlags = kAudioFormatFlagsNativeFloatPacked | kAudioFormatFlagIsNonInterleaved | kAudioFormatFlagsNativeEndian; | ||||
| stream.mFramesPerPacket = 1; | stream.mFramesPerPacket = 1; | ||||
| @@ -479,6 +456,8 @@ public: | |||||
| currentBuffer = nullptr; | currentBuffer = nullptr; | ||||
| wasPlaying = false; | wasPlaying = false; | ||||
| resetBusses(); | |||||
| prepared = (AudioUnitInitialize (audioUnit) == noErr); | prepared = (AudioUnitInitialize (audioUnit) == noErr); | ||||
| jassert (prepared); | jassert (prepared); | ||||
| } | } | ||||
| @@ -489,10 +468,7 @@ public: | |||||
| if (prepared) | if (prepared) | ||||
| { | { | ||||
| AudioUnitUninitialize (audioUnit); | AudioUnitUninitialize (audioUnit); | ||||
| for (int i = 0; i < numInputBusses; ++i) AudioUnitReset (audioUnit, kAudioUnitScope_Input, i); | |||||
| for (int i = 0; i < numOutputBusses; ++i) AudioUnitReset (audioUnit, kAudioUnitScope_Output, i); | |||||
| resetBusses(); | |||||
| AudioUnitReset (audioUnit, kAudioUnitScope_Global, 0); | AudioUnitReset (audioUnit, kAudioUnitScope_Global, 0); | ||||
| outputBufferList.free(); | outputBufferList.free(); | ||||
| @@ -503,6 +479,12 @@ public: | |||||
| incomingMidi.clear(); | incomingMidi.clear(); | ||||
| } | } | ||||
| void resetBusses() | |||||
| { | |||||
| for (int i = 0; i < numInputBusses; ++i) AudioUnitReset (audioUnit, kAudioUnitScope_Input, i); | |||||
| for (int i = 0; i < numOutputBusses; ++i) AudioUnitReset (audioUnit, kAudioUnitScope_Output, i); | |||||
| } | |||||
| void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages) | void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages) | ||||
| { | { | ||||
| const int numSamples = buffer.getNumSamples(); | const int numSamples = buffer.getNumSamples(); | ||||
| @@ -530,9 +512,8 @@ public: | |||||
| { | { | ||||
| const uint8* midiEventData; | const uint8* midiEventData; | ||||
| int midiEventSize, midiEventPosition; | int midiEventSize, midiEventPosition; | ||||
| MidiBuffer::Iterator i (midiMessages); | |||||
| while (i.getNextEvent (midiEventData, midiEventSize, midiEventPosition)) | |||||
| for (MidiBuffer::Iterator i (midiMessages); i.getNextEvent (midiEventData, midiEventSize, midiEventPosition);) | |||||
| { | { | ||||
| if (midiEventSize <= 3) | if (midiEventSize <= 3) | ||||
| MusicDeviceMIDIEvent (audioUnit, | MusicDeviceMIDIEvent (audioUnit, | ||||
| @@ -545,10 +526,12 @@ public: | |||||
| midiMessages.clear(); | midiMessages.clear(); | ||||
| } | } | ||||
| AudioUnitRenderActionFlags flags = 0; | |||||
| for (int i = 0; i < numOutputBusses; ++i) | for (int i = 0; i < numOutputBusses; ++i) | ||||
| { | |||||
| AudioUnitRenderActionFlags flags = 0; | |||||
| AudioUnitRender (audioUnit, &flags, &timeStamp, i, numSamples, getAudioBufferListForBus (i)); | AudioUnitRender (audioUnit, &flags, &timeStamp, i, numSamples, getAudioBufferListForBus (i)); | ||||
| } | |||||
| timeStamp.mSampleTime += numSamples; | timeStamp.mSampleTime += numSamples; | ||||
| } | } | ||||
| @@ -600,7 +583,7 @@ public: | |||||
| AudioUnitParameterValue value = 0; | AudioUnitParameterValue value = 0; | ||||
| if (audioUnit != 0) | |||||
| if (audioUnit != nullptr) | |||||
| { | { | ||||
| if (const ParamInfo* p = parameters[index]) | if (const ParamInfo* p = parameters[index]) | ||||
| { | { | ||||
| @@ -620,7 +603,7 @@ public: | |||||
| { | { | ||||
| const ScopedLock sl (lock); | const ScopedLock sl (lock); | ||||
| if (audioUnit != 0) | |||||
| if (audioUnit != nullptr) | |||||
| { | { | ||||
| if (const ParamInfo* p = parameters[index]) | if (const ParamInfo* p = parameters[index]) | ||||
| { | { | ||||
| @@ -634,7 +617,7 @@ public: | |||||
| void sendParameterChangeEvent (int index) | void sendParameterChangeEvent (int index) | ||||
| { | { | ||||
| jassert (audioUnit != 0); | |||||
| jassert (audioUnit != nullptr); | |||||
| const ParamInfo& p = *parameters.getUnchecked (index); | const ParamInfo& p = *parameters.getUnchecked (index); | ||||
| @@ -815,7 +798,7 @@ public: | |||||
| { | { | ||||
| parameters.clear(); | parameters.clear(); | ||||
| if (audioUnit != 0) | |||||
| if (audioUnit != nullptr) | |||||
| { | { | ||||
| UInt32 paramListSize = 0; | UInt32 paramListSize = 0; | ||||
| AudioUnitGetProperty (audioUnit, kAudioUnitProperty_ParameterList, kAudioUnitScope_Global, | AudioUnitGetProperty (audioUnit, kAudioUnitProperty_ParameterList, kAudioUnitScope_Global, | ||||
| @@ -879,7 +862,7 @@ private: | |||||
| friend class AudioUnitPluginWindowCocoa; | friend class AudioUnitPluginWindowCocoa; | ||||
| friend class AudioUnitPluginFormat; | friend class AudioUnitPluginFormat; | ||||
| ComponentDescription componentDesc; | |||||
| AudioComponentDescription componentDesc; | |||||
| String pluginName, manufacturer, version; | String pluginName, manufacturer, version; | ||||
| String fileOrIdentifier; | String fileOrIdentifier; | ||||
| CriticalSection lock; | CriticalSection lock; | ||||
| @@ -909,7 +892,7 @@ private: | |||||
| void setPluginCallbacks() | void setPluginCallbacks() | ||||
| { | { | ||||
| if (audioUnit != 0) | |||||
| if (audioUnit != nullptr) | |||||
| { | { | ||||
| { | { | ||||
| AURenderCallbackStruct info; | AURenderCallbackStruct info; | ||||
| @@ -1365,7 +1348,7 @@ private: | |||||
| { | { | ||||
| { | { | ||||
| // This forces CoreAudio.component to be loaded, otherwise the AUGenericView will assert | // This forces CoreAudio.component to be loaded, otherwise the AUGenericView will assert | ||||
| ComponentDescription desc; | |||||
| AudioComponentDescription desc; | |||||
| String name, version, manufacturer; | String name, version, manufacturer; | ||||
| AudioUnitFormatHelpers::getComponentDescFromIdentifier ("AudioUnit:Output/auou,genr,appl", | AudioUnitFormatHelpers::getComponentDescFromIdentifier ("AudioUnit:Output/auou,genr,appl", | ||||
| desc, name, version, manufacturer); | desc, name, version, manufacturer); | ||||
| @@ -1395,8 +1378,8 @@ public: | |||||
| AudioUnitPluginWindowCarbon (AudioUnitPluginInstance& plugin_) | AudioUnitPluginWindowCarbon (AudioUnitPluginInstance& plugin_) | ||||
| : AudioProcessorEditor (&plugin_), | : AudioProcessorEditor (&plugin_), | ||||
| plugin (plugin_), | plugin (plugin_), | ||||
| componentRecord (nullptr), | |||||
| viewComponent (0) | |||||
| audioComponent (nullptr), | |||||
| viewComponent (nullptr) | |||||
| { | { | ||||
| addAndMakeVisible (innerWrapper = new InnerWrapperComponent (*this)); | addAndMakeVisible (innerWrapper = new InnerWrapperComponent (*this)); | ||||
| @@ -1409,12 +1392,12 @@ public: | |||||
| kAudioUnitScope_Global, 0, &propertySize, NULL) == noErr | kAudioUnitScope_Global, 0, &propertySize, NULL) == noErr | ||||
| && propertySize > 0) | && propertySize > 0) | ||||
| { | { | ||||
| HeapBlock<ComponentDescription> views (propertySize / sizeof (ComponentDescription)); | |||||
| HeapBlock<AudioComponentDescription> views (propertySize / sizeof (AudioComponentDescription)); | |||||
| if (AudioUnitGetProperty (plugin.audioUnit, kAudioUnitProperty_GetUIComponentList, | if (AudioUnitGetProperty (plugin.audioUnit, kAudioUnitProperty_GetUIComponentList, | ||||
| kAudioUnitScope_Global, 0, &views[0], &propertySize) == noErr) | kAudioUnitScope_Global, 0, &views[0], &propertySize) == noErr) | ||||
| { | { | ||||
| componentRecord = FindNextComponent (0, &views[0]); | |||||
| audioComponent = AudioComponentFindNext (nullptr, &views[0]); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -1427,7 +1410,7 @@ public: | |||||
| plugin.editorBeingDeleted (this); | plugin.editorBeingDeleted (this); | ||||
| } | } | ||||
| bool isValid() const noexcept { return componentRecord != nullptr; } | |||||
| bool isValid() const noexcept { return audioComponent != nullptr; } | |||||
| //============================================================================== | //============================================================================== | ||||
| void paint (Graphics& g) | void paint (Graphics& g) | ||||
| @@ -1450,27 +1433,27 @@ public: | |||||
| AudioUnitCarbonView getViewComponent() | AudioUnitCarbonView getViewComponent() | ||||
| { | { | ||||
| if (viewComponent == 0 && componentRecord != nullptr) | |||||
| viewComponent = (AudioUnitCarbonView) OpenComponent (componentRecord); | |||||
| if (viewComponent == nullptr && audioComponent != nullptr) | |||||
| AudioComponentInstanceNew (audioComponent, &viewComponent); | |||||
| return viewComponent; | return viewComponent; | ||||
| } | } | ||||
| void closeViewComponent() | void closeViewComponent() | ||||
| { | { | ||||
| if (viewComponent != 0) | |||||
| if (viewComponent != nullptr) | |||||
| { | { | ||||
| log ("Closing AU GUI: " + plugin.getName()); | |||||
| JUCE_AU_LOG ("Closing AU GUI: " + plugin.getName()); | |||||
| CloseComponent (viewComponent); | |||||
| viewComponent = 0; | |||||
| AudioComponentInstanceDispose (viewComponent); | |||||
| viewComponent = nullptr; | |||||
| } | } | ||||
| } | } | ||||
| private: | private: | ||||
| //============================================================================== | //============================================================================== | ||||
| AudioUnitPluginInstance& plugin; | AudioUnitPluginInstance& plugin; | ||||
| ComponentRecord* componentRecord; | |||||
| AudioComponent audioComponent; | |||||
| AudioUnitCarbonView viewComponent; | AudioUnitCarbonView viewComponent; | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -1489,7 +1472,7 @@ private: | |||||
| HIViewRef attachView (WindowRef windowRef, HIViewRef rootView) | HIViewRef attachView (WindowRef windowRef, HIViewRef rootView) | ||||
| { | { | ||||
| log ("Opening AU GUI: " + owner.plugin.getName()); | |||||
| JUCE_AU_LOG ("Opening AU GUI: " + owner.plugin.getName()); | |||||
| AudioUnitCarbonView carbonView = owner.getViewComponent(); | AudioUnitCarbonView carbonView = owner.getViewComponent(); | ||||
| @@ -1598,7 +1581,7 @@ AudioPluginInstance* AudioUnitPluginFormat::createInstanceFromDescription (const | |||||
| { | { | ||||
| ScopedPointer <AudioUnitPluginInstance> result (new AudioUnitPluginInstance (desc.fileOrIdentifier)); | ScopedPointer <AudioUnitPluginInstance> result (new AudioUnitPluginInstance (desc.fileOrIdentifier)); | ||||
| if (result->audioUnit != 0) | |||||
| if (result->audioUnit != nullptr) | |||||
| { | { | ||||
| result->initialise(); | result->initialise(); | ||||
| return result.release(); | return result.release(); | ||||
| @@ -1612,19 +1595,19 @@ StringArray AudioUnitPluginFormat::searchPathsForPlugins (const FileSearchPath& | |||||
| const bool /*recursive*/) | const bool /*recursive*/) | ||||
| { | { | ||||
| StringArray result; | StringArray result; | ||||
| ComponentRecord* comp = nullptr; | |||||
| AudioComponent comp = nullptr; | |||||
| for (;;) | for (;;) | ||||
| { | { | ||||
| ComponentDescription desc; | |||||
| AudioComponentDescription desc; | |||||
| zerostruct (desc); | zerostruct (desc); | ||||
| comp = FindNextComponent (comp, &desc); | |||||
| comp = AudioComponentFindNext (comp, &desc); | |||||
| if (comp == 0) | |||||
| if (comp == nullptr) | |||||
| break; | break; | ||||
| GetComponentInfo (comp, &desc, 0, 0, 0); | |||||
| AudioComponentGetDescription (comp, &desc); | |||||
| if (desc.componentType == kAudioUnitType_MusicDevice | if (desc.componentType == kAudioUnitType_MusicDevice | ||||
| || desc.componentType == kAudioUnitType_MusicEffect | || desc.componentType == kAudioUnitType_MusicEffect | ||||
| @@ -1632,7 +1615,7 @@ StringArray AudioUnitPluginFormat::searchPathsForPlugins (const FileSearchPath& | |||||
| || desc.componentType == kAudioUnitType_Generator | || desc.componentType == kAudioUnitType_Generator | ||||
| || desc.componentType == kAudioUnitType_Panner) | || desc.componentType == kAudioUnitType_Panner) | ||||
| { | { | ||||
| const String s (AudioUnitFormatHelpers::createAUPluginIdentifier (desc)); | |||||
| const String s (AudioUnitFormatHelpers::createPluginIdentifier (desc)); | |||||
| DBG (s); | DBG (s); | ||||
| result.add (s); | result.add (s); | ||||
| } | } | ||||
| @@ -1643,11 +1626,11 @@ StringArray AudioUnitPluginFormat::searchPathsForPlugins (const FileSearchPath& | |||||
| bool AudioUnitPluginFormat::fileMightContainThisPluginType (const String& fileOrIdentifier) | bool AudioUnitPluginFormat::fileMightContainThisPluginType (const String& fileOrIdentifier) | ||||
| { | { | ||||
| ComponentDescription desc; | |||||
| AudioComponentDescription desc; | |||||
| String name, version, manufacturer; | String name, version, manufacturer; | ||||
| if (AudioUnitFormatHelpers::getComponentDescFromIdentifier (fileOrIdentifier, desc, name, version, manufacturer)) | if (AudioUnitFormatHelpers::getComponentDescFromIdentifier (fileOrIdentifier, desc, name, version, manufacturer)) | ||||
| return FindNextComponent (0, &desc) != 0; | |||||
| return AudioComponentFindNext (nullptr, &desc) != nullptr; | |||||
| const File f (File::createFileWithoutCheckingPath (fileOrIdentifier)); | const File f (File::createFileWithoutCheckingPath (fileOrIdentifier)); | ||||
| @@ -1657,7 +1640,7 @@ bool AudioUnitPluginFormat::fileMightContainThisPluginType (const String& fileOr | |||||
| String AudioUnitPluginFormat::getNameOfPluginFromIdentifier (const String& fileOrIdentifier) | String AudioUnitPluginFormat::getNameOfPluginFromIdentifier (const String& fileOrIdentifier) | ||||
| { | { | ||||
| ComponentDescription desc; | |||||
| AudioComponentDescription desc; | |||||
| String name, version, manufacturer; | String name, version, manufacturer; | ||||
| AudioUnitFormatHelpers::getComponentDescFromIdentifier (fileOrIdentifier, desc, name, version, manufacturer); | AudioUnitFormatHelpers::getComponentDescFromIdentifier (fileOrIdentifier, desc, name, version, manufacturer); | ||||
| @@ -1680,6 +1663,6 @@ FileSearchPath AudioUnitPluginFormat::getDefaultLocationsToSearch() | |||||
| return FileSearchPath(); | return FileSearchPath(); | ||||
| } | } | ||||
| #undef log | |||||
| #undef JUCE_AU_LOG | |||||
| #endif | #endif | ||||