mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-22 01:34:21 +00:00
Added a new AU config flag for plugins, to let you choose the obj-C classname that some hosts seem to be stupidly displaying to the user. Also added a couple of minor fixes and new documentation.
This commit is contained in:
parent
15a5c53bc0
commit
df584f9cea
11 changed files with 37 additions and 11 deletions
Binary file not shown.
|
|
@ -250,6 +250,18 @@
|
|||
*/
|
||||
#define JucePlugin_CFBundleIdentifier "com.rawmaterialsoftware.JuceDemo"
|
||||
|
||||
/** In an AU, some hosts take the name of Cocoa class that creates the UI and
|
||||
actually show it to the user in a list (why??)... Anyway, this macro lets you
|
||||
provide a sensible name for that class to make it clear what plugin it refers to.
|
||||
Obviously this has to be a valid obj-C class name.
|
||||
|
||||
Just to make things a little more complicated, this name must also be unique to this
|
||||
precise version of your software. Otherwise, if the host loads two plugins that use the
|
||||
same class name, the obj-C linker will almost certainly connect the wrong modules together
|
||||
and cause total meltdown.
|
||||
*/
|
||||
#define JucePlugin_AUCocoaViewClassName JuceDemoAU_V1
|
||||
|
||||
//==============================================================================
|
||||
/* RTAS settings */
|
||||
|
||||
|
|
|
|||
|
|
@ -71,8 +71,8 @@ extern AudioProcessor* JUCE_CALLTYPE createPluginFilter();
|
|||
#define appendMacro2(a, b, c, d) appendMacro1(a, b, c, d)
|
||||
#define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, JucePlugin_AUExportPrefix)
|
||||
|
||||
#define JuceUICreationClass MakeObjCClassName(JuceUICreationClass)
|
||||
#define JuceUIViewClass MakeObjCClassName(JuceUIViewClass)
|
||||
#define JuceUICreationClass JucePlugin_AUCocoaViewClassName
|
||||
#define JuceUIViewClass MakeObjCClassName(JuceUIViewClass)
|
||||
|
||||
class JuceAU;
|
||||
class EditorCompHolder;
|
||||
|
|
|
|||
|
|
@ -102,4 +102,9 @@
|
|||
#error "You need to define the JucePlugin_WinBag_path value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
#if JucePlugin_Build_AU && ! defined (JucePlugin_AUCocoaViewClassName)
|
||||
#error "You need to define the JucePlugin_AUCocoaViewClassName value in your JucePluginCharacteristics.h file!"
|
||||
#endif
|
||||
|
||||
|
||||
#endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public:
|
|||
|
||||
bool moreThanOneInstanceAllowed()
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void anotherInstanceStarted (const String& commandLine)
|
||||
|
|
|
|||
|
|
@ -272,5 +272,15 @@
|
|||
#endif
|
||||
|
||||
//=============================================================================
|
||||
// If only building the core classes, we can explicitly turn off some features to avoid including them:
|
||||
#if JUCE_ONLY_BUILD_CORE_LIBRARY
|
||||
#define JUCE_QUICKTIME 0
|
||||
#define JUCE_OPENGL 0
|
||||
#define JUCE_USE_CDBURNER 0
|
||||
#define JUCE_USE_CDREADER 0
|
||||
#define JUCE_WEB_BROWSER 0
|
||||
#define JUCE_PLUGINHOST_AU 0
|
||||
#define JUCE_PLUGINHOST_VST 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -235,9 +235,7 @@ public:
|
|||
The button registers itself with its top-level parent component for keypresses.
|
||||
|
||||
Note that a different way of linking buttons to keypresses is by using the
|
||||
setKeyPressToTrigger() method to invoke a command - the difference being that
|
||||
setting a shortcut allows the button to be temporarily linked to a keypress
|
||||
only while it's on-screen.
|
||||
setCommandToTrigger() method to invoke a command.
|
||||
|
||||
@see clearShortcuts
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -2474,7 +2474,7 @@ void LookAndFeel::drawPropertyPanelSectionHeader (Graphics& g, const String& nam
|
|||
const int buttonSize = (height * 3) / 4;
|
||||
const int buttonIndent = (height - buttonSize) / 2;
|
||||
|
||||
drawTreeviewPlusMinusBox (g, buttonIndent, buttonIndent, buttonSize, buttonSize, ! isOpen);
|
||||
drawTreeviewPlusMinusBox (g, buttonIndent, buttonIndent, buttonSize, buttonSize, ! isOpen, false);
|
||||
|
||||
const int textX = buttonIndent * 2 + buttonSize + 2;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
class EditableProperty;
|
||||
|
||||
#include "../juce_Component.h"
|
||||
|
||||
#include "../mouse/juce_TooltipClient.h"
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
|
|
@ -47,7 +47,8 @@ class EditableProperty;
|
|||
@see PropertyPanel, TextPropertyComponent, SliderPropertyComponent,
|
||||
ChoicePropertyComponent, ButtonPropertyComponent, BooleanPropertyComponent
|
||||
*/
|
||||
class JUCE_API PropertyComponent : public Component
|
||||
class JUCE_API PropertyComponent : public Component,
|
||||
public SettableTooltipClient
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public:
|
|||
component isn't visible can cause problems, because QuickTime needs a window
|
||||
handle to do its stuff.
|
||||
|
||||
@param movieFile the .mov file to open
|
||||
@param movieURL the .mov file to open
|
||||
@param isControllerVisible whether to show a controller bar at the bottom
|
||||
@returns true if the movie opens successfully
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ END_JUCE_NAMESPACE
|
|||
fromConnection: (QTCaptureConnection*) connection
|
||||
{
|
||||
if (firstRecordedTime == 0)
|
||||
firstRecordedTime = new Time (Time::getCurrentTime());
|
||||
firstRecordedTime = new Time (Time::getCurrentTime() - RelativeTime::milliseconds (50));
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue