mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
AUv3 Client: Tidy up static methods
This commit is contained in:
parent
ef4b5957ec
commit
dedfac8dd8
1 changed files with 93 additions and 138 deletions
|
|
@ -210,64 +210,125 @@ private:
|
||||||
addIvar<JuceAudioUnitv3Base*> ("cppObject");
|
addIvar<JuceAudioUnitv3Base*> ("cppObject");
|
||||||
|
|
||||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wundeclared-selector")
|
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wundeclared-selector")
|
||||||
addMethod (@selector (initWithComponentDescription:options:error:juceClass:), initWithComponentDescriptionAndJuceClass);
|
addMethod (@selector (initWithComponentDescription:options:error:juceClass:), [] (id _self,
|
||||||
|
SEL,
|
||||||
|
AudioComponentDescription descr,
|
||||||
|
AudioComponentInstantiationOptions options,
|
||||||
|
NSError** error,
|
||||||
|
JuceAudioUnitv3Base* juceAU)
|
||||||
|
{
|
||||||
|
AUAudioUnit* self = _self;
|
||||||
|
|
||||||
|
self = ObjCMsgSendSuper<AUAudioUnit, AUAudioUnit*, AudioComponentDescription,
|
||||||
|
AudioComponentInstantiationOptions, NSError**> (self, @selector(initWithComponentDescription:options:error:), descr, options, error);
|
||||||
|
|
||||||
|
|
||||||
|
setThis (self, juceAU);
|
||||||
|
return self;
|
||||||
|
});
|
||||||
|
|
||||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||||
|
|
||||||
addMethod (@selector (initWithComponentDescription:options:error:), initWithComponentDescription);
|
addMethod (@selector (initWithComponentDescription:options:error:), [] (id _self,
|
||||||
|
SEL,
|
||||||
|
AudioComponentDescription descr,
|
||||||
|
AudioComponentInstantiationOptions options,
|
||||||
|
NSError** error)
|
||||||
|
{
|
||||||
|
AUAudioUnit* self = _self;
|
||||||
|
|
||||||
addMethod (@selector (dealloc), dealloc);
|
self = ObjCMsgSendSuper<AUAudioUnit, AUAudioUnit*, AudioComponentDescription,
|
||||||
|
AudioComponentInstantiationOptions, NSError**> (self, @selector (initWithComponentDescription:options:error:), descr, options, error);
|
||||||
|
|
||||||
|
JuceAudioUnitv3Base* juceAU = JuceAudioUnitv3Base::create (self, descr, options, error);
|
||||||
|
|
||||||
|
setThis (self, juceAU);
|
||||||
|
return self;
|
||||||
|
});
|
||||||
|
|
||||||
|
addMethod (@selector (dealloc), [] (id self, SEL)
|
||||||
|
{
|
||||||
|
if (! MessageManager::getInstance()->isThisTheMessageThread())
|
||||||
|
{
|
||||||
|
WaitableEvent deletionEvent;
|
||||||
|
|
||||||
|
struct AUDeleter : public CallbackMessage
|
||||||
|
{
|
||||||
|
AUDeleter (id selfToDelete, WaitableEvent& event)
|
||||||
|
: parentSelf (selfToDelete), parentDeletionEvent (event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void messageCallback() override
|
||||||
|
{
|
||||||
|
delete _this (parentSelf);
|
||||||
|
parentDeletionEvent.signal();
|
||||||
|
}
|
||||||
|
|
||||||
|
id parentSelf;
|
||||||
|
WaitableEvent& parentDeletionEvent;
|
||||||
|
};
|
||||||
|
|
||||||
|
(new AUDeleter (self, deletionEvent))->post();
|
||||||
|
deletionEvent.wait (-1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete _this (self);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
addMethod (@selector (reset), reset);
|
addMethod (@selector (reset), [] (id self, SEL) { return _this (self)->reset(); });
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
addMethod (@selector (currentPreset), getCurrentPreset);
|
addMethod (@selector (currentPreset), [] (id self, SEL) { return _this (self)->getCurrentPreset(); });
|
||||||
addMethod (@selector (setCurrentPreset:), setCurrentPreset);
|
addMethod (@selector (setCurrentPreset:), [] (id self, SEL, AUAudioUnitPreset* preset) { return _this (self)->setCurrentPreset (preset); });
|
||||||
addMethod (@selector (factoryPresets), getFactoryPresets);
|
addMethod (@selector (factoryPresets), [] (id self, SEL) { return _this (self)->getFactoryPresets(); });
|
||||||
addMethod (@selector (fullState), getFullState);
|
addMethod (@selector (fullState), [] (id self, SEL) { return _this (self)->getFullState(); });
|
||||||
addMethod (@selector (setFullState:), setFullState);
|
addMethod (@selector (setFullState:), [] (id self, SEL, NSDictionary<NSString *, id>* state) { return _this (self)->setFullState (state); });
|
||||||
addMethod (@selector (parameterTree), getParameterTree);
|
addMethod (@selector (parameterTree), [] (id self, SEL) { return _this (self)->getParameterTree(); });
|
||||||
addMethod (@selector (parametersForOverviewWithCount:), parametersForOverviewWithCount);
|
addMethod (@selector (parametersForOverviewWithCount:), [] (id self, SEL, NSInteger count) { return _this (self)->parametersForOverviewWithCount (static_cast<int> (count)); });
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
addMethod (@selector (latency), getLatency);
|
addMethod (@selector (latency), [] (id self, SEL) { return _this (self)->getLatency(); });
|
||||||
addMethod (@selector (tailTime), getTailTime);
|
addMethod (@selector (tailTime), [] (id self, SEL) { return _this (self)->getTailTime(); });
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
addMethod (@selector (inputBusses), getInputBusses);
|
addMethod (@selector (inputBusses), [] (id self, SEL) { return _this (self)->getInputBusses(); });
|
||||||
addMethod (@selector (outputBusses), getOutputBusses);
|
addMethod (@selector (outputBusses), [] (id self, SEL) { return _this (self)->getOutputBusses(); });
|
||||||
addMethod (@selector (channelCapabilities), getChannelCapabilities);
|
addMethod (@selector (channelCapabilities), [] (id self, SEL) { return _this (self)->getChannelCapabilities(); });
|
||||||
addMethod (@selector (shouldChangeToFormat:forBus:), shouldChangeToFormat);
|
addMethod (@selector (shouldChangeToFormat:forBus:), [] (id self, SEL, AVAudioFormat* format, AUAudioUnitBus* bus) { return _this (self)->shouldChangeToFormat (format, bus) ? YES : NO; });
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
addMethod (@selector (virtualMIDICableCount), getVirtualMIDICableCount);
|
addMethod (@selector (virtualMIDICableCount), [] (id self, SEL) { return _this (self)->getVirtualMIDICableCount(); });
|
||||||
|
|
||||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wundeclared-selector")
|
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wundeclared-selector")
|
||||||
addMethod (@selector (supportsMPE), getSupportsMPE);
|
addMethod (@selector (supportsMPE), [] (id self, SEL) { return _this (self)->getSupportsMPE() ? YES : NO; });
|
||||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||||
|
|
||||||
if (@available (macOS 10.13, iOS 11.0, *))
|
if (@available (macOS 10.13, iOS 11.0, *))
|
||||||
addMethod (@selector (MIDIOutputNames), getMIDIOutputNames);
|
addMethod (@selector (MIDIOutputNames), [] (id self, SEL) { return _this (self)->getMIDIOutputNames(); });
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
addMethod (@selector (internalRenderBlock), getInternalRenderBlock);
|
addMethod (@selector (internalRenderBlock), [] (id self, SEL) { return _this (self)->getInternalRenderBlock(); });
|
||||||
addMethod (@selector (canProcessInPlace), getCanProcessInPlace);
|
addMethod (@selector (canProcessInPlace), [] (id self, SEL) { return _this (self)->getCanProcessInPlace() ? YES : NO; });
|
||||||
addMethod (@selector (isRenderingOffline), getRenderingOffline);
|
addMethod (@selector (isRenderingOffline), [] (id self, SEL) { return _this (self)->getRenderingOffline() ? YES : NO; });
|
||||||
addMethod (@selector (setRenderingOffline:), setRenderingOffline);
|
addMethod (@selector (setRenderingOffline:), [] (id self, SEL, BOOL renderingOffline) { return _this (self)->setRenderingOffline (renderingOffline); });
|
||||||
addMethod (@selector (shouldBypassEffect), getShouldBypassEffect);
|
addMethod (@selector (shouldBypassEffect), [] (id self, SEL) { return _this (self)->getShouldBypassEffect() ? YES : NO; });
|
||||||
addMethod (@selector (setShouldBypassEffect:), setShouldBypassEffect);
|
addMethod (@selector (setShouldBypassEffect:), [] (id self, SEL, BOOL shouldBypass) { return _this (self)->setShouldBypassEffect (shouldBypass); });
|
||||||
addMethod (@selector (allocateRenderResourcesAndReturnError:), allocateRenderResourcesAndReturnError);
|
addMethod (@selector (allocateRenderResourcesAndReturnError:), [] (id self, SEL, NSError** error) { return _this (self)->allocateRenderResourcesAndReturnError (error) ? YES : NO; });
|
||||||
addMethod (@selector (deallocateRenderResources), deallocateRenderResources);
|
addMethod (@selector (deallocateRenderResources), [] (id self, SEL) { return _this (self)->deallocateRenderResources(); });
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
addMethod (@selector (contextName), getContextName);
|
addMethod (@selector (contextName), [] (id self, SEL) { return _this (self)->getContextName(); });
|
||||||
addMethod (@selector (setContextName:), setContextName);
|
addMethod (@selector (setContextName:), [](id self, SEL, NSString* str) { return _this (self)->setContextName (str); });
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
if (@available (macOS 10.13, iOS 11.0, *))
|
if (@available (macOS 10.13, iOS 11.0, *))
|
||||||
{
|
{
|
||||||
addMethod (@selector (supportedViewConfigurations:), getSupportedViewConfigurations);
|
addMethod (@selector (supportedViewConfigurations:), [] (id self, SEL, NSArray<AUAudioUnitViewConfiguration*>* configs) { return _this (self)->getSupportedViewConfigurations (configs); });
|
||||||
addMethod (@selector (selectViewConfiguration:), selectViewConfiguration);
|
addMethod (@selector (selectViewConfiguration:), [] (id self, SEL, AUAudioUnitViewConfiguration* config) { return _this (self)->selectViewConfiguration (config); });
|
||||||
}
|
}
|
||||||
|
|
||||||
registerClass();
|
registerClass();
|
||||||
|
|
@ -276,112 +337,6 @@ private:
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
static JuceAudioUnitv3Base* _this (id self) { return getIvar<JuceAudioUnitv3Base*> (self, "cppObject"); }
|
static JuceAudioUnitv3Base* _this (id self) { return getIvar<JuceAudioUnitv3Base*> (self, "cppObject"); }
|
||||||
static void setThis (id self, JuceAudioUnitv3Base* cpp) { object_setInstanceVariable (self, "cppObject", cpp); }
|
static void setThis (id self, JuceAudioUnitv3Base* cpp) { object_setInstanceVariable (self, "cppObject", cpp); }
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static id initWithComponentDescription (id _self, SEL, AudioComponentDescription descr, AudioComponentInstantiationOptions options, NSError** error)
|
|
||||||
{
|
|
||||||
AUAudioUnit* self = _self;
|
|
||||||
|
|
||||||
self = ObjCMsgSendSuper<AUAudioUnit, AUAudioUnit*, AudioComponentDescription,
|
|
||||||
AudioComponentInstantiationOptions, NSError**> (self, @selector (initWithComponentDescription:options:error:), descr, options, error);
|
|
||||||
|
|
||||||
JuceAudioUnitv3Base* juceAU = JuceAudioUnitv3Base::create (self, descr, options, error);
|
|
||||||
|
|
||||||
setThis (self, juceAU);
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static id initWithComponentDescriptionAndJuceClass (id _self, SEL, AudioComponentDescription descr, AudioComponentInstantiationOptions options, NSError** error, JuceAudioUnitv3Base* juceAU)
|
|
||||||
{
|
|
||||||
AUAudioUnit* self = _self;
|
|
||||||
|
|
||||||
self = ObjCMsgSendSuper<AUAudioUnit, AUAudioUnit*, AudioComponentDescription,
|
|
||||||
AudioComponentInstantiationOptions, NSError**> (self, @selector(initWithComponentDescription:options:error:), descr, options, error);
|
|
||||||
|
|
||||||
|
|
||||||
setThis (self, juceAU);
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void dealloc (id self, SEL)
|
|
||||||
{
|
|
||||||
if (! MessageManager::getInstance()->isThisTheMessageThread())
|
|
||||||
{
|
|
||||||
WaitableEvent deletionEvent;
|
|
||||||
|
|
||||||
struct AUDeleter : public CallbackMessage
|
|
||||||
{
|
|
||||||
AUDeleter (id selfToDelete, WaitableEvent& event)
|
|
||||||
: parentSelf (selfToDelete), parentDeletionEvent (event)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void messageCallback() override
|
|
||||||
{
|
|
||||||
delete _this (parentSelf);
|
|
||||||
parentDeletionEvent.signal();
|
|
||||||
}
|
|
||||||
|
|
||||||
id parentSelf;
|
|
||||||
WaitableEvent& parentDeletionEvent;
|
|
||||||
};
|
|
||||||
|
|
||||||
(new AUDeleter (self, deletionEvent))->post();
|
|
||||||
deletionEvent.wait (-1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
delete _this (self);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static void reset (id self, SEL) { _this (self)->reset(); }
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static AUAudioUnitPreset* getCurrentPreset (id self, SEL) { return _this (self)->getCurrentPreset(); }
|
|
||||||
static void setCurrentPreset (id self, SEL, AUAudioUnitPreset* preset) { return _this (self)->setCurrentPreset (preset); }
|
|
||||||
static NSArray<AUAudioUnitPreset*>* getFactoryPresets (id self, SEL) { return _this (self)->getFactoryPresets(); }
|
|
||||||
static NSDictionary<NSString*, id>* getFullState (id self, SEL) { return _this (self)->getFullState(); }
|
|
||||||
static void setFullState (id self, SEL, NSDictionary<NSString *, id>* state) { return _this (self)->setFullState (state); }
|
|
||||||
static AUParameterTree* getParameterTree (id self, SEL) { return _this (self)->getParameterTree(); }
|
|
||||||
static NSArray<NSNumber*>* parametersForOverviewWithCount (id self, SEL, NSInteger count) { return _this (self)->parametersForOverviewWithCount (static_cast<int> (count)); }
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static NSTimeInterval getLatency (id self, SEL) { return _this (self)->getLatency(); }
|
|
||||||
static NSTimeInterval getTailTime (id self, SEL) { return _this (self)->getTailTime(); }
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static AUAudioUnitBusArray* getInputBusses (id self, SEL) { return _this (self)->getInputBusses(); }
|
|
||||||
static AUAudioUnitBusArray* getOutputBusses (id self, SEL) { return _this (self)->getOutputBusses(); }
|
|
||||||
static NSArray<NSNumber*>* getChannelCapabilities (id self, SEL) { return _this (self)->getChannelCapabilities(); }
|
|
||||||
static BOOL shouldChangeToFormat (id self, SEL, AVAudioFormat* format, AUAudioUnitBus* bus) { return _this (self)->shouldChangeToFormat (format, bus) ? YES : NO; }
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static NSInteger getVirtualMIDICableCount (id self, SEL) { return _this (self)->getVirtualMIDICableCount(); }
|
|
||||||
static BOOL getSupportsMPE (id self, SEL) { return _this (self)->getSupportsMPE() ? YES : NO; }
|
|
||||||
static NSArray<NSString*>* getMIDIOutputNames (id self, SEL) { return _this (self)->getMIDIOutputNames(); }
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static AUInternalRenderBlock getInternalRenderBlock (id self, SEL) { return _this (self)->getInternalRenderBlock(); }
|
|
||||||
static BOOL getCanProcessInPlace (id self, SEL) { return _this (self)->getCanProcessInPlace() ? YES : NO; }
|
|
||||||
static BOOL getRenderingOffline (id self, SEL) { return _this (self)->getRenderingOffline() ? YES : NO; }
|
|
||||||
static void setRenderingOffline (id self, SEL, BOOL renderingOffline) { _this (self)->setRenderingOffline (renderingOffline); }
|
|
||||||
static BOOL allocateRenderResourcesAndReturnError (id self, SEL, NSError** error) { return _this (self)->allocateRenderResourcesAndReturnError (error) ? YES : NO; }
|
|
||||||
static void deallocateRenderResources (id self, SEL) { _this (self)->deallocateRenderResources(); }
|
|
||||||
static BOOL getShouldBypassEffect (id self, SEL) { return _this (self)->getShouldBypassEffect() ? YES : NO; }
|
|
||||||
static void setShouldBypassEffect (id self, SEL, BOOL shouldBypass) { _this (self)->setShouldBypassEffect (shouldBypass); }
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
static NSString* getContextName (id self, SEL) { return _this (self)->getContextName(); }
|
|
||||||
static void setContextName (id self, SEL, NSString* str) { return _this (self)->setContextName (str); }
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
API_AVAILABLE (macos (10.13), ios (11.0))
|
|
||||||
static NSIndexSet* getSupportedViewConfigurations (id self, SEL, NSArray<AUAudioUnitViewConfiguration*>* configs) { return _this (self)->getSupportedViewConfigurations (configs); }
|
|
||||||
|
|
||||||
API_AVAILABLE (macos (10.13), ios (11.0))
|
|
||||||
static void selectViewConfiguration (id self, SEL, AUAudioUnitViewConfiguration* config) { _this (self)->selectViewConfiguration (config); }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static JuceAudioUnitv3Base* create (AUAudioUnit*, AudioComponentDescription, AudioComponentInstantiationOptions, NSError**);
|
static JuceAudioUnitv3Base* create (AUAudioUnit*, AudioComponentDescription, AudioComponentInstantiationOptions, NSError**);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue